tmg-media-player 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/chunk-25AZZYCL.js +85 -0
- package/dist/chunk-25AZZYCL.js.map +1 -0
- package/dist/chunk-25IKIKAB.js +60 -0
- package/dist/chunk-25IKIKAB.js.map +1 -0
- package/dist/chunk-25ZZLGZ6.js +45 -0
- package/dist/chunk-25ZZLGZ6.js.map +1 -0
- package/dist/chunk-274C5J22.js +12 -0
- package/dist/chunk-274C5J22.js.map +1 -0
- package/dist/chunk-27FHLV4M.js +12 -0
- package/dist/chunk-27FHLV4M.js.map +1 -0
- package/dist/chunk-27MVVVJ7.js +405 -0
- package/dist/chunk-27MVVVJ7.js.map +1 -0
- package/dist/chunk-27SBY2N7.js +50 -0
- package/dist/chunk-27SBY2N7.js.map +1 -0
- package/dist/chunk-2J3FJY73.js +9 -0
- package/dist/chunk-2J3FJY73.js.map +1 -0
- package/dist/chunk-2JW4RYM4.js +170 -0
- package/dist/chunk-2JW4RYM4.js.map +1 -0
- package/dist/chunk-2PA7FU47.js +185 -0
- package/dist/chunk-2PA7FU47.js.map +1 -0
- package/dist/chunk-2VOAIUTU.js +9 -0
- package/dist/chunk-2VOAIUTU.js.map +1 -0
- package/dist/chunk-2W5XWGGE.js +7 -0
- package/dist/chunk-2W5XWGGE.js.map +1 -0
- package/dist/chunk-3C3GK24X.js +88 -0
- package/dist/chunk-3C3GK24X.js.map +1 -0
- package/dist/chunk-3KD22Z7D.js +9 -0
- package/dist/chunk-3KD22Z7D.js.map +1 -0
- package/dist/chunk-3OLEZVYI.js +196 -0
- package/dist/chunk-3OLEZVYI.js.map +1 -0
- package/dist/chunk-3OZEBWCF.js +12 -0
- package/dist/chunk-3OZEBWCF.js.map +1 -0
- package/dist/chunk-3T5CFCYB.js +45 -0
- package/dist/chunk-3T5CFCYB.js.map +1 -0
- package/dist/chunk-3VCTHGL6.js +86 -0
- package/dist/chunk-3VCTHGL6.js.map +1 -0
- package/dist/chunk-3WHPH6Q5.js +9 -0
- package/dist/chunk-3WHPH6Q5.js.map +1 -0
- package/dist/chunk-43MLKGCT.js +45 -0
- package/dist/chunk-43MLKGCT.js.map +1 -0
- package/dist/chunk-46QVDU2K.js +25 -0
- package/dist/chunk-46QVDU2K.js.map +1 -0
- package/dist/chunk-474PEQ33.js +78 -0
- package/dist/chunk-474PEQ33.js.map +1 -0
- package/dist/chunk-4FCGFO2J.js +9 -0
- package/dist/chunk-4FCGFO2J.js.map +1 -0
- package/dist/chunk-4JOPUUAL.js +185 -0
- package/dist/chunk-4JOPUUAL.js.map +1 -0
- package/dist/chunk-4QQXED6P.js +11 -0
- package/dist/chunk-4QQXED6P.js.map +1 -0
- package/dist/chunk-4VG5KHDO.js +52 -0
- package/dist/chunk-4VG5KHDO.js.map +1 -0
- package/dist/chunk-4W6H5CZF.js +1 -0
- package/dist/chunk-4W6H5CZF.js.map +1 -0
- package/dist/chunk-56CRICX7.js +154 -0
- package/dist/chunk-56CRICX7.js.map +1 -0
- package/dist/chunk-57L2PE3B.js +9 -0
- package/dist/chunk-57L2PE3B.js.map +1 -0
- package/dist/chunk-5CLVIO4N.js +33 -0
- package/dist/chunk-5CLVIO4N.js.map +1 -0
- package/dist/chunk-5GX67WSG.js +7 -0
- package/dist/chunk-5GX67WSG.js.map +1 -0
- package/dist/chunk-5SGNTRPL.js +47 -0
- package/dist/chunk-5SGNTRPL.js.map +1 -0
- package/dist/chunk-5TJURBKV.js +9 -0
- package/dist/chunk-5TJURBKV.js.map +1 -0
- package/dist/chunk-63E6JXTT.js +162 -0
- package/dist/chunk-63E6JXTT.js.map +1 -0
- package/dist/chunk-66HGOYPR.js +180 -0
- package/dist/chunk-66HGOYPR.js.map +1 -0
- package/dist/chunk-6IFGKHVM.js +9 -0
- package/dist/chunk-6IFGKHVM.js.map +1 -0
- package/dist/chunk-6K4HCMUL.js +32 -0
- package/dist/chunk-6K4HCMUL.js.map +1 -0
- package/dist/chunk-6KYXFWBF.js +32 -0
- package/dist/chunk-6KYXFWBF.js.map +1 -0
- package/dist/chunk-6R5BZZM6.js +95 -0
- package/dist/chunk-6R5BZZM6.js.map +1 -0
- package/dist/chunk-6S5BMP4A.js +9 -0
- package/dist/chunk-6S5BMP4A.js.map +1 -0
- package/dist/chunk-6SHHKTGD.js +73 -0
- package/dist/chunk-6SHHKTGD.js.map +1 -0
- package/dist/chunk-6U3M7V32.js +46 -0
- package/dist/chunk-6U3M7V32.js.map +1 -0
- package/dist/chunk-73XT2QVM.js +47 -0
- package/dist/chunk-73XT2QVM.js.map +1 -0
- package/dist/chunk-7FB3XGXR.js +471 -0
- package/dist/chunk-7FB3XGXR.js.map +1 -0
- package/dist/chunk-7HRR4LG4.js +115 -0
- package/dist/chunk-7HRR4LG4.js.map +1 -0
- package/dist/chunk-7I6DRKIN.js +58 -0
- package/dist/chunk-7I6DRKIN.js.map +1 -0
- package/dist/chunk-7MOZI57I.js +59 -0
- package/dist/chunk-7MOZI57I.js.map +1 -0
- package/dist/chunk-7PHLWSKV.js +95 -0
- package/dist/chunk-7PHLWSKV.js.map +1 -0
- package/dist/chunk-7Y4LQ5ED.js +45 -0
- package/dist/chunk-7Y4LQ5ED.js.map +1 -0
- package/dist/chunk-7YDZDHZH.js +19 -0
- package/dist/chunk-7YDZDHZH.js.map +1 -0
- package/dist/chunk-A7EG6K2X.js +54 -0
- package/dist/chunk-A7EG6K2X.js.map +1 -0
- package/dist/chunk-ABRBZ4IH.js +108 -0
- package/dist/chunk-ABRBZ4IH.js.map +1 -0
- package/dist/chunk-ACF6B245.js +17 -0
- package/dist/chunk-ACF6B245.js.map +1 -0
- package/dist/chunk-ACUUGJUG.js +53 -0
- package/dist/chunk-ACUUGJUG.js.map +1 -0
- package/dist/chunk-AIYSHJLG.js +42 -0
- package/dist/chunk-AIYSHJLG.js.map +1 -0
- package/dist/chunk-AKHJD2A3.js +50 -0
- package/dist/chunk-AKHJD2A3.js.map +1 -0
- package/dist/chunk-ATE4NMIF.js +22 -0
- package/dist/chunk-ATE4NMIF.js.map +1 -0
- package/dist/chunk-AZTSMVMN.js +138 -0
- package/dist/chunk-AZTSMVMN.js.map +1 -0
- package/dist/chunk-BFFQZMZX.js +108 -0
- package/dist/chunk-BFFQZMZX.js.map +1 -0
- package/dist/chunk-BKJRLSXA.js +329 -0
- package/dist/chunk-BKJRLSXA.js.map +1 -0
- package/dist/chunk-BLJDDFX2.js +228 -0
- package/dist/chunk-BLJDDFX2.js.map +1 -0
- package/dist/chunk-BROAUWON.js +123 -0
- package/dist/chunk-BROAUWON.js.map +1 -0
- package/dist/chunk-BU4AX4DA.js +49 -0
- package/dist/chunk-BU4AX4DA.js.map +1 -0
- package/dist/chunk-C2TANFKK.js +167 -0
- package/dist/chunk-C2TANFKK.js.map +1 -0
- package/dist/chunk-CAIDFMLB.js +164 -0
- package/dist/chunk-CAIDFMLB.js.map +1 -0
- package/dist/chunk-CCD3ZXIT.js +54 -0
- package/dist/chunk-CCD3ZXIT.js.map +1 -0
- package/dist/chunk-CEEX3HQ2.js +44 -0
- package/dist/chunk-CEEX3HQ2.js.map +1 -0
- package/dist/chunk-CIN7HWLH.js +26 -0
- package/dist/chunk-CIN7HWLH.js.map +1 -0
- package/dist/chunk-CL24QYM6.js +48 -0
- package/dist/chunk-CL24QYM6.js.map +1 -0
- package/dist/chunk-CTSPKWKN.js +9 -0
- package/dist/chunk-CTSPKWKN.js.map +1 -0
- package/dist/chunk-CYUYF57A.js +139 -0
- package/dist/chunk-CYUYF57A.js.map +1 -0
- package/dist/chunk-D5XNDZ4S.js +21 -0
- package/dist/chunk-D5XNDZ4S.js.map +1 -0
- package/dist/chunk-D7JQDN74.js +9 -0
- package/dist/chunk-D7JQDN74.js.map +1 -0
- package/dist/chunk-DKS7SZFN.js +165 -0
- package/dist/chunk-DKS7SZFN.js.map +1 -0
- package/dist/chunk-DM4ZIS4L.js +50 -0
- package/dist/chunk-DM4ZIS4L.js.map +1 -0
- package/dist/chunk-DNY72SCR.js +9 -0
- package/dist/chunk-DNY72SCR.js.map +1 -0
- package/dist/chunk-DQLWWVM3.js +25 -0
- package/dist/chunk-DQLWWVM3.js.map +1 -0
- package/dist/chunk-E56H3EOR.js +1 -0
- package/dist/chunk-E56H3EOR.js.map +1 -0
- package/dist/chunk-E56PSUT2.js +435 -0
- package/dist/chunk-E56PSUT2.js.map +1 -0
- package/dist/chunk-EF7RQIJK.js +9 -0
- package/dist/chunk-EF7RQIJK.js.map +1 -0
- package/dist/chunk-EHQJNRJV.js +449 -0
- package/dist/chunk-EHQJNRJV.js.map +1 -0
- package/dist/chunk-EIT6CZXJ.js +50 -0
- package/dist/chunk-EIT6CZXJ.js.map +1 -0
- package/dist/chunk-ERPQNMED.js +292 -0
- package/dist/chunk-ERPQNMED.js.map +1 -0
- package/dist/chunk-ESAOH6X5.js +15 -0
- package/dist/chunk-ESAOH6X5.js.map +1 -0
- package/dist/chunk-ESNKONBW.js +80 -0
- package/dist/chunk-ESNKONBW.js.map +1 -0
- package/dist/chunk-EUQ7SC5J.js +33 -0
- package/dist/chunk-EUQ7SC5J.js.map +1 -0
- package/dist/chunk-EUX3RZ3L.js +66 -0
- package/dist/chunk-EUX3RZ3L.js.map +1 -0
- package/dist/chunk-EVUTNLHC.js +7 -0
- package/dist/chunk-EVUTNLHC.js.map +1 -0
- package/dist/chunk-EY7PB3LA.js +59 -0
- package/dist/chunk-EY7PB3LA.js.map +1 -0
- package/dist/chunk-FCQDAU2C.js +7 -0
- package/dist/chunk-FCQDAU2C.js.map +1 -0
- package/dist/chunk-FHL5Z6MX.js +13 -0
- package/dist/chunk-FHL5Z6MX.js.map +1 -0
- package/dist/chunk-FIUVWAAQ.js +35 -0
- package/dist/chunk-FIUVWAAQ.js.map +1 -0
- package/dist/chunk-FN32KVQT.js +188 -0
- package/dist/chunk-FN32KVQT.js.map +1 -0
- package/dist/chunk-FX3UTAZK.js +31 -0
- package/dist/chunk-FX3UTAZK.js.map +1 -0
- package/dist/chunk-FXIL7BGP.js +43 -0
- package/dist/chunk-FXIL7BGP.js.map +1 -0
- package/dist/chunk-G7KANQFO.js +131 -0
- package/dist/chunk-G7KANQFO.js.map +1 -0
- package/dist/chunk-GDC7I2CJ.js +66 -0
- package/dist/chunk-GDC7I2CJ.js.map +1 -0
- package/dist/chunk-GM7YMURS.js +14 -0
- package/dist/chunk-GM7YMURS.js.map +1 -0
- package/dist/chunk-GQ7ITX5B.js +7 -0
- package/dist/chunk-GQ7ITX5B.js.map +1 -0
- package/dist/chunk-GSKI4IRL.js +34 -0
- package/dist/chunk-GSKI4IRL.js.map +1 -0
- package/dist/chunk-GUIBL2MZ.js +1 -0
- package/dist/chunk-GUIBL2MZ.js.map +1 -0
- package/dist/chunk-H24E5FRE.js +9 -0
- package/dist/chunk-H24E5FRE.js.map +1 -0
- package/dist/chunk-HA2GK6KH.js +9 -0
- package/dist/chunk-HA2GK6KH.js.map +1 -0
- package/dist/chunk-HCSCY6DU.js +458 -0
- package/dist/chunk-HCSCY6DU.js.map +1 -0
- package/dist/chunk-HGXGXW2U.js +26 -0
- package/dist/chunk-HGXGXW2U.js.map +1 -0
- package/dist/chunk-HH7PMFLU.js +33 -0
- package/dist/chunk-HH7PMFLU.js.map +1 -0
- package/dist/chunk-HJORMYPQ.js +66 -0
- package/dist/chunk-HJORMYPQ.js.map +1 -0
- package/dist/chunk-HN2UT66M.js +9 -0
- package/dist/chunk-HN2UT66M.js.map +1 -0
- package/dist/chunk-HNPBSC2A.js +132 -0
- package/dist/chunk-HNPBSC2A.js.map +1 -0
- package/dist/chunk-HNTARWVL.js +57 -0
- package/dist/chunk-HNTARWVL.js.map +1 -0
- package/dist/chunk-HPPHGUTD.js +1 -0
- package/dist/chunk-HPPHGUTD.js.map +1 -0
- package/dist/chunk-HPWORM77.js +199 -0
- package/dist/chunk-HPWORM77.js.map +1 -0
- package/dist/chunk-HYG6W442.js +66 -0
- package/dist/chunk-HYG6W442.js.map +1 -0
- package/dist/chunk-I3LBJOUW.js +249 -0
- package/dist/chunk-I3LBJOUW.js.map +1 -0
- package/dist/chunk-I47VPMZS.js +40 -0
- package/dist/chunk-I47VPMZS.js.map +1 -0
- package/dist/chunk-ID72UAJE.js +7 -0
- package/dist/chunk-ID72UAJE.js.map +1 -0
- package/dist/chunk-IENUYESB.js +33 -0
- package/dist/chunk-IENUYESB.js.map +1 -0
- package/dist/chunk-IFYBKLFH.js +15 -0
- package/dist/chunk-IFYBKLFH.js.map +1 -0
- package/dist/chunk-IJJ4F6HI.js +105 -0
- package/dist/chunk-IJJ4F6HI.js.map +1 -0
- package/dist/chunk-IKKQYZNA.js +43 -0
- package/dist/chunk-IKKQYZNA.js.map +1 -0
- package/dist/chunk-IUS3FRXS.js +446 -0
- package/dist/chunk-IUS3FRXS.js.map +1 -0
- package/dist/chunk-IVA7LFT2.js +12 -0
- package/dist/chunk-IVA7LFT2.js.map +1 -0
- package/dist/chunk-IXLSSEE7.js +39 -0
- package/dist/chunk-IXLSSEE7.js.map +1 -0
- package/dist/chunk-J2SIL62L.js +142 -0
- package/dist/chunk-J2SIL62L.js.map +1 -0
- package/dist/chunk-J54J2AED.js +117 -0
- package/dist/chunk-J54J2AED.js.map +1 -0
- package/dist/chunk-JFWYJV3J.js +61 -0
- package/dist/chunk-JFWYJV3J.js.map +1 -0
- package/dist/chunk-JP5X5JDL.js +10 -0
- package/dist/chunk-JP5X5JDL.js.map +1 -0
- package/dist/chunk-JPWNE7JO.js +11 -0
- package/dist/chunk-JPWNE7JO.js.map +1 -0
- package/dist/chunk-JRWYWTTT.js +9 -0
- package/dist/chunk-JRWYWTTT.js.map +1 -0
- package/dist/chunk-JZXJAJNW.js +316 -0
- package/dist/chunk-JZXJAJNW.js.map +1 -0
- package/dist/chunk-K4UHBEDT.js +9 -0
- package/dist/chunk-K4UHBEDT.js.map +1 -0
- package/dist/chunk-K7AAKFQF.js +12 -0
- package/dist/chunk-K7AAKFQF.js.map +1 -0
- package/dist/chunk-KD3OBG25.js +15 -0
- package/dist/chunk-KD3OBG25.js.map +1 -0
- package/dist/chunk-KJ74PGBI.js +45 -0
- package/dist/chunk-KJ74PGBI.js.map +1 -0
- package/dist/chunk-KLAI7YSD.js +7 -0
- package/dist/chunk-KLAI7YSD.js.map +1 -0
- package/dist/chunk-KMENKVHP.js +110 -0
- package/dist/chunk-KMENKVHP.js.map +1 -0
- package/dist/chunk-KOAHN3L5.js +9 -0
- package/dist/chunk-KOAHN3L5.js.map +1 -0
- package/dist/chunk-KQXT3GDF.js +16 -0
- package/dist/chunk-KQXT3GDF.js.map +1 -0
- package/dist/chunk-L6J66EOL.js +44 -0
- package/dist/chunk-L6J66EOL.js.map +1 -0
- package/dist/chunk-LNUYM3ZX.js +26 -0
- package/dist/chunk-LNUYM3ZX.js.map +1 -0
- package/dist/chunk-LSKNTXY2.js +57 -0
- package/dist/chunk-LSKNTXY2.js.map +1 -0
- package/dist/chunk-LTEL7NEG.js +219 -0
- package/dist/chunk-LTEL7NEG.js.map +1 -0
- package/dist/chunk-LTVS74EO.js +45 -0
- package/dist/chunk-LTVS74EO.js.map +1 -0
- package/dist/chunk-LVDP2QOX.js +99 -0
- package/dist/chunk-LVDP2QOX.js.map +1 -0
- package/dist/chunk-LWLNQS3O.js +569 -0
- package/dist/chunk-LWLNQS3O.js.map +1 -0
- package/dist/chunk-LYKZAKVN.js +19 -0
- package/dist/chunk-LYKZAKVN.js.map +1 -0
- package/dist/chunk-M2NVOKGL.js +97 -0
- package/dist/chunk-M2NVOKGL.js.map +1 -0
- package/dist/chunk-M3UOD7TX.js +427 -0
- package/dist/chunk-M3UOD7TX.js.map +1 -0
- package/dist/chunk-M5C4XQO2.js +45 -0
- package/dist/chunk-M5C4XQO2.js.map +1 -0
- package/dist/chunk-M5DFGJF7.js +10 -0
- package/dist/chunk-M5DFGJF7.js.map +1 -0
- package/dist/chunk-MAXX5M6N.js +9 -0
- package/dist/chunk-MAXX5M6N.js.map +1 -0
- package/dist/chunk-MEAGFRLE.js +37 -0
- package/dist/chunk-MEAGFRLE.js.map +1 -0
- package/dist/chunk-MFYNCWAO.js +25 -0
- package/dist/chunk-MFYNCWAO.js.map +1 -0
- package/dist/chunk-MJ26PFRF.js +12 -0
- package/dist/chunk-MJ26PFRF.js.map +1 -0
- package/dist/chunk-MP2GRDUX.js +10 -0
- package/dist/chunk-MP2GRDUX.js.map +1 -0
- package/dist/chunk-MTQLUS5O.js +51 -0
- package/dist/chunk-MTQLUS5O.js.map +1 -0
- package/dist/chunk-MUDO3ZPJ.js +10 -0
- package/dist/chunk-MUDO3ZPJ.js.map +1 -0
- package/dist/chunk-N2Q3TZXW.js +9 -0
- package/dist/chunk-N2Q3TZXW.js.map +1 -0
- package/dist/chunk-N52KK6K5.js +48 -0
- package/dist/chunk-N52KK6K5.js.map +1 -0
- package/dist/chunk-N5F2YHLD.js +28 -0
- package/dist/chunk-N5F2YHLD.js.map +1 -0
- package/dist/chunk-NGX5YDCB.js +7 -0
- package/dist/chunk-NGX5YDCB.js.map +1 -0
- package/dist/chunk-NHDRXRXA.js +33 -0
- package/dist/chunk-NHDRXRXA.js.map +1 -0
- package/dist/chunk-NPK5ITEG.js +7 -0
- package/dist/chunk-NPK5ITEG.js.map +1 -0
- package/dist/chunk-NPTM6BGC.js +15 -0
- package/dist/chunk-NPTM6BGC.js.map +1 -0
- package/dist/chunk-NTNVW4BG.js +7 -0
- package/dist/chunk-NTNVW4BG.js.map +1 -0
- package/dist/chunk-OBASYXH2.js +26 -0
- package/dist/chunk-OBASYXH2.js.map +1 -0
- package/dist/chunk-OBQNTU5F.js +7 -0
- package/dist/chunk-OBQNTU5F.js.map +1 -0
- package/dist/chunk-OEHNS7YX.js +7 -0
- package/dist/chunk-OEHNS7YX.js.map +1 -0
- package/dist/chunk-OJAUFHEW.js +107 -0
- package/dist/chunk-OJAUFHEW.js.map +1 -0
- package/dist/chunk-ONW4BD2Z.js +38 -0
- package/dist/chunk-ONW4BD2Z.js.map +1 -0
- package/dist/chunk-OOXUZMZ7.js +9 -0
- package/dist/chunk-OOXUZMZ7.js.map +1 -0
- package/dist/chunk-OP3PIADD.js +45 -0
- package/dist/chunk-OP3PIADD.js.map +1 -0
- package/dist/chunk-OSDM6ZVT.js +7 -0
- package/dist/chunk-OSDM6ZVT.js.map +1 -0
- package/dist/chunk-OZEEIRCS.js +9 -0
- package/dist/chunk-OZEEIRCS.js.map +1 -0
- package/dist/chunk-PGSBJUJ4.js +9 -0
- package/dist/chunk-PGSBJUJ4.js.map +1 -0
- package/dist/chunk-PPIDZONA.js +38 -0
- package/dist/chunk-PPIDZONA.js.map +1 -0
- package/dist/chunk-PTMZQ7E3.js +7 -0
- package/dist/chunk-PTMZQ7E3.js.map +1 -0
- package/dist/chunk-PV24XKW2.js +11 -0
- package/dist/chunk-PV24XKW2.js.map +1 -0
- package/dist/chunk-PXU563OY.js +26 -0
- package/dist/chunk-PXU563OY.js.map +1 -0
- package/dist/chunk-Q2XYS26I.js +11 -0
- package/dist/chunk-Q2XYS26I.js.map +1 -0
- package/dist/chunk-Q5NG3DY7.js +31 -0
- package/dist/chunk-Q5NG3DY7.js.map +1 -0
- package/dist/chunk-QADXAWA6.js +71 -0
- package/dist/chunk-QADXAWA6.js.map +1 -0
- package/dist/chunk-QG2FZCJ6.js +7 -0
- package/dist/chunk-QG2FZCJ6.js.map +1 -0
- package/dist/chunk-QMLGJPHC.js +7 -0
- package/dist/chunk-QMLGJPHC.js.map +1 -0
- package/dist/chunk-QQKXAEXW.js +50 -0
- package/dist/chunk-QQKXAEXW.js.map +1 -0
- package/dist/chunk-QS3C4KCF.js +95 -0
- package/dist/chunk-QS3C4KCF.js.map +1 -0
- package/dist/chunk-R4HNE7TL.js +7 -0
- package/dist/chunk-R4HNE7TL.js.map +1 -0
- package/dist/chunk-R5PBXGKK.js +10 -0
- package/dist/chunk-R5PBXGKK.js.map +1 -0
- package/dist/chunk-RFQXCN62.js +13 -0
- package/dist/chunk-RFQXCN62.js.map +1 -0
- package/dist/chunk-RGPGW4ZJ.js +9 -0
- package/dist/chunk-RGPGW4ZJ.js.map +1 -0
- package/dist/chunk-RKBRRJY6.js +9 -0
- package/dist/chunk-RKBRRJY6.js.map +1 -0
- package/dist/chunk-RM6NFJ7V.js +32 -0
- package/dist/chunk-RM6NFJ7V.js.map +1 -0
- package/dist/chunk-RRYAXULQ.js +48 -0
- package/dist/chunk-RRYAXULQ.js.map +1 -0
- package/dist/chunk-RS4W2FAL.js +89 -0
- package/dist/chunk-RS4W2FAL.js.map +1 -0
- package/dist/chunk-RSUFDTAH.js +110 -0
- package/dist/chunk-RSUFDTAH.js.map +1 -0
- package/dist/chunk-S2XKXJNC.js +30 -0
- package/dist/chunk-S2XKXJNC.js.map +1 -0
- package/dist/chunk-S4NKJDRC.js +79 -0
- package/dist/chunk-S4NKJDRC.js.map +1 -0
- package/dist/chunk-S7QGB2FC.js +27 -0
- package/dist/chunk-S7QGB2FC.js.map +1 -0
- package/dist/chunk-SCL4FW6F.js +425 -0
- package/dist/chunk-SCL4FW6F.js.map +1 -0
- package/dist/chunk-SITF6GNM.js +7 -0
- package/dist/chunk-SITF6GNM.js.map +1 -0
- package/dist/chunk-SPCINICO.js +5 -0
- package/dist/chunk-SPCINICO.js.map +1 -0
- package/dist/chunk-SPOTTHMN.js +24 -0
- package/dist/chunk-SPOTTHMN.js.map +1 -0
- package/dist/chunk-SWYNIQHD.js +77 -0
- package/dist/chunk-SWYNIQHD.js.map +1 -0
- package/dist/chunk-SXXITYPP.js +69 -0
- package/dist/chunk-SXXITYPP.js.map +1 -0
- package/dist/chunk-T4YZKI3Y.js +133 -0
- package/dist/chunk-T4YZKI3Y.js.map +1 -0
- package/dist/chunk-T7AIKZ6A.js +44 -0
- package/dist/chunk-T7AIKZ6A.js.map +1 -0
- package/dist/chunk-T7EX6RI2.js +34 -0
- package/dist/chunk-T7EX6RI2.js.map +1 -0
- package/dist/chunk-TB3GE2MH.js +93 -0
- package/dist/chunk-TB3GE2MH.js.map +1 -0
- package/dist/chunk-TE4JFCHB.js +52 -0
- package/dist/chunk-TE4JFCHB.js.map +1 -0
- package/dist/chunk-TGQYCEFL.js +37 -0
- package/dist/chunk-TGQYCEFL.js.map +1 -0
- package/dist/chunk-TMTWPBFD.js +10 -0
- package/dist/chunk-TMTWPBFD.js.map +1 -0
- package/dist/chunk-TSAEQFDM.js +65 -0
- package/dist/chunk-TSAEQFDM.js.map +1 -0
- package/dist/chunk-U3FX24C6.js +1 -0
- package/dist/chunk-U3FX24C6.js.map +1 -0
- package/dist/chunk-U776U22S.js +45 -0
- package/dist/chunk-U776U22S.js.map +1 -0
- package/dist/chunk-UCBDCGYX.js +9 -0
- package/dist/chunk-UCBDCGYX.js.map +1 -0
- package/dist/chunk-UGNYASFC.js +59 -0
- package/dist/chunk-UGNYASFC.js.map +1 -0
- package/dist/chunk-UJTVBENE.js +7 -0
- package/dist/chunk-UJTVBENE.js.map +1 -0
- package/dist/chunk-UKVFVAOO.js +75 -0
- package/dist/chunk-UKVFVAOO.js.map +1 -0
- package/dist/chunk-URKWHZXA.js +25 -0
- package/dist/chunk-URKWHZXA.js.map +1 -0
- package/dist/chunk-UVKRO5ER.js +13 -0
- package/dist/chunk-UVKRO5ER.js.map +1 -0
- package/dist/chunk-V3D7FBSR.js +14 -0
- package/dist/chunk-V3D7FBSR.js.map +1 -0
- package/dist/chunk-VCVMCKZI.js +10 -0
- package/dist/chunk-VCVMCKZI.js.map +1 -0
- package/dist/chunk-VNGMGQF5.js +1 -0
- package/dist/chunk-VNGMGQF5.js.map +1 -0
- package/dist/chunk-VSK7766S.js +163 -0
- package/dist/chunk-VSK7766S.js.map +1 -0
- package/dist/chunk-VZLDFZC7.js +241 -0
- package/dist/chunk-VZLDFZC7.js.map +1 -0
- package/dist/chunk-W2KUESDN.js +25 -0
- package/dist/chunk-W2KUESDN.js.map +1 -0
- package/dist/chunk-W2SHHRYX.js +420 -0
- package/dist/chunk-W2SHHRYX.js.map +1 -0
- package/dist/chunk-WBLZ5GBM.js +158 -0
- package/dist/chunk-WBLZ5GBM.js.map +1 -0
- package/dist/chunk-WODJ2VQH.js +41 -0
- package/dist/chunk-WODJ2VQH.js.map +1 -0
- package/dist/chunk-WQXLL5IV.js +9 -0
- package/dist/chunk-WQXLL5IV.js.map +1 -0
- package/dist/chunk-WR3327CL.js +89 -0
- package/dist/chunk-WR3327CL.js.map +1 -0
- package/dist/chunk-WSBH5QD6.js +309 -0
- package/dist/chunk-WSBH5QD6.js.map +1 -0
- package/dist/chunk-WTHHXWQM.js +7 -0
- package/dist/chunk-WTHHXWQM.js.map +1 -0
- package/dist/chunk-WW56NFQS.js +7 -0
- package/dist/chunk-WW56NFQS.js.map +1 -0
- package/dist/chunk-WYVXNXZI.js +73 -0
- package/dist/chunk-WYVXNXZI.js.map +1 -0
- package/dist/chunk-X3MYMAS2.js +56 -0
- package/dist/chunk-X3MYMAS2.js.map +1 -0
- package/dist/chunk-X7CDYCQF.js +22 -0
- package/dist/chunk-X7CDYCQF.js.map +1 -0
- package/dist/chunk-XGVDXMS3.js +90 -0
- package/dist/chunk-XGVDXMS3.js.map +1 -0
- package/dist/chunk-XHXIXEGS.js +7 -0
- package/dist/chunk-XHXIXEGS.js.map +1 -0
- package/dist/chunk-XJ6HO3WP.js +46 -0
- package/dist/chunk-XJ6HO3WP.js.map +1 -0
- package/dist/chunk-XMR6HHTA.js +59 -0
- package/dist/chunk-XMR6HHTA.js.map +1 -0
- package/dist/chunk-XR2KBJIP.js +54 -0
- package/dist/chunk-XR2KBJIP.js.map +1 -0
- package/dist/chunk-XVN5W3A7.js +50 -0
- package/dist/chunk-XVN5W3A7.js.map +1 -0
- package/dist/chunk-XXYOJDOZ.js +11 -0
- package/dist/chunk-XXYOJDOZ.js.map +1 -0
- package/dist/chunk-XZROR7RJ.js +25 -0
- package/dist/chunk-XZROR7RJ.js.map +1 -0
- package/dist/chunk-YF3LWJL4.js +7 -0
- package/dist/chunk-YF3LWJL4.js.map +1 -0
- package/dist/chunk-YFM4P3Z3.js +309 -0
- package/dist/chunk-YFM4P3Z3.js.map +1 -0
- package/dist/chunk-YFVOBSKP.js +52 -0
- package/dist/chunk-YFVOBSKP.js.map +1 -0
- package/dist/chunk-YFZW72PC.js +45 -0
- package/dist/chunk-YFZW72PC.js.map +1 -0
- package/dist/chunk-YHTCXXEG.js +9 -0
- package/dist/chunk-YHTCXXEG.js.map +1 -0
- package/dist/chunk-YJVUJ6AA.js +93 -0
- package/dist/chunk-YJVUJ6AA.js.map +1 -0
- package/dist/chunk-YKB67FZ5.js +46 -0
- package/dist/chunk-YKB67FZ5.js.map +1 -0
- package/dist/chunk-YS2PK7QA.js +35 -0
- package/dist/chunk-YS2PK7QA.js.map +1 -0
- package/dist/chunk-YURDFQ6X.js +33 -0
- package/dist/chunk-YURDFQ6X.js.map +1 -0
- package/dist/chunk-YVCKIDL5.js +61 -0
- package/dist/chunk-YVCKIDL5.js.map +1 -0
- package/dist/chunk-YXO6NQ4E.js +49 -0
- package/dist/chunk-YXO6NQ4E.js.map +1 -0
- package/dist/chunk-Z2AEG3J7.js +53 -0
- package/dist/chunk-Z2AEG3J7.js.map +1 -0
- package/dist/chunk-Z4I2MQ7B.js +26 -0
- package/dist/chunk-Z4I2MQ7B.js.map +1 -0
- package/dist/chunk-ZBPKZKIJ.js +25 -0
- package/dist/chunk-ZBPKZKIJ.js.map +1 -0
- package/dist/chunk-ZCMJVQ6P.js +10 -0
- package/dist/chunk-ZCMJVQ6P.js.map +1 -0
- package/dist/chunk-ZCQ5UWVE.js +27 -0
- package/dist/chunk-ZCQ5UWVE.js.map +1 -0
- package/dist/chunk-ZFCTBLWX.js +12 -0
- package/dist/chunk-ZFCTBLWX.js.map +1 -0
- package/dist/chunk-ZJ6KVLUS.js +296 -0
- package/dist/chunk-ZJ6KVLUS.js.map +1 -0
- package/dist/chunk-ZRCFHUS4.js +37 -0
- package/dist/chunk-ZRCFHUS4.js.map +1 -0
- package/dist/chunk-ZSB6HGB5.js +50 -0
- package/dist/chunk-ZSB6HGB5.js.map +1 -0
- package/dist/chunk-ZSG6ROJA.js +45 -0
- package/dist/chunk-ZSG6ROJA.js.map +1 -0
- package/dist/chunk-ZSQIEOQO.js +61 -0
- package/dist/chunk-ZSQIEOQO.js.map +1 -0
- package/dist/chunk-ZTMXXISI.js +158 -0
- package/dist/chunk-ZTMXXISI.js.map +1 -0
- package/dist/chunk-ZUMPSWHW.js +138 -0
- package/dist/chunk-ZUMPSWHW.js.map +1 -0
- package/dist/chunk-ZUYSQ37E.js +88 -0
- package/dist/chunk-ZUYSQ37E.js.map +1 -0
- package/dist/components/base/index.cjs +156 -0
- package/dist/components/base/index.cjs.map +1 -0
- package/dist/components/base/index.js +15 -0
- package/dist/components/base/index.js.map +1 -0
- package/dist/components/base/types.cjs +19 -0
- package/dist/components/base/types.cjs.map +1 -0
- package/dist/components/base/types.js +1 -0
- package/dist/components/base/types.js.map +1 -0
- package/dist/components/buffer.cjs +184 -0
- package/dist/components/buffer.cjs.map +1 -0
- package/dist/components/buffer.js +18 -0
- package/dist/components/buffer.js.map +1 -0
- package/dist/components/captionsview.cjs +378 -0
- package/dist/components/captionsview.cjs.map +1 -0
- package/dist/components/captionsview.js +22 -0
- package/dist/components/captionsview.js.map +1 -0
- package/dist/components/controls/airplay.cjs +441 -0
- package/dist/components/controls/airplay.cjs.map +1 -0
- package/dist/components/controls/airplay.js +21 -0
- package/dist/components/controls/airplay.js.map +1 -0
- package/dist/components/controls/backward10.cjs +427 -0
- package/dist/components/controls/backward10.cjs.map +1 -0
- package/dist/components/controls/backward10.js +21 -0
- package/dist/components/controls/backward10.js.map +1 -0
- package/dist/components/controls/bignext.cjs +448 -0
- package/dist/components/controls/bignext.cjs.map +1 -0
- package/dist/components/controls/bignext.js +21 -0
- package/dist/components/controls/bignext.js.map +1 -0
- package/dist/components/controls/bigplaypause.cjs +440 -0
- package/dist/components/controls/bigplaypause.cjs.map +1 -0
- package/dist/components/controls/bigplaypause.js +21 -0
- package/dist/components/controls/bigplaypause.js.map +1 -0
- package/dist/components/controls/bigprev.cjs +448 -0
- package/dist/components/controls/bigprev.cjs.map +1 -0
- package/dist/components/controls/bigprev.js +21 -0
- package/dist/components/controls/bigprev.js.map +1 -0
- package/dist/components/controls/brightness/index.cjs +767 -0
- package/dist/components/controls/brightness/index.cjs.map +1 -0
- package/dist/components/controls/brightness/index.js +25 -0
- package/dist/components/controls/brightness/index.js.map +1 -0
- package/dist/components/controls/brightness/slider.cjs +460 -0
- package/dist/components/controls/brightness/slider.cjs.map +1 -0
- package/dist/components/controls/brightness/slider.js +21 -0
- package/dist/components/controls/brightness/slider.js.map +1 -0
- package/dist/components/controls/captions.cjs +452 -0
- package/dist/components/controls/captions.cjs.map +1 -0
- package/dist/components/controls/captions.js +21 -0
- package/dist/components/controls/captions.js.map +1 -0
- package/dist/components/controls/capture.cjs +455 -0
- package/dist/components/controls/capture.cjs.map +1 -0
- package/dist/components/controls/capture.js +21 -0
- package/dist/components/controls/capture.js.map +1 -0
- package/dist/components/controls/cast.cjs +441 -0
- package/dist/components/controls/cast.cjs.map +1 -0
- package/dist/components/controls/cast.js +21 -0
- package/dist/components/controls/cast.js.map +1 -0
- package/dist/components/controls/chapter.cjs +213 -0
- package/dist/components/controls/chapter.cjs.map +1 -0
- package/dist/components/controls/chapter.js +18 -0
- package/dist/components/controls/chapter.js.map +1 -0
- package/dist/components/controls/duration.cjs +217 -0
- package/dist/components/controls/duration.cjs.map +1 -0
- package/dist/components/controls/duration.js +18 -0
- package/dist/components/controls/duration.js.map +1 -0
- package/dist/components/controls/expandminiplayer.cjs +430 -0
- package/dist/components/controls/expandminiplayer.cjs.map +1 -0
- package/dist/components/controls/expandminiplayer.js +21 -0
- package/dist/components/controls/expandminiplayer.js.map +1 -0
- package/dist/components/controls/forward10.cjs +427 -0
- package/dist/components/controls/forward10.cjs.map +1 -0
- package/dist/components/controls/forward10.js +21 -0
- package/dist/components/controls/forward10.js.map +1 -0
- package/dist/components/controls/fullscreen.cjs +441 -0
- package/dist/components/controls/fullscreen.cjs.map +1 -0
- package/dist/components/controls/fullscreen.js +21 -0
- package/dist/components/controls/fullscreen.js.map +1 -0
- package/dist/components/controls/fullscreenlock.cjs +433 -0
- package/dist/components/controls/fullscreenlock.cjs.map +1 -0
- package/dist/components/controls/fullscreenlock.js +21 -0
- package/dist/components/controls/fullscreenlock.js.map +1 -0
- package/dist/components/controls/fullscreenorientation.cjs +436 -0
- package/dist/components/controls/fullscreenorientation.cjs.map +1 -0
- package/dist/components/controls/fullscreenorientation.js +21 -0
- package/dist/components/controls/fullscreenorientation.js.map +1 -0
- package/dist/components/controls/meta.cjs +298 -0
- package/dist/components/controls/meta.cjs.map +1 -0
- package/dist/components/controls/meta.js +18 -0
- package/dist/components/controls/meta.js.map +1 -0
- package/dist/components/controls/next.cjs +444 -0
- package/dist/components/controls/next.cjs.map +1 -0
- package/dist/components/controls/next.js +21 -0
- package/dist/components/controls/next.js.map +1 -0
- package/dist/components/controls/objectfit.cjs +444 -0
- package/dist/components/controls/objectfit.cjs.map +1 -0
- package/dist/components/controls/objectfit.js +21 -0
- package/dist/components/controls/objectfit.js.map +1 -0
- package/dist/components/controls/pictureinpicture.cjs +441 -0
- package/dist/components/controls/pictureinpicture.cjs.map +1 -0
- package/dist/components/controls/pictureinpicture.js +21 -0
- package/dist/components/controls/pictureinpicture.js.map +1 -0
- package/dist/components/controls/playpause.cjs +441 -0
- package/dist/components/controls/playpause.cjs.map +1 -0
- package/dist/components/controls/playpause.js +21 -0
- package/dist/components/controls/playpause.js.map +1 -0
- package/dist/components/controls/prev.cjs +444 -0
- package/dist/components/controls/prev.cjs.map +1 -0
- package/dist/components/controls/prev.js +21 -0
- package/dist/components/controls/prev.js.map +1 -0
- package/dist/components/controls/removeminiplayer.cjs +432 -0
- package/dist/components/controls/removeminiplayer.cjs.map +1 -0
- package/dist/components/controls/removeminiplayer.js +21 -0
- package/dist/components/controls/removeminiplayer.js.map +1 -0
- package/dist/components/controls/settings.cjs +443 -0
- package/dist/components/controls/settings.cjs.map +1 -0
- package/dist/components/controls/settings.js +21 -0
- package/dist/components/controls/settings.js.map +1 -0
- package/dist/components/controls/theater.cjs +441 -0
- package/dist/components/controls/theater.cjs.map +1 -0
- package/dist/components/controls/theater.js +21 -0
- package/dist/components/controls/theater.js.map +1 -0
- package/dist/components/controls/time.cjs +230 -0
- package/dist/components/controls/time.cjs.map +1 -0
- package/dist/components/controls/time.js +18 -0
- package/dist/components/controls/time.js.map +1 -0
- package/dist/components/controls/timeandduration.cjs +251 -0
- package/dist/components/controls/timeandduration.cjs.map +1 -0
- package/dist/components/controls/timeandduration.js +18 -0
- package/dist/components/controls/timeandduration.js.map +1 -0
- package/dist/components/controls/timeline/index.cjs +713 -0
- package/dist/components/controls/timeline/index.cjs.map +1 -0
- package/dist/components/controls/timeline/index.js +25 -0
- package/dist/components/controls/timeline/index.js.map +1 -0
- package/dist/components/controls/timeline/types.cjs +19 -0
- package/dist/components/controls/timeline/types.cjs.map +1 -0
- package/dist/components/controls/timeline/types.js +1 -0
- package/dist/components/controls/timeline/types.js.map +1 -0
- package/dist/components/controls/volume/index.cjs +767 -0
- package/dist/components/controls/volume/index.cjs.map +1 -0
- package/dist/components/controls/volume/index.js +25 -0
- package/dist/components/controls/volume/index.js.map +1 -0
- package/dist/components/controls/volume/slider.cjs +460 -0
- package/dist/components/controls/volume/slider.cjs.map +1 -0
- package/dist/components/controls/volume/slider.js +21 -0
- package/dist/components/controls/volume/slider.js.map +1 -0
- package/dist/components/holders/airplayplaceholder.cjs +446 -0
- package/dist/components/holders/airplayplaceholder.cjs.map +1 -0
- package/dist/components/holders/airplayplaceholder.js +21 -0
- package/dist/components/holders/airplayplaceholder.js.map +1 -0
- package/dist/components/holders/castplaceholder.cjs +446 -0
- package/dist/components/holders/castplaceholder.cjs.map +1 -0
- package/dist/components/holders/castplaceholder.js +21 -0
- package/dist/components/holders/castplaceholder.js.map +1 -0
- package/dist/components/holders/pipplaceholder.cjs +446 -0
- package/dist/components/holders/pipplaceholder.cjs.map +1 -0
- package/dist/components/holders/pipplaceholder.js +30 -0
- package/dist/components/holders/pipplaceholder.js.map +1 -0
- package/dist/components/icons/add.cjs +27 -0
- package/dist/components/icons/add.cjs.map +1 -0
- package/dist/components/icons/add.js +8 -0
- package/dist/components/icons/add.js.map +1 -0
- package/dist/components/icons/airplay.cjs +30 -0
- package/dist/components/icons/airplay.cjs.map +1 -0
- package/dist/components/icons/airplay.js +8 -0
- package/dist/components/icons/airplay.js.map +1 -0
- package/dist/components/icons/airplayplaceholder.cjs +39 -0
- package/dist/components/icons/airplayplaceholder.cjs.map +1 -0
- package/dist/components/icons/airplayplaceholder.js +8 -0
- package/dist/components/icons/airplayplaceholder.js.map +1 -0
- package/dist/components/icons/ambience.cjs +27 -0
- package/dist/components/icons/ambience.cjs.map +1 -0
- package/dist/components/icons/ambience.js +8 -0
- package/dist/components/icons/ambience.js.map +1 -0
- package/dist/components/icons/audiotrack.cjs +27 -0
- package/dist/components/icons/audiotrack.cjs.map +1 -0
- package/dist/components/icons/audiotrack.js +8 -0
- package/dist/components/icons/audiotrack.js.map +1 -0
- package/dist/components/icons/autoplay.cjs +27 -0
- package/dist/components/icons/autoplay.cjs.map +1 -0
- package/dist/components/icons/autoplay.js +8 -0
- package/dist/components/icons/autoplay.js.map +1 -0
- package/dist/components/icons/backward10.cjs +29 -0
- package/dist/components/icons/backward10.cjs.map +1 -0
- package/dist/components/icons/backward10.js +8 -0
- package/dist/components/icons/backward10.js.map +1 -0
- package/dist/components/icons/brightnessdark.cjs +29 -0
- package/dist/components/icons/brightnessdark.cjs.map +1 -0
- package/dist/components/icons/brightnessdark.js +8 -0
- package/dist/components/icons/brightnessdark.js.map +1 -0
- package/dist/components/icons/brightnesshigh.cjs +29 -0
- package/dist/components/icons/brightnesshigh.cjs.map +1 -0
- package/dist/components/icons/brightnesshigh.js +8 -0
- package/dist/components/icons/brightnesshigh.js.map +1 -0
- package/dist/components/icons/brightnesslow.cjs +29 -0
- package/dist/components/icons/brightnesslow.cjs.map +1 -0
- package/dist/components/icons/brightnesslow.js +8 -0
- package/dist/components/icons/brightnesslow.js.map +1 -0
- package/dist/components/icons/bwd.cjs +31 -0
- package/dist/components/icons/bwd.cjs.map +1 -0
- package/dist/components/icons/bwd.js +8 -0
- package/dist/components/icons/bwd.js.map +1 -0
- package/dist/components/icons/captions.cjs +29 -0
- package/dist/components/icons/captions.cjs.map +1 -0
- package/dist/components/icons/captions.js +8 -0
- package/dist/components/icons/captions.js.map +1 -0
- package/dist/components/icons/capture.cjs +29 -0
- package/dist/components/icons/capture.cjs.map +1 -0
- package/dist/components/icons/capture.js +8 -0
- package/dist/components/icons/capture.js.map +1 -0
- package/dist/components/icons/cast.cjs +29 -0
- package/dist/components/icons/cast.cjs.map +1 -0
- package/dist/components/icons/cast.js +8 -0
- package/dist/components/icons/cast.js.map +1 -0
- package/dist/components/icons/castplaceholder.cjs +42 -0
- package/dist/components/icons/castplaceholder.cjs.map +1 -0
- package/dist/components/icons/castplaceholder.js +8 -0
- package/dist/components/icons/castplaceholder.js.map +1 -0
- package/dist/components/icons/chapters.cjs +27 -0
- package/dist/components/icons/chapters.cjs.map +1 -0
- package/dist/components/icons/chapters.js +8 -0
- package/dist/components/icons/chapters.js.map +1 -0
- package/dist/components/icons/configure.cjs +27 -0
- package/dist/components/icons/configure.cjs.map +1 -0
- package/dist/components/icons/configure.js +8 -0
- package/dist/components/icons/configure.js.map +1 -0
- package/dist/components/icons/deleteicon.cjs +27 -0
- package/dist/components/icons/deleteicon.cjs.map +1 -0
- package/dist/components/icons/deleteicon.js +8 -0
- package/dist/components/icons/deleteicon.js.map +1 -0
- package/dist/components/icons/doubletriangleleft.cjs +27 -0
- package/dist/components/icons/doubletriangleleft.cjs.map +1 -0
- package/dist/components/icons/doubletriangleleft.js +8 -0
- package/dist/components/icons/doubletriangleleft.js.map +1 -0
- package/dist/components/icons/doubletriangleright.cjs +27 -0
- package/dist/components/icons/doubletriangleright.cjs.map +1 -0
- package/dist/components/icons/doubletriangleright.js +8 -0
- package/dist/components/icons/doubletriangleright.js.map +1 -0
- package/dist/components/icons/dragindicator.cjs +27 -0
- package/dist/components/icons/dragindicator.cjs.map +1 -0
- package/dist/components/icons/dragindicator.js +8 -0
- package/dist/components/icons/dragindicator.js.map +1 -0
- package/dist/components/icons/edit.cjs +27 -0
- package/dist/components/icons/edit.cjs.map +1 -0
- package/dist/components/icons/edit.js +8 -0
- package/dist/components/icons/edit.js.map +1 -0
- package/dist/components/icons/enterfullscreen.cjs +32 -0
- package/dist/components/icons/enterfullscreen.cjs.map +1 -0
- package/dist/components/icons/enterfullscreen.js +8 -0
- package/dist/components/icons/enterfullscreen.js.map +1 -0
- package/dist/components/icons/enterpip.cjs +29 -0
- package/dist/components/icons/enterpip.cjs.map +1 -0
- package/dist/components/icons/enterpip.js +8 -0
- package/dist/components/icons/enterpip.js.map +1 -0
- package/dist/components/icons/entertheater.cjs +29 -0
- package/dist/components/icons/entertheater.cjs.map +1 -0
- package/dist/components/icons/entertheater.js +8 -0
- package/dist/components/icons/entertheater.js.map +1 -0
- package/dist/components/icons/expandminiplayer.cjs +29 -0
- package/dist/components/icons/expandminiplayer.cjs.map +1 -0
- package/dist/components/icons/expandminiplayer.js +8 -0
- package/dist/components/icons/expandminiplayer.js.map +1 -0
- package/dist/components/icons/forward10.cjs +29 -0
- package/dist/components/icons/forward10.cjs.map +1 -0
- package/dist/components/icons/forward10.js +8 -0
- package/dist/components/icons/forward10.js.map +1 -0
- package/dist/components/icons/fullscreenorientation.cjs +30 -0
- package/dist/components/icons/fullscreenorientation.cjs.map +1 -0
- package/dist/components/icons/fullscreenorientation.js +8 -0
- package/dist/components/icons/fullscreenorientation.js.map +1 -0
- package/dist/components/icons/fwd.cjs +31 -0
- package/dist/components/icons/fwd.cjs.map +1 -0
- package/dist/components/icons/fwd.js +8 -0
- package/dist/components/icons/fwd.js.map +1 -0
- package/dist/components/icons/leavefullscreen.cjs +32 -0
- package/dist/components/icons/leavefullscreen.cjs.map +1 -0
- package/dist/components/icons/leavefullscreen.js +8 -0
- package/dist/components/icons/leavefullscreen.js.map +1 -0
- package/dist/components/icons/leavepip.cjs +29 -0
- package/dist/components/icons/leavepip.cjs.map +1 -0
- package/dist/components/icons/leavepip.js +8 -0
- package/dist/components/icons/leavepip.js.map +1 -0
- package/dist/components/icons/leavetheater.cjs +29 -0
- package/dist/components/icons/leavetheater.cjs.map +1 -0
- package/dist/components/icons/leavetheater.js +8 -0
- package/dist/components/icons/leavetheater.js.map +1 -0
- package/dist/components/icons/lock.cjs +30 -0
- package/dist/components/icons/lock.cjs.map +1 -0
- package/dist/components/icons/lock.js +8 -0
- package/dist/components/icons/lock.js.map +1 -0
- package/dist/components/icons/loop.cjs +27 -0
- package/dist/components/icons/loop.cjs.map +1 -0
- package/dist/components/icons/loop.js +8 -0
- package/dist/components/icons/loop.js.map +1 -0
- package/dist/components/icons/next.cjs +30 -0
- package/dist/components/icons/next.cjs.map +1 -0
- package/dist/components/icons/next.js +8 -0
- package/dist/components/icons/next.js.map +1 -0
- package/dist/components/icons/objectfitcontain.cjs +32 -0
- package/dist/components/icons/objectfitcontain.cjs.map +1 -0
- package/dist/components/icons/objectfitcontain.js +8 -0
- package/dist/components/icons/objectfitcontain.js.map +1 -0
- package/dist/components/icons/objectfitcover.cjs +32 -0
- package/dist/components/icons/objectfitcover.cjs.map +1 -0
- package/dist/components/icons/objectfitcover.js +8 -0
- package/dist/components/icons/objectfitcover.js.map +1 -0
- package/dist/components/icons/objectfitfill.cjs +32 -0
- package/dist/components/icons/objectfitfill.cjs.map +1 -0
- package/dist/components/icons/objectfitfill.js +8 -0
- package/dist/components/icons/objectfitfill.js.map +1 -0
- package/dist/components/icons/pause.cjs +29 -0
- package/dist/components/icons/pause.cjs.map +1 -0
- package/dist/components/icons/pause.js +8 -0
- package/dist/components/icons/pause.js.map +1 -0
- package/dist/components/icons/pipplaceholder.cjs +50 -0
- package/dist/components/icons/pipplaceholder.cjs.map +1 -0
- package/dist/components/icons/pipplaceholder.js +8 -0
- package/dist/components/icons/pipplaceholder.js.map +1 -0
- package/dist/components/icons/play.cjs +29 -0
- package/dist/components/icons/play.cjs.map +1 -0
- package/dist/components/icons/play.js +8 -0
- package/dist/components/icons/play.js.map +1 -0
- package/dist/components/icons/playbackrate.cjs +27 -0
- package/dist/components/icons/playbackrate.cjs.map +1 -0
- package/dist/components/icons/playbackrate.js +8 -0
- package/dist/components/icons/playbackrate.js.map +1 -0
- package/dist/components/icons/playlist.cjs +27 -0
- package/dist/components/icons/playlist.cjs.map +1 -0
- package/dist/components/icons/playlist.js +8 -0
- package/dist/components/icons/playlist.js.map +1 -0
- package/dist/components/icons/prev.cjs +30 -0
- package/dist/components/icons/prev.cjs.map +1 -0
- package/dist/components/icons/prev.js +8 -0
- package/dist/components/icons/prev.js.map +1 -0
- package/dist/components/icons/quality.cjs +27 -0
- package/dist/components/icons/quality.cjs.map +1 -0
- package/dist/components/icons/quality.js +8 -0
- package/dist/components/icons/quality.js.map +1 -0
- package/dist/components/icons/removeminiplayer.cjs +29 -0
- package/dist/components/icons/removeminiplayer.cjs.map +1 -0
- package/dist/components/icons/removeminiplayer.js +8 -0
- package/dist/components/icons/removeminiplayer.js.map +1 -0
- package/dist/components/icons/replay.cjs +29 -0
- package/dist/components/icons/replay.cjs.map +1 -0
- package/dist/components/icons/replay.js +8 -0
- package/dist/components/icons/replay.js.map +1 -0
- package/dist/components/icons/returnback.cjs +30 -0
- package/dist/components/icons/returnback.cjs.map +1 -0
- package/dist/components/icons/returnback.js +8 -0
- package/dist/components/icons/returnback.js.map +1 -0
- package/dist/components/icons/settings.cjs +29 -0
- package/dist/components/icons/settings.cjs.map +1 -0
- package/dist/components/icons/settings.js +8 -0
- package/dist/components/icons/settings.js.map +1 -0
- package/dist/components/icons/shuffle.cjs +27 -0
- package/dist/components/icons/shuffle.cjs.map +1 -0
- package/dist/components/icons/shuffle.js +8 -0
- package/dist/components/icons/shuffle.js.map +1 -0
- package/dist/components/icons/subtitles.cjs +29 -0
- package/dist/components/icons/subtitles.cjs.map +1 -0
- package/dist/components/icons/subtitles.js +8 -0
- package/dist/components/icons/subtitles.js.map +1 -0
- package/dist/components/icons/timer.cjs +27 -0
- package/dist/components/icons/timer.cjs.map +1 -0
- package/dist/components/icons/timer.js +8 -0
- package/dist/components/icons/timer.js.map +1 -0
- package/dist/components/icons/triangleleft.cjs +29 -0
- package/dist/components/icons/triangleleft.cjs.map +1 -0
- package/dist/components/icons/triangleleft.js +8 -0
- package/dist/components/icons/triangleleft.js.map +1 -0
- package/dist/components/icons/tripletriangleleft.cjs +27 -0
- package/dist/components/icons/tripletriangleleft.cjs.map +1 -0
- package/dist/components/icons/tripletriangleleft.js +8 -0
- package/dist/components/icons/tripletriangleleft.js.map +1 -0
- package/dist/components/icons/tripletriangleright.cjs +27 -0
- package/dist/components/icons/tripletriangleright.cjs.map +1 -0
- package/dist/components/icons/tripletriangleright.js +8 -0
- package/dist/components/icons/tripletriangleright.js.map +1 -0
- package/dist/components/icons/unlock.cjs +30 -0
- package/dist/components/icons/unlock.cjs.map +1 -0
- package/dist/components/icons/unlock.js +8 -0
- package/dist/components/icons/unlock.js.map +1 -0
- package/dist/components/icons/videotrack.cjs +27 -0
- package/dist/components/icons/videotrack.cjs.map +1 -0
- package/dist/components/icons/videotrack.js +8 -0
- package/dist/components/icons/videotrack.js.map +1 -0
- package/dist/components/icons/volumehigh.cjs +29 -0
- package/dist/components/icons/volumehigh.cjs.map +1 -0
- package/dist/components/icons/volumehigh.js +8 -0
- package/dist/components/icons/volumehigh.js.map +1 -0
- package/dist/components/icons/volumelow.cjs +29 -0
- package/dist/components/icons/volumelow.cjs.map +1 -0
- package/dist/components/icons/volumelow.js +8 -0
- package/dist/components/icons/volumelow.js.map +1 -0
- package/dist/components/icons/volumemuted.cjs +29 -0
- package/dist/components/icons/volumemuted.cjs.map +1 -0
- package/dist/components/icons/volumemuted.js +8 -0
- package/dist/components/icons/volumemuted.js.map +1 -0
- package/dist/components/icons/z-register.cjs +633 -0
- package/dist/components/icons/z-register.cjs.map +1 -0
- package/dist/components/icons/z-register.js +66 -0
- package/dist/components/icons/z-register.js.map +1 -0
- package/dist/components/notifiers/airplay.cjs +450 -0
- package/dist/components/notifiers/airplay.cjs.map +1 -0
- package/dist/components/notifiers/airplay.js +22 -0
- package/dist/components/notifiers/airplay.js.map +1 -0
- package/dist/components/notifiers/base.cjs +191 -0
- package/dist/components/notifiers/base.cjs.map +1 -0
- package/dist/components/notifiers/base.js +16 -0
- package/dist/components/notifiers/base.js.map +1 -0
- package/dist/components/notifiers/brightness.cjs +469 -0
- package/dist/components/notifiers/brightness.cjs.map +1 -0
- package/dist/components/notifiers/brightness.js +22 -0
- package/dist/components/notifiers/brightness.js.map +1 -0
- package/dist/components/notifiers/cancelscrub.cjs +216 -0
- package/dist/components/notifiers/cancelscrub.cjs.map +1 -0
- package/dist/components/notifiers/cancelscrub.js +19 -0
- package/dist/components/notifiers/cancelscrub.js.map +1 -0
- package/dist/components/notifiers/captions.cjs +450 -0
- package/dist/components/notifiers/captions.cjs.map +1 -0
- package/dist/components/notifiers/captions.js +22 -0
- package/dist/components/notifiers/captions.js.map +1 -0
- package/dist/components/notifiers/capture.cjs +450 -0
- package/dist/components/notifiers/capture.cjs.map +1 -0
- package/dist/components/notifiers/capture.js +22 -0
- package/dist/components/notifiers/capture.js.map +1 -0
- package/dist/components/notifiers/cast.cjs +450 -0
- package/dist/components/notifiers/cast.cjs.map +1 -0
- package/dist/components/notifiers/cast.js +22 -0
- package/dist/components/notifiers/cast.js.map +1 -0
- package/dist/components/notifiers/chapter.cjs +225 -0
- package/dist/components/notifiers/chapter.cjs.map +1 -0
- package/dist/components/notifiers/chapter.js +19 -0
- package/dist/components/notifiers/chapter.js.map +1 -0
- package/dist/components/notifiers/fastplay.cjs +467 -0
- package/dist/components/notifiers/fastplay.cjs.map +1 -0
- package/dist/components/notifiers/fastplay.js +22 -0
- package/dist/components/notifiers/fastplay.js.map +1 -0
- package/dist/components/notifiers/fwdbwd.cjs +457 -0
- package/dist/components/notifiers/fwdbwd.cjs.map +1 -0
- package/dist/components/notifiers/fwdbwd.js +22 -0
- package/dist/components/notifiers/fwdbwd.js.map +1 -0
- package/dist/components/notifiers/objectfit.cjs +468 -0
- package/dist/components/notifiers/objectfit.cjs.map +1 -0
- package/dist/components/notifiers/objectfit.js +22 -0
- package/dist/components/notifiers/objectfit.js.map +1 -0
- package/dist/components/notifiers/playbackrate.cjs +466 -0
- package/dist/components/notifiers/playbackrate.cjs.map +1 -0
- package/dist/components/notifiers/playbackrate.js +22 -0
- package/dist/components/notifiers/playbackrate.js.map +1 -0
- package/dist/components/notifiers/playpause.cjs +457 -0
- package/dist/components/notifiers/playpause.cjs.map +1 -0
- package/dist/components/notifiers/playpause.js +22 -0
- package/dist/components/notifiers/playpause.js.map +1 -0
- package/dist/components/notifiers/prevnext.cjs +457 -0
- package/dist/components/notifiers/prevnext.cjs.map +1 -0
- package/dist/components/notifiers/prevnext.js +22 -0
- package/dist/components/notifiers/prevnext.js.map +1 -0
- package/dist/components/notifiers/scrub.cjs +449 -0
- package/dist/components/notifiers/scrub.cjs.map +1 -0
- package/dist/components/notifiers/scrub.js +22 -0
- package/dist/components/notifiers/scrub.js.map +1 -0
- package/dist/components/notifiers/timer.cjs +451 -0
- package/dist/components/notifiers/timer.cjs.map +1 -0
- package/dist/components/notifiers/timer.js +22 -0
- package/dist/components/notifiers/timer.js.map +1 -0
- package/dist/components/notifiers/touchbrightness.cjs +474 -0
- package/dist/components/notifiers/touchbrightness.cjs.map +1 -0
- package/dist/components/notifiers/touchbrightness.js +22 -0
- package/dist/components/notifiers/touchbrightness.js.map +1 -0
- package/dist/components/notifiers/touchtimeline.cjs +218 -0
- package/dist/components/notifiers/touchtimeline.cjs.map +1 -0
- package/dist/components/notifiers/touchtimeline.js +21 -0
- package/dist/components/notifiers/touchtimeline.js.map +1 -0
- package/dist/components/notifiers/touchvolume.cjs +474 -0
- package/dist/components/notifiers/touchvolume.cjs.map +1 -0
- package/dist/components/notifiers/touchvolume.js +22 -0
- package/dist/components/notifiers/touchvolume.js.map +1 -0
- package/dist/components/notifiers/volume.cjs +469 -0
- package/dist/components/notifiers/volume.cjs.map +1 -0
- package/dist/components/notifiers/volume.js +22 -0
- package/dist/components/notifiers/volume.js.map +1 -0
- package/dist/components/notifiers/z-register.cjs +778 -0
- package/dist/components/notifiers/z-register.cjs.map +1 -0
- package/dist/components/notifiers/z-register.js +36 -0
- package/dist/components/notifiers/z-register.js.map +1 -0
- package/dist/components/rangeinput/build.cjs +52 -0
- package/dist/components/rangeinput/build.cjs.map +1 -0
- package/dist/components/rangeinput/build.js +8 -0
- package/dist/components/rangeinput/build.js.map +1 -0
- package/dist/components/rangeinput/index.cjs +433 -0
- package/dist/components/rangeinput/index.cjs.map +1 -0
- package/dist/components/rangeinput/index.js +20 -0
- package/dist/components/rangeinput/index.js.map +1 -0
- package/dist/components/rangeinput/types.cjs +19 -0
- package/dist/components/rangeinput/types.cjs.map +1 -0
- package/dist/components/rangeinput/types.js +1 -0
- package/dist/components/rangeinput/types.js.map +1 -0
- package/dist/components/screenlock.cjs +438 -0
- package/dist/components/screenlock.cjs.map +1 -0
- package/dist/components/screenlock.js +21 -0
- package/dist/components/screenlock.js.map +1 -0
- package/dist/components/z-register.cjs +2345 -0
- package/dist/components/z-register.cjs.map +1 -0
- package/dist/components/z-register.js +64 -0
- package/dist/components/z-register.js.map +1 -0
- package/dist/consts/actions.cjs +79 -0
- package/dist/consts/actions.cjs.map +1 -0
- package/dist/consts/actions.js +8 -0
- package/dist/consts/actions.js.map +1 -0
- package/dist/consts/config.cjs +105 -0
- package/dist/consts/config.cjs.map +1 -0
- package/dist/consts/config.js +9 -0
- package/dist/consts/config.js.map +1 -0
- package/dist/consts/generics.cjs +29 -0
- package/dist/consts/generics.cjs.map +1 -0
- package/dist/consts/generics.js +10 -0
- package/dist/consts/generics.js.map +1 -0
- package/dist/consts/media.cjs +201 -0
- package/dist/consts/media.cjs.map +1 -0
- package/dist/consts/media.js +16 -0
- package/dist/consts/media.js.map +1 -0
- package/dist/core/controllable.cjs +91 -0
- package/dist/core/controllable.cjs.map +1 -0
- package/dist/core/controllable.js +13 -0
- package/dist/core/controllable.js.map +1 -0
- package/dist/core/controller.cjs +1664 -0
- package/dist/core/controller.cjs.map +1 -0
- package/dist/core/controller.js +27 -0
- package/dist/core/controller.js.map +1 -0
- package/dist/core/registries.cjs +268 -0
- package/dist/core/registries.cjs.map +1 -0
- package/dist/core/registries.js +24 -0
- package/dist/core/registries.js.map +1 -0
- package/dist/index.cjs +1934 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +3148 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/init.cjs +1890 -0
- package/dist/init.cjs.map +1 -0
- package/dist/init.js +24 -0
- package/dist/init.js.map +1 -0
- package/dist/plugs/base/index.cjs +407 -0
- package/dist/plugs/base/index.cjs.map +1 -0
- package/dist/plugs/base/index.js +19 -0
- package/dist/plugs/base/index.js.map +1 -0
- package/dist/plugs/base/slider.cjs +458 -0
- package/dist/plugs/base/slider.cjs.map +1 -0
- package/dist/plugs/base/slider.js +18 -0
- package/dist/plugs/base/slider.js.map +1 -0
- package/dist/plugs/base/types.cjs +19 -0
- package/dist/plugs/base/types.cjs.map +1 -0
- package/dist/plugs/base/types.js +1 -0
- package/dist/plugs/base/types.js.map +1 -0
- package/dist/plugs/main/disabled/build.cjs +27 -0
- package/dist/plugs/main/disabled/build.cjs.map +1 -0
- package/dist/plugs/main/disabled/build.js +8 -0
- package/dist/plugs/main/disabled/build.js.map +1 -0
- package/dist/plugs/main/disabled/index.cjs +421 -0
- package/dist/plugs/main/disabled/index.cjs.map +1 -0
- package/dist/plugs/main/disabled/index.js +22 -0
- package/dist/plugs/main/disabled/index.js.map +1 -0
- package/dist/plugs/main/disabled/types.cjs +19 -0
- package/dist/plugs/main/disabled/types.cjs.map +1 -0
- package/dist/plugs/main/disabled/types.js +1 -0
- package/dist/plugs/main/disabled/types.js.map +1 -0
- package/dist/plugs/main/lightState/build.cjs +34 -0
- package/dist/plugs/main/lightState/build.cjs.map +1 -0
- package/dist/plugs/main/lightState/build.js +8 -0
- package/dist/plugs/main/lightState/build.js.map +1 -0
- package/dist/plugs/main/lightState/index.cjs +458 -0
- package/dist/plugs/main/lightState/index.cjs.map +1 -0
- package/dist/plugs/main/lightState/index.js +22 -0
- package/dist/plugs/main/lightState/index.js.map +1 -0
- package/dist/plugs/main/lightState/types.cjs +19 -0
- package/dist/plugs/main/lightState/types.cjs.map +1 -0
- package/dist/plugs/main/lightState/types.js +1 -0
- package/dist/plugs/main/lightState/types.js.map +1 -0
- package/dist/plugs/main/playlist/build.cjs +59 -0
- package/dist/plugs/main/playlist/build.cjs.map +1 -0
- package/dist/plugs/main/playlist/build.js +10 -0
- package/dist/plugs/main/playlist/build.js.map +1 -0
- package/dist/plugs/main/playlist/index.cjs +511 -0
- package/dist/plugs/main/playlist/index.cjs.map +1 -0
- package/dist/plugs/main/playlist/index.js +25 -0
- package/dist/plugs/main/playlist/index.js.map +1 -0
- package/dist/plugs/main/playlist/types.cjs +19 -0
- package/dist/plugs/main/playlist/types.cjs.map +1 -0
- package/dist/plugs/main/playlist/types.js +1 -0
- package/dist/plugs/main/playlist/types.js.map +1 -0
- package/dist/plugs/main/skeleton/build.cjs +29 -0
- package/dist/plugs/main/skeleton/build.cjs.map +1 -0
- package/dist/plugs/main/skeleton/build.js +8 -0
- package/dist/plugs/main/skeleton/build.js.map +1 -0
- package/dist/plugs/main/skeleton/index.cjs +539 -0
- package/dist/plugs/main/skeleton/index.cjs.map +1 -0
- package/dist/plugs/main/skeleton/index.js +25 -0
- package/dist/plugs/main/skeleton/index.js.map +1 -0
- package/dist/plugs/main/skeleton/types.cjs +19 -0
- package/dist/plugs/main/skeleton/types.cjs.map +1 -0
- package/dist/plugs/main/skeleton/types.js +1 -0
- package/dist/plugs/main/skeleton/types.js.map +1 -0
- package/dist/plugs/menus/main/playlist.cjs +98 -0
- package/dist/plugs/menus/main/playlist.cjs.map +1 -0
- package/dist/plugs/menus/main/playlist.js +9 -0
- package/dist/plugs/menus/main/playlist.js.map +1 -0
- package/dist/plugs/menus/main/skeleton.cjs +34 -0
- package/dist/plugs/menus/main/skeleton.cjs.map +1 -0
- package/dist/plugs/menus/main/skeleton.js +8 -0
- package/dist/plugs/menus/main/skeleton.js.map +1 -0
- package/dist/plugs/menus/settings/actions.cjs +492 -0
- package/dist/plugs/menus/settings/actions.cjs.map +1 -0
- package/dist/plugs/menus/settings/actions.js +15 -0
- package/dist/plugs/menus/settings/actions.js.map +1 -0
- package/dist/plugs/menus/settings/ambience.cjs +35 -0
- package/dist/plugs/menus/settings/ambience.cjs.map +1 -0
- package/dist/plugs/menus/settings/ambience.js +8 -0
- package/dist/plugs/menus/settings/ambience.js.map +1 -0
- package/dist/plugs/menus/settings/auto.cjs +153 -0
- package/dist/plugs/menus/settings/auto.cjs.map +1 -0
- package/dist/plugs/menus/settings/auto.js +12 -0
- package/dist/plugs/menus/settings/auto.js.map +1 -0
- package/dist/plugs/menus/settings/brightness.cjs +45 -0
- package/dist/plugs/menus/settings/brightness.cjs.map +1 -0
- package/dist/plugs/menus/settings/brightness.js +8 -0
- package/dist/plugs/menus/settings/brightness.js.map +1 -0
- package/dist/plugs/menus/settings/captions.cjs +437 -0
- package/dist/plugs/menus/settings/captions.cjs.map +1 -0
- package/dist/plugs/menus/settings/captions.js +13 -0
- package/dist/plugs/menus/settings/captions.js.map +1 -0
- package/dist/plugs/menus/settings/controlPanel.cjs +442 -0
- package/dist/plugs/menus/settings/controlPanel.cjs.map +1 -0
- package/dist/plugs/menus/settings/controlPanel.js +14 -0
- package/dist/plugs/menus/settings/controlPanel.js.map +1 -0
- package/dist/plugs/menus/settings/fastPlay.cjs +166 -0
- package/dist/plugs/menus/settings/fastPlay.cjs.map +1 -0
- package/dist/plugs/menus/settings/fastPlay.js +12 -0
- package/dist/plugs/menus/settings/fastPlay.js.map +1 -0
- package/dist/plugs/menus/settings/frame.cjs +90 -0
- package/dist/plugs/menus/settings/frame.cjs.map +1 -0
- package/dist/plugs/menus/settings/frame.js +12 -0
- package/dist/plugs/menus/settings/frame.js.map +1 -0
- package/dist/plugs/menus/settings/gesture.cjs +255 -0
- package/dist/plugs/menus/settings/gesture.cjs.map +1 -0
- package/dist/plugs/menus/settings/gesture.js +17 -0
- package/dist/plugs/menus/settings/gesture.js.map +1 -0
- package/dist/plugs/menus/settings/keys.cjs +173 -0
- package/dist/plugs/menus/settings/keys.cjs.map +1 -0
- package/dist/plugs/menus/settings/keys.js +12 -0
- package/dist/plugs/menus/settings/keys.js.map +1 -0
- package/dist/plugs/menus/settings/locked.cjs +53 -0
- package/dist/plugs/menus/settings/locked.cjs.map +1 -0
- package/dist/plugs/menus/settings/locked.js +8 -0
- package/dist/plugs/menus/settings/locked.js.map +1 -0
- package/dist/plugs/menus/settings/metadata.cjs +202 -0
- package/dist/plugs/menus/settings/metadata.cjs.map +1 -0
- package/dist/plugs/menus/settings/metadata.js +13 -0
- package/dist/plugs/menus/settings/metadata.js.map +1 -0
- package/dist/plugs/menus/settings/modes.cjs +238 -0
- package/dist/plugs/menus/settings/modes.cjs.map +1 -0
- package/dist/plugs/menus/settings/modes.js +12 -0
- package/dist/plugs/menus/settings/modes.js.map +1 -0
- package/dist/plugs/menus/settings/objectFit.cjs +45 -0
- package/dist/plugs/menus/settings/objectFit.cjs.map +1 -0
- package/dist/plugs/menus/settings/objectFit.js +8 -0
- package/dist/plugs/menus/settings/objectFit.js.map +1 -0
- package/dist/plugs/menus/settings/overlay.cjs +112 -0
- package/dist/plugs/menus/settings/overlay.cjs.map +1 -0
- package/dist/plugs/menus/settings/overlay.js +12 -0
- package/dist/plugs/menus/settings/overlay.js.map +1 -0
- package/dist/plugs/menus/settings/persist.cjs +73 -0
- package/dist/plugs/menus/settings/persist.cjs.map +1 -0
- package/dist/plugs/menus/settings/persist.js +8 -0
- package/dist/plugs/menus/settings/persist.js.map +1 -0
- package/dist/plugs/menus/settings/playbackRate.cjs +119 -0
- package/dist/plugs/menus/settings/playbackRate.cjs.map +1 -0
- package/dist/plugs/menus/settings/playbackRate.js +12 -0
- package/dist/plugs/menus/settings/playbackRate.js.map +1 -0
- package/dist/plugs/menus/settings/poster.cjs +53 -0
- package/dist/plugs/menus/settings/poster.cjs.map +1 -0
- package/dist/plugs/menus/settings/poster.js +8 -0
- package/dist/plugs/menus/settings/poster.js.map +1 -0
- package/dist/plugs/menus/settings/settingsView.cjs +79 -0
- package/dist/plugs/menus/settings/settingsView.cjs.map +1 -0
- package/dist/plugs/menus/settings/settingsView.js +8 -0
- package/dist/plugs/menus/settings/settingsView.js.map +1 -0
- package/dist/plugs/menus/settings/sleepTimer.cjs +89 -0
- package/dist/plugs/menus/settings/sleepTimer.cjs.map +1 -0
- package/dist/plugs/menus/settings/sleepTimer.js +10 -0
- package/dist/plugs/menus/settings/sleepTimer.js.map +1 -0
- package/dist/plugs/menus/settings/time.cjs +48 -0
- package/dist/plugs/menus/settings/time.cjs.map +1 -0
- package/dist/plugs/menus/settings/time.js +8 -0
- package/dist/plugs/menus/settings/time.js.map +1 -0
- package/dist/plugs/menus/settings/timeTravel.cjs +133 -0
- package/dist/plugs/menus/settings/timeTravel.cjs.map +1 -0
- package/dist/plugs/menus/settings/timeTravel.js +11 -0
- package/dist/plugs/menus/settings/timeTravel.js.map +1 -0
- package/dist/plugs/menus/settings/toasts.cjs +232 -0
- package/dist/plugs/menus/settings/toasts.cjs.map +1 -0
- package/dist/plugs/menus/settings/toasts.js +18 -0
- package/dist/plugs/menus/settings/toasts.js.map +1 -0
- package/dist/plugs/menus/settings/voice.cjs +216 -0
- package/dist/plugs/menus/settings/voice.cjs.map +1 -0
- package/dist/plugs/menus/settings/voice.js +12 -0
- package/dist/plugs/menus/settings/voice.js.map +1 -0
- package/dist/plugs/menus/settings/volume.cjs +45 -0
- package/dist/plugs/menus/settings/volume.cjs.map +1 -0
- package/dist/plugs/menus/settings/volume.js +8 -0
- package/dist/plugs/menus/settings/volume.js.map +1 -0
- package/dist/plugs/menus/z-register.cjs +3212 -0
- package/dist/plugs/menus/z-register.cjs.map +1 -0
- package/dist/plugs/menus/z-register.js +48 -0
- package/dist/plugs/menus/z-register.js.map +1 -0
- package/dist/plugs/settings/airplay/build.cjs +27 -0
- package/dist/plugs/settings/airplay/build.cjs.map +1 -0
- package/dist/plugs/settings/airplay/build.js +8 -0
- package/dist/plugs/settings/airplay/build.js.map +1 -0
- package/dist/plugs/settings/airplay/index.cjs +416 -0
- package/dist/plugs/settings/airplay/index.cjs.map +1 -0
- package/dist/plugs/settings/airplay/index.js +19 -0
- package/dist/plugs/settings/airplay/index.js.map +1 -0
- package/dist/plugs/settings/ambience/build.cjs +33 -0
- package/dist/plugs/settings/ambience/build.cjs.map +1 -0
- package/dist/plugs/settings/ambience/build.js +8 -0
- package/dist/plugs/settings/ambience/build.js.map +1 -0
- package/dist/plugs/settings/ambience/index.cjs +464 -0
- package/dist/plugs/settings/ambience/index.cjs.map +1 -0
- package/dist/plugs/settings/ambience/index.js +24 -0
- package/dist/plugs/settings/ambience/index.js.map +1 -0
- package/dist/plugs/settings/ambience/types.cjs +19 -0
- package/dist/plugs/settings/ambience/types.cjs.map +1 -0
- package/dist/plugs/settings/ambience/types.js +1 -0
- package/dist/plugs/settings/ambience/types.js.map +1 -0
- package/dist/plugs/settings/auto/build.cjs +76 -0
- package/dist/plugs/settings/auto/build.cjs.map +1 -0
- package/dist/plugs/settings/auto/build.js +13 -0
- package/dist/plugs/settings/auto/build.js.map +1 -0
- package/dist/plugs/settings/auto/index.cjs +533 -0
- package/dist/plugs/settings/auto/index.cjs.map +1 -0
- package/dist/plugs/settings/auto/index.js +30 -0
- package/dist/plugs/settings/auto/index.js.map +1 -0
- package/dist/plugs/settings/auto/types.cjs +19 -0
- package/dist/plugs/settings/auto/types.cjs.map +1 -0
- package/dist/plugs/settings/auto/types.js +1 -0
- package/dist/plugs/settings/auto/types.js.map +1 -0
- package/dist/plugs/settings/brightness/build.cjs +31 -0
- package/dist/plugs/settings/brightness/build.cjs.map +1 -0
- package/dist/plugs/settings/brightness/build.js +8 -0
- package/dist/plugs/settings/brightness/build.js.map +1 -0
- package/dist/plugs/settings/brightness/index.cjs +522 -0
- package/dist/plugs/settings/brightness/index.cjs.map +1 -0
- package/dist/plugs/settings/brightness/index.js +24 -0
- package/dist/plugs/settings/brightness/index.js.map +1 -0
- package/dist/plugs/settings/brightness/types.cjs +19 -0
- package/dist/plugs/settings/brightness/types.cjs.map +1 -0
- package/dist/plugs/settings/brightness/types.js +1 -0
- package/dist/plugs/settings/brightness/types.js.map +1 -0
- package/dist/plugs/settings/captions/build.cjs +184 -0
- package/dist/plugs/settings/captions/build.cjs.map +1 -0
- package/dist/plugs/settings/captions/build.js +12 -0
- package/dist/plugs/settings/captions/build.js.map +1 -0
- package/dist/plugs/settings/captions/index.cjs +793 -0
- package/dist/plugs/settings/captions/index.cjs.map +1 -0
- package/dist/plugs/settings/captions/index.js +32 -0
- package/dist/plugs/settings/captions/index.js.map +1 -0
- package/dist/plugs/settings/captions/types.cjs +19 -0
- package/dist/plugs/settings/captions/types.cjs.map +1 -0
- package/dist/plugs/settings/captions/types.js +1 -0
- package/dist/plugs/settings/captions/types.js.map +1 -0
- package/dist/plugs/settings/cast/build.cjs +27 -0
- package/dist/plugs/settings/cast/build.cjs.map +1 -0
- package/dist/plugs/settings/cast/build.js +8 -0
- package/dist/plugs/settings/cast/build.js.map +1 -0
- package/dist/plugs/settings/cast/index.cjs +644 -0
- package/dist/plugs/settings/cast/index.cjs.map +1 -0
- package/dist/plugs/settings/cast/index.js +24 -0
- package/dist/plugs/settings/cast/index.js.map +1 -0
- package/dist/plugs/settings/cast/types.cjs +19 -0
- package/dist/plugs/settings/cast/types.cjs.map +1 -0
- package/dist/plugs/settings/cast/types.js +1 -0
- package/dist/plugs/settings/cast/types.js.map +1 -0
- package/dist/plugs/settings/controlPanel/build.cjs +144 -0
- package/dist/plugs/settings/controlPanel/build.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/build.js +17 -0
- package/dist/plugs/settings/controlPanel/build.js.map +1 -0
- package/dist/plugs/settings/controlPanel/draggable.cjs +1021 -0
- package/dist/plugs/settings/controlPanel/draggable.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/draggable.js +24 -0
- package/dist/plugs/settings/controlPanel/draggable.js.map +1 -0
- package/dist/plugs/settings/controlPanel/index.cjs +1031 -0
- package/dist/plugs/settings/controlPanel/index.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/index.js +37 -0
- package/dist/plugs/settings/controlPanel/index.js.map +1 -0
- package/dist/plugs/settings/controlPanel/types.cjs +19 -0
- package/dist/plugs/settings/controlPanel/types.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/types.js +1 -0
- package/dist/plugs/settings/controlPanel/types.js.map +1 -0
- package/dist/plugs/settings/css/build.cjs +29 -0
- package/dist/plugs/settings/css/build.cjs.map +1 -0
- package/dist/plugs/settings/css/build.js +8 -0
- package/dist/plugs/settings/css/build.js.map +1 -0
- package/dist/plugs/settings/css/index.cjs +444 -0
- package/dist/plugs/settings/css/index.cjs.map +1 -0
- package/dist/plugs/settings/css/index.js +22 -0
- package/dist/plugs/settings/css/index.js.map +1 -0
- package/dist/plugs/settings/css/types.cjs +19 -0
- package/dist/plugs/settings/css/types.cjs.map +1 -0
- package/dist/plugs/settings/css/types.js +1 -0
- package/dist/plugs/settings/css/types.js.map +1 -0
- package/dist/plugs/settings/errors/build.cjs +45 -0
- package/dist/plugs/settings/errors/build.cjs.map +1 -0
- package/dist/plugs/settings/errors/build.js +10 -0
- package/dist/plugs/settings/errors/build.js.map +1 -0
- package/dist/plugs/settings/errors/index.cjs +417 -0
- package/dist/plugs/settings/errors/index.cjs.map +1 -0
- package/dist/plugs/settings/errors/index.js +24 -0
- package/dist/plugs/settings/errors/index.js.map +1 -0
- package/dist/plugs/settings/errors/types.cjs +19 -0
- package/dist/plugs/settings/errors/types.cjs.map +1 -0
- package/dist/plugs/settings/errors/types.js +1 -0
- package/dist/plugs/settings/errors/types.js.map +1 -0
- package/dist/plugs/settings/fastPlay/build.cjs +46 -0
- package/dist/plugs/settings/fastPlay/build.cjs.map +1 -0
- package/dist/plugs/settings/fastPlay/build.js +8 -0
- package/dist/plugs/settings/fastPlay/build.js.map +1 -0
- package/dist/plugs/settings/fastPlay/index.cjs +510 -0
- package/dist/plugs/settings/fastPlay/index.cjs.map +1 -0
- package/dist/plugs/settings/fastPlay/index.js +23 -0
- package/dist/plugs/settings/fastPlay/index.js.map +1 -0
- package/dist/plugs/settings/fastPlay/types.cjs +19 -0
- package/dist/plugs/settings/fastPlay/types.cjs.map +1 -0
- package/dist/plugs/settings/fastPlay/types.js +1 -0
- package/dist/plugs/settings/fastPlay/types.js.map +1 -0
- package/dist/plugs/settings/frame/build.cjs +31 -0
- package/dist/plugs/settings/frame/build.cjs.map +1 -0
- package/dist/plugs/settings/frame/build.js +8 -0
- package/dist/plugs/settings/frame/build.js.map +1 -0
- package/dist/plugs/settings/frame/index.cjs +542 -0
- package/dist/plugs/settings/frame/index.cjs.map +1 -0
- package/dist/plugs/settings/frame/index.js +29 -0
- package/dist/plugs/settings/frame/index.js.map +1 -0
- package/dist/plugs/settings/frame/types.cjs +19 -0
- package/dist/plugs/settings/frame/types.cjs.map +1 -0
- package/dist/plugs/settings/frame/types.js +1 -0
- package/dist/plugs/settings/frame/types.js.map +1 -0
- package/dist/plugs/settings/gesture/base.cjs +187 -0
- package/dist/plugs/settings/gesture/base.cjs.map +1 -0
- package/dist/plugs/settings/gesture/base.js +24 -0
- package/dist/plugs/settings/gesture/base.js.map +1 -0
- package/dist/plugs/settings/gesture/build.cjs +116 -0
- package/dist/plugs/settings/gesture/build.cjs.map +1 -0
- package/dist/plugs/settings/gesture/build.js +13 -0
- package/dist/plugs/settings/gesture/build.js.map +1 -0
- package/dist/plugs/settings/gesture/index.cjs +877 -0
- package/dist/plugs/settings/gesture/index.cjs.map +1 -0
- package/dist/plugs/settings/gesture/index.js +38 -0
- package/dist/plugs/settings/gesture/index.js.map +1 -0
- package/dist/plugs/settings/gesture/touch.cjs +784 -0
- package/dist/plugs/settings/gesture/touch.cjs.map +1 -0
- package/dist/plugs/settings/gesture/touch.js +27 -0
- package/dist/plugs/settings/gesture/touch.js.map +1 -0
- package/dist/plugs/settings/gesture/types.cjs +19 -0
- package/dist/plugs/settings/gesture/types.cjs.map +1 -0
- package/dist/plugs/settings/gesture/types.js +1 -0
- package/dist/plugs/settings/gesture/types.js.map +1 -0
- package/dist/plugs/settings/gesture/wheel.cjs +757 -0
- package/dist/plugs/settings/gesture/wheel.cjs.map +1 -0
- package/dist/plugs/settings/gesture/wheel.js +27 -0
- package/dist/plugs/settings/gesture/wheel.js.map +1 -0
- package/dist/plugs/settings/keys/build.cjs +117 -0
- package/dist/plugs/settings/keys/build.cjs.map +1 -0
- package/dist/plugs/settings/keys/build.js +13 -0
- package/dist/plugs/settings/keys/build.js.map +1 -0
- package/dist/plugs/settings/keys/index.cjs +612 -0
- package/dist/plugs/settings/keys/index.cjs.map +1 -0
- package/dist/plugs/settings/keys/index.js +34 -0
- package/dist/plugs/settings/keys/index.js.map +1 -0
- package/dist/plugs/settings/keys/types.cjs +19 -0
- package/dist/plugs/settings/keys/types.cjs.map +1 -0
- package/dist/plugs/settings/keys/types.js +1 -0
- package/dist/plugs/settings/keys/types.js.map +1 -0
- package/dist/plugs/settings/locked/build.cjs +92 -0
- package/dist/plugs/settings/locked/build.cjs.map +1 -0
- package/dist/plugs/settings/locked/build.js +9 -0
- package/dist/plugs/settings/locked/build.js.map +1 -0
- package/dist/plugs/settings/locked/index.cjs +532 -0
- package/dist/plugs/settings/locked/index.cjs.map +1 -0
- package/dist/plugs/settings/locked/index.js +25 -0
- package/dist/plugs/settings/locked/index.js.map +1 -0
- package/dist/plugs/settings/locked/types.cjs +19 -0
- package/dist/plugs/settings/locked/types.cjs.map +1 -0
- package/dist/plugs/settings/locked/types.js +1 -0
- package/dist/plugs/settings/locked/types.js.map +1 -0
- package/dist/plugs/settings/metadata/build.cjs +29 -0
- package/dist/plugs/settings/metadata/build.cjs.map +1 -0
- package/dist/plugs/settings/metadata/build.js +8 -0
- package/dist/plugs/settings/metadata/build.js.map +1 -0
- package/dist/plugs/settings/metadata/index.cjs +455 -0
- package/dist/plugs/settings/metadata/index.cjs.map +1 -0
- package/dist/plugs/settings/metadata/index.js +24 -0
- package/dist/plugs/settings/metadata/index.js.map +1 -0
- package/dist/plugs/settings/metadata/types.cjs +19 -0
- package/dist/plugs/settings/metadata/types.cjs.map +1 -0
- package/dist/plugs/settings/metadata/types.js +1 -0
- package/dist/plugs/settings/metadata/types.js.map +1 -0
- package/dist/plugs/settings/modes/build.cjs +162 -0
- package/dist/plugs/settings/modes/build.cjs.map +1 -0
- package/dist/plugs/settings/modes/build.js +22 -0
- package/dist/plugs/settings/modes/build.js.map +1 -0
- package/dist/plugs/settings/modes/fullscreen.cjs +625 -0
- package/dist/plugs/settings/modes/fullscreen.cjs.map +1 -0
- package/dist/plugs/settings/modes/fullscreen.js +30 -0
- package/dist/plugs/settings/modes/fullscreen.js.map +1 -0
- package/dist/plugs/settings/modes/index.cjs +1031 -0
- package/dist/plugs/settings/modes/index.cjs.map +1 -0
- package/dist/plugs/settings/modes/index.js +51 -0
- package/dist/plugs/settings/modes/index.js.map +1 -0
- package/dist/plugs/settings/modes/miniplayer.cjs +618 -0
- package/dist/plugs/settings/modes/miniplayer.cjs.map +1 -0
- package/dist/plugs/settings/modes/miniplayer.js +30 -0
- package/dist/plugs/settings/modes/miniplayer.js.map +1 -0
- package/dist/plugs/settings/modes/pictureInPicture.cjs +704 -0
- package/dist/plugs/settings/modes/pictureInPicture.cjs.map +1 -0
- package/dist/plugs/settings/modes/pictureInPicture.js +30 -0
- package/dist/plugs/settings/modes/pictureInPicture.js.map +1 -0
- package/dist/plugs/settings/modes/theater.cjs +557 -0
- package/dist/plugs/settings/modes/theater.cjs.map +1 -0
- package/dist/plugs/settings/modes/theater.js +30 -0
- package/dist/plugs/settings/modes/theater.js.map +1 -0
- package/dist/plugs/settings/modes/types.cjs +19 -0
- package/dist/plugs/settings/modes/types.cjs.map +1 -0
- package/dist/plugs/settings/modes/types.js +1 -0
- package/dist/plugs/settings/modes/types.js.map +1 -0
- package/dist/plugs/settings/notifiers/build.cjs +30 -0
- package/dist/plugs/settings/notifiers/build.cjs.map +1 -0
- package/dist/plugs/settings/notifiers/build.js +8 -0
- package/dist/plugs/settings/notifiers/build.js.map +1 -0
- package/dist/plugs/settings/notifiers/index.cjs +451 -0
- package/dist/plugs/settings/notifiers/index.cjs.map +1 -0
- package/dist/plugs/settings/notifiers/index.js +24 -0
- package/dist/plugs/settings/notifiers/index.js.map +1 -0
- package/dist/plugs/settings/notifiers/types.cjs +19 -0
- package/dist/plugs/settings/notifiers/types.cjs.map +1 -0
- package/dist/plugs/settings/notifiers/types.js +1 -0
- package/dist/plugs/settings/notifiers/types.js.map +1 -0
- package/dist/plugs/settings/objectFit/build.cjs +35 -0
- package/dist/plugs/settings/objectFit/build.cjs.map +1 -0
- package/dist/plugs/settings/objectFit/build.js +10 -0
- package/dist/plugs/settings/objectFit/build.js.map +1 -0
- package/dist/plugs/settings/objectFit/index.cjs +514 -0
- package/dist/plugs/settings/objectFit/index.cjs.map +1 -0
- package/dist/plugs/settings/objectFit/index.js +30 -0
- package/dist/plugs/settings/objectFit/index.js.map +1 -0
- package/dist/plugs/settings/objectFit/types.cjs +19 -0
- package/dist/plugs/settings/objectFit/types.cjs.map +1 -0
- package/dist/plugs/settings/objectFit/types.js +1 -0
- package/dist/plugs/settings/objectFit/types.js.map +1 -0
- package/dist/plugs/settings/overlay/build.cjs +46 -0
- package/dist/plugs/settings/overlay/build.cjs.map +1 -0
- package/dist/plugs/settings/overlay/build.js +8 -0
- package/dist/plugs/settings/overlay/build.js.map +1 -0
- package/dist/plugs/settings/overlay/index.cjs +502 -0
- package/dist/plugs/settings/overlay/index.cjs.map +1 -0
- package/dist/plugs/settings/overlay/index.js +24 -0
- package/dist/plugs/settings/overlay/index.js.map +1 -0
- package/dist/plugs/settings/overlay/types.cjs +19 -0
- package/dist/plugs/settings/overlay/types.cjs.map +1 -0
- package/dist/plugs/settings/overlay/types.js +1 -0
- package/dist/plugs/settings/overlay/types.js.map +1 -0
- package/dist/plugs/settings/persist/build.cjs +41 -0
- package/dist/plugs/settings/persist/build.cjs.map +1 -0
- package/dist/plugs/settings/persist/build.js +8 -0
- package/dist/plugs/settings/persist/build.js.map +1 -0
- package/dist/plugs/settings/persist/index.cjs +413 -0
- package/dist/plugs/settings/persist/index.cjs.map +1 -0
- package/dist/plugs/settings/persist/index.js +22 -0
- package/dist/plugs/settings/persist/index.js.map +1 -0
- package/dist/plugs/settings/persist/types.cjs +19 -0
- package/dist/plugs/settings/persist/types.cjs.map +1 -0
- package/dist/plugs/settings/persist/types.js +1 -0
- package/dist/plugs/settings/persist/types.js.map +1 -0
- package/dist/plugs/settings/playbackRate/build.cjs +32 -0
- package/dist/plugs/settings/playbackRate/build.cjs.map +1 -0
- package/dist/plugs/settings/playbackRate/build.js +8 -0
- package/dist/plugs/settings/playbackRate/build.js.map +1 -0
- package/dist/plugs/settings/playbackRate/index.cjs +448 -0
- package/dist/plugs/settings/playbackRate/index.cjs.map +1 -0
- package/dist/plugs/settings/playbackRate/index.js +23 -0
- package/dist/plugs/settings/playbackRate/index.js.map +1 -0
- package/dist/plugs/settings/playbackRate/types.cjs +19 -0
- package/dist/plugs/settings/playbackRate/types.cjs.map +1 -0
- package/dist/plugs/settings/playbackRate/types.js +1 -0
- package/dist/plugs/settings/playbackRate/types.js.map +1 -0
- package/dist/plugs/settings/poster/build.cjs +29 -0
- package/dist/plugs/settings/poster/build.cjs.map +1 -0
- package/dist/plugs/settings/poster/build.js +8 -0
- package/dist/plugs/settings/poster/build.js.map +1 -0
- package/dist/plugs/settings/poster/index.cjs +435 -0
- package/dist/plugs/settings/poster/index.cjs.map +1 -0
- package/dist/plugs/settings/poster/index.js +24 -0
- package/dist/plugs/settings/poster/index.js.map +1 -0
- package/dist/plugs/settings/poster/types.cjs +19 -0
- package/dist/plugs/settings/poster/types.cjs.map +1 -0
- package/dist/plugs/settings/poster/types.js +1 -0
- package/dist/plugs/settings/poster/types.js.map +1 -0
- package/dist/plugs/settings/settingsView/build.cjs +35 -0
- package/dist/plugs/settings/settingsView/build.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/build.js +8 -0
- package/dist/plugs/settings/settingsView/build.js.map +1 -0
- package/dist/plugs/settings/settingsView/index.cjs +1369 -0
- package/dist/plugs/settings/settingsView/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/index.js +42 -0
- package/dist/plugs/settings/settingsView/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/index.cjs +1164 -0
- package/dist/plugs/settings/settingsView/menu/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/index.js +36 -0
- package/dist/plugs/settings/settingsView/menu/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.cjs +144 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.js +16 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.cjs +524 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.js +33 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.cjs +617 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.js +33 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.cjs +357 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.js +19 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.cjs +392 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.js +20 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.cjs +498 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.cjs +563 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.cjs +500 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.cjs +912 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.js +53 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.cjs +409 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.cjs +411 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.cjs +420 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.cjs +490 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.cjs +401 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.js.map +1 -0
- package/dist/plugs/settings/settingsView/types.cjs +19 -0
- package/dist/plugs/settings/settingsView/types.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/types.js +1 -0
- package/dist/plugs/settings/settingsView/types.js.map +1 -0
- package/dist/plugs/settings/sleepTimer/build.cjs +29 -0
- package/dist/plugs/settings/sleepTimer/build.cjs.map +1 -0
- package/dist/plugs/settings/sleepTimer/build.js +8 -0
- package/dist/plugs/settings/sleepTimer/build.js.map +1 -0
- package/dist/plugs/settings/sleepTimer/index.cjs +431 -0
- package/dist/plugs/settings/sleepTimer/index.cjs.map +1 -0
- package/dist/plugs/settings/sleepTimer/index.js +24 -0
- package/dist/plugs/settings/sleepTimer/index.js.map +1 -0
- package/dist/plugs/settings/sleepTimer/types.cjs +19 -0
- package/dist/plugs/settings/sleepTimer/types.cjs.map +1 -0
- package/dist/plugs/settings/sleepTimer/types.js +2 -0
- package/dist/plugs/settings/sleepTimer/types.js.map +1 -0
- package/dist/plugs/settings/time/build.cjs +32 -0
- package/dist/plugs/settings/time/build.cjs.map +1 -0
- package/dist/plugs/settings/time/build.js +8 -0
- package/dist/plugs/settings/time/build.js.map +1 -0
- package/dist/plugs/settings/time/index.cjs +604 -0
- package/dist/plugs/settings/time/index.cjs.map +1 -0
- package/dist/plugs/settings/time/index.js +29 -0
- package/dist/plugs/settings/time/index.js.map +1 -0
- package/dist/plugs/settings/time/types.cjs +19 -0
- package/dist/plugs/settings/time/types.cjs.map +1 -0
- package/dist/plugs/settings/time/types.js +1 -0
- package/dist/plugs/settings/time/types.js.map +1 -0
- package/dist/plugs/settings/timeTravel/build.cjs +36 -0
- package/dist/plugs/settings/timeTravel/build.cjs.map +1 -0
- package/dist/plugs/settings/timeTravel/build.js +8 -0
- package/dist/plugs/settings/timeTravel/build.js.map +1 -0
- package/dist/plugs/settings/timeTravel/index.cjs +461 -0
- package/dist/plugs/settings/timeTravel/index.cjs.map +1 -0
- package/dist/plugs/settings/timeTravel/index.js +33 -0
- package/dist/plugs/settings/timeTravel/index.js.map +1 -0
- package/dist/plugs/settings/timeTravel/types.cjs +19 -0
- package/dist/plugs/settings/timeTravel/types.cjs.map +1 -0
- package/dist/plugs/settings/timeTravel/types.js +1 -0
- package/dist/plugs/settings/timeTravel/types.js.map +1 -0
- package/dist/plugs/settings/toasts/build.cjs +35 -0
- package/dist/plugs/settings/toasts/build.cjs.map +1 -0
- package/dist/plugs/settings/toasts/build.js +8 -0
- package/dist/plugs/settings/toasts/build.js.map +1 -0
- package/dist/plugs/settings/toasts/index.cjs +450 -0
- package/dist/plugs/settings/toasts/index.cjs.map +1 -0
- package/dist/plugs/settings/toasts/index.js +26 -0
- package/dist/plugs/settings/toasts/index.js.map +1 -0
- package/dist/plugs/settings/toasts/types.cjs +19 -0
- package/dist/plugs/settings/toasts/types.cjs.map +1 -0
- package/dist/plugs/settings/toasts/types.js +1 -0
- package/dist/plugs/settings/toasts/types.js.map +1 -0
- package/dist/plugs/settings/voice/build.cjs +81 -0
- package/dist/plugs/settings/voice/build.cjs.map +1 -0
- package/dist/plugs/settings/voice/build.js +8 -0
- package/dist/plugs/settings/voice/build.js.map +1 -0
- package/dist/plugs/settings/voice/index.cjs +757 -0
- package/dist/plugs/settings/voice/index.cjs.map +1 -0
- package/dist/plugs/settings/voice/index.js +26 -0
- package/dist/plugs/settings/voice/index.js.map +1 -0
- package/dist/plugs/settings/voice/types.cjs +19 -0
- package/dist/plugs/settings/voice/types.cjs.map +1 -0
- package/dist/plugs/settings/voice/types.js +1 -0
- package/dist/plugs/settings/voice/types.js.map +1 -0
- package/dist/plugs/settings/volume/build.cjs +31 -0
- package/dist/plugs/settings/volume/build.cjs.map +1 -0
- package/dist/plugs/settings/volume/build.js +8 -0
- package/dist/plugs/settings/volume/build.js.map +1 -0
- package/dist/plugs/settings/volume/index.cjs +592 -0
- package/dist/plugs/settings/volume/index.cjs.map +1 -0
- package/dist/plugs/settings/volume/index.js +34 -0
- package/dist/plugs/settings/volume/index.js.map +1 -0
- package/dist/plugs/settings/volume/types.cjs +19 -0
- package/dist/plugs/settings/volume/types.cjs.map +1 -0
- package/dist/plugs/settings/volume/types.js +1 -0
- package/dist/plugs/settings/volume/types.js.map +1 -0
- package/dist/plugs/z-register.cjs +5901 -0
- package/dist/plugs/z-register.cjs.map +1 -0
- package/dist/plugs/z-register.js +105 -0
- package/dist/plugs/z-register.js.map +1 -0
- package/dist/super/components/icons.cjs +630 -0
- package/dist/super/components/icons.cjs.map +1 -0
- package/dist/super/components/icons.js +248 -0
- package/dist/super/components/icons.js.map +1 -0
- package/dist/super/components/index.cjs +3111 -0
- package/dist/super/components/index.cjs.map +1 -0
- package/dist/super/components/index.js +498 -0
- package/dist/super/components/index.js.map +1 -0
- package/dist/super/components/notifiers.cjs +784 -0
- package/dist/super/components/notifiers.cjs.map +1 -0
- package/dist/super/components/notifiers.js +96 -0
- package/dist/super/components/notifiers.js.map +1 -0
- package/dist/super/consts.cjs +289 -0
- package/dist/super/consts.cjs.map +1 -0
- package/dist/super/consts.js +28 -0
- package/dist/super/consts.js.map +1 -0
- package/dist/super/plugs/index.cjs +5988 -0
- package/dist/super/plugs/index.cjs.map +1 -0
- package/dist/super/plugs/index.js +388 -0
- package/dist/super/plugs/index.js.map +1 -0
- package/dist/super/plugs/menus.cjs +2572 -0
- package/dist/super/plugs/menus.cjs.map +1 -0
- package/dist/super/plugs/menus.js +132 -0
- package/dist/super/plugs/menus.js.map +1 -0
- package/dist/super/techs.cjs +256 -0
- package/dist/super/techs.cjs.map +1 -0
- package/dist/super/techs.js +32 -0
- package/dist/super/techs.js.map +1 -0
- package/dist/super/utils.cjs +1379 -0
- package/dist/super/utils.cjs.map +1 -0
- package/dist/super/utils.js +400 -0
- package/dist/super/utils.js.map +1 -0
- package/dist/super.cjs +10191 -0
- package/dist/super.cjs.map +1 -0
- package/dist/super.css +3148 -0
- package/dist/super.css.map +1 -0
- package/dist/super.global.js +12460 -0
- package/dist/super.global.js.map +1 -0
- package/dist/super.js +380 -0
- package/dist/super.js.map +1 -0
- package/dist/techs/base.cjs +256 -0
- package/dist/techs/base.cjs.map +1 -0
- package/dist/techs/base.js +19 -0
- package/dist/techs/base.js.map +1 -0
- package/dist/techs/dash.cjs +1160 -0
- package/dist/techs/dash.cjs.map +1 -0
- package/dist/techs/dash.js +24 -0
- package/dist/techs/dash.js.map +1 -0
- package/dist/techs/hls.cjs +1164 -0
- package/dist/techs/hls.cjs.map +1 -0
- package/dist/techs/hls.js +24 -0
- package/dist/techs/hls.js.map +1 -0
- package/dist/techs/html5.cjs +988 -0
- package/dist/techs/html5.cjs.map +1 -0
- package/dist/techs/html5.js +23 -0
- package/dist/techs/html5.js.map +1 -0
- package/dist/techs/shaka.cjs +1183 -0
- package/dist/techs/shaka.cjs.map +1 -0
- package/dist/techs/shaka.js +197 -0
- package/dist/techs/shaka.js.map +1 -0
- package/dist/techs/vimeo.cjs +731 -0
- package/dist/techs/vimeo.cjs.map +1 -0
- package/dist/techs/vimeo.js +24 -0
- package/dist/techs/vimeo.js.map +1 -0
- package/dist/techs/youtube.cjs +730 -0
- package/dist/techs/youtube.cjs.map +1 -0
- package/dist/techs/youtube.js +22 -0
- package/dist/techs/youtube.js.map +1 -0
- package/dist/techs/z-register.cjs +2354 -0
- package/dist/techs/z-register.cjs.map +1 -0
- package/dist/techs/z-register.js +26 -0
- package/dist/techs/z-register.js.map +1 -0
- package/dist/tools/player.cjs +1804 -0
- package/dist/tools/player.cjs.map +1 -0
- package/dist/tools/player.js +29 -0
- package/dist/tools/player.js.map +1 -0
- package/dist/tools/queue.cjs +63 -0
- package/dist/tools/queue.cjs.map +1 -0
- package/dist/tools/queue.js +8 -0
- package/dist/tools/queue.js.map +1 -0
- package/dist/tools/runtime.cjs +1919 -0
- package/dist/tools/runtime.cjs.map +1 -0
- package/dist/tools/runtime.js +49 -0
- package/dist/tools/runtime.js.map +1 -0
- package/dist/types/UIOptions.d.cjs +19 -0
- package/dist/types/UIOptions.d.cjs.map +1 -0
- package/dist/types/UIOptions.d.js +1 -0
- package/dist/types/UIOptions.d.js.map +1 -0
- package/dist/types/actions.d.cjs +19 -0
- package/dist/types/actions.d.cjs.map +1 -0
- package/dist/types/actions.d.js +1 -0
- package/dist/types/actions.d.js.map +1 -0
- package/dist/types/config.d.cjs +19 -0
- package/dist/types/config.d.cjs.map +1 -0
- package/dist/types/config.d.js +1 -0
- package/dist/types/config.d.js.map +1 -0
- package/dist/types/contract.d.cjs +19 -0
- package/dist/types/contract.d.cjs.map +1 -0
- package/dist/types/contract.d.js +1 -0
- package/dist/types/contract.d.js.map +1 -0
- package/dist/types/generics.d.cjs +19 -0
- package/dist/types/generics.d.cjs.map +1 -0
- package/dist/types/generics.d.js +1 -0
- package/dist/types/generics.d.js.map +1 -0
- package/dist/types/global.d.cjs +22 -0
- package/dist/types/global.d.cjs.map +1 -0
- package/dist/types/global.d.js +2 -0
- package/dist/types/global.d.js.map +1 -0
- package/dist/types/registries.d.cjs +19 -0
- package/dist/types/registries.d.cjs.map +1 -0
- package/dist/types/registries.d.js +1 -0
- package/dist/types/registries.d.js.map +1 -0
- package/dist/utils/color.cjs +111 -0
- package/dist/utils/color.cjs.map +1 -0
- package/dist/utils/color.js +21 -0
- package/dist/utils/color.js.map +1 -0
- package/dist/utils/dom.cjs +269 -0
- package/dist/utils/dom.cjs.map +1 -0
- package/dist/utils/dom.js +58 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/env.cjs +110 -0
- package/dist/utils/env.cjs.map +1 -0
- package/dist/utils/env.js +56 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/file.cjs +176 -0
- package/dist/utils/file.cjs.map +1 -0
- package/dist/utils/file.js +20 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/fn.cjs +133 -0
- package/dist/utils/fn.cjs.map +1 -0
- package/dist/utils/fn.js +41 -0
- package/dist/utils/fn.js.map +1 -0
- package/dist/utils/keys.cjs +66 -0
- package/dist/utils/keys.cjs.map +1 -0
- package/dist/utils/keys.js +28 -0
- package/dist/utils/keys.js.map +1 -0
- package/dist/utils/match.cjs +119 -0
- package/dist/utils/match.cjs.map +1 -0
- package/dist/utils/match.js +30 -0
- package/dist/utils/match.js.map +1 -0
- package/dist/utils/media.cjs +546 -0
- package/dist/utils/media.cjs.map +1 -0
- package/dist/utils/media.js +84 -0
- package/dist/utils/media.js.map +1 -0
- package/dist/utils/methd.cjs +50 -0
- package/dist/utils/methd.cjs.map +1 -0
- package/dist/utils/methd.js +15 -0
- package/dist/utils/methd.js.map +1 -0
- package/dist/utils/num.cjs +92 -0
- package/dist/utils/num.cjs.map +1 -0
- package/dist/utils/num.js +22 -0
- package/dist/utils/num.js.map +1 -0
- package/dist/utils/obj.cjs +204 -0
- package/dist/utils/obj.cjs.map +1 -0
- package/dist/utils/obj.js +58 -0
- package/dist/utils/obj.js.map +1 -0
- package/dist/utils/str.cjs +134 -0
- package/dist/utils/str.cjs.map +1 -0
- package/dist/utils/str.js +35 -0
- package/dist/utils/str.js.map +1 -0
- package/dist/utils/time.cjs +103 -0
- package/dist/utils/time.cjs.map +1 -0
- package/dist/utils/time.js +11 -0
- package/dist/utils/time.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ts/plugs/settings/gesture/wheel.ts","../../../../src/ts/utils/env.ts","../../../../src/ts/plugs/settings/gesture/build.ts","../../../../src/ts/core/controllable.ts","../../../../../t007-tools/packages/utils/dist/chunk-ZALPHCSJ.js","../../../../src/ts/utils/obj.ts","../../../../src/ts/plugs/base/index.ts","../../../../src/ts/consts/config.ts","../../../../src/ts/consts/actions.ts","../../../../src/ts/core/registries.ts","../../../../src/ts/utils/dom.ts","../../../../../t007-tools/packages/utils/dist/chunk-NX2LWYD6.js","../../../../../t007-tools/packages/utils/dist/hooks/vanilla.js","../../../../src/ts/plugs/settings/gesture/index.ts","../../../../src/ts/utils/num.ts","../../../../src/ts/plugs/settings/gesture/base.ts","../../../../src/ts/utils/media.ts"],"sourcesContent":["import { GESTURE_WHEEL_BUILD } from \"./build\";\r\nimport { GesturePlug } from \"./index\";\r\nimport { clamp } from \"@utils/num\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { GestureBasePin } from \"./base\";\r\nimport { GestureWheelConfig } from \"./types\";\r\n\r\nexport class GestureWheelPin extends GestureBasePin<GestureWheelConfig> {\r\n public static readonly pinName = \"wheel\";\r\n public static get Plug() {\r\n return GesturePlug;\r\n }\r\n public static readonly BUILD = GESTURE_WHEEL_BUILD;\r\n protected timeoutId: number | null = null;\r\n protected zone: { x: \"left\" | \"right\"; y: \"top\" | \"bottom\" } | null = null;\r\n protected xCheck = false;\r\n protected yCheck = false;\r\n protected timePercent = 0;\r\n protected timeMultiplier = 1;\r\n protected deltaY = 0;\r\n protected nextTime = 0;\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.media.container.addEventListener(\"wheel\", this.handleWheel, { passive: false, signal: this.signal });\r\n }\r\n\r\n protected canHandle(e: WheelEvent): boolean {\r\n return !this.media.state.locked && !this.ctlr.config.disabled && e.target === this.ctlr.DOM.controlsContainer && !this.plug?.touch?.xCheck && !this.plug?.touch?.yCheck && !this.ctlr.plug(\"settings.fastPlay\")?.speedCheck && (this.ctlr.isUIActive(\"fullscreen\") || this.ctlr.isUIActive(\"floatingPlayer\"));\r\n }\r\n\r\n protected handleWheel(e: WheelEvent): void {\r\n if (!this.canHandle(e)) return;\r\n e.preventDefault();\r\n this.timeoutId ? clearTimeout(this.timeoutId) : this.handleInit(e);\r\n this.timeoutId = setTimeout(this.handleStop, this.config.timeout, this.signal);\r\n this.handleMove(e);\r\n }\r\n\r\n protected handleInit({ clientX: x, clientY: y }: WheelEvent): void {\r\n const rect = this.media.container.getBoundingClientRect();\r\n this.zone = { x: x - rect.left > rect.width * 0.5 ? \"right\" : \"left\", y: y - rect.top > rect.height * 0.5 ? \"bottom\" : \"top\" };\r\n this.deltaY = this.timePercent = 0;\r\n this.timeMultiplier = 1;\r\n }\r\n\r\n protected handleMove({ clientX: x, deltaX, deltaY, shiftKey }: WheelEvent): void {\r\n deltaX = shiftKey ? deltaY : deltaX;\r\n const wc = this.config,\r\n rect = this.media.container.getBoundingClientRect(),\r\n width = shiftKey ? rect.height : rect.width,\r\n height = shiftKey ? rect.width : rect.height;\r\n let xPercent = -deltaX / (width * wc.xRatio);\r\n xPercent = this.timePercent += xPercent;\r\n const xSign = xPercent >= 0 ? \"+\" : \"-\";\r\n xPercent = Math.abs(xPercent);\r\n if (deltaX || shiftKey) {\r\n if (!wc.timeline || this.yCheck) return this.handleStop();\r\n this.xCheck = true;\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchtimelinenotifier\")?.active();\r\n this.applyTimeline({ percent: xPercent, sign: xSign, multiplier: this.timeMultiplier });\r\n if (shiftKey) return;\r\n }\r\n if (deltaY) {\r\n if (this.xCheck) {\r\n const mY = clamp(0, Math.abs((this.deltaY += deltaY)), height * wc.yRatio * 0.5);\r\n this.timeMultiplier = 1 - mY / (height * wc.yRatio * 0.5);\r\n return this.applyTimeline({ percent: xPercent, sign: xSign, multiplier: this.timeMultiplier });\r\n }\r\n const cancel = (this.zone?.x === \"right\" && !wc.volume) || (this.zone?.x === \"left\" && !wc.brightness),\r\n currentXZone = x - rect.left > width * 0.5 ? \"right\" : \"left\";\r\n if (cancel || currentXZone !== this.zone?.x) return this.handleStop();\r\n this.yCheck = true;\r\n // prettier-ignore\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(this.zone?.x === \"right\" ? \"touchvolumenotifier\" : \"touchbrightnessnotifier\")?.active();\r\n const ySign = -deltaY >= 0 ? \"+\" : \"-\",\r\n yPercent = clamp(0, Math.abs(deltaY), height * wc.yRatio) / (height * wc.yRatio);\r\n this.applyRange(this.zone?.x === \"right\" ? \"volume\" : \"brightness\", yPercent, ySign);\r\n }\r\n }\r\n\r\n protected handleStop(): void {\r\n this.timeoutId = null;\r\n if (this.yCheck) {\r\n this.yCheck = false;\r\n this.ctlr.plug(\"settings.overlay\")?.hide();\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchvolumenotifier\")?.inactive(), this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchbrightnessnotifier\")?.inactive();\r\n }\r\n if (this.xCheck) {\r\n this.xCheck = false;\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchtimelinenotifier\")?.inactive();\r\n this.media.intent.currentTime = this.nextTime;\r\n }\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PinRegistryMap {\r\n \"gesture.wheel\": typeof GestureWheelPin;\r\n }\r\n}\r\n","/*\r\n * Portions of this code are derived from Video.js\r\n * https://github.com/videojs/video.js\r\n * Licensed under Apache License 2.0\r\n * Copyright (c) Brightcove, Inc. and contributors\r\n */\r\n\r\n// Types\r\ntype Version = string | null;\r\ntype BrandEntry = { brand?: string; version?: string };\r\n\r\n// Environment guards\r\nconst win = \"undefined\" !== typeof window ? window : undefined,\r\n nav = win?.navigator,\r\n ua = nav?.userAgent || \"\",\r\n uaData = (nav as Navigator & { userAgentData?: { platform?: string; brands?: BrandEntry[] } })?.userAgentData;\r\n\r\n// Base flags: bools first, versions second for readability\r\nexport let IS_ANDROID = false;\r\nexport let IS_WINDOWS = false;\r\nexport let IS_FIREFOX = false;\r\nexport let IS_EDGE = false;\r\nexport let IS_CHROME = false;\r\nexport let IS_CHROMIUM = false;\r\nexport let IS_SAFARI = false;\r\nexport let IS_IE = false;\r\nexport let IS_TIZEN = false;\r\nexport let IS_WEBOS = false;\r\nexport let IS_IPOD = false;\r\nexport let IS_IPAD = false;\r\nexport let IS_IPHONE = false;\r\n// Versioned details\r\nexport let IOS_VERSION: Version = null;\r\nexport let ANDROID_VERSION: Version = null;\r\nexport let CHROME_VERSION: Version = null;\r\nexport let CHROMIUM_VERSION: Version = null;\r\nexport let IE_VERSION: Version = null;\r\n// Composite Flags\r\nexport let IS_IOS = false;\r\nexport let IS_MOBILE = false;\r\nexport let IS_SMART_TV = false;\r\n// Capabilities\r\nexport const IS_CHROMECAST_RECEIVER = Boolean((win as any)?.cast?.framework?.CastReceiverContext);\r\nexport const MSE_ENABLED = Boolean(win && (\"MediaSource\" in win || \"webkitMediaSource\" in win));\r\nexport const TOUCH_ENABLED = Boolean(win && (\"ontouchstart\" in win || (nav as Navigator & { maxTouchPoints?: number })?.maxTouchPoints || ((win as any).DocumentTouch && win.document instanceof (win as any).DocumentTouch)));\r\n// Media Queries\r\nexport const queryMediaMobile = (query = `(max-width: 480px), (max-width: 940px) and (max-height: 480px) and (orientation: landscape)`) => Boolean(win && \"matchMedia\" in win && win.matchMedia(query).matches);\r\n\r\n// Modern detection first (userAgentData)\r\nif (uaData?.platform && uaData?.brands) {\r\n // Helpers\r\n const pickVersion = (brands: BrandEntry[], needle: string): Version => brands.find((b) => b.brand === needle && b.version)?.version || null;\r\n // Platform first\r\n IS_ANDROID = uaData.platform === \"Android\";\r\n IS_WINDOWS = uaData.platform === \"Windows\";\r\n // Browser family\r\n IS_EDGE = uaData.brands.some((b) => b.brand === \"Microsoft Edge\");\r\n IS_CHROMIUM = uaData.brands.some((b) => b.brand === \"Chromium\" || b.brand === \"Google Chrome\");\r\n IS_CHROME = IS_CHROMIUM && !IS_EDGE;\r\n // Versions\r\n CHROMIUM_VERSION = CHROME_VERSION = pickVersion(uaData.brands, \"Chromium\") || pickVersion(uaData.brands, \"Google Chrome\");\r\n}\r\n\r\n// Fallback / additional parsing via UA string\r\nif (true || !IS_CHROMIUM || !CHROMIUM_VERSION) {\r\n // General Platforms\r\n IS_ANDROID ||= /Android/i.test(ua);\r\n IS_WINDOWS ||= /Windows/i.test(ua);\r\n // Desktop & general browsers (include iOS-branded variants)\r\n IS_FIREFOX = /Firefox|FxiOS/i.test(ua);\r\n IS_EDGE ||= /Edg|EdgiOS/i.test(ua);\r\n IS_CHROMIUM ||= /Chrome|CriOS/i.test(ua);\r\n IS_CHROME = IS_CHROMIUM && !IS_EDGE;\r\n IS_SAFARI = /Safari/i.test(ua) && !IS_CHROME && !IS_FIREFOX && !IS_EDGE;\r\n IS_IE = /MSIE|(Trident\\/7.0)|(rv:11.0)/i.test(ua);\r\n // TVs\r\n IS_TIZEN = /Tizen/i.test(ua);\r\n IS_WEBOS = /Web0S/i.test(ua);\r\n // Apple desktop/mobile device refinement\r\n IS_IPOD = /iPod/i.test(ua);\r\n IS_IPAD = /iPad/i.test(ua) || (IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(ua));\r\n IS_IPHONE = /iPhone/i.test(ua) && !IS_IPAD;\r\n // Versions\r\n IOS_VERSION = ua.match(/OS (\\d+)_/i)?.[1] ?? null;\r\n ANDROID_VERSION = ua.match(/Android\\s(\\d+(?:\\.\\d+)+)/i)?.[1] ?? null;\r\n CHROMIUM_VERSION = CHROME_VERSION = ua.match(/(?:Chrome|CriOS)\\/(\\d+)/)?.[1] ?? CHROMIUM_VERSION;\r\n IE_VERSION = ua.match(/MSIE\\s(\\d+)\\.\\d/)?.[1] || (/Trident\\/7.0/i.test(ua) && /rv:11.0/.test(ua) ? \"11.0\" : null);\r\n} // `true` override for devtools predictability\r\n\r\n// Composite Flags\r\nIS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\r\nIS_MOBILE = Boolean(IS_ANDROID || IS_IPHONE || IS_IPOD || IS_IPAD);\r\nIS_SMART_TV = IS_TIZEN || IS_WEBOS;\r\n","import { DeepPartial } from \"sia-reactor\";\r\nimport { GestureConfig, GestureTouchConfig, GestureWheelConfig } from \".\";\r\nimport { IS_MOBILE } from \"@utils/env\";\r\n\r\nexport const GESTURE_TOUCH_BUILD: Partial<GestureTouchConfig> = {\r\n volume: true,\r\n brightness: true,\r\n timeline: true,\r\n threshold: 200,\r\n axesRatio: 3,\r\n inset: 20,\r\n sliderTimeout: 1000,\r\n xRatio: 1,\r\n yRatio: 1,\r\n};\r\n\r\nexport const GESTURE_WHEEL_BUILD: Partial<GestureWheelConfig> = {\r\n volume: true,\r\n brightness: true,\r\n timeline: true,\r\n timeout: 2000,\r\n xRatio: 12,\r\n yRatio: 6,\r\n};\r\n\r\nexport const GESTURE_BUILD: DeepPartial<GestureConfig> = {\r\n click: IS_MOBILE ? false : \"paused\",\r\n dblClick: IS_MOBILE ? \"paused\" : \"fullscreen\",\r\n // touch: GESTURE_TOUCH_BUILD,\r\n // wheel: GESTURE_WHEEL_BUILD,\r\n};\r\n","import { Controller } from \"./controller\";\r\nimport { type Reactive, reactive } from \"sia-reactor\";\r\nimport { nuke } from \"sia-reactor/utils\";\r\nimport { guardAllMethods } from \"@utils/methd\";\r\nimport { isObj } from \"@utils/obj\";\r\nimport { isFunc } from \"@t007/utils\";\r\n\r\n// A lifecylce controlled by it's Controller\r\n// Try to use methods for most things so they can be customized when extended and also auto guarded\r\nexport abstract class Controllable<Config = any, State = any> {\r\n protected readonly ac = new AbortController();\r\n protected readonly signal = this.ac.signal;\r\n public readonly ctlr: Controller;\r\n public readonly media: Controller[\"media\"];\r\n public readonly state!: State extends object ? Reactive<State> : State; // for reactivity needs of those who pass it up\r\n public config: Config; // may be a reactive obj node or the obj itself\r\n public get settings() {\r\n return this.ctlr.settings; // can change ref\r\n } // for easy reach, better devx\r\n\r\n constructor(ctlr: Controller, config: Config, state?: State) {\r\n guardAllMethods(this, ctlr.guard);\r\n this.signal = AbortSignal.any([this.signal, ctlr.signal]);\r\n this.ctlr = ctlr;\r\n this.media = ctlr.media; // can't change ref\r\n this.state = (isObj(state) ? reactive(state) : state) as Controllable[\"state\"];\r\n this.config = config;\r\n }\r\n\r\n public setup(): this {\r\n return this.onSetup(), this; // We let the subclass do its work\r\n }\r\n protected abstract onSetup(): void;\r\n\r\n public destroy(): void {\r\n !this.signal.aborted && this.ac.abort(`[TMG Controllable] Instance is being destroyed`); // incase controller already aborted, kills all listeners and timers before proper destruction below\r\n this.onDestroy(), (this.state as any)?.destroy?.(), this.config !== this.media && isFunc((this.config as any)?.destroy) && (this.config as any)?.destroy?.(); // Can I clean here?... Anatoly :)\r\n nuke(this);\r\n }\r\n protected onDestroy(): void {}\r\n}\r\n","// src/ts/core/dom.ts\nimport { createEl, assignEl } from \"sia-reactor/utils\";\nimport { getActiveEl } from \"sia-reactor/utils\";\nimport { NOOP } from \"sia-reactor\";\nvar INTERACTIVE_SELECTOR = \":is(button,[href],input:not([type='hidden']),select,textarea,details>summary,[contenteditable],iframe,audio[controls],video[controls],[tabindex]):not([disabled],[tabindex='-1'],[data-focus-guard],[inert],[inert] *)\";\nvar isInteractive = (target) => target instanceof HTMLElement && target.matches(INTERACTIVE_SELECTOR);\nvar VIRTUAL_RESOURCE = /* @__PURE__ */ Symbol.for(\"T007_VIRTUAL_RESOURCE\");\nfunction loadResource(req, type = \"style\", { module, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, attempts = 3, retryKey = false } = {}, win = window) {\n win.t007 ??= {}, win.t007._resourceCache ??= {};\n if (req === VIRTUAL_RESOURCE || isSym(req)) return Promise.resolve();\n const src = req;\n if (win.t007._resourceCache[src]) return win.t007._resourceCache[src];\n const existing = type === \"script\" ? Array.prototype.find.call(win.document.scripts, (s) => isSameURL(s.src, src)) : type === \"style\" ? Array.prototype.find.call(win.document.styleSheets, (s) => isSameURL(s.href, src)) : null;\n if (existing) return win.t007._resourceCache[src] = Promise.resolve(existing);\n win.t007._resourceCache[src] = new Promise((resolve, reject) => {\n (function tryLoad(remaining, el) {\n const onerror = () => {\n el?.remove?.();\n if (remaining > 1) {\n setTimeout(tryLoad, 1e3, remaining - 1);\n console.warn(`Retrying ${type} load for \"${src}\" (${attempts - remaining + 1})...`);\n } else {\n delete win.t007._resourceCache[src];\n reject(new Error(`${capitalize(type)} load failed for \"${src}\" after ${attempts - 1} attempts`));\n }\n };\n const url = retryKey && remaining < attempts ? `${src}${src.includes(\"?\") ? \"&\" : \"?\"}_${retryKey}=${Date.now()}` : src;\n if (type === \"script\") win.document.body.append(el = createEl(\"script\", { src: url, type: module ? \"module\" : \"text/javascript\", crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, onload: () => resolve(el), onerror }) || \"\");\n else if (type === \"style\") win.document.head.append(el = createEl(\"link\", { rel: \"stylesheet\", href: url, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, onload: () => resolve(el), onerror }) || \"\");\n else reject(new Error(`Unsupported resource type: ${type}`));\n })(attempts);\n });\n return win.t007._resourceCache[src];\n}\nfunction getWindow(el = window) {\n return el?.ownerDocument?.defaultView ?? el?.defaultView ?? window;\n}\nfunction createListRenderer({ container, getKey, createNode, updateNode = NOOP, destroyNode = NOOP, initNode }) {\n let nodeRegistry = /* @__PURE__ */ new Map();\n if (initNode) {\n const children = Array.from(container.children);\n for (let i = 0, len = children.length; i < len; i++) initNode(children[i], (key) => nodeRegistry.set(key, children[i]));\n }\n return function syncDOM(array, strict = true) {\n const newRegistry = /* @__PURE__ */ new Map(), seenKeys = /* @__PURE__ */ new Set(), oldPositions = /* @__PURE__ */ new WeakMap(), children = Array.from(container.children);\n for (let i = 0, len = children.length; i < len; i++) oldPositions.set(children[i], i);\n const futureNodes = [], oldIndices = [];\n for (let i = 0, len = array.length; i < len; i++) {\n const item = array[i], key = getKey(item);\n if (seenKeys.has(key)) throw new Error(`[List Renderer] Duplicate key \"${key}\" detected`);\n let node = nodeRegistry.get(key);\n if (!node) {\n node = createNode(item);\n if (!node) {\n if (strict) throw new Error(`[List Renderer] No HTMLElement for key \"${key}\"`);\n continue;\n }\n oldIndices.push(-1);\n } else updateNode(node, item), oldIndices.push(oldPositions.get(node) ?? -1);\n seenKeys.add(key), futureNodes.push(node), newRegistry.set(key, node);\n }\n for (const [key, node] of nodeRegistry.entries()) !seenKeys.has(key) && node.parentElement === container && (destroyNode(node, key), node.remove());\n const sequence = longestIncreasingSubsequence(oldIndices), stable = new Set(sequence);\n let anchor = null;\n for (let i = futureNodes.length - 1; i >= 0; i--) {\n const node = futureNodes[i];\n if (oldIndices[i] !== -1 && stable.has(i)) {\n anchor = node;\n continue;\n }\n container.insertBefore(node, anchor), anchor = node;\n }\n nodeRegistry = newRegistry;\n };\n}\n\n// src/ts/index.ts\nimport { NIL, NOOP as NOOP2 } from \"sia-reactor\";\n\n// src/ts/core/obj.ts\nimport { isObj } from \"sia-reactor/utils\";\nfunction isDef(val) {\n return \"undefined\" !== typeof val;\n}\nfunction isSym(val) {\n return \"symbol\" === typeof val;\n}\nfunction isBool(val) {\n return \"boolean\" === typeof val;\n}\nfunction isNum(val) {\n return \"number\" === typeof val;\n}\nfunction isStr(val) {\n return \"string\" === typeof val;\n}\nfunction isArr(obj) {\n return Array.isArray(obj);\n}\nfunction isPOJO(obj, crossRealms = false, typecheck = true) {\n return (typecheck ? isObj(obj, false) : true) && (crossRealms ? Object.prototype.toString.call(obj) === \"[object Object]\" : obj.constructor === Object);\n}\nfunction isIter(obj) {\n return obj != null && \"function\" === typeof obj[Symbol.iterator];\n}\nfunction isFunc(val) {\n return \"function\" === typeof val;\n}\nfunction inBoolArrOpt(opt, str) {\n return opt?.includes?.(str) ?? opt;\n}\n\n// src/ts/core/num.ts\nimport { clamp } from \"sia-reactor/utils\";\nfunction longestIncreasingSubsequence(array) {\n const n = array.length, parent = new Array(n), tails = [];\n for (let i = 0; i < n; i++) {\n const value = array[i];\n if (value === -1) continue;\n let left = 0;\n let right = tails.length;\n while (left < right) {\n const mid = left + right >> 1;\n if (array[tails[mid]] < value) left = mid + 1;\n else right = mid;\n }\n if (left > 0) parent[i] = tails[left - 1];\n else parent[i] = -1;\n tails[left] = i;\n }\n if (!tails.length) return [];\n const result = [];\n let k = tails[tails.length - 1];\n while (k >= 0) result.push(k), k = parent[k];\n return result.reverse(), result;\n}\n\n// src/ts/core/str.ts\nfunction uid(prefix = \"\") {\n return prefix + Date.now().toString(36) + \"_\" + performance.now().toString(36).replace(\".\", \"\") + \"_\" + Math.random().toString(36).slice(2);\n}\nfunction capitalize(word = \"\") {\n return word.replace(/^(\\s*)([a-z])/i, (_, s, l) => s + l.toUpperCase());\n}\nfunction camelize(str = \"\", { source } = /[\\s_-]+/, { preserveInnerCase: pIC = true, upperFirst: uF = false } = {}) {\n return (pIC ? str : str.toLowerCase()).replace(new RegExp(source + \"(\\\\w)\", \"g\"), (_, c) => c.toUpperCase()).replace(/^\\w/, (c) => c[uF ? \"toUpperCase\" : \"toLowerCase\"]());\n}\nfunction uncamelize(str, separator = \" \") {\n return str.replace(/([a-z])([A-Z])/g, `$1${separator}$2`).toLowerCase();\n}\nfunction remToPx(rem, el = document.documentElement) {\n return rem * parseFloat(getComputedStyle(el).fontSize);\n}\nfunction pxToRem(px, el = document.documentElement) {\n return px / parseFloat(getComputedStyle(el).fontSize);\n}\nfunction parseCSSTime(time) {\n return time?.endsWith?.(\"ms\") ? parseFloat(time) : parseFloat(time) * 1e3;\n}\nfunction parseCSSSize(size, el) {\n return size?.endsWith?.(\"px\") ? parseFloat(size) : remToPx(parseFloat(size), el);\n}\nfunction cleanURL(url) {\n try {\n const u = new URL(url, window.location.href);\n return decodeURIComponent(u.origin + u.pathname);\n } catch {\n return url.replace(/\\\\/g, \"/\").split(\"?\")[0].trim();\n }\n}\nfunction isSameURL(url1, url2) {\n if (url1 === url2) return true;\n if (!isStr(url1) || !isStr(url2) || !url1 || !url2) return false;\n return cleanURL(url1) === cleanURL(url2);\n}\n\n// src/ts/core/fn.ts\nimport { setTimeout as setTimeout2, setInterval, requestAnimationFrame } from \"sia-reactor/utils\";\nfunction throttle(key, fn, delay = 30, strict = true, signal, win) {\n const throttleMap = t007._throttlers ??= /* @__PURE__ */ new Map();\n if (strict === true) {\n const now = performance.now();\n return now - (throttleMap.get(key) ?? 0) < delay ? void 0 : (throttleMap.set(key, now), fn());\n }\n if (throttleMap.has(key)) return;\n const id = strict === false ? setTimeout2(() => throttleMap.delete(key), delay, signal, win) : strict(() => throttleMap.delete(key));\n return throttleMap.set(key, id), fn();\n}\nfunction debounce(key, fn, delay = 30, strict = true, signal, win) {\n const debounceMap = t007._debouncers ??= /* @__PURE__ */ new Map();\n if (strict) {\n const now = performance.now(), prev = debounceMap.get(key) ?? 0;\n return debounceMap.set(key, now), now - prev < delay ? void 0 : fn();\n }\n const prevId = debounceMap.get(key);\n prevId !== void 0 && (win ?? window).clearTimeout(prevId);\n const id = setTimeout2(() => (debounceMap.delete(key), fn()), delay, signal, win);\n return void debounceMap.set(key, id);\n}\nfunction RAFLoop(key, fn, signal, win) {\n const rafLoopMap = t007._RAFLoopers ??= /* @__PURE__ */ new Map();\n if (rafLoopMap.has(key)) return void rafLoopMap.set(key, fn);\n rafLoopMap.set(key, fn);\n const loop = (_ = 0, fn2 = rafLoopMap.get(key)) => fn2 && (fn2(), requestAnimationFrame(loop, signal, win));\n loop();\n}\nvar cancelRAFLoop = (key) => t007._RAFLoopers ? t007._RAFLoopers.delete(key) : false;\nfunction limited(FN_KEY, fn, opts = {}) {\n let count = 0, { key, maxTimes: max = 1, oncePerSession = true } = isStr(opts) ? { key: opts } : opts;\n const getReg = () => JSON.parse(localStorage.getItem(FN_KEY) || \"{}\"), setReg = (r) => localStorage.setItem(FN_KEY, JSON.stringify(r));\n const handle = (...args) => {\n if (oncePerSession && count > 0) return void 0;\n if (!key) return count++ < max ? fn(...args) : void 0;\n const r = getReg(), c = r[key] || 0;\n return c < max ? (count++, r[key] = c + 1, setReg(r), fn(...args)) : void 0;\n };\n handle.left = max - (handle.count = count);\n handle.reset = () => (count = 0, key && ((r) => (delete r[key], setReg(r)))(getReg()));\n handle.block = () => (count = max, key && ((r) => (r[key] = max, setReg(r)))(getReg()));\n return handle;\n}\nvar mockAsync = (timeout = 250) => new Promise((resolve) => setTimeout2(resolve, timeout));\nvar breath = (w = window) => new Promise((res) => w.requestAnimationFrame(res));\nvar deepBreath = (w = window) => new Promise((res) => w.requestAnimationFrame(() => w.requestAnimationFrame(res)));\nfunction bindCleanupToSignal(cleanup, signal) {\n signal?.aborted ? cleanup() : signal?.addEventListener(\"abort\", cleanup, { once: true });\n if (signal && !signal.aborted) cleanup = (() => (signal.removeEventListener(\"abort\", cleanup), cleanup()));\n return cleanup;\n}\n\n// src/ts/core/keys.ts\nimport { KEYS_BLOCKS, parseKeyCombo, stringifyKeyEvent, cleanKeyCombo, matchKeys, getTermsForKey, keyEventAllowed, formatKeyForDisplay, formatKeyShortcutsForDisplay, parseForARIAKS } from \"sia-reactor/utils\";\n\n// src/ts/core/file.ts\nfunction formatSize(bytes, decimals = 3, base = 1e3) {\n if (bytes < base) return `${bytes} byte${bytes == 1 ? \"\" : \"s\"}`;\n const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"], exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(base)), units.length - 1);\n return `${(bytes / Math.pow(base, exponent)).toFixed(decimals).replace(/\\.0+$/, \"\")} ${units[exponent]}`;\n}\n\n// src/ts/mixins/methd.ts\nimport { onAllMethods, bindAllMethods, guardAllMethods, guardMethod } from \"sia-reactor/utils\";\n\n// src/ts/index.ts\nif (\"undefined\" !== typeof window) {\n (window.t007 ??= {}).VIRTUAL_RESOURCE = VIRTUAL_RESOURCE;\n window.T007_TOAST_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest`;\n window.T007_INPUT_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest`;\n window.T007_DIALOG_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest`;\n window.T007_TOAST_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest/dist/index.min.css`;\n window.T007_INPUT_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest/dist/index.min.css`;\n window.T007_DIALOG_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest/dist/index.min.css`;\n}\n\nexport {\n createEl,\n assignEl,\n INTERACTIVE_SELECTOR,\n isInteractive,\n VIRTUAL_RESOURCE,\n loadResource,\n getWindow,\n createListRenderer,\n getActiveEl,\n isObj,\n isDef,\n isSym,\n isBool,\n isNum,\n isStr,\n isArr,\n isPOJO,\n isIter,\n isFunc,\n inBoolArrOpt,\n longestIncreasingSubsequence,\n clamp,\n uid,\n capitalize,\n camelize,\n uncamelize,\n remToPx,\n pxToRem,\n parseCSSTime,\n parseCSSSize,\n cleanURL,\n isSameURL,\n setTimeout2 as setTimeout,\n setInterval,\n requestAnimationFrame,\n throttle,\n debounce,\n RAFLoop,\n cancelRAFLoop,\n limited,\n mockAsync,\n breath,\n deepBreath,\n bindCleanupToSignal,\n KEYS_BLOCKS,\n parseKeyCombo,\n stringifyKeyEvent,\n cleanKeyCombo,\n matchKeys,\n getTermsForKey,\n keyEventAllowed,\n formatKeyForDisplay,\n formatKeyShortcutsForDisplay,\n parseForARIAKS,\n formatSize,\n onAllMethods,\n bindAllMethods,\n guardAllMethods,\n guardMethod,\n NIL,\n NOOP2 as NOOP\n};\n","import { camelize } from \"./str\";\r\nimport type { Control, ControlPanelBottomTuple } from \"@plugs/settings/controlPanel/types\";\r\nimport { type Paths, type PathValue } from \"sia-reactor\";\r\nimport { setPath } from \"sia-reactor/utils\";\r\nimport type { UIObject, UISettings, UIOption, UITuple } from \"@defs/UIOptions\";\r\nimport { isObj, isArr } from \"@t007/utils\";\r\n\r\nexport { isArr, isObj };\r\nexport { isDef, isSym, isBool, isNum, isStr, isPOJO, isIter, isFunc, inBoolArrOpt } from \"@t007/utils\";\r\n\r\n// Type Guards\r\nexport function isUISetting<T = unknown>(obj: unknown): obj is UISettings<T> {\r\n return isObj(obj) && \"options\" in obj && isArr((obj as UISettings<T>).options);\r\n}\r\nexport function isUIOption<T>(opt: UIOption<T>): opt is UITuple<T> {\r\n return isObj(opt) && \"value\" in (opt as object);\r\n}\r\n\r\n// Assignment & Derivation\r\nexport function setHTMLConfig<T extends object>(target: T, attr: `tmg--${Paths<T, \"--\">}`, value: string): void {\r\n value = value.trim();\r\n const path = attr.replace(\"tmg--\", \"\") as Paths<T, \"--\">;\r\n const parsedValue = (() => {\r\n if (value.includes(\",\")) return value.split(\",\")?.map((v: string) => v.trim());\r\n if (value === \"true\") return true;\r\n if (value === \"false\") return false;\r\n if (value === \"null\") return null;\r\n if (/^\\d+$/.test(value)) return Number(value);\r\n return value;\r\n })() as PathValue<T, typeof path, \"--\">;\r\n setPath<T, \"--\">(target, path, parsedValue, \"--\", (p) => camelize(p));\r\n}\r\n\r\nexport function getBoolOrStr(value: string | boolean): string | boolean {\r\n return value === \"true\" ? true : value === \"false\" ? false : value;\r\n}\r\n\r\nexport function getUIOpt<T = unknown>(opts: UIOption<T>[] | undefined, value: T, key: \"display\" | \"value\" = \"display\"): string {\r\n if (opts)\r\n for (const opt of opts) {\r\n const p = parseUIOpt<T>(opt);\r\n if (p.value == value) return p[key] as string;\r\n }\r\n return String(value);\r\n}\r\n\r\nexport function getUniqueOpts<T>(options: UITuple<T>[]) {\r\n const counts: Record<string, number> = {};\r\n options.forEach((opt) => (counts[opt.display] = (counts[opt.display] || 0) + 1)); // First pass: Count occurrences of each display name\r\n const seen: Record<string, number> = {};\r\n for (let i = options.length - 1; i >= 0; i--) {\r\n const opt = options[i];\r\n if (counts[opt.display] > 1) {\r\n seen[opt.display] = (seen[opt.display] || 0) + 1;\r\n const num = counts[opt.display] - seen[opt.display] + 1;\r\n opt.display = `${opt.display} (${num})`;\r\n }\r\n } // Second pass: Add numbers to duplicates, tracking our current index from the back\r\n return options;\r\n}\r\n\r\nexport function parseUIOpt<T = unknown>(opt: UIOption<T>): UITuple<T> {\r\n return isUIOption<T>(opt) ? { value: opt.value, display: String(opt.display ?? opt.value), infoText: opt.infoText } : { value: opt as T, display: String(opt) };\r\n}\r\nexport function parseUIOpts<T = unknown>(opts: UIOption<T>[]): T[] {\r\n return opts.map((opt) => parseUIOpt(opt).value);\r\n}\r\n\r\nexport function parseUIObj<T extends Record<string, any>>(obj: T): UIObject<T> {\r\n const result: any = {} as UIObject<T>,\r\n keys = Object.keys(obj);\r\n for (let i = 0; i < keys.length; i++) {\r\n const entry = obj[keys[i]];\r\n if (!isObj(entry)) continue;\r\n if (isUISetting(entry))\r\n result[keys[i]] = {\r\n values: entry.options.map((opt: UIOption<unknown>) => parseUIOpt(opt).value),\r\n displays: entry.options.map((opt: UIOption<unknown>) => parseUIOpt(opt).display),\r\n };\r\n else result[keys[i]] = parseUIObj(entry); // recurse on sub-branch\r\n }\r\n return result;\r\n}\r\n\r\n// Control Panel Utilities\r\nexport function parsePanelBottomObj(obj: Partial<ControlPanelBottomTuple> | Control[][] | Control[] | unknown, arr?: false): ControlPanelBottomTuple | false;\r\nexport function parsePanelBottomObj(obj: Partial<ControlPanelBottomTuple> | Control[][] | Control[] | unknown, arr: true): Control[] | false;\r\nexport function parsePanelBottomObj(obj: Partial<ControlPanelBottomTuple> | Control[][] | Control[] | unknown = [], arr = false): ControlPanelBottomTuple | Control[] | false {\r\n if (!isObj(obj) && !isArr(obj)) return false;\r\n const [third = [], second = [], first = []] = isObj<Partial<ControlPanelBottomTuple>>(obj) ? (Object.values(obj).reverse() as Control[][]) : isArr((obj as Control[][])[0]) ? [...(obj as Control[][])].reverse() : [obj as Control[]];\r\n return arr ? ([...third, ...second, ...first] as Control[]) : ({ 1: first, 2: second, 3: third } as ControlPanelBottomTuple);\r\n}\r\n\r\nexport function getPanelSplitCtrls<T = any>(row: T[]): { left: T[]; center: T[]; right: T[] } {\r\n if (!row?.length) return { left: [], center: [], right: [] };\r\n const s1 = row.indexOf(\"spacer\" as any),\r\n s2 = row.indexOf(\"spacer\" as any, s1 + 1);\r\n return s1 === -1 ? { left: row, center: [], right: [] } : s2 === -1 ? { left: row.slice(0, s1), center: [], right: row.slice(s1 + 1) } : { left: row.slice(0, s1), center: row.slice(s1 + 1, s2), right: row.slice(s2 + 1) };\r\n}\r\n\r\nexport function getPanelLocation(b: any, id: string) {\r\n if (isArr(b.top) && b.top.includes(id)) return { path: \"top\", row: b.top, zone: getPanelSplitCtrls(b.top).left.includes(id) ? \"left\" : getPanelSplitCtrls(b.top).center.includes(id) ? \"center\" : \"right\" };\r\n if (isArr(b.center) && b.center.includes(id)) return { path: \"center\", row: b.center, zone: \"zone\" };\r\n if (b.bottom) {\r\n const dB = parsePanelBottomObj(b.bottom);\r\n if (dB) for (const k in dB) if ((dB as any)[k]?.includes(id)) return { path: `bottom.${k}`, row: (dB as any)[k], zone: getPanelSplitCtrls((dB as any)[k]).left.includes(id) ? \"left\" : getPanelSplitCtrls((dB as any)[k]).center.includes(id) ? \"center\" : \"right\" };\r\n }\r\n return { path: \"bottom.1\", row: [], zone: \"left\" };\r\n}\r\n\r\nexport function insertPanelCtrl(current: any[], defaults: readonly any[], id: string): void {\r\n let s = 0;\r\n for (let i = 0; i < defaults.indexOf(id); i++) if (defaults[i] === \"spacer\") s++;\r\n for (let i = defaults.indexOf(id) + 1; i < defaults.length; i++)\r\n if (defaults[i] === \"spacer\") {\r\n let c = 0;\r\n for (let j = 0; j < current.length; j++) if (current[j] === \"spacer\" && ++c === s + 1) return void current.splice(j, 0, id);\r\n } else {\r\n const idx = current.indexOf(defaults[i]);\r\n if (idx !== -1) return void current.splice(idx, 0, id);\r\n }\r\n current.push(id);\r\n}\r\n","import { Controllable } from \"@core/controllable\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { PlugConstructor as PC, PinConstructor as PIC } from \"./types\";\r\nimport type { PlugRegistryMap, PinRegistryMap, MenuRegistryMap } from \"@defs/registries\";\r\nimport { getPath } from \"sia-reactor/utils\";\r\nimport { MenuRegistry } from \"@core/registries\";\r\n\r\nexport abstract class BasePlug<Config = any, State = any> extends Controllable<Config, State> {\r\n public static readonly plugName: string;\r\n public static readonly isCore: boolean = false;\r\n public static readonly isMain: boolean = false;\r\n public static readonly BUILD: any;\r\n public static get surname() {\r\n return this.isMain ? \"\" : \"settings.\";\r\n }\r\n public static get fullName() {\r\n return (this.surname + this.plugName) as keyof PlugRegistryMap;\r\n }\r\n public get name() {\r\n return (this.constructor as PC).plugName;\r\n }\r\n\r\n constructor(ctlr: Controller, config: Config | undefined = getPath(ctlr.config as any, new.target.fullName), state?: State) {\r\n ctlr.plug(new.target.fullName)?.destroy();\r\n super(ctlr, config, state);\r\n const path = new.target.fullName as any;\r\n this.ctlr.config.watch(path, () => (this.config = getPath(this.ctlr.config, path)), { signal: this.signal }); // #COMPUTED: config can lose reference\r\n ctlr.plugs.set(new.target.fullName, this);\r\n }\r\n\r\n protected override onSetup(): void {\r\n this.mount?.();\r\n this.ctlr.state.readyState ? this.wire?.() : this.wire && this.ctlr.state.wonce(\"readyState\", this.wire, { signal: this.signal }); // wire after all plugs setup\r\n }\r\n protected override onDestroy(): void {\r\n this.unmount?.();\r\n this.ctlr.plugs.delete((this.constructor as PC).fullName);\r\n }\r\n\r\n public mount?(): void {}\r\n public unmount?(): void {}\r\n public wire(): void {\r\n this.registerMenu();\r\n }\r\n\r\n protected registerMenu(): void {\r\n this.ctlr.plug(\"settings.settingsView\")?.menu.register(MenuRegistry.get((this.constructor as PC).fullName as keyof MenuRegistryMap)?.(this as any));\r\n } // override to configure positioning\r\n}\r\n\r\nexport abstract class BasePin<Plug extends BasePlug = BasePlug, Config = any, State = any> extends Controllable<Config, State> {\r\n public static readonly pinName: string;\r\n public static readonly Plug: PC;\r\n public static readonly BUILD: any;\r\n public static get surname() {\r\n return this.Plug.plugName;\r\n }\r\n public static get fullName() {\r\n return (this.surname + \".\" + this.pinName) as keyof PinRegistryMap;\r\n }\r\n public get name() {\r\n return (this.constructor as PIC).Plug.fullName;\r\n }\r\n public get plug(): Plug {\r\n return this.ctlr.plug<Plug>((this.constructor as PIC).Plug.fullName)!; // `!`: only plug will instantiate after all\r\n }\r\n\r\n constructor(ctlr: Controller, config: Config, state?: State) {\r\n super(ctlr, config, state);\r\n const path = (new.target.Plug.fullName + \".\" + new.target.pinName) as any;\r\n this.ctlr.config.watch(path, () => (this.config = getPath(this.ctlr.config, path)), { signal: this.signal }); // #COMPUTED: config can lose reference\r\n }\r\n\r\n protected override onSetup(): void {} // plug handles mount and wire\r\n protected override onDestroy(): void {\r\n this.unmount?.();\r\n }\r\n\r\n public mount?(): void {}\r\n public unmount?(): void {}\r\n public wire?(): void {}\r\n}\r\n\r\nexport type * from \"./types\";\r\n","import type { CtlrConfig } from \"@defs/config\";\r\nimport { CTX, type DeepPartial } from \"sia-reactor\";\r\nimport { ACTIONS_BUILD } from \"./actions\";\r\n\r\nexport const CONFIG_BUILD: DeepPartial<CtlrConfig> = {\r\n mediaType: \"video\",\r\n mediaPlayer: \"TMG\",\r\n media: { intent: { playsInline: true, textVisible: true, brightness: 100 } },\r\n actions: Object.fromEntries(Object.entries(ACTIONS_BUILD).map(([k, v]) => [k, { id: k, ...v }])) as any,\r\n logicPathBlacklist: [\"media.state\", \"media.status\", \"media.tech\", \"media.features\", \"media.type\", \"media.element\", \"media.pseudoElement\", \"media.container\", \"media.pseudoContainer\"],\r\n settings: {\r\n // techOrder: [\r\n // \"youtube\", // 1. Black-box (Regex must catch these URLs instantly)\r\n // \"vimeo\", // 2. Black-box (Regex must catch these URLs instantly)\r\n // \"shaka\", // 3. THE APEX PREDATOR (Catches .mpd and .m3u8 first)\r\n // \"hls\", // 4. Fallback (Catches .m3u8 ONLY if Shaka is disabled/fails)\r\n // \"dash\", // 5. Fallback (Catches .mpd ONLY if Shaka is disabled/fails)\r\n // \"html5\", // 6. The Native Floor (Catches raw .mp4, .webm, .mp3, etc.)\r\n // ],\r\n },\r\n debug: true,\r\n devMode: CTX.isDevEnv,\r\n noPlugList: [], // dev: \"settings.persist\"\r\n};\r\n","export const ACTIONS_BUILD = {\n // --- Keyboard-only actions (no default voice triggers; path router covers voice) ---\n playPause: { label: \"Play / Pause\" },\n skipFwd: { label: \"Skip Forward\", notify: \"fwd\" },\n skipBwd: { label: \"Skip Back\", notify: \"bwd\" },\n volumeUp: { label: \"Volume Up\", notify: \"volumeup\" },\n volumeDown: { label: \"Volume Down\", notify: \"volumedown\" },\n brightnessUp: { label: \"Brightness Up\", notify: \"brightnessup\" },\n brightnessDown: { label: \"Brightness Down\", notify: \"brightnessdown\" },\n playbackRateUp: { label: \"Playback Rate Up\", notify: \"playbackrateup\" },\n playbackRateDown: { label: \"Playback Rate Down\", notify: \"playbackratedown\" },\n stepFwd: { label: \"Step Forward\", notify: \"fwd\" },\n stepBwd: { label: \"Step Back\", notify: \"bwd\" },\n prev: { label: \"Previous\", notify: \"mediaprev\" },\n next: { label: \"Next\", notify: \"medianext\" },\n captions: { label: \"Captions\", notify: \"captions\" },\n captionsFontSizeUp: { label: \"Captions: Font Size Up\" },\n captionsFontSizeDown: { label: \"Captions: Font Size Down\" },\n captionsFontFamily: { label: \"Captions: Font Family\" },\n captionsFontWeight: { label: \"Captions: Font Weight\" },\n captionsFontVariant: { label: \"Captions: Font Variant\" },\n captionsFontOpacity: { label: \"Captions: Font Opacity\" },\n captionsBackgroundOpacity: { label: \"Captions: Background Opacity\" },\n captionsWindowOpacity: { label: \"Captions: Window Opacity\" },\n captionsCharacterEdgeStyle: { label: \"Captions: Character Edge\" },\n captionsTextAlignment: { label: \"Captions: Text Alignment\" },\n objectFit: { label: \"Object Fit\" },\n capture: { label: \"Capture Frame\", notify: \"capture\" },\n cast: { label: \"Cast\", notify: \"cast\" },\n airplay: { label: \"AirPlay\", notify: \"airplay\" },\n dark: { label: \"Dark Mode\" },\n settings: { label: \"Settings\", zen: true },\n // --- Logic-expressible actions (logic[] + keyboard, no default voice triggers) ---\n mute: { label: \"Mute\", notify: \"volumemuted\" },\n fullscreen: { label: \"Fullscreen\", notify: \"fullscreen\", logic: [{ path: \"media.intent.fullscreen\", op: \"toggle\" }] },\n theater: { label: \"Theater\", notify: \"theater\", logic: [{ path: \"media.intent.theater\", op: \"toggle\" }] },\n pictureInPicture: { label: \"Picture in Picture\", notify: \"pictureinpicture\", logic: [{ path: \"media.intent.pictureInPicture\", op: \"toggle\" }] },\n timeFormat: { label: \"Time Format\" },\n timeMode: { label: \"Time Mode\" },\n // --- Compound (voice|time)-only actions (voice engine meta, path router can't reach these) ---\n timeTravelUndo: { label: \"Time Travel: Undo\", zen: true },\n timeTravelRedo: { label: \"Time Travel: Redo\", zen: true },\n voiceQuit: { label: \"Voice: Quit\", zen: true },\n voiceSleep: { label: \"Voice: Sleep\", zen: true },\n voiceSubmit: { label: \"Voice: Submit\", zen: true },\n voiceHistoryFirst: { label: \"Voice: Go to Root\", zen: true },\n voiceHistoryPrev: { label: \"Voice: Go Back\", zen: true },\n voiceHistoryNext: { label: \"Voice: Go Forward\", zen: true },\n voiceHistoryLast: { label: \"Voice: Go to Leaf\", zen: true },\n voiceHistoryClear: { label: \"Voice: Clear History\", zen: true },\n voiceToggleOn: { label: \"Voice: Toggle On\", zen: true },\n voiceToggleOff: { label: \"Voice: Toggle Off\", zen: true },\n} as const;\n","import type { BaseTech, TechConstructor } from \"@techs/base\";\r\nimport type { BasePin, BasePlug, PinConstructor, PlugConstructor } from \"@plugs/base\";\r\nimport type { BaseComponent, ComponentConstructor } from \"@components/base\";\r\nimport { CONFIG_BUILD as CB } from \"@consts/config\";\r\nimport type { ComponentRegistryMap, IconRegistryMap, PinRegistryMap, PlugRegistryMap, TechRegistryMap, MenuRegistryMap } from \"@defs/registries\";\r\nimport { deletePath, setPath } from \"sia-reactor/utils\";\r\nimport { Controller } from \"./controller\";\r\n\r\nexport interface RegistryItem<T> {\r\n name: string;\r\n value: T;\r\n config?: any; // no closed doors\r\n}\r\n\r\nexport class BaseRegistry<T> {\r\n protected items: RegistryItem<T>[] = [];\r\n\r\n public register(name: string, value: T, config?: any): this {\r\n return this.unregister(name), this.items.push({ name, value, config }), this;\r\n }\r\n public unregister(name: string, idx = this.items.findIndex((i) => i.name === name)): this {\r\n return idx !== -1 && this.items.splice(idx, 1), this;\r\n }\r\n public get(name: string): T | undefined {\r\n return this.items.find((i) => i.name === name)?.value;\r\n }\r\n public getAll(order?: string[]): T[] {\r\n if (!order) return this.items.map((i) => i.value);\r\n return this.items.sort((a, b, ai = order.indexOf(a.name), bi = order.indexOf(b.name)) => (ai === -1 && bi === -1 ? 0 : ai === -1 ? 1 : bi === -1 ? -1 : ai - bi)).map((i) => i.value);\r\n }\r\n public clear() {\r\n return (this.items = []), this;\r\n }\r\n}\r\n\r\nexport class OrderedRegistry<T> extends BaseRegistry<T> {\r\n public registerFirst(name: string, value: T, config?: any) {\r\n return this.unregister(name), this.items.unshift({ name, value, config }), this;\r\n }\r\n public registerBefore(key: string, name: string, value: T, config?: any) {\r\n this.unregister(name);\r\n const idx = this.items.findIndex((i) => i.name === key);\r\n return idx !== -1 ? (this.items.splice(idx, 0, { name, value, config }), this) : this.register(name, value, config);\r\n }\r\n public registerAfter(key: string, name: string, value: T, config?: any) {\r\n this.unregister(name);\r\n const idx = this.items.findIndex((i) => i.name === key);\r\n return idx !== -1 ? (this.items.splice(idx + 1, 0, { name, value, config }), this) : this.register(name, value, config);\r\n }\r\n}\r\n\r\nexport class TechRegistry extends OrderedRegistry<TechConstructor> {\r\n private static instance = new TechRegistry();\r\n\r\n public static get<K extends keyof TechRegistryMap>(name: K): TechRegistryMap[K] | undefined;\r\n public static get<T extends BaseTech = BaseTech>(name: string): TechConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Tech: TechConstructor): void {\r\n this.instance.register(Tech.techName, Tech);\r\n }\r\n public static unregister(name: string): void {\r\n this.instance.unregister(name);\r\n }\r\n public static registerBefore(key: string, Tech: TechConstructor): void {\r\n this.instance.registerBefore(key, Tech.techName, Tech);\r\n }\r\n public static registerAfter(key: string, Tech: TechConstructor): void {\r\n this.instance.registerAfter(key, Tech.techName, Tech);\r\n }\r\n public static pick(src: string, techOrder?: string[]): TechConstructor | null {\r\n return this.instance.getAll(techOrder).find((Tech) => Tech.canPlaySource(src)) || null;\r\n }\r\n}\r\n\r\nexport class PlugRegistry extends OrderedRegistry<PlugConstructor> {\r\n private static instance = new PlugRegistry();\r\n\r\n public static get<K extends keyof PlugRegistryMap>(name: K): PlugRegistryMap[K] | undefined;\r\n public static get<T extends BasePlug = BasePlug>(name: string): PlugConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Plug: PlugConstructor, editBuild = Plug.BUILD !== undefined): void {\r\n this.instance.register(Plug.fullName, Plug);\r\n editBuild && setPath(CB as any, Plug.fullName, Plug.BUILD);\r\n }\r\n public static unregister(fullName: string, editBuild = true): void {\r\n this.instance.unregister(fullName);\r\n editBuild && deletePath(CB as any, fullName);\r\n }\r\n public static registerBefore(key: string, Plug: PlugConstructor): void {\r\n this.instance.registerBefore(key, Plug.fullName, Plug);\r\n }\r\n public static registerAfter(key: string, Plug: PlugConstructor): void {\r\n this.instance.registerAfter(key, Plug.fullName, Plug);\r\n }\r\n public static getOrdered(): PlugConstructor[] {\r\n return this.instance.getAll();\r\n }\r\n}\r\n\r\nexport class PinRegistry extends BaseRegistry<PinConstructor> {\r\n private static instance = new PinRegistry();\r\n\r\n public static get<K extends keyof PinRegistryMap>(name: K): PinRegistryMap[K] | undefined;\r\n public static get<T extends BasePin = BasePin>(name: string): PinConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Pin: PinConstructor, editBuild = Pin.BUILD !== undefined): void {\r\n this.instance.register(Pin.fullName, Pin);\r\n editBuild && setPath(CB as any, Pin.Plug.fullName + \".\" + Pin.pinName, Pin.BUILD);\r\n }\r\n public static unregister(fullName: string, editBuild = true): void {\r\n this.instance.unregister(fullName);\r\n editBuild && deletePath((fullName.slice(0, fullName.indexOf(\".\")) in CB ? CB : CB.settings) as any, fullName);\r\n }\r\n}\r\n\r\nexport class MenuRegistry extends BaseRegistry<any> {\r\n private static instance = new MenuRegistry();\r\n\r\n public static get<K extends keyof MenuRegistryMap>(name: K): MenuRegistryMap[K] | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register<K extends keyof MenuRegistryMap>(name: K, factory: MenuRegistryMap[K]): void;\r\n public static register(name: string, factory: any): void {\r\n this.instance.register(name, factory);\r\n }\r\n public static unregister(name: keyof MenuRegistryMap): void {\r\n this.instance.unregister(name);\r\n }\r\n}\r\n\r\nexport class ComponentRegistry extends BaseRegistry<ComponentConstructor> {\r\n private static instance = new ComponentRegistry();\r\n\r\n public static get<K extends keyof ComponentRegistryMap>(name: K): ComponentRegistryMap[K] | undefined;\r\n public static get<T extends BaseComponent = BaseComponent>(name: string): ComponentConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Comp: ComponentConstructor): void {\r\n this.instance.register(Comp.componentName, Comp);\r\n }\r\n public static unregister(name: keyof ComponentRegistryMap): void {\r\n this.instance.unregister(name);\r\n }\r\n public static init<K extends keyof ComponentRegistryMap>(name: K, ctlr: Controller, config?: any): InstanceType<ComponentRegistryMap[K]> | null;\r\n public static init<T extends BaseComponent = BaseComponent>(name: string, ctlr: any, config?: any): T | null;\r\n public static init(name: string, ctlr: any, config = {}): any {\r\n const Comp = this.instance.get(name);\r\n if (!Comp) return null;\r\n const instance = new Comp(ctlr, config);\r\n return instance.create(), instance.setup();\r\n }\r\n public static getAll(): ComponentConstructor[] {\r\n return this.instance.getAll();\r\n }\r\n}\r\n\r\nexport class IconRegistry extends BaseRegistry<string> {\r\n private static instance = new IconRegistry();\r\n\r\n public static get<K extends keyof IconRegistryMap>(name: K, raw?: boolean, token?: RegExp | string): IconRegistryMap[K] | string;\r\n public static get(name: string, raw = false, token = /\\btmg-media-[^\\s\"']+\\s*/g) {\r\n return (raw ? this.instance.get(name)?.replace(token, \"\") : this.instance.get(name)) || `<svg></svg>`;\r\n }\r\n public static register<K extends keyof IconRegistryMap>(name: K, svg: IconRegistryMap[K]): void;\r\n public static register(name: string, svg: string): void {\r\n this.instance.register(name, svg);\r\n }\r\n public static unregister(name: keyof IconRegistryMap): void {\r\n this.instance.unregister(name);\r\n }\r\n // Bulk register a map of icons { play: \"<svg...>\", pause: \"<svg...>\" }\r\n public static registerAll(icons: Record<keyof IconRegistryMap, IconRegistryMap[keyof IconRegistryMap]>): void {\r\n for (const k of Object.keys(icons)) this.instance.register(k as keyof IconRegistryMap, icons[k as keyof IconRegistryMap]);\r\n }\r\n}\r\n","import { NOOP } from \"sia-reactor\";\r\nimport { bindCleanupToSignal as bindSig } from \"./fn\";\r\nconst win = \"undefined\" !== typeof window ? window : undefined;\r\n\r\n// Element Factory\r\nexport { createEl, assignEl, getWindow, createListRenderer } from \"@t007/utils\";\r\nexport { initVScrollerator } from \"@t007/utils/hooks/vanilla\";\r\n\r\n// Resource Loading\r\nexport { loadResource } from \"@t007/utils\";\r\n\r\n// Viewport Checks\r\nexport function inDocView(el: Element, axis: \"x\" | \"y\" = \"y\"): boolean {\r\n const rect = el.getBoundingClientRect(),\r\n inX = rect.left + win!.scrollX >= 0 && rect.right + win!.scrollX <= win!.scrollX + (win!.innerWidth || win!.document.documentElement.clientWidth),\r\n inY = rect.top + win!.scrollY >= 0 && rect.bottom + win!.scrollY <= win!.scrollY + (win!.innerHeight || win!.document.documentElement.clientHeight);\r\n return axis === \"x\" ? inY : axis === \"y\" ? inX : inY && inX;\r\n}\r\n\r\nexport function getElSiblingAt(p: number, dir: \"x\" | \"y\", els: HTMLElement[] | NodeListOf<HTMLElement>, pos: \"before\" | \"after\" | \"at\" = \"after\"): HTMLElement | undefined {\r\n return (\r\n els.length &&\r\n (\r\n Array.prototype.reduce.call(\r\n els,\r\n ((closest: { offset: number; element: Element | undefined }, child: Element) => {\r\n const { top: cT, left: cL, width: cW, height: cH } = child.getBoundingClientRect(),\r\n offset = p - (dir === \"y\" ? cT : cL) - (dir === \"y\" ? cH : cW) / 2,\r\n condition = pos === \"after\" ? offset < 0 && offset > closest.offset : pos === \"before\" ? offset > 0 && offset < closest.offset : pos === \"at\" ? Math.abs(offset) <= (dir === \"y\" ? cH : cW) / 2 && Math.abs(offset) < Math.abs(closest.offset) : false;\r\n return condition ? { offset, element: child } : closest;\r\n }) as any,\r\n { offset: pos === \"after\" ? -Infinity : Infinity, element: undefined }\r\n ) as any\r\n ).element\r\n );\r\n}\r\n\r\n// Fullscreen & Picture-in-Picture\r\nexport const queryFullscreen = (): boolean => Boolean(queryFullscreenEl());\r\nexport const queryFullscreenEl = (d = document as any): Element | null => d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement || d.msFullscreenElement || null;\r\n\r\nexport const queryPictureInPicture = (): boolean => Boolean(queryPictureInPictureEl());\r\nexport const queryPictureInPictureEl = () => document.pictureInPictureElement;\r\n\r\nexport const supportsFullscreen = (vp = HTMLVideoElement.prototype as any, d = document as any) => Boolean(d.fullscreenEnabled || d.mozFullscreenEnabled || d.msFullscreenEnabled || d.webkitFullscreenEnabled || d.webkitSupportsFullscreen || vp.webkitEnterFullscreen);\r\nexport const supportsPictureInPicture = (vp = HTMLVideoElement.prototype as any, d = document as any, w = window as any) => Boolean(d.pictureInPictureEnabled || vp.requestPictureInPicture || w.documentPictureInPicture);\r\n\r\nexport const enterFullscreen = (el: any): Promise<void> => (el.webkitEnterFullscreen ? el.webkitEnterFullscreen() : el.requestFullscreen ? el.requestFullscreen() : el.mozRequestFullScreen ? el.mozRequestFullScreen() : el.webkitRequestFullscreen ? el.webkitRequestFullscreen() : el.msRequestFullscreen ? el.msRequestFullscreen() : Promise.reject(new Error(\"Fullscreen API is not supported\")));\r\nexport const exitFullscreen = (el: any, d = document as any): Promise<void> => (queryFullscreenEl(d) === el ? (el.webkitExitFullscreen ? el.webkitExitFullscreen() : d.exitFullscreen ? d.exitFullscreen() : d.mozCancelFullScreen ? d.mozCancelFullScreen() : d.webkitExitFullscreen ? d.webkitExitFullscreen() : d.msExitFullscreen ? d.msExitFullscreen() : Promise.reject(new Error(\"Fullscreen API is not supported\"))) : Promise.resolve());\r\n\r\n// Safe Click Handling\r\ntype SafeClickEl = HTMLElement & {\r\n _clickHandler?: (e: MouseEvent) => void;\r\n _dblClickHandler?: (e: MouseEvent) => void;\r\n _clickTimeoutId?: ReturnType<typeof setTimeout>;\r\n};\r\nexport function addSafeClicks(el?: SafeClickEl | null, onClick: (e: MouseEvent) => any = NOOP, onDblClick: (e: MouseEvent) => any = NOOP, options?: boolean | AddEventListenerOptions): void {\r\n el && removeSafeClicks(el);\r\n el?.addEventListener(\"click\", (el._clickHandler = (e: MouseEvent) => (clearTimeout(el._clickTimeoutId), (el._clickTimeoutId = setTimeout(() => onClick(e), 300)))), options);\r\n el?.addEventListener(\"dblclick\", (el._dblClickHandler = (e: MouseEvent) => (clearTimeout(el._clickTimeoutId), onDblClick(e))), options);\r\n}\r\nexport function removeSafeClicks(el?: SafeClickEl | null): void {\r\n el?.removeEventListener(\"click\", el._clickHandler as EventListener);\r\n el?.removeEventListener(\"dblclick\", el._dblClickHandler as EventListener);\r\n}\r\n\r\n// DOM Observers\r\ndeclare global {\r\n interface Element {\r\n _resizeCbs?: Set<(entry: ResizeObserverEntry) => void>;\r\n _intersectCbs?: Set<(entry: IntersectionObserverEntry) => void>;\r\n _mutationCbs?: Set<(mutations: MutationRecord[]) => void>;\r\n }\r\n}\r\n\r\nexport const intersectionObserver = win\r\n ? new IntersectionObserver(\r\n (entries) => {\r\n for (const entry of entries) if (entry.target._intersectCbs) for (const cb of entry.target._intersectCbs) cb(entry);\r\n },\r\n { root: null, rootMargin: \"0px\", threshold: 0.3 }\r\n )\r\n : null;\r\n\r\nexport const resizeObserver = win\r\n ? new ResizeObserver((entries) => {\r\n for (const entry of entries) if (entry.target._resizeCbs) for (const cb of entry.target._resizeCbs) cb(entry);\r\n })\r\n : null;\r\n\r\nexport const mutationObserver = win\r\n ? new MutationObserver((mutations) => {\r\n // Dispatch to specific targets if they are being observed directly\r\n // Note: MutationObserver works differently; this handles the 'root' observer callbacks\r\n // We map the *target* of the observation, not the mutation target usually.\r\n // For this util, we assume the observer instance calls the callback associated with the observed node.\r\n // Since we use one global observer, we need to map back.\r\n // Actually, for MutationObserver it's cleaner to keep separate instances if configs differ,\r\n // but for \"utils\" style, we can use a Map logic or just basic callback sets.\r\n // Current implementation assumes the caller handles the mutation list.\r\n const target = mutations[0].target as Element; // Batch usually targets one observer\r\n if (target._mutationCbs) for (const cb of target._mutationCbs) cb(mutations);\r\n })\r\n : null;\r\n\r\n// --- PUBLIC API ---\r\nexport function observeResize(el: Element, cb: (entry: ResizeObserverEntry) => void, sig?: AbortSignal) {\r\n (el._resizeCbs ?? (el._resizeCbs = new Set())).add(cb);\r\n resizeObserver?.observe(el);\r\n return bindSig(() => (el._resizeCbs?.delete(cb), !el._resizeCbs?.size && resizeObserver?.unobserve(el)), sig);\r\n}\r\n\r\nexport function observeIntersection(el: Element, cb: (entry: IntersectionObserverEntry) => void, sig?: AbortSignal) {\r\n (el._intersectCbs ?? (el._intersectCbs = new Set())).add(cb);\r\n intersectionObserver?.observe(el);\r\n return bindSig(() => (el._intersectCbs?.delete(cb), !el._intersectCbs?.size && intersectionObserver?.unobserve(el)), sig);\r\n}\r\n\r\nexport function observeMutation(el: Element, cb: (mutations: MutationRecord[]) => void, options: MutationObserverInit, sig?: AbortSignal) {\r\n (el._mutationCbs ?? (el._mutationCbs = new Set())).add(cb);\r\n mutationObserver?.observe(el, options);\r\n return bindSig(() => el._mutationCbs?.delete(cb), sig);\r\n}\r\n","import {\n INTERACTIVE_SELECTOR,\n clamp,\n createEl,\n getActiveEl,\n isInteractive\n} from \"./chunk-ZALPHCSJ.js\";\n\n// src/ts/hooks/vanilla/outsideClick.ts\nimport { NIL, NOOP } from \"sia-reactor\";\nfunction initOutsideClick(el, { enabled = false, onOutside = NOOP, outOnClick = true, outOnEscape = true, outOnFocusOut = false, allowBounds = false, allowInputs = false, root = window, scoped = true, capture = true } = NIL) {\n const stack = t007._outsiders_stack ??= [], existing = (t007._outsiders ??= /* @__PURE__ */ new WeakMap()).get(el);\n if (!enabled || existing) return existing ? existing : void 0;\n scoped = scoped && root instanceof HTMLElement, root = scoped ? root : root === document ? document : window;\n const onScopedOut = (e, t, p = e.touches?.[0] || e, rect = allowBounds ? el.getBoundingClientRect() : null) => {\n if (stack.at(-1) !== el || (allowBounds ? p.clientX >= rect.left && p.clientX <= rect.right && p.clientY >= rect.top && p.clientY <= rect.bottom : el.contains(t))) return false;\n return (!scoped ? true : root.contains(t)) && onOutside(e);\n }, handleClick = ((e) => outOnClick && !(allowInputs && isInteractive(e.target)) && onScopedOut(e, e.target)), handleEscape = ((e) => outOnEscape && e.key === \"Escape\" && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey && stack.at(-1) === el && onOutside(e)), handleFocusOut = (e) => outOnFocusOut && !el.contains(e.relatedTarget) && onScopedOut(e, e.relatedTarget);\n root.addEventListener(\"mousedown\", handleClick, capture), root.addEventListener(\"touchstart\", handleClick, { passive: true, capture });\n root.addEventListener(\"keydown\", handleEscape, capture);\n el.addEventListener(\"focusout\", handleFocusOut, capture);\n const destroy = () => {\n root.removeEventListener(\"mousedown\", handleClick, capture), root.removeEventListener(\"touchstart\", handleClick, capture);\n root.removeEventListener(\"keydown\", handleEscape, capture);\n el.removeEventListener(\"focusout\", handleFocusOut, capture);\n t007._outsiders.delete(el), stack.splice(stack.indexOf(el), 1);\n };\n return !stack.includes(el) && stack.push(el), t007._outsiders.set(el, destroy), destroy;\n}\nvar removeOutsideClick = (el) => t007._outsiders?.get(el)?.();\n\n// src/ts/hooks/vanilla/focusTrap.ts\nimport { NIL as NIL2 } from \"sia-reactor\";\nfunction initFocusTrap(el, { enabled = false, initialSelector = \"[data-autofocus]\", ringClassName = \"focus-outline\", root = window, scoped = true, capture = true } = NIL2) {\n const stack = t007._ftrappers_stack ??= [], existing = (t007._ftrappers ??= /* @__PURE__ */ new WeakMap()).get(el);\n if (!enabled || existing) return existing ? existing : void 0;\n scoped = scoped && root instanceof HTMLElement, root = scoped ? root : root === document ? document : window;\n let recovering = false;\n const focused = document.querySelector(\":focus\"), initial = el.querySelector(initialSelector), first = createEl(\"span\", { tabIndex: 0 }, { focusGuard: \"start\" }, { position: \"absolute\", width: \"0\", height: \"0\", pointerEvents: \"none\" }), last = createEl(\"span\", { tabIndex: 0 }, { focusGuard: \"end\" }, { position: \"absolute\", width: \"0\", height: \"0\", pointerEvents: \"none\" }), getFocusable = (c = el) => [...c.querySelectorAll(INTERACTIVE_SELECTOR)], resetFocus = (i = 0, els = getFocusable()) => !recovering && (recovering = true, els?.length ? els.at(i).focus() : (!el.hasAttribute(\"tabindex\") && (el.tabIndex = -1), el.focus()), recovering = false), edgeFocus = (pre = false, rt = root) => {\n if (!scoped) return resetFocus(pre ? -1 : 0);\n if (rt.hasAttribute(\"tabindex\")) return rt.focus();\n const items = getFocusable();\n if (!items.length) return resetFocus(0, null);\n const ceil = document.fullscreenElement || document.querySelector(\"dialog:modal\") || document.body;\n let p = rt.parentElement || ceil, all = getFocusable(p);\n while (p !== ceil && (!all.length || (pre ? rt.contains(all[0]) : rt.contains(all.at(-1))))) all = getFocusable(p = p.parentElement || ceil);\n for (let target, len = all.length, i = all.indexOf(items[pre ? 0 : items.length - 1]) + (pre ? -1 : 1); pre ? i >= 0 : i < len; pre ? i-- : i++) if (!rt.contains(target = all[i])) return target.focus();\n (pre ? first : last).blur();\n }, handleFocusIn = (e) => {\n if (document.querySelector(\"dialog:modal\") && !el.matches(\"dialog:modal\")) return;\n stack.at(-1) === el && getActiveEl(el.ownerDocument) !== root && !el.contains(getActiveEl(el.ownerDocument)) && !e.composedPath().includes(el) && resetFocus();\n }, handleInitialBlur = () => initial.classList.remove(ringClassName);\n first.addEventListener(\"focus\", (e) => el.contains(e.relatedTarget) ? edgeFocus(true) : resetFocus(), capture), el.prepend(first);\n last.addEventListener(\"focus\", (e) => el.contains(e.relatedTarget) ? edgeFocus() : resetFocus(-1), capture), el.append(last);\n root.addEventListener(\"focusin\", handleFocusIn, capture);\n if (initial || !el.contains(focused)) !initial ? setTimeout(resetFocus) : setTimeout(() => (initial.classList.add(ringClassName), initial.focus(), initial.addEventListener(\"blur\", handleInitialBlur, capture)));\n const destroy = () => {\n focused?.isConnected && focused.focus(), first.remove(), last.remove();\n root.removeEventListener(\"focusin\", handleFocusIn, capture);\n initial?.removeEventListener(\"blur\", handleInitialBlur, capture);\n t007._ftrappers.delete(el), stack.splice(stack.indexOf(el), 1);\n };\n const handle = { destroy, sync: () => (el.prepend(first), el.append(last)) };\n return !stack.includes(el) && stack.push(el), t007._ftrappers.set(el, handle), handle;\n}\nvar removeFocusTrap = (el) => t007._ftrappers?.get(el)?.destroy();\nvar syncFocusTrap = (el) => t007._ftrappers?.get(el)?.sync();\n\n// src/ts/hooks/vanilla/ripple.ts\nimport { NIL as NIL3 } from \"sia-reactor\";\nfunction rippleHandler(e, { target, forceCenter = false, wrapperClassName = \"t007-ripple-wrapper\", className = \"t007-ripple\", holdClassName = \"t007-ripple-hold\", fadeClassName = \"t007-ripple-fade\", maxDuration = 1e3 } = NIL3) {\n const el = target || e.currentTarget;\n if (!el || e.target !== e.currentTarget && isInteractive(e.target) || el.hasAttribute(\"disabled\") || e.pointerType === \"mouse\" && e.button !== 0) return;\n e.stopPropagation?.();\n const { offsetWidth: rW, offsetHeight: rH } = el, { width: w, height: h, left: l, top: t } = el.getBoundingClientRect(), size = Math.max(rW, rH), x = forceCenter ? rW / 2 - size / 2 : (e.clientX - l) * rW / w - size / 2, y = forceCenter ? rH / 2 - size / 2 : (e.clientY - t) * rH / h - size / 2, wrapper = createEl(\"span\", { className: wrapperClassName }), ripple = createEl(\"span\", { className: className + \" \" + holdClassName }, {}, { cssText: `width:${size}px;height:${size}px;left:${x}px;top:${y}px;` });\n let canRelease = false;\n ripple.addEventListener(\"animationend\", () => canRelease = true, { once: true });\n el.append(wrapper.appendChild(ripple).parentElement);\n let released = false;\n const release = (force) => {\n if (released) return;\n if (!canRelease && force !== true) return ripple.addEventListener(\"animationend\", release, { once: true }), void setTimeout(release, maxDuration, true);\n released = true;\n ripple.classList.replace(holdClassName, fadeClassName);\n ripple.addEventListener(\"animationend\", () => setTimeout(() => wrapper.remove())), setTimeout(() => wrapper.remove(), maxDuration);\n for (const evt of [\"pointerup\", \"pointercancel\"]) (el.ownerDocument?.defaultView || window).removeEventListener(evt, release);\n };\n for (const evt of [\"pointerup\", \"pointercancel\"]) (el.ownerDocument?.defaultView || window).addEventListener(evt, release);\n}\n\n// src/ts/hooks/react/useArrowNavigation/utils.ts\nvar getTargetIndex = ({ key, currIndex, length, gridX, gridY, vGridY, loop, ctrlKey = false, rtl }) => {\n const rowStart = currIndex - currIndex % gridX, rowEnd = Math.min(rowStart + gridX - 1, length - 1), colStart = currIndex % gridX, colEnd = Math.min(colStart + gridX * (gridY - 1), length - 1), canX = gridX > 1, canY = gridY > 1, horizontalMove = rtl ? { ArrowRight: canX ? -1 : 0, ArrowLeft: canX ? 1 : 0 } : { ArrowRight: canX ? 1 : 0, ArrowLeft: canX ? -1 : 0 }, move = { ...horizontalMove, ArrowDown: canY ? gridX : 0, ArrowUp: canY ? -gridX : 0, Home: ctrlKey ? 0 : rowStart, End: ctrlKey ? length - 1 : rowEnd, PageDown: (vGridY - 1) * gridX, PageUp: -(vGridY - 1) * gridX }[key] ?? 0;\n let targetIndex = key === \"Home\" || key === \"End\" ? move : currIndex + move;\n if (key === \"ArrowDown\") {\n if (!loop && targetIndex >= length) targetIndex -= move;\n } else if (key === \"ArrowUp\") {\n if (!loop && targetIndex < 0) targetIndex += Math.abs(move);\n } else if (key === \"PageDown\") {\n if (!loop && targetIndex >= length) targetIndex = colEnd;\n } else if (key === \"PageUp\") {\n if (!loop && targetIndex < 0) targetIndex = colStart;\n }\n return loop ? (targetIndex + length) % length : clamp(0, targetIndex, length - 1);\n};\nvar getCommonAncestor = (first, second) => {\n if (!first) return null;\n if (!second) return first.parentElement;\n const ancestors = /* @__PURE__ */ new Set();\n let current = first;\n while (current) ancestors.add(current), current = current.parentElement;\n current = second;\n while (current) {\n if (ancestors.has(current)) return current;\n current = current.parentElement;\n }\n return null;\n};\nvar getGrid = (all, x = true, y = true, vY = true) => {\n const len = all.length, grid = {};\n if (!len) return grid;\n let cols = all.findIndex((el) => el.offsetTop !== all[0].offsetTop);\n cols = cols > 0 ? cols : len;\n if (x) grid.x = cols;\n let rows = Math.ceil(len / cols);\n if (y) grid.y = rows;\n if (vY) {\n const itemHeight = all[0].offsetHeight ?? 0, containerHeight = getCommonAncestor(all[0], all[1])?.clientHeight ?? 0;\n rows = clamp(1, Math.floor(containerHeight / itemHeight), rows) || rows;\n grid.vY = rows;\n }\n return grid;\n};\n\n// src/ts/hooks/react/useArrowNavigation/consts.ts\nimport { NOOP as NOOP2 } from \"sia-reactor\";\nvar H_NAV_KEYS = [\"ArrowRight\", \"ArrowLeft\", \"Home\", \"End\"];\nvar V_NAV_KEYS = [\"ArrowUp\", \"ArrowDown\", \"PageDown\", \"PageUp\"];\nvar NAV_KEYS = [...H_NAV_KEYS, ...V_NAV_KEYS];\nvar DEFAULT_CONFIG = {\n enabled: null,\n selector: \"[data-arrow-item]\",\n focusOnHover: true,\n loop: true,\n virtual: false,\n typeahead: false,\n rovingTab: null,\n defaultTabbableIndex: null,\n baseTabIndex: \"0\",\n resetMs: 500,\n rtl: null,\n grid: {},\n activeClass: \"focus-outlined\",\n inputSelector: \"input,textarea,[contenteditable]\",\n focusOptions: { preventScroll: false },\n scrollIntoView: { block: \"nearest\", inline: \"nearest\" },\n onSelect: NOOP2,\n onFocusOut: NOOP2\n};\n\nexport {\n initOutsideClick,\n removeOutsideClick,\n getTargetIndex,\n getCommonAncestor,\n getGrid,\n H_NAV_KEYS,\n NAV_KEYS,\n DEFAULT_CONFIG,\n initFocusTrap,\n removeFocusTrap,\n syncFocusTrap,\n rippleHandler\n};\n","import {\n DEFAULT_CONFIG,\n H_NAV_KEYS,\n NAV_KEYS,\n getCommonAncestor,\n getGrid,\n getTargetIndex,\n initFocusTrap,\n initOutsideClick,\n removeFocusTrap,\n removeOutsideClick,\n rippleHandler,\n syncFocusTrap\n} from \"../chunk-NX2LWYD6.js\";\nimport {\n INTERACTIVE_SELECTOR,\n createEl,\n getActiveEl\n} from \"../chunk-ZALPHCSJ.js\";\n\n// src/ts/hooks/vanilla/scrollAssist.ts\nimport { NIL } from \"sia-reactor\";\nfunction initScrollAssist(el, { pxPerSecond = 80, assistClassName = \"t007-scroll-assist\", vertical = true, horizontal = true } = NIL) {\n const parent = el?.parentElement, existing = (t007._scrollers ??= /* @__PURE__ */ new WeakMap()).get(el);\n if (!parent || existing) return existing ? existing : void 0;\n t007._scrollers_r_observer ??= new ResizeObserver((entries) => {\n for (const { target } of entries) t007._scrollers.get(target)?.update();\n });\n t007._scrollers_m_observer ??= new MutationObserver((entries) => {\n const els = /* @__PURE__ */ new Set();\n for (const entry of entries) {\n let node = entry.target instanceof Element ? entry.target : null;\n while (node && !t007._scrollers.has(node)) node = node.parentElement;\n if (node) els.add(node);\n }\n for (const el2 of els) t007._scrollers.get(el2)?.update();\n });\n const assist = {};\n let scrollId = null, last = performance.now(), assistWidth = 20, assistHeight = 20;\n const update = () => {\n const hasInteractive = !!parent.querySelector(INTERACTIVE_SELECTOR);\n if (horizontal) {\n const w = assist.left?.offsetWidth || assistWidth, check = hasInteractive ? el.clientWidth < w * 2 : false;\n assist.left.style.display = check ? \"none\" : el.scrollLeft > 0 ? \"block\" : \"none\";\n assist.right.style.display = check ? \"none\" : el.scrollLeft + el.clientWidth < el.scrollWidth - 1 ? \"block\" : \"none\";\n assistWidth = w;\n }\n if (vertical) {\n const h = assist.up?.offsetHeight || assistHeight, check = hasInteractive ? el.clientHeight < h * 2 : false;\n assist.up.style.display = check ? \"none\" : el.scrollTop > 0 ? \"block\" : \"none\";\n assist.down.style.display = check ? \"none\" : el.scrollTop + el.clientHeight < el.scrollHeight - 1 ? \"block\" : \"none\";\n assistHeight = h;\n }\n };\n const scroll = (dir) => {\n const frame = () => {\n const now = performance.now(), dt = now - last;\n last = now;\n const d = pxPerSecond * dt / 1e3;\n if (dir === \"left\") el.scrollLeft = Math.max(0, el.scrollLeft - d);\n if (dir === \"right\") el.scrollLeft = Math.min(el.scrollWidth - el.clientWidth, el.scrollLeft + d);\n if (dir === \"up\") el.scrollTop = Math.max(0, el.scrollTop - d);\n if (dir === \"down\") el.scrollTop = Math.min(el.scrollHeight - el.clientHeight, el.scrollTop + d);\n scrollId = requestAnimationFrame(frame);\n };\n last = performance.now();\n frame();\n };\n const stop = () => (cancelAnimationFrame(scrollId ?? 0), scrollId = null);\n const addAssist = (dir) => {\n const div = createEl(\"div\", { className: assistClassName }, { scrollDirection: dir }, { display: \"none\" });\n if (!div) return;\n for (const evt of [\"pointerenter\", \"dragenter\"]) div.addEventListener(evt, () => scroll(dir));\n for (const evt of [\"pointerleave\", \"pointerup\", \"pointercancel\", \"dragleave\", \"dragend\"]) div.addEventListener(evt, stop);\n dir === \"left\" || dir === \"up\" ? parent.insertBefore(div, el) : parent.append(div);\n assist[dir] = div;\n };\n if (horizontal) for (const dir of [\"left\", \"right\"]) addAssist(dir);\n if (vertical) for (const dir of [\"up\", \"down\"]) addAssist(dir);\n const handle = {\n update,\n destroy() {\n stop(), el.removeEventListener(\"scroll\", update);\n t007._scrollers_r_observer.unobserve(el), t007._scrollers.delete(el);\n for (const a of Object.values(assist)) a.remove();\n }\n };\n update(), el.addEventListener(\"scroll\", update);\n t007._scrollers_r_observer.observe(el), t007._scrollers_m_observer.observe(el, { childList: true, subtree: true, characterData: true });\n return t007._scrollers.set(el, handle), handle;\n}\nvar removeScrollAssist = (el) => t007._scrollers.get(el)?.destroy();\n\n// src/ts/hooks/vanilla/scrollerator.ts\nimport { NIL as NIL2 } from \"sia-reactor\";\nfunction initVScrollerator({ baseSpeed = 3, maxSpeed = 10, stepDelay = 2e3, baseRate = 16, lineHeight = 80, margin = 80, car = window } = NIL2) {\n let linesPerSec = baseSpeed, accelId = null, lastTime = null;\n const drive = (clientY, brake = false, offsetY = 0) => {\n if (car !== window) clientY -= offsetY;\n const now = performance.now(), speed = linesPerSec * lineHeight * ((lastTime ? now - lastTime : baseRate) / 1e3);\n if (!brake && (clientY < margin || clientY > (car.innerHeight ?? car.offsetHeight) - margin)) {\n accelId === null ? accelId = setTimeout(() => linesPerSec += 1, stepDelay) : linesPerSec > baseSpeed && (linesPerSec = Math.min(linesPerSec + 1, maxSpeed));\n car.scrollBy?.(0, clientY < margin ? -speed : speed);\n } else reset();\n return lastTime = !brake ? now : null, speed;\n };\n const reset = () => (accelId && clearTimeout(accelId), accelId = null, linesPerSec = baseSpeed, lastTime = null);\n return { drive, reset };\n}\n\n// src/ts/hooks/vanilla/arrowNavigation.ts\nfunction initArrowNavigation(container, config = {}) {\n const existing = (t007._arrownavs ??= /* @__PURE__ */ new WeakMap()).get(container);\n if (!config.enabled || existing) return existing ? existing : void 0;\n const { enabled: isEnabled, selector, focusOnHover, loop, virtual, typeahead, resetMs, activeClass, inputSelector, defaultTabbableIndex, baseTabIndex, grid, rtl: isRtl, focusOptions, scrollIntoView, onSelect, onFocusOut, rovingTab } = { ...DEFAULT_CONFIG, ...config };\n let gridX = grid.x || 1, gridY = grid.y || 1, vGridY = grid.vY || 1, activeIndex = -1, buffer = \"\", timeout = null, items = [];\n const enabled = isEnabled ?? virtual, roving = rovingTab ?? !virtual, rtl = isRtl ?? (\"undefined\" === typeof document ? false : getComputedStyle(container).direction === \"rtl\"), shouldSnub = () => !enabled || !container, isItemDisabled = (el) => !el || el.matches('[disabled],[aria-disabled=\"true\"],[inert],:disabled'), getItems = () => items = Array.from(container.querySelectorAll(selector));\n const getAbleIndex = (targetIndex, e = { key: \"ArrowRight\", ctrlKey: false }) => {\n if (shouldSnub() || !items.length) return null;\n let index = targetIndex;\n let attempts = 0;\n while (attempts < items.length) {\n if (!isItemDisabled(items[index])) return index;\n index = getTargetIndex({ key: e.key, currIndex: index, gridX, gridY, vGridY, length: items.length, loop, ctrlKey: e.ctrlKey, rtl });\n attempts++;\n }\n return null;\n };\n const goToIndex = (targetIndex, e = { key: \"ArrowRight\" }) => {\n if (shouldSnub()) return;\n const idx = getAbleIndex(targetIndex, e);\n if (idx === null) return;\n resetActiveIndex(idx);\n onSelect?.(items[idx], e), updateDOM();\n if (virtual) {\n items[idx]?.scrollIntoView(scrollIntoView);\n container.setAttribute(\"aria-activedescendant\", items[idx].id || \"\");\n } else items[idx]?.focus(focusOptions);\n };\n const updateDOM = () => {\n if (shouldSnub() || !virtual && !roving || !items.length) return;\n const hasDefaultTabbable = defaultTabbableIndex !== null && defaultTabbableIndex !== void 0, tabbableIndex = hasDefaultTabbable && !isItemDisabled(items[defaultTabbableIndex]) ? defaultTabbableIndex : getAbleIndex(0);\n for (let i = 0, len = items.length; i < len; i++) {\n const el = items[i], isActive = i === activeIndex;\n if (roving) el.setAttribute(\"tabindex\", i === activeIndex || activeIndex === -1 && i === tabbableIndex ? baseTabIndex : \"-1\");\n else if (virtual && activeIndex > 0) el.setAttribute(\"tabindex\", i > activeIndex ? baseTabIndex : \"-1\");\n else el.setAttribute(\"tabindex\", baseTabIndex);\n if (virtual) el.setAttribute(\"aria-selected\", String(isActive)), el.classList.toggle(activeClass, isActive);\n }\n };\n const resetActiveIndex = (index = -1) => (activeIndex = index, updateDOM());\n const typeAhead = (key) => {\n if (shouldSnub() || !typeahead) return;\n buffer += key.toLowerCase();\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => buffer = \"\", resetMs);\n const start = activeIndex >= 0 ? activeIndex + 1 : 0;\n for (let i = 0; i < items.length; i++) {\n const idx = (start + i) % items.length, label = (items[idx].getAttribute(\"data-label\") || items[idx].innerText || \"\").trim().toLowerCase();\n if (label.startsWith(buffer)) return goToIndex(idx);\n }\n };\n const simulateKey = (e) => {\n const t = e.target;\n if (shouldSnub() || getActiveEl(t?.ownerDocument)?.matches(\"option\")) return;\n const { key } = e;\n if (!items.length) return;\n if (virtual && (key === \" \" || key === \"Enter\")) return items[activeIndex]?.click();\n if (t?.matches(DEFAULT_CONFIG.inputSelector) && !virtual) return;\n if (typeahead && key.length === 1 && /^[a-z0-9]$/i.test(key)) return typeAhead(key);\n if (!NAV_KEYS.includes(key)) return;\n if (!(e.currentTarget?.matches(DEFAULT_CONFIG.inputSelector) && gridX <= 1 && H_NAV_KEYS.includes(key))) e.preventDefault?.(), e.stopPropagation?.();\n const currIndex = virtual ? activeIndex : items.indexOf(getActiveEl(t?.ownerDocument)), targetIndex = getTargetIndex({ currIndex, gridX, gridY, vGridY, length: items.length, loop, rtl, key, ctrlKey: e.ctrlKey });\n goToIndex(targetIndex, e);\n };\n getItems(), updateDOM();\n const interactiveEls = !virtual ? [container] : [container.querySelector(inputSelector)];\n for (const el of interactiveEls) el?.addEventListener(\"keydown\", simulateKey);\n const handleFocusOut = (e) => {\n if (!container.contains(e.relatedTarget)) return resetActiveIndex(), updateDOM(), onFocusOut?.(e);\n const among = items.includes(e.relatedTarget);\n if (!among && (defaultTabbableIndex ?? -1) >= 0) return resetActiveIndex(), updateDOM();\n if (virtual) resetActiveIndex(), updateDOM();\n };\n container.addEventListener(\"focusout\", handleFocusOut);\n const handleHover = (e) => {\n if (!enabled || !focusOnHover) return;\n const el = e.currentTarget, idx = items.indexOf(el);\n if (idx !== -1) goToIndex(idx);\n };\n for (const el of items) el.addEventListener(\"mouseenter\", handleHover);\n const sync = () => {\n const oldEl = items[activeIndex];\n for (const el of items) el.removeEventListener(\"mouseenter\", handleHover);\n getItems();\n for (const el of items) el.addEventListener(\"mouseenter\", handleHover);\n calcGrid();\n const newEl = items[activeIndex];\n updateDOM();\n if (oldEl && newEl && oldEl === newEl) return;\n resetActiveIndex(), updateDOM();\n };\n const mutationObserver = new MutationObserver(sync);\n mutationObserver.observe(container, { childList: true, subtree: true });\n const setGrid = (g) => {\n if (g.x !== void 0) gridX = g.x;\n if (g.y !== void 0) gridY = g.y;\n if (g.vY !== void 0) vGridY = g.vY;\n };\n let ancestor = null;\n const resizeObserver = new ResizeObserver(() => calcGrid());\n const calcGrid = () => {\n setGrid(getGrid(items, !grid.x, !grid.y, !grid.vY));\n const next = items.length > 1 ? getCommonAncestor(items[0], items[1]) : container;\n if (next && next !== ancestor) ancestor && resizeObserver.unobserve(ancestor), ancestor = next, resizeObserver.observe(ancestor);\n };\n setGrid(grid), calcGrid();\n const destroy = () => {\n for (const el of interactiveEls) el?.removeEventListener(\"keydown\", simulateKey);\n container.removeEventListener(\"focusout\", handleFocusOut);\n for (const el of items) el.removeEventListener(\"mouseenter\", handleHover);\n mutationObserver.disconnect(), resizeObserver.disconnect();\n if (timeout) clearTimeout(timeout);\n t007._arrownavs.delete(container);\n };\n const handle = { gridX: () => gridX, gridY: () => gridY, vGridY: () => vGridY, items: () => items, activeIndex: () => activeIndex, activeItem: () => items[activeIndex] ?? null, getAbleIndex, typeAhead, goToIndex, simulateKey, sync, destroy };\n return t007._arrownavs.set(container, handle), handle;\n}\nvar removeArrowNavigation = (container) => t007._arrownavs?.get(container)?.destroy();\nvar syncArrowNavigation = (container) => t007._arrownavs?.get(container)?.sync();\nexport {\n initArrowNavigation,\n initFocusTrap,\n initOutsideClick,\n initScrollAssist,\n initVScrollerator,\n removeArrowNavigation,\n removeFocusTrap,\n removeOutsideClick,\n removeScrollAssist,\n rippleHandler,\n syncArrowNavigation,\n syncFocusTrap\n};\n","import { BasePlug } from \"../../base\";\r\nimport type { GestureConfig, GestureState } from \"./types\";\r\nimport type { GestureWheelPin } from \"./wheel\";\r\nimport type { GestureTouchPin } from \"./touch\";\r\nimport { GESTURE_BUILD } from \"./build\";\r\nimport { PinRegistry } from \"@core/registries\";\r\nimport { Controller } from \"@core/controller\";\r\nimport { addSafeClicks } from \"@utils/dom\";\r\nimport { IS_MOBILE } from \"@utils/env\";\r\nimport { rippleHandler } from \"@t007/utils/hooks/vanilla\";\r\nimport { setTimeout } from \"sia-reactor/utils\";\r\n\r\nexport class GesturePlug extends BasePlug<GestureConfig, GestureState> {\r\n public static readonly plugName = \"gesture\";\r\n public static readonly BUILD = GESTURE_BUILD;\r\n public wheel?: GestureWheelPin;\r\n public touch?: GestureTouchPin;\r\n public skipPersistPos: \"left\" | \"right\" | null = null;\r\n protected focusSubjectId = \"\";\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.gesture) {\r\n super(ctlr, config, { skipPersist: false });\r\n const WheelPin = PinRegistry.get(\"gesture.wheel\"),\r\n TouchPin = PinRegistry.get(\"gesture.touch\");\r\n WheelPin && (this.wheel = new WheelPin(this.ctlr, this.config.wheel)), TouchPin && (this.touch = new TouchPin(this.ctlr, this.config.touch));\r\n }\r\n\r\n public override wire(): void {\r\n const run = () => {\r\n // Event Listeners\r\n addSafeClicks(this.ctlr.DOM.controlsContainer, this.handleClick, this.handleDblClick, { capture: true, signal: this.signal });\r\n for (const el of [this.ctlr.DOM.controlsContainer, this.ctlr.DOM.bottomControlsWrapper]) {\r\n el?.addEventListener(\"click\", this.handleAnyClick, { capture: true, signal: this.signal });\r\n el?.addEventListener(\"contextmenu\", this.handleRightClick, { signal: this.signal });\r\n el?.addEventListener(\"focusin\", this.handleFocusIn, { capture: true, signal: this.signal });\r\n el?.addEventListener(\"keydown\", this.handleKeyFocusIn, { capture: true, signal: this.signal });\r\n for (const evt of [\"pointermove\", \"dragenter\", \"scroll\"]) el?.addEventListener(evt, this.handleHoverPointerActive, { capture: true, signal: this.signal });\r\n el?.addEventListener(\"mouseleave\", this.handleHoverPointerOut, { capture: true, signal: this.signal });\r\n }\r\n // Utility Injection\r\n this.wheel?.wire(), this.touch?.wire();\r\n };\r\n this.ctlr.payload.wired ? run() : this.ctlr.state.wonce(\"readyState\", run, { signal: this.signal }); // #HEAVY: waits for !lightState\r\n // Post Wiring\r\n super.wire();\r\n }\r\n\r\n public override mount(): void {\r\n this.wheel?.mount?.(), this.touch?.mount?.();\r\n }\r\n\r\n protected handleAnyClick(): void {\r\n this.ctlr.plug(\"settings.overlay\")?.delay();\r\n // this.ctlr.plug(\"settings.controlPanel\")?.comp(\"timeline\")?.stopScrubbing();\r\n }\r\n\r\n protected handleRightClick(e: MouseEvent): void {\r\n e.preventDefault();\r\n }\r\n\r\n protected handleClick(e: MouseEvent): void {\r\n if (e.target !== this.ctlr.DOM.controlsContainer) return;\r\n if (this.ctlr.plug(\"settings.fastPlay\")?.speedCheck && (this.ctlr.plug(\"settings.keys\")?.playTriggerSeq ?? 1) < 1) return;\r\n if (IS_MOBILE && !this.ctlr.isUIActive(\"pictureInPicture\") && !this.media.status.waiting && !this.media.status.ended && (!this.ctlr.plug(\"settings.time\")?.skipNotifier || !this.ctlr.isUIActive(\"overlay\"))) !/hidden|persistent/.test(this.settings.overlay.behavior.value) && this.media.container.classList.toggle(\"tmg-media-overlay\");\r\n if (!this.ctlr.isUIActive(\"miniplayer\") && this.config.click) (this.media.intent[this.config.click] = !this.media.state[this.config.click] as never), this.config.click === \"paused\" && this.ctlr.plug(\"settings.notifiers\")?.notify(this.media.intent.paused ? \"mediapause\" : \"mediaplay\");\r\n }\r\n\r\n protected handleDblClick(e: MouseEvent): void {\r\n const { clientX: x, target, detail } = e;\r\n if (target !== this.ctlr.DOM.controlsContainer) return;\r\n const rect = this.media.container.getBoundingClientRect(),\r\n pos = x - rect.left > rect.width * 0.65 ? \"right\" : x - rect.left < rect.width * 0.35 ? \"left\" : \"center\";\r\n if (this.state.skipPersist && pos !== this.skipPersistPos) {\r\n this.stopSkipPersist();\r\n if (detail === 1) return;\r\n }\r\n if (pos === \"center\" && this.config.dblClick) return void ((this.media.intent[this.config.dblClick] = !this.media.state[this.config.dblClick] as never), this.config.dblClick === \"paused\" && this.ctlr.plug(\"settings.notifiers\")?.notify(this.media.intent.paused ? \"mediapause\" : \"mediaplay\"));\r\n if (this.state.skipPersist && detail === 2) return;\r\n if (!this.state.skipPersist) this.startSkipPersist(pos as \"left\" | \"right\");\r\n this.ctlr.plug(\"settings.time\")?.skip(pos === \"right\" ? this.settings.time.skip : -this.settings.time.skip);\r\n rippleHandler(e, { target: this.ctlr.plug(\"settings.time\")?.skipNotifier });\r\n }\r\n\r\n protected handleFocusIn({ target }: FocusEvent, t = target as HTMLElement): void {\r\n this.focusSubjectId = String(!t.matches(\":focus-visible\") && (t?.dataset?.controlId ?? t?.parentElement?.dataset?.controlId));\r\n }\r\n protected handleKeyFocusIn({ target }: KeyboardEvent, t = target as HTMLElement): void {\r\n if ((t?.dataset?.controlId ?? t?.parentElement?.dataset?.controlId) === this.focusSubjectId) t.blur();\r\n }\r\n\r\n protected handleHoverPointerActive(e: Event): void {\r\n const { target, pointerType } = e as PointerEvent,\r\n overlay = this.ctlr.plug(\"settings.overlay\");\r\n (!pointerType || !IS_MOBILE) && overlay?.show();\r\n pointerType && (target as HTMLElement).closest(\".tmg-media-side-controls-wrapper\") && clearTimeout(overlay?.overlayDelayId ?? -1);\r\n }\r\n protected handleHoverPointerOut(): void {\r\n setTimeout(() => !IS_MOBILE && !this.media.container.matches(\":hover\") && this.ctlr.plug(\"settings.overlay\")?.hide(), 0, this.signal);\r\n }\r\n\r\n public startSkipPersist(pos: \"left\" | \"right\"): void {\r\n if (this.state.skipPersist) return;\r\n this.media.container.addEventListener(\"click\", this.handleDblClick, { signal: this.signal });\r\n (this.state.skipPersist = true), (this.skipPersistPos = pos);\r\n }\r\n public stopSkipPersist(): void {\r\n if (!this.state.skipPersist) return;\r\n this.media.container.removeEventListener(\"click\", this.handleDblClick);\r\n (this.state.skipPersist = false), (this.skipPersistPos = null);\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.wheel?.destroy(), this.touch?.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\nexport * from \"./touch\";\r\nexport * from \"./wheel\";\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.gesture\": typeof GesturePlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n gesture: GestureConfig;\r\n }\r\n}\r\n","import { AptRange } from \"@defs/generics\";\r\nimport { isNum, clamp } from \"@t007/utils\";\r\n\r\n// Validators\r\nexport { clamp };\r\n\r\nexport function isSafeNum(val: any): boolean {\r\n return isNum(val) && !isNaN(val ?? NaN) && val !== Infinity;\r\n}\r\n\r\nexport function safeNum(number: any, fallback = 0): number {\r\n return isSafeNum(number) ? number : fallback;\r\n}\r\n\r\n// Parsers\r\nexport function parseIfPercent(percent: any, amount: any, autocap = 0.25): number {\r\n const val = percent?.endsWith?.(\"%\") ? safeNum((parseFloat(percent) / 100) * amount) : percent;\r\n return val && amount && autocap && amount <= val ? amount * autocap : val;\r\n}\r\n\r\nexport function parseRomanNum(roman: string, valid = /^[IVXLCDM]+$/i.test(roman), ROMAN = { I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000 } as Record<string, number>): number {\r\n if (!valid) return 0; // ← Invalid input\r\n return roman\r\n .toUpperCase() // Ensure consistent uppercase (e.g., 'iv' becomes 'IV')\r\n .split(\"\") // Turn into array of characters: 'XIV' → ['X','I','V']\r\n .reduce((acc, val, i, arr) => {\r\n const curr = ROMAN[val] || 0, // Current character's value\r\n next = ROMAN[arr[i + 1]] || 0; // Look ahead to the next character (if any)\r\n return acc + (curr < next ? -curr : curr); // Subtractive notation: if current is less than next (e.g., I before V → 4); Otherwise, just add normally\r\n }, 0); // Start accumulator at 0\r\n}\r\n\r\n// Helpers\r\nexport function stepNum<T extends AptRange>(v = 0, { min, max, step }: T): number {\r\n const s = step ? Math.round((safeNum(v) - (min || 0)) / step) * step + (min || 0) : safeNum(v);\r\n return clamp(min, +s.toFixed(10), max); // no gymnastics, for sliders only; to reach near native speed\r\n}\r\n\r\nconst _stepsCache = new Map<string, number[]>();\r\nexport function rotateAny<T>(cur: T, steps: T[] | readonly T[], dir?: \"forwards\" | \"backwards\", wrap?: boolean): T;\r\nexport function rotateAny(cur: number, steps: AptRange, dir?: \"forwards\" | \"backwards\", wrap?: boolean): number;\r\nexport function rotateAny(cur: any, steps: any, dir: \"forwards\" | \"backwards\" = \"forwards\", wrap = true): any {\r\n let list: any[];\r\n if (Array.isArray(steps)) list = steps;\r\n else {\r\n const key = `${steps.min}|${steps.max}|${steps.step}`; // Generate cache key from min|max|step\r\n if (_stepsCache.has(key)) list = _stepsCache.get(key)!;\r\n else _stepsCache.set(key, (list = Array.from({ length: Math.floor((steps.max - steps.min) / steps.step) + 1 }, (_, i) => steps.min + i * steps.step)));\r\n }\r\n let idx = isNum(cur) ? list.reduce((p, c, x) => (Math.abs(c - cur) < Math.abs(list[p] - cur) ? x : p), 0) : list.indexOf(cur);\r\n idx = idx + (dir === \"forwards\" ? 1 : -1);\r\n return list[wrap ? (idx + list.length) % list.length : clamp(0, idx, list.length - 1)];\r\n}\r\n","import { clamp } from \"sia-reactor/utils\";\r\nimport { GesturePlug } from \".\";\r\nimport { safeNum } from \"@utils/num\";\r\nimport { BasePin } from \"../../base\";\r\nimport { getMediaMin, getMediaMax, getMediaTime } from \"@utils/media\";\r\n\r\nexport class GestureBasePin<Config> extends BasePin<GesturePlug, Config> {\r\n public static readonly plugName = \"gesture\";\r\n protected nextTime = 0;\r\n\r\n protected applyTimeline({ percent, sign, multiplier }: { percent: number; sign: string; multiplier: number }): void {\r\n multiplier = +multiplier.toFixed(1);\r\n percent = percent * multiplier;\r\n const curr = safeNum(this.media.state.currentTime),\r\n change = safeNum(getMediaTime(this.media, percent)) * multiplier,\r\n next = curr + (sign === \"+\" ? change : -change),\r\n textEl = this.ctlr.plug(\"settings.notifiers\")?.compEl(\"touchtimelinenotifier\"),\r\n toText = this.ctlr.plug(\"settings.time\")?.toTimeText;\r\n this.nextTime = clamp(getMediaMin(this.media), next, getMediaMax(this.media));\r\n if (textEl) textEl.textContent = `${sign}${toText?.(Math.abs(this.nextTime - curr))} (${toText?.(this.nextTime, true)}) ${multiplier < 1 ? `x${multiplier}` : \"\"}`;\r\n }\r\n\r\n protected applyRange(key: \"volume\" | \"brightness\", percent: number, sign: string): void {\r\n const range = this.settings[key],\r\n value = sign === \"+\" ? this.media.state[key] + percent * range.max : this.media.state[key] - percent * range.max;\r\n this.ctlr.plug((\"settings.\" + key) as \"settings.volume\")?.handleSliderInput?.(clamp(0, Math.round(value), range.max));\r\n }\r\n}\r\n","import { MEDIA_INTENT_BUILD, MEDIA_SETTINGS_BUILD, MEDIA_STATE_BUILD, MEDIA_STATUS_BUILD } from \"@consts/media\";\r\nimport { MediaState, MediaStatus, MediaSettings, MediaReport, CtlrMedia } from \"@defs/contract\";\r\nimport { isStr, isNum, isIter, isSameURL, cleanURL } from \"@t007/utils\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { queryFullscreenEl, queryPictureInPictureEl } from \"@utils/dom\";\r\nimport { Dimensions, MediaType, Source, Sources, Track, Tracks } from \"@defs/generics\";\r\nimport { mergeObjs as merge } from \"sia-reactor/utils\";\r\nimport { DeepPartial } from \"sia-reactor\";\r\n\r\n// ============ Video Utilities ============\r\n// Types\r\ntype SourceLike = Source | (HTMLSourceElement & Record<string, any>);\r\ntype TrackLike = Track | (HTMLTrackElement & Record<string, any>);\r\n\r\n// Report Generation\r\nexport function getMediaReport(m: HTMLMediaElement, isVid = m instanceof HTMLVideoElement, opts = { skipUndefined: true }): MediaReport {\r\n const txtTrackIdx = getTrackIdx(m, \"Text\"),\r\n report = { state: getMediaState(m, isVid, txtTrackIdx), status: getMediaStatus(m, isVid, txtTrackIdx), settings: getMediaSettings(m) };\r\n return { state: merge(MEDIA_STATE_BUILD, report.state, opts), intent: merge(MEDIA_INTENT_BUILD, report.state, opts), status: merge(MEDIA_STATUS_BUILD, report.status, opts), settings: merge(MEDIA_SETTINGS_BUILD, report.settings, opts) } as MediaReport;\r\n}\r\nexport const getMediaState = (m: HTMLMediaElement, isVid = m instanceof HTMLVideoElement, _txtTrackIdx = getTrackIdx(m, \"Text\")): Partial<MediaState> => ({ src: m.src, currentTime: m.currentTime, paused: m.paused, volume: m.volume * 100, muted: m.muted, playbackRate: m.playbackRate, pictureInPicture: queryPictureInPictureEl() === m, fullscreen: queryFullscreenEl() === m, currentTextTrack: _txtTrackIdx, currentAudioTrack: getTrackIdx(m, \"Audio\"), currentVideoTrack: getTrackIdx(m, \"Video\"), poster: isVid ? (m as HTMLVideoElement).poster : \"\", autoplay: m.autoplay, loop: m.loop, preload: m.preload, playsInline: isVid ? m.playsInline : false, crossOrigin: m.crossOrigin, controls: m.controls, controlsList: m.controlsList ?? m.getAttribute(\"controlsList\"), disablePictureInPicture: isVid ? m.disablePictureInPicture ?? m.hasAttribute(\"disablePictureInPicture\") : false, sources: getSources(m), tracks: getTracks(m) });\r\nexport const getMediaStatus = (m: HTMLMediaElement, isVid = m instanceof HTMLVideoElement, _txtTrackIdx = getTrackIdx(m, \"Text\"), _flagsOnly = false): Partial<MediaStatus> => ({ readyState: m.readyState, networkState: m.networkState, error: m.error, seeking: m.seeking, buffered: m.buffered, played: m.played, seekable: m.seekable, duration: m.duration, ended: m.ended, loadedMetadata: m.readyState >= 1, loadedData: m.readyState >= 2, canPlay: m.readyState >= 3, canPlayThrough: m.readyState >= 4, videoWidth: isVid ? (m as HTMLVideoElement).videoWidth : 0, videoHeight: isVid ? (m as HTMLVideoElement).videoHeight : 0, textTracks: _flagsOnly ? undefined : m.textTracks, audioTracks: _flagsOnly ? undefined : (m as any).audioTracks, videoTracks: _flagsOnly ? undefined : (m as any).videoTracks, activeCue: _flagsOnly ? undefined : m.textTracks[_txtTrackIdx]?.activeCues?.[0] || null });\r\nexport const getMediaSettings = (m: HTMLMediaElement): DeepPartial<MediaSettings> => ({ defaultMuted: m.defaultMuted, defaultPlaybackRate: m.defaultPlaybackRate, srcObject: m.srcObject });\r\n\r\nexport function getMediaProgress({ state: s, status: st }: CtlrMedia, time = s.currentTime): number {\r\n if (st.isLive) {\r\n if (!st.seekable.length || s.live) return 1;\r\n const min = st.seekable.start(0),\r\n dvr = st.seekable.end(st.seekable.length - 1) - min;\r\n return dvr > 0 ? (time - min) / dvr : 1;\r\n } else return time / st.duration;\r\n}\r\nexport const getMediaTime = (media: CtlrMedia, percent: number, _min = getMediaMin(media)): number => (media.status.isLive ? _min! + percent * (getMediaMax(media) - _min!) : percent * media.status.duration);\r\nexport const getMediaMin = ({ status: st, state: s }: Pick<CtlrMedia, \"state\" | \"status\">): number => (st.isLive ? (st.seekable.length ? (st.canSeekLive ? st.seekable.start(0) : st.seekable.end(st.seekable.length - 1)) : s.currentTime) : 0); // live?, can't seek?, jump to edge\r\nexport const getMediaMax = ({ status: st, state: s }: Pick<CtlrMedia, \"state\" | \"status\">): number => (st.isLive ? (st.seekable.length ? st.seekable.end(st.seekable.length - 1) : s.currentTime) : st.duration);\r\n\r\nexport function getBooleanMediaProps(media: CtlrMedia, prop: \"intent\" | \"state\" = \"intent\"): string[] {\r\n return Object.keys(media[prop]).filter((k) => typeof media[prop][k as keyof MediaState] === \"boolean\");\r\n}\r\n\r\n// Geometry\r\nexport function getRenderedBox({ videoHeight, videoWidth }: { videoHeight?: number; videoWidth?: number }, { width: clientWidth = 0, height: clientHeight = 0 }: { width?: number; height?: number }, { objectFit = \"cover\", objectPosition = \"50% 50%\" }: { objectFit?: string; objectPosition?: string }): Partial<Dimensions & { left: number; top: number }> {\r\n const bbox = { width: clientWidth, height: clientHeight } as DOMRect,\r\n obj = (((videoHeight ||= 1080), (videoWidth ||= videoHeight * (16 / 9))), videoWidth && videoHeight ? { width: videoWidth, height: videoHeight } : null);\r\n if (!obj || !objectFit || !objectPosition) return {};\r\n if (objectFit === \"scale-down\") objectFit = bbox.width < obj.width || bbox.height < obj.height ? \"contain\" : \"none\";\r\n if (objectFit === \"none\") return { ...parseObjectPos(objectPosition, bbox, obj), ...obj };\r\n else if (objectFit === \"contain\") {\r\n const objRatio = obj.height / obj.width,\r\n bboxRatio = bbox.height / bbox.width,\r\n width = bboxRatio > objRatio ? bbox.width : bbox.height / objRatio,\r\n height = bboxRatio > objRatio ? bbox.width * objRatio : bbox.height;\r\n return { ...parseObjectPos(objectPosition, bbox, { width, height }), width, height };\r\n } else if (objectFit === \"fill\") {\r\n const { left, top, rawLeft, rawTop } = parseObjectPos(objectPosition, bbox, obj);\r\n return { left: rawLeft.endsWith(\"%\") ? 0 : left, top: rawTop.endsWith(\"%\") ? 0 : top, width: bbox.width, height: bbox.height }; // Relative positioning is discarded with `obj-fit: fill`, so we need to check here if it's relative or not\r\n } else if (objectFit === \"cover\") {\r\n const minRatio = Math.min(bbox.width / obj.width, bbox.height / obj.height);\r\n let width = obj.width * minRatio,\r\n height = obj.height * minRatio,\r\n outRatio = 1;\r\n if (width < bbox.width) outRatio = bbox.width / width;\r\n if (Math.abs(outRatio - 1) < 1e-14 && height < bbox.height) outRatio = bbox.height / height;\r\n (width *= outRatio), (height *= outRatio);\r\n return { ...parseObjectPos(objectPosition, bbox, { width, height }), width, height };\r\n }\r\n return {};\r\n}\r\nconst parsePosAsPx = (str: string, bboxSize: number, objectSize: number): number => {\r\n str === \"center\" ? (str = \"50%\") : str === \"left\" || str === \"top\" ? (str = \"0%\") : (str === \"right\" || str === \"bottom\") && (str = \"100%\");\r\n const num = parseFloat(str);\r\n return !str.endsWith(\"%\") ? num : (bboxSize - objectSize) * (num / 100);\r\n};\r\nconst parseObjectPos = (position: string, bbox: DOMRect, object: Dimensions): { left: number; top: number; rawLeft: string; rawTop: string } => {\r\n if (position === \"center\") position = \"50% 50%\";\r\n const [left, top = \"50%\"] = position.split(\" \");\r\n return { left: parsePosAsPx(left, bbox.width, object.width), top: parsePosAsPx(top, bbox.height, object.height), rawLeft: left, rawTop: top };\r\n};\r\n\r\nexport function getSizeTier(container: HTMLElement, { offsetWidth: w, offsetHeight: h } = container) {\r\n return { width: w, height: h, tier: h <= 130 ? \"xxxxx\" : w <= 280 ? \"xxxx\" : w <= 380 ? \"xxx\" : w <= 480 ? \"xx\" : w <= 630 ? \"x\" : \"\" };\r\n}\r\n\r\n// Media Element Cloning\r\nexport function cloneMedia<M extends HTMLMediaElement>(v: M): M {\r\n const newV = v.cloneNode(true) as M;\r\n newV.tmgPlayer = v.tmgPlayer;\r\n v.parentElement?.replaceChild(newV, v);\r\n if (v.currentTime) newV.currentTime = v.currentTime;\r\n if (v.playbackRate !== 1) newV.playbackRate = v.playbackRate;\r\n if (v.defaultPlaybackRate !== 1) newV.defaultPlaybackRate = v.defaultPlaybackRate;\r\n if (v.volume !== 1) newV.volume = v.volume;\r\n if (v.muted) newV.muted = true;\r\n if (v.defaultMuted) newV.defaultMuted = true;\r\n if (v.srcObject) newV.srcObject = v.srcObject;\r\n if (v.autoplay) newV.autoplay = true;\r\n if (v.loop) newV.loop = true;\r\n if (v.controls) newV.controls = true;\r\n if (v.crossOrigin) newV.crossOrigin = v.crossOrigin;\r\n if (v.playsInline) newV.playsInline = true;\r\n if (v.controlsList?.length) newV.controlsList = v.controlsList;\r\n if (v.disablePictureInPicture) newV.disablePictureInPicture = true;\r\n if (!v.paused && newV.isConnected) newV.play();\r\n return newV;\r\n}\r\n\r\n// Source Management\r\nexport function putSourceDetails(source: any, el: HTMLSourceElement | Record<string, any>): void {\r\n if (source.src) el.src = source.src;\r\n if (source.type) el.type = source.type;\r\n if (source.media) el.media = source.media;\r\n}\r\nexport function addSources(sources: SourceLike | Iterable<SourceLike> = [], medium: HTMLElement): HTMLSourceElement | HTMLSourceElement[] {\r\n const addSource = (source: SourceLike, med: HTMLElement) => {\r\n const sourceEl = createEl(\"source\");\r\n putSourceDetails(source, sourceEl);\r\n return med.appendChild(sourceEl);\r\n };\r\n return isIter(sources) ? Array.from(sources as Iterable<SourceLike>, (source) => addSource(source, medium)) : addSource(sources, medium);\r\n}\r\nexport function getSources(medium: HTMLElement): MediaState[\"sources\"] {\r\n const sources = medium.querySelectorAll<HTMLSourceElement>(\"source\"),\r\n _sources: SourceLike[] = [];\r\n for (const source of sources) {\r\n const obj: Record<string, any> = {};\r\n putSourceDetails(source, obj);\r\n _sources.push(obj as SourceLike);\r\n }\r\n return _sources as MediaState[\"sources\"];\r\n}\r\nexport const removeSources = (medium: HTMLElement, sources = medium?.querySelectorAll(\"source\")): void => {\r\n if (sources) for (const source of sources) source.remove();\r\n};\r\nexport function isSameSources(a?: Sources, b?: Sources): boolean {\r\n if (!a || !b || a.length !== b.length) return false;\r\n const set = new Set(b.map((s) => `${cleanURL(s.src)}|${s.type}|${s.media}`));\r\n return a.every((s) => set.has(`${cleanURL(s.src)}|${s.type}|${s.media}`));\r\n}\r\n\r\n// Track Management\r\nexport type TrackType = \"Audio\" | \"Video\" | \"Text\";\r\nexport function putTrackDetails(track: any, el: HTMLTrackElement | Record<string, any>): void {\r\n if (track.id) el.id = track.id;\r\n if (track.kind) el.kind = track.kind;\r\n if (track.label) el.label = track.label;\r\n if (track.srclang) el.srclang = track.srclang;\r\n if (track.src) el.src = track.src;\r\n if (track.default) el.default = track.default;\r\n}\r\nexport function addTracks(tracks: TrackLike | Iterable<TrackLike> = [], medium: HTMLElement): HTMLTrackElement | HTMLTrackElement[] {\r\n const addTrack = (track: TrackLike, med: HTMLElement) => {\r\n const trackEl = createEl(\"track\");\r\n return putTrackDetails(track, trackEl), med.appendChild(trackEl);\r\n };\r\n return isIter(tracks) ? Array.from(tracks as Iterable<TrackLike>, (track) => addTrack(track, medium)) : addTrack(tracks, medium);\r\n}\r\nexport function getTracks(medium: HTMLElement, cues = false): TrackLike[] {\r\n const tracks = medium.querySelectorAll<HTMLTrackElement>(!cues ? \"track\" : \"track:is([kind='captions'], [kind='subtitles'])\"),\r\n _tracks: TrackLike[] = [];\r\n for (const track of tracks) {\r\n const obj: Record<string, any> = {};\r\n putTrackDetails(track, obj), _tracks.push(obj as TrackLike);\r\n }\r\n return _tracks;\r\n}\r\nexport const removeTracks = (medium: HTMLElement, tracks = medium?.querySelectorAll(\"track\")): void => {\r\n if (tracks) for (const track of tracks) if (track.kind === \"subtitles\" || track.kind === \"captions\") track.remove();\r\n};\r\nexport function isSameTracks(a?: Tracks, b?: Tracks): boolean {\r\n if (!a || !b || a.length !== b.length) return false;\r\n const set = new Set(b.map((t) => `${cleanURL(t.src)}|${t.kind}|${t.label}|${t.srclang}|${t.default}`));\r\n return a.every((t) => set.has(`${cleanURL(t.src)}|${t.kind}|${t.label}|${t.srclang}|${t.default}`));\r\n}\r\nconst isTrack = (type: TrackType, term: any) => `${type}Track` in window && term instanceof (window as any)[`${type}Track`];\r\nexport function getTrackIdx(medium: HTMLMediaElement, type: TrackType = \"Text\", term: any = \"active\", list = (medium as any)[`${type.toLowerCase()}Tracks`]): number {\r\n if (isNum(term)) return term;\r\n if (list && term === \"active\") {\r\n if (type === \"Text\") for (let i = 0; i < +list.length; i++) if (list[i].mode === \"showing\") return i;\r\n if (type === \"Audio\") for (let i = 0; i < +list.length; i++) if (list[i].enabled) return i;\r\n if (type === \"Video\") return list.selectedIndex ?? -1;\r\n }\r\n if (list && isTrack(type, term)) return Array.prototype.indexOf.call(list, term);\r\n if (list && isStr(term)) {\r\n term = term.toLowerCase();\r\n return !isNaN(+term) ? +term : Array.prototype.findIndex.call(list, (t: any) => t.id.toLowerCase() === term || t.label.toLowerCase() === term || t.srclang?.toLowerCase() === term || t.language.toLowerCase() === term || isSameURL(t.src, term));\r\n }\r\n return -1;\r\n}\r\nexport function setCurrentTrack(medium: HTMLMediaElement, type: TrackType = \"Text\", term: any, flush = false, list = (medium as any)[`${type.toLowerCase()}Tracks`]): void {\r\n const idx = getTrackIdx(medium, type, term, list);\r\n if (list && type !== \"Video\") for (let i = 0; i < list.length; i++) type === \"Text\" ? (list[i].mode = i === idx ? \"showing\" : flush ? \"disabled\" : \"hidden\") : (list[i].enabled = i === idx);\r\n else list?.[idx] && (list[idx].selected = true);\r\n}\r\n\r\n// Capbailities\r\nexport const DUMMY_VID = createEl(\"video\");\r\nexport const DUMMY_AUD = createEl(\"audio\");\r\nexport function canUseVolume(type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean {\r\n try {\r\n const prev = dummy.volume;\r\n dummy.volume = 0.5;\r\n const works = dummy.volume === 0.5;\r\n return (dummy.volume = prev), works;\r\n } catch {\r\n return false;\r\n }\r\n}\r\nexport const canMuteVolume = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"muted\" in dummy;\r\nexport function canUseRate(type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean {\r\n try {\r\n const prev = dummy.playbackRate;\r\n dummy.playbackRate = 0.5;\r\n const works = dummy.playbackRate === 0.5;\r\n return (dummy.playbackRate = prev), works;\r\n } catch {\r\n return false;\r\n }\r\n}\r\nexport const canTextTracks = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"textTracks\" in dummy;\r\nexport const canVideoTracks = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"videoTracks\" in dummy;\r\nexport const canAudioTracks = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"audioTracks\" in dummy;\r\n\r\n// ============ Caption/Subtitle Utilities ============\r\nexport const stripTags = (text: string): string => text.replace(/<(\\/)?([a-z0-9.:]+)([^>]*)>/gi, \"\");\r\n\r\nexport function srtToVtt(srt: string, vttLines: string[] = [\"WEBVTT\", \"\"]): string {\r\n const input = srt.replace(/\\r\\n?/g, \"\\n\").trim();\r\n for (const block of input.split(/\\n{2,}/)) {\r\n const lines = block.split(\"\\n\");\r\n let idx = /^\\d+$/.test(lines[0].trim()) ? 1 : 0;\r\n const timing = lines[idx]?.trim().replace(/\\s+/g, \" \"),\r\n m = timing?.match(/(\\d{1,2}:\\d{2}:\\d{2})(?:[.,](\\d{1,3}))?\\s*-->\\s*(\\d{1,2}:\\d{2}:\\d{2})(?:[.,](\\d{1,3}))?/);\r\n if (!m) continue;\r\n const [, startHms, startMsRaw = \"0\", endHms, endMsRaw = \"0\"] = m,\r\n to3 = (ms: string) => ms.padEnd(3, \"0\").slice(0, 3);\r\n vttLines.push(startHms + \".\" + to3(startMsRaw) + \" --> \" + endHms + \".\" + to3(endMsRaw));\r\n for (let i = idx + 1; i < lines.length; i++) vttLines.push(lines[i]);\r\n vttLines.push(\"\");\r\n }\r\n return vttLines.join(\"\\n\");\r\n}\r\n\r\nexport function parseVttText(text: string): string {\r\n const state = { tag: /<(\\/)?([a-z0-9.:]+)([^>]*)>/gi, o: \"\", l: 0, p: null as string | null, c: \"\" },\r\n esc = (s: string) => s.replace(/[&<>\"']/g, (c) => ({ \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\" }[c]!));\r\n let m: RegExpExecArray | null;\r\n while ((m = state.tag.exec(text))) {\r\n const chunk = text.slice(state.l, m.index);\r\n if (chunk) state.c += esc(chunk);\r\n const [_, cls, tag_n, rest] = m,\r\n low = tag_n.toLowerCase();\r\n if (/^[0-9]/.test(tag_n)) {\r\n state.o += state.p ? `<span data-part=\"timed\" data-time=\"${state.p}\">${state.c}</span>` : state.c;\r\n state.p = tag_n;\r\n state.c = \"\";\r\n } else if (cls) state.c += [\"c\", \"v\", \"lang\"].includes(low) ? \"</span>\" : `</${low}>`;\r\n else if ([\"b\", \"i\", \"u\", \"ruby\", \"rt\"].includes(low)) state.c += `<${low}>`;\r\n else if (low === \"c\") state.c += `<span class=\"vtt-c ${rest.replace(/\\.([a-z0-9_-]+)/gi, \"$1 \").trim()}\">`;\r\n else if (low === \"v\") state.c += `<span data-part=\"voice\"${rest.trim() ? ` title=\"${esc(rest.trim())}\"` : \"\"}>`;\r\n else if (low === \"lang\") state.c += `<span lang=\"${esc(rest.trim())}\">`;\r\n state.l = state.tag.lastIndex;\r\n }\r\n const lChunk = text.slice(state.l);\r\n if (lChunk) state.c += esc(lChunk);\r\n return state.o + (state.p ? `<span data-part=\"timed\" data-time=\"${state.p}\">${state.c}</span>` : state.c);\r\n}\r\n\r\nexport function formatVttLine(p: string, maxChars: number): string[] {\r\n const state = { tokens: p.match(/<[^>]+>|\\S+/g) || [], stack: [] as string[], parts: [] as string[], line: \"\", len: 0, openStr: \"\", closeStr: \"\", timeTag: \"\", lastWasTag: false },\r\n updateTags = () => ((state.openStr = state.stack.map((n) => `<${n}>`).join(\"\")), (state.closeStr = state.stack.reduceRight((a, n) => a + `</${n}>`, \"\"))),\r\n flush = () => state.line && (state.parts.push(state.line + state.closeStr), (state.line = (state.timeTag || \"\") + state.openStr), (state.len = 0), (state.lastWasTag = true));\r\n for (const tok of state.tokens) {\r\n const tag = tok[0] === \"<\",\r\n closeTag = tag && tok[1] === \"/\";\r\n if (tag) {\r\n if (state.line && !state.lastWasTag && !closeTag) state.line += \" \";\r\n const m = tok.match(/^<\\/?\\s*([a-z0-9._:-]+)/i),\r\n n = m?.[1] || \"\",\r\n timing = /^\\d/.test(n);\r\n if (timing) {\r\n (state.timeTag = tok), (state.line += tok), (state.lastWasTag = true);\r\n continue;\r\n }\r\n if (!closeTag && !tok.endsWith(\"/>\") && n) state.stack.push(n), updateTags();\r\n if (closeTag && state.stack.length) state.stack.pop(), updateTags();\r\n (state.lastWasTag = true), (state.line += tok);\r\n continue;\r\n }\r\n const len = stripTags(tok).length,\r\n needSpace = state.line && !state.lastWasTag;\r\n if (state.len + (needSpace ? 1 : 0) + len > maxChars) flush();\r\n if (needSpace) (state.line += \" \"), (state.len += 1);\r\n (state.line += tok), (state.len += len), (state.lastWasTag = false);\r\n }\r\n return flush(), state.parts;\r\n}\r\n"],"mappings":"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","names":["import_sia_reactor","import_utils","import_utils","import_sia_reactor","import_utils","import_utils","import_sia_reactor","import_utils","import_sia_reactor","import_sia_reactor","NIL3","import_sia_reactor","win","win","import_utils","import_utils","import_utils","setTimeout2"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GestureWheelPin
|
|
3
|
+
} from "../../../chunk-YFM4P3Z3.js";
|
|
4
|
+
import "../../../chunk-I47VPMZS.js";
|
|
5
|
+
import "../../../chunk-MEAGFRLE.js";
|
|
6
|
+
import "../../../chunk-TB3GE2MH.js";
|
|
7
|
+
import "../../../chunk-XGVDXMS3.js";
|
|
8
|
+
import "../../../chunk-ZSB6HGB5.js";
|
|
9
|
+
import "../../../chunk-WSBH5QD6.js";
|
|
10
|
+
import "../../../chunk-2JW4RYM4.js";
|
|
11
|
+
import "../../../chunk-HCSCY6DU.js";
|
|
12
|
+
import "../../../chunk-ZCQ5UWVE.js";
|
|
13
|
+
import "../../../chunk-RM6NFJ7V.js";
|
|
14
|
+
import "../../../chunk-EY7PB3LA.js";
|
|
15
|
+
import "../../../chunk-J2SIL62L.js";
|
|
16
|
+
import "../../../chunk-YVCKIDL5.js";
|
|
17
|
+
import "../../../chunk-YXO6NQ4E.js";
|
|
18
|
+
import "../../../chunk-4W6H5CZF.js";
|
|
19
|
+
import "../../../chunk-BROAUWON.js";
|
|
20
|
+
import "../../../chunk-6U3M7V32.js";
|
|
21
|
+
import "../../../chunk-57L2PE3B.js";
|
|
22
|
+
import "../../../chunk-ZJ6KVLUS.js";
|
|
23
|
+
import "../../../chunk-UVKRO5ER.js";
|
|
24
|
+
export {
|
|
25
|
+
GestureWheelPin
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=wheel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/ts/plugs/settings/keys/build.ts
|
|
21
|
+
var build_exports = {};
|
|
22
|
+
__export(build_exports, {
|
|
23
|
+
KEYS_BUILD: () => KEYS_BUILD,
|
|
24
|
+
KEYS_WHITELIST: () => KEYS_WHITELIST,
|
|
25
|
+
KEY_SHORTCUT_MOD_ACTIONS: () => KEY_SHORTCUT_MOD_ACTIONS
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(build_exports);
|
|
28
|
+
|
|
29
|
+
// ../t007-tools/packages/utils/dist/chunk-ZALPHCSJ.js
|
|
30
|
+
var import_utils = require("sia-reactor/utils");
|
|
31
|
+
var import_utils2 = require("sia-reactor/utils");
|
|
32
|
+
var import_sia_reactor = require("sia-reactor");
|
|
33
|
+
var import_sia_reactor2 = require("sia-reactor");
|
|
34
|
+
var import_utils3 = require("sia-reactor/utils");
|
|
35
|
+
var import_utils4 = require("sia-reactor/utils");
|
|
36
|
+
var import_utils5 = require("sia-reactor/utils");
|
|
37
|
+
var import_utils6 = require("sia-reactor/utils");
|
|
38
|
+
var import_utils7 = require("sia-reactor/utils");
|
|
39
|
+
var VIRTUAL_RESOURCE = /* @__PURE__ */ Symbol.for("T007_VIRTUAL_RESOURCE");
|
|
40
|
+
if ("undefined" !== typeof window) {
|
|
41
|
+
(window.t007 ?? (window.t007 = {})).VIRTUAL_RESOURCE = VIRTUAL_RESOURCE;
|
|
42
|
+
window.T007_TOAST_JS_SRC ?? (window.T007_TOAST_JS_SRC = `https://cdn.jsdelivr.net/npm/@t007/toast@latest`);
|
|
43
|
+
window.T007_INPUT_JS_SRC ?? (window.T007_INPUT_JS_SRC = `https://cdn.jsdelivr.net/npm/@t007/input@latest`);
|
|
44
|
+
window.T007_DIALOG_JS_SRC ?? (window.T007_DIALOG_JS_SRC = `https://cdn.jsdelivr.net/npm/@t007/dialog@latest`);
|
|
45
|
+
window.T007_TOAST_CSS_SRC ?? (window.T007_TOAST_CSS_SRC = `https://cdn.jsdelivr.net/npm/@t007/toast@latest/dist/index.min.css`);
|
|
46
|
+
window.T007_INPUT_CSS_SRC ?? (window.T007_INPUT_CSS_SRC = `https://cdn.jsdelivr.net/npm/@t007/input@latest/dist/index.min.css`);
|
|
47
|
+
window.T007_DIALOG_CSS_SRC ?? (window.T007_DIALOG_CSS_SRC = `https://cdn.jsdelivr.net/npm/@t007/dialog@latest/dist/index.min.css`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// src/ts/plugs/settings/keys/build.ts
|
|
51
|
+
var KEYS_WHITELIST = ["Space", "Enter", "Escape", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Home", "End", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
|
|
52
|
+
var KEY_SHORTCUT_MOD_ACTIONS = ["skip", "volume", "brightness", "playbackRate", "captionsFontSize"];
|
|
53
|
+
var KEYS_BUILD = {
|
|
54
|
+
disabled: false,
|
|
55
|
+
strictMatches: false,
|
|
56
|
+
overrides: ["Space", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight", "Home", "End"],
|
|
57
|
+
shortcuts: {
|
|
58
|
+
prev: "Shift+p",
|
|
59
|
+
next: "Shift+n",
|
|
60
|
+
playPause: "k",
|
|
61
|
+
mute: "m",
|
|
62
|
+
dark: "d",
|
|
63
|
+
skipBwd: "j",
|
|
64
|
+
skipFwd: "l",
|
|
65
|
+
stepFwd: ".",
|
|
66
|
+
stepBwd: ",",
|
|
67
|
+
volumeUp: "ArrowUp",
|
|
68
|
+
volumeDown: "ArrowDown",
|
|
69
|
+
brightnessUp: "y",
|
|
70
|
+
brightnessDown: "h",
|
|
71
|
+
playbackRateUp: ">",
|
|
72
|
+
playbackRateDown: "<",
|
|
73
|
+
timeFormat: "z",
|
|
74
|
+
timeMode: "q",
|
|
75
|
+
capture: "s",
|
|
76
|
+
objectFit: "a",
|
|
77
|
+
pictureInPicture: "i",
|
|
78
|
+
theater: "t",
|
|
79
|
+
fullscreen: "f",
|
|
80
|
+
captions: "c",
|
|
81
|
+
captionsFontSizeUp: ["+", "="],
|
|
82
|
+
captionsFontSizeDown: ["-", "_"],
|
|
83
|
+
captionsFontFamily: "u",
|
|
84
|
+
captionsFontWeight: "g",
|
|
85
|
+
captionsFontVariant: "v",
|
|
86
|
+
captionsFontOpacity: "o",
|
|
87
|
+
captionsBackgroundOpacity: "b",
|
|
88
|
+
captionsWindowOpacity: "w",
|
|
89
|
+
captionsCharacterEdgeStyle: "e",
|
|
90
|
+
captionsTextAlignment: "x",
|
|
91
|
+
settings: "?",
|
|
92
|
+
cast: "Shift+r",
|
|
93
|
+
airplay: "Shift+r"
|
|
94
|
+
},
|
|
95
|
+
blocks: import_utils6.KEYS_BLOCKS,
|
|
96
|
+
whitelist: KEYS_WHITELIST,
|
|
97
|
+
mods: {
|
|
98
|
+
disabled: false,
|
|
99
|
+
skip: {
|
|
100
|
+
ctrl: 60,
|
|
101
|
+
shift: 10
|
|
102
|
+
},
|
|
103
|
+
volume: {
|
|
104
|
+
ctrl: 50,
|
|
105
|
+
shift: 10
|
|
106
|
+
},
|
|
107
|
+
brightness: {
|
|
108
|
+
ctrl: 50,
|
|
109
|
+
shift: 10
|
|
110
|
+
},
|
|
111
|
+
playbackRate: {
|
|
112
|
+
ctrl: 1
|
|
113
|
+
},
|
|
114
|
+
captionsFontSize: {}
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=build.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/ts/plugs/settings/keys/build.ts","../../../../../t007-tools/packages/utils/dist/chunk-ZALPHCSJ.js"],"sourcesContent":["import { DeepPartial } from \"sia-reactor\";\r\nimport { KeysConfig } from \"./types\";\r\nimport { KEYS_BLOCKS } from \"@t007/utils\";\r\n\r\nexport const KEYS_WHITELIST = [\"Space\", \"Enter\", \"Escape\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\n\r\nexport const KEY_SHORTCUT_MOD_ACTIONS = [\"skip\", \"volume\", \"brightness\", \"playbackRate\", \"captionsFontSize\"] as const; // numerical values\r\n\r\nexport const KEYS_BUILD: DeepPartial<KeysConfig> = {\r\n disabled: false,\r\n strictMatches: false,\r\n overrides: [\"Space\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"],\r\n shortcuts: {\r\n prev: \"Shift+p\",\r\n next: \"Shift+n\",\r\n playPause: \"k\",\r\n mute: \"m\",\r\n dark: \"d\",\r\n skipBwd: \"j\",\r\n skipFwd: \"l\",\r\n stepFwd: \".\",\r\n stepBwd: \",\",\r\n volumeUp: \"ArrowUp\",\r\n volumeDown: \"ArrowDown\",\r\n brightnessUp: \"y\",\r\n brightnessDown: \"h\",\r\n playbackRateUp: \">\",\r\n playbackRateDown: \"<\",\r\n timeFormat: \"z\",\r\n timeMode: \"q\",\r\n capture: \"s\",\r\n objectFit: \"a\",\r\n pictureInPicture: \"i\",\r\n theater: \"t\",\r\n fullscreen: \"f\",\r\n captions: \"c\",\r\n captionsFontSizeUp: [\"+\", \"=\"],\r\n captionsFontSizeDown: [\"-\", \"_\"],\r\n captionsFontFamily: \"u\",\r\n captionsFontWeight: \"g\",\r\n captionsFontVariant: \"v\",\r\n captionsFontOpacity: \"o\",\r\n captionsBackgroundOpacity: \"b\",\r\n captionsWindowOpacity: \"w\",\r\n captionsCharacterEdgeStyle: \"e\",\r\n captionsTextAlignment: \"x\",\r\n settings: \"?\",\r\n cast: \"Shift+r\",\r\n airplay: \"Shift+r\"\r\n },\r\n blocks: KEYS_BLOCKS,\r\n whitelist: KEYS_WHITELIST,\r\n mods: {\r\n disabled: false,\r\n skip: {\r\n ctrl: 60,\r\n shift: 10,\r\n },\r\n volume: {\r\n ctrl: 50,\r\n shift: 10,\r\n },\r\n brightness: {\r\n ctrl: 50,\r\n shift: 10,\r\n },\r\n playbackRate: {\r\n ctrl: 1,\r\n },\r\n captionsFontSize: {},\r\n },\r\n};\r\n","// src/ts/core/dom.ts\nimport { createEl, assignEl } from \"sia-reactor/utils\";\nimport { getActiveEl } from \"sia-reactor/utils\";\nimport { NOOP } from \"sia-reactor\";\nvar INTERACTIVE_SELECTOR = \":is(button,[href],input:not([type='hidden']),select,textarea,details>summary,[contenteditable],iframe,audio[controls],video[controls],[tabindex]):not([disabled],[tabindex='-1'],[data-focus-guard],[inert],[inert] *)\";\nvar isInteractive = (target) => target instanceof HTMLElement && target.matches(INTERACTIVE_SELECTOR);\nvar VIRTUAL_RESOURCE = /* @__PURE__ */ Symbol.for(\"T007_VIRTUAL_RESOURCE\");\nfunction loadResource(req, type = \"style\", { module, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, attempts = 3, retryKey = false } = {}, win = window) {\n win.t007 ??= {}, win.t007._resourceCache ??= {};\n if (req === VIRTUAL_RESOURCE || isSym(req)) return Promise.resolve();\n const src = req;\n if (win.t007._resourceCache[src]) return win.t007._resourceCache[src];\n const existing = type === \"script\" ? Array.prototype.find.call(win.document.scripts, (s) => isSameURL(s.src, src)) : type === \"style\" ? Array.prototype.find.call(win.document.styleSheets, (s) => isSameURL(s.href, src)) : null;\n if (existing) return win.t007._resourceCache[src] = Promise.resolve(existing);\n win.t007._resourceCache[src] = new Promise((resolve, reject) => {\n (function tryLoad(remaining, el) {\n const onerror = () => {\n el?.remove?.();\n if (remaining > 1) {\n setTimeout(tryLoad, 1e3, remaining - 1);\n console.warn(`Retrying ${type} load for \"${src}\" (${attempts - remaining + 1})...`);\n } else {\n delete win.t007._resourceCache[src];\n reject(new Error(`${capitalize(type)} load failed for \"${src}\" after ${attempts - 1} attempts`));\n }\n };\n const url = retryKey && remaining < attempts ? `${src}${src.includes(\"?\") ? \"&\" : \"?\"}_${retryKey}=${Date.now()}` : src;\n if (type === \"script\") win.document.body.append(el = createEl(\"script\", { src: url, type: module ? \"module\" : \"text/javascript\", crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, onload: () => resolve(el), onerror }) || \"\");\n else if (type === \"style\") win.document.head.append(el = createEl(\"link\", { rel: \"stylesheet\", href: url, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, onload: () => resolve(el), onerror }) || \"\");\n else reject(new Error(`Unsupported resource type: ${type}`));\n })(attempts);\n });\n return win.t007._resourceCache[src];\n}\nfunction getWindow(el = window) {\n return el?.ownerDocument?.defaultView ?? el?.defaultView ?? window;\n}\nfunction createListRenderer({ container, getKey, createNode, updateNode = NOOP, destroyNode = NOOP, initNode }) {\n let nodeRegistry = /* @__PURE__ */ new Map();\n if (initNode) {\n const children = Array.from(container.children);\n for (let i = 0, len = children.length; i < len; i++) initNode(children[i], (key) => nodeRegistry.set(key, children[i]));\n }\n return function syncDOM(array, strict = true) {\n const newRegistry = /* @__PURE__ */ new Map(), seenKeys = /* @__PURE__ */ new Set(), oldPositions = /* @__PURE__ */ new WeakMap(), children = Array.from(container.children);\n for (let i = 0, len = children.length; i < len; i++) oldPositions.set(children[i], i);\n const futureNodes = [], oldIndices = [];\n for (let i = 0, len = array.length; i < len; i++) {\n const item = array[i], key = getKey(item);\n if (seenKeys.has(key)) throw new Error(`[List Renderer] Duplicate key \"${key}\" detected`);\n let node = nodeRegistry.get(key);\n if (!node) {\n node = createNode(item);\n if (!node) {\n if (strict) throw new Error(`[List Renderer] No HTMLElement for key \"${key}\"`);\n continue;\n }\n oldIndices.push(-1);\n } else updateNode(node, item), oldIndices.push(oldPositions.get(node) ?? -1);\n seenKeys.add(key), futureNodes.push(node), newRegistry.set(key, node);\n }\n for (const [key, node] of nodeRegistry.entries()) !seenKeys.has(key) && node.parentElement === container && (destroyNode(node, key), node.remove());\n const sequence = longestIncreasingSubsequence(oldIndices), stable = new Set(sequence);\n let anchor = null;\n for (let i = futureNodes.length - 1; i >= 0; i--) {\n const node = futureNodes[i];\n if (oldIndices[i] !== -1 && stable.has(i)) {\n anchor = node;\n continue;\n }\n container.insertBefore(node, anchor), anchor = node;\n }\n nodeRegistry = newRegistry;\n };\n}\n\n// src/ts/index.ts\nimport { NIL, NOOP as NOOP2 } from \"sia-reactor\";\n\n// src/ts/core/obj.ts\nimport { isObj } from \"sia-reactor/utils\";\nfunction isDef(val) {\n return \"undefined\" !== typeof val;\n}\nfunction isSym(val) {\n return \"symbol\" === typeof val;\n}\nfunction isBool(val) {\n return \"boolean\" === typeof val;\n}\nfunction isNum(val) {\n return \"number\" === typeof val;\n}\nfunction isStr(val) {\n return \"string\" === typeof val;\n}\nfunction isArr(obj) {\n return Array.isArray(obj);\n}\nfunction isPOJO(obj, crossRealms = false, typecheck = true) {\n return (typecheck ? isObj(obj, false) : true) && (crossRealms ? Object.prototype.toString.call(obj) === \"[object Object]\" : obj.constructor === Object);\n}\nfunction isIter(obj) {\n return obj != null && \"function\" === typeof obj[Symbol.iterator];\n}\nfunction isFunc(val) {\n return \"function\" === typeof val;\n}\nfunction inBoolArrOpt(opt, str) {\n return opt?.includes?.(str) ?? opt;\n}\n\n// src/ts/core/num.ts\nimport { clamp } from \"sia-reactor/utils\";\nfunction longestIncreasingSubsequence(array) {\n const n = array.length, parent = new Array(n), tails = [];\n for (let i = 0; i < n; i++) {\n const value = array[i];\n if (value === -1) continue;\n let left = 0;\n let right = tails.length;\n while (left < right) {\n const mid = left + right >> 1;\n if (array[tails[mid]] < value) left = mid + 1;\n else right = mid;\n }\n if (left > 0) parent[i] = tails[left - 1];\n else parent[i] = -1;\n tails[left] = i;\n }\n if (!tails.length) return [];\n const result = [];\n let k = tails[tails.length - 1];\n while (k >= 0) result.push(k), k = parent[k];\n return result.reverse(), result;\n}\n\n// src/ts/core/str.ts\nfunction uid(prefix = \"\") {\n return prefix + Date.now().toString(36) + \"_\" + performance.now().toString(36).replace(\".\", \"\") + \"_\" + Math.random().toString(36).slice(2);\n}\nfunction capitalize(word = \"\") {\n return word.replace(/^(\\s*)([a-z])/i, (_, s, l) => s + l.toUpperCase());\n}\nfunction camelize(str = \"\", { source } = /[\\s_-]+/, { preserveInnerCase: pIC = true, upperFirst: uF = false } = {}) {\n return (pIC ? str : str.toLowerCase()).replace(new RegExp(source + \"(\\\\w)\", \"g\"), (_, c) => c.toUpperCase()).replace(/^\\w/, (c) => c[uF ? \"toUpperCase\" : \"toLowerCase\"]());\n}\nfunction uncamelize(str, separator = \" \") {\n return str.replace(/([a-z])([A-Z])/g, `$1${separator}$2`).toLowerCase();\n}\nfunction remToPx(rem, el = document.documentElement) {\n return rem * parseFloat(getComputedStyle(el).fontSize);\n}\nfunction pxToRem(px, el = document.documentElement) {\n return px / parseFloat(getComputedStyle(el).fontSize);\n}\nfunction parseCSSTime(time) {\n return time?.endsWith?.(\"ms\") ? parseFloat(time) : parseFloat(time) * 1e3;\n}\nfunction parseCSSSize(size, el) {\n return size?.endsWith?.(\"px\") ? parseFloat(size) : remToPx(parseFloat(size), el);\n}\nfunction cleanURL(url) {\n try {\n const u = new URL(url, window.location.href);\n return decodeURIComponent(u.origin + u.pathname);\n } catch {\n return url.replace(/\\\\/g, \"/\").split(\"?\")[0].trim();\n }\n}\nfunction isSameURL(url1, url2) {\n if (url1 === url2) return true;\n if (!isStr(url1) || !isStr(url2) || !url1 || !url2) return false;\n return cleanURL(url1) === cleanURL(url2);\n}\n\n// src/ts/core/fn.ts\nimport { setTimeout as setTimeout2, setInterval, requestAnimationFrame } from \"sia-reactor/utils\";\nfunction throttle(key, fn, delay = 30, strict = true, signal, win) {\n const throttleMap = t007._throttlers ??= /* @__PURE__ */ new Map();\n if (strict === true) {\n const now = performance.now();\n return now - (throttleMap.get(key) ?? 0) < delay ? void 0 : (throttleMap.set(key, now), fn());\n }\n if (throttleMap.has(key)) return;\n const id = strict === false ? setTimeout2(() => throttleMap.delete(key), delay, signal, win) : strict(() => throttleMap.delete(key));\n return throttleMap.set(key, id), fn();\n}\nfunction debounce(key, fn, delay = 30, strict = true, signal, win) {\n const debounceMap = t007._debouncers ??= /* @__PURE__ */ new Map();\n if (strict) {\n const now = performance.now(), prev = debounceMap.get(key) ?? 0;\n return debounceMap.set(key, now), now - prev < delay ? void 0 : fn();\n }\n const prevId = debounceMap.get(key);\n prevId !== void 0 && (win ?? window).clearTimeout(prevId);\n const id = setTimeout2(() => (debounceMap.delete(key), fn()), delay, signal, win);\n return void debounceMap.set(key, id);\n}\nfunction RAFLoop(key, fn, signal, win) {\n const rafLoopMap = t007._RAFLoopers ??= /* @__PURE__ */ new Map();\n if (rafLoopMap.has(key)) return void rafLoopMap.set(key, fn);\n rafLoopMap.set(key, fn);\n const loop = (_ = 0, fn2 = rafLoopMap.get(key)) => fn2 && (fn2(), requestAnimationFrame(loop, signal, win));\n loop();\n}\nvar cancelRAFLoop = (key) => t007._RAFLoopers ? t007._RAFLoopers.delete(key) : false;\nfunction limited(FN_KEY, fn, opts = {}) {\n let count = 0, { key, maxTimes: max = 1, oncePerSession = true } = isStr(opts) ? { key: opts } : opts;\n const getReg = () => JSON.parse(localStorage.getItem(FN_KEY) || \"{}\"), setReg = (r) => localStorage.setItem(FN_KEY, JSON.stringify(r));\n const handle = (...args) => {\n if (oncePerSession && count > 0) return void 0;\n if (!key) return count++ < max ? fn(...args) : void 0;\n const r = getReg(), c = r[key] || 0;\n return c < max ? (count++, r[key] = c + 1, setReg(r), fn(...args)) : void 0;\n };\n handle.left = max - (handle.count = count);\n handle.reset = () => (count = 0, key && ((r) => (delete r[key], setReg(r)))(getReg()));\n handle.block = () => (count = max, key && ((r) => (r[key] = max, setReg(r)))(getReg()));\n return handle;\n}\nvar mockAsync = (timeout = 250) => new Promise((resolve) => setTimeout2(resolve, timeout));\nvar breath = (w = window) => new Promise((res) => w.requestAnimationFrame(res));\nvar deepBreath = (w = window) => new Promise((res) => w.requestAnimationFrame(() => w.requestAnimationFrame(res)));\nfunction bindCleanupToSignal(cleanup, signal) {\n signal?.aborted ? cleanup() : signal?.addEventListener(\"abort\", cleanup, { once: true });\n if (signal && !signal.aborted) cleanup = (() => (signal.removeEventListener(\"abort\", cleanup), cleanup()));\n return cleanup;\n}\n\n// src/ts/core/keys.ts\nimport { KEYS_BLOCKS, parseKeyCombo, stringifyKeyEvent, cleanKeyCombo, matchKeys, getTermsForKey, keyEventAllowed, formatKeyForDisplay, formatKeyShortcutsForDisplay, parseForARIAKS } from \"sia-reactor/utils\";\n\n// src/ts/core/file.ts\nfunction formatSize(bytes, decimals = 3, base = 1e3) {\n if (bytes < base) return `${bytes} byte${bytes == 1 ? \"\" : \"s\"}`;\n const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"], exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(base)), units.length - 1);\n return `${(bytes / Math.pow(base, exponent)).toFixed(decimals).replace(/\\.0+$/, \"\")} ${units[exponent]}`;\n}\n\n// src/ts/mixins/methd.ts\nimport { onAllMethods, bindAllMethods, guardAllMethods, guardMethod } from \"sia-reactor/utils\";\n\n// src/ts/index.ts\nif (\"undefined\" !== typeof window) {\n (window.t007 ??= {}).VIRTUAL_RESOURCE = VIRTUAL_RESOURCE;\n window.T007_TOAST_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest`;\n window.T007_INPUT_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest`;\n window.T007_DIALOG_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest`;\n window.T007_TOAST_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest/dist/index.min.css`;\n window.T007_INPUT_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest/dist/index.min.css`;\n window.T007_DIALOG_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest/dist/index.min.css`;\n}\n\nexport {\n createEl,\n assignEl,\n INTERACTIVE_SELECTOR,\n isInteractive,\n VIRTUAL_RESOURCE,\n loadResource,\n getWindow,\n createListRenderer,\n getActiveEl,\n isObj,\n isDef,\n isSym,\n isBool,\n isNum,\n isStr,\n isArr,\n isPOJO,\n isIter,\n isFunc,\n inBoolArrOpt,\n longestIncreasingSubsequence,\n clamp,\n uid,\n capitalize,\n camelize,\n uncamelize,\n remToPx,\n pxToRem,\n parseCSSTime,\n parseCSSSize,\n cleanURL,\n isSameURL,\n setTimeout2 as setTimeout,\n setInterval,\n requestAnimationFrame,\n throttle,\n debounce,\n RAFLoop,\n cancelRAFLoop,\n limited,\n mockAsync,\n breath,\n deepBreath,\n bindCleanupToSignal,\n KEYS_BLOCKS,\n parseKeyCombo,\n stringifyKeyEvent,\n cleanKeyCombo,\n matchKeys,\n getTermsForKey,\n keyEventAllowed,\n formatKeyForDisplay,\n formatKeyShortcutsForDisplay,\n parseForARIAKS,\n formatSize,\n onAllMethods,\n bindAllMethods,\n guardAllMethods,\n guardMethod,\n NIL,\n NOOP2 as NOOP\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,mBAAmC;AACnC,IAAAA,gBAA4B;AAC5B,yBAAqB;AA0ErB,IAAAC,sBAAmC;AAGnC,IAAAD,gBAAsB;AAiCtB,IAAAA,gBAAsB;AAgEtB,IAAAA,gBAA8E;AAsD9E,IAAAA,gBAA4L;AAU5L,IAAAA,gBAA2E;AA3O3E,IAAI,mBAAmC,uBAAO,IAAI,uBAAuB;AA8OzE,IAAI,gBAAgB,OAAO,QAAQ;AACjC,GAAC,OAAO,SAAP,OAAO,OAAS,CAAC,IAAG,mBAAmB;AACxC,SAAO,sBAAP,OAAO,oBAAsB;AAC7B,SAAO,sBAAP,OAAO,oBAAsB;AAC7B,SAAO,uBAAP,OAAO,qBAAuB;AAC9B,SAAO,uBAAP,OAAO,qBAAuB;AAC9B,SAAO,uBAAP,OAAO,qBAAuB;AAC9B,SAAO,wBAAP,OAAO,sBAAwB;AACjC;;;ADxPO,IAAM,iBAAiB,CAAC,SAAS,SAAS,UAAU,WAAW,aAAa,aAAa,cAAc,QAAQ,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAEtK,IAAM,2BAA2B,CAAC,QAAQ,UAAU,cAAc,gBAAgB,kBAAkB;AAEpG,IAAM,aAAsC;AAAA,EACjD,UAAU;AAAA,EACV,eAAe;AAAA,EACf,WAAW,CAAC,SAAS,aAAa,WAAW,aAAa,cAAc,QAAQ,KAAK;AAAA,EACrF,WAAW;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,SAAS;AAAA,IACT,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,oBAAoB,CAAC,KAAK,GAAG;AAAA,IAC7B,sBAAsB,CAAC,KAAK,GAAG;AAAA,IAC/B,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,2BAA2B;AAAA,IAC3B,uBAAuB;AAAA,IACvB,4BAA4B;AAAA,IAC5B,uBAAuB;AAAA,IACvB,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,IACT;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,IACR;AAAA,IACA,kBAAkB,CAAC;AAAA,EACrB;AACF;","names":["import_utils","import_sia_reactor"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KEYS_BUILD,
|
|
3
|
+
KEYS_WHITELIST,
|
|
4
|
+
KEY_SHORTCUT_MOD_ACTIONS
|
|
5
|
+
} from "../../../chunk-474PEQ33.js";
|
|
6
|
+
import "../../../chunk-ZJ6KVLUS.js";
|
|
7
|
+
import "../../../chunk-UVKRO5ER.js";
|
|
8
|
+
export {
|
|
9
|
+
KEYS_BUILD,
|
|
10
|
+
KEYS_WHITELIST,
|
|
11
|
+
KEY_SHORTCUT_MOD_ACTIONS
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|