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/super/components/index.ts","../../../src/ts/core/controllable.ts","../../../../t007-tools/packages/utils/dist/chunk-ZALPHCSJ.js","../../../src/ts/utils/obj.ts","../../../src/ts/utils/keys.ts","../../../src/ts/components/base/index.ts","../../../src/ts/components/rangeinput/build.ts","../../../src/ts/components/rangeinput/index.ts","../../../src/ts/utils/dom.ts","../../../../t007-tools/packages/utils/dist/hooks/vanilla.js","../../../src/ts/utils/num.ts","../../../src/ts/components/buffer.ts","../../../src/ts/utils/time.ts","../../../src/ts/utils/media.ts","../../../src/ts/components/captionsview.ts","../../../src/ts/consts/config.ts","../../../src/ts/consts/actions.ts","../../../src/ts/core/registries.ts","../../../src/ts/components/screenlock.ts","../../../src/ts/components/controls/brightness/slider.ts","../../../src/ts/components/controls/brightness/index.ts","../../../src/ts/utils/env.ts","../../../src/ts/components/controls/timeline/index.ts","../../../src/ts/components/controls/volume/slider.ts","../../../src/ts/components/controls/volume/index.ts","../../../src/ts/components/controls/airplay.ts","../../../src/ts/components/controls/backward10.ts","../../../src/ts/components/controls/bignext.ts","../../../src/ts/components/controls/bigplaypause.ts","../../../src/ts/components/controls/bigprev.ts","../../../src/ts/components/controls/captions.ts","../../../src/ts/components/controls/capture.ts","../../../src/ts/components/controls/cast.ts","../../../src/ts/components/controls/chapter.ts","../../../src/ts/components/controls/duration.ts","../../../src/ts/components/controls/expandminiplayer.ts","../../../src/ts/components/controls/forward10.ts","../../../src/ts/components/controls/fullscreen.ts","../../../src/ts/components/controls/fullscreenlock.ts","../../../src/ts/components/controls/fullscreenorientation.ts","../../../src/ts/components/controls/meta.ts","../../../src/ts/components/controls/next.ts","../../../src/ts/components/controls/objectfit.ts","../../../src/ts/components/controls/pictureinpicture.ts","../../../src/ts/components/controls/playpause.ts","../../../src/ts/components/controls/prev.ts","../../../src/ts/components/controls/removeminiplayer.ts","../../../src/ts/components/controls/settings.ts","../../../src/ts/components/controls/theater.ts","../../../src/ts/components/controls/time.ts","../../../src/ts/components/controls/timeandduration.ts","../../../src/ts/components/holders/airplayplaceholder.ts","../../../src/ts/components/holders/castplaceholder.ts","../../../src/ts/components/holders/pipplaceholder.ts","../../../src/ts/components/notifiers/base.ts","../../../src/ts/components/notifiers/playpause.ts","../../../src/ts/components/notifiers/prevnext.ts","../../../src/ts/components/notifiers/captions.ts","../../../src/ts/components/notifiers/capture.ts","../../../src/ts/components/notifiers/playbackrate.ts","../../../src/ts/components/notifiers/volume.ts","../../../src/ts/components/notifiers/brightness.ts","../../../src/ts/components/notifiers/objectfit.ts","../../../src/ts/components/notifiers/fwdbwd.ts","../../../src/ts/components/notifiers/scrub.ts","../../../src/ts/components/notifiers/cancelscrub.ts","../../../src/ts/components/notifiers/touchvolume.ts","../../../src/ts/components/notifiers/touchbrightness.ts","../../../src/ts/components/notifiers/fastplay.ts","../../../src/ts/components/notifiers/touchtimeline.ts","../../../src/ts/components/notifiers/chapter.ts","../../../src/ts/components/notifiers/cast.ts","../../../src/ts/components/notifiers/airplay.ts","../../../src/ts/components/icons/play.ts","../../../src/ts/components/icons/pause.ts","../../../src/ts/components/icons/replay.ts","../../../src/ts/components/icons/prev.ts","../../../src/ts/components/icons/next.ts","../../../src/ts/components/icons/settings.ts","../../../src/ts/components/icons/lock.ts","../../../src/ts/components/icons/unlock.ts","../../../src/ts/components/icons/enterfullscreen.ts","../../../src/ts/components/icons/leavefullscreen.ts","../../../src/ts/components/icons/enterpip.ts","../../../src/ts/components/icons/leavepip.ts","../../../src/ts/components/icons/expandminiplayer.ts","../../../src/ts/components/icons/removeminiplayer.ts","../../../src/ts/components/icons/capture.ts","../../../src/ts/components/icons/cast.ts","../../../src/ts/components/icons/airplay.ts","../../../src/ts/components/icons/objectfitcontain.ts","../../../src/ts/components/icons/objectfitcover.ts","../../../src/ts/components/icons/objectfitfill.ts","../../../src/ts/components/icons/volumehigh.ts","../../../src/ts/components/icons/volumelow.ts","../../../src/ts/components/icons/volumemuted.ts","../../../src/ts/components/icons/brightnesshigh.ts","../../../src/ts/components/icons/brightnesslow.ts","../../../src/ts/components/icons/brightnessdark.ts","../../../src/ts/components/icons/entertheater.ts","../../../src/ts/components/icons/leavetheater.ts","../../../src/ts/components/icons/fullscreenorientation.ts","../../../src/ts/components/icons/returnback.ts","../../../src/ts/components/icons/subtitles.ts","../../../src/ts/components/icons/captions.ts","../../../src/ts/components/icons/triangleleft.ts","../../../src/ts/components/icons/doubletriangleleft.ts","../../../src/ts/components/icons/doubletriangleright.ts","../../../src/ts/components/icons/fwd.ts","../../../src/ts/components/icons/bwd.ts","../../../src/ts/components/icons/pipplaceholder.ts","../../../src/ts/components/icons/castplaceholder.ts","../../../src/ts/components/icons/airplayplaceholder.ts","../../../src/ts/components/icons/dragindicator.ts","../../../src/ts/components/icons/deleteicon.ts","../../../src/ts/components/icons/playlist.ts","../../../src/ts/components/icons/autoplay.ts","../../../src/ts/components/icons/loop.ts","../../../src/ts/components/icons/quality.ts","../../../src/ts/components/icons/audiotrack.ts","../../../src/ts/components/icons/videotrack.ts","../../../src/ts/components/icons/chapters.ts","../../../src/ts/components/icons/ambience.ts","../../../src/ts/components/icons/playbackrate.ts","../../../src/ts/components/icons/timer.ts","../../../src/ts/components/icons/add.ts","../../../src/ts/components/icons/shuffle.ts"],"sourcesContent":["export * from \"@components/base\";\nexport * from \"@components/rangeinput\";\nexport * from \"@components/buffer\";\nexport * from \"@components/captionsview\";\nexport * from \"@components/screenlock\";\nexport * from \"@components/controls/brightness\";\nexport * from \"@components/controls/timeline\";\nexport * from \"@components/controls/volume\";\nexport * from \"@components/controls/airplay\";\nexport * from \"@components/controls/backward10\";\nexport * from \"@components/controls/bignext\";\nexport * from \"@components/controls/bigplaypause\";\nexport * from \"@components/controls/bigprev\";\nexport * from \"@components/controls/captions\";\nexport * from \"@components/controls/capture\";\nexport * from \"@components/controls/cast\";\nexport * from \"@components/controls/chapter\";\nexport * from \"@components/controls/duration\";\nexport * from \"@components/controls/expandminiplayer\";\nexport * from \"@components/controls/forward10\";\nexport * from \"@components/controls/fullscreen\";\nexport * from \"@components/controls/fullscreenlock\";\nexport * from \"@components/controls/fullscreenorientation\";\nexport * from \"@components/controls/meta\";\nexport * from \"@components/controls/next\";\nexport * from \"@components/controls/objectfit\";\nexport * from \"@components/controls/pictureinpicture\";\nexport * from \"@components/controls/playpause\";\nexport * from \"@components/controls/prev\";\nexport * from \"@components/controls/removeminiplayer\";\nexport * from \"@components/controls/settings\";\nexport * from \"@components/controls/theater\";\nexport * from \"@components/controls/time\";\nexport * from \"@components/controls/timeandduration\";\nexport * from \"@components/holders/airplayplaceholder\";\nexport * from \"@components/holders/castplaceholder\";\nexport * from \"@components/holders/pipplaceholder\";\nimport \"../../components/z-register\";\n\nexport * from \"./notifiers\";\nexport * from \"./icons\";\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 { cleanKeyCombo } from \"@t007/utils\";\nexport { type KeysSettings, type KeyStruct, parseKeyCombo, stringifyKeyEvent, cleanKeyCombo, matchKeys, getTermsForKey, keyEventAllowed, formatKeyShortcutsForDisplay, parseForARIAKS } from \"@t007/utils\";\n\nexport function formatActionForDisplay(keyShortcut: string | string[] | undefined, voiceCmd?: string[] | undefined): string {\n const kArr = Array.isArray(keyShortcut) ? keyShortcut : keyShortcut ? [keyShortcut] : [];\n return [kArr.length ? `⌨️ ${kArr.map((c) => cleanKeyCombo(c).replace(\" \", \"space\")).join(\" or \")}` : \"\", voiceCmd?.length ? `🎙️ \"${voiceCmd[0]}\"` : \"\"].filter(Boolean).join(\" · \");\n}\n\nexport function formatKeyForDisplay(keyShortcut: string | string[] | undefined, voiceCmd?: string[] | undefined): string {\n const combined = formatActionForDisplay(keyShortcut, voiceCmd);\n return combined ? ` ( ${combined} )` : \"\";\n}\n","import { REvent } from \"sia-reactor\";\r\nimport { Controllable } from \"@core/controllable\";\r\nimport { Controller } from \"@core/controller\";\r\nimport { parseForARIAKS } from \"@utils/keys\";\r\nimport { CtlrMedia, MediaFeatures } from \"@defs/contract\";\r\nimport { ComponentConstructor, ComponentState } from \"./types\";\r\n\r\nexport abstract class BaseComponent<Config = any, State extends ComponentState = any, El extends HTMLElement = HTMLElement> extends Controllable<Config, State> {\r\n public static readonly componentName: string;\r\n public static readonly isControl: boolean = false;\r\n public get name() {\r\n return (this.constructor as ComponentConstructor).componentName;\r\n }\r\n public element!: El;\r\n public get el() {\r\n return this.element;\r\n }\r\n\r\n constructor(ctlr: Controller, config: Config, state?: State) {\r\n super(ctlr, config, { label: \"\", cmd: \"\", active: false, disabled: false, hidden: false, ...state } as State);\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 }\r\n\r\n public abstract create(): El; // Must assign to this.element before returning\r\n public mount?(): void {}\r\n public unmount(): void {\r\n this.el.remove();\r\n }\r\n public wire?(): void {} // auto unwiring\r\n\r\n public active() {\r\n this.el.classList.toggle(\"tmg-media-control-active\", (this.state.active = true));\r\n }\r\n public inactive() {\r\n this.el.classList.toggle(\"tmg-media-control-active\", (this.state.active = false));\r\n }\r\n public disable(): void {\r\n this.el.classList.toggle(\"tmg-media-control-disabled\", (this.state.disabled = true));\r\n }\r\n public enable(): void {\r\n this.el.classList.toggle(\"tmg-media-control-disabled\", (this.state.disabled = false));\r\n }\r\n public hide(): void {\r\n this.el.classList.toggle(\"tmg-media-control-hidden\", (this.state.hidden = true));\r\n }\r\n public show(): void {\r\n this.el.classList.toggle(\"tmg-media-control-hidden\", (this.state.hidden = false));\r\n }\r\n protected gate(e: REvent<CtlrMedia, `features.${keyof MediaFeatures}`>): void {\r\n !e.value ? this.hide() : this.canShow && this.show();\r\n }\r\n protected get canShow(): boolean {\r\n return true;\r\n } // override to make gating smarter\r\n\r\n protected setBtnARIA(dblAction?: string, target: HTMLElement = this.el): void {\r\n this.state.label && target.setAttribute(\"aria-label\", this.state.label);\r\n this.state.cmd && target.setAttribute(\"aria-keyshortcuts\", parseForARIAKS(this.state.cmd));\r\n if (dblAction) target.setAttribute(\"aria-description\", `Double-press to ${dblAction}`);\r\n else if (target.hasAttribute(\"aria-description\")) target.removeAttribute(\"aria-description\");\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\n","import type { RangeInputConfig } from \"./types\";\r\n\r\nexport const RANGE_INPUT_BUILD: RangeInputConfig = {\r\n label: \"Range Slider\",\r\n min: 0,\r\n max: 100,\r\n value: 0,\r\n previewValue: 50,\r\n step: 1,\r\n scrub: {\r\n sync: true,\r\n relative: true,\r\n cancel: {\r\n delta: 5,\r\n timeout: 1500,\r\n },\r\n },\r\n wheel: {\r\n disabled: false,\r\n axisRatio: 6,\r\n },\r\n preview: true,\r\n tooltip: true,\r\n readonly: false,\r\n disabled: false,\r\n divs: [],\r\n marks: [],\r\n};\r\n","import { BaseComponent } from \"../base\";\r\nimport { RangeInputChunk, RangeInputConfig, RangeState } from \"./types\";\r\nimport { RANGE_INPUT_BUILD } from \"./build\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { reactive, type Reactive } from \"sia-reactor\";\r\nimport { mergeObjs } from \"sia-reactor/utils\";\r\nimport { createEl, getWindow, observeResize } from \"@utils/dom\";\r\nimport { clamp, stepNum } from \"@utils/num\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { startTx, endTx, Transaction } from \"sia-reactor/modules\";\r\n\r\nexport class RangeInput<Config extends RangeInputConfig = RangeInputConfig, State extends RangeState = RangeState> extends BaseComponent<Reactive<Config>, State, HTMLDivElement> {\r\n public declare config: Reactive<Config> & Reactive<RangeInputConfig>;\r\n public static readonly componentName: string = \"rangeinput\";\r\n public barsWrapper!: HTMLElement;\r\n public marksWrapper!: HTMLElement;\r\n public chunks: RangeInputChunk[] = [];\r\n public thumbEl!: HTMLElement;\r\n public tooltipEl!: HTMLElement;\r\n public isVertical = false;\r\n public isRTL = false;\r\n protected rect!: DOMRect;\r\n protected lastPtrPos = 0;\r\n protected lastThumbPos = 0;\r\n protected currentThumbPos = 0;\r\n protected stallCancelScrub = false;\r\n protected cancelScrubTimeoutId: number | null = null;\r\n protected tx: Transaction | null = null;\r\n\r\n constructor(ctlr: Controller, config?: Partial<Config>, state?: Partial<State>) {\r\n super(ctlr, reactive(mergeObjs(structuredClone(RANGE_INPUT_BUILD), config) as unknown as Reactive<Config>, { scrubbing: false, previewing: false, cancelScrub: false, ...state } as any));\r\n }\r\n\r\n public override create() {\r\n // Variables Assignments\r\n this.element = createEl(\"div\", { className: \"tmg-media-range-container\", tabIndex: 0, role: \"slider\" });\r\n this.barsWrapper = createEl(\"div\", { className: \"tmg-media-range-bars-wrapper\" });\r\n this.marksWrapper = createEl(\"div\", { className: \"tmg-media-range-marks-wrapper\" });\r\n this.thumbEl = createEl(\"div\", { className: \"tmg-media-range-thumb\" });\r\n this.tooltipEl = createEl(\"div\", { className: \"tmg-media-range-tooltip\" });\r\n // DOM Injection\r\n return this.el.append(this.barsWrapper, this.marksWrapper, this.thumbEl, this.tooltipEl), this.el;\r\n }\r\n\r\n public override wire(): void {\r\n // Variables Asignments\r\n this.rect = this.el.getBoundingClientRect();\r\n // Event Listeners\r\n this.el.addEventListener(\"pointerdown\", this.handlePointerDown, { signal: this.signal });\r\n this.el.addEventListener(\"keydown\", this.handleKeyDown, { signal: this.signal });\r\n this.el.addEventListener(\"wheel\", this.handleWheel, { passive: false, signal: this.signal });\r\n this.el.addEventListener(\"mouseover\", () => (this.rect = this.el.getBoundingClientRect()), { signal: this.signal });\r\n this.el.addEventListener(\"mousemove\", this.handleInput, { signal: this.signal });\r\n for (const e of [\"mouseleave\", \"touchend\", \"touchcancel\"]) this.el.addEventListener(e, this.stopPreviewing, { signal: this.signal });\r\n // State Watchers\r\n this.state.watch(\"scrubbing\", (value) => (value ? (this.tx = startTx(`${this.config.label} Scrub`)) : this.tx && this.config.stall(() => (endTx(this.tx!), (this.tx = null)))), { signal: this.signal });\r\n // ----- Listeners\r\n this.state.on(\"previewing\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-previewing\", !!value), { signal: this.signal });\r\n this.state.on(\"scrubbing\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-scrubbing\", !!value), { signal: this.signal });\r\n this.state.on(\"cancelScrub\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-cancel-scrub\", !!value), { signal: this.signal });\r\n // Config Setters\r\n this.config.set(\"value\", (value) => stepNum(value, this.config), { signal: this.signal });\r\n // ------ Listeners\r\n this.config.on(\"label\", ({ value }) => (this.el.ariaLabel = value!), { init: true, signal: this.signal });\r\n this.config.on(\"min\", ({ value }) => (this.el.ariaValueMin = String(value!)), { init: true, signal: this.signal });\r\n this.config.on(\"max\", ({ value }) => (this.el.ariaValueMax = String(value!)), { init: true, signal: this.signal });\r\n this.config.watch(\"value\", this.onValue, { init: true, signal: this.signal }); // #SYNC: near native speed\r\n this.config.watch(\"previewValue\", this.onPreviewValue, { init: true, signal: this.signal }); // #SYNC: near native speed\r\n this.config.on(\"tooltip\", ({ value }) => this.el.toggleAttribute(\"data-tooltip\", !!value), { init: true, signal: this.signal });\r\n this.config.on(\"readonly\", ({ value }) => this.el.toggleAttribute(\"readonly\", !!value), { init: true, signal: this.signal });\r\n this.config.on(\"disabled\", ({ value }) => this.el.toggleAttribute(\"disabled\", !!value), { init: true, signal: this.signal });\r\n this.config.on(\"divs\", ({ currentTarget: { value } }) => this.syncDivs(value), { init: true, signal: this.signal });\r\n this.config.on(\"marks\", ({ currentTarget: { value } }) => this.syncMarks(value), { init: true, signal: this.signal });\r\n // Post Wiring\r\n observeResize(this.el, () => this.ctlr.throttle(`${this.config.label}Resizing`, this.handleResize, 30, false), this.signal);\r\n }\r\n protected scrub(value: number, bypass = false): boolean {\r\n return this.canScrub ? (!bypass ? (this.config.value = value) : this.onValue(value), true) : false;\r\n }\r\n public get canScrub(): boolean {\r\n return !this.config.readonly && !this.config.disabled;\r\n }\r\n\r\n protected onValue(value: number): void {\r\n this.syncElPos(this.thumbEl, this.getValuePos(value), false, \"auto\"), this.syncChunks(\"value\", value);\r\n if (!this.state.scrubbing) this.el.ariaValueNow = String(value);\r\n }\r\n protected onPreviewValue(value: number): void {\r\n this.syncChunks(\"preview\", value), this.config.tooltip && (this.syncElPos(this.tooltipEl, this.getValuePos(value), false, !(this.state.previewing && !this.state.scrubbing) ? \"auto\" : false, this.thumbEl), (this.tooltipEl.innerHTML = (this.config.formatTooltip ? String(this.config.formatTooltip(value)) : `${Math.round(value)}`) + ` ${this.getValueChunk(value)?.label || \"\"}`.trim()));\r\n }\r\n\r\n protected handlePointerDown(e: PointerEvent): void {\r\n if (this.state.scrubbing || this.config.readonly || this.config.disabled) return;\r\n this.state.scrubbing = true;\r\n this.el.setPointerCapture(e.pointerId);\r\n const s = getWindow(this.el).getComputedStyle(this.el);\r\n (this.isVertical = s.writingMode.includes(\"vertical\")), (this.isRTL = s.direction === \"rtl\");\r\n (this.rect = this.el.getBoundingClientRect()), (this.lastPtrPos = this.getPos(e)), (this.lastThumbPos = this.currentThumbPos = this.getValuePos());\r\n getWindow(this.el).addEventListener(\"pointermove\", this.handleInput, { signal: this.signal }), this.handleInput(e);\r\n getWindow(this.el).addEventListener(\"pointerup\", this.stopScrubbing, { signal: this.signal }), getWindow(this.el).addEventListener(\"pointercancel\", this.stopScrubbing, { signal: this.signal });\r\n }\r\n\r\n protected stopScrubbing(): void {\r\n if (!this.state.scrubbing) return;\r\n this.state.scrubbing = this.state.previewing = false;\r\n this.ctlr.cancelRAFLoop(`${this.config.label}Inputing`);\r\n this.scrub(this.getPosValue(this.state.cancelScrub ? this.lastThumbPos : this.currentThumbPos), this.state.cancelScrub);\r\n this.allowScrubbing(), this.stopPreviewing();\r\n this.stallCancelScrub = true;\r\n getWindow(this.el).removeEventListener(\"pointermove\", this.handleInput);\r\n getWindow(this.el).removeEventListener(\"pointerup\", this.stopScrubbing), getWindow(this.el).removeEventListener(\"pointercancel\", this.stopScrubbing);\r\n }\r\n protected stopPreviewing(): void {\r\n if (!this.state.previewing) return;\r\n this.state.previewing = false;\r\n !this.state.scrubbing && this.ctlr.cancelRAFLoop(`${this.config.label}Inputing`);\r\n }\r\n\r\n protected cancelScrubbing(): void {\r\n if (this.stallCancelScrub || this.state.cancelScrub || this.cancelScrubTimeoutId) return;\r\n this.state.cancelScrub = true;\r\n this.cancelScrubTimeoutId = setTimeout(() => this.allowScrubbing(false), this.config.scrub.cancel.timeout, this.signal);\r\n }\r\n protected allowScrubbing(reset = true): void {\r\n this.stallCancelScrub = this.state.cancelScrub = false;\r\n clearTimeout(this.cancelScrubTimeoutId!);\r\n if (reset) this.cancelScrubTimeoutId = null;\r\n }\r\n\r\n protected handleInput(e: MouseEvent | PointerEvent): void {\r\n if (this.config.readonly || this.config.disabled) return;\r\n this.ctlr.RAFLoop(`${this.config.label}Inputing`, () => {\r\n if (this.prevEX === e.clientX && this.prevEY === e.clientY) return; // #CONSERVATION: peak stays peak\r\n (this.prevEX = e.clientX), (this.prevEY = e.clientY);\r\n this.state.previewing ||= true;\r\n const dimension = this.isVertical ? this.rect.height : this.rect.width,\r\n progress = this.getPos(e),\r\n pos = (this.currentThumbPos = clamp(0, !this.state.scrubbing || this.config.scrub.relative ? progress : this.lastThumbPos + progress - this.lastPtrPos, 1)),\r\n value = this.getPosValue(pos);\r\n this.config.previewValue = value;\r\n if (this.state.scrubbing) {\r\n !this.config.scrub.sync ? this.syncElPos(this.thumbEl, pos, false, \"auto\") : this.scrub(value);\r\n Math.abs(pos - this.lastThumbPos) < this.config.scrub.cancel.delta / dimension ? this.cancelScrubbing() : this.allowScrubbing();\r\n }\r\n this.onInput(e, pos);\r\n });\r\n }\r\n private prevEX?: number;\r\n private prevEY?: number;\r\n protected onInput(_e: MouseEvent | PointerEvent, _pos: number): void {} // override to safely add preview logic (timeline preview image, etc.)\r\n\r\n protected handleWheel(e: WheelEvent): void {\r\n if (this.config.wheel.disabled) return;\r\n e.preventDefault(), e.stopImmediatePropagation();\r\n const dimension = this.isVertical ? getWindow(this.el).innerHeight : getWindow(this.el).innerWidth,\r\n pos = clamp(0, Math.abs(-e.deltaY), dimension * this.config.wheel.axisRatio) / (dimension * this.config.wheel.axisRatio),\r\n value = this.config.value + (-e.deltaY >= 0 ? pos : -pos) * (this.config.max - this.config.min);\r\n this.scrub(value);\r\n }\r\n protected handleKeyDown(e: KeyboardEvent): void {\r\n const key = e.key?.toLowerCase();\r\n if ([\"arrowleft\", \"arrowdown\", \"arrowright\", \"arrowup\"].includes(key)) {\r\n e.preventDefault(), e.stopImmediatePropagation();\r\n const delta = e.shiftKey ? 2 : 1,\r\n direction = [\"arrowleft\", \"arrowdown\"].includes(key) ? -1 : 1;\r\n this.scrub(this.config.value + direction * delta * this.config.step);\r\n }\r\n }\r\n\r\n protected handleResize(): void {\r\n this.rect = this.el.getBoundingClientRect();\r\n const pos = this.getValuePos();\r\n this.syncElPos(this.thumbEl, pos, false, \"auto\"), this.syncChunks(\"value\", this.config.value), this.config.tooltip && this.syncElPos(this.tooltipEl, pos, false, \"auto\", this.thumbEl);\r\n }\r\n\r\n protected getValuePos(value = this.config.value, range = this.config.max - this.config.min): number {\r\n return range ? (value - this.config.min) / range : 0;\r\n }\r\n protected getPosValue(pos: number): number {\r\n return pos * (this.config.max - this.config.min) + this.config.min;\r\n }\r\n protected getValueChunk(value = this.config.value): RangeInputChunk | undefined {\r\n for (let i = 0, len = this.chunks.length; i < len; i++) {\r\n const c = this.chunks[i];\r\n if (value >= c.start && value <= c.end) return c;\r\n }\r\n }\r\n protected getPos(e: MouseEvent | PointerEvent): number {\r\n const p = this.isVertical ? (e.clientY - this.rect.top) / this.rect.height : (e.clientX - this.rect.left) / this.rect.width;\r\n return clamp(0, this.isRTL ? 1 - p : p, 1);\r\n }\r\n\r\n public syncElPos(el: HTMLElement, pos: number, isSize = false, inBounds: boolean | \"auto\" = false, bounds = el): void {\r\n const dim = this.isVertical ? this.rect?.height : this.rect?.width,\r\n min = inBounds && dim ? (this.isVertical ? bounds.offsetHeight : bounds.offsetWidth) / 2 / dim : 0;\r\n pos = inBounds === \"auto\" ? min + pos * (1 - min * 2) : pos;\r\n const value = pos || (!isSize && pos === 0) ? `${clamp(min, pos, 1 - min) * 100}%` : \"\"; // onresize still for pixel accuracy, debounce won't stutter due to '%'\r\n if (isSize) this.isVertical ? ((el.style.blockSize = value), (el.style.inlineSize = \"\")) : ((el.style.inlineSize = value), (el.style.blockSize = \"\"));\r\n else this.isVertical ? ((el.style.insetBlockEnd = value), (el.style.insetInlineStart = \"\")) : ((el.style.insetInlineStart = value), (el.style.insetBlockEnd = \"\"));\r\n // el.style.transform = this.isVertical ? (isSize ? `scaleY(${pos})` : `translateY(-${pos * 100}%)`) : (isSize ? `scaleX(${pos})` : `translateX(${pos * 100}%)`);\r\n }\r\n protected syncChunks(key: keyof Omit<RangeInputChunk, \"start\" | \"end\" | \"size\" | \"el\" | \"label\">, value: number): void {\r\n for (let i = 0, len = this.chunks.length; i < len; i++) {\r\n const c = this.chunks[i];\r\n this.syncElPos(c[key]!, clamp(0, (value - c.start) / c.size, 1) || 0, true), c[key]!.style.setProperty(\"--tmg-media-current-range-pos\", String(this.getValuePos(value)));\r\n c.el.classList.toggle(`tmg-media-chunk-${key}-active`, value >= c.start && value <= c.end);\r\n }\r\n }\r\n protected syncDivs(divs = this.config.divs): void {\r\n this.barsWrapper.innerHTML = \"\";\r\n this.chunks = [];\r\n const range = this.config.max - this.config.min,\r\n stops = divs.toSorted((a, b) => a.value - b.value); // Sort divs chronologically\r\n if (stops.length && stops[0].value > this.config.min && stops[0].value <= this.config.min + Math.min(0.02 * range, range * 0.25)) stops[0].value = this.config.min;\r\n else if (!stops.length || stops[0].value > this.config.min) stops.unshift({ value: this.config.min, label: \"\" });\r\n if (stops[stops.length - 1].value < this.config.max) stops.push({ value: this.config.max, label: \"\" });\r\n const fragment = document.createDocumentFragment();\r\n for (let i = 0, len = stops.length; i < len - 1; i++) {\r\n // prettier-ignore\r\n const start = stops[i], end = stops[i + 1], size = end.value - start.value;\r\n if (size <= 0) continue;\r\n const el = createEl(\"div\", { className: \"tmg-media-range-chunk\" }, undefined, { cssText: `--tmg-media-current-chunk-st: ${(start.value - this.config.min) / range};` }),\r\n chunk = { base: createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-range-base-bar\" }), preview: createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-range-preview-bar\" }), value: createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-range-value-bar\" }) };\r\n this.syncElPos(el, size / range, true), fragment.append((el.append(chunk.base, chunk.preview, chunk.value), el)), this.chunks.push({ start: start.value, end: end.value, label: start.label, size, el, ...chunk });\r\n }\r\n this.barsWrapper.append(fragment), this.onValue(this.config.value), this.onPreviewValue(this.config.previewValue);\r\n }\r\n protected syncMarks(marks = this.config.marks): void {\r\n this.marksWrapper.innerHTML = \"\";\r\n const els: HTMLElement[] = [],\r\n range = this.config.max - this.config.min;\r\n if (range <= 0) return;\r\n for (let i = 0, len = marks.length; i < len; i++) {\r\n const m = marks[i],\r\n el = createEl(\"div\", { className: `tmg-media-range-mark tmg-media-range-${marks[i].type || \"base\"}-mark`, title: marks[i].label || `${m.start}${m.end && m.end > m.start + 1 ? ` - ${m.end}` : \"\"} Mark` }, undefined);\r\n this.syncElPos(el, (m.start - this.config.min) / range, false), this.syncElPos(el, m.end ? (m.end - m.start) / range : 0, true), els.push(el);\r\n }\r\n this.marksWrapper.append(...els);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n rangeinput: typeof RangeInput;\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\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 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 { 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 { BaseComponent, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport type BufferConfig = undefined;\r\n\r\nexport class Buffer extends BaseComponent<BufferConfig, ComponentState, HTMLDivElement> {\r\n static readonly componentName = \"buffer\";\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-buffer\", innerHTML: `<div class=\"tmg-media-buffer-accent\"></div><div class=\"tmg-media-buffer-eclipse\"><div class=\"tmg-media-buffer-left\"><div class=\"tmg-media-buffer-circle\"></div></div><div class=\"tmg-media-buffer-right\"><div class=\"tmg-media-buffer-circle\"></div></div></div>` }));\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.ctlr.DOM.controlsContainer?.prepend(this.element);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n buffer: typeof Buffer;\r\n }\r\n}\r\n","import { isNum } from \"@t007/utils\";\r\n\r\n// Media Time Formatting\r\nexport function formatMediaTime({ time, format = \"digital\", elapsed = true, showMs = false, casing = \"normal\" }: { time?: number; format?: string; elapsed?: boolean; showMs?: boolean; casing?: \"normal\" | \"upper\" | \"title\" } = { time: 0 }): string {\r\n const long = format.endsWith(\"long\"),\r\n sx = (n = 0) => (n == 1 ? \"\" : \"s\"),\r\n cs = (str: string) => (casing === \"upper\" ? str.toUpperCase() : casing === \"title\" ? str.replace(/^([a-z])/i, (m) => m.toUpperCase()) : str.toLowerCase()),\r\n wrd = (n = 0) => ({ d: cs(long ? \" day\" + sx(n) + \" \" : \"d\"), h: cs(long ? \" hour\" + sx(n) + \" \" : \"h\"), m: cs(long ? \" minute\" + sx(n) + \" \" : \"m\"), s: cs(long ? \" second\" + sx(n) + \" \" : \"s\"), ms: cs(long ? \" millisecond\" + sx(n) + \" \" : \"ms\") }),\r\n pad = (v: string | number, n = 2, f?: boolean) => (long && !f ? v : String(v).padStart(n, isNum(+n) ? \"0\" : \"-\"));\r\n if (isNaN(time ?? NaN) || time === Infinity) return format !== \"digital\" ? (\"-\" + wrd().h + pad(\"-\") + wrd().m + (!elapsed ? \"left\" : \"\")).trim() : !elapsed ? \"-:--\" : \"-:--\";\r\n const s = Math.floor(Math.abs(time!) % 60),\r\n m = Math.floor(Math.abs(time!) / 60) % 60,\r\n h = Math.floor(Math.abs(time!) / 3600) % 24,\r\n d = Math.floor(Math.abs(time!) / 86400),\r\n ms = Math.floor((Math.abs(time!) % 1) * 1000); // returns early so \"!\"\r\n if (format === \"digital\") {\r\n const base = d ? d + \":\" + pad(h, 2, true) + \":\" + pad(m, 2, true) + \":\" + pad(s, 2, true) : h ? h + \":\" + pad(m, 2, true) + \":\" + pad(s, 2, true) : m + \":\" + pad(s, 2, true);\r\n return !elapsed ? \"-\" + base : base;\r\n }\r\n const base = d ? d + wrd(d).d + pad(h) + wrd(h).h + pad(m) + wrd(m).m + pad(s) + wrd(s).s : h ? h + wrd(h).h + pad(m) + wrd(m).m + pad(s) + wrd(s).s : m + wrd(m).m + pad(s) + wrd(s).s,\r\n msPart = showMs && ms ? pad(ms, 3) + wrd(ms).ms : \"\";\r\n return (base + msPart + (!long ? \" \" : \"\") + (!elapsed ? \"left\" : \"\")).trim();\r\n}\r\n\r\n// Time Ranges\r\n\r\nexport function createTimeRanges(ranges?: [number, number][] | TimeRanges | ArrayLike<any>): TimeRanges {\r\n if (ranges instanceof TimeRanges) return ranges;\r\n if (!ranges)\r\n return Object.create(TimeRanges.prototype, {\r\n length: { value: 0 },\r\n start: {\r\n value: () => {\r\n throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n },\r\n },\r\n end: {\r\n value: () => {\r\n throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n },\r\n },\r\n });\r\n // 1. Sort incoming intervals chronologically by start time\r\n const rawPairs = (Array.isArray(ranges) ? ranges : Array.from(ranges as ArrayLike<any>)).sort((a, b) => a[0] - b[0]);\r\n // 2. Spec Normalization Loop: Merge overlapping or touching timelines\r\n const pairs: [number, number][] = [];\r\n for (const current of rawPairs) {\r\n const last = pairs[pairs.length - 1];\r\n if (!last || current[0] > last[1]) pairs.push([current[0], current[1]]); // Clean discontinuity gap\r\n else last[1] = Math.max(last[1], current[1]); // Normalization: merge overlaps!\r\n }\r\n // 3. Return a fully normalized interface literal\r\n return Object.create(TimeRanges.prototype, {\r\n length: { value: pairs.length },\r\n start: {\r\n value: (i: number) => {\r\n if (i < 0 || i >= pairs.length) throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n return pairs[i][0];\r\n },\r\n },\r\n end: {\r\n value: (i: number) => {\r\n if (i < 0 || i >= pairs.length) throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n return pairs[i][1];\r\n },\r\n },\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","import { BaseComponent, ComponentState } from \"./base\";\r\nimport type { CueLike } from \"@plugs/settings/captions\";\r\nimport { capitalize } from \"@utils/str\";\r\nimport { clamp, parseIfPercent, safeNum } from \"@utils/num\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatVttLine, parseVttText } from \"@utils/media\";\r\nimport { isDef, isObj, isStr } from \"@utils/obj\";\r\nimport { setTimeout } from \"@utils/fn\";\r\n\r\nexport type CaptionsViewConfig = { secondaryOrder?: number };\r\ntype KaraokeNode = { el: HTMLElement; time: number };\r\n\r\nexport class CaptionsView extends BaseComponent<CaptionsViewConfig, ComponentState, HTMLDivElement> {\r\n public static readonly componentName: string = \"captionsview\";\r\n public isMain = false;\r\n protected prevCue: CueLike | null = null;\r\n protected karaokeNodes: KaraokeNode[] | null = null;\r\n protected lastPreview = \"\";\r\n protected timeoutId = -1;\r\n protected charW = 0;\r\n protected lineHPx = 0;\r\n protected lastPosX = 0;\r\n protected lastPosY = 0;\r\n protected lastPtrX = 0;\r\n protected lastPtrY = 0;\r\n protected dragX?: string;\r\n protected dragY?: string;\r\n\r\n public override create(): HTMLDivElement {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-captions-container\" }, { part: \"region\" }));\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.ctlr.DOM.controlsContainer?.prepend(this.element);\r\n }\r\n\r\n public override wire(): void {\r\n //Variables Assignment\r\n if (!(this.isMain = this.element === this.ctlr.DOM.captionsContainer)) this.dragY = `calc((var(--tmg-media-current-captions-container-height) * ${this.config.secondaryOrder ?? 1}) + (var(--tmg-media-current-captions-container-height) / 2) + (var(--tmg-media-current-unit) / 2))`; // Offset secondary captions to avoid overlap, CSS clamps\r\n // Event Listeners\r\n this.el.addEventListener(\"pointerdown\", this.handleDragStart, { signal: this.signal });\r\n // Ctlr State Watchers\r\n this.ctlr.state.watch(\"dimensions.container.width\", () => (this.syncSize(), this.preview(\"\")), { init: true, signal: this.signal });\r\n }\r\n\r\n public syncSize(): void {\r\n this.el.style.setProperty(\"display\", \"block\", \"important\");\r\n const measurer = createEl(\"span\", { className: \"tmg-media-captions-text\", innerHTML: \"abcdefghijklmnopqrstuvwxyz\".repeat(2) }, {}, { visibility: \"hidden\" });\r\n this.el.append(measurer);\r\n this.charW = measurer.offsetWidth / 52;\r\n const { lineHeight, fontSize } = getComputedStyle(measurer);\r\n this.lineHPx = !safeNum(parseFloat(lineHeight), 0) ? safeNum(parseFloat(fontSize), 16) * 1.2 : parseFloat(lineHeight);\r\n measurer.remove(), this.el.style.removeProperty(\"display\");\r\n }\r\n\r\n public preview(cue: CueLike | string = `${capitalize(this.media.container.dataset.trackKind || \"captions\")} look like this`, flush = this.isPreviewing()): void {\r\n const text = isStr(cue) ? cue : cue.text || \"\",\r\n should = flush || !this.ctlr.isUIActive(\"captions\") || !this.el.textContent;\r\n should && this.media.container.classList.add(\"tmg-media-captions-preview\");\r\n this.render(should ? (isObj(cue) ? cue : { text: cue }) : this.prevCue);\r\n clearTimeout(this.timeoutId);\r\n this.timeoutId = setTimeout((flush = this.isPreviewing(text)) => (this.media.container.classList.remove(\"tmg-media-captions-preview\"), flush && (this.el.innerHTML = \"\")), this.settings.captions.previewTimeout, this.signal);\r\n this.lastPreview = text;\r\n }\r\n public isPreviewing(text = this.lastPreview): boolean {\r\n return !!this.el.innerHTML && this.el.textContent.replace(/\\s/g, \"\") === text?.replace(/\\s/g, \"\");\r\n }\r\n\r\n public render(cue: CueLike | null): void {\r\n const existing = this.el.querySelector<HTMLElement>(\".tmg-media-captions-wrapper\");\r\n if (!cue) return existing?.remove();\r\n const wrapper = existing ?? createEl(\"div\", { className: \"tmg-media-captions-wrapper\", ariaLive: \"Off\", ariaAtomic: \"true\" }, { part: \"cue-display\" }),\r\n { offsetWidth: vCWidth, offsetHeight: vCHeight } = this.media.container,\r\n allowOverride = this.settings.captions.allowOverride || !this.isMain;\r\n for (const attr of [\"style\", \"data-active\", \"data-scroll\"]) this.el.removeAttribute(attr);\r\n if (!this.isMain) this.dragX && this.el.style.setProperty(\"--tmg-media-current-captions-x\", this.dragX), this.dragY && this.el.style.setProperty(\"--tmg-media-current-captions-y\", this.dragY);\r\n (wrapper.innerHTML = \"\"), (cue.text ||= \"\"), (this.prevCue = cue);\r\n const lines = cue.text.replace(/(<br\\s*\\/>)|\\\\N/gi, \"\\n\").split(/\\n/);\r\n for (const p of lines) for (const l of formatVttLine(p, Math.floor(vCWidth / this.charW))) wrapper.append(createEl(\"div\", { className: \"tmg-media-captions-line\" }, cue.id ? { part: \"cue\", id: cue.id } : { part: \"cue\" }, allowOverride && cue.align ? { textAlign: cue.align } : undefined)!.appendChild(createEl(\"span\", { className: \"tmg-media-captions-text\", innerHTML: parseVttText(l) })!).parentElement!);\r\n !existing && this.el.append(wrapper);\r\n const { offsetWidth: cWidth, offsetHeight: cHeight } = this.element;\r\n this.isMain ? (this.settings.css.currentCaptionsContainerHeight = `${cHeight}px`) : this.el.style.setProperty(\"--tmg-media-current-captions-container-height\", `${cHeight}px`);\r\n this.isMain ? (this.settings.css.currentCaptionsContainerWidth = `${cWidth}px`) : this.el.style.setProperty(\"--tmg-media-current-captions-container-width\", `${cWidth}px`);\r\n if (allowOverride) {\r\n if (cue.region) {\r\n this.el.setAttribute(\"data-active\", \"\");\r\n const { width, lines: regionLines, viewportAnchorX: vpAnX, viewportAnchorY: vpAnY, scroll } = cue.region;\r\n if (isDef(vpAnX)) this.el.style.setProperty(\"--tmg-media-current-captions-x\", `${vpAnX}%`);\r\n if (isDef(vpAnY)) this.el.style.setProperty(\"--tmg-media-current-captions-y\", `${100 - Number(vpAnY)}%`);\r\n if (isDef(width)) this.el.style.maxWidth = `${width}%`;\r\n if (isDef(regionLines)) this.el.style.maxHeight = `${Number(regionLines) * ((this.lineHPx / vCHeight) * 100)}%`;\r\n if (scroll === \"up\") {\r\n this.el.style.maxHeight = `${regionLines! * ((this.lineHPx / vCHeight) * 100)}%`;\r\n this.el.dataset.scroll = scroll;\r\n this.ctlr.config.stall(() => (this.el.scrollTop = wrapper.scrollHeight));\r\n }\r\n } else {\r\n if (isDef(cue.position) && cue.position !== \"auto\") {\r\n const elHalfWPct = ((cWidth / vCWidth) * 100) / 2,\r\n posOffset = cue.positionAlign === \"line-left\" ? 0 : cue.positionAlign === \"line-right\" ? -2 * elHalfWPct : -elHalfWPct;\r\n this.el.style.setProperty(\"--tmg-media-current-captions-x\", `calc(${cue.position}% + ${posOffset}% + ${elHalfWPct}%)`);\r\n }\r\n if (isDef(cue.line) && cue.line !== \"auto\") {\r\n const line = parseIfPercent(cue.line, 100),\r\n lhPct = (this.lineHPx / vCHeight) * 100,\r\n elHalfHPct = ((cHeight / vCHeight) * 100) / 2,\r\n lAlign = cue.lineAlign && cue.lineAlign !== \"auto\" ? cue.lineAlign : line < 0 ? \"end\" : \"start\",\r\n lineOffset = lAlign === \"start\" ? -2 * elHalfHPct : lAlign === \"end\" ? 0 : -elHalfHPct,\r\n bottomVal = cue.snapToLines ? (line < 0 ? (Math.abs(line) - 1) * lhPct : 100 - line * lhPct) : 100 - line;\r\n this.el.style.setProperty(\"--tmg-media-current-captions-y\", `calc(${bottomVal}% + ${lineOffset}% + ${elHalfHPct}%)`);\r\n }\r\n if (isDef(cue.size) && cue.size !== 100) this.el.style.maxWidth = `${cue.size}%`;\r\n }\r\n if (cue.vertical) this.el.style.writingMode = cue.vertical === \"lr\" ? \"vertical-lr\" : \"vertical-rl\";\r\n }\r\n this.karaokeNodes = Array.from(wrapper.querySelectorAll<HTMLElement>(\"[data-part='timed']\")).map((el) => {\r\n const [, m, s, ms] = (el.dataset.time || \"\").match(/(\\d+):(\\d+)\\.(\\d+)/) || [];\r\n return { el, time: m ? +m * 60 + +s + +ms / 1000 : 0 };\r\n });\r\n this.syncKaraoke();\r\n }\r\n\r\n public syncKaraoke(): void {\r\n if (!this.karaokeNodes) return;\r\n for (const { el, time } of this.karaokeNodes) {\r\n const isPast = safeNum(this.media.state.currentTime) > time;\r\n el.toggleAttribute(\"data-past\", isPast), el.toggleAttribute(\"data-future\", !isPast);\r\n }\r\n }\r\n\r\n protected handleDragStart(e: PointerEvent): void {\r\n this.el.setPointerCapture(e.pointerId);\r\n const { left, bottom } = getComputedStyle(this.element);\r\n (this.lastPosX = parseFloat(left)), (this.lastPosY = parseFloat(bottom));\r\n (this.lastPtrX = e.clientX), (this.lastPtrY = e.clientY);\r\n this.el.addEventListener(\"pointermove\", this.handleDragging, { signal: this.signal });\r\n this.el.addEventListener(\"pointerup\", this.handleDragEnd, { signal: this.signal });\r\n }\r\n\r\n protected handleDragging(e: PointerEvent): void {\r\n this.media.container.classList.add(\"tmg-media-captions-dragging\");\r\n this.ctlr.RAFLoop(\"captionsDragging\", () => {\r\n if (e.clientX === this.prevEX && e.clientY === this.prevEY) return; // #CONSERVATION: peak stays peak\r\n (this.prevEX = e.clientX), (this.prevEY = e.clientY);\r\n const { offsetWidth: ww, offsetHeight: hh } = this.media.container,\r\n { offsetWidth: w, offsetHeight: h } = this.element,\r\n posX = clamp(w / 2, this.lastPosX + (e.clientX - this.lastPtrX), ww - w / 2),\r\n posY = clamp(h / 2, this.lastPosY - (e.clientY - this.lastPtrY), hh - h / 2);\r\n if (this.isMain) (this.settings.css.currentCaptionsX = `${(posX / ww) * 100}%`), (this.settings.css.currentCaptionsY = `${(posY / hh) * 100}%`);\r\n else this.el.style.setProperty(\"--tmg-media-current-captions-x\", (this.dragX = `${(posX / ww) * 100}%`)), this.el.style.setProperty(\"--tmg-media-current-captions-y\", (this.dragY = `${(posY / hh) * 100}%`));\r\n });\r\n }\r\n private prevEX?: number;\r\n private prevEY?: number;\r\n\r\n protected handleDragEnd(): void {\r\n this.ctlr.cancelRAFLoop(\"captionsDragging\");\r\n this.media.container.classList.remove(\"tmg-media-captions-dragging\");\r\n this.el.removeEventListener(\"pointermove\", this.handleDragging);\r\n this.el.removeEventListener(\"pointerup\", this.handleDragEnd);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n captionsview: typeof CaptionsView;\r\n }\r\n}\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 { IconRegistry } from \"@core/registries\";\r\nimport { BaseComponent, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport type ScreenLockConfig = undefined;\r\n\r\nexport class ScreenLockButton extends BaseComponent<ScreenLockConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"screenlock\";\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.locked\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { type: \"button\", className: \"tmg-media-screen-locked-btn\", tabIndex: -1, innerHTML: `${IconRegistry.get(\"lock\")}${IconRegistry.get(\"unlock\")}<p>Unlock controls?</p>` }));\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.plug?.wrapper.prepend(this.el);\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Plug Listeners\r\n this.plug?.state.on(\"visible\", this.syncUI, { init: true, signal: this.signal });\r\n // Post Wiring\r\n this.syncARIA();\r\n }\r\n\r\n protected handleClick(e: MouseEvent): void {\r\n e.stopPropagation();\r\n this.plug?.delayOverlay();\r\n if (this.el.classList.contains(\"tmg-media-control-unlock\")) this.media.intent.locked = false;\r\n else this.el.classList.add(\"tmg-media-control-unlock\");\r\n }\r\n\r\n public syncUI(): void {\r\n !this.plug?.state.visible && this.el.classList.remove(\"tmg-media-control-unlock\");\r\n }\r\n public syncARIA(): void {\r\n this.el.title = this.state.label = \"Unlock Screen\";\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n screenlock: typeof ScreenLockButton;\r\n }\r\n}\r\n","import { CtlrConfig } from \"@defs/config\";\r\nimport { RangeInput, type RangeInputConfig, type RangeState } from \"../../rangeinput\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { REvent } from \"sia-reactor\";\r\n\r\nexport type BrightnessSliderConfig = Partial<RangeInputConfig>;\r\n\r\nexport class BrightnessSlider extends RangeInput<RangeInputConfig, RangeState> {\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.brightness\");\r\n }\r\n\r\n constructor(ctlr: Controller, config?: BrightnessSliderConfig) {\r\n super(ctlr, { label: \"Brightness Slider\", ...config });\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Config Listeners\r\n this.config.set(\"value\", (v) => Math.max(this.plug?.shouldToggle ? 0 : this.settings.brightness.min, v), { signal: this.signal }); // #VALIDATOR: rules enforcement\r\n this.config.set(\"previewValue\", (v) => Math.max(this.plug?.shouldToggle ? 0 : this.settings.brightness.min, v), { signal: this.signal }); // #VALIDATOR: rules enforcement\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.brightness\", this.handleBrightnessState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.brightness.max\", this.handleBrightnessMax, { init: true, signal: this.signal });\r\n }\r\n protected override scrub(value: number, bypass?: boolean): boolean {\r\n return super.scrub(value, bypass) ? (this.plug?.handleSliderInput(value), true) : false;\r\n }\r\n\r\n protected handleBrightnessState({ value }: REvent<CtlrMedia, \"state.brightness\">): void {\r\n if (!this.state.scrubbing) this.config.previewValue = this.config.value = value;\r\n }\r\n\r\n protected handleBrightnessMax({ value }: REvent<CtlrConfig, \"settings.brightness.max\">): void {\r\n this.config.max = value;\r\n // prettier-ignore\r\n this.config.divs = value > 100 ? [{ value: 0, label: \"\" }, { value: 100, label: `<strong style=\"color: var(--tmg-media-range-track-boost-color, red); vertical-align: 4%;\">↑</strong>` },] : [];\r\n }\r\n}\r\n","import { BaseComponent, type ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\nimport { BrightnessSlider, type BrightnessSliderConfig } from \"./slider\";\r\n\r\nexport type BrightnessConfig = BrightnessSliderConfig;\r\n\r\nexport class BrightnessControl extends BaseComponent<BrightnessConfig, ComponentState> {\r\n public static readonly componentName: string = \"brightness\";\r\n public static readonly isControl: boolean = true;\r\n public slider!: BrightnessSlider;\r\n protected button!: HTMLButtonElement;\r\n protected sliderWrapper!: HTMLSpanElement;\r\n protected delayActiveId?: number;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.brightness\");\r\n }\r\n\r\n public override create(): HTMLElement {\r\n // Variables Assignments\r\n this.slider = new BrightnessSlider(this.ctlr, this.config);\r\n this.element = createEl(\"div\", { className: \"tmg-media-brightness-container tmg-media-vb-container\" }, { draggableControl: \"\", controlId: this.name });\r\n this.button = createEl(\"button\", { className: \"tmg-media-dark-btn tmg-media-vb-btn\", type: \"button\", innerHTML: IconRegistry.get(\"brightnesshigh\") + IconRegistry.get(\"brightnesslow\") + IconRegistry.get(\"brightnessdark\") });\r\n this.sliderWrapper = createEl(\"span\", { className: \"tmg-media-brightness-slider-wrapper tmg-media-vb-slider-wrapper\" });\r\n const sliderEl = this.slider.create();\r\n // DOM Injection\r\n sliderEl.classList.add(\"tmg-media-vb-slider\", \"tmg-media-brightness-slider\");\r\n this.sliderWrapper.append(sliderEl);\r\n return this.el.append(this.button, this.sliderWrapper), this.el;\r\n }\r\n\r\n public override mount(): void {\r\n this.slider.setup();\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.button.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n this.el.addEventListener(\"mousemove\", this.startActive, { signal: this.signal });\r\n this.el.addEventListener(\"mouseleave\", this.stopActive, { signal: this.signal });\r\n // State Listeners\r\n this.slider.config.on(\"value\", this.delayActive, { signal: this.signal });\r\n // ---- Media Listeners\r\n this.media.on(\"state.brightness\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"state.dark\", this.syncARIA, { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.dark\", this.syncARIA, { signal: this.signal });\r\n // Features Gating\r\n this.media.on(\"features.brightness\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.toggle(\"auto\");\r\n }\r\n\r\n protected startActive(): void {\r\n this.slider.active(), this.delayActive();\r\n }\r\n protected delayActive(): void {\r\n this.ctlr.plug(\"settings.overlay\")?.delay();\r\n clearTimeout(this.delayActiveId);\r\n this.delayActiveId = setTimeout(() => this.stopActive(), this.settings.overlay.delay, this.signal);\r\n }\r\n protected stopActive = (): void => {\r\n if (this.slider.el.matches(\":active\")) return this.delayActive();\r\n clearTimeout(this.delayActiveId), this.slider.inactive();\r\n this.slider.config.previewValue = this.slider.config.value;\r\n };\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.dark || this.media.state.brightness === 0 ? \"Brighten\" : \"Darken\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.dark, this.settings.voice.commands.dark);\r\n this.button.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA(undefined, this.button);\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.slider.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n brightness: typeof BrightnessControl;\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 { RangeInput, RangeInputDiv, type RangeState } from \"@components/rangeinput\";\r\nimport type { TimelineConfig } from \"./types\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport { formatMediaTime } from \"@utils/time\";\r\nimport { IS_MOBILE } from \"@utils/env\";\r\nimport { getMediaMax, getMediaProgress, getMediaTime } from \"@utils/media\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { setTimeout, requestAnimationFrame } from \"@utils/fn\";\r\nimport { safeNum } from \"@utils/num\";\r\nimport { isBool } from \"@t007/utils\";\r\nimport { silence } from \"sia-reactor/modules\";\r\n\r\nexport class Timeline extends RangeInput<TimelineConfig> {\r\n public static readonly componentName = \"timeline\"; // enforced name\r\n public static readonly isControl: boolean = true;\r\n public chaptersWrapper!: HTMLDivElement;\r\n public previewContainer!: HTMLDivElement;\r\n public previewImg!: HTMLDivElement;\r\n public previewCanvas!: HTMLCanvasElement;\r\n public thumbnailImg!: HTMLDivElement;\r\n public thumbnailCanvas!: HTMLCanvasElement;\r\n public previewContext: CanvasRenderingContext2D | null = null;\r\n public thumbnailContext: CanvasRenderingContext2D | null = null;\r\n protected wasPaused = false;\r\n protected scrubbingId = -1;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.time\");\r\n }\r\n protected getProgress(time: number) {\r\n return getMediaProgress(this.media, time);\r\n }\r\n protected getTime(percent: number) {\r\n return getMediaTime(this.media, percent);\r\n }\r\n\r\n constructor(ctlr: Controller, config?: Partial<TimelineConfig>) {\r\n super(ctlr, config);\r\n }\r\n\r\n public override create() {\r\n // Variables Assignments\r\n this.element = super.create();\r\n this.el.dataset.controlId = this.name;\r\n this.previewContainer = createEl(\"div\", { className: \"tmg-media-preview-container\" });\r\n this.previewImg = createEl(\"div\", { className: \"tmg-media-preview\" });\r\n this.previewCanvas = createEl(\"canvas\", { className: \"tmg-media-preview\" });\r\n this.previewContext = this.previewCanvas.getContext(\"2d\", { alpha: false });\r\n this.thumbnailImg = createEl(\"div\", { className: \"tmg-media-thumbnail tmg-media-filtered tmg-media-object\" });\r\n this.thumbnailCanvas = createEl(\"canvas\", { className: \"tmg-media-thumbnail tmg-media-filtered tmg-media-object\" });\r\n this.thumbnailContext = this.thumbnailCanvas.getContext(\"2d\", { alpha: false });\r\n // DOM Injection\r\n this.el.classList.add(\"tmg-media-timeline-container\"), this.barsWrapper.classList.add(\"tmg-media-timeline-bars-wrapper\", \"tmg-media-timeline\"), this.thumbEl.classList.add(\"tmg-media-timeline-thumb\");\r\n this.previewContainer.append(this.previewImg, this.previewCanvas);\r\n return this.el.append(this.previewContainer), this.el; // parent handled element assignment\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.ctlr.DOM.controlsContainer?.prepend(this.thumbnailImg, this.thumbnailCanvas);\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Event Listeners\r\n this.media.pseudoElement.addEventListener(\"timeupdate\", this.syncCanvasPreviews, { signal: this.signal });\r\n // State Listeners\r\n this.state.on(\"scrubbing\", this.handleScrubbing, { signal: this.signal });\r\n this.state.on(\"previewing\", ({ value }) => (value ? (this.media.container.classList.add(\"tmg-media-previewing\"), this.clearCanvasPreviews()) : setTimeout(() => this.media.container.classList.remove(\"tmg-media-previewing\"), 0, this.signal)), { signal: this.signal });\r\n this.state.on(\"cancelScrub\", ({ value }) => this.ctlr.plug(\"settings.notifiers\")?.comp(\"cancelscrubnotifier\")?.el.classList.toggle(\"tmg-media-control-active\", value), { signal: this.signal });\r\n // Config --------\r\n this.config.on(\"previewValue\", this.syncPreviewText, { init: true, signal: this.signal });\r\n this.config.on(\"previews\", this.handlePreviews, { init: true, signal: this.signal });\r\n this.config.on(\"autopause\", ({ value }) => [this.thumbnailCanvas, this.thumbnailImg].forEach((el) => el.classList.toggle(\"tmg-media-control-hidden\", !value)), { init: true, signal: this.signal });\r\n this.config.on(\"compact\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-compact\", value), { init: true, signal: this.signal });\r\n this.config.on(\"bufferMarks\", () => this.syncMarks(this.config.marks, true), { init: true, signal: this.signal });\r\n this.config.on(\"playedMarks\", () => this.syncMarks(this.config.marks, true), { init: true, signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.paused\", ({ value }) => (!value ? this.ctlr.RAFLoop(`${this.config.label}Updating`, this.syncValue, this.signal) : this.ctlr.cancelRAFLoop(`${this.config.label}Updating`)), { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"state.currentTime\", this.handleCurrentTime, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"intent.currentTime\", this.handleCurrentTime, { signal: this.signal }); // #APPRENTICE: folklore embodiment\r\n this.media.on(\"status.buffered\", this.handleBufferedStatus, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.played\", () => this.config.playedMarks && this.syncMarks(this.config.marks, true), { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.duration\", ({ value }) => (this.el.ariaValueMax = String(Math.floor(value))), { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.error\", ({ value }) => value && this.syncChunks(\"buffer\", 0), { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.isLive\", ({ value }) => (this.config.readonly = value && !this.media.status.canSeekLive), { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.canSeekLive\", ({ value }) => (this.config.readonly = !value && !!this.media.status.isLive), { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"settings.metadata.chapterInfo\", this.handleMetadataChapterInfoSetting, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.time.format\", this.syncPreviewText, { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.time.mode\", this.syncPreviewText, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.css.currentObjectWidth\", ({ value }) => (this.thumbnailCanvas.width = parseInt(value as string)), { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.css.currentObjectHeight\", ({ value }) => (this.thumbnailCanvas.height = parseInt(value as string)), { init: true, signal: this.signal });\r\n }\r\n protected override scrub(value: number, bypass?: boolean): boolean {\r\n return super.scrub(value, bypass) ? (!bypass && (this.media.intent.currentTime = safeNum(this.getTime(value / 100))), true) : false;\r\n }\r\n\r\n protected handleCurrentTime({ target, rejectable, resolved }: REvent<CtlrMedia, \"state.currentTime\" | \"intent.currentTime\">): void {\r\n if (this.state.scrubbing || (rejectable && !resolved)) return; // shouldn't mind `.scrubbing`; it's binded to `intent.currentTime` but base class `.value` just renders faster\r\n if (this.media.state.paused) this.syncValue(false, target.value);\r\n this.el.ariaValueText = `${formatMediaTime({ time: target.value, format: \"human-long\" })} of ${formatMediaTime({ time: this.media.status.duration, format: \"human-long\" })}`;\r\n } // !a full embodiment for near native range perf but close enough\r\n\r\n protected handleBufferedStatus({ value }: REvent<CtlrMedia, \"status.buffered\">): void {\r\n this.config.bufferMarks && this.syncMarks(this.config.marks, true);\r\n for (let i = 0; i < value.length; i++) if (value.start(value.length - 1 - i) < this.media.state.currentTime) return void this.syncChunks(\"buffer\", this.getPosValue(safeNum(value.end(value.length - 1 - i) / getMediaMax(this.media))));\r\n }\r\n\r\n public syncValue(auto = true, value = this.media.state.currentTime): void {\r\n if (auto && !this.ctlr.state.mediaIntersecting) return;\r\n if (!this.state.scrubbing) this.config.value = safeNum(this.getProgress(value)) * 100; // (value / safeNum(this.media.status.duration, 60))\r\n }\r\n\r\n protected handleScrubbing({ value }: REvent<RangeState, \"scrubbing\">): void {\r\n this.media.container.classList.toggle(\"tmg-media-scrubbing\", value);\r\n if (!value) {\r\n this.config.autopause && silence(() => (this.media.intent.paused = this.wasPaused));\r\n cancelAnimationFrame(this.scrubbingId);\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"scrubnotifier\")?.inactive();\r\n } else {\r\n this.wasPaused = this.media.state.paused;\r\n this.scrubbingId = requestAnimationFrame(() => {\r\n this.config.autopause && silence(() => (this.media.intent.paused = true));\r\n IS_MOBILE && this.ctlr.plug(\"settings.notifiers\")?.comp(\"scrubnotifier\")?.active();\r\n }, this.signal);\r\n this.clearCanvasPreviews();\r\n }\r\n }\r\n protected handlePreviews({ target }: REvent<TimelineConfig, \"previews\">): void {\r\n const value = target.value === true ? {} : target.value;\r\n this.media.container.classList.toggle(\"tmg-media-no-previews\", !value || this.media.type !== \"video\");\r\n if (!value || this.media.type !== \"video\") return void (this.media.container.dataset.previewType = \"none\");\r\n const manual = value.address && (value.spf || (value.cols && value.rows)),\r\n type = manual ? (value.cols && value.rows ? \"sprite\" : \"image\") : \"canvas\";\r\n this.media.container.dataset.previewType = type;\r\n if (type === \"sprite\" && value.address) this.settings.css.currentPreviewUrl = this.settings.css.currentThumbnailUrl = `url(${value.address})`;\r\n else this.settings.css.currentPreviewPosition = this.settings.css.currentThumbnailPosition = \"center\";\r\n }\r\n\r\n protected handleMetadataChapterInfoSetting({ value }: REvent<CtlrMedia, \"settings.metadata.chapterInfo\">): void {\r\n if (!value || value.length < 2) return void (this.config.divs = []);\r\n const divs: RangeInputDiv[] = [];\r\n for (let i = 0, len = value.length; i < len; i++) divs.push({ value: (value[i].startTime / getMediaMax(this.media)) * 100, label: value[i].title });\r\n this.config.divs = divs;\r\n }\r\n\r\n public override stopScrubbing(): void {\r\n if (!this.state.scrubbing) return;\r\n if (!this.state.cancelScrub) this.media.intent.currentTime = this.getTime(this.config.value / 100);\r\n super.stopScrubbing();\r\n }\r\n\r\n protected onInput(_e: MouseEvent | PointerEvent, pos: number): void {\r\n this.ctlr.throttle(\r\n `${this.config.label}Previewing`,\r\n () => {\r\n this.syncElPos(this.previewContainer, !this.config.compact ? pos : 0.5, false, true);\r\n const previews = this.config.previews,\r\n type = this.media.container.dataset.previewType;\r\n if (type === \"sprite\" && previews && !isBool(previews) && previews.cols && previews.rows) {\r\n const frameIndex = Math.floor((pos * getMediaMax(this.media)) / (previews.spf || 1)) || 1,\r\n { cols, rows } = previews,\r\n clampedI = Math.min(frameIndex, cols * rows - 1),\r\n xPercent = ((clampedI % cols) * 100) / (cols - 1 || 1),\r\n yPercent = (Math.floor(clampedI / cols) * 100) / (rows - 1 || 1);\r\n if (!this.config.compact) this.settings.css.currentPreviewPosition = `${xPercent}% ${yPercent}%`;\r\n if (this.state.scrubbing && this.config.autopause) this.settings.css.currentThumbnailPosition = `${xPercent}% ${yPercent}%`;\r\n } else if (type === \"image\" && previews && !isBool(previews) && previews.address) {\r\n const frameIndex = Math.floor((pos * getMediaMax(this.media)) / (previews.spf || 1)) || 1,\r\n url = `url(${previews.address.replace(\"$\", String(frameIndex))})`;\r\n if (!this.config.compact) this.settings.css.currentPreviewUrl = url;\r\n if (this.state.scrubbing && this.config.autopause) this.settings.css.currentThumbnailUrl = url;\r\n } else if (previews && !this.ctlr.state.frameReadyPromise) this.media.pseudoElement.currentTime = safeNum(this.getTime(pos));\r\n },\r\n 30\r\n );\r\n }\r\n\r\n public syncPreviewText(): void {\r\n if (this.plug) this.previewContainer.dataset.previewText = `${this.plug.toTimeText(this.getTime(this.config.previewValue / 100), true)} ${this.getValueChunk(this.config.previewValue)?.label || \"\"}`.trim();\r\n }\r\n public syncCanvasPreviews(): void {\r\n if (!this.previewContext || !this.thumbnailContext || !this.media.status.loadedData || this.ctlr.state.frameReadyPromise || this.media.pseudoElement.readyState < 2) return;\r\n this.ctlr.throttle(\r\n \"canvasPreviewSync\",\r\n () => {\r\n this.previewCanvas.width = this.previewCanvas.clientWidth || this.previewCanvas.width;\r\n this.previewCanvas.height = this.previewCanvas.clientHeight || this.previewCanvas.height;\r\n if (!this.config.compact) this.previewContext!.drawImage(this.media.pseudoElement as HTMLVideoElement, 0, 0, this.previewCanvas.width, this.previewCanvas.height);\r\n if (this.state.scrubbing && this.config.autopause) this.thumbnailContext!.drawImage(this.media.pseudoElement as HTMLVideoElement, 0, 0, this.thumbnailCanvas.width, this.thumbnailCanvas.height);\r\n },\r\n 33\r\n );\r\n }\r\n public clearCanvasPreviews(bool = this.media.container.dataset.previewType === \"canvas\" && this.media.pseudoElement.readyState < 2): void {\r\n bool && (this.ctlr.setCanvasFallback(this.previewCanvas, this.previewContext), this.ctlr.setCanvasFallback(this.thumbnailCanvas, this.thumbnailContext));\r\n }\r\n\r\n protected override syncDivs(divs = this.config.divs): void {\r\n super.syncDivs(divs);\r\n for (let i = 0, len = this.chunks.length; i < len; i++) {\r\n const c = this.chunks[i];\r\n c.el.classList.add(\"tmg-media-timeline-chapter\"), c.base.classList.add(\"tmg-media-timeline-base-bar\", \"tmg-media-timeline-bar\"), c.preview.classList.add(\"tmg-media-timeline-preview-bar\", \"tmg-media-timeline-bar\"), c.value.classList.add(\"tmg-media-timeline-played-bar\", \"tmg-media-timeline-bar\");\r\n c.el.insertBefore((c.buffer = createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-buffered-bar tmg-media-timeline-buffered-bar tmg-media-timeline-bar\" })), c.value);\r\n }\r\n this.handleBufferedStatus({ value: this.media.status.buffered } as REvent<CtlrMedia, \"status.buffered\">);\r\n }\r\n protected override syncMarks(marks = this.config.marks, extras = false): void {\r\n if (extras && !this.ctlr.payload.wired) return;\r\n const agg = [...marks],\r\n buf = this.media.status.buffered,\r\n ply = this.media.status.played,\r\n max = getMediaMax(this.media) || 1;\r\n if (this.config.bufferMarks)\r\n for (let i = 0, len = buf.length; i < len; i++) {\r\n const start = buf.start(i),\r\n end = buf.end(i);\r\n agg.push({ start: (start / max) * 100, end: (end / max) * 100, label: `${formatMediaTime({ time: start })}${end > start + 1 ? ` - ${formatMediaTime({ time: end })}` : \"\"} Loaded`, type: \"buffered\" });\r\n }\r\n if (this.config.playedMarks)\r\n for (let i = 0, len = ply.length; i < len; i++) {\r\n const start = ply.start(i),\r\n end = ply.end(i);\r\n agg.push({ start: (start / max) * 100, end: (end / max) * 100, label: `${formatMediaTime({ time: start })}${end > start + 1 ? ` - ${formatMediaTime({ time: end })}` : \"\"} Played`, type: \"played\" });\r\n }\r\n super.syncMarks(agg); // all weightless logic\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n timeline: typeof Timeline;\r\n }\r\n}\r\n","import { CtlrConfig } from \"@defs/config\";\r\nimport { RangeInput, type RangeInputConfig, type RangeState } from \"../../rangeinput\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { REvent } from \"sia-reactor\";\r\n\r\nexport type VolumeSliderConfig = Partial<RangeInputConfig>;\r\n\r\nexport class VolumeSlider extends RangeInput<RangeInputConfig, RangeState> {\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.volume\");\r\n }\r\n\r\n constructor(ctlr: Controller, config?: VolumeSliderConfig) {\r\n super(ctlr, { label: \"Volume Slider\", ...config });\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Config Listeners\r\n this.config.set(\"value\", (v) => Math.max(this.plug?.shouldToggle ? 0 : this.settings.volume.min, v), { signal: this.signal }); // #VALIDATOR: rules enforcement\r\n this.config.set(\"previewValue\", (v) => Math.max(this.plug?.shouldToggle ? 0 : this.settings.volume.min, v), { signal: this.signal }); // #VALIDATOR: rules enforcement\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.volume\", this.handleVolumeState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.volume.max\", this.handleVolumeMax, { init: true, signal: this.signal });\r\n }\r\n protected override scrub(value: number, bypass?: boolean): boolean {\r\n return super.scrub(value, bypass) ? (this.plug?.handleSliderInput(value), true) : false;\r\n }\r\n\r\n protected handleVolumeState({ value }: REvent<CtlrMedia, \"state.volume\">): void {\r\n if (!this.state.scrubbing) this.config.previewValue = this.config.value = value;\r\n }\r\n\r\n protected handleVolumeMax({ value }: REvent<CtlrConfig, \"settings.volume.max\">): void {\r\n this.config.max = value;\r\n // prettier-ignore\r\n this.config.divs = value > 100 ? [{ value: 0, label: \"\" }, { value: 100, label: `<strong style=\"color: var(--tmg-media-range-track-boost-color, red); vertical-align: 4%;\">↑</strong>` },] : [];\r\n }\r\n}\r\n","import { BaseComponent, type ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { VolumeSlider, type VolumeSliderConfig } from \"./slider\";\r\n\r\nexport type VolumeConfig = VolumeSliderConfig;\r\n\r\nexport class VolumeControl extends BaseComponent<VolumeConfig, ComponentState> {\r\n public static readonly componentName: string = \"volume\";\r\n public static readonly isControl: boolean = true;\r\n public slider!: VolumeSlider;\r\n protected button!: HTMLButtonElement;\r\n protected sliderWrapper!: HTMLSpanElement;\r\n protected delayActiveId?: number;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.volume\");\r\n }\r\n\r\n public override create(): HTMLElement {\r\n // Variables Assignments\r\n this.slider = new VolumeSlider(this.ctlr, this.config);\r\n this.element = createEl(\"div\", { className: \"tmg-media-volume-container tmg-media-vb-container\" }, { draggableControl: \"\", controlId: this.name });\r\n this.button = createEl(\"button\", { className: \"tmg-media-mute-btn tmg-media-vb-btn\", type: \"button\", innerHTML: IconRegistry.get(\"volumehigh\") + IconRegistry.get(\"volumelow\") + IconRegistry.get(\"volumemuted\") });\r\n this.sliderWrapper = createEl(\"span\", { className: \"tmg-media-volume-slider-wrapper tmg-media-vb-slider-wrapper\" });\r\n const sliderEl = this.slider.create();\r\n // DOM Injection\r\n sliderEl.classList.add(\"tmg-media-vb-slider\", \"tmg-media-volume-slider\");\r\n this.sliderWrapper.append(sliderEl);\r\n return this.el.append(this.button, this.sliderWrapper), this.el;\r\n }\r\n\r\n public override mount(): void {\r\n this.slider.setup();\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.volume\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.button.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n this.el.addEventListener(\"mousemove\", this.startActive, { signal: this.signal });\r\n this.el.addEventListener(\"mouseleave\", this.stopActive, { signal: this.signal });\r\n // State Listeners\r\n this.slider.config.on(\"value\", this.delayActive, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.volume\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"state.muted\", this.syncARIA, { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.mute\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.toggle(\"auto\");\r\n }\r\n\r\n protected startActive(): void {\r\n this.slider.active(), this.delayActive();\r\n }\r\n protected delayActive(): void {\r\n this.ctlr.plug(\"settings.overlay\")?.delay();\r\n clearTimeout(this.delayActiveId);\r\n this.delayActiveId = setTimeout(() => this.stopActive(), this.settings.overlay.delay, this.signal);\r\n }\r\n protected stopActive(): void {\r\n if (this.slider.el.matches(\":active\")) return this.delayActive();\r\n clearTimeout(this.delayActiveId), this.slider.inactive();\r\n this.slider.config.previewValue = this.slider.config.value;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.muted || this.media.state.volume === 0 ? \"Unmute\" : \"Mute\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.mute, this.settings.voice.commands.mute);\r\n this.button.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA(undefined, this.button);\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.slider.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n volume: typeof VolumeControl;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type AirPlayConfig = undefined;\r\n\r\nexport class AirPlayButton extends BaseComponent<AirPlayConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"airplay\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-airplay-btn\", type: \"button\", innerHTML: IconRegistry.get(\"airplay\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.airplay\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.airplay\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.airplay\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.airplay\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n if (!this.media.state.airplay) this.media.intent.airplay = true; // AirPlay handles its own connect/disconnect UI natively, we just trigger it\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.airplay ? \"AirPlay Active\" : \"AirPlay\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.airplay, this.settings.voice.commands.airplay);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n airplay: typeof AirPlayButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\nimport { IconRegistry } from \"@core/registries\";\nimport { createEl } from \"@utils/dom\";\n\nexport type Backward10Config = undefined;\n\nexport class Backward10Button extends BaseComponent<Backward10Config, ComponentState, HTMLButtonElement> {\n public static readonly componentName: string = \"backward10\";\n public static readonly isControl: boolean = true;\n\n public override create() {\n return (this.element = createEl(\"button\", { className: \"tmg-media-backward10-btn\", type: \"button\", innerHTML: IconRegistry.get(\"backward10\") }, { draggableControl: \"\", controlId: this.name }));\n }\n\n public override wire(): void {\n // Event Listeners\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\n // Post Wiring\n this.syncARIA();\n }\n\n protected handleClick(): void {\n this.media.intent.currentTime -= 10;\n }\n\n public syncARIA(): void {\n this.state.label = \"Backward 10s\";\n this.el.title = this.state.label + this.state.cmd;\n this.setBtnARIA();\n }\n}\n\ndeclare module \"@defs/registries\" {\n interface ComponentRegistryMap {\n backward10: typeof Backward10Button;\n }\n}\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type BigNextConfig = undefined;\r\n\r\nexport class BigNextButton extends BaseComponent<BigNextConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"bignext\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"playlist\");\r\n }\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { className: \"tmg-media-big-next-btn\", type: \"button\", innerHTML: IconRegistry.get(\"next\") }, { draggableControl: \"\", dragId: \"big\", controlId: this.name });\r\n return this.disable(), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Plug Listeners\r\n this.plug?.state.on(\"currentIndex\", () => this[this.plug!.atLast ? \"disable\" : \"enable\"](), { init: true, signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"playlist\", this.syncUI, { signal: this.signal, init: true, depth: 1 });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.next\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.next\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.next();\r\n }\r\n\r\n public syncUI(): void {\r\n this[this.ctlr.config.playlist.content && this.ctlr.config.playlist.content.length > 1 ? \"show\" : \"hide\"]();\r\n }\r\n public syncARIA(): void {\r\n this.state.label = \"Next\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.next, this.settings.voice.commands.next);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n bignext: typeof BigNextButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type BigPlayPauseConfig = undefined;\r\n\r\nexport class BigPlayPauseButton extends BaseComponent<BigPlayPauseConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"bigplaypause\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-big-play-pause-btn\", type: \"button\", innerHTML: IconRegistry.get(\"play\") + IconRegistry.get(\"pause\") + IconRegistry.get(\"replay\") }, { draggableControl: \"\", dragId: \"big\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.paused\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.ended\", this.syncARIA, { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.playPause\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.paused = !this.media.state.paused;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.status.ended ? \"Replay\" : this.media.state.paused ? \"Play\" : \"Pause\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.playPause, this.settings.voice.commands.playPause);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n bigplaypause: typeof BigPlayPauseButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type BigPrevConfig = undefined;\r\n\r\nexport class BigPrevButton extends BaseComponent<BigPrevConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"bigprev\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"playlist\");\r\n }\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { className: \"tmg-media-big-prev-btn\", type: \"button\", innerHTML: IconRegistry.get(\"prev\") }, { draggableControl: \"\", dragId: \"big\", controlId: this.name });\r\n return this.disable(), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Plug Listeners\r\n this.plug?.state.on(\"currentIndex\", () => this[this.plug!.atFirst ? \"disable\" : \"enable\"](), { init: true, signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"playlist\", this.syncUI, { signal: this.signal, init: true, depth: 1 });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.prev\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.prev\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.previous();\r\n }\r\n\r\n public syncUI(): void {\r\n this[this.ctlr.config.playlist.content && this.ctlr.config.playlist.content.length > 1 ? \"show\" : \"hide\"]();\r\n }\r\n public syncARIA(): void {\r\n this.state.label = \"Previous\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.prev, this.settings.voice.commands.prev);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n bigprev: typeof BigPrevButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\nimport { capitalize } from \"@utils/str\";\r\n\r\nexport type CaptionsConfig = undefined;\r\n\r\nexport class CaptionsButton extends BaseComponent<CaptionsConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"captions\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.captions\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-captions-btn\", type: \"button\", innerHTML: IconRegistry.get(\"subtitles\") + IconRegistry.get(\"captions\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.textVisible\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.currentTextTrack\", this.syncUI, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.textTracks\", this.syncUI, { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.captions\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.captions\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.toggleVisible();\r\n }\r\n\r\n public syncUI(): void {\r\n this[!this.plug?.canVisible ? \"disable\" : \"enable\"]();\r\n this.syncARIA();\r\n }\r\n public syncARIA(): void {\r\n this.state.label = capitalize(this.plug?.getTrackKind()) || \"Captions\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.captions, this.settings.voice.commands.captions);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n captions: typeof CaptionsButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { addSafeClicks, createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type CaptureConfig = undefined;\r\n\r\nexport class CaptureButton extends BaseComponent<CaptureConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"capture\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.frame\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-capture-btn\", type: \"button\", innerHTML: IconRegistry.get(\"capture\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.frameCapture\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n addSafeClicks(this.el, this.handleClick, this.handleDblClick, { signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.capture\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.capture\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.capture();\r\n }\r\n protected handleDblClick(): void {\r\n this.plug?.capture(\"monochrome\");\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = \"Capture frame\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.capture, this.settings.voice.commands.capture);\r\n this.el.title = `Capture${this.state.cmd} ↔ DblClick→B&W (+alt)`;\r\n this.setBtnARIA(\"Capture monochrome frame\");\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n capture: typeof CaptureButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type CastConfig = undefined;\r\n\r\nexport class CastButton extends BaseComponent<CastConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"cast\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-cast-btn\", type: \"button\", innerHTML: IconRegistry.get(\"cast\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.cast\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.cast\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.cast\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.cast\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.cast = !this.media.state.cast;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.cast ? \"Stop casting\" : \"Cast to TV\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.cast, this.settings.voice.commands.cast);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n cast: typeof CastButton;\r\n }\r\n}\r\n","import { silence } from \"sia-reactor/modules\";\r\nimport { BaseComponent, ComponentState } from \"../base\";\r\nimport { createEl } from \"@utils/dom\";\r\n// import { IconRegistry } from \"@core/registries\";\r\n\r\nexport type ChapterConfig = undefined;\r\n\r\nexport class ChapterButton extends BaseComponent<ChapterConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName = \"chapter\";\r\n public static readonly isControl: boolean = true;\r\n public textEl!: HTMLSpanElement;\r\n public iconEl!: HTMLSpanElement;\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { className: \"tmg-media-chapter-btn tmg-media-control-text-btn\", type: \"button\" }, { draggableControl: \"\", controlId: this.name });\r\n this.iconEl = createEl(\"span\", { className: \"tmg-media-chapter-icon\" }); // innerHTML: IconRegistry.get(\"chevronright\") || \">\"\r\n this.textEl = createEl(\"span\", { className: \"tmg-media-chapter-text\" });\r\n return this.element.append(this.textEl, this.iconEl), this.el;\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.currentChapter\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.currentChapter\", this.syncUI, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"settings.metadata.chapterInfo\", this.syncUI, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Post Wiring\r\n this.syncARIA();\r\n }\r\n\r\n protected async handleClick(): Promise<void> {\r\n const view = this.ctlr.plug(\"settings.settingsView\");\r\n if (view) {\r\n view.menu.open(this.el);\r\n view.menu.goTo(\"chapters\");\r\n }\r\n }\r\n\r\n protected syncUI(): void {\r\n const idx = this.media.state.currentChapter,\r\n chapters = this.media.settings.metadata.chapterInfo;\r\n if (idx === -1 || !chapters || !chapters[idx]) return void ((this.textEl.textContent = \"\"), this.hide());\r\n (this.textEl.textContent = chapters[idx].title || `Chapter ${idx + 1}`), this.show();\r\n }\r\n\r\n protected syncARIA(): void {\r\n this.el.title = this.state.label = \"View Chapter\";\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n chapter: typeof ChapterButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\nimport { silence } from \"sia-reactor/modules\";\r\n\r\nexport type DurationConfig = undefined;\r\n\r\nexport class DurationButton extends BaseComponent<DurationConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"duration\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.time\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-duration-btn tmg-media-control-text-btn\", textContent: \"-:--\" }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"status.duration\", this.syncUI, { signal: this.signal });\r\n this.media.on(\"state.live\", (e) => (this.el.classList.toggle(\"tmg-media-control-live\", e.value), this.el.classList.toggle(\"tmg-media-live-badge\", e.value), this.syncARIA()), { signal: this.signal });\r\n this.media.on(\"status.isLive\", (e) => (this.media.container.classList.toggle(\"tmg-media-is-live\", e.value), this.syncARIA()), { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.time.format\", this.syncUI, { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.timeFormat\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.timeFormat\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n !this.media.status.isLive || this.media.state.live ? this.plug?.rotateFormat() : silence(() => (this.media.intent.live = true));\r\n }\r\n\r\n public syncUI(): void {\r\n this.el.textContent = !this.media.status.isLive ? this.plug?.toTimeText(this.media.status.duration) || \"-:--\" : \"Live\";\r\n }\r\n public syncARIA(): void {\r\n this.state.label = \"Switch time format\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.timeFormat, this.settings.voice.commands.timeFormat);\r\n this.el.title = !this.media.status.isLive || this.media.state.live ? this.state.label + this.state.cmd : \"Skip ahead to live broadcast\";\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n duration: typeof DurationButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport type ExpandMiniplayerConfig = undefined;\r\n\r\nexport class ExpandMiniplayerButton extends BaseComponent<ExpandMiniplayerConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"expandminiplayer\";\r\n public static readonly isControl: boolean = true;\r\n protected get pin() {\r\n return this.ctlr.plug(\"settings.modes\")?.miniplayer;\r\n }\r\n\r\n public override create(): HTMLButtonElement {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-miniplayer-expand-btn\", type: \"button\", innerHTML: IconRegistry.get(\"expandminiplayer\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.miniplayer\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Post Wiring\r\n this.syncARIA();\r\n }\r\n\r\n protected handleClick(): void {\r\n this.pin?.expand();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.el.title = this.state.label = \"Expand miniplayer\";\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n expandminiplayer: typeof ExpandMiniplayerButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\nimport { IconRegistry } from \"@core/registries\";\nimport { createEl } from \"@utils/dom\";\n\nexport type Forward10Config = undefined;\n\nexport class Forward10Button extends BaseComponent<Forward10Config, ComponentState, HTMLButtonElement> {\n public static readonly componentName: string = \"forward10\";\n public static readonly isControl: boolean = true;\n\n public override create() {\n return (this.element = createEl(\"button\", { className: \"tmg-media-forward10-btn\", type: \"button\", innerHTML: IconRegistry.get(\"forward10\") }, { draggableControl: \"\", controlId: this.name }));\n }\n\n public override wire(): void {\n // Event Listeners\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\n // Post Wiring\n this.syncARIA();\n }\n\n protected handleClick(): void {\n this.media.intent.currentTime += 10;\n }\n\n public syncARIA(): void {\n this.state.label = \"Forward 10s\";\n this.el.title = this.state.label + this.state.cmd;\n this.setBtnARIA();\n }\n}\n\ndeclare module \"@defs/registries\" {\n interface ComponentRegistryMap {\n forward10: typeof Forward10Button;\n }\n}\n","import { BaseComponent, ComponentState } from \"@components/base\";\nimport { IconRegistry } from \"@core/registries\";\nimport { createEl } from \"@utils/dom\";\nimport { formatKeyForDisplay } from \"@utils/keys\";\n\nexport type FullscreenConfig = undefined;\n\nexport class FullscreenButton extends BaseComponent<FullscreenConfig, ComponentState, HTMLButtonElement> {\n public static readonly componentName: string = \"fullscreen\";\n public static readonly isControl: boolean = true;\n\n public override create() {\n return (this.element = createEl(\"button\", { className: \"tmg-media-fullscreen-btn\", type: \"button\", innerHTML: IconRegistry.get(\"enterfullscreen\") + IconRegistry.get(\"leavefullscreen\") }, { draggableControl: \"\", controlId: this.name }));\n }\n\n public override wire(): void {\n // Features Gating\n this.media.on(\"features.fullscreen\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\n // Event Listeners\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\n // Ctlr Media Listeners\n this.media.on(\"state.fullscreen\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\n // ---- Config --------\n this.ctlr.config.on(\"settings.keys.shortcuts.fullscreen\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.fullscreen\", this.syncARIA, { signal: this.signal });\n }\n\n protected handleClick(): void {\n this.media.intent.fullscreen = !this.media.state.fullscreen;\n }\n\n public syncARIA(): void {\n this.state.label = this.media.state.fullscreen ? \"Exit full screen\" : \"Full screen\";\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.fullscreen, this.settings.voice.commands.fullscreen);\n this.el.title = this.state.label + this.state.cmd;\n this.setBtnARIA();\n }\n}\n\ndeclare module \"@defs/registries\" {\n interface ComponentRegistryMap {\n fullscreen: typeof FullscreenButton;\n }\n}\n","import { IconRegistry } from \"@core/registries\";\r\nimport { BaseComponent, ComponentState } from \"../base\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport type FullscreenLockConfig = undefined;\r\n\r\nexport class FullscreenLockButton extends BaseComponent<FullscreenLockConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"fullscreenlock\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { type: \"button\", className: \"tmg-media-fullscreen-locked-btn\", innerHTML: IconRegistry.get(\"lock\") }, { draggableControl: \"\", controlId: this.name });\r\n return this.hide(), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.fullscreen\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"features.locked\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.fullscreen\", () => this[this.canShow ? \"show\" : \"hide\"](), { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Post Wiring\r\n this.syncARIA();\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.locked = true;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.el.title = this.state.label = \"Lock Screen\";\r\n this.setBtnARIA();\r\n }\r\n\r\n protected override get canShow(): boolean {\r\n return this.media.state.fullscreen && !!this.media.features.fullscreen && !!this.media.features.locked;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n fullscreenlock: typeof FullscreenLockButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport type FullscreenOrientationConfig = undefined;\r\n\r\nexport class FullscreenOrientationButton extends BaseComponent<FullscreenOrientationConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"fullscreenorientation\";\r\n public static readonly isControl: boolean = true;\r\n protected get pin() {\r\n return this.ctlr.plug(\"settings.modes\")?.fullscreen;\r\n }\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { className: \"tmg-media-fullscreen-orientation-btn\", type: \"button\", innerHTML: IconRegistry.get(\"fullscreenorientation\") }, { draggableControl: \"\", controlId: this.name });\r\n return this.hide(), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.fullscreen\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"features.fullscreenOrientation\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.fullscreen\", () => this[this.canShow ? \"show\" : \"hide\"](), { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Post Wiring\r\n this.syncARIA();\r\n }\r\n\r\n protected handleClick(): void {\r\n this.pin?.changeScreenOrientation();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.el.title = this.state.label = \"Change orientation\";\r\n this.setBtnARIA();\r\n }\r\n\r\n protected override get canShow(): boolean {\r\n return this.media.state.fullscreen && !!this.media.features.fullscreen && !!this.media.features.fullscreenOrientation;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n fullscreenorientation: typeof FullscreenOrientationButton;\r\n }\r\n}\r\n","import { BaseComponent } from \"../base\";\r\nimport type { ComponentState } from \"../base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { initScrollAssist, removeScrollAssist } from \"@t007/utils/hooks/vanilla\";\r\n\r\nexport type MetaConfig = undefined;\r\n\r\nexport class Meta extends BaseComponent<MetaConfig, ComponentState, HTMLDivElement> {\r\n public static readonly componentName: string = \"meta\";\r\n public static readonly isControl: boolean = true;\r\n public profile!: HTMLImageElement;\r\n public title!: HTMLAnchorElement;\r\n public artist!: HTMLAnchorElement;\r\n protected scrollers: HTMLElement[] = [];\r\n\r\n public override create(): HTMLDivElement {\r\n // Variables Assignment\r\n this.element = createEl(\"div\", { className: \"tmg-media-meta-wrapper\" }, { draggableControl: \"\", dragId: \"wrapper\", controlId: this.name });\r\n const textsCover = createEl(\"div\", { className: \"tmg-media-meta-text-wrapper-cover\" }),\r\n profileLink = createEl(\"a\", { className: \"tmg-media-profile-link\" }),\r\n titleWrapper = createEl(\"div\", { className: \"tmg-media-title-wrapper\" }),\r\n artistWrapper = createEl(\"div\", { className: \"tmg-media-artist-wrapper\" });\r\n this.ctlr.DOM.mediaProfile = this.profile = this.ctlr.syncImgLoadState(createEl(\"img\", { alt: \"Profile\", className: \"tmg-media-profile\" }));\r\n this.ctlr.DOM.mediaTitle = this.title = createEl(\"a\", { className: \"tmg-media-title tmg-media-meta-text\" });\r\n this.ctlr.DOM.mediaArtist = this.artist = createEl(\"a\", { className: \"tmg-media-artist tmg-media-meta-text\" });\r\n // DOM Injection\r\n profileLink.append(this.profile), titleWrapper.append(this.title), artistWrapper.append(this.artist), textsCover.append(titleWrapper, artistWrapper);\r\n return this.el.append(profileLink, textsCover), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.controlPanel.profile\", this.syncProfile, { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.controlPanel.title\", this.syncTitle, { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.controlPanel.artist\", this.syncArtist, { init: true, signal: this.signal });\r\n // Post Wiring\r\n this.scrollers.push((initScrollAssist(this.title, { pxPerSecond: 60 }), this.title));\r\n this.scrollers.push((initScrollAssist(this.artist, { pxPerSecond: 30 }), this.artist));\r\n }\r\n\r\n public syncUI(): void {\r\n this.syncProfile(), this.syncTitle(), this.syncArtist();\r\n }\r\n public syncProfile(): void {\r\n const profile = this.settings.controlPanel.profile;\r\n if (profile !== true) (this.profile.dataset.loaded = \"false\"), (this.profile.dataset.mediaProfile = this.profile.src = profile || \"\");\r\n }\r\n public syncTitle(): void {\r\n const title = this.settings.controlPanel.title;\r\n if (title !== true) this.title.dataset.mediaTitle = this.title.textContent = title || \"\";\r\n }\r\n public syncArtist(): void {\r\n const artist = this.settings.controlPanel.artist;\r\n if (artist !== true) this.artist.dataset.mediaArtist = this.artist.textContent = artist || \"\";\r\n }\r\n\r\n protected override onDestroy(): void {\r\n for (const el of this.scrollers) removeScrollAssist(el);\r\n super.onDestroy();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n meta: typeof Meta;\r\n }\r\n interface ControllerDOMMap {\r\n mediaProfile?: HTMLImageElement;\r\n mediaTitle?: HTMLAnchorElement;\r\n mediaArtist?: HTMLAnchorElement;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type NextConfig = undefined;\r\n\r\nexport class NextButton extends BaseComponent<NextConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"next\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"playlist\");\r\n }\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { className: \"tmg-media-next-btn\", type: \"button\", innerHTML: IconRegistry.get(\"next\") }, { draggableControl: \"\", controlId: this.name });\r\n return this.hide(), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Plug Listeners\r\n this.plug?.state.on(\"currentIndex\", () => this[this.plug!.atLast ? \"hide\" : \"show\"](), { init: true, signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.next\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.next\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.next();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = \"Next\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.next, this.settings.voice.commands.next);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n next: typeof NextButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type ObjectFit = undefined;\r\n\r\nexport class ObjectFitButton extends BaseComponent<ObjectFit, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"objectfit\";\r\n public static readonly isControl: boolean = true;\r\n\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.objectFit\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-object-fit-btn\", type: \"button\", innerHTML: IconRegistry.get(\"objectfitcontain\") + IconRegistry.get(\"objectfitcover\") + IconRegistry.get(\"objectfitfill\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.objectFit\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.objectFit\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.objectFit\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.objectFit\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.rotateFit();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.plug?.toLabel(this.plug?.nextFit) || \"\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.objectFit, this.settings.voice.commands.objectFit);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n objectfit: typeof ObjectFitButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type PictureInPictureConfig = undefined;\r\n\r\nexport class PictureInPictureButton extends BaseComponent<PictureInPictureConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"pictureinpicture\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-picture-in-picture-btn\", type: \"button\", innerHTML: IconRegistry.get(\"enterpip\") + IconRegistry.get(\"leavepip\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.pictureInPicture\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.pictureInPicture\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.pictureInPicture\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.pictureInPicture\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.pictureInPicture = !this.media.state.pictureInPicture;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.pictureInPicture ? \"Exit picture in picture\" : \"Picture in picture\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.pictureInPicture, this.settings.voice.commands.pictureInPicture);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n pictureinpicture: typeof PictureInPictureButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type PlayPauseConfig = undefined;\r\n\r\nexport class PlayPauseButton extends BaseComponent<PlayPauseConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"playpause\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-play-pause-btn\", innerHTML: IconRegistry.get(\"play\") + IconRegistry.get(\"pause\") + IconRegistry.get(\"replay\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.paused\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"status.ended\", this.syncARIA, { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.playPause\", this.syncARIA, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.voice.commands.playPause\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.paused = !this.media.state.paused;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.status.ended ? \"Replay\" : this.media.state.paused ? \"Play\" : \"Pause\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.playPause, this.settings.voice.commands.playPause);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n playPause: typeof PlayPauseButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type PrevConfig = undefined;\r\n\r\nexport class PrevButton extends BaseComponent<PrevConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"prev\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"playlist\");\r\n }\r\n\r\n public override create() {\r\n this.element = createEl(\"button\", { className: \"tmg-media-prev-btn\", type: \"button\", innerHTML: IconRegistry.get(\"prev\") }, { draggableControl: \"\", controlId: this.name });\r\n return this.hide(), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Plug Listeners\r\n this.plug?.state.on(\"currentIndex\", () => this[this.plug!.atFirst ? \"hide\" : \"show\"](), { init: true, signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.prev\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.prev\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.previous();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = \"Previous\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.prev, this.settings.voice.commands.prev);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n prev: typeof PrevButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport type RemoveMiniplayerConfig = undefined;\r\n\r\nexport class RemoveMiniplayerButton extends BaseComponent<RemoveMiniplayerConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"removeminiplayer\";\r\n public static readonly isControl: boolean = true;\r\n protected get pin() {\r\n return this.ctlr.plug(\"settings.modes\")?.miniplayer;\r\n }\r\n\r\n public override create(): HTMLButtonElement {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-miniplayer-remove-btn\", type: \"button\", innerHTML: IconRegistry.get(\"removeminiplayer\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.miniplayer\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Post Wiring\r\n this.syncARIA();\r\n }\r\n\r\n protected handleClick(): void {\r\n this.pin?.remove();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = \"Remove miniplayer\";\r\n this.state.cmd = \" (Escape)\";\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n removeminiplayer: typeof RemoveMiniplayerButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type SettingsConfig = undefined;\r\n\r\nexport class SettingsButton extends BaseComponent<SettingsConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"settings\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.settingsView\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-settings-btn\", type: \"button\", innerHTML: IconRegistry.get(\"settings\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.settings\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.settings\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n const menu = this.plug?.menu;\r\n menu ? menu.toggle(this.el) : this.plug?.toggleView();\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = \"Settings\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.settings, this.settings.voice.commands.settings);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n settings: typeof SettingsButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type TheaterConfig = undefined;\r\n\r\nexport class TheaterButton extends BaseComponent<TheaterConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"theater\";\r\n public static readonly isControl: boolean = true;\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-theater-btn\", type: \"button\", innerHTML: IconRegistry.get(\"entertheater\") + IconRegistry.get(\"leavetheater\") }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Features Gating\r\n this.media.on(\"features.theater\", this.gate, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n this.el.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.theater\", this.syncARIA, { init: this.ctlr.payload.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.keys.shortcuts.theater\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.theater\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.theater = !this.media.state.theater;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.theater ? \"Default view\" : \"Cinema mode\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.theater, this.settings.voice.commands.theater);\r\n this.el.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n theater: typeof TheaterButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { addSafeClicks, createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type TimeConfig = undefined;\r\n\r\nexport class TimeButton extends BaseComponent<TimeConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"time\";\r\n public static readonly isControl: boolean = true;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.time\");\r\n }\r\n\r\n public override create() {\r\n return (this.element = createEl(\"button\", { className: \"tmg-media-time-btn tmg-media-control-text-btn\", textContent: \"-:--\" }, { draggableControl: \"\", controlId: this.name }));\r\n }\r\n\r\n public override wire(): void {\r\n // Feature Gating\r\n this.media.on(\"features.live\", (e) => this[e.value ? \"hide\" : \"show\"](), { init: this.ctlr.payload.wired, signal: this.signal });\r\n // Event Listeners\r\n addSafeClicks(this.element, this.handleClick, this.handleDblClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.currentTime\", this.syncUI, { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.time.mode\", this.syncUI, { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.time.format\", this.syncUI, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.timeMode\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.timeMode\", this.syncARIA, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.timeFormat\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.plug?.toggleMode();\r\n }\r\n protected handleDblClick(): void {\r\n this.plug?.rotateFormat();\r\n }\r\n\r\n public syncUI(): void {\r\n this.el.textContent = this.plug?.toTimeText(this.media.state.currentTime, true) || \"-:--\";\r\n this.syncARIA();\r\n }\r\n public syncARIA(): void {\r\n this.state.label = `Show ${this.plug?.nextMode} time`;\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.timeMode, this.settings.voice.commands.timeMode);\r\n this.el.title = `Switch (mode${this.state.cmd} / DblClick→format${formatKeyForDisplay(this.settings.keys.shortcuts.timeFormat, this.settings.voice.commands.timeFormat)})`;\r\n this.setBtnARIA(\"Switch time format\");\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n time: typeof TimeButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"@components/base\";\r\nimport { addSafeClicks, createEl } from \"@utils/dom\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\nimport { silence } from \"sia-reactor/modules\";\r\n\r\nexport type TimeAndDurationConfig = undefined;\r\n\r\nexport class TimeAndDurationButton extends BaseComponent<TimeAndDurationConfig, ComponentState, HTMLButtonElement> {\r\n public static readonly componentName: string = \"timeandduration\";\r\n public static readonly isControl: boolean = true;\r\n protected time!: HTMLElement;\r\n protected bridge!: HTMLElement;\r\n protected duration!: HTMLElement;\r\n protected liveBadge!: HTMLElement;\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.time\");\r\n }\r\n\r\n public override create() {\r\n // Variables Assignments\r\n this.element = createEl(\"button\", { className: \"tmg-media-time-and-duration-btn tmg-media-control-text-btn\" }, { draggableControl: \"\", controlId: this.name });\r\n this.time = createEl(\"span\", { className: \"tmg-media-current-time\", textContent: \"-:--\" });\r\n this.bridge = createEl(\"span\", { className: \"tmg-media-time-bridge\", textContent: \"/\" });\r\n this.duration = createEl(\"span\", { className: \"tmg-media-duration-time\", textContent: \"-:--\" });\r\n this.liveBadge = createEl(\"span\", { className: \"tmg-media-live-badge\", textContent: \"Live\" });\r\n // DOM Injection\r\n return this.el.append(this.time, this.bridge, this.duration, this.liveBadge), this.element;\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n addSafeClicks(this.element, this.handleClick, this.handleDblClick, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.currentTime\", this.syncTime, { signal: this.signal });\r\n this.media.on(\"state.live\", (e) => (this.liveBadge.classList.toggle(\"tmg-media-control-live\", e.value), this.syncARIA()), { signal: this.signal });\r\n this.media.on(\"status.duration\", this.syncDuration, { signal: this.signal });\r\n this.media.on(\"status.isLive\", (e) => (this.media.container.classList.toggle(\"tmg-media-is-live\", e.value), this.syncARIA()), { signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.time.format\", this.syncUI, { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.time.mode\", this.syncTime, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.timeMode\", this.syncARIA, { init: true, signal: this.signal });\n this.ctlr.config.on(\"settings.voice.commands.timeMode\", this.syncARIA, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.keys.shortcuts.timeFormat\", this.syncARIA, { signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n !this.media.status.isLive || this.media.state.live ? this.plug?.toggleMode() : silence(() => (this.media.intent.live = true));\r\n }\r\n protected handleDblClick(): void {\r\n this.plug?.rotateFormat();\r\n }\r\n\r\n public syncUI(): void {\r\n this.bridge.textContent = { digital: \"/\", human: \"of\", \"human-long\": \"out of\" }[this.settings.time.format] || \"/\";\r\n this.syncTime(), this.syncDuration();\r\n }\r\n public syncTime(): void {\r\n this.time.textContent = this.plug?.toTimeText(this.media.state.currentTime, true) || \"-:--\";\r\n }\r\n public syncDuration(): void {\r\n this.duration.textContent = this.plug?.toTimeText(this.media.status.duration) || \"-:--\";\r\n }\r\n public syncARIA(): void {\r\n this.state.label = `Show ${this.plug?.nextMode} time`;\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.timeMode, this.settings.voice.commands.timeMode);\r\n this.el.title = !this.media.status.isLive || this.media.state.live ? `Switch (mode${this.state.cmd} / DblClick→format${formatKeyForDisplay(this.settings.keys.shortcuts.timeFormat, this.settings.voice.commands.timeFormat)})` : \"Skip ahead to live broadcast\";\r\n this.setBtnARIA(\"Switch time format\");\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n timeandduration: typeof TimeAndDurationButton;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type AirPlayPlaceholderConfig = undefined;\r\n\r\nexport class AirPlayPlaceholder extends BaseComponent<AirPlayPlaceholderConfig, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"airplayplaceholder\";\r\n protected iconBtn!: HTMLButtonElement;\r\n\r\n public override create() {\r\n this.element = createEl(\"div\", { className: \"tmg-media-placeholder tmg-media-airplay-placeholder\", innerHTML: `<p>Streaming to AirPlay Display</p>` });\r\n this.iconBtn = createEl(\"button\", { className: \"tmg-media-placeholder-icon-btn tmg-media-airplay-icon-btn\", innerHTML: IconRegistry.get(\"airplayplaceholder\") });\r\n return this.el.prepend(this.iconBtn), this.el;\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.ctlr.DOM.controlsContainer?.prepend(this.el);\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.iconBtn.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.airplay\", this.syncARIA, { init: true, signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.airplay = !this.media.state.airplay;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.airplay ? \"Stop airplaying\" : \"AirPlay to Display\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.airplay);\r\n this.iconBtn.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA(\"\", this.iconBtn);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n airplayplaceholder: typeof AirPlayPlaceholder;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { formatKeyForDisplay } from \"@utils/keys\";\r\n\r\nexport type CastPlaceholderConfig = undefined;\r\n\r\nexport class CastPlaceholder extends BaseComponent<CastPlaceholderConfig, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"castplaceholder\";\r\n protected iconBtn!: HTMLButtonElement;\r\n\r\n public override create() {\r\n this.element = createEl(\"div\", { className: \"tmg-media-placeholder tmg-media-cast-placeholder\", innerHTML: `<p>Casting to External Display</p>` });\r\n this.iconBtn = createEl(\"button\", { className: \"tmg-media-placeholder-icon-btn tmg-media-cast-icon-btn\", innerHTML: IconRegistry.get(\"castplaceholder\") });\r\n return this.el.prepend(this.iconBtn), this.el;\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.ctlr.DOM.controlsContainer?.prepend(this.el);\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.iconBtn.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.cast\", this.syncARIA, { init: true, signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.cast = !this.media.state.cast;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.cast ? \"Stop casting\" : \"Cast to Display\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.cast);\r\n this.iconBtn.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA(\"\", this.iconBtn);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n castplaceholder: typeof CastPlaceholder;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { formatKeyForDisplay } from \"../../super/utils\";\r\n\r\nexport type PiPPlaceholderConfig = undefined;\r\n\r\nexport class PiPPlaceholder extends BaseComponent<PiPPlaceholderConfig, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"pipplaceholder\";\r\n protected iconBtn!: HTMLButtonElement;\r\n\r\n public override create() {\r\n this.element = createEl(\"div\", { className: \"tmg-media-placeholder tmg-media-picture-in-picture-placeholder\", innerHTML: `<p>Playing in picture-in-picture</p>` });\r\n this.iconBtn = createEl(\"button\", { className: \"tmg-media-placeholder-icon-btn tmg-media-picture-in-picture-icon-btn\", innerHTML: IconRegistry.get(\"pipplaceholder\") });\r\n return this.el.prepend(this.iconBtn), this.el;\r\n }\r\n\r\n public override mount(): void {\r\n // DOM Injection\r\n this.ctlr.DOM.controlsContainer?.prepend(this.el);\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.iconBtn.addEventListener(\"click\", this.handleClick, { signal: this.signal });\r\n // Ctlr Config Listeners\r\n this.ctlr.config.on(\"settings.keys.shortcuts.pictureInPicture\", this.syncARIA, { init: true, signal: this.signal });\r\n }\r\n\r\n protected handleClick(): void {\r\n this.media.intent.pictureInPicture = !this.media.state.pictureInPicture;\r\n }\r\n\r\n public syncARIA(): void {\r\n this.state.label = this.media.state.pictureInPicture ? \"Exit picture in picture\" : \"Picture in picture\";\r\n this.state.cmd = formatKeyForDisplay(this.settings.keys.shortcuts.pictureInPicture);\r\n this.iconBtn.title = this.state.label + this.state.cmd;\r\n this.setBtnARIA(\"\", this.iconBtn);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n pipplaceholder: typeof PiPPlaceholder;\r\n }\r\n}\r\n","import { BaseComponent, ComponentState } from \"../base\";\r\n\r\nexport abstract class BaseNotifier<Config = any, State extends ComponentState = any, El extends HTMLElement = HTMLElement> extends BaseComponent<Config, State, El> {\r\n public static readonly componentName: string = \"base\";\r\n public static readonly isNotifier: boolean = true;\r\n public static readonly triggers: string[] = [];\r\n public nodes: El[] = [];\r\n protected get plug() {\r\n return this.ctlr.plug(\"settings.notifiers\");\r\n }\r\n public get events() {\r\n return (this.constructor as typeof BaseNotifier).triggers;\r\n }\r\n\r\n public override mount() {\r\n const nodes = this.nodes.length ? this.nodes : [this.element];\r\n for (const node of nodes) node.classList.add(\"tmg-media-notifier\");\r\n this.ctlr.DOM.notifiersContainer?.append(...nodes);\r\n }\r\n public override unmount(): void {\r\n for (const node of this.nodes.length ? this.nodes : [this.element]) node.remove();\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n for (const node of this.nodes.length ? this.nodes : [this.element]) node.addEventListener(\"animationend\", this.handleAnimationEnd, { signal: this.signal });\r\n // Post Wiring\r\n this.plug?.state.events.push(...this.events);\r\n }\r\n \r\n protected handleAnimationEnd(): void {\r\n this.plug?.reset(\"\", true);\r\n }\r\n\r\n protected bindNodes(nodes: El[]): El {\r\n return (this.nodes = nodes), (this.element = nodes[0]);\r\n }\r\n}\r\n\r\nexport type { ComponentState };\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class PlayPauseNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"playpausenotifier\";\r\n public static readonly triggers = [\"mediaplay\", \"mediapause\"];\r\n public playDiv!: HTMLDivElement;\r\n public pauseDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.playDiv = createEl(\"div\", { className: \"tmg-media-play-notifier\", innerHTML: IconRegistry.get(\"play\", true) });\r\n this.pauseDiv = createEl(\"div\", { className: \"tmg-media-pause-notifier\", innerHTML: IconRegistry.get(\"pause\", true) });\r\n return this.bindNodes([this.playDiv, this.pauseDiv]);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n playpausenotifier: typeof PlayPauseNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\n\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class PrevNextNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"prevnextnotifier\";\r\n public static readonly triggers = [\"mediaprev\", \"medianext\"];\r\n public prevDiv!: HTMLDivElement;\r\n public nextDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.prevDiv = createEl(\"div\", { className: \"tmg-media-prev-notifier\", innerHTML: IconRegistry.get(\"prev\", true) });\r\n this.nextDiv = createEl(\"div\", { className: \"tmg-media-next-notifier\", innerHTML: IconRegistry.get(\"next\", true) });\r\n return this.bindNodes([this.prevDiv, this.nextDiv]);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n prevnextnotifier: typeof PrevNextNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class CaptionsNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"captionsnotifier\";\r\n public static readonly triggers = [\"captions\"];\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-captions-notifier\", innerHTML: IconRegistry.get(\"subtitles\") + IconRegistry.get(\"captions\") }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n captionsnotifier: typeof CaptionsNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\n\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class CaptureNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"capturenotifier\";\r\n public static readonly triggers = [\"capture\"];\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-capture-notifier\", innerHTML: IconRegistry.get(\"capture\") }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n capturenotifier: typeof CaptureNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\n\r\nexport class PlaybackRateNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"playbackratenotifier\";\r\n public static readonly triggers = [\"playbackrateup\", \"playbackratedown\"];\r\n public content!: HTMLDivElement;\r\n public upDiv!: HTMLDivElement;\r\n public downDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.content = createEl(\"div\", { className: \"tmg-media-playback-rate-notifier-content tmg-media-notifier-content\" });\r\n this.upDiv = createEl(\"div\", { className: \"tmg-media-playback-rate-up-notifier\", innerHTML: IconRegistry.get(\"doubletriangleright\") });\r\n this.downDiv = createEl(\"div\", { className: \"tmg-media-playback-rate-down-notifier\", innerHTML: IconRegistry.get(\"doubletriangleleft\") });\r\n return this.bindNodes([this.content, this.upDiv, this.downDiv]);\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.playbackRate\", this.handlePlaybackRateState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handlePlaybackRateState({ value }: REvent<CtlrMedia, \"state.playbackRate\">): void {\r\n this.content.textContent = `${value}x`;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n playbackratenotifier: typeof PlaybackRateNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { VolumePlug, VolumeState } from \"@plugs/settings/volume\";\r\n\r\nexport class VolumeNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"volumenotifier\";\r\n public static readonly triggers = [\"volumeup\", \"volumedown\", \"volumemuted\"];\r\n public content!: HTMLDivElement;\r\n public upDiv!: HTMLDivElement;\r\n public downDiv!: HTMLDivElement;\r\n public mutedDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.content = createEl(\"div\", { className: \"tmg-media-volume-notifier-content tmg-media-notifier-content\" });\r\n this.upDiv = createEl(\"div\", { className: \"tmg-media-volume-up-notifier\", innerHTML: IconRegistry.get(\"volumehigh\", true) });\r\n this.downDiv = createEl(\"div\", { className: \"tmg-media-volume-down-notifier\", innerHTML: IconRegistry.get(\"volumelow\", true) });\r\n this.mutedDiv = createEl(\"div\", { className: \"tmg-media-volume-muted-notifier\", innerHTML: IconRegistry.get(\"volumemuted\", true) });\r\n return this.bindNodes([this.content, this.upDiv, this.downDiv, this.mutedDiv]);\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Plug Listeners\r\n this.ctlr.plug(\"settings.volume\")?.state.on(\"aptValue\", this.handleVolumeState, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.volume\", this.handleVolumeState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleVolumeState({ value }: REvent<CtlrMedia, \"state.volume\"> | REvent<VolumeState, \"aptValue\">): void {\r\n this.content.innerHTML = `${value}% ${value > 100 ? `<strong style=\"color: var(--tmg-media-range-track-boost-color, red); vertical-align: 4%;\">↑</strong>` : \"\"}`.trim();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n volumenotifier: typeof VolumeNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { BrightnessPlug, BrightnessState } from \"@plugs/settings/brightness\";\r\n\r\nexport class BrightnessNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"brightnessnotifier\";\r\n public static readonly triggers = [\"brightnessup\", \"brightnessdown\", \"brightnessdark\"];\r\n public content!: HTMLDivElement;\r\n public upDiv!: HTMLDivElement;\r\n public downDiv!: HTMLDivElement;\r\n public darkDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.content = createEl(\"div\", { className: \"tmg-media-brightness-notifier-content tmg-media-notifier-content\" });\r\n this.upDiv = createEl(\"div\", { className: \"tmg-media-brightness-up-notifier\", innerHTML: IconRegistry.get(\"brightnesshigh\", true) });\r\n this.downDiv = createEl(\"div\", { className: \"tmg-media-brightness-down-notifier\", innerHTML: IconRegistry.get(\"brightnesslow\", true) });\r\n this.darkDiv = createEl(\"div\", { className: \"tmg-media-brightness-dark-notifier\", innerHTML: IconRegistry.get(\"brightnessdark\", true) });\r\n return this.bindNodes([this.content, this.upDiv, this.downDiv, this.darkDiv]);\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Plug Listeners\r\n this.ctlr.plug(\"settings.brightness\")?.state.on(\"aptValue\", this.handleBrightnessState, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.brightness\", this.handleBrightnessState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleBrightnessState({ value }: REvent<CtlrMedia, \"state.brightness\"> | REvent<BrightnessState, \"aptValue\">): void {\r\n this.content.innerHTML = `${value}% ${value > 100 ? `<strong style=\"color: var(--tmg-media-range-track-boost-color, red); vertical-align: 4%;\">↑</strong>` : \"\"}`.trim();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n brightnessnotifier: typeof BrightnessNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\n\r\nexport class ObjectFitNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"objectfitnotifier\";\r\n public static readonly triggers = [\"objectfitcontain\", \"objectfitcover\", \"objectfitfill\"];\r\n public content!: HTMLDivElement;\r\n public containDiv!: HTMLDivElement;\r\n public coverDiv!: HTMLDivElement;\r\n public fillDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.content = createEl(\"div\", { className: \"tmg-media-object-fit-notifier-content tmg-media-notifier-content\" });\r\n this.containDiv = createEl(\"div\", { className: \"tmg-media-object-fit-contain-notifier\", innerHTML: IconRegistry.get(\"objectfitcontain\", true) });\r\n this.coverDiv = createEl(\"div\", { className: \"tmg-media-object-fit-cover-notifier\", innerHTML: IconRegistry.get(\"objectfitcover\", true) });\r\n this.fillDiv = createEl(\"div\", { className: \"tmg-media-object-fit-fill-notifier\", innerHTML: IconRegistry.get(\"objectfitfill\", true) });\r\n return this.bindNodes([this.content, this.containDiv, this.coverDiv, this.fillDiv]);\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.objectFit\", this.handleObjectFitState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleObjectFitState({ value }: REvent<CtlrMedia, \"state.objectFit\">): void {\r\n this.content.textContent = this.ctlr.plug(\"settings.objectFit\")?.toLabel(value) || \"\";\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n objectfitnotifier: typeof ObjectFitNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\n\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class FwdBwdNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"fwdbwdnotifier\";\r\n public static readonly triggers = [\"fwd\", \"bwd\"];\r\n public fwdDiv!: HTMLDivElement;\r\n public bwdDiv!: HTMLDivElement;\r\n\r\n public override create() {\r\n this.fwdDiv = createEl(\"div\", { className: \"tmg-media-fwd-notifier\", innerHTML: IconRegistry.get(\"fwd\") });\r\n this.bwdDiv = createEl(\"div\", { className: \"tmg-media-bwd-notifier\", innerHTML: IconRegistry.get(\"bwd\") });\r\n return this.bindNodes([this.fwdDiv, this.bwdDiv]);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n fwdbwdnotifier: typeof FwdBwdNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class ScrubNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"scrubnotifier\";\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-scrub-notifier tmg-media-text-notifier tmg-media-top-text-notifier\", innerHTML: `<span>${IconRegistry.get(\"tripletriangleleft\")}</span><p class=\"tmg-media-scrub-notifier-text\" tabindex=\"-1\">Double tap left or right to skip</p><span>${IconRegistry.get(\"tripletriangleright\")}</span>` }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n scrubnotifier: typeof ScrubNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport class CancelScrubNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"cancelscrubnotifier\";\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-cancel-scrub-notifier tmg-media-text-notifier tmg-media-top-text-notifier\", innerHTML: \"Release to cancel\" }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n cancelscrubnotifier: typeof CancelScrubNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { VolumePlug, VolumeState } from \"@plugs/settings/volume\";\r\n\r\nexport class TouchVolumeNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"touchvolumenotifier\";\r\n public static readonly triggers = [\"volumeup\", \"volumedown\", \"volumemuted\"];\r\n public content!: HTMLSpanElement;\r\n public slider!: HTMLDivElement;\r\n public upSpan!: HTMLSpanElement;\r\n public lowSpan!: HTMLSpanElement;\r\n public mutedSpan!: HTMLSpanElement;\r\n\r\n public override create() {\r\n this.content = createEl(\"span\", { className: \"tmg-media-touch-volume-content tmg-media-touch-vb-content\", textContent: \"0\" });\r\n this.slider = createEl(\"div\", { className: \"tmg-media-touch-volume-slider tmg-media-touch-vb-slider\" });\r\n this.upSpan = createEl(\"span\", { innerHTML: IconRegistry.get(\"volumehigh\") });\r\n this.lowSpan = createEl(\"span\", { innerHTML: IconRegistry.get(\"volumelow\") });\r\n this.mutedSpan = createEl(\"span\", { innerHTML: IconRegistry.get(\"volumemuted\") });\r\n const spanWrapper = createEl(\"span\");\r\n this.element = createEl(\"div\", { className: \"tmg-media-touch-volume-notifier tmg-media-touch-vb-notifier\" });\r\n this.el.append(this.content, this.slider, (spanWrapper.append(this.upSpan, this.lowSpan, this.mutedSpan), spanWrapper));\r\n return this.element;\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Plug Listeners\r\n this.ctlr.plug(\"settings.volume\")?.state.on(\"aptValue\", this.handleVolumeState, { init: true, signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.volume\", this.handleVolumeState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleVolumeState({ value }: REvent<CtlrMedia, \"state.volume\"> | REvent<VolumeState, \"aptValue\">): void {\r\n this.content.textContent = `${value}%`;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n touchvolumenotifier: typeof TouchVolumeNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { BrightnessPlug, BrightnessState } from \"@plugs/settings/brightness\";\r\n\r\nexport class TouchBrightnessNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"touchbrightnessnotifier\";\r\n public static readonly triggers = [\"brightnessup\", \"brightnessdown\", \"brightnessdark\"];\r\n public content!: HTMLSpanElement;\r\n public slider!: HTMLDivElement;\r\n public upSpan!: HTMLSpanElement;\r\n public lowSpan!: HTMLSpanElement;\r\n public darkSpan!: HTMLSpanElement;\r\n\r\n public override create() {\r\n this.content = createEl(\"span\", { className: \"tmg-media-touch-brightness-content tmg-media-touch-vb-content\", textContent: \"0\" });\r\n this.slider = createEl(\"div\", { className: \"tmg-media-touch-brightness-slider tmg-media-touch-vb-slider\" });\r\n this.upSpan = createEl(\"span\", { innerHTML: IconRegistry.get(\"brightnesshigh\") });\r\n this.lowSpan = createEl(\"span\", { innerHTML: IconRegistry.get(\"brightnesslow\") });\r\n this.darkSpan = createEl(\"span\", { innerHTML: IconRegistry.get(\"brightnessdark\") });\r\n const spanWrapper = createEl(\"span\")\r\n this.element = createEl(\"div\", { className: \"tmg-media-touch-brightness-notifier tmg-media-touch-vb-notifier\" });\r\n this.el.append(this.content, this.slider, (spanWrapper.append(this.upSpan, this.lowSpan, this.darkSpan), spanWrapper));\r\n return this.element;\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Plug Listeners\r\n this.ctlr.plug(\"settings.brightness\")?.state.on(\"aptValue\", this.handleBrightnessState, { init: true, signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.brightness\", this.handleBrightnessState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleBrightnessState({ value }: REvent<CtlrMedia, \"state.brightness\"> | REvent<BrightnessState, \"aptValue\">): void {\r\n this.content.textContent = `${value}%`;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n touchbrightnessnotifier: typeof TouchBrightnessNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\n\r\nexport class FastPlayNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"fastplaynotifier\";\r\n public static readonly triggers = [\"fastplay\"];\r\n public text!: HTMLParagraphElement;\r\n\r\n public override create() {\r\n this.element = createEl(\"div\", { className: \"tmg-media-fast-play-notifier tmg-media-text-notifier tmg-media-top-text-notifier\", innerHTML: `${IconRegistry.get(\"doubletriangleleft\")}${IconRegistry.get(\"doubletriangleright\")}` });\r\n this.text = createEl(\"p\", { className: \"tmg-media-fast-play-notifier-text\" });\r\n return this.el.insertBefore(this.text, this.el.lastChild), this.el;\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.playbackRate\", this.handlePlaybackRateState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n this.media.on(\"state.currentTime\", this.handleCurrentTimeState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handlePlaybackRateState({ value }: REvent<CtlrMedia, \"state.playbackRate\">): void {\r\n this.text.textContent = `${value}x`;\r\n }\r\n\r\n protected handleCurrentTimeState({ value }: REvent<CtlrMedia, \"state.currentTime\">): void {\r\n this.el.setAttribute(\"data-current-time\", this.ctlr.plug(\"settings.time\")?.toTimeText(value, true) ?? \"0:00\");\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n fastplaynotifier: typeof FastPlayNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\n\r\nexport class TouchTimelineNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"touchtimelinenotifier\";\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-touch-timeline-notifier tmg-media-text-notifier\", innerHTML: \"Current Time\" }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n touchtimelinenotifier: typeof TouchTimelineNotifier;\r\n }\r\n}\r\n\r\nexport default TouchTimelineNotifier;\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport type { REvent } from \"sia-reactor\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\n\r\nexport class ChapterNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"chapternotifier\";\r\n public static readonly triggers = [\"chapter\"];\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-chapter-notifier tmg-media-text-notifier tmg-media-top-text-notifier\", innerHTML: \"Current Chapter\" }));\r\n }\r\n\r\n public override wire(): void {\r\n super.wire();\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.currentChapter\", this.handleChapterState, { init: this.ctlr.payload.wired, signal: this.signal });\r\n }\r\n\r\n protected handleChapterState(e: REvent<CtlrMedia, \"state.currentChapter\">): void {\r\n const chapter = this.media.settings.metadata.chapterInfo?.[e.value];\r\n this.el.textContent = chapter?.title || `Chapter ${e.value + 1}`;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n chapternotifier: typeof ChapterNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class CastNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"castnotifier\";\r\n public static readonly triggers = [\"cast\"];\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-cast-notifier\", innerHTML: IconRegistry.get(\"cast\") }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n castnotifier: typeof CastNotifier;\r\n }\r\n}\r\n","import { BaseNotifier, ComponentState } from \"./base\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { IconRegistry } from \"@core/registries\";\r\n\r\nexport class AirPlayNotifier extends BaseNotifier<undefined, ComponentState, HTMLDivElement> {\r\n public static readonly componentName = \"airplaynotifier\";\r\n public static readonly triggers = [\"airplay\"];\r\n\r\n public override create() {\r\n return (this.element = createEl(\"div\", { className: \"tmg-media-airplay-notifier\", innerHTML: IconRegistry.get(\"airplay\") }));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n airplaynotifier: typeof AirPlayNotifier;\r\n }\r\n}\r\n","export const play = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-play-icon\">\r\n <path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n play: typeof play;\r\n }\r\n}\r\n","export const pause = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-pause-icon\">\r\n <path d=\"M14,19H18V5H14M6,19H10V5H6V19Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n pause: typeof pause;\r\n }\r\n}\r\n","export const replay = `<svg viewBox=\"0 -960 960 960\" class=\"tmg-media-replay-icon\">\r\n <path d=\"M480-80q-75 0-140.5-28.5t-114-77q-48.5-48.5-77-114T120-440h80q0 117 81.5 198.5T480-160q117 0 198.5-81.5T760-440q0-117-81.5-198.5T480-720h-6l62 62-56 58-160-160 160-160 56 58-62 62h6q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-440q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-80Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n replay: typeof replay;\r\n }\r\n}\r\n","export const prev = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-prev-icon\">\r\n <rect x=\"4\" y=\"5.14\" width=\"2.5\" height=\"14\" transform=\"translate(2.1,0)\" />\r\n <path d=\"M17,5.14V19.14L6,12.14L17,5.14Z\" transform=\"translate(2.5,0)\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n prev: typeof prev;\r\n }\r\n}\r\n","export const next = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-next-icon\">\r\n <path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\" transform=\"translate(-2.5,0)\" />\r\n <rect x=\"19\" y=\"5.14\" width=\"2.5\" height=\"14\" transform=\"translate(-2.5,0)\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n next: typeof next;\r\n }\r\n}\r\n","export const settings = `<svg class=\"tmg-media-settings-icon\" viewBox=\"0 -960 960 960\">\r\n <path d=\"m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n settings: typeof settings;\r\n }\r\n}\r\n","export const lock = `<svg class=\"tmg-media-screen-locked-icon\" viewBox=\"0 0 512 512\" style=\"scale: 0.825;\">\r\n <path d=\"M390.234 171.594v-37.375c.016-36.969-15.078-70.719-39.328-94.906A133.88 133.88 0 0 0 256 0a133.88 133.88 0 0 0-94.906 39.313c-24.25 24.188-39.344 57.938-39.313 94.906v37.375H24.906V512h462.188V171.594zm-210.343-37.375c.016-21.094 8.469-39.938 22.297-53.813C216.047 66.594 234.891 58.125 256 58.125s39.953 8.469 53.813 22.281c13.828 13.875 22.281 32.719 22.297 53.813v37.375H179.891zm-96.86 95.5h345.938v224.156H83.031z\"/>\r\n <path d=\"M297.859 321.844c0-23.125-18.75-41.875-41.859-41.875-23.125 0-41.859 18.75-41.859 41.875 0 17.031 10.219 31.625 24.828 38.156l-9.25 60.094h52.562L273.016 360c14.609-6.531 24.843-21.125 24.843-38.156\"/>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n lock: typeof lock;\r\n }\r\n}\r\n","export const unlock = `<svg class=\"tmg-media-screen-unlock-icon\" viewBox=\"0 0 512 512\" style=\"scale: 0.875; translate: 0 -1px;\">\r\n <path d=\"M186.984 203.297v-81.578c.016-19.141 7.688-36.219 20.219-48.813C219.766 60.391 236.859 52.719 256 52.703c19.141.016 36.234 7.688 48.813 20.203 12.531 12.594 20.203 29.672 20.219 48.813v43.406h52.703v-43.406c.016-33.531-13.672-64.125-35.656-86.063C320.125 13.656 289.531-.016 256 0c-33.531-.016-64.125 13.656-86.063 35.656-22 21.938-35.672 52.531-35.656 86.063v81.578H46.438V512h419.125V203.297zM99.141 256H412.86v203.297H99.141z\"/>\r\n <path d=\"M293.969 339.547c0-20.969-17-37.953-37.969-37.953s-37.953 16.984-37.953 37.953c0 15.453 9.266 28.703 22.516 34.609l-8.391 54.5h47.672l-8.406-54.5c13.25-5.906 22.531-19.156 22.531-34.609\"/>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n unlock: typeof unlock;\r\n }\r\n}\r\n","export const enterfullscreen = `<svg class=\"tmg-media-enter-fullscreen-icon\" viewBox=\"0 0 25 25\" style=\"scale: 0.8;\">\r\n <path d=\"M4 1.5C2.61929 1.5 1.5 2.61929 1.5 4V8.5C1.5 9.05228 1.94772 9.5 2.5 9.5H3.5C4.05228 9.5 4.5 9.05228 4.5 8.5V4.5H8.5C9.05228 4.5 9.5 4.05228 9.5 3.5V2.5C9.5 1.94772 9.05228 1.5 8.5 1.5H4Z\" />\r\n <path d=\"M20 1.5C21.3807 1.5 22.5 2.61929 22.5 4V8.5C22.5 9.05228 22.0523 9.5 21.5 9.5H20.5C19.9477 9.5 19.5 9.05228 19.5 8.5V4.5H15.5C14.9477 4.5 14.5 4.05228 14.5 3.5V2.5C14.5 1.94772 14.9477 1.5 15.5 1.5H20Z\" />\r\n <path d=\"M20 22.5C21.3807 22.5 22.5 21.3807 22.5 20V15.5C22.5 14.9477 22.0523 14.5 21.5 14.5H20.5C19.9477 14.5 19.5 14.9477 19.5 15.5V19.5H15.5C14.9477 19.5 14.5 19.9477 14.5 20.5V21.5C14.5 22.0523 14.9477 22.5 15.5 22.5H20Z\" />\r\n <path d=\"M1.5 20C1.5 21.3807 2.61929 22.5 4 22.5H8.5C9.05228 22.5 9.5 22.0523 9.5 21.5V20.5C9.5 19.9477 9.05228 19.5 8.5 19.5H4.5V15.5C4.5 14.9477 4.05228 14.5 3.5 14.5H2.5C1.94772 14.5 1.5 14.9477 1.5 15.5V20Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n enterfullscreen: typeof enterfullscreen;\r\n }\r\n}\r\n","export const leavefullscreen = `<svg class=\"tmg-media-leave-fullscreen-icon\" viewBox=\"0 0 25 25\" style=\"scale: 0.8;\">\r\n <path d=\"M7 9.5C8.38071 9.5 9.5 8.38071 9.5 7V2.5C9.5 1.94772 9.05228 1.5 8.5 1.5H7.5C6.94772 1.5 6.5 1.94772 6.5 2.5V6.5H2.5C1.94772 6.5 1.5 6.94772 1.5 7.5V8.5C1.5 9.05228 1.94772 9.5 2.5 9.5H7Z\" />\r\n <path d=\"M17 9.5C15.6193 9.5 14.5 8.38071 14.5 7V2.5C14.5 1.94772 14.9477 1.5 15.5 1.5H16.5C17.0523 1.5 17.5 1.94772 17.5 2.5V6.5H21.5C22.0523 6.5 22.5 6.94772 22.5 7.5V8.5C22.5 9.05228 22.0523 9.5 21.5 9.5H17Z\" />\r\n <path d=\"M17 14.5C15.6193 14.5 14.5 15.6193 14.5 17V21.5C14.5 22.0523 14.9477 22.5 15.5 22.5H16.5C17.0523 22.5 17.5 22.0523 17.5 21.5V17.5H21.5C22.0523 17.5 22.5 17.0523 22.5 16.5V15.5C22.5 14.9477 22.0523 14.5 21.5 14.5H17Z\" />\r\n <path d=\"M9.5 17C9.5 15.6193 8.38071 14.5 7 14.5H2.5C1.94772 14.5 1.5 14.9477 1.5 15.5V16.5C1.5 17.0523 1.94772 17.5 2.5 17.5H6.5V21.5C6.5 22.0523 6.94772 22.5 7.5 22.5H8.5C9.05228 22.5 9.5 22.0523 9.5 21.5V17Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n leavefullscreen: typeof leavefullscreen;\r\n }\r\n}\r\n","export const enterpip = `<svg class=\"tmg-media-enter-picture-in-picture-icon\" viewBox=\"0 0 25 25\">\r\n <path fill-rule=\"nonzero\" d=\"M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zM6.707 6.293l2.25 2.25L11 6.5V12H5.5l2.043-2.043-2.25-2.25 1.414-1.414z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n enterpip: typeof enterpip;\r\n }\r\n}\r\n","export const leavepip = `<svg class=\"tmg-media-leave-picture-in-picture-icon\" viewBox=\"0 0 25 25\">\r\n <path fill-rule=\"nonzero\" d=\"M21 3a1 1 0 0 1 1 1v7h-2V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h18zm0 10a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-6a1 1 0 0 1 1-1h8zm-9.5-6L9.457 9.043l2.25 2.25-1.414 1.414-2.25-2.25L6 12.5V7h5.5z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n leavepip: typeof leavepip;\r\n }\r\n}\r\n","export const expandminiplayer = `<svg class=\"tmg-media-miniplayer-expand-icon\" viewBox=\"0 -960 960 960\" style=\"scale: 0.9; rotate: 90deg;\">\r\n <path d=\"M120-120v-320h80v184l504-504H520v-80h320v320h-80v-184L256-200h184v80H120Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n expandminiplayer: typeof expandminiplayer;\r\n }\r\n}\r\n","export const removeminiplayer = `<svg class=\"tmg-media-miniplayer-remove-icon\" viewBox=\"0 -960 960 960\">\r\n <path d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n removeminiplayer: typeof removeminiplayer;\r\n }\r\n}\r\n","export const capture = `<svg class=\"tmg-media-capture-icon\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M6.937 5.845c.07-.098.15-.219.25-.381l.295-.486C8.31 3.622 8.913 3 10 3h4c1.087 0 1.69.622 2.518 1.978l.295.486c.1.162.18.283.25.381q.071.098.12.155H20a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3h2.816q.05-.057.121-.155M4 8a1 1 0 0 0-1 1v9a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1h-3c-.664 0-1.112-.364-1.56-.987a8 8 0 0 1-.329-.499c-.062-.1-.27-.445-.3-.492C14.36 5.282 14.088 5 14 5h-4c-.087 0-.36.282-.812 1.022-.029.047-.237.391-.3.492a8 8 0 0 1-.327.5C8.112 7.635 7.664 8 7 8zm15 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2m-7 7a5 5 0 1 1 0-10 5 5 0 0 1 0 10m0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6\"/>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n capture: typeof capture;\r\n }\r\n}\r\n","export const cast = `<svg class=\"tmg-media-cast-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"scale: 0.9;\">\r\n <path fill=\"none\" d=\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6M2 20h.01\"/>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n cast: typeof cast;\r\n }\r\n}\r\n","export const airplay = `<svg class=\"tmg-media-airplay-icon\" viewBox=\"0 0 24 24\">\r\n <path d=\"M12.8 13.4c-.1-.1-.1-.2-.2-.2-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6 0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3\"/>\r\n</svg>\r\n`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n airplay: typeof airplay;\r\n }\r\n}\r\n","export const objectfitcontain = `<svg class=\"tmg-media-object-fit-contain-icon\" viewBox=\"0 0 16 16\" style=\"scale: 0.75;\">\r\n <rect width=\"16\" height=\"16\" rx=\"4\" ry=\"4\" fill=\"none\" stroke-width=\"2.25\" stroke=\"currentColor\"/>\r\n <g stroke-width=\"1\" stroke=\"currentColor\" transform=\"translate(3,3)\">\r\n <path style=\"scale: 0.6;\" d=\"M521.667563,212.999001 L523.509521,212.999001 C523.784943,212.999001 524,213.222859 524,213.499001 C524,213.767068 523.780405,213.999001 523.509521,213.999001 L520.490479,213.999001 C520.354351,213.999001 520.232969,213.944316 520.145011,213.855661 C520.056625,213.763694 520,213.642369 520,213.508523 L520,210.48948 C520,210.214059 520.223858,209.999001 520.5,209.999001 C520.768066,209.999001 521,210.218596 521,210.48948 L521,212.252351 L525.779724,207.472627 C525.975228,207.277123 526.284966,207.283968 526.480228,207.47923 C526.66978,207.668781 526.678447,207.988118 526.486831,208.179734 L521.667563,212.999001 Z\" transform=\"translate(-520 -198)\"/><path style=\"scale: 0.6;\" d=\"M534.251065,199 L532.488194,199 C532.212773,199 531.997715,198.776142 531.997715,198.5 C531.997715,198.231934 532.21731,198 532.488194,198 L535.507237,198 C535.643364,198 535.764746,198.054685 535.852704,198.14334 C535.94109,198.235308 535.997715,198.356632 535.997715,198.490479 L535.997715,201.509521 C535.997715,201.784943 535.773858,202 535.497715,202 C535.229649,202 534.997715,201.780405 534.997715,201.509521 L534.997715,199.667563 L530.178448,204.486831 C529.982944,204.682335 529.673206,204.67549 529.477943,204.480228 C529.288392,204.290677 529.279725,203.97134 529.471341,203.779724 L534.251065,199 Z\" transform=\"translate(-520 -198)\"/>\r\n </g>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n objectfitcontain: typeof objectfitcontain;\r\n }\r\n}\r\n","export const objectfitcover = `<svg class=\"tmg-media-object-fit-cover-icon\" viewBox=\"0 0 16 16\" style=\"scale: 0.75;\">\r\n <rect width=\"16\" height=\"16\" rx=\"4\" ry=\"4\" fill=\"none\" stroke-width=\"2.25\" stroke=\"currentColor\"/>\r\n <g stroke-width=\"1\" stroke=\"currentColor\" transform=\"translate(3,3)\">\r\n <path style=\"scale: 0.6;\" d=\"M521.667563,212.999001 L523.509521,212.999001 C523.784943,212.999001 524,213.222859 524,213.499001 C524,213.767068 523.780405,213.999001 523.509521,213.999001 L520.490479,213.999001 C520.354351,213.999001 520.232969,213.944316 520.145011,213.855661 C520.056625,213.763694 520,213.642369 520,213.508523 L520,210.48948 C520,210.214059 520.223858,209.999001 520.5,209.999001 C520.768066,209.999001 521,210.218596 521,210.48948 L521,212.252351 L525.779724,207.472627 C525.975228,207.277123 526.284966,207.283968 526.480228,207.47923 C526.66978,207.668781 526.678447,207.988118 526.486831,208.179734 L521.667563,212.999001 Z\" transform=\"translate(-520 -198)\"/><path style=\"scale: 0.6;\" d=\"M534.330152,212.999001 L532.488194,212.999001 C532.212773,212.999001 531.997715,213.222859 531.997715,213.499001 C531.997715,213.767068 532.21731,213.999001 532.488194,213.999001 L535.507237,213.999001 C535.643364,213.999001 535.764746,213.944316 535.852704,213.855661 C535.94109,213.763694 535.997715,213.642369 535.997715,213.508523 L535.997715,210.48948 C535.997715,210.214059 535.773858,209.999001 535.497715,209.999001 C535.229649,209.999001 534.997715,210.218596 534.997715,210.48948 L534.997715,212.252351 L530.217991,207.472627 C530.022487,207.277123 529.712749,207.283968 529.517487,207.47923 C529.327935,207.668781 529.319269,207.988118 529.510884,208.179734 L534.330152,212.999001 Z\" transform=\"translate(-520 -198)\"/><path style=\"scale: 0.6;\" d=\"M521.667563,199 L523.509521,199 C523.784943,199 524,198.776142 524,198.5 C524,198.231934 523.780405,198 523.509521,198 L520.490479,198 C520.354351,198 520.232969,198.054685 520.145011,198.14334 C520.056625,198.235308 520,198.356632 520,198.490479 L520,201.509521 C520,201.784943 520.223858,202 520.5,202 C520.768066,202 521,201.780405 521,201.509521 L521,199.74665 L525.779724,204.526374 C525.975228,204.721878 526.284966,204.715034 526.480228,204.519772 C526.66978,204.33022 526.678447,204.010883 526.486831,203.819268 L521.667563,199 Z\" transform=\"translate(-520 -198)\"/><path style=\"scale: 0.6;\" d=\"M534.251065,199 L532.488194,199 C532.212773,199 531.997715,198.776142 531.997715,198.5 C531.997715,198.231934 532.21731,198 532.488194,198 L535.507237,198 C535.643364,198 535.764746,198.054685 535.852704,198.14334 C535.94109,198.235308 535.997715,198.356632 535.997715,198.490479 L535.997715,201.509521 C535.997715,201.784943 535.773858,202 535.497715,202 C535.229649,202 534.997715,201.780405 534.997715,201.509521 L534.997715,199.667563 L530.178448,204.486831 C529.982944,204.682335 529.673206,204.67549 529.477943,204.480228 C529.288392,204.290677 529.279725,203.97134 529.471341,203.779724 L534.251065,199 Z\" transform=\"translate(-520 -198)\"/>\r\n </g>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n objectfitcover: typeof objectfitcover;\r\n }\r\n}\r\n","export const objectfitfill = `<svg class=\"tmg-media-object-fit-fill-icon\" viewBox=\"0 0 16 16\" style=\"scale: 0.75;\">\r\n <rect x=\"4\" y=\"4\" width=\"8\" height=\"8\" rx=\"1\" ry=\"1\" fill=\"none\" stroke-width=\"1.5\" stroke=\"currentColor\"/>\r\n <g stroke-width=\"1\" stroke=\"currentColor\" transform=\"translate(3, 3)\">\r\n <path style=\"scale: 0.65;\" d=\"M521.667563,212.999001 L523.509521,212.999001 C523.784943,212.999001 524,213.222859 524,213.499001 C524,213.767068 523.780405,213.999001 523.509521,213.999001 L520.490479,213.999001 C520.354351,213.999001 520.232969,213.944316 520.145011,213.855661 C520.056625,213.763694 520,213.642369 520,213.508523 L520,210.48948 C520,210.214059 520.223858,209.999001 520.5,209.999001 C520.768066,209.999001 521,210.218596 521,210.48948 L521,212.252351 L525.779724,207.472627 C525.975228,207.277123 526.284966,207.283968 526.480228,207.47923 C526.66978,207.668781 526.678447,207.988118 526.486831,208.179734 L521.667563,212.999001 Z\" transform=\"translate(-520, -198) translate(-3.25, 2.75)\" /><path style=\"scale: 0.65;\" d=\"M534.251065,199 L532.488194,199 C532.212773,199 531.997715,198.776142 531.997715,198.5 C531.997715,198.231934 532.21731,198 532.488194,198 L535.507237,198 C535.643364,198 535.764746,198.054685 535.852704,198.14334 C535.94109,198.235308 535.997715,198.356632 535.997715,198.490479 L535.997715,201.509521 C535.997715,201.784943 535.773858,202 535.497715,202 C535.229649,202 534.997715,201.780405 534.997715,201.509521 L534.997715,199.667563 L530.178448,204.486831 C529.982944,204.682335 529.673206,204.67549 529.477943,204.480228 C529.288392,204.290677 529.279725,203.97134 529.471341,203.779724 L534.251065,199 Z\" transform=\"translate(-520, -198) translate(2.5, -3.25)\" />\r\n </g>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n objectfitfill: typeof objectfitfill;\r\n }\r\n}\r\n","export const volumehigh = `<svg class=\"tmg-media-volume-high-icon\" viewBox=\"0 0 25 25\">\r\n <path d=\"M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n volumehigh: typeof volumehigh;\r\n }\r\n}\r\n","export const volumelow = `<svg class=\"tmg-media-volume-low-icon\" viewBox=\"0 0 25 25\">\r\n <path d=\"M5,9V15H9L14,20V4L9,9M18.5,12C18.5,10.23 17.5,8.71 16,7.97V16C17.5,15.29 18.5,13.76 18.5,12Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n volumelow: typeof volumelow;\r\n }\r\n}\r\n","export const volumemuted = `<svg class=\"tmg-media-volume-muted-icon\" viewBox=\"0 0 25 25\">\r\n <path d=\"M12,4L9.91,6.09L12,8.18M4.27,3L3,4.27L7.73,9H3V15H7L12,20V13.27L16.25,17.53C15.58,18.04 14.83,18.46 14,18.7V20.77C15.38,20.45 16.63,19.82 17.68,18.96L19.73,21L21,19.73L12,10.73M19,12C19,12.94 18.8,13.82 18.46,14.64L19.97,16.15C20.62,14.91 21,13.5 21,12C21,7.72 18,4.14 14,3.23V5.29C16.89,6.15 19,8.83 19,12M16.5,12C16.5,10.23 15.5,8.71 14,7.97V10.18L16.45,12.63C16.5,12.43 16.5,12.21 16.5,12Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n volumemuted: typeof volumemuted;\r\n }\r\n}\r\n","export const brightnesshigh = `<svg class=\"tmg-media-brightness-high-icon\" viewBox=\"0 0 25 25\">\r\n <path transform=\"translate(1.5, 1.5)\" style=\"scale: 1.05;\" d=\"M10 14.858a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6-5h3a1 1 0 0 1 0 2h-3a1 1 0 0 1 0-2zm-6 6a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm0-15a1 1 0 0 1 1 1v3a1 1 0 0 1-2 0v-3a1 1 0 0 1 1-1zm-9 9h3a1 1 0 1 1 0 2H1a1 1 0 0 1 0-2zm13.95 4.535l2.121 2.122a1 1 0 0 1-1.414 1.414l-2.121-2.121a1 1 0 0 1 1.414-1.415zm-8.486 0a1 1 0 0 1 0 1.415l-2.12 2.12a1 1 0 1 1-1.415-1.413l2.121-2.122a1 1 0 0 1 1.414 0zM17.071 3.787a1 1 0 0 1 0 1.414L14.95 7.322a1 1 0 0 1-1.414-1.414l2.12-2.121a1 1 0 0 1 1.415 0zm-12.728 0l2.121 2.121A1 1 0 1 1 5.05 7.322L2.93 5.201a1 1 0 0 1 1.414-1.414z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n brightnesshigh: typeof brightnesshigh;\r\n }\r\n}\r\n","export const brightnesslow = `<svg class=\"tmg-media-brightness-low-icon\" viewBox=\"0 0 25 25\">\r\n <path transform=\"translate(3.25, 3.25)\" style=\"scale: 1.05;\" d=\"M8 12.858a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6-5h1a1 1 0 0 1 0 2h-1a1 1 0 0 1 0-2zm-6 6a1 1 0 0 1 1 1v1a1 1 0 0 1-2 0v-1a1 1 0 0 1 1-1zm0-13a1 1 0 0 1 1 1v1a1 1 0 1 1-2 0v-1a1 1 0 0 1 1-1zm-7 7h1a1 1 0 1 1 0 2H1a1 1 0 1 1 0-2zm11.95 4.535l.707.708a1 1 0 1 1-1.414 1.414l-.707-.707a1 1 0 0 1 1.414-1.415zm-8.486 0a1 1 0 0 1 0 1.415l-.707.707A1 1 0 0 1 2.343 13.1l.707-.708a1 1 0 0 1 1.414 0zm9.193-9.192a1 1 0 0 1 0 1.414l-.707.707a1 1 0 0 1-1.414-1.414l.707-.707a1 1 0 0 1 1.414 0zm-9.9 0l.707.707A1 1 0 1 1 3.05 5.322l-.707-.707a1 1 0 0 1 1.414-1.414z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n brightnesslow: typeof brightnesslow;\r\n }\r\n}\r\n","export const brightnessdark = `<svg class=\"tmg-media-brightness-dark-icon\" viewBox=\"0 0 25 25\">\r\n <path transform=\"translate(2, 2.5)\" style=\"scale: 1.2;\" d=\"M12 8a4 4 0 1 1-8 0 4 4 0 0 1 8 0zM8.5 2.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm0 11a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0zm5-5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1zm-11 0a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1zm9.743-4.036a.5.5 0 1 1-.707-.707.5.5 0 0 1 .707.707zm-7.779 7.779a.5.5 0 1 1-.707-.707.5.5 0 0 1 .707.707zm7.072 0a.5.5 0 1 1 .707-.707.5.5 0 0 1-.707.707zM3.757 4.464a.5.5 0 1 1 .707-.707.5.5 0 0 1-.707.707z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n brightnessdark: typeof brightnessdark;\r\n }\r\n}\r\n","export const entertheater = `<svg class=\"tmg-media-enter-theater-icon\" viewBox=\"0 0 25 25\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M23 7C23 5.34315 21.6569 4 20 4H4C2.34315 4 1 5.34315 1 7V17C1 18.6569 2.34315 20 4 20H20C21.6569 20 23 18.6569 23 17V7ZM21 7C21 6.44772 20.5523 6 20 6H4C3.44772 6 3 6.44771 3 7V17C3 17.5523 3.44772 18 4 18H20C20.5523 18 21 17.5523 21 17V7Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n entertheater: typeof entertheater;\r\n }\r\n}\r\n","export const leavetheater = `<svg class=\"tmg-media-leave-theater-icon\" viewBox=\"0 0 25 25\">\r\n <path d=\"M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n leavetheater: typeof leavetheater;\r\n }\r\n}\r\n","export const fullscreenorientation = `<svg class=\"tmg-media-fullscreen-orientation-icon\" viewBox=\"0 0 512 512\" style=\"scale: 0.925;\">\r\n <path d=\"M446.81,275.82H236.18V65.19c0-20.78-16.91-37.69-37.69-37.69H65.19c-20.78,0-37.69,16.91-37.69,37.69v255.32c0,20.78,16.91,37.68,37.69,37.68h88.62v88.62c0,20.78,16.9,37.69,37.68,37.69h255.32c20.78,0,37.69-16.91,37.69-37.69v-133.3C484.5,292.73,467.59,275.82,446.81,275.82zM65.19,326.19c-3.14,0-5.69-2.55-5.69-5.68V65.19c0-3.14,2.55-5.69,5.69-5.69h133.3c3.14,0,5.69,2.55,5.69,5.69v210.63h-12.69c-20.78,0-37.68,16.91-37.68,37.69v12.68H65.19zM452.5,446.81c0,3.14-2.55,5.69-5.69,5.69H191.49c-3.13,0-5.68-2.55-5.68-5.69V342.19v-28.68c0-2.94,2.24-5.37,5.1-5.66c0.19-0.02,0.38-0.03,0.58-0.03h28.69h226.63c3.14,0,5.69,2.55,5.69,5.69V446.81z\" />\r\n <path d=\"M369.92,181.53c-6.25-6.25-16.38-6.25-22.63,0c-6.25,6.25-6.25,16.38,0,22.63l44.39,44.39c3.12,3.13,7.22,4.69,11.31,4.69c0.21,0,0.42-0.02,0.63-0.03c0.2,0.01,0.4,0.03,0.6,0.03c6.31,0,11.74-3.66,14.35-8.96l37.86-37.86c6.25-6.25,6.25-16.38,0-22.63c-6.25-6.25-16.38-6.25-22.63,0l-13.59,13.59v-86.58c0-8.84-7.16-16-16-16h-86.29l15.95-15.95c6.25-6.25,6.25-16.38,0-22.63c-6.25-6.25-16.38-6.25-22.63,0l-40.33,40.33c-5.19,2.65-8.75,8.03-8.75,14.25c0,0.19,0.02,0.37,0.03,0.56c-0.01,0.19-0.03,0.38-0.03,0.57c0,4.24,1.69,8.31,4.69,11.31l42.14,42.14c3.12,3.12,7.22,4.69,11.31,4.69s8.19-1.56,11.31-4.69c6.25-6.25,6.25-16.38,0-22.63l-15.95-15.95h72.54v73.05L369.92,181.53z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n fullscreenorientation: typeof fullscreenorientation;\r\n }\r\n}\r\n","export const returnback = `<svg class=\"tmg-media-return-back-icon\" viewBox=\"0 0 25 25\">\r\n <path transform=\"translate(5.5, 5.5)\" d=\"M1.307,5.988 L6.616,1.343 C7.027,0.933 7.507,0.864 7.918,1.275 L7.918,4.407 C8.014,4.406 8.098,4.406 8.147,4.406 C13.163,4.406 16.885,7.969 16.885,12.816 C16.885,14.504 16.111,13.889 15.788,13.3 C14.266,10.52 11.591,8.623 8.107,8.623 C8.066,8.623 7.996,8.624 7.917,8.624 L7.917,11.689 C7.506,12.099 6.976,12.05 6.615,11.757 L1.306,7.474 C0.897,7.064 0.897,6.399 1.307,5.988 L1.307,5.988 Z\" />\r\n</svg>\r\n`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n returnback: typeof returnback;\r\n }\r\n}\r\n","export const subtitles = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-subtitles-icon\">\r\n <path style=\"scale: 0.5;\" d=\"M44,6H4A2,2,0,0,0,2,8V40a2,2,0,0,0,2,2H44a2,2,0,0,0,2-2V8A2,2,0,0,0,44,6ZM12,26h4a2,2,0,0,1,0,4H12a2,2,0,0,1,0-4ZM26,36H12a2,2,0,0,1,0-4H26a2,2,0,0,1,0,4Zm10,0H32a2,2,0,0,1,0-4h4a2,2,0,0,1,0,4Zm0-6H22a2,2,0,0,1,0-4H36a2,2,0,0,1,0,4Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n subtitles: typeof subtitles;\r\n }\r\n}\r\n","export const captions = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-captions-icon\" style=\"scale: 1.15;\">\r\n <path d=\"M18,11H16.5V10.5H14.5V13.5H16.5V13H18V14A1,1 0 0,1 17,15H14A1,1 0 0,1 13,14V10A1,1 0 0,1 14,9H17A1,1 0 0,1 18,10M11,11H9.5V10.5H7.5V13.5H9.5V13H11V14A1,1 0 0,1 10,15H7A1,1 0 0,1 6,14V10A1,1 0 0,1 7,9H10A1,1 0 0,1 11,10M19,4H5C3.89,4 3,4.89 3,6V18A2,2 0 0,0 5,20H19A2,2 0 0,0 21,18V6C21,4.89 20.1,4 19,4Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n captions: typeof captions;\r\n }\r\n}\r\n","export const triangleleft = `<svg viewBox=\"0 0 25 25\" class=\"tmg-media-triangle-left-icon\">\r\n <path d=\"M17,5.14V19.14L6,12.14L17,5.14Z\" />\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n triangleleft: typeof triangleleft;\r\n }\r\n}\r\n","export const doubletriangleleft = `<svg viewBox=\"0 0 30 24\"><path d=\"M22,5.14V19.14L11,12.14L22,5.14Z\" /><path d=\"M11,5.14V19.14L0,12.14L11,5.14Z\" /></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n doubletriangleleft: typeof doubletriangleleft;\r\n }\r\n}\r\n","export const doubletriangleright = `<svg viewBox=\"0 0 30 24\"><path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\" /><path d=\"M19,5.14V19.14L30,12.14L19,5.14Z\" /></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n doubletriangleright: typeof doubletriangleright;\r\n }\r\n}\r\n","export const fwd = `\r\n<svg viewBox=\"0 0 25 25\" class=\"tmg-media-fwd-icon\"><path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\" /></svg>\r\n<svg viewBox=\"0 0 25 25\" class=\"tmg-media-fwd-icon\"><path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\" /></svg>\r\n<svg viewBox=\"0 0 25 25\" class=\"tmg-media-fwd-icon\"><path d=\"M8,5.14V19.14L19,12.14L8,5.14Z\" /></svg>\r\n`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n fwd: typeof fwd;\r\n }\r\n}\r\n","export const bwd = `\r\n<svg viewBox=\"0 0 25 25\" class=\"tmg-media-bwd-icon\"><path d=\"M17,5.14V19.14L6,12.14L17,5.14Z\" /></svg>\r\n<svg viewBox=\"0 0 25 25\" class=\"tmg-media-bwd-icon\"><path d=\"M17,5.14V19.14L6,12.14L17,5.14Z\" /></svg>\r\n<svg viewBox=\"0 0 25 25\" class=\"tmg-media-bwd-icon\"><path d=\"M17,5.14V19.14L6,12.14L17,5.14Z\" /></svg>\r\n`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n bwd: typeof bwd;\r\n }\r\n}\r\n","export const pipplaceholder = `<svg class=\"tmg-media-pip-placeholder-icon\" viewBox=\"0 0 73 73\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(2, 2)\" fill-rule=\"nonzero\" stroke-width=\"2\" class=\"tmg-media-pip-icon-background\">\r\n <rect x=\"-1\" y=\"-1\" width=\"71\" height=\"71\" rx=\"14\" />\r\n </g>\r\n <g transform=\"translate(15, 15)\" fill-rule=\"nonzero\">\r\n <g>\r\n <polygon class=\"tmg-media-pip-icon-content-background\" points=\"0 0 0 36 36 36 36 0\" />\r\n <rect class=\"tmg-media-pip-icon-content-backdrop\" x=\"4.2890625\" y=\"4.2890625\" width=\"27.421875\" height=\"13.2679687\" />\r\n <g transform=\"translate(4.289063, 27.492187)\">\r\n <rect x=\"0\" y=\"0\" width=\"3.1640625\" height=\"2.109375\" class=\"tmg-media-pip-icon-timeline-progress\" />\r\n <rect x=\"7.3828125\" y=\"0\" width=\"20.0390625\" height=\"2.109375\" class=\"tmg-media-pip-icon-timeline-base\" />\r\n </g>\r\n <circle class=\"tmg-media-pip-icon-timeline-thumb\" cx=\"9.5625\" cy=\"28.546875\" r=\"3.1640625\" />\r\n <polygon class=\"tmg-media-pip-icon-content\" points=\"31.7109375 17.5569609 31.7109375 23.2734375 4.2890625 23.2734375 4.2890625 17.5569609 13.78125 8.06477344 20.109375 14.3928984 24.328125 10.1741484\" />\r\n </g>\r\n <g transform=\"translate(21, 26)\">\r\n <polygon class=\"tmg-media-pip-icon-content-background\" points=\"0 0 0 17.7727273 23 17.7727273 23 0\" />\r\n <rect class=\"tmg-media-pip-icon-content-backdrop\" x=\"2.74023438\" y=\"2.74023438\" width=\"17.5195312\" height=\"8.47675781\" />\r\n <polygon class=\"tmg-media-pip-icon-content\" points=\"20.2597656 11.2169473 20.2597656 14.8691406 2.74023438 14.8691406 2.74023438 11.2169473 8.8046875 5.15249414 12.8476562 9.19546289 15.5429687 6.50015039\" />\r\n </g>\r\n </g>\r\n </g>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n pipplaceholder: typeof pipplaceholder;\r\n }\r\n}\r\n","export const castplaceholder = `<svg class=\"tmg-media-cast-placeholder-icon\" viewBox=\"0 0 73 73\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(2, 2)\" fill-rule=\"nonzero\" stroke-width=\"2\" class=\"tmg-media-cast-icon-background\">\r\n <rect x=\"-1\" y=\"-1\" width=\"71\" height=\"71\" rx=\"14\" />\r\n </g>\r\n <g transform=\"translate(11, 14)\">\r\n <rect class=\"tmg-media-cast-icon-content-background\" fill=\"currentColor\" x=\"0\" y=\"0\" width=\"51\" height=\"36\" rx=\"4\" />\r\n <rect class=\"tmg-media-cast-icon-content-backdrop\" fill=\"currentColor\" x=\"3\" y=\"3\" width=\"45\" height=\"30\" />\r\n <polygon class=\"tmg-media-cast-icon-content\" fill=\"currentColor\" points=\"48 22 48 33 22 33 28 20 34 26 42 16\" />\r\n <polygon class=\"tmg-media-cast-icon-tv-base\" fill=\"currentColor\" points=\"19 36 32 36 36 42 15 42\" />\r\n <circle class=\"tmg-media-cast-icon-waves-fill\" fill=\"currentColor\" cx=\"6\" cy=\"30\" r=\"2.5\" />\r\n <path class=\"tmg-media-cast-icon-waves-stroke\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" fill=\"none\" d=\"M 3,21 A 12,12 0 0,1 15,33\" />\r\n <path class=\"tmg-media-cast-icon-waves-stroke\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" fill=\"none\" d=\"M 3,12 A 21,21 0 0,1 24,33\" />\r\n </g>\r\n </g>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n castplaceholder: typeof castplaceholder;\r\n }\r\n}\r\n","export const airplayplaceholder = `<svg class=\"tmg-media-airplay-placeholder-icon\" viewBox=\"0 0 73 73\">\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <g transform=\"translate(2, 2)\" fill-rule=\"nonzero\" stroke-width=\"2\" class=\"tmg-media-airplay-icon-background\">\r\n <rect x=\"-1\" y=\"-1\" width=\"71\" height=\"71\" rx=\"14\" />\r\n </g>\r\n <g transform=\"translate(11, 14)\">\r\n <rect class=\"tmg-media-airplay-icon-content-background\" fill=\"currentColor\" x=\"0\" y=\"0\" width=\"51\" height=\"36\" rx=\"4\" />\r\n <rect class=\"tmg-media-airplay-icon-content-backdrop\" fill=\"currentColor\" x=\"3\" y=\"3\" width=\"45\" height=\"30\" />\r\n <polygon class=\"tmg-media-airplay-icon-content\" fill=\"currentColor\" points=\"48 22 48 33 22 33 28 20 34 26 42 16\" />\r\n </g>\r\n <polygon class=\"tmg-media-airplay-icon-arrow\" fill=\"currentColor\" points=\"36.5 40 48 56 25 56\" />\r\n </g>\r\n</svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n airplayplaceholder: typeof airplayplaceholder;\r\n }\r\n}\r\n","export const dragindicator = `<svg fill=\"currentColor\" height=\"20px\" width=\"20px\" viewBox=\"0 0 24 24\" style=\"scale: 0.6\"><path d=\"M10,6H6V2h4V6z M18,2h-4v4h4V2z M10,10H6v4h4V10z M18,10h-4v4h4V10z M10,18H6v4h4V18z M18,18h-4v4h4V18z\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n dragindicator: typeof dragindicator;\r\n }\r\n}\r\n","export const deleteicon = `<svg viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M7 4a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2h4a1 1 0 1 1 0 2h-1.069l-.867 12.142A2 2 0 0 1 17.069 22H6.93a2 2 0 0 1-1.995-1.858L4.07 8H3a1 1 0 0 1 0-2h4V4zm2 2h6V4H9v2zM6.074 8l.857 12H17.07l.857-12H6.074zM10 10a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0v-6a1 1 0 0 1 1-1zm4 0a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0v-6a1 1 0 0 1 1-1z\" fill=\"currentColor\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n delete: typeof deleteicon;\r\n }\r\n}\r\n","export const playlist = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M3 10h11v2H3v-2zm0-4h11v2H3V6zm0 8h7v2H3v-2zm13-1v8h2v-6h4v-2h-6z\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n playlist: typeof playlist;\r\n }\r\n}\r\n","export const autoplay = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M8 6.82v10.36c0 .79.87 1.27 1.54.84l8.14-5.18c.62-.39.62-1.29 0-1.69L9.54 5.98C8.87 5.55 8 6.03 8 6.82z\"/><path d=\"M12 22C6.48 22 2 17.52 2 12S6.48 2 12 2s10 4.48 10 10-4.48 10-10 10zm0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8z\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n autoplay: typeof autoplay;\r\n }\r\n}\r\n","export const loop = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n loop: typeof loop;\r\n }\r\n}\r\n","export const quality = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-quality-icon\" stroke-width=\"1\" stroke=\"currentColor\"><path d=\"M15 17h6v1h-6v-1zm-2 0H3v1h10v-1zm1-2h1v3h-1v-3zm3-4h4v1h-4v-1zm-5 0H3v1h9v-1zm1-2h1v3h-1V9zm-5-4h11v1H8V5zM3 5h3v1H3V5zm2-2h1v3H5V3z\"/></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n quality: typeof quality;\n }\n}\n","export const audiotrack = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-audiotrack-icon\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path fill=\"none\" d=\"M9 18V5l12-2v13\"></path><circle fill=\"none\" cx=\"6\" cy=\"18\" r=\"3\"></circle><circle fill=\"none\" cx=\"18\" cy=\"16\" r=\"3\"></circle></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n audiotrack: typeof audiotrack;\n }\n}\n","export const videotrack = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n videotrack: typeof videotrack;\r\n }\r\n}\r\n","export const chapters = `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"/></svg>`;\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface IconRegistryMap {\r\n chapters: typeof chapters;\r\n }\r\n}\r\n","export const ambience = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-ambience-icon\" stroke-width=\"1\" stroke=\"currentColor\"><path d=\"M19 9l1.25-2.75L23 5l-2.75-1.25L19 1l-1.25 2.75L15 5l2.75 1.25L19 9zm-7.5.5L9 4 6.5 9.5 1 12l5.5 2.5L9 20l2.5-5.5L17 12l-5.5-2.5zM9 14.47L8.03 12.3l-2.17-.97 2.17-.97L9 8.2l.97 2.17 2.17.97-2.17.97L9 14.47zM19 15l-1.25 2.75L15 19l2.75 1.25L19 23l1.25-2.75L23 19l-2.75-1.25L19 15z\"/></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n ambience: typeof ambience;\n }\n}\n","export const playbackrate = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-playback-rate-icon\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path fill=\"none\" d=\"m12 14 4-4\"></path><path fill=\"none\" d=\"M3.34 16A10 10 0 1 1 20.66 16\"></path></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n playbackrate: typeof playbackrate;\n }\n}\n","export const timer = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-timer-icon\" stroke-width=\"0.2\" stroke=\"currentColor\"><path d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\"/></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n timer: typeof timer;\n }\n}\n","export const add = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-add-icon\" stroke-width=\"1\" stroke=\"currentColor\"><path d=\"M20 12h-8v8h-1v-8H3v-1h8V3h1v8h8v1z\"/></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n add: typeof add;\n }\n}\n","export const shuffle = `<svg viewBox=\"0 0 24 24\" class=\"tmg-media-shuffle-icon\"><path d=\"M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z\"/></svg>`;\n\ndeclare module \"@defs/registries\" {\n interface IconRegistryMap {\n shuffle: typeof shuffle;\n }\n}\n"],"mappings":"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","names":["Buffer","import_sia_reactor","import_utils","import_utils","import_sia_reactor","import_utils","formatKeyForDisplay","import_sia_reactor","import_utils","import_sia_reactor","import_sia_reactor","setTimeout2","Buffer","m","base","import_utils","setTimeout2","flush","import_sia_reactor","import_utils","setTimeout2","formatKeyForDisplay","win","import_modules","setTimeout2","setTimeout2","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","chapters","import_modules","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","import_modules","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay","formatKeyForDisplay"]}
|