@videojs/html 10.0.0-beta.28 → 10.0.0-beta.29
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/cdn/{adapter-XTen-YVQ.js → adapter-CEnNWvii.js} +17 -4
- package/cdn/adapter-CEnNWvii.js.map +1 -0
- package/cdn/adapter-DaKW8NzI.js +2 -0
- package/cdn/adapter-DaKW8NzI.js.map +1 -0
- package/cdn/audio-headless.dev.js +1 -1
- package/cdn/audio-headless.js +1 -1
- package/cdn/audio-minimal-ui.dev.js +2 -2
- package/cdn/audio-minimal-ui.js +1 -1
- package/cdn/audio-minimal.dev.js +5 -5
- package/cdn/audio-minimal.dev.js.map +1 -1
- package/cdn/audio-minimal.js +1 -1
- package/cdn/audio-minimal.js.map +1 -1
- package/cdn/audio-ui.dev.js +2 -2
- package/cdn/audio-ui.js +1 -1
- package/cdn/audio.dev.js +5 -5
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background.dev.js +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/compounds-C4YYLyL2.js +8 -0
- package/cdn/compounds-C4YYLyL2.js.map +1 -0
- package/cdn/{compounds-nk9RJtBK.js → compounds-C73u1MeO.js} +63 -59
- package/cdn/compounds-C73u1MeO.js.map +1 -0
- package/cdn/create-player-BU8LDJDL.js +2 -0
- package/cdn/create-player-BU8LDJDL.js.map +1 -0
- package/cdn/{create-player-DK9WOywd.js → create-player-Db1CIvlK.js} +58 -46
- package/cdn/create-player-Db1CIvlK.js.map +1 -0
- package/cdn/{default-BqQDVloS.js → default-A3aM0skz.js} +2 -2
- package/cdn/default-A3aM0skz.js.map +1 -0
- package/cdn/default-BDyhiTCm.js +2 -0
- package/cdn/default-BDyhiTCm.js.map +1 -0
- package/cdn/{default-I2LasfxC.js → default-C1_k1NeB.js} +2 -2
- package/cdn/default-C1_k1NeB.js.map +1 -0
- package/cdn/default-DHrMd4ie.js +2 -0
- package/cdn/default-DHrMd4ie.js.map +1 -0
- package/cdn/error-surface-BID4D3DW.js +59 -0
- package/cdn/error-surface-BID4D3DW.js.map +1 -0
- package/cdn/{select-tracks-nRPBa1NC.js → error-surface-D0bo71gD.js} +442 -48
- package/cdn/error-surface-D0bo71gD.js.map +1 -0
- package/cdn/gesture-element-CeRy1IVs.js +2 -0
- package/cdn/gesture-element-CeRy1IVs.js.map +1 -0
- package/cdn/{gesture-element-6Ld1YwIL.js → gesture-element-DB67OYCE.js} +3 -3
- package/cdn/gesture-element-DB67OYCE.js.map +1 -0
- package/cdn/{hls-js-C4P_b2tT.js → hls-js-CiE4wOrG.js} +2 -2
- package/cdn/{hls-js-C4P_b2tT.js.map → hls-js-CiE4wOrG.js.map} +1 -1
- package/cdn/{hls-js-CATW7NBm.js → hls-js-DBKRCbQm.js} +2 -2
- package/cdn/{hls-js-CATW7NBm.js.map → hls-js-DBKRCbQm.js.map} +1 -1
- package/cdn/{hls-js-BEuVm0u9.js → hls-js-DX2NGCAr.js} +2 -2
- package/cdn/{hls-js-BEuVm0u9.js.map → hls-js-DX2NGCAr.js.map} +1 -1
- package/cdn/{hls-js-WCNy9MVh.js → hls-js-JeH8yvsP.js} +2 -2
- package/cdn/{hls-js-WCNy9MVh.js.map → hls-js-JeH8yvsP.js.map} +1 -1
- package/cdn/i18n-CpBDXf6M.js +2 -0
- package/cdn/{i18n-Dc7WM2xd.js.map → i18n-CpBDXf6M.js.map} +1 -1
- package/cdn/{i18n-Ch4t6EjV.js → i18n-D0nhPa0m.js} +2 -2
- package/cdn/{i18n-Ch4t6EjV.js.map → i18n-D0nhPa0m.js.map} +1 -1
- package/cdn/{live-button-element-DaHgnYdw.js → live-button-element-Co8z2LkI.js} +2 -2
- package/cdn/{live-button-element-DaHgnYdw.js.map → live-button-element-Co8z2LkI.js.map} +1 -1
- package/cdn/{live-button-element-Bae44kBN.js → live-button-element-zE-8uoR2.js} +3 -3
- package/cdn/{live-button-element-Bae44kBN.js.map → live-button-element-zE-8uoR2.js.map} +1 -1
- package/cdn/live-video-minimal.dev.js +11 -9
- package/cdn/live-video-minimal.dev.js.map +1 -1
- package/cdn/live-video-minimal.js +1 -1
- package/cdn/live-video-minimal.js.map +1 -1
- package/cdn/live-video.dev.js +12 -10
- package/cdn/live-video.dev.js.map +1 -1
- package/cdn/live-video.js +1 -1
- package/cdn/live-video.js.map +1 -1
- package/cdn/media/hls-audio.dev.js +1 -1
- package/cdn/media/hls-audio.js +1 -1
- package/cdn/media/hls-background-video.dev.js +1 -1
- package/cdn/media/hls-background-video.js +1 -1
- package/cdn/media/hls-video.dev.js +1 -1
- package/cdn/media/hls-video.js +1 -1
- package/cdn/media/mux-audio/hls-js.dev.js +1 -1
- package/cdn/media/mux-audio/hls-js.js +1 -1
- package/cdn/media/mux-audio/spf.dev.js +2 -2
- package/cdn/media/mux-audio/spf.js +1 -1
- package/cdn/media/mux-audio.dev.js +1 -1
- package/cdn/media/mux-audio.js +1 -1
- package/cdn/media/mux-background-video.dev.js +1 -1
- package/cdn/media/mux-background-video.js +1 -1
- package/cdn/media/mux-data.dev.js +1 -1
- package/cdn/media/mux-data.dev.js.map +1 -1
- package/cdn/media/mux-data.js +1 -1
- package/cdn/media/mux-data.js.map +1 -1
- package/cdn/media/mux-video/hls-js.dev.js +1 -1
- package/cdn/media/mux-video/hls-js.js +1 -1
- package/cdn/media/mux-video/spf.dev.js +2 -2
- package/cdn/media/mux-video/spf.js +1 -1
- package/cdn/media/mux-video.dev.js +1 -1
- package/cdn/media/mux-video.js +1 -1
- package/cdn/media/vimeo-video.dev.js +27 -5
- package/cdn/media/vimeo-video.dev.js.map +1 -1
- package/cdn/media/vimeo-video.js +1 -1
- package/cdn/media/vimeo-video.js.map +1 -1
- package/cdn/{media-Uxm0d3Vx.js → media-BI8caj07.js} +3 -3
- package/cdn/{media-Uxm0d3Vx.js.map → media-BI8caj07.js.map} +1 -1
- package/cdn/{media-COIe3uI5.js → media-BNuI0Im7.js} +19 -6
- package/cdn/media-BNuI0Im7.js.map +1 -0
- package/cdn/media-CQxFuDcv.js +2 -0
- package/cdn/{media-CPVSKLdk.js.map → media-CQxFuDcv.js.map} +1 -1
- package/cdn/media-D4tG62L5.js +2 -0
- package/cdn/{media-BTipOcKo.js.map → media-D4tG62L5.js.map} +1 -1
- package/cdn/{media-oa3nyL2o.js → media-DI6DvYm3.js} +3 -3
- package/cdn/{media-oa3nyL2o.js.map → media-DI6DvYm3.js.map} +1 -1
- package/cdn/media-DU3Xf5XR.js +2 -0
- package/cdn/media-DU3Xf5XR.js.map +1 -0
- package/cdn/media-mYKOAsk3.js +825 -0
- package/cdn/media-mYKOAsk3.js.map +1 -0
- package/cdn/media-zReLnePj.js +2 -0
- package/cdn/media-zReLnePj.js.map +1 -0
- package/cdn/{minimal-DQCLKRyR.js → minimal-3OmH0xQS.js} +2 -2
- package/cdn/minimal-3OmH0xQS.js.map +1 -0
- package/cdn/{minimal-DLosvq31.js → minimal-6w_Vyyl9.js} +2 -2
- package/cdn/minimal-6w_Vyyl9.js.map +1 -0
- package/cdn/minimal-BWLTn7oQ.js +2 -0
- package/cdn/minimal-BWLTn7oQ.js.map +1 -0
- package/cdn/minimal-DIGrklyh.js +2 -0
- package/cdn/minimal-DIGrklyh.js.map +1 -0
- package/cdn/{minimal-ui-CRKvUmB8.js → minimal-ui-BCIESK8f.js} +8 -8
- package/cdn/{minimal-ui-CRKvUmB8.js.map → minimal-ui-BCIESK8f.js.map} +1 -1
- package/cdn/minimal-ui-BXrq3z4U.js +2 -0
- package/cdn/{minimal-ui-Et2Wcn7r.js.map → minimal-ui-BXrq3z4U.js.map} +1 -1
- package/cdn/{minimal-ui-BpHxIo4z.js → minimal-ui-DEalpMk6.js} +4 -4
- package/cdn/{minimal-ui-BpHxIo4z.js.map → minimal-ui-DEalpMk6.js.map} +1 -1
- package/cdn/{minimal-ui-8iRZf_72.js → minimal-ui-vY3QgohH.js} +2 -2
- package/cdn/{minimal-ui-8iRZf_72.js.map → minimal-ui-vY3QgohH.js.map} +1 -1
- package/cdn/{player-DM9rUXg-.js → player-B3GlPF90.js} +2 -2
- package/cdn/{player-DM9rUXg-.js.map → player-B3GlPF90.js.map} +1 -1
- package/cdn/player-CtTC7qa5.js +2 -0
- package/cdn/{player-rCFqzWrA.js.map → player-CtTC7qa5.js.map} +1 -1
- package/cdn/player-DKkph8UM.js +2 -0
- package/cdn/{player-BRQLp5bX.js.map → player-DKkph8UM.js.map} +1 -1
- package/cdn/{player-CKTAtwit.js → player-DPDmTRvg.js} +2 -2
- package/cdn/{player-CKTAtwit.js.map → player-DPDmTRvg.js.map} +1 -1
- package/cdn/player-DrDd7LJi.js +2 -0
- package/cdn/{player-BloX4l6F.js.map → player-DrDd7LJi.js.map} +1 -1
- package/cdn/{player-B2oraRyD.js → player-L5UpZmT4.js} +2 -2
- package/cdn/{player-B2oraRyD.js.map → player-L5UpZmT4.js.map} +1 -1
- package/cdn/{poster-element-BGr1VQJB.js → poster-element-B5tdJ2ub.js} +179 -38
- package/cdn/poster-element-B5tdJ2ub.js.map +1 -0
- package/cdn/poster-element-B8QwXSU_.js +2 -0
- package/cdn/poster-element-B8QwXSU_.js.map +1 -0
- package/cdn/{error-surface-drmCvBVW.js → relocation-pipelines-Dh8CcgHw.js} +5 -343
- package/cdn/relocation-pipelines-Dh8CcgHw.js.map +1 -0
- package/cdn/relocation-pipelines-DunE4gcV.js +2 -0
- package/cdn/relocation-pipelines-DunE4gcV.js.map +1 -0
- package/cdn/{seek-button-element-XMTLIxZj.js → seek-button-element-5co-k0Dx.js} +4 -4
- package/cdn/seek-button-element-5co-k0Dx.js.map +1 -0
- package/cdn/{seek-button-element-FlgBVoGM.js → seek-button-element-B8TkILg-.js} +2 -2
- package/cdn/{seek-button-element-FlgBVoGM.js.map → seek-button-element-B8TkILg-.js.map} +1 -1
- package/cdn/shallow-equal-C7S8rj2f.js +16 -0
- package/cdn/shallow-equal-C7S8rj2f.js.map +1 -0
- package/cdn/shallow-equal-KV1zFqZi.js +2 -0
- package/cdn/shallow-equal-KV1zFqZi.js.map +1 -0
- package/cdn/{skin-element-DL-Kqa5f.js → skin-element-DrkI8xuM.js} +2 -2
- package/cdn/{skin-element-DL-Kqa5f.js.map → skin-element-DrkI8xuM.js.map} +1 -1
- package/cdn/{skin-element-DNytI-uu.js → skin-element-DvX6Bxsv.js} +2 -2
- package/cdn/{skin-element-DNytI-uu.js.map → skin-element-DvX6Bxsv.js.map} +1 -1
- package/cdn/{text-element-DeWBNKXb.js → text-element-BoY6AhMn.js} +2 -2
- package/cdn/{text-element-DeWBNKXb.js.map → text-element-BoY6AhMn.js.map} +1 -1
- package/cdn/{text-element-D88ArbZz.js → text-element-cg6l21cd.js} +2 -2
- package/cdn/{text-element-D88ArbZz.js.map → text-element-cg6l21cd.js.map} +1 -1
- package/cdn/time-slider-chapters-element-BfLjdnU4.js +2 -0
- package/cdn/time-slider-chapters-element-BfLjdnU4.js.map +1 -0
- package/cdn/{time-slider-chapters-element-DJ0abZXI.js → time-slider-chapters-element-CznFQWFm.js} +5 -5
- package/cdn/time-slider-chapters-element-CznFQWFm.js.map +1 -0
- package/cdn/{ui-BU3_2gDQ.js → ui-BwzqkJNK.js} +7 -7
- package/cdn/{ui-BU3_2gDQ.js.map → ui-BwzqkJNK.js.map} +1 -1
- package/cdn/ui-DayfItun.js +2 -0
- package/cdn/{ui-C0isALTQ.js.map → ui-DayfItun.js.map} +1 -1
- package/cdn/ui-PSnD-pv8.js +2 -0
- package/cdn/{ui-DVpkE1MN.js.map → ui-PSnD-pv8.js.map} +1 -1
- package/cdn/{ui-BsaWWE4y.js → ui-fnKp94a7.js} +9 -9
- package/cdn/{ui-BsaWWE4y.js.map → ui-fnKp94a7.js.map} +1 -1
- package/cdn/video-headless.dev.js +1 -1
- package/cdn/video-headless.js +1 -1
- package/cdn/video-minimal-ui.dev.js +2 -2
- package/cdn/video-minimal-ui.js +1 -1
- package/cdn/video-minimal.dev.js +8 -6
- package/cdn/video-minimal.dev.js.map +1 -1
- package/cdn/video-minimal.js +1 -1
- package/cdn/video-minimal.js.map +1 -1
- package/cdn/video-ui.dev.js +2 -2
- package/cdn/video-ui.js +1 -1
- package/cdn/video.dev.js +9 -7
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +103 -101
- package/dist/default/define/audio/skin.css +68 -69
- package/dist/default/define/live-audio/minimal-skin.css +103 -101
- package/dist/default/define/live-audio/skin.css +68 -69
- package/dist/default/define/live-video/minimal-skin.css +140 -120
- package/dist/default/define/live-video/minimal-skin.js +1 -1
- package/dist/default/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/live-video/skin.css +89 -76
- package/dist/default/define/live-video/skin.js +1 -1
- package/dist/default/define/live-video/skin.js.map +1 -1
- package/dist/default/define/live-video/skin.tailwind.js +1 -1
- package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/define/ui/gesture.js +7 -0
- package/dist/default/define/ui/gesture.js.map +1 -0
- package/dist/default/define/video/minimal-skin.css +140 -120
- package/dist/default/define/video/minimal-skin.js +1 -1
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.css +89 -76
- package/dist/default/define/video/skin.js +1 -1
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -1
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/icons/dist/element/default/icons.js +1 -1
- package/dist/default/icons/dist/element/default/icons.js.map +1 -1
- package/dist/default/icons/dist/element/minimal/icons.js +1 -1
- package/dist/default/icons/dist/element/minimal/icons.js.map +1 -1
- package/dist/default/icons/dist/html/default/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/default/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/html/minimal/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/render/default/index.js +1 -1
- package/dist/default/icons/dist/render/default/index.js.map +1 -1
- package/dist/default/icons/dist/render/minimal/index.js +1 -1
- package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
- package/dist/default/media/hls-background-video/media.js +18 -0
- package/dist/default/media/hls-background-video/media.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/store/provider-mixin.js +22 -8
- package/dist/default/store/provider-mixin.js.map +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group-element.js +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
- package/dist/default/ui/gesture/gesture-element.js.map +1 -1
- package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/menu-element.js +28 -27
- package/dist/default/ui/menu/menu-element.js.map +1 -1
- package/dist/default/ui/menu/menu-radio-group-element.js +14 -14
- package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
- package/dist/default/ui/poster/poster-element.js +138 -8
- package/dist/default/ui/poster/poster-element.js.map +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group-element.js +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
- package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
- package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +103 -101
- package/dist/dev/define/audio/skin.css +68 -69
- package/dist/dev/define/live-audio/minimal-skin.css +103 -101
- package/dist/dev/define/live-audio/skin.css +68 -69
- package/dist/dev/define/live-video/minimal-skin.css +140 -120
- package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.js +3 -1
- package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js +3 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/live-video/skin.css +89 -76
- package/dist/dev/define/live-video/skin.d.ts.map +1 -1
- package/dist/dev/define/live-video/skin.js +3 -1
- package/dist/dev/define/live-video/skin.js.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.js +4 -2
- package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/define/ui/gesture.d.ts +8 -0
- package/dist/dev/define/ui/gesture.d.ts.map +1 -0
- package/dist/dev/define/ui/gesture.js +7 -0
- package/dist/dev/define/ui/gesture.js.map +1 -0
- package/dist/dev/define/video/minimal-skin.css +140 -120
- package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.js +3 -1
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +3 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/skin.css +89 -76
- package/dist/dev/define/video/skin.d.ts.map +1 -1
- package/dist/dev/define/video/skin.js +3 -1
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +4 -2
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/media/hls-background-video/media.d.ts +16 -0
- package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-background-video/media.js +18 -0
- package/dist/dev/media/hls-background-video/media.js.map +1 -1
- package/dist/dev/packages/icons/dist/element/default/icons.js +1 -1
- package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -1
- package/dist/dev/packages/icons/dist/element/minimal/icons.js +1 -1
- package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -1
- package/dist/dev/packages/icons/dist/html/default/airplay-exit.js +1 -1
- package/dist/dev/packages/icons/dist/html/default/airplay-exit.js.map +1 -1
- package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js +1 -1
- package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js.map +1 -1
- package/dist/dev/packages/icons/dist/render/default/index.js +1 -1
- package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -1
- package/dist/dev/packages/icons/dist/render/minimal/index.js +1 -1
- package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +10 -10
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
- package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/store/provider-mixin.d.ts.map +1 -1
- package/dist/dev/store/provider-mixin.js +24 -8
- package/dist/dev/store/provider-mixin.js.map +1 -1
- package/dist/dev/store/types.d.ts +2 -2
- package/dist/dev/store/types.d.ts.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
- package/dist/dev/ui/gesture/gesture-element.d.ts +7 -7
- package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -1
- package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
- package/dist/dev/ui/hotkey/hotkey-element.d.ts +6 -6
- package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts +8 -8
- package/dist/dev/ui/menu/context.d.ts.map +1 -1
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/menu-element.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-element.js +28 -27
- package/dist/dev/ui/menu/menu-element.js.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.d.ts +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.js +14 -14
- package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
- package/dist/dev/ui/poster/poster-element.d.ts +20 -18
- package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster-element.js +145 -8
- package/dist/dev/ui/poster/poster-element.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.d.ts +2 -2
- package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/skins.md +91 -78
- package/docs/how-to/customize-skins.md +411 -377
- package/docs/reference/menu.md +3 -19
- package/docs/reference/popover.md +2 -2
- package/docs/reference/poster.md +211 -21
- package/docs/reference/slider.md +1 -1
- package/docs/reference/time-slider.md +1 -1
- package/docs/reference/tooltip.md +6 -6
- package/docs/reference/volume-slider.md +1 -1
- package/package.json +14 -9
- package/cdn/adapter-Bk03SAxn.js +0 -2
- package/cdn/adapter-Bk03SAxn.js.map +0 -1
- package/cdn/adapter-XTen-YVQ.js.map +0 -1
- package/cdn/compounds-BEO1d3ZM.js +0 -8
- package/cdn/compounds-BEO1d3ZM.js.map +0 -1
- package/cdn/compounds-nk9RJtBK.js.map +0 -1
- package/cdn/create-player-DK9WOywd.js.map +0 -1
- package/cdn/create-player-hSdQMP5p.js +0 -2
- package/cdn/create-player-hSdQMP5p.js.map +0 -1
- package/cdn/default-BqQDVloS.js.map +0 -1
- package/cdn/default-CXWVp2oG.js +0 -2
- package/cdn/default-CXWVp2oG.js.map +0 -1
- package/cdn/default-Dw6cIEqT.js +0 -2
- package/cdn/default-Dw6cIEqT.js.map +0 -1
- package/cdn/default-I2LasfxC.js.map +0 -1
- package/cdn/error-surface-DCT1m2p1.js +0 -2
- package/cdn/error-surface-DCT1m2p1.js.map +0 -1
- package/cdn/error-surface-drmCvBVW.js.map +0 -1
- package/cdn/gesture-element-6Ld1YwIL.js.map +0 -1
- package/cdn/gesture-element-BC48ucj9.js +0 -2
- package/cdn/gesture-element-BC48ucj9.js.map +0 -1
- package/cdn/i18n-Dc7WM2xd.js +0 -2
- package/cdn/media-BTipOcKo.js +0 -2
- package/cdn/media-Bmablv4g.js +0 -2
- package/cdn/media-Bmablv4g.js.map +0 -1
- package/cdn/media-COIe3uI5.js.map +0 -1
- package/cdn/media-CPVSKLdk.js +0 -2
- package/cdn/media-Dq4zmIJa.js +0 -2
- package/cdn/media-Dq4zmIJa.js.map +0 -1
- package/cdn/media-suYcjCG2.js +0 -445
- package/cdn/media-suYcjCG2.js.map +0 -1
- package/cdn/minimal-BedCvMBG.js +0 -2
- package/cdn/minimal-BedCvMBG.js.map +0 -1
- package/cdn/minimal-BoP112ye.js +0 -2
- package/cdn/minimal-BoP112ye.js.map +0 -1
- package/cdn/minimal-DLosvq31.js.map +0 -1
- package/cdn/minimal-DQCLKRyR.js.map +0 -1
- package/cdn/minimal-ui-Et2Wcn7r.js +0 -2
- package/cdn/player-BRQLp5bX.js +0 -2
- package/cdn/player-BloX4l6F.js +0 -2
- package/cdn/player-rCFqzWrA.js +0 -2
- package/cdn/poster-element-BGr1VQJB.js.map +0 -1
- package/cdn/poster-element-DBmgOyep.js +0 -2
- package/cdn/poster-element-DBmgOyep.js.map +0 -1
- package/cdn/seek-button-element-XMTLIxZj.js.map +0 -1
- package/cdn/select-tracks-nRPBa1NC.js.map +0 -1
- package/cdn/select-tracks-xV1s28xD.js +0 -59
- package/cdn/select-tracks-xV1s28xD.js.map +0 -1
- package/cdn/time-slider-chapters-element-DJ0abZXI.js.map +0 -1
- package/cdn/time-slider-chapters-element-DW8YyJn8.js +0 -2
- package/cdn/time-slider-chapters-element-DW8YyJn8.js.map +0 -1
- package/cdn/ui-C0isALTQ.js +0 -2
- package/cdn/ui-DVpkE1MN.js +0 -2
package/cdn/video.dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.dev.js","names":["styles"],"sources":["../inline-css:src/define/video/skin.js","../src/define/video/skin.ts"],"sourcesContent":["export default \"/* -------------------------------------------------------------------------- */\\n/* Global styles for the host document, outside of the Shadow DOM */\\n/* -------------------------------------------------------------------------- */\\n\\nvideo-player,\\nlive-video-player,\\nmedia-i18n {\\n display: contents;\\n}\\n\\n/*\\nRequired to override any default video and image styles (such as\\nTailwind's CSS reset) and ensure they fill the container as expected.\\n*/\\nvideo-player video,\\nvideo-player [slot=\\\"poster\\\"],\\nlive-video-player video,\\nlive-video-player [slot=\\\"poster\\\"] {\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\nvideo-player video::-webkit-media-text-track-container,\\nlive-video-player video::-webkit-media-text-track-container {\\n z-index: 1;\\n font-family: inherit;\\n scale: 0.98;\\n translate: 0 var(--media-caption-track-y, 0);\\n transition: translate var(--media-caption-track-duration, 0) ease-out;\\n transition-delay: var(--media-caption-track-delay, 0);\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n/* Shared styles for all HTML skins */\\n/* -------------------------------------------------------------------------- */\\n\\nmedia-tooltip-group {\\n display: contents;\\n}\\n\\n:host {\\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\\n display: grid;\\n width: 100%;\\n}\\n\\nmedia-container {\\n min-width: 0;\\n min-height: 0;\\n}\\n\\n/* Hide the volume popover when its slider is unavailable. */\\n.media-popover--volume:has(media-volume-slider[data-hidden]) {\\n display: none;\\n}\\n\\n.media-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n white-space: nowrap;\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n}\\n\\n\\n.media-default-skin *,\\n.media-default-skin *::before,\\n.media-default-skin *::after {\\n box-sizing: border-box;\\n}\\n.media-default-skin img,\\n.media-default-skin video,\\n.media-default-skin svg {\\n display: block;\\n max-width: 100%;\\n}\\n.media-default-skin button {\\n font: inherit;\\n}\\n.media-default-skin [hidden][hidden] {\\n /* Keep authored templates hidden even when component classes set display. */\\n display: none;\\n}\\n@media (prefers-reduced-motion: no-preference) {\\n .media-default-skin {\\n interpolate-size: allow-keywords;\\n }\\n}\\n\\n.media-default-skin {\\n /* Colors */\\n --accent-color: var(--media-accent-color, var(--default-accent-color));\\n --accent-contrast-color: contrast-color(var(--accent-color));\\n --accent-background-color: var(\\n --media-accent-color,\\n oklch(from var(--default-accent-color) l c h / calc(alpha * 0.1))\\n );\\n --accent-text-color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0 0 0))));\\n --shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));\\n --shadow-subtle-current-color: oklch(from var(--shadow-current-color) l c h / calc(alpha * 0.4));\\n --scrollbar-thumb-color: oklch(from currentColor l c h / 0.3);\\n\\n /* Scaling - used in video fullscreen to scale the UI. */\\n --scale: 1;\\n /* Fixed scaling unit to avoid inheriting the document's root font size. This must be a CSS <length>. */\\n --scale-unit: var(--media-scale-unit, 16px);\\n --size: calc(var(--scale-unit) * var(--scale));\\n /* Create a Tailwind-like spacing unit where 1 equals 4px with default scaling. */\\n --spacing: calc(var(--size) / 4);\\n\\n /* Font sizes */\\n --font-size-medium: calc(0.9375 * var(--size)); /* 15px */\\n --font-size-base: calc(0.8125 * var(--size)); /* 13px */\\n --font-size-small: calc(0.6875 * var(--size)); /* 11px */\\n --font-size-tiny: calc(0.5625 * var(--size)); /* 9px */\\n --media-icon-size: calc(1.125 * var(--size)); /* 18px */\\n\\n /* Radii */\\n --container-border-radius: var(--media-border-radius, 1.75rem);\\n\\n position: relative;\\n display: block;\\n width: 100%;\\n height: 100%;\\n container: media-root / inline-size;\\n font-family:\\n Inter Variable,\\n Inter,\\n ui-sans-serif,\\n system-ui,\\n sans-serif;\\n font-size: var(--font-size-base);\\n -webkit-font-smoothing: auto;\\n -moz-osx-font-smoothing: auto;\\n line-height: 1.5;\\n letter-spacing: normal;\\n outline: 2px solid transparent;\\n outline-offset: -4px;\\n scrollbar-color: var(--scrollbar-thumb-color) transparent;\\n scrollbar-width: thin;\\n border-radius: var(--container-border-radius, 1.75rem);\\n isolation: isolate;\\n transition-timing-function: ease-out;\\n transition-duration: 100ms;\\n transition-property: outline-offset, outline-color;\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n background: var(--scrollbar-thumb-color);\\n border-radius: 9999px;\\n }\\n\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --scrollbar-thumb-color: oklch(from currentColor l c h / 0.8);\\n scrollbar-width: auto;\\n }\\n}\\n\\n.media-default-skin .media-surface {\\n background-color: var(--surface-background-color);\\n box-shadow:\\n 0 0 0 1px var(--surface-outer-border-color),\\n 0 1px 3px 0 var(--surface-shadow-color),\\n 0 1px 2px -1px var(--surface-shadow-color);\\n backdrop-filter: var(--surface-backdrop-filter);\\n\\n /* Inner border ring */\\n &::after {\\n position: absolute;\\n inset: 0;\\n z-index: 10;\\n pointer-events: none;\\n content: \\\"\\\";\\n border-radius: inherit;\\n box-shadow:\\n inset 0 1px 0 0 var(--surface-inner-border-color),\\n inset 0 0 0 1px oklch(from var(--surface-inner-border-color) l c h / calc(alpha * 0.5));\\n }\\n}\\n\\n.media-default-skin ::slotted(video),\\n.media-default-skin video {\\n display: block;\\n width: 100%;\\n height: 100%;\\n object-fit: var(--media-object-fit, contain);\\n object-position: var(--media-object-position, center);\\n}\\n.media-default-skin ::slotted(video) {\\n border-radius: var(--container-border-radius);\\n}\\n.media-default-skin video {\\n border-radius: inherit;\\n}\\n\\n.media-default-skin:fullscreen ::slotted(video),\\n.media-default-skin:fullscreen video {\\n object-fit: contain;\\n}\\n\\n.media-default-skin .media-overlay {\\n position: absolute;\\n inset: 0;\\n pointer-events: none;\\n background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3) 25%, oklch(0 0 0 / 0));\\n border-radius: inherit;\\n opacity: 0;\\n backdrop-filter: blur(0) saturate(1);\\n transition-timing-function: ease-out;\\n transition-duration: var(--controls-transition-duration);\\n transition-property: opacity, backdrop-filter;\\n}\\n\\n.media-default-skin .media-error ~ .media-overlay {\\n transition-delay: var(--error-dialog-transition-delay);\\n transition-duration: var(--error-dialog-transition-duration);\\n}\\n\\n.media-default-skin .media-controls[data-visible] ~ .media-overlay,\\n.media-default-skin .media-error[data-open] ~ .media-overlay {\\n opacity: 1;\\n}\\n\\n.media-default-skin .media-buffering-indicator[data-visible] ~ .media-overlay {\\n background: oklch(0 0 0 / 0.35);\\n opacity: 1;\\n backdrop-filter: blur(8px);\\n}\\n\\n.media-default-skin .media-error[data-open] ~ .media-overlay {\\n backdrop-filter: blur(16px) saturate(1.5);\\n}\\n\\n.media-default-skin .media-buffering-indicator {\\n position: absolute;\\n inset: 0;\\n z-index: 10;\\n display: none;\\n place-content: center;\\n color: oklch(1 0 0);\\n pointer-events: none;\\n\\n &:not([data-visible]) {\\n --media-spinner-animation: none;\\n }\\n\\n &[data-visible] {\\n display: grid;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n --media-spinner-animation: none;\\n }\\n}\\n\\n.media-default-skin .media-error {\\n outline: none;\\n}\\n\\n.media-default-skin .media-error:not([data-open]) {\\n display: none;\\n}\\n\\n.media-default-skin .media-error__title {\\n font-weight: 600;\\n line-height: 1.25;\\n}\\n\\n.media-default-skin .media-error__description {\\n overflow-wrap: anywhere;\\n opacity: 0.7;\\n}\\n\\n.media-default-skin .media-error__actions {\\n display: flex;\\n gap: calc(var(--spacing) * 2);\\n\\n > * {\\n flex: 1;\\n }\\n}\\n\\n.media-default-skin .media-error[data-open] ~ .media-controls * {\\n visibility: hidden;\\n}\\n\\n.media-default-skin .media-controls {\\n --media-popover-side-offset: calc(var(--spacing) * (var(--base-side-offset, 2) + 1));\\n --media-tooltip-side-offset: var(--media-popover-side-offset);\\n --media-popover-boundary-offset: calc(var(--spacing) * var(--base-boundary-offset, 2));\\n --media-tooltip-boundary-offset: var(--media-popover-boundary-offset);\\n\\n display: flex;\\n align-items: center;\\n padding: calc(var(--spacing) * 1);\\n container: media-controls / inline-size;\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n border-radius: calc(Infinity * 1px);\\n}\\n\\n.media-default-skin .media-time-controls {\\n display: flex;\\n flex: 1;\\n gap: calc(var(--spacing) * 2.5);\\n align-items: center;\\n container: media-time-controls / inline-size;\\n\\n > .media-time:last-child {\\n @container media-time-controls (width < 16rem) {\\n display: none;\\n }\\n }\\n}\\n\\n.media-default-skin .media-time {\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.media-default-skin .media-time[role=\\\"button\\\"] {\\n cursor: pointer;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n border-radius: calc(var(--spacing) * 1);\\n transition-timing-function: ease-out;\\n transition-duration: 100ms;\\n transition-property: outline-color, outline-offset;\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n}\\n\\n/* Base button */\\n.media-default-skin .media-button {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n height: calc(var(--spacing) * 9);\\n min-height: 0;\\n padding: calc(var(--spacing) * 2) calc(var(--spacing) * 4);\\n text-align: center;\\n touch-action: manipulation;\\n cursor: pointer;\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n border: none;\\n border-radius: calc(Infinity * 1px);\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: background-color, color, outline-offset, scale;\\n /* Fix weird jumping when clicking on the buttons in Safari. */\\n will-change: scale;\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &:active:not([aria-disabled=\\\"true\\\"]) {\\n scale: 0.97;\\n }\\n\\n &[aria-disabled=\\\"true\\\"] {\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n}\\n\\n/* Primary button variant */\\n.media-default-skin .media-button--primary {\\n font-weight: 500;\\n color: var(--accent-contrast-color);\\n text-shadow: none;\\n background: var(--accent-color);\\n}\\n\\n/* Subtle button variant */\\n.media-default-skin .media-button--subtle {\\n color: inherit;\\n text-shadow: inherit;\\n background: transparent;\\n\\n &:not([aria-disabled=\\\"true\\\"]) {\\n &:hover,\\n &:focus-visible,\\n &[aria-expanded=\\\"true\\\"] {\\n color: var(--accent-text-color);\\n text-decoration: none;\\n background-color: var(--accent-background-color);\\n }\\n }\\n}\\n\\n/* Icon button variant */\\n.media-default-skin .media-button--icon {\\n display: grid;\\n aspect-ratio: 1;\\n padding: 0;\\n\\n &:active:not([aria-disabled=\\\"true\\\"]) {\\n scale: 0.97;\\n }\\n\\n .media-icon__container {\\n display: grid;\\n }\\n\\n .media-icon {\\n grid-area: 1 / 1;\\n filter: drop-shadow(0 1px 0 var(--shadow-current-color));\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, scale;\\n }\\n}\\n\\n/* Seek button */\\n.media-default-skin .media-button--seek {\\n .media-icon__label {\\n position: absolute;\\n right: -1px;\\n bottom: -3px;\\n font-size: 0.715em; /* 10px */\\n font-weight: 500;\\n font-variant-numeric: tabular-nums;\\n letter-spacing: -0.05em;\\n }\\n\\n &:has(.media-icon--flipped) .media-icon__label {\\n right: unset;\\n left: -1px;\\n }\\n}\\n\\n/* Playback rate button */\\n.media-default-skin .media-button--playback-rate {\\n padding: 0;\\n font-variant-numeric: tabular-nums;\\n\\n &::after {\\n width: 4ch;\\n content: attr(data-rate) \\\"\\\\00D7\\\";\\n }\\n\\n &[data-inline-rate-label]::after {\\n content: none;\\n }\\n}\\n\\n/* Settings button */\\n.media-default-skin .media-button--settings {\\n .media-icon--settings {\\n transition: transform 150ms ease-in-out;\\n\\n @media (prefers-reduced-motion: reduce) {\\n transition-duration: 0ms;\\n }\\n }\\n\\n &[aria-expanded=\\\"true\\\"] .media-icon--settings {\\n transform: rotate(90deg);\\n }\\n}\\n\\n/* Live button — wide pill button with a status dot (gray → red at the live\\n edge) rendered via ::before, and \\\"LIVE\\\" text rendered as the button's own\\n text content. */\\n.media-default-skin .media-button--live {\\n display: inline-flex;\\n gap: calc(var(--spacing) * 1.5);\\n align-items: center;\\n width: auto;\\n aspect-ratio: auto;\\n padding: calc(var(--spacing) * 2) calc(var(--spacing) * 3);\\n font-size: var(--font-size-small);\\n font-weight: 600;\\n line-height: 1;\\n text-transform: uppercase;\\n letter-spacing: 0.05em;\\n\\n &::before {\\n display: inline-block;\\n flex-shrink: 0;\\n width: calc(var(--spacing) * 2);\\n height: calc(var(--spacing) * 2);\\n content: \\\"\\\";\\n background-color: oklch(from currentColor l c h / 0.4);\\n border-radius: 50%;\\n transition: background-color 150ms ease-out;\\n }\\n\\n &[data-live-edge]::before {\\n background-color: oklch(0.65 0.22 27);\\n }\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .media-default-skin .media-button {\\n scale: 1;\\n transition-property: background-color, color, outline-offset;\\n will-change: auto;\\n }\\n}\\n\\n.media-default-skin .media-button-group {\\n display: flex;\\n gap: 1px;\\n align-items: center;\\n}\\n\\n.media-default-skin .media-badge {\\n padding: calc(var(--spacing) * 0.5) calc(var(--spacing) * 1.5);\\n font-size: var(--font-size-small);\\n font-weight: 500;\\n line-height: 1;\\n color: oklch(from currentColor l c h / 0.85);\\n white-space: nowrap;\\n background-color: oklch(from currentColor l c h / 0.1);\\n border-radius: calc(Infinity * 1px);\\n}\\n\\n.media-default-skin .media-icon__container {\\n position: relative;\\n}\\n\\n.media-default-skin .media-icon {\\n flex-shrink: 0;\\n width: var(--media-icon-size);\\n height: var(--media-icon-size);\\n}\\n.media-default-skin .media-icon--flipped {\\n scale: -1 1;\\n}\\n\\n.media-default-skin media-poster,\\n.media-default-skin > img {\\n position: absolute;\\n inset: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n transition: opacity 0.25s;\\n}\\n.media-default-skin media-poster:not([data-visible]),\\n.media-default-skin > img:not([data-visible]),\\n.media-default-skin > img[data-visible]:not([data-loaded]) {\\n opacity: 0;\\n}\\n.media-default-skin media-poster ::slotted(img),\\n.media-default-skin media-poster img {\\n position: absolute;\\n inset: 0;\\n width: 100%;\\n height: 100%;\\n object-fit: var(--media-object-fit, contain);\\n object-position: var(--media-object-position, center);\\n border-radius: var(--container-border-radius);\\n}\\n.media-default-skin > img {\\n object-fit: var(--media-object-fit, contain);\\n object-position: var(--media-object-position, center);\\n border-radius: inherit;\\n}\\n\\n/* Blurred placeholder: HTML path targets media-poster::before, React path targets the skin container::before */\\n.media-default-skin media-poster::before,\\n.media-default-skin::before {\\n position: absolute;\\n inset: 0;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-image: var(--media-poster-placeholder, none);\\n background-repeat: no-repeat;\\n background-position: var(--media-object-position, center);\\n background-size: var(--media-object-fit, contain);\\n filter: blur(var(--media-poster-placeholder-blur, 20px));\\n}\\n\\n/* React path: hidden by default, transitions in while poster loads */\\n.media-default-skin::before {\\n opacity: 0;\\n transition: opacity 0.25s;\\n}\\n/* Show placeholder while the poster is visible but not yet loaded */\\n.media-default-skin:has(img[data-visible]:not([data-loaded]))::before {\\n opacity: 1;\\n}\\n\\n.media-default-skin:fullscreen media-poster ::slotted(img),\\n.media-default-skin:fullscreen media-poster img,\\n.media-default-skin:fullscreen > img {\\n object-fit: contain;\\n}\\n\\n.media-default-skin .media-thumbnail {\\n position: relative;\\n pointer-events: none;\\n background-color: oklch(0 0 0 / 0.9);\\n border-radius: calc(var(--spacing) * 3);\\n\\n .media-thumbnail__image {\\n position: relative;\\n display: block;\\n max-width: var(--thumbnail-max-width);\\n max-height: var(--max-height);\\n overflow: clip;\\n border-radius: inherit;\\n\\n &::after {\\n position: absolute;\\n inset: 0;\\n content: \\\"\\\";\\n background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.1), oklch(0 0 0 / 0));\\n border-radius: inherit;\\n }\\n }\\n\\n .media-thumbnail__spinner {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n opacity: 0;\\n translate: -50% -50%;\\n }\\n\\n .media-thumbnail__image,\\n .media-thumbnail__spinner {\\n transition: opacity 150ms ease-out;\\n }\\n\\n &:not(:has(.media-thumbnail__image[data-loading])) {\\n .media-thumbnail__spinner {\\n --media-spinner-animation: none;\\n }\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n --media-spinner-animation: none;\\n }\\n\\n &:has(.media-thumbnail__image[data-loading]) {\\n width: var(--thumbnail-max-width);\\n max-width: 100%;\\n aspect-ratio: 16 / 9;\\n overflow: hidden;\\n\\n .media-thumbnail__image {\\n opacity: 0;\\n }\\n .media-thumbnail__spinner {\\n opacity: 1;\\n }\\n }\\n}\\n\\n.media-default-skin .media-slider {\\n --track-size: calc(var(--spacing) * 1);\\n --track-highlighted-size: calc(var(--spacing) * 1.75);\\n --track-border-radius: 99px;\\n --thumb-size: calc(var(--spacing) * 2.5);\\n --thumb-active-size: calc(var(--spacing) * 3);\\n --chapter-gap: calc(var(--spacing) * 1);\\n --chapter-inset-start: calc(var(--chapter-gap) / 2);\\n --chapter-inset-end: calc(var(--chapter-gap) / 2);\\n\\n position: relative;\\n display: flex;\\n flex: 1;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n outline: none;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: var(--slider-width, 100%);\\n min-width: calc(var(--spacing) * 20);\\n height: var(--slider-height, calc(var(--spacing) * 8));\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n width: var(--slider-width, calc(var(--spacing) * 8));\\n height: var(--slider-height, calc(var(--spacing) * 20));\\n }\\n\\n /* Track */\\n .media-slider__track {\\n position: relative;\\n overflow: hidden;\\n user-select: none;\\n background-color: oklch(from currentColor l c h / 0.2);\\n border-radius: var(--track-border-radius);\\n isolation: isolate;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: 100%;\\n height: var(--track-size);\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n width: var(--track-size);\\n height: 100%;\\n }\\n }\\n\\n /* Shared track fills */\\n .media-slider__buffer,\\n .media-slider__fill {\\n position: absolute;\\n pointer-events: none;\\n border-radius: inherit;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n inset-block: 0;\\n left: 0;\\n width: 100%;\\n transition-property: clip-path;\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n inset-inline: 0;\\n bottom: 0;\\n height: 100%;\\n transition-property: clip-path;\\n }\\n }\\n\\n /* Buffer */\\n .media-slider__buffer {\\n background-color: oklch(from currentColor l c h / 0.2);\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-buffer)) 0 0 round var(--track-border-radius));\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-buffer)) 0 0 0 round var(--track-border-radius));\\n }\\n }\\n\\n /* Fill */\\n .media-slider__fill {\\n background-color: var(--accent-color);\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-fill)) 0 0 round var(--track-border-radius));\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round var(--track-border-radius));\\n }\\n }\\n\\n /* Chapters */\\n .media-slider__chapters {\\n position: relative;\\n display: flex;\\n flex: 1;\\n align-items: center;\\n min-width: 0;\\n min-height: 0;\\n border-radius: inherit;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: 100%;\\n height: 100%;\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n flex-direction: column-reverse;\\n width: 100%;\\n height: 100%;\\n }\\n }\\n\\n .media-slider__chapter {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 0;\\n min-height: 0;\\n border-radius: inherit;\\n\\n &:first-child {\\n --chapter-inset-start: 0px;\\n }\\n &:last-child {\\n --chapter-inset-end: 0px;\\n }\\n\\n .media-slider__chapter-track {\\n border-radius: inherit;\\n\\n @media (prefers-reduced-motion: no-preference) {\\n transition: 200ms ease-out;\\n transition-property: height, width;\\n }\\n }\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));\\n\\n .media-slider__chapter-track {\\n height: var(--track-size);\\n clip-path: inset(\\n 0 calc(100% - var(--media-slider-chapter-end) + var(--chapter-inset-end)) 0\\n calc(var(--media-slider-chapter-start) + var(--chapter-inset-start)) round var(--track-border-radius)\\n );\\n }\\n\\n &[data-highlighted] .media-slider__chapter-track {\\n height: var(--track-highlighted-size);\\n }\\n }\\n\\n &[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);\\n\\n .media-slider__chapter-track {\\n width: var(--track-size);\\n clip-path: inset(\\n calc(100% - var(--media-slider-chapter-end) + var(--chapter-inset-end)) 0\\n calc(var(--media-slider-chapter-start) + var(--chapter-inset-start)) 0 round var(--track-border-radius)\\n );\\n }\\n\\n &[data-highlighted] .media-slider__chapter-track {\\n width: var(--track-highlighted-size);\\n }\\n }\\n }\\n\\n /* Dragging — thumb and fill follow the pointer position */\\n &[data-dragging] {\\n .media-slider__thumb[data-orientation=\\\"horizontal\\\"] {\\n left: var(--media-slider-pointer);\\n }\\n .media-slider__thumb[data-orientation=\\\"vertical\\\"] {\\n top: calc(100% - var(--media-slider-pointer));\\n }\\n .media-slider__fill[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--track-border-radius));\\n }\\n .media-slider__fill[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--track-border-radius));\\n }\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n .media-slider__thumb {\\n transition-property: opacity, height, width, outline-offset, left, top;\\n }\\n .media-slider__fill {\\n transition-timing-function: linear;\\n transition-duration: 200ms;\\n }\\n .media-slider__buffer {\\n transition-timing-function: ease-out;\\n transition-duration: 250ms;\\n }\\n }\\n\\n &[data-dragging],\\n &[data-seeking] {\\n .media-slider__thumb,\\n .media-slider__fill,\\n .media-slider__buffer {\\n transition-duration: 0ms;\\n }\\n }\\n\\n /* Thumb */\\n .media-slider__thumb {\\n position: absolute;\\n z-index: 10;\\n width: var(--thumb-size);\\n height: var(--thumb-size);\\n user-select: none;\\n outline: 4px solid transparent;\\n outline-offset: -4px;\\n background-color: currentColor;\\n border-radius: calc(Infinity * 1px);\\n box-shadow:\\n 0 0 0 1px var(--shadow-current-color, oklch(0 0 0 / 0.1)),\\n 0 1px 3px 0 oklch(0 0 0 / 0.35),\\n 0 1px 2px -1px oklch(0 0 0 / 0.35);\\n opacity: 0;\\n translate: -50% -50%;\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, height, width, outline-offset;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n top: 50%;\\n left: var(--media-slider-fill);\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n top: calc(100% - var(--media-slider-fill));\\n left: 50%;\\n }\\n\\n &:focus-visible {\\n outline-color: oklch(from currentColor l c h / 0.15);\\n outline-offset: 0;\\n opacity: 1;\\n }\\n\\n @media (hover: hover) and (pointer: fine) {\\n &:hover {\\n outline-color: oklch(from currentColor l c h / 0.15);\\n outline-offset: 0;\\n }\\n }\\n\\n &::after {\\n position: absolute;\\n inset: -4px;\\n content: \\\"\\\";\\n border-radius: inherit;\\n box-shadow: 0 0 0 2px currentColor;\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, scale;\\n }\\n\\n &:not(:focus-visible)::after {\\n opacity: 0;\\n scale: 0.5;\\n }\\n\\n &.media-slider__thumb--persistent {\\n width: var(--thumb-active-size);\\n height: var(--thumb-active-size);\\n opacity: 1;\\n }\\n }\\n\\n &:active .media-slider__thumb,\\n &:focus-within .media-slider__thumb {\\n width: var(--thumb-active-size);\\n height: var(--thumb-active-size);\\n }\\n\\n @media (hover: hover) and (pointer: fine) {\\n &:hover .media-slider__thumb {\\n opacity: 1;\\n }\\n }\\n\\n /* Preview */\\n .media-slider__preview {\\n --max-width: min(calc(var(--spacing) * 48), 100cqi);\\n --max-height: calc(var(--spacing) * 32);\\n\\n min-width: var(--max-width);\\n height: calc(var(--spacing) * 1);\\n\\n .media-slider__thumbnail,\\n .media-slider__value {\\n position: absolute;\\n left: 50%;\\n max-width: var(--max-width);\\n opacity: 0;\\n filter: blur(8px);\\n transform-origin: bottom;\\n scale: 0.8;\\n translate: -50% calc(var(--spacing) * 2);\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n }\\n\\n .media-slider__thumbnail {\\n --thumbnail-max-width: var(--max-width);\\n bottom: calc(100% + (var(--spacing) * 9));\\n }\\n\\n .media-slider__value {\\n bottom: calc(100% + (var(--spacing) * 10.5));\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n }\\n\\n .media-slider__chapter-title {\\n min-width: 0;\\n max-width: var(--max-width);\\n padding-inline: calc(var(--spacing) * 6);\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n\\n &:empty {\\n display: none;\\n }\\n }\\n\\n &::before {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n z-index: 1;\\n width: calc(var(--spacing) * 1);\\n height: calc(var(--spacing) * 1);\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: currentColor;\\n border-radius: 100%;\\n box-shadow:\\n 0 0 0 1px var(--shadow-current-color, oklch(0 0 0 / 0.15)),\\n 0 1px 2px 0 oklch(0 0 0 / 0.35);\\n opacity: 0;\\n scale: 0.5;\\n translate: -50% -50%;\\n transition-timing-function: ease-out;\\n transition-duration: 200ms;\\n transition-property: opacity, scale;\\n }\\n }\\n\\n &:is([data-pointing], :has(:focus-visible))\\n .media-slider__preview\\n :is(.media-slider__value, .media-slider__thumbnail),\\n .media-slider__preview[data-pointing]:not([data-dragging])::before {\\n opacity: 1;\\n filter: blur(0);\\n scale: 1;\\n }\\n}\\n\\n.media-default-skin {\\n --popup-transition:\\n opacity var(--popup-transition-timing-function) var(--popup-transition-duration),\\n filter var(--popup-transition-timing-function) var(--popup-transition-duration),\\n transform var(--popup-transition-timing-function) var(--popup-transition-duration),\\n scale var(--popup-transition-timing-function) var(--popup-transition-duration);\\n}\\n\\n.media-default-skin .media-popover,\\n.media-default-skin .media-tooltip {\\n --popup-translate-distance: calc(0.5 * var(--scale-unit));\\n margin: 0;\\n overflow: visible;\\n color: inherit;\\n border: 0;\\n transition: var(--popup-transition);\\n\\n &[data-starting-style],\\n &[data-ending-style] {\\n opacity: 0;\\n filter: blur(4px);\\n /* We have to use transform here for translate as the translate property is used for positioning by core. */\\n transform: translate(var(--popup-translate-x-distance, 0), var(--popup-translate-y-distance, 0));\\n scale: 0.95;\\n }\\n\\n &[data-ending-style] {\\n transform: none;\\n /* Speed up the exit transition. */\\n transition-duration: max(0ms, calc(var(--popup-transition-duration) - 50ms));\\n }\\n\\n &[data-side=\\\"top\\\"] {\\n --popup-translate-y-distance: var(--popup-translate-distance);\\n transform-origin: bottom;\\n }\\n &[data-side=\\\"bottom\\\"] {\\n --popup-translate-y-distance: calc(var(--popup-translate-distance) * -1);\\n transform-origin: top;\\n }\\n &[data-side=\\\"left\\\"] {\\n --popup-translate-x-distance: var(--popup-translate-distance);\\n transform-origin: right;\\n }\\n &[data-side=\\\"right\\\"] {\\n --popup-translate-x-distance: calc(var(--popup-translate-distance) * -1);\\n transform-origin: left;\\n }\\n\\n /* Safe area between trigger and popup */\\n &::before {\\n position: absolute;\\n pointer-events: inherit;\\n content: \\\"\\\";\\n }\\n\\n &[data-side=\\\"top\\\"]::before,\\n &[data-side=\\\"bottom\\\"]::before {\\n inset-inline: 0;\\n width: 100%;\\n }\\n &[data-side=\\\"top\\\"]::before {\\n top: 100%;\\n }\\n &[data-side=\\\"bottom\\\"]::before {\\n bottom: 100%;\\n }\\n\\n &[data-side=\\\"left\\\"]::before,\\n &[data-side=\\\"right\\\"]::before {\\n inset-block: 0;\\n height: 100%;\\n }\\n &[data-side=\\\"left\\\"]::before {\\n left: 100%;\\n }\\n &[data-side=\\\"right\\\"]::before {\\n right: 100%;\\n }\\n}\\n\\n.media-default-skin .media-popover {\\n &[data-side=\\\"top\\\"]::before,\\n &[data-side=\\\"bottom\\\"]::before {\\n height: var(--media-popover-side-offset);\\n }\\n &[data-side=\\\"left\\\"]::before,\\n &[data-side=\\\"right\\\"]::before {\\n width: var(--media-popover-side-offset);\\n }\\n}\\n.media-default-skin .media-popover--volume {\\n padding: calc(var(--spacing) * 3) 0;\\n border-radius: calc(Infinity * 1px);\\n\\n &:has(media-volume-slider[data-hidden]) {\\n display: none;\\n }\\n}\\n\\n.media-default-skin .media-tooltip {\\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2.5);\\n font-size: var(--font-size-base);\\n white-space: nowrap;\\n border-radius: calc(Infinity * 1px);\\n\\n /* `display: flex` must not apply while closed — it overrides UA `[popover]` hiding. */\\n &[data-open] {\\n display: flex;\\n column-gap: calc(var(--spacing) * 1);\\n align-items: center;\\n }\\n\\n &[data-side=\\\"top\\\"]::before,\\n &[data-side=\\\"bottom\\\"]::before {\\n height: var(--media-tooltip-side-offset);\\n }\\n &[data-side=\\\"left\\\"]::before,\\n &[data-side=\\\"right\\\"]::before {\\n width: var(--media-tooltip-side-offset);\\n }\\n\\n .media-tooltip__kbd {\\n min-width: 1.5em;\\n padding: 0.1em;\\n font-family: inherit;\\n font-size: var(--font-size-small);\\n font-weight: 600;\\n line-height: 1.25;\\n text-align: center;\\n background-color: oklch(from currentColor l c h / 0.3);\\n border-radius: calc(var(--spacing) * 1);\\n }\\n}\\n\\n.media-default-skin .media-menu {\\n --menu-transition-duration: 250ms;\\n --menu-max-height: calc(var(--spacing) * 56);\\n --menu-padding: calc(var(--spacing) * 1);\\n --menu-border-radius: calc(var(--spacing) * 3);\\n --menu-item-border-radius: calc(var(--menu-border-radius) - var(--menu-padding));\\n box-sizing: border-box;\\n min-width: max-content;\\n max-width: var(--media-popover-available-width, none);\\n max-height: min(var(--media-popover-available-height, var(--menu-max-height)), var(--menu-max-height));\\n padding: var(--menu-padding);\\n overflow: auto;\\n overscroll-behavior: none;\\n border-radius: var(--menu-border-radius);\\n\\n @media (prefers-reduced-motion: reduce) {\\n --menu-transition-duration: 0ms;\\n }\\n\\n & > .media-menu__panel {\\n position: absolute;\\n inset-inline: 0;\\n top: 0;\\n z-index: 10;\\n max-height: inherit;\\n padding: var(--menu-padding);\\n overflow: auto;\\n overscroll-behavior: none;\\n outline: none;\\n translate: 0 0;\\n transition-timing-function: ease-out;\\n transition-duration: var(--menu-transition-duration);\\n transition-property: translate, filter;\\n will-change: translate, filter;\\n\\n &:where([data-starting-style], [data-ending-style]) {\\n overflow: hidden;\\n pointer-events: none;\\n filter: blur(8px);\\n translate: 100% 0;\\n }\\n }\\n\\n .media-menu__separator {\\n margin-block: calc(var(--spacing) * 1);\\n border-bottom: 1px solid oklch(0 0 0 / 0.1);\\n box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.075);\\n }\\n\\n .media-menu__group {\\n anchor-scope: --menu-item-highlight-anchor;\\n display: flex;\\n flex-direction: column;\\n gap: calc(var(--spacing) * 0.5);\\n\\n @supports (top: anchor(top)) {\\n &::before {\\n position: absolute;\\n position-anchor: --menu-item-highlight-anchor;\\n inset: anchor(inside);\\n /* Firefox treats the moving highlight as a content shift and re-scrolls\\n the menu while hovering. Exclude it from scroll anchoring. */\\n overflow-anchor: none;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: var(--accent-background-color);\\n border-radius: var(--menu-item-border-radius);\\n transition: inset 100ms ease-in-out;\\n }\\n\\n &:has([data-highlighted=\\\"\\\"])::before {\\n transition-duration: 0ms;\\n }\\n }\\n }\\n\\n .media-menu__item,\\n .media-menu__back {\\n position: relative;\\n display: flex;\\n gap: calc(var(--spacing) * 1.5);\\n align-items: center;\\n padding: calc(var(--spacing) * 1.5) calc(var(--spacing) * 2);\\n text-align: left;\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n cursor: pointer;\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n border-radius: var(--menu-item-border-radius);\\n transition: background-color, color;\\n transition-timing-function: ease-in-out;\\n transition-duration: 100ms;\\n\\n .media-icon {\\n flex-shrink: 0;\\n color: oklch(from currentColor l c h / 0.65);\\n filter: drop-shadow(0 1px 0 var(--shadow-current-color));\\n }\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &:hover,\\n &[data-highlighted] {\\n color: var(--accent-text-color);\\n background-color: var(--accent-background-color);\\n\\n .media-icon {\\n color: inherit;\\n }\\n }\\n\\n @supports (top: anchor(top)) {\\n transition-duration: 50ms;\\n\\n &:hover,\\n &[data-highlighted] {\\n transition-duration: 200ms;\\n }\\n }\\n }\\n\\n .media-menu__indicator {\\n flex-shrink: 0;\\n margin-right: calc(var(--spacing) * -1);\\n margin-left: auto;\\n opacity: 0;\\n\\n .media-icon {\\n filter: drop-shadow(0 1px 0 var(--shadow-current-color));\\n }\\n }\\n\\n .media-menu__item {\\n justify-content: space-between;\\n font-variant-numeric: tabular-nums;\\n color: inherit;\\n\\n &[aria-disabled=\\\"true\\\"] {\\n pointer-events: none;\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n\\n &[aria-checked=\\\"true\\\"] .media-menu__indicator {\\n opacity: 1;\\n }\\n\\n &[data-availability=\\\"unavailable\\\"],\\n &[data-availability=\\\"unsupported\\\"] {\\n display: none;\\n }\\n\\n &[data-highlighted] {\\n @supports (top: anchor(top)) {\\n anchor-name: --menu-item-highlight-anchor;\\n background-color: transparent;\\n }\\n }\\n }\\n\\n .media-menu__tier {\\n padding-top: 1px;\\n padding-left: calc(var(--spacing) * 0.5);\\n font-size: var(--font-size-tiny);\\n font-weight: 600;\\n line-height: 1;\\n color: oklch(from currentColor l c h / 0.7);\\n }\\n\\n .media-menu__back {\\n width: 100%;\\n margin-bottom: calc(var(--spacing) * 0.5);\\n }\\n\\n .media-menu__hint {\\n display: inline-flex;\\n gap: calc(var(--spacing) * 1);\\n align-items: center;\\n min-width: 0;\\n padding-left: calc(var(--spacing) * 2);\\n margin-left: auto;\\n color: oklch(from currentColor l c h / 0.65);\\n }\\n\\n .media-menu__hint-label {\\n max-width: calc(var(--spacing) * 24);\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n\\n .media-menu__chevron {\\n width: calc(var(--spacing) * 3.5);\\n height: calc(var(--spacing) * 3.5);\\n }\\n\\n /* Settings menu */\\n &.media-menu--settings {\\n width: var(--media-menu-width);\\n min-width: calc(var(--spacing) * 48);\\n height: var(--media-menu-height);\\n overflow: hidden;\\n /* Only the menu size changes between panels. */\\n transition:\\n var(--popup-transition),\\n width var(--popup-transition-timing-function) var(--menu-transition-duration),\\n height var(--popup-transition-timing-function) var(--menu-transition-duration);\\n\\n & > :not([data-submenu]) {\\n translate: 0 0;\\n transition:\\n translate var(--menu-transition-duration) ease-out,\\n filter var(--menu-transition-duration) ease-out;\\n will-change: translate, filter;\\n }\\n\\n &[data-submenu-expanded=\\\"true\\\"] > :not([data-submenu]) {\\n filter: blur(8px);\\n translate: -100% 0;\\n }\\n\\n /* WebKit can restart the covered-content transition while the\\n anchor-positioned highlight remains active. */\\n &[data-submenu-expanded] > :not([data-submenu])::before {\\n display: none;\\n }\\n\\n /* Don't transition size on open/close. */\\n &[data-starting-style],\\n &[data-ending-style] {\\n transition: var(--popup-transition);\\n }\\n }\\n}\\n\\n.media-default-skin {\\n --media-caption-track-duration: var(--controls-transition-duration);\\n --media-caption-track-delay: 25ms;\\n --media-caption-track-y: calc(var(--spacing) * -2);\\n\\n &:has(.media-controls[data-visible]) {\\n --media-caption-track-y: calc(var(--spacing) * -14);\\n }\\n}\\n\\n.media-default-skin video::-webkit-media-text-track-container {\\n z-index: 1;\\n font-family: inherit;\\n scale: 0.98;\\n translate: 0 var(--media-caption-track-y);\\n transition: translate var(--media-caption-track-duration) ease-out;\\n transition-delay: var(--media-caption-track-delay);\\n}\\n\\n.media-default-skin .media-input-indicator-overlay {\\n position: absolute;\\n inset: 0;\\n display: grid;\\n grid-template-columns: 1fr 1fr 1fr;\\n align-items: center;\\n justify-items: center;\\n color: oklch(1 0 0);\\n pointer-events: none;\\n}\\n\\n.media-default-skin {\\n .media-volume-indicator,\\n .media-status-indicator--state {\\n --surface-background-color: oklch(0 0 0 / 0.25);\\n position: absolute;\\n top: calc(var(--spacing) * 3);\\n font-weight: 500;\\n color: inherit;\\n pointer-events: none;\\n border-radius: calc(Infinity * 1px);\\n transform-origin: top center;\\n transition-timing-function: ease-out;\\n transition-duration: 100ms;\\n\\n .media-volume-indicator__content,\\n .media-status-indicator__content {\\n display: flex;\\n gap: calc(var(--spacing) * 2);\\n align-items: center;\\n justify-content: space-between;\\n width: 100%;\\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2.5);\\n\\n * {\\n mix-blend-mode: difference;\\n }\\n }\\n\\n .media-icon {\\n display: none;\\n flex-shrink: 0;\\n }\\n\\n .media-volume-indicator__value,\\n .media-status-indicator__value {\\n margin-left: auto;\\n }\\n\\n @media (pointer: coarse) {\\n transition-property: scale, translate, opacity;\\n will-change: scale, translate, opacity;\\n }\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n transition-property: scale, translate, filter, opacity;\\n will-change: scale, translate, filter, opacity;\\n }\\n\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --surface-background-color: oklch(0 0 0);\\n }\\n\\n &[data-starting-style],\\n &[data-ending-style] {\\n opacity: 0;\\n transition-timing-function: ease-in;\\n transition-duration: 250ms;\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n filter: blur(8px);\\n scale: 0.9;\\n }\\n }\\n\\n &[data-ending-style] {\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 -25%;\\n }\\n }\\n }\\n\\n .media-seek-indicator,\\n .media-status-indicator--playback {\\n display: grid;\\n grid-row: 1;\\n grid-column: 2;\\n place-content: center;\\n padding: calc(var(--spacing) * 4);\\n text-align: center;\\n }\\n}\\n\\n.media-default-skin .media-volume-indicator {\\n width: min(80%, calc(var(--spacing) * 48));\\n transform: translateX(0);\\n\\n .media-volume-indicator__content {\\n background-image: linear-gradient(currentColor, currentColor);\\n background-repeat: no-repeat;\\n background-position: left;\\n background-size: var(--media-volume-fill, 0%) 100%;\\n border-radius: inherit;\\n transition: background-size 200ms linear;\\n }\\n\\n &[data-level=\\\"high\\\"] .media-icon--volume-high,\\n &[data-level=\\\"low\\\"] .media-icon--volume-low,\\n &[data-level=\\\"off\\\"] .media-icon--volume-off {\\n display: block;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n &[data-min]:not([data-starting-style], [data-ending-style]),\\n &[data-max]:not([data-starting-style], [data-ending-style]) {\\n transform: translateX(0.25px);\\n transition: transform 300ms linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);\\n }\\n }\\n}\\n\\n.media-default-skin .media-status-indicator--state {\\n &[data-status=\\\"captions-on\\\"] .media-icon--captions-on,\\n &[data-status=\\\"captions-off\\\"] .media-icon--captions-off,\\n &[data-status=\\\"fullscreen\\\"] .media-icon--fullscreen-enter,\\n &[data-status=\\\"exit-fullscreen\\\"] .media-icon--fullscreen-exit,\\n &[data-status=\\\"pip\\\"] .media-icon--pip-enter,\\n &[data-status=\\\"exit-pip\\\"] .media-icon--pip-exit {\\n display: block;\\n }\\n}\\n\\n.media-default-skin .media-status-indicator--playback {\\n background: oklch(0 0 0 / 0.35);\\n border-radius: 100%;\\n backdrop-filter: blur(8px);\\n transition-timing-function: ease-out;\\n transition-duration: 200ms;\\n transition-property: opacity, scale;\\n\\n .media-icon {\\n grid-area: 1 / 1;\\n width: calc(var(--media-icon-size) * 1.5);\\n height: calc(var(--media-icon-size) * 1.5);\\n opacity: 0;\\n scale: 0;\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, scale;\\n\\n &.media-icon--play {\\n translate: 1px 0;\\n }\\n }\\n\\n &[data-status=\\\"pause\\\"] .media-icon--pause,\\n &[data-status=\\\"play\\\"] .media-icon--play {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n &[data-starting-style],\\n &[data-ending-style] {\\n opacity: 0;\\n scale: 0.85;\\n }\\n\\n &[data-ending-style] {\\n transition-timing-function: ease-in;\\n transition-duration: 100ms;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n transition-duration: 50ms;\\n transition-property: opacity;\\n\\n &[data-starting-style],\\n &[data-ending-style],\\n .media-icon {\\n scale: 1;\\n }\\n\\n .media-icon {\\n transition-duration: 50ms;\\n transition-property: opacity;\\n }\\n }\\n}\\n\\n.media-default-skin .media-seek-indicator {\\n gap: calc(var(--spacing) * 1);\\n\\n .media-seek-indicator__value {\\n font-variant-numeric: tabular-nums;\\n }\\n\\n @container media-root (width > 24rem) {\\n padding: calc(var(--spacing) * 6);\\n }\\n\\n &[data-direction=\\\"backward\\\"] {\\n grid-column: 1;\\n justify-self: left;\\n }\\n\\n &[data-direction=\\\"forward\\\"] {\\n grid-column: 3;\\n justify-self: right;\\n }\\n\\n .media-icon--seek {\\n display: block;\\n width: calc(var(--media-icon-size) * 1.5);\\n height: calc(var(--media-icon-size) * 1.5);\\n }\\n\\n &[data-direction=\\\"backward\\\"] .media-icon--seek {\\n scale: -1 1;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n .media-icon--seek {\\n transition-timing-function: ease-in-out;\\n transition-duration: 200ms;\\n transition-property: translate, opacity;\\n }\\n\\n &[data-starting-style] .media-icon--seek,\\n &[data-ending-style] .media-icon--seek {\\n opacity: 0;\\n }\\n\\n &[data-direction=\\\"forward\\\"][data-starting-style] .media-icon--seek {\\n translate: -60% 0;\\n }\\n\\n &[data-direction=\\\"backward\\\"][data-starting-style] .media-icon--seek {\\n translate: 60% 0;\\n }\\n }\\n}\\n\\n/* ==========================================================================\\n Icon State Visibility for Video Skins\\n\\n Data-attribute-driven visibility rules for multi-state icon buttons shared\\n by the HTML and React skins.\\n ========================================================================== */\\n\\n/* --- All icons hidden by default --- */\\n\\n.media-button--play .media-icon,\\n.media-button--mute .media-icon,\\n.media-button--fullscreen .media-icon,\\n.media-button--pip .media-icon,\\n.media-button--cast .media-icon,\\n.media-button--airplay .media-icon,\\n.media-button--captions .media-icon {\\n opacity: 0;\\n}\\n.media-button--play .media-icon {\\n scale: 0;\\n}\\n\\n/* --- Active icon per state --- */\\n\\n/* Play: ended → restart */\\n.media-button--play[data-ended] .media-icon--restart,\\n/* Play: paused or not yet started (not ended) → play */\\n.media-button--play:not([data-ended])[data-paused] .media-icon--play,\\n.media-button--play:not([data-ended]):not([data-started]) .media-icon--play,\\n/* Play: started and not paused/ended → pause */\\n.media-button--play[data-started]:not([data-paused]):not([data-ended]) .media-icon--pause,\\n/* Mute: muted → volume off */\\n.media-button--mute[data-muted] .media-icon--volume-off,\\n/* Mute: volume low (not muted) → volume low */\\n.media-button--mute:not([data-muted])[data-volume-level=\\\"low\\\"] .media-icon--volume-low,\\n/* Mute: volume high (not muted, not low) → volume high */\\n.media-button--mute:not([data-muted]):not([data-volume-level=\\\"low\\\"]) .media-icon--volume-high,\\n/* Fullscreen: not fullscreen → enter */\\n.media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter,\\n/* Fullscreen: fullscreen → exit */\\n.media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit,\\n/* Picture-in-Picture: not active → enter */\\n.media-button--pip:not([data-pip]) .media-icon--pip-enter,\\n/* Picture-in-Picture: active → exit */\\n.media-button--pip[data-pip] .media-icon--pip-exit,\\n/* Cast: not connected → enter */\\n.media-button--cast:not([data-cast-state=\\\"connected\\\"]) .media-icon--cast-enter,\\n/* Cast: connected → exit */\\n.media-button--cast[data-cast-state=\\\"connected\\\"] .media-icon--cast-exit,\\n/* AirPlay: not connected → enter */\\n.media-button--airplay:not([data-airplay-state=\\\"connected\\\"]) .media-icon--airplay-enter,\\n/* AirPlay: connected → exit */\\n.media-button--airplay[data-airplay-state=\\\"connected\\\"] .media-icon--airplay-exit,\\n/* Captions: not active → captions off */\\n.media-button--captions:not([data-active]) .media-icon--captions-off,\\n/* Captions: active → captions on */\\n.media-button--captions[data-active] .media-icon--captions-on {\\n opacity: 1;\\n scale: 1;\\n}\\n\\n/* --- Pause keyframe animations on inactive icons --- */\\n\\n/* The airplay-exit SVG defines its keyframes against CSS variables (mirroring\\n the spinner pattern). When the AirPlay session isn't active the SVG is\\n still in the DOM — just `display: none` — so its animations would keep\\n running. Set the variables to `none` to short-circuit the keyframes. */\\n.media-button--airplay:not([data-airplay-state=\\\"connected\\\"]) {\\n --media-icon--airplay__fill-animation: none;\\n --media-icon--airplay__triangle-animation: none;\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .media-button--airplay {\\n --media-icon--airplay__fill-animation: none;\\n --media-icon--airplay__triangle-animation: none;\\n }\\n}\\n\\n\\n/* Video-specific container styles */\\n\\n.media-default-skin--video {\\n --default-accent-color: oklch(1 0 0);\\n --border-color: light-dark(oklch(0 0 0 / 0.1), oklch(1 0 0 / 0.15));\\n --focus-ring-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n --media-video-border-radius: var(--container-border-radius);\\n\\n --surface-background-color: oklch(1 0 0 / 0.1);\\n --surface-inner-border-color: oklch(1 0 0 / 0.1);\\n --surface-outer-border-color: oklch(0 0 0 / 0.1);\\n --surface-shadow-color: oklch(0 0 0 / 0.15);\\n --surface-backdrop-filter: blur(16px) saturate(1.5);\\n\\n --controls-transition-duration: 100ms;\\n --controls-transition-timing-function: ease-out;\\n\\n --error-dialog-transition-duration: 350ms;\\n --error-dialog-transition-delay: 100ms;\\n --error-dialog-transition-timing-function: ease-out;\\n\\n --popup-transition-duration: 100ms;\\n --popup-transition-timing-function: ease-out;\\n\\n overflow: clip;\\n background: oklch(0 0 0);\\n\\n @media (prefers-reduced-motion: reduce) {\\n --error-dialog-transition-duration: 50ms;\\n --error-dialog-transition-delay: 0ms;\\n --popup-transition-duration: 0ms;\\n\\n .media-error__dialog {\\n scale: 1;\\n transition-property: opacity;\\n }\\n }\\n\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --surface-background-color: oklch(0 0 0);\\n --surface-inner-border-color: oklch(1 0 0 / 0.25);\\n --surface-outer-border-color: transparent;\\n }\\n\\n &:has(.media-controls--root:not([data-visible])) {\\n /* Slight delay to hide controls on non-touch devices after interaction */\\n @media (pointer: fine) {\\n --controls-transition-duration: 300ms;\\n }\\n @media (pointer: coarse) {\\n --controls-transition-duration: 150ms;\\n }\\n @media (prefers-reduced-motion: reduce) {\\n --controls-transition-duration: 50ms;\\n }\\n }\\n\\n /* Inner border ring */\\n &::after {\\n position: absolute;\\n inset: 0;\\n z-index: 10;\\n pointer-events: none;\\n content: \\\"\\\";\\n border-radius: inherit;\\n box-shadow: inset 0 0 0 1px var(--border-color);\\n }\\n\\n &:fullscreen {\\n --container-border-radius: 0;\\n\\n &::after {\\n display: none;\\n }\\n\\n @media (width >= 1280px) {\\n --scale: 1.25;\\n }\\n @media (width >= 1536px) {\\n --scale: 1.5;\\n }\\n @media (width >= 1920px) {\\n --scale: 1.75;\\n }\\n }\\n\\n * {\\n --focus-ring-color: oklch(1 0 0);\\n }\\n}\\n\\n/* Error Dialog */\\n\\n.media-default-skin--video .media-error {\\n position: absolute;\\n inset: 0;\\n z-index: 20;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.media-default-skin--video .media-error__dialog {\\n display: flex;\\n flex-direction: column;\\n gap: calc(var(--spacing) * 3);\\n width: 100%;\\n max-width: calc(var(--spacing) * 72);\\n padding: calc(var(--spacing) * 3);\\n color: oklch(1 0 0);\\n text-shadow: 0 1px 0 oklch(0 0 0 / 0.25);\\n border-radius: calc(var(--spacing) * 7);\\n transition-delay: var(--error-dialog-transition-delay);\\n transition-timing-function: var(--error-dialog-transition-timing-function);\\n transition-duration: var(--error-dialog-transition-duration);\\n transition-property: opacity, scale;\\n}\\n\\n.media-default-skin--video .media-error[data-starting-style] .media-error__dialog,\\n.media-default-skin--video .media-error[data-ending-style] .media-error__dialog {\\n opacity: 0;\\n scale: 0.95;\\n}\\n.media-default-skin--video .media-error[data-ending-style] .media-error__dialog {\\n transition-delay: 0ms;\\n}\\n\\n.media-default-skin--video .media-error__content {\\n display: flex;\\n flex-direction: column;\\n gap: calc(var(--spacing) * 2);\\n padding: calc(var(--spacing) * 2) calc(var(--spacing) * 2) calc(var(--spacing) * 1.5);\\n text-shadow: inherit;\\n}\\n\\n.media-default-skin--video .media-error__title {\\n font-size: var(--font-size-medium);\\n}\\n\\n/* Controls (hide/show behavior) */\\n\\n.media-default-skin--video .media-controls--root {\\n --inset-factor: 2;\\n --inset: calc(var(--spacing) * var(--inset-factor));\\n --base-boundary-offset: var(--inset-factor);\\n\\n z-index: 10;\\n display: contents;\\n color: oklch(1 0 0);\\n transition-timing-function: var(--controls-transition-timing-function);\\n /* Speed up the entry transition */\\n transition-duration: calc(var(--controls-transition-duration) / 2);\\n\\n .media-controls--primary,\\n .media-controls--secondary {\\n position: absolute;\\n z-index: 10;\\n }\\n\\n .media-controls--primary {\\n inset-inline: var(--inset);\\n bottom: var(--inset);\\n transform-origin: bottom;\\n }\\n\\n .media-controls--secondary {\\n top: var(--inset);\\n right: var(--inset);\\n container-type: normal;\\n transform-origin: top;\\n }\\n\\n @container media-root (width < 32rem) {\\n .media-controls--primary,\\n .media-controls--secondary {\\n transition-timing-function: inherit;\\n transition-duration: inherit;\\n\\n @media (pointer: fine) {\\n transition-property: filter, opacity, scale, translate;\\n will-change: filter, opacity, scale, translate;\\n }\\n\\n @media (pointer: coarse) {\\n transition-property: opacity, scale, translate;\\n will-change: opacity, scale, translate;\\n }\\n }\\n\\n &:after {\\n display: none;\\n }\\n\\n &:not([data-visible]) {\\n .media-controls--primary,\\n .media-controls--secondary {\\n pointer-events: none;\\n opacity: 0;\\n scale: 0.95;\\n transition-duration: var(--controls-transition-duration);\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n filter: blur(8px);\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n scale: 1;\\n }\\n }\\n\\n .media-controls--primary {\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 4px;\\n }\\n }\\n\\n .media-controls--secondary {\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 -4px;\\n }\\n }\\n }\\n }\\n\\n @container media-root (width >= 32rem) {\\n position: absolute;\\n inset-inline: var(--inset);\\n bottom: var(--inset);\\n display: flex;\\n transform-origin: bottom;\\n\\n .media-controls--primary,\\n .media-controls--secondary {\\n display: contents;\\n\\n &::after {\\n display: none;\\n }\\n }\\n\\n &:not([data-visible]) {\\n pointer-events: none;\\n opacity: 0;\\n scale: 0.95;\\n transition-duration: var(--controls-transition-duration);\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n filter: blur(8px);\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n scale: 1;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 4px;\\n }\\n }\\n }\\n\\n .media-time-controls {\\n flex: 1;\\n padding-inline: calc(var(--spacing) * 3);\\n }\\n\\n @media (pointer: fine) {\\n transition-property: filter, opacity, scale, translate;\\n will-change: filter, opacity, scale, translate;\\n }\\n\\n @media (pointer: coarse) {\\n transition-property: opacity, scale, translate;\\n will-change: opacity, scale, translate;\\n }\\n\\n @container media-root (width > 42rem) {\\n --inset-factor: 3;\\n }\\n}\\n\\n.media-default-skin--video .media-error[data-open] ~ .media-controls {\\n display: none;\\n}\\n\\n/* Hide cursor when controls are hidden */\\n.media-default-skin--video:has(.media-controls--root:not([data-visible])) {\\n cursor: none;\\n}\\n\\n/* Sliders */\\n\\n.media-default-skin--video .media-slider__track {\\n background-color: oklch(1 0 0 / 0.2);\\n}\\n\\n\";","import { audioText, captionsText, qualityText, settingsText, speedText } from '@videojs/core/i18n/text/menu';\nimport { renderIcon } from '@videojs/icons/render';\nimport { createShadowStyle, createTemplate } from '@videojs/utils/dom';\nimport { renderText } from '../../i18n/render-text';\nimport { safeDefine } from '../safe-define';\nimport { SkinElement } from '../skin-element';\nimport styles from './skin.css?inline';\n\n// Register the player, container, and all UI custom elements.\nimport './ui';\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-default-skin media-default-skin--video\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <media-poster>\n <slot name=\"poster\"></slot>\n </media-poster>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <media-error-dialog class=\"media-error\">\n <div class=\"media-error__dialog media-surface\">\n <div class=\"media-error__content\">\n <media-alert-dialog-title class=\"media-error__title\"></media-alert-dialog-title>\n <media-alert-dialog-description class=\"media-error__description\"></media-alert-dialog-description>\n </div>\n <div class=\"media-error__actions\">\n <media-alert-dialog-close class=\"media-button media-button--primary\"></media-alert-dialog-close>\n </div>\n </div>\n </media-error-dialog>\n\n <media-controls class=\"media-surface media-controls media-controls--root\">\n <media-tooltip-group>\n <div class=\"media-surface media-controls media-controls--primary\">\n <div class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-mute-button commandfor=\"video-volume-popover\" class=\"media-button media-button--subtle media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"video-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-surface media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time type=\"current\" class=\"media-time\"></media-time>\n <media-time-slider class=\"media-slider\">\n <media-time-slider-chapters class=\"media-slider__chapters\">\n <template>\n <div class=\"media-slider__chapter\">\n <media-slider-track class=\"media-slider__track media-slider__chapter-track\">\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n </div>\n </template>\n </media-time-slider-chapters>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n\n <media-slider-preview overflow=\"visible\" class=\"media-slider__preview\">\n <div class=\"media-surface media-thumbnail media-slider__thumbnail\">\n <media-slider-thumbnail class=\"media-thumbnail__image\"></media-slider-thumbnail>\n ${renderIcon('spinner', { class: 'media-thumbnail__spinner media-icon' })}\n </div>\n <div class=\"media-slider__value\">\n <media-time-slider-chapter-title class=\"media-slider__chapter-title\"></media-time-slider-chapter-title>\n <media-slider-value type=\"pointer\" class=\"media-time\"></media-slider-value>\n </div>\n </media-slider-preview>\n </media-time-slider>\n <media-time toggle type=\"remaining\" class=\"media-time\"></media-time>\n </div>\n\n <div class=\"media-button-group\">\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <button id=\"settings-trigger\" commandfor=\"settings-menu\" aria-labelledby=\"settings-label\" class=\"media-button media-button--subtle media-button--icon media-button--settings\">\n ${renderIcon('gear', { class: 'media-icon media-icon--settings' })}\n ${renderText(settingsText, { id: 'settings-label', class: 'media-sr-only' })}\n </button>\n <media-menu id=\"settings-menu\" side=\"top\" align=\"center\" class=\"media-surface media-popover media-menu media-menu--settings\">\n <div class=\"media-menu__group\">\n <media-menu-item commandfor=\"settings-quality-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('switches', { class: 'media-icon' })}\n ${renderText(qualityText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n <media-menu-item commandfor=\"settings-audio-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('speech', { class: 'media-icon' })}\n ${renderText(audioText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n <media-menu-item commandfor=\"settings-speed-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('speed', { class: 'media-icon' })}\n ${renderText(speedText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n <media-menu-item commandfor=\"settings-captions-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('captions-off', { class: 'media-icon' })}\n ${renderText(captionsText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n </div>\n\n <media-menu id=\"settings-quality-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(qualityText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-quality-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span>\n <span data-part=\"label\"></span>\n <sup data-part=\"tier\" class=\"media-menu__tier\"></sup>\n </span>\n <span data-part=\"badge\" class=\"media-badge\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-quality-radio-group>\n </media-menu>\n\n <media-menu id=\"settings-audio-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(audioText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-audio-track-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span data-part=\"label\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-audio-track-radio-group>\n </media-menu>\n\n <media-menu id=\"settings-speed-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(speedText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-playback-rate-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span data-part=\"label\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-playback-rate-radio-group>\n </media-menu>\n\n <media-menu id=\"settings-captions-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(captionsText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-captions-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span data-part=\"label\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-captions-radio-group>\n </media-menu>\n </media-menu>\n <media-tooltip id=\"settings-tooltip\" trigger=\"settings-trigger\" side=\"top\" class=\"media-surface media-tooltip\">\n ${renderText(settingsText)}\n </media-tooltip>\n </div>\n </div>\n\n <div class=\"media-surface media-controls media-controls--secondary\">\n <div class=\"media-button-group\">\n <media-cast-button commandfor=\"cast-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--cast\">\n ${renderIcon('cast-enter', { class: 'media-icon media-icon--cast-enter' })}\n ${renderIcon('cast-exit', { class: 'media-icon media-icon--cast-exit' })}\n </media-cast-button>\n <media-tooltip id=\"cast-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-airplay-button commandfor=\"airplay-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--airplay\">\n ${renderIcon('airplay-enter', { class: 'media-icon media-icon--airplay-enter' })}\n ${renderIcon('airplay-exit', { class: 'media-icon media-icon--airplay-exit' })}\n </media-airplay-button>\n <media-tooltip id=\"airplay-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--pip\">\n ${renderIcon('pip-enter', { class: 'media-icon media-icon--pip-enter' })}\n ${renderIcon('pip-exit', { class: 'media-icon media-icon--pip-exit' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n </div>\n </div>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n\n <!-- Hotkeys -->\n <media-hotkey keys=\"Space\" action=\"togglePaused\"></media-hotkey>\n <media-hotkey keys=\"k\" action=\"togglePaused\"></media-hotkey>\n <media-hotkey keys=\"m\" action=\"toggleMuted\"></media-hotkey>\n <media-hotkey keys=\"f\" action=\"toggleFullscreen\"></media-hotkey>\n <media-hotkey keys=\"c\" action=\"toggleSubtitles\"></media-hotkey>\n <media-hotkey keys=\"i\" action=\"togglePictureInPicture\"></media-hotkey>\n <media-hotkey keys=\"ArrowRight\" action=\"seekStep\" value=\"5\"></media-hotkey>\n <media-hotkey keys=\"ArrowLeft\" action=\"seekStep\" value=\"-5\"></media-hotkey>\n <media-hotkey keys=\"l\" action=\"seekStep\" value=\"10\"></media-hotkey>\n <media-hotkey keys=\"j\" action=\"seekStep\" value=\"-10\"></media-hotkey>\n <media-hotkey keys=\"ArrowUp\" action=\"volumeStep\" value=\"0.05\"></media-hotkey>\n <media-hotkey keys=\"ArrowDown\" action=\"volumeStep\" value=\"-0.05\"></media-hotkey>\n <media-hotkey keys=\"0-9\" action=\"seekToPercent\"></media-hotkey>\n <media-hotkey keys=\"Home\" action=\"seekToPercent\" value=\"0\"></media-hotkey>\n <media-hotkey keys=\"End\" action=\"seekToPercent\" value=\"100\"></media-hotkey>\n <media-hotkey keys=\">\" action=\"speedUp\"></media-hotkey>\n <media-hotkey keys=\"<\" action=\"speedDown\"></media-hotkey>\n\n <!-- Gestures -->\n <media-gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\"></media-gesture>\n <media-gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\"></media-gesture>\n <media-gesture type=\"doubletap\" action=\"seekStep\" value=\"-10\" region=\"left\"></media-gesture>\n <media-gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\"></media-gesture>\n <media-gesture type=\"doubletap\" action=\"seekStep\" value=\"10\" region=\"right\"></media-gesture>\n\n <!-- Input Indicators -->\n <media-status-announcer class=\"media-sr-only\"></media-status-announcer>\n <div class=\"media-input-indicator-overlay\">\n <media-volume-indicator hidden class=\"media-surface media-volume-indicator\">\n <media-volume-indicator-fill class=\"media-volume-indicator__content\">\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n <media-volume-indicator-value class=\"media-volume-indicator__value\"></media-volume-indicator-value>\n </media-volume-indicator-fill>\n </media-volume-indicator>\n <media-status-indicator\n hidden\n actions=\"toggleSubtitles toggleFullscreen togglePictureInPicture\"\n class=\"media-surface media-status-indicator media-status-indicator--state\"\n >\n <div class=\"media-status-indicator__content\">\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n ${renderIcon('pip-enter', { class: 'media-icon media-icon--pip-enter' })}\n ${renderIcon('pip-exit', { class: 'media-icon media-icon--pip-exit' })}\n <media-status-indicator-value class=\"media-status-indicator__value\"></media-status-indicator-value>\n </div>\n </media-status-indicator>\n <media-seek-indicator hidden class=\"media-seek-indicator\">\n ${renderIcon('chevron', { class: 'media-icon media-icon--seek' })}\n <media-seek-indicator-value class=\"media-seek-indicator__value\"></media-seek-indicator-value>\n </media-seek-indicator>\n <media-status-indicator hidden actions=\"togglePaused\" class=\"media-status-indicator media-status-indicator--playback\">\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-status-indicator>\n </div>\n </media-container>\n `;\n}\n\nexport class VideoSkinElement extends SkinElement {\n static readonly tagName = 'video-skin';\n static styles = createShadowStyle(styles);\n static template = createTemplate(getTemplateHTML());\n}\n\nsafeDefine(VideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoSkinElement.tagName]: VideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,mBAAe;;;;ACWf,SAAS,kBAAkB;CACzB,OAAgB;;;;;;;;;;;UAWR,WAAW,WAAW,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;kBAoBvC,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;kBACnE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;kBAC7D,WAAW,SAAS,EAAE,OAAO,+BAA+B,CAAC,EAAE;;;;;;;;kBAQ/D,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;kBACzE,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;kBACzE,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA+BvE,WAAW,WAAW,EAAE,OAAO,sCAAsC,CAAC,EAAE;;;;;;;;;;;;;kBAa5E,WAAW,gBAAgB,EAAE,OAAO,sCAAsC,CAAC,EAAE;kBAC7E,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;;;;;;;;kBAQ3E,WAAW,QAAQ,EAAE,OAAO,kCAAkC,CAAC,EAAE;kBACjE,WAAW,cAAc;EAAE,IAAI;EAAkB,OAAO;CAAgB,CAAC,EAAE;;;;;wBAKrE,WAAW,YAAY,EAAE,OAAO,aAAa,CAAC,EAAE;wBAChD,WAAW,WAAW,EAAE;;;0BAGtB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;wBAIrE,WAAW,UAAU,EAAE,OAAO,aAAa,CAAC,EAAE;wBAC9C,WAAW,SAAS,EAAE;;;0BAGpB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;wBAIrE,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;wBAC7C,WAAW,SAAS,EAAE;;;0BAGpB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;wBAIrE,WAAW,gBAAgB,EAAE,OAAO,aAAa,CAAC,EAAE;wBACpD,WAAW,YAAY,EAAE;;;0BAGvB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;;;;sBAOvE,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,WAAW,EAAE;;;;;;;;;;;;4BAYlB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;sBASnD,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,SAAS,EAAE;;;;;;;;4BAQhB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;sBASnD,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,SAAS,EAAE;;;;;;;;4BAQhB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;sBASnD,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,YAAY,EAAE;;;;;;;;4BAQnB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;kBAQvD,WAAW,YAAY,EAAE;;;;;;;;kBAQzB,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;kBACzE,WAAW,aAAa,EAAE,OAAO,mCAAmC,CAAC,EAAE;;;;;;;;kBAQvE,WAAW,iBAAiB,EAAE,OAAO,uCAAuC,CAAC,EAAE;kBAC/E,WAAW,gBAAgB,EAAE,OAAO,sCAAsC,CAAC,EAAE;;;;;;;;kBAQ7E,WAAW,aAAa,EAAE,OAAO,mCAAmC,CAAC,EAAE;kBACvE,WAAW,YAAY,EAAE,OAAO,kCAAkC,CAAC,EAAE;;;;;;;;kBAQrE,WAAW,oBAAoB,EAAE,OAAO,0CAA0C,CAAC,EAAE;kBACrF,WAAW,mBAAmB,EAAE,OAAO,yCAAyC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4CvF,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;cAC3E,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;cACzE,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;;;;;;;;;;cAUzE,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;cAC3E,WAAW,gBAAgB,EAAE,OAAO,sCAAsC,CAAC,EAAE;cAC7E,WAAW,oBAAoB,EAAE,OAAO,0CAA0C,CAAC,EAAE;cACrF,WAAW,mBAAmB,EAAE,OAAO,yCAAyC,CAAC,EAAE;cACnF,WAAW,aAAa,EAAE,OAAO,mCAAmC,CAAC,EAAE;cACvE,WAAW,YAAY,EAAE,OAAO,kCAAkC,CAAC,EAAE;;;;;YAKvE,WAAW,WAAW,EAAE,OAAO,8BAA8B,CAAC,EAAE;;;;YAIhE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;YAC7D,WAAW,SAAS,EAAE,OAAO,+BAA+B,CAAC,EAAE;;;;;AAK3E;AAEA,IAAa,mBAAb,cAAsC,YAAY;;iBACtB;;;gBACV,kBAAkBA,YAAM;;;kBACtB,eAAe,gBAAgB,CAAC;;AACpD;AAEA,WAAW,gBAAgB"}
|
|
1
|
+
{"version":3,"file":"video.dev.js","names":["styles"],"sources":["../inline-css:src/define/video/skin.js","../src/define/video/skin.ts"],"sourcesContent":["export default \"/* -------------------------------------------------------------------------- */\\n/* Global styles for the host document, outside of the Shadow DOM */\\n/* -------------------------------------------------------------------------- */\\n\\nvideo-player,\\nlive-video-player,\\nmedia-i18n {\\n display: contents;\\n}\\n\\n/*\\nRequired to override any default video and image styles (such as\\nTailwind's CSS reset) and ensure they fill the container as expected.\\n*/\\nvideo-player video,\\nvideo-player [slot=\\\"poster\\\"],\\nlive-video-player video,\\nlive-video-player [slot=\\\"poster\\\"] {\\n display: block;\\n width: 100%;\\n height: 100%;\\n}\\n\\nvideo-player video::-webkit-media-text-track-container,\\nlive-video-player video::-webkit-media-text-track-container {\\n z-index: 1;\\n font-family: inherit;\\n scale: 0.98;\\n translate: 0 var(--media-caption-track-y, 0);\\n transition: translate var(--media-caption-track-duration, 0) ease-out;\\n transition-delay: var(--media-caption-track-delay, 0);\\n}\\n\\n/* -------------------------------------------------------------------------- */\\n/* Shared styles for all HTML skins */\\n/* -------------------------------------------------------------------------- */\\n\\nmedia-tooltip-group {\\n display: contents;\\n}\\n\\n:host {\\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\\n display: grid;\\n width: 100%;\\n}\\n\\nmedia-container {\\n min-width: 0;\\n min-height: 0;\\n}\\n\\n/* Hide the volume popover when its slider is unavailable. */\\n.media-popover--volume:has(media-volume-slider[data-hidden]) {\\n display: none;\\n}\\n\\n.media-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n white-space: nowrap;\\n border: 0;\\n clip: rect(0, 0, 0, 0);\\n}\\n\\n\\n.media-default-skin *,\\n.media-default-skin *::before,\\n.media-default-skin *::after {\\n box-sizing: border-box;\\n}\\n.media-default-skin img,\\n.media-default-skin video,\\n.media-default-skin svg {\\n display: block;\\n max-width: 100%;\\n}\\n.media-default-skin button {\\n font: inherit;\\n}\\n.media-default-skin [hidden][hidden] {\\n /* Keep authored templates hidden even when component classes set display. */\\n display: none;\\n}\\n@media (prefers-reduced-motion: no-preference) {\\n .media-default-skin {\\n interpolate-size: allow-keywords;\\n }\\n}\\n\\n.media-default-skin {\\n /* Colors */\\n --accent-color: var(--media-accent-color, var(--default-accent-color));\\n --accent-contrast-color: contrast-color(var(--accent-color));\\n --accent-background-color: var(\\n --media-accent-color,\\n oklch(from var(--default-accent-color) l c h / calc(alpha * 0.1))\\n );\\n --accent-text-color: var(--media-accent-text-color, contrast-color(var(--media-accent-color, oklch(0 0 0))));\\n --shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));\\n --shadow-subtle-current-color: oklch(from var(--shadow-current-color) l c h / calc(alpha * 0.4));\\n --scrollbar-thumb-color: oklch(from currentColor l c h / 0.3);\\n\\n /* Scaling - used in video fullscreen to scale the UI. */\\n --scale: 1;\\n /* Fixed scaling unit to avoid inheriting the document's root font size. This must be a CSS <length>. */\\n --scale-unit: var(--media-scale-unit, 16px);\\n --size: calc(var(--scale-unit) * var(--scale));\\n /* Create a Tailwind-like spacing unit where 1 equals 4px with default scaling. */\\n --spacing: calc(var(--size) / 4);\\n\\n /* Font sizes */\\n --font-size-medium: calc(0.9375 * var(--size)); /* 15px */\\n --font-size-base: calc(0.8125 * var(--size)); /* 13px */\\n --font-size-small: calc(0.6875 * var(--size)); /* 11px */\\n --font-size-tiny: calc(0.5625 * var(--size)); /* 9px */\\n --media-icon-size: calc(1.125 * var(--size)); /* 18px */\\n\\n /* Radii */\\n --container-border-radius: var(--media-border-radius, 1.75rem);\\n\\n position: relative;\\n display: block;\\n width: 100%;\\n height: 100%;\\n container: media-root / inline-size;\\n font-family:\\n Inter Variable,\\n Inter,\\n ui-sans-serif,\\n system-ui,\\n sans-serif;\\n font-size: var(--font-size-base);\\n -webkit-font-smoothing: auto;\\n -moz-osx-font-smoothing: auto;\\n line-height: 1.5;\\n letter-spacing: normal;\\n outline: 2px solid transparent;\\n outline-offset: -4px;\\n scrollbar-color: var(--scrollbar-thumb-color) transparent;\\n scrollbar-width: thin;\\n border-radius: var(--container-border-radius, 1.75rem);\\n isolation: isolate;\\n transition-timing-function: ease-out;\\n transition-duration: 100ms;\\n transition-property: outline-offset, outline-color;\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n background: var(--scrollbar-thumb-color);\\n border-radius: 9999px;\\n }\\n\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --scrollbar-thumb-color: oklch(from currentColor l c h / 0.8);\\n scrollbar-width: auto;\\n }\\n}\\n\\n.media-default-skin .media-surface {\\n background-color: var(--surface-background-color);\\n box-shadow:\\n 0 0 0 1px var(--surface-outer-border-color),\\n 0 1px 3px 0 var(--surface-shadow-color),\\n 0 1px 2px -1px var(--surface-shadow-color);\\n backdrop-filter: var(--surface-backdrop-filter);\\n\\n /* Inner border ring */\\n &::after {\\n position: absolute;\\n inset: 0;\\n z-index: 10;\\n pointer-events: none;\\n content: \\\"\\\";\\n border-radius: inherit;\\n box-shadow:\\n inset 0 1px 0 0 var(--surface-inner-border-color),\\n inset 0 0 0 1px oklch(from var(--surface-inner-border-color) l c h / calc(alpha * 0.5));\\n }\\n}\\n\\n.media-default-skin ::slotted(video),\\n.media-default-skin video {\\n display: block;\\n width: 100%;\\n height: 100%;\\n object-fit: var(--media-object-fit, contain);\\n object-position: var(--media-object-position, center);\\n}\\n.media-default-skin ::slotted(video) {\\n border-radius: var(--container-border-radius);\\n}\\n.media-default-skin video {\\n border-radius: inherit;\\n}\\n\\n.media-default-skin:fullscreen ::slotted(video),\\n.media-default-skin:fullscreen video {\\n object-fit: contain;\\n}\\n\\n.media-default-skin .media-overlay {\\n position: absolute;\\n inset: 0;\\n pointer-events: none;\\n background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3) 25%, oklch(0 0 0 / 0));\\n border-radius: inherit;\\n opacity: 0;\\n backdrop-filter: blur(0) saturate(1);\\n transition-timing-function: ease-out;\\n transition-duration: var(--controls-transition-duration);\\n transition-property: opacity, backdrop-filter;\\n}\\n\\n.media-default-skin .media-error ~ .media-overlay {\\n transition-delay: var(--error-dialog-transition-delay);\\n transition-duration: var(--error-dialog-transition-duration);\\n}\\n\\n.media-default-skin .media-controls[data-visible] ~ .media-overlay,\\n.media-default-skin .media-error[data-open] ~ .media-overlay {\\n opacity: 1;\\n}\\n\\n.media-default-skin .media-buffering-indicator[data-visible] ~ .media-overlay {\\n background: oklch(0 0 0 / 0.35);\\n opacity: 1;\\n backdrop-filter: blur(8px);\\n}\\n\\n.media-default-skin .media-error[data-open] ~ .media-overlay {\\n backdrop-filter: blur(16px) saturate(1.5);\\n}\\n\\n.media-default-skin .media-buffering-indicator {\\n position: absolute;\\n inset: 0;\\n z-index: 10;\\n display: none;\\n place-content: center;\\n color: oklch(1 0 0);\\n pointer-events: none;\\n\\n &:not([data-visible]) {\\n --media-spinner-animation: none;\\n }\\n\\n &[data-visible] {\\n display: grid;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n --media-spinner-animation: none;\\n }\\n}\\n\\n.media-default-skin .media-error {\\n outline: none;\\n}\\n\\n.media-default-skin .media-error:not([data-open]) {\\n display: none;\\n}\\n\\n.media-default-skin .media-error__title {\\n font-weight: 600;\\n line-height: 1.25;\\n}\\n\\n.media-default-skin .media-error__description {\\n overflow-wrap: anywhere;\\n opacity: 0.7;\\n}\\n\\n.media-default-skin .media-error__actions {\\n display: flex;\\n gap: calc(var(--spacing) * 2);\\n\\n > * {\\n flex: 1;\\n }\\n}\\n\\n.media-default-skin .media-error[data-open] ~ .media-controls * {\\n visibility: hidden;\\n}\\n\\n.media-default-skin .media-controls {\\n --media-popover-side-offset: calc(var(--spacing) * (var(--base-side-offset, 2) + 1));\\n --media-tooltip-side-offset: var(--media-popover-side-offset);\\n --media-popover-boundary-offset: calc(var(--spacing) * var(--base-boundary-offset, 2));\\n --media-tooltip-boundary-offset: var(--media-popover-boundary-offset);\\n\\n display: flex;\\n align-items: center;\\n padding: calc(var(--spacing) * 1);\\n container: media-controls / inline-size;\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n border-radius: calc(Infinity * 1px);\\n}\\n\\n.media-default-skin .media-time-controls {\\n display: flex;\\n flex: 1;\\n gap: calc(var(--spacing) * 2.5);\\n align-items: center;\\n container: media-time-controls / inline-size;\\n\\n > .media-time:last-child {\\n @container media-time-controls (width < 16rem) {\\n display: none;\\n }\\n }\\n}\\n\\n.media-default-skin .media-time {\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.media-default-skin .media-time[role=\\\"button\\\"] {\\n cursor: pointer;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n border-radius: calc(var(--spacing) * 1);\\n transition-timing-function: ease-out;\\n transition-duration: 100ms;\\n transition-property: outline-color, outline-offset;\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n}\\n\\n/* Base button */\\n.media-default-skin .media-button {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n height: calc(var(--spacing) * 9);\\n min-height: 0;\\n padding: calc(var(--spacing) * 2) calc(var(--spacing) * 4);\\n text-align: center;\\n touch-action: manipulation;\\n cursor: pointer;\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n border: none;\\n border-radius: calc(Infinity * 1px);\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: background-color, color, outline-offset, scale;\\n /* Fix weird jumping when clicking on the buttons in Safari. */\\n will-change: scale;\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &:active:not([aria-disabled=\\\"true\\\"]) {\\n scale: 0.97;\\n }\\n\\n &[aria-disabled=\\\"true\\\"] {\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n}\\n\\n/* Primary button variant */\\n.media-default-skin .media-button--primary {\\n font-weight: 500;\\n color: var(--accent-contrast-color);\\n text-shadow: none;\\n background: var(--accent-color);\\n}\\n\\n/* Subtle button variant */\\n.media-default-skin .media-button--subtle {\\n color: inherit;\\n text-shadow: inherit;\\n background: transparent;\\n\\n &:not([aria-disabled=\\\"true\\\"]) {\\n &:hover,\\n &:focus-visible,\\n &[aria-expanded=\\\"true\\\"] {\\n color: var(--accent-text-color);\\n text-decoration: none;\\n background-color: var(--accent-background-color);\\n }\\n }\\n}\\n\\n/* Icon button variant */\\n.media-default-skin .media-button--icon {\\n display: grid;\\n aspect-ratio: 1;\\n padding: 0;\\n\\n &:active:not([aria-disabled=\\\"true\\\"]) {\\n scale: 0.97;\\n }\\n\\n .media-icon__container {\\n display: grid;\\n }\\n\\n .media-icon {\\n grid-area: 1 / 1;\\n filter: drop-shadow(0 1px 0 var(--shadow-current-color));\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, scale;\\n }\\n}\\n\\n/* Seek button */\\n.media-default-skin .media-button--seek {\\n .media-icon__label {\\n position: absolute;\\n right: -1px;\\n bottom: -3px;\\n font-size: 0.715em; /* 10px */\\n font-weight: 500;\\n font-variant-numeric: tabular-nums;\\n letter-spacing: -0.05em;\\n }\\n\\n &:has(.media-icon--flipped) .media-icon__label {\\n right: unset;\\n left: -1px;\\n }\\n}\\n\\n/* Playback rate button */\\n.media-default-skin .media-button--playback-rate {\\n padding: 0;\\n font-variant-numeric: tabular-nums;\\n\\n &::after {\\n width: 4ch;\\n content: attr(data-rate) \\\"\\\\00D7\\\";\\n }\\n\\n &[data-inline-rate-label]::after {\\n content: none;\\n }\\n}\\n\\n/* Settings button */\\n.media-default-skin .media-button--settings {\\n .media-icon--settings {\\n transition: transform 150ms ease-in-out;\\n\\n @media (prefers-reduced-motion: reduce) {\\n transition-duration: 0ms;\\n }\\n }\\n\\n &[aria-expanded=\\\"true\\\"] .media-icon--settings {\\n transform: rotate(90deg);\\n }\\n}\\n\\n/* Live button — wide pill button with a status dot (gray → red at the live\\n edge) rendered via ::before, and \\\"LIVE\\\" text rendered as the button's own\\n text content. */\\n.media-default-skin .media-button--live {\\n display: inline-flex;\\n gap: calc(var(--spacing) * 1.5);\\n align-items: center;\\n width: auto;\\n aspect-ratio: auto;\\n padding: calc(var(--spacing) * 2) calc(var(--spacing) * 3);\\n font-size: var(--font-size-small);\\n font-weight: 600;\\n line-height: 1;\\n text-transform: uppercase;\\n letter-spacing: 0.05em;\\n\\n &::before {\\n display: inline-block;\\n flex-shrink: 0;\\n width: calc(var(--spacing) * 2);\\n height: calc(var(--spacing) * 2);\\n content: \\\"\\\";\\n background-color: oklch(from currentColor l c h / 0.4);\\n border-radius: 50%;\\n transition: background-color 150ms ease-out;\\n }\\n\\n &[data-live-edge]::before {\\n background-color: oklch(0.65 0.22 27);\\n }\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .media-default-skin .media-button {\\n scale: 1;\\n transition-property: background-color, color, outline-offset;\\n will-change: auto;\\n }\\n}\\n\\n.media-default-skin .media-button-group {\\n display: flex;\\n gap: 1px;\\n align-items: center;\\n}\\n\\n.media-default-skin .media-badge {\\n padding: calc(var(--spacing) * 0.5) calc(var(--spacing) * 1.5);\\n font-size: var(--font-size-small);\\n font-weight: 500;\\n line-height: 1;\\n color: oklch(from currentColor l c h / 0.85);\\n white-space: nowrap;\\n background-color: oklch(from currentColor l c h / 0.1);\\n border-radius: calc(Infinity * 1px);\\n}\\n\\n.media-default-skin .media-icon__container {\\n position: relative;\\n}\\n\\n.media-default-skin .media-icon {\\n flex-shrink: 0;\\n width: var(--media-icon-size);\\n height: var(--media-icon-size);\\n}\\n.media-default-skin .media-icon--flipped {\\n scale: -1 1;\\n}\\n\\n.media-default-skin media-poster,\\n.media-default-skin > img {\\n position: absolute;\\n inset: 0;\\n width: 100%;\\n height: 100%;\\n pointer-events: none;\\n transition: opacity 0.25s;\\n}\\n.media-default-skin media-poster:not([data-visible]),\\n.media-default-skin > img:not([data-visible]),\\n.media-default-skin > img[data-visible]:not([data-loaded]) {\\n opacity: 0;\\n}\\n.media-default-skin media-poster ::slotted(img),\\n.media-default-skin media-poster img {\\n position: absolute;\\n inset: 0;\\n width: 100%;\\n height: 100%;\\n object-fit: var(--media-object-fit, contain);\\n object-position: var(--media-object-position, center);\\n border-radius: var(--container-border-radius);\\n}\\n.media-default-skin > img {\\n object-fit: var(--media-object-fit, contain);\\n object-position: var(--media-object-position, center);\\n border-radius: inherit;\\n}\\n\\n/* Blurred placeholder: HTML path targets media-poster::before, React path targets the skin container::before */\\n.media-default-skin media-poster::before,\\n.media-default-skin::before {\\n position: absolute;\\n inset: 0;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-image: var(--media-poster-placeholder, none);\\n background-repeat: no-repeat;\\n background-position: var(--media-object-position, center);\\n background-size: var(--media-object-fit, contain);\\n filter: blur(var(--media-poster-placeholder-blur, 20px));\\n}\\n\\n/* React path: hidden by default, transitions in while poster loads */\\n.media-default-skin::before {\\n opacity: 0;\\n transition: opacity 0.25s;\\n}\\n/* Show placeholder while the poster is visible but not yet loaded */\\n.media-default-skin:has(img[data-visible]:not([data-loaded]))::before {\\n opacity: 1;\\n}\\n\\n.media-default-skin:fullscreen media-poster ::slotted(img),\\n.media-default-skin:fullscreen media-poster img,\\n.media-default-skin:fullscreen > img {\\n object-fit: contain;\\n}\\n\\n.media-default-skin .media-thumbnail {\\n position: relative;\\n pointer-events: none;\\n background-color: oklch(0 0 0 / 0.9);\\n border-radius: calc(var(--spacing) * 3);\\n\\n .media-thumbnail__image {\\n position: relative;\\n display: block;\\n max-width: var(--thumbnail-max-width);\\n max-height: var(--thumbnail-max-height);\\n overflow: clip;\\n border-radius: inherit;\\n\\n &::after {\\n position: absolute;\\n inset: 0;\\n content: \\\"\\\";\\n background-image: linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.1), oklch(0 0 0 / 0));\\n border-radius: inherit;\\n }\\n }\\n\\n .media-thumbnail__spinner {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n opacity: 0;\\n translate: -50% -50%;\\n }\\n\\n .media-thumbnail__image,\\n .media-thumbnail__spinner {\\n transition: opacity 150ms ease-out;\\n }\\n\\n &:not(:has(.media-thumbnail__image[data-loading])) {\\n .media-thumbnail__spinner {\\n --media-spinner-animation: none;\\n }\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n --media-spinner-animation: none;\\n }\\n\\n &:has(.media-thumbnail__image[data-loading]) {\\n width: var(--thumbnail-max-width);\\n max-width: 100%;\\n aspect-ratio: 16 / 9;\\n overflow: hidden;\\n\\n .media-thumbnail__image {\\n opacity: 0;\\n }\\n .media-thumbnail__spinner {\\n opacity: 1;\\n }\\n }\\n}\\n\\n.media-default-skin .media-slider {\\n --track-size: calc(var(--spacing) * 1);\\n --track-highlighted-size: calc(var(--spacing) * 1.75);\\n --track-border-radius: 99px;\\n --thumb-size: calc(var(--spacing) * 3);\\n --chapter-gap: calc(var(--spacing) * 1);\\n --chapter-inset-start: calc(var(--chapter-gap) / 2);\\n --chapter-inset-end: calc(var(--chapter-gap) / 2);\\n\\n position: relative;\\n display: flex;\\n flex: 1;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n outline: none;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: var(--slider-width, 100%);\\n min-width: calc(var(--spacing) * 20);\\n height: var(--slider-height, calc(var(--spacing) * 8));\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n width: var(--slider-width, calc(var(--spacing) * 8));\\n height: var(--slider-height, calc(var(--spacing) * 20));\\n }\\n\\n /* Track */\\n .media-slider__track {\\n position: relative;\\n overflow: hidden;\\n user-select: none;\\n background-color: oklch(from currentColor l c h / 0.2);\\n border-radius: var(--track-border-radius);\\n isolation: isolate;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: 100%;\\n height: var(--track-size);\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n width: var(--track-size);\\n height: 100%;\\n }\\n }\\n\\n /* Shared track fills */\\n .media-slider__buffer,\\n .media-slider__fill {\\n position: absolute;\\n pointer-events: none;\\n border-radius: inherit;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n inset-block: 0;\\n left: 0;\\n width: 100%;\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n inset-inline: 0;\\n bottom: 0;\\n height: 100%;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n transition: clip-path 200ms ease-out;\\n }\\n }\\n &[data-dragging],\\n &[data-seeking] {\\n .media-slider__fill,\\n .media-slider__buffer {\\n transition-duration: 0ms;\\n }\\n }\\n\\n /* Buffer */\\n .media-slider__buffer {\\n background-color: oklch(from currentColor l c h / 0.2);\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-buffer)) 0 0 round var(--track-border-radius));\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-buffer)) 0 0 0 round var(--track-border-radius));\\n }\\n }\\n\\n /* Fill */\\n .media-slider__fill {\\n background-color: var(--accent-color);\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-fill)) 0 0 round var(--track-border-radius));\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-fill)) 0 0 0 round var(--track-border-radius));\\n }\\n }\\n &[data-dragging] {\\n .media-slider__fill[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-pointer)) 0 0 round var(--track-border-radius));\\n }\\n .media-slider__fill[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-pointer)) 0 0 0 round var(--track-border-radius));\\n }\\n }\\n\\n /* Chapters */\\n .media-slider__chapters {\\n position: relative;\\n display: flex;\\n flex: 1;\\n align-items: center;\\n min-width: 0;\\n min-height: 0;\\n border-radius: inherit;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: 100%;\\n height: 100%;\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n flex-direction: column-reverse;\\n width: 100%;\\n height: 100%;\\n }\\n }\\n\\n .media-slider__chapter {\\n position: absolute;\\n inset: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 0;\\n min-height: 0;\\n border-radius: inherit;\\n\\n &:first-child {\\n --chapter-inset-start: 0px;\\n }\\n &:last-child {\\n --chapter-inset-end: 0px;\\n }\\n\\n .media-slider__chapter-track {\\n border-radius: inherit;\\n\\n @media (prefers-reduced-motion: no-preference) {\\n transition: 200ms ease-out;\\n transition-property: height, width;\\n }\\n }\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n clip-path: inset(0 calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start));\\n\\n .media-slider__chapter-track {\\n height: var(--track-size);\\n clip-path: inset(\\n 0 calc(100% - var(--media-slider-chapter-end) + var(--chapter-inset-end)) 0\\n calc(var(--media-slider-chapter-start) + var(--chapter-inset-start)) round var(--track-border-radius)\\n );\\n }\\n\\n &[data-highlighted] .media-slider__chapter-track {\\n height: var(--track-highlighted-size);\\n }\\n }\\n\\n &[data-orientation=\\\"vertical\\\"] {\\n clip-path: inset(calc(100% - var(--media-slider-chapter-end)) 0 var(--media-slider-chapter-start) 0);\\n\\n .media-slider__chapter-track {\\n width: var(--track-size);\\n clip-path: inset(\\n calc(100% - var(--media-slider-chapter-end) + var(--chapter-inset-end)) 0\\n calc(var(--media-slider-chapter-start) + var(--chapter-inset-start)) 0 round var(--track-border-radius)\\n );\\n }\\n\\n &[data-highlighted] .media-slider__chapter-track {\\n width: var(--track-highlighted-size);\\n }\\n }\\n }\\n\\n /* Thumb */\\n .media-slider__thumb {\\n position: absolute;\\n z-index: 10;\\n width: var(--thumb-size);\\n height: var(--thumb-size);\\n user-select: none;\\n outline: 4px solid transparent;\\n outline-offset: -4px;\\n background-color: currentColor;\\n border-radius: calc(Infinity * 1px);\\n box-shadow:\\n 0 0 0 1px var(--shadow-current-color, oklch(0 0 0 / 0.1)),\\n 0 1px 3px 0 oklch(0 0 0 / 0.35),\\n 0 1px 2px -1px oklch(0 0 0 / 0.35);\\n opacity: 0;\\n scale: 0.8;\\n translate: -50% -50%;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n top: 50%;\\n left: var(--media-slider-fill);\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n top: calc(100% - var(--media-slider-fill));\\n left: 50%;\\n }\\n\\n &:focus-visible {\\n outline-color: oklch(from currentColor l c h / 0.15);\\n outline-offset: 0;\\n opacity: 1;\\n }\\n\\n &::after {\\n position: absolute;\\n inset: -4px;\\n content: \\\"\\\";\\n border-radius: inherit;\\n box-shadow: 0 0 0 2px currentColor;\\n }\\n\\n &:not(:focus-visible)::after {\\n opacity: 0;\\n scale: 0.5;\\n }\\n\\n &.media-slider__thumb--persistent {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n @media (hover: hover) and (pointer: fine) {\\n &:hover {\\n outline-color: oklch(from currentColor l c h / 0.15);\\n outline-offset: 0;\\n }\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, outline-offset, left, top, scale;\\n\\n &::after {\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, scale;\\n }\\n }\\n }\\n\\n @media (hover: hover) and (pointer: fine) {\\n &:hover .media-slider__thumb {\\n opacity: 1;\\n scale: 1;\\n }\\n }\\n\\n &[data-dragging] .media-slider__thumb {\\n opacity: 1;\\n scale: 0.9;\\n\\n @media (prefers-reduced-motion: no-preference) {\\n transition-property: opacity, outline-offset, scale;\\n }\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n left: var(--media-slider-pointer);\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n top: calc(100% - var(--media-slider-pointer));\\n }\\n }\\n\\n /* Preview */\\n .media-slider__preview {\\n --max-size-factor: 36;\\n --max-size: min(calc(var(--spacing) * var(--max-size-factor)), 100cqi);\\n\\n min-width: var(--max-size);\\n height: calc(var(--spacing) * 1);\\n\\n @container media-root (width > 42rem) {\\n --max-size-factor: 48;\\n }\\n\\n .media-slider__thumbnail,\\n .media-slider__value {\\n position: absolute;\\n left: 50%;\\n max-width: var(--max-size);\\n opacity: 0;\\n filter: blur(8px);\\n transform-origin: bottom;\\n scale: 0.8;\\n translate: -50% calc(var(--spacing) * 2);\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n }\\n\\n .media-slider__thumbnail {\\n --thumbnail-max-width: var(--max-size);\\n --thumbnail-max-height: var(--max-size);\\n bottom: calc(100% + (var(--spacing) * 9));\\n }\\n\\n .media-slider__value {\\n bottom: calc(100% + (var(--spacing) * 10.5));\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n }\\n\\n .media-slider__chapter-title {\\n min-width: 0;\\n max-width: var(--max-size);\\n padding-inline: calc(var(--spacing) * 6);\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n\\n &:empty {\\n display: none;\\n }\\n }\\n\\n &::before {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n z-index: 1;\\n width: calc(var(--spacing) * 1);\\n height: calc(var(--spacing) * 1);\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: currentColor;\\n border-radius: 100%;\\n box-shadow:\\n 0 0 0 1px var(--shadow-current-color, oklch(0 0 0 / 0.15)),\\n 0 1px 2px 0 oklch(0 0 0 / 0.35);\\n opacity: 0;\\n scale: 0.5;\\n translate: -50% -50%;\\n transition-timing-function: ease-out;\\n transition-duration: 200ms;\\n transition-property: opacity, scale;\\n }\\n }\\n\\n &:is([data-pointing], :has(:focus-visible))\\n .media-slider__preview\\n :is(.media-slider__value, .media-slider__thumbnail),\\n .media-slider__preview[data-pointing]:not([data-dragging])::before {\\n opacity: 1;\\n filter: blur(0);\\n scale: 1;\\n }\\n}\\n\\n.media-default-skin {\\n --popup-transition:\\n opacity var(--popup-transition-timing-function) var(--popup-transition-duration),\\n filter var(--popup-transition-timing-function) var(--popup-transition-duration),\\n transform var(--popup-transition-timing-function) var(--popup-transition-duration),\\n scale var(--popup-transition-timing-function) var(--popup-transition-duration);\\n}\\n\\n.media-default-skin .media-popover,\\n.media-default-skin .media-tooltip {\\n --popup-translate-distance: calc(0.5 * var(--scale-unit));\\n margin: 0;\\n overflow: visible;\\n color: inherit;\\n border: 0;\\n transition: var(--popup-transition);\\n\\n &[data-starting-style],\\n &[data-ending-style] {\\n opacity: 0;\\n filter: blur(4px);\\n /* We have to use transform here for translate as the translate property is used for positioning by core. */\\n transform: translate(var(--popup-translate-x-distance, 0), var(--popup-translate-y-distance, 0));\\n scale: 0.95;\\n }\\n\\n &[data-ending-style] {\\n transform: none;\\n /* Speed up the exit transition. */\\n transition-duration: max(0ms, calc(var(--popup-transition-duration) - 50ms));\\n }\\n\\n &[data-side=\\\"top\\\"] {\\n --popup-translate-y-distance: var(--popup-translate-distance);\\n transform-origin: bottom;\\n }\\n &[data-side=\\\"bottom\\\"] {\\n --popup-translate-y-distance: calc(var(--popup-translate-distance) * -1);\\n transform-origin: top;\\n }\\n &[data-side=\\\"left\\\"] {\\n --popup-translate-x-distance: var(--popup-translate-distance);\\n transform-origin: right;\\n }\\n &[data-side=\\\"right\\\"] {\\n --popup-translate-x-distance: calc(var(--popup-translate-distance) * -1);\\n transform-origin: left;\\n }\\n\\n /* Safe area between trigger and popup */\\n &::before {\\n position: absolute;\\n pointer-events: inherit;\\n content: \\\"\\\";\\n }\\n\\n &[data-side=\\\"top\\\"]::before,\\n &[data-side=\\\"bottom\\\"]::before {\\n inset-inline: 0;\\n width: 100%;\\n }\\n &[data-side=\\\"top\\\"]::before {\\n top: 100%;\\n }\\n &[data-side=\\\"bottom\\\"]::before {\\n bottom: 100%;\\n }\\n\\n &[data-side=\\\"left\\\"]::before,\\n &[data-side=\\\"right\\\"]::before {\\n inset-block: 0;\\n height: 100%;\\n }\\n &[data-side=\\\"left\\\"]::before {\\n left: 100%;\\n }\\n &[data-side=\\\"right\\\"]::before {\\n right: 100%;\\n }\\n}\\n\\n.media-default-skin .media-popover {\\n &[data-side=\\\"top\\\"]::before,\\n &[data-side=\\\"bottom\\\"]::before {\\n height: var(--media-popover-side-offset);\\n }\\n &[data-side=\\\"left\\\"]::before,\\n &[data-side=\\\"right\\\"]::before {\\n width: var(--media-popover-side-offset);\\n }\\n}\\n.media-default-skin .media-popover--volume {\\n padding: calc(var(--spacing) * 3) 0;\\n border-radius: calc(Infinity * 1px);\\n\\n &:has(media-volume-slider[data-hidden]) {\\n display: none;\\n }\\n}\\n\\n.media-default-skin .media-tooltip {\\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2.5);\\n font-size: var(--font-size-base);\\n white-space: nowrap;\\n border-radius: calc(Infinity * 1px);\\n\\n /* `display: flex` must not apply while closed — it overrides UA `[popover]` hiding. */\\n &[data-open] {\\n display: flex;\\n column-gap: calc(var(--spacing) * 1);\\n align-items: center;\\n }\\n\\n &[data-side=\\\"top\\\"]::before,\\n &[data-side=\\\"bottom\\\"]::before {\\n height: var(--media-tooltip-side-offset);\\n }\\n &[data-side=\\\"left\\\"]::before,\\n &[data-side=\\\"right\\\"]::before {\\n width: var(--media-tooltip-side-offset);\\n }\\n\\n .media-tooltip__kbd {\\n min-width: 1.5em;\\n padding: 0.1em;\\n font-family: inherit;\\n font-size: var(--font-size-small);\\n font-weight: 600;\\n line-height: 1.25;\\n text-align: center;\\n background-color: oklch(from currentColor l c h / 0.3);\\n border-radius: calc(var(--spacing) * 1);\\n }\\n}\\n\\n.media-default-skin .media-menu {\\n --menu-transition-duration: 250ms;\\n --menu-max-height: calc(var(--spacing) * 56);\\n --menu-padding: calc(var(--spacing) * 1);\\n --menu-border-radius: calc(var(--spacing) * 3);\\n --menu-item-border-radius: calc(var(--menu-border-radius) - var(--menu-padding));\\n box-sizing: border-box;\\n min-width: max-content;\\n max-width: var(--media-popover-available-width, none);\\n max-height: min(var(--media-popover-available-height, var(--menu-max-height)), var(--menu-max-height));\\n padding: var(--menu-padding);\\n overflow: auto;\\n overscroll-behavior: none;\\n border-radius: var(--menu-border-radius);\\n\\n @media (prefers-reduced-motion: reduce) {\\n --menu-transition-duration: 0ms;\\n }\\n\\n & > .media-menu__panel {\\n position: absolute;\\n inset-inline: 0;\\n top: 0;\\n z-index: 10;\\n max-height: inherit;\\n padding: var(--menu-padding);\\n overflow: auto;\\n overscroll-behavior: none;\\n outline: none;\\n translate: 0 0;\\n transition-timing-function: ease-out;\\n transition-duration: var(--menu-transition-duration);\\n transition-property: translate, filter;\\n will-change: translate, filter;\\n\\n &:where([data-starting-style], [data-ending-style]) {\\n overflow: hidden;\\n pointer-events: none;\\n filter: blur(8px);\\n translate: 100% 0;\\n }\\n }\\n\\n .media-menu__separator {\\n margin-block: calc(var(--spacing) * 1);\\n border-bottom: 1px solid oklch(0 0 0 / 0.1);\\n box-shadow: 0 1px 0 0 oklch(1 0 0 / 0.075);\\n }\\n\\n .media-menu__group {\\n anchor-scope: --menu-item-highlight-anchor;\\n display: flex;\\n flex-direction: column;\\n gap: calc(var(--spacing) * 0.5);\\n\\n @supports (top: anchor(top)) {\\n &::before {\\n position: absolute;\\n position-anchor: --menu-item-highlight-anchor;\\n inset: anchor(inside);\\n /* Firefox treats the moving highlight as a content shift and re-scrolls\\n the menu while hovering. Exclude it from scroll anchoring. */\\n overflow-anchor: none;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: var(--accent-background-color);\\n border-radius: var(--menu-item-border-radius);\\n transition: inset 100ms ease-in-out;\\n }\\n\\n &:has([data-highlighted=\\\"\\\"])::before {\\n transition-duration: 0ms;\\n }\\n }\\n }\\n\\n .media-menu__item,\\n .media-menu__back {\\n position: relative;\\n display: flex;\\n gap: calc(var(--spacing) * 1.5);\\n align-items: center;\\n padding: calc(var(--spacing) * 1.5) calc(var(--spacing) * 2);\\n text-align: left;\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n cursor: pointer;\\n user-select: none;\\n outline: 2px solid transparent;\\n outline-offset: -2px;\\n border-radius: var(--menu-item-border-radius);\\n transition: background-color, color;\\n transition-timing-function: ease-in-out;\\n transition-duration: 100ms;\\n\\n .media-icon {\\n flex-shrink: 0;\\n color: oklch(from currentColor l c h / 0.65);\\n filter: drop-shadow(0 1px 0 var(--shadow-current-color));\\n }\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &:hover,\\n &[data-highlighted] {\\n color: var(--accent-text-color);\\n background-color: var(--accent-background-color);\\n\\n .media-icon {\\n color: inherit;\\n }\\n }\\n\\n @supports (top: anchor(top)) {\\n transition-duration: 50ms;\\n\\n &:hover,\\n &[data-highlighted] {\\n transition-duration: 200ms;\\n }\\n }\\n }\\n\\n .media-menu__indicator {\\n flex-shrink: 0;\\n margin-right: calc(var(--spacing) * -1);\\n margin-left: auto;\\n opacity: 0;\\n\\n .media-icon {\\n filter: drop-shadow(0 1px 0 var(--shadow-current-color));\\n }\\n }\\n\\n .media-menu__item {\\n justify-content: space-between;\\n font-variant-numeric: tabular-nums;\\n color: inherit;\\n\\n &[aria-disabled=\\\"true\\\"] {\\n pointer-events: none;\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n\\n &[aria-checked=\\\"true\\\"] .media-menu__indicator {\\n opacity: 1;\\n }\\n\\n &[data-availability=\\\"unavailable\\\"],\\n &[data-availability=\\\"unsupported\\\"] {\\n display: none;\\n }\\n\\n &[data-highlighted] {\\n @supports (top: anchor(top)) {\\n anchor-name: --menu-item-highlight-anchor;\\n background-color: transparent;\\n }\\n }\\n }\\n\\n .media-menu__tier {\\n padding-top: 1px;\\n padding-left: calc(var(--spacing) * 0.5);\\n font-size: var(--font-size-tiny);\\n font-weight: 600;\\n line-height: 1;\\n color: oklch(from currentColor l c h / 0.7);\\n }\\n\\n .media-menu__back {\\n width: 100%;\\n margin-bottom: calc(var(--spacing) * 0.5);\\n }\\n\\n .media-menu__hint {\\n display: inline-flex;\\n gap: calc(var(--spacing) * 1);\\n align-items: center;\\n min-width: 0;\\n padding-left: calc(var(--spacing) * 2);\\n margin-left: auto;\\n color: oklch(from currentColor l c h / 0.65);\\n }\\n\\n .media-menu__hint-label {\\n max-width: calc(var(--spacing) * 24);\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n\\n .media-menu__chevron {\\n width: calc(var(--spacing) * 3.5);\\n height: calc(var(--spacing) * 3.5);\\n }\\n\\n /* Settings menu */\\n &.media-menu--settings {\\n width: var(--media-menu-width);\\n min-width: calc(var(--spacing) * 48);\\n height: var(--media-menu-height);\\n overflow: hidden;\\n /* Only the menu size changes between panels. */\\n transition:\\n var(--popup-transition),\\n width var(--popup-transition-timing-function) var(--menu-transition-duration),\\n height var(--popup-transition-timing-function) var(--menu-transition-duration);\\n\\n & > :not([data-submenu]) {\\n translate: 0 0;\\n transition:\\n translate var(--menu-transition-duration) ease-out,\\n filter var(--menu-transition-duration) ease-out;\\n will-change: translate, filter;\\n }\\n\\n &[data-submenu-expanded=\\\"true\\\"] > :not([data-submenu]) {\\n filter: blur(8px);\\n translate: -100% 0;\\n }\\n\\n /* WebKit can restart the covered-content transition while the\\n anchor-positioned highlight remains active. */\\n &[data-submenu-expanded] > :not([data-submenu])::before {\\n display: none;\\n }\\n\\n /* Don't transition size on open/close. */\\n &[data-starting-style],\\n &[data-ending-style] {\\n transition: var(--popup-transition);\\n }\\n }\\n}\\n\\n.media-default-skin {\\n --media-caption-track-duration: var(--controls-transition-duration);\\n --media-caption-track-delay: 25ms;\\n --media-caption-track-y: calc(var(--spacing) * -2);\\n\\n &:has(.media-controls[data-visible]) {\\n --media-caption-track-y: calc(var(--spacing) * -14);\\n }\\n}\\n\\n.media-default-skin video::-webkit-media-text-track-container {\\n z-index: 1;\\n font-family: inherit;\\n scale: 0.98;\\n translate: 0 var(--media-caption-track-y);\\n transition: translate var(--media-caption-track-duration) ease-out;\\n transition-delay: var(--media-caption-track-delay);\\n}\\n\\n.media-default-skin .media-input-indicator-overlay {\\n position: absolute;\\n inset: 0;\\n display: grid;\\n grid-template-columns: 1fr 1fr 1fr;\\n align-items: center;\\n justify-items: center;\\n color: oklch(1 0 0);\\n pointer-events: none;\\n}\\n\\n.media-default-skin {\\n .media-volume-indicator,\\n .media-status-indicator--state {\\n --surface-background-color: oklch(0 0 0 / 0.25);\\n position: absolute;\\n top: calc(var(--spacing) * 3);\\n font-weight: 500;\\n color: inherit;\\n pointer-events: none;\\n border-radius: calc(Infinity * 1px);\\n transform-origin: top center;\\n transition-timing-function: ease-out;\\n transition-duration: 100ms;\\n\\n .media-volume-indicator__content,\\n .media-status-indicator__content {\\n display: flex;\\n gap: calc(var(--spacing) * 2);\\n align-items: center;\\n justify-content: space-between;\\n width: 100%;\\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2.5);\\n\\n * {\\n mix-blend-mode: difference;\\n }\\n }\\n\\n .media-icon {\\n display: none;\\n flex-shrink: 0;\\n }\\n\\n .media-volume-indicator__value,\\n .media-status-indicator__value {\\n margin-left: auto;\\n }\\n\\n @media (pointer: coarse) {\\n transition-property: scale, translate, opacity;\\n will-change: scale, translate, opacity;\\n }\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n transition-property: scale, translate, filter, opacity;\\n will-change: scale, translate, filter, opacity;\\n }\\n\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --surface-background-color: oklch(0 0 0);\\n }\\n\\n &[data-starting-style],\\n &[data-ending-style] {\\n opacity: 0;\\n transition-timing-function: ease-in;\\n transition-duration: 250ms;\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n filter: blur(8px);\\n scale: 0.9;\\n }\\n }\\n\\n &[data-ending-style] {\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 -25%;\\n }\\n }\\n }\\n\\n .media-seek-indicator,\\n .media-status-indicator--playback {\\n display: grid;\\n grid-row: 1;\\n grid-column: 2;\\n place-content: center;\\n padding: calc(var(--spacing) * 4);\\n text-align: center;\\n }\\n}\\n\\n.media-default-skin .media-volume-indicator {\\n width: min(80%, calc(var(--spacing) * 48));\\n transform: translateX(0);\\n\\n .media-volume-indicator__content {\\n background-image: linear-gradient(currentColor, currentColor);\\n background-repeat: no-repeat;\\n background-position: left;\\n background-size: var(--media-volume-fill, 0%) 100%;\\n border-radius: inherit;\\n transition: background-size 200ms linear;\\n }\\n\\n &[data-level=\\\"high\\\"] .media-icon--volume-high,\\n &[data-level=\\\"low\\\"] .media-icon--volume-low,\\n &[data-level=\\\"off\\\"] .media-icon--volume-off {\\n display: block;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n &[data-min]:not([data-starting-style], [data-ending-style]),\\n &[data-max]:not([data-starting-style], [data-ending-style]) {\\n transform: translateX(0.25px);\\n transition: transform 300ms linear(0, -24 20%, 16 40%, -8 60%, 4 80%, 1);\\n }\\n }\\n}\\n\\n.media-default-skin .media-status-indicator--state {\\n &[data-status=\\\"captions-on\\\"] .media-icon--captions-on,\\n &[data-status=\\\"captions-off\\\"] .media-icon--captions-off,\\n &[data-status=\\\"fullscreen\\\"] .media-icon--fullscreen-enter,\\n &[data-status=\\\"exit-fullscreen\\\"] .media-icon--fullscreen-exit,\\n &[data-status=\\\"pip\\\"] .media-icon--pip-enter,\\n &[data-status=\\\"exit-pip\\\"] .media-icon--pip-exit {\\n display: block;\\n }\\n}\\n\\n.media-default-skin .media-status-indicator--playback {\\n background: oklch(0 0 0 / 0.35);\\n border-radius: 100%;\\n backdrop-filter: blur(8px);\\n transition-timing-function: ease-out;\\n transition-duration: 200ms;\\n transition-property: opacity, scale;\\n\\n .media-icon {\\n grid-area: 1 / 1;\\n width: calc(var(--media-icon-size) * 1.5);\\n height: calc(var(--media-icon-size) * 1.5);\\n opacity: 0;\\n scale: 0;\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: opacity, scale;\\n\\n &.media-icon--play {\\n translate: 1px 0;\\n }\\n }\\n\\n &[data-status=\\\"pause\\\"] .media-icon--pause,\\n &[data-status=\\\"play\\\"] .media-icon--play {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n &[data-starting-style],\\n &[data-ending-style] {\\n opacity: 0;\\n scale: 0.85;\\n }\\n\\n &[data-ending-style] {\\n transition-timing-function: ease-in;\\n transition-duration: 100ms;\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n transition-duration: 50ms;\\n transition-property: opacity;\\n\\n &[data-starting-style],\\n &[data-ending-style],\\n .media-icon {\\n scale: 1;\\n }\\n\\n .media-icon {\\n transition-duration: 50ms;\\n transition-property: opacity;\\n }\\n }\\n}\\n\\n.media-default-skin .media-seek-indicator {\\n gap: calc(var(--spacing) * 1);\\n\\n .media-seek-indicator__value {\\n font-variant-numeric: tabular-nums;\\n }\\n\\n @container media-root (width > 24rem) {\\n padding: calc(var(--spacing) * 6);\\n }\\n\\n &[data-direction=\\\"backward\\\"] {\\n grid-column: 1;\\n justify-self: left;\\n }\\n\\n &[data-direction=\\\"forward\\\"] {\\n grid-column: 3;\\n justify-self: right;\\n }\\n\\n .media-icon--seek {\\n display: block;\\n width: calc(var(--media-icon-size) * 1.5);\\n height: calc(var(--media-icon-size) * 1.5);\\n }\\n\\n &[data-direction=\\\"backward\\\"] .media-icon--seek {\\n scale: -1 1;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n .media-icon--seek {\\n transition-timing-function: ease-in-out;\\n transition-duration: 200ms;\\n transition-property: translate, opacity;\\n }\\n\\n &[data-starting-style] .media-icon--seek,\\n &[data-ending-style] .media-icon--seek {\\n opacity: 0;\\n }\\n\\n &[data-direction=\\\"forward\\\"][data-starting-style] .media-icon--seek {\\n translate: -60% 0;\\n }\\n\\n &[data-direction=\\\"backward\\\"][data-starting-style] .media-icon--seek {\\n translate: 60% 0;\\n }\\n }\\n}\\n\\n/* ==========================================================================\\n Icon State Visibility for Video Skins\\n\\n Data-attribute-driven visibility rules for multi-state icon buttons shared\\n by the HTML and React skins.\\n ========================================================================== */\\n\\n/* --- All icons hidden by default --- */\\n\\n.media-button--play .media-icon,\\n.media-button--mute .media-icon,\\n.media-button--fullscreen .media-icon,\\n.media-button--pip .media-icon,\\n.media-button--cast .media-icon,\\n.media-button--airplay .media-icon,\\n.media-button--captions .media-icon {\\n opacity: 0;\\n}\\n.media-button--play .media-icon {\\n scale: 0;\\n}\\n\\n/* --- Active icon per state --- */\\n\\n/* Play: ended → restart */\\n.media-button--play[data-ended] .media-icon--restart,\\n/* Play: paused or not yet started (not ended) → play */\\n.media-button--play:not([data-ended])[data-paused] .media-icon--play,\\n.media-button--play:not([data-ended]):not([data-started]) .media-icon--play,\\n/* Play: started and not paused/ended → pause */\\n.media-button--play[data-started]:not([data-paused]):not([data-ended]) .media-icon--pause,\\n/* Mute: muted → volume off */\\n.media-button--mute[data-muted] .media-icon--volume-off,\\n/* Mute: volume low (not muted) → volume low */\\n.media-button--mute:not([data-muted])[data-volume-level=\\\"low\\\"] .media-icon--volume-low,\\n/* Mute: volume high (not muted, not low) → volume high */\\n.media-button--mute:not([data-muted]):not([data-volume-level=\\\"low\\\"]) .media-icon--volume-high,\\n/* Fullscreen: not fullscreen → enter */\\n.media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter,\\n/* Fullscreen: fullscreen → exit */\\n.media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit,\\n/* Picture-in-Picture: not active → enter */\\n.media-button--pip:not([data-pip]) .media-icon--pip-enter,\\n/* Picture-in-Picture: active → exit */\\n.media-button--pip[data-pip] .media-icon--pip-exit,\\n/* Cast: not connected → enter */\\n.media-button--cast:not([data-cast-state=\\\"connected\\\"]) .media-icon--cast-enter,\\n/* Cast: connected → exit */\\n.media-button--cast[data-cast-state=\\\"connected\\\"] .media-icon--cast-exit,\\n/* AirPlay: not connected → enter */\\n.media-button--airplay:not([data-airplay-state=\\\"connected\\\"]) .media-icon--airplay-enter,\\n/* AirPlay: connected → exit */\\n.media-button--airplay[data-airplay-state=\\\"connected\\\"] .media-icon--airplay-exit,\\n/* Captions: not active → captions off */\\n.media-button--captions:not([data-active]) .media-icon--captions-off,\\n/* Captions: active → captions on */\\n.media-button--captions[data-active] .media-icon--captions-on {\\n opacity: 1;\\n scale: 1;\\n}\\n\\n/* --- Pause keyframe animations on inactive icons --- */\\n\\n/* The airplay-exit SVG defines its keyframes against CSS variables (mirroring\\n the spinner pattern). When the AirPlay session isn't active the SVG is\\n still in the DOM — just `display: none` — so its animations would keep\\n running. Set the variables to `none` to short-circuit the keyframes. */\\n.media-button--airplay:not([data-airplay-state=\\\"connected\\\"]) {\\n --media-icon-airplay-fill-animation: none;\\n --media-icon-airplay-triangle-animation: none;\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .media-button--airplay {\\n --media-icon--airplay__fill-animation: none;\\n --media-icon--airplay__triangle-animation: none;\\n }\\n}\\n\\n\\n/* Video-specific container styles */\\n\\n.media-default-skin--video {\\n --default-accent-color: oklch(1 0 0);\\n --border-color: light-dark(oklch(0 0 0 / 0.1), oklch(1 0 0 / 0.15));\\n --focus-ring-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n --media-video-border-radius: var(--container-border-radius);\\n\\n --surface-background-color: oklch(1 0 0 / 0.1);\\n --surface-inner-border-color: oklch(1 0 0 / 0.1);\\n --surface-outer-border-color: oklch(0 0 0 / 0.1);\\n --surface-shadow-color: oklch(0 0 0 / 0.15);\\n --surface-backdrop-filter: blur(16px) saturate(1.5);\\n\\n --controls-transition-duration: 100ms;\\n --controls-transition-timing-function: ease-out;\\n\\n --error-dialog-transition-duration: 350ms;\\n --error-dialog-transition-delay: 100ms;\\n --error-dialog-transition-timing-function: ease-out;\\n\\n --popup-transition-duration: 100ms;\\n --popup-transition-timing-function: ease-out;\\n\\n overflow: clip;\\n background: oklch(0 0 0);\\n\\n @media (prefers-reduced-motion: reduce) {\\n --error-dialog-transition-duration: 50ms;\\n --error-dialog-transition-delay: 0ms;\\n --popup-transition-duration: 0ms;\\n\\n .media-error__dialog {\\n scale: 1;\\n transition-property: opacity;\\n }\\n }\\n\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --surface-background-color: oklch(0 0 0);\\n --surface-inner-border-color: oklch(1 0 0 / 0.25);\\n --surface-outer-border-color: transparent;\\n }\\n\\n &:has(.media-controls--root:not([data-visible])) {\\n /* Slight delay to hide controls on non-touch devices after interaction */\\n @media (pointer: fine) {\\n --controls-transition-duration: 300ms;\\n }\\n @media (pointer: coarse) {\\n --controls-transition-duration: 150ms;\\n }\\n @media (prefers-reduced-motion: reduce) {\\n --controls-transition-duration: 50ms;\\n }\\n }\\n\\n /* Inner border ring */\\n &::after {\\n position: absolute;\\n inset: 0;\\n z-index: 10;\\n pointer-events: none;\\n content: \\\"\\\";\\n border-radius: inherit;\\n box-shadow: inset 0 0 0 1px var(--border-color);\\n }\\n\\n &:fullscreen {\\n --container-border-radius: 0;\\n\\n &::after {\\n display: none;\\n }\\n\\n @media (width >= 1280px) {\\n --scale: 1.25;\\n }\\n @media (width >= 1536px) {\\n --scale: 1.5;\\n }\\n @media (width >= 1920px) {\\n --scale: 1.75;\\n }\\n }\\n\\n * {\\n --focus-ring-color: oklch(1 0 0);\\n }\\n}\\n\\n/* Error Dialog */\\n\\n.media-default-skin--video .media-error {\\n position: absolute;\\n inset: 0;\\n z-index: 20;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.media-default-skin--video .media-error__dialog {\\n display: flex;\\n flex-direction: column;\\n gap: calc(var(--spacing) * 3);\\n width: 100%;\\n max-width: calc(var(--spacing) * 72);\\n padding: calc(var(--spacing) * 3);\\n color: oklch(1 0 0);\\n text-shadow: 0 1px 0 oklch(0 0 0 / 0.25);\\n border-radius: calc(var(--spacing) * 7);\\n transition-delay: var(--error-dialog-transition-delay);\\n transition-timing-function: var(--error-dialog-transition-timing-function);\\n transition-duration: var(--error-dialog-transition-duration);\\n transition-property: opacity, scale;\\n}\\n\\n.media-default-skin--video .media-error[data-starting-style] .media-error__dialog,\\n.media-default-skin--video .media-error[data-ending-style] .media-error__dialog {\\n opacity: 0;\\n scale: 0.95;\\n}\\n.media-default-skin--video .media-error[data-ending-style] .media-error__dialog {\\n transition-delay: 0ms;\\n}\\n\\n.media-default-skin--video .media-error__content {\\n display: flex;\\n flex-direction: column;\\n gap: calc(var(--spacing) * 2);\\n padding: calc(var(--spacing) * 2) calc(var(--spacing) * 2) calc(var(--spacing) * 1.5);\\n text-shadow: inherit;\\n}\\n\\n.media-default-skin--video .media-error__title {\\n font-size: var(--font-size-medium);\\n}\\n\\n/* Controls (hide/show behavior) */\\n\\n.media-default-skin--video .media-controls--root {\\n --inset-factor: 2;\\n --inset: calc(var(--spacing) * var(--inset-factor));\\n --base-boundary-offset: var(--inset-factor);\\n\\n z-index: 10;\\n display: contents;\\n color: oklch(1 0 0);\\n transition-timing-function: var(--controls-transition-timing-function);\\n /* Speed up the entry transition */\\n transition-duration: calc(var(--controls-transition-duration) / 2);\\n\\n .media-controls--primary,\\n .media-controls--secondary {\\n position: absolute;\\n }\\n /* Primary must be higher for the preview/thumbnail */\\n .media-controls--primary {\\n z-index: 20;\\n }\\n .media-controls--secondary {\\n z-index: 10;\\n }\\n\\n .media-controls--primary {\\n inset-inline: var(--inset);\\n bottom: var(--inset);\\n transform-origin: bottom;\\n }\\n\\n .media-controls--secondary {\\n top: var(--inset);\\n right: var(--inset);\\n container-type: normal;\\n transform-origin: top;\\n }\\n\\n .media-time-controls {\\n flex: 1;\\n padding-inline: calc(var(--spacing) * 2);\\n }\\n\\n @container media-root (width < 32rem) {\\n .media-controls--primary,\\n .media-controls--secondary {\\n transition-timing-function: inherit;\\n transition-duration: inherit;\\n\\n @media (pointer: fine) {\\n transition-property: filter, opacity, scale, translate;\\n will-change: filter, opacity, scale, translate;\\n }\\n\\n @media (pointer: coarse) {\\n transition-property: opacity, scale, translate;\\n will-change: opacity, scale, translate;\\n }\\n }\\n\\n &:after {\\n display: none;\\n }\\n\\n &:not([data-visible]) {\\n .media-controls--primary,\\n .media-controls--secondary {\\n pointer-events: none;\\n opacity: 0;\\n scale: 0.95;\\n transition-duration: var(--controls-transition-duration);\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n filter: blur(8px);\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n scale: 1;\\n }\\n }\\n\\n .media-controls--primary {\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 4px;\\n }\\n }\\n\\n .media-controls--secondary {\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 -4px;\\n }\\n }\\n }\\n\\n .media-button--captions {\\n display: none;\\n }\\n }\\n\\n @container media-root (width >= 32rem) {\\n position: absolute;\\n inset-inline: var(--inset);\\n bottom: var(--inset);\\n display: flex;\\n transform-origin: bottom;\\n\\n .media-controls--primary,\\n .media-controls--secondary {\\n display: contents;\\n\\n &::after {\\n display: none;\\n }\\n }\\n\\n &:not([data-visible]) {\\n pointer-events: none;\\n opacity: 0;\\n scale: 0.95;\\n transition-duration: var(--controls-transition-duration);\\n\\n @media (pointer: fine) and (prefers-reduced-motion: no-preference) {\\n filter: blur(8px);\\n }\\n\\n @media (prefers-reduced-motion: reduce) {\\n scale: 1;\\n }\\n\\n @media (prefers-reduced-motion: no-preference) {\\n translate: 0 4px;\\n }\\n }\\n\\n .media-time-controls {\\n padding-inline: calc(var(--spacing) * 3);\\n }\\n }\\n\\n @media (pointer: fine) {\\n transition-property: filter, opacity, scale, translate;\\n will-change: filter, opacity, scale, translate;\\n }\\n\\n @media (pointer: coarse) {\\n transition-property: opacity, scale, translate;\\n will-change: opacity, scale, translate;\\n }\\n\\n @container media-root (width > 42rem) {\\n --inset-factor: 3;\\n }\\n}\\n\\n.media-default-skin--video .media-error[data-open] ~ .media-controls {\\n display: none;\\n}\\n\\n/* Hide cursor when controls are hidden */\\n.media-default-skin--video:has(.media-controls--root:not([data-visible])) {\\n cursor: none;\\n}\\n\\n/* Sliders */\\n\\n.media-default-skin--video .media-slider__track {\\n background-color: oklch(1 0 0 / 0.2);\\n}\\n\\n\";","import { audioText, captionsText, qualityText, settingsText, speedText } from '@videojs/core/i18n/text/menu';\nimport { renderIcon } from '@videojs/icons/render';\nimport { createShadowStyle, createTemplate } from '@videojs/utils/dom';\nimport { renderText } from '../../i18n/render-text';\nimport { safeDefine } from '../safe-define';\nimport { SkinElement } from '../skin-element';\nimport styles from './skin.css?inline';\n\n// Register the player, container, and all UI custom elements.\nimport './ui';\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-default-skin media-default-skin--video\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <media-poster>\n <slot name=\"poster\">\n <img alt=\"\" decoding=\"async\">\n </slot>\n </media-poster>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <media-error-dialog class=\"media-error\">\n <div class=\"media-error__dialog media-surface\">\n <div class=\"media-error__content\">\n <media-alert-dialog-title class=\"media-error__title\"></media-alert-dialog-title>\n <media-alert-dialog-description class=\"media-error__description\"></media-alert-dialog-description>\n </div>\n <div class=\"media-error__actions\">\n <media-alert-dialog-close class=\"media-button media-button--primary\"></media-alert-dialog-close>\n </div>\n </div>\n </media-error-dialog>\n\n <media-controls class=\"media-surface media-controls media-controls--root\">\n <media-tooltip-group>\n <div class=\"media-surface media-controls media-controls--primary\">\n <div class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-mute-button commandfor=\"video-volume-popover\" class=\"media-button media-button--subtle media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"video-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-surface media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time type=\"current\" class=\"media-time\"></media-time>\n <media-time-slider class=\"media-slider\">\n <media-time-slider-chapters class=\"media-slider__chapters\">\n <template>\n <div class=\"media-slider__chapter\">\n <media-slider-track class=\"media-slider__track media-slider__chapter-track\">\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n </div>\n </template>\n </media-time-slider-chapters>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n\n <media-slider-preview overflow=\"visible\" class=\"media-slider__preview\">\n <div class=\"media-surface media-thumbnail media-slider__thumbnail\">\n <media-slider-thumbnail class=\"media-thumbnail__image\"></media-slider-thumbnail>\n ${renderIcon('spinner', { class: 'media-thumbnail__spinner media-icon' })}\n </div>\n <div class=\"media-slider__value\">\n <media-time-slider-chapter-title class=\"media-slider__chapter-title\"></media-time-slider-chapter-title>\n <media-slider-value type=\"pointer\" class=\"media-time\"></media-slider-value>\n </div>\n </media-slider-preview>\n </media-time-slider>\n <media-time toggle type=\"remaining\" class=\"media-time\"></media-time>\n </div>\n\n <div class=\"media-button-group\">\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <button id=\"settings-trigger\" commandfor=\"settings-menu\" aria-labelledby=\"settings-label\" class=\"media-button media-button--subtle media-button--icon media-button--settings\">\n ${renderIcon('gear', { class: 'media-icon media-icon--settings' })}\n ${renderText(settingsText, { id: 'settings-label', class: 'media-sr-only' })}\n </button>\n <media-menu id=\"settings-menu\" side=\"top\" align=\"center\" class=\"media-surface media-popover media-menu media-menu--settings\">\n <div class=\"media-menu__group\">\n <media-menu-item commandfor=\"settings-quality-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('switches', { class: 'media-icon' })}\n ${renderText(qualityText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n <media-menu-item commandfor=\"settings-audio-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('speech', { class: 'media-icon' })}\n ${renderText(audioText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n <media-menu-item commandfor=\"settings-speed-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('speed', { class: 'media-icon' })}\n ${renderText(speedText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n <media-menu-item commandfor=\"settings-captions-menu\" class=\"media-menu__item media-menu__item--submenu\">\n ${renderIcon('captions-off', { class: 'media-icon' })}\n ${renderText(captionsText)}\n <span class=\"media-menu__hint\">\n <span data-part=\"hint\" class=\"media-menu__hint-label\"></span>\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron' })}\n </span>\n </media-menu-item>\n </div>\n\n <media-menu id=\"settings-quality-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(qualityText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-quality-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span>\n <span data-part=\"label\"></span>\n <sup data-part=\"tier\" class=\"media-menu__tier\"></sup>\n </span>\n <span data-part=\"badge\" class=\"media-badge\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-quality-radio-group>\n </media-menu>\n\n <media-menu id=\"settings-audio-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(audioText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-audio-track-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span data-part=\"label\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-audio-track-radio-group>\n </media-menu>\n\n <media-menu id=\"settings-speed-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(speedText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-playback-rate-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span data-part=\"label\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-playback-rate-radio-group>\n </media-menu>\n\n <media-menu id=\"settings-captions-menu\" class=\"media-menu__panel\">\n <media-menu-item class=\"media-menu__back\">\n ${renderIcon('chevron', { class: 'media-icon media-menu__chevron media-icon--flipped' })}\n ${renderText(captionsText)}\n </media-menu-item>\n <div class=\"media-menu__separator\"></div>\n <media-captions-radio-group class=\"media-menu__group\">\n <template>\n <media-menu-radio-item class=\"media-menu__item\">\n <span data-part=\"label\"></span>\n <media-menu-item-indicator force-mount class=\"media-menu__indicator\">\n ${renderIcon('check', { class: 'media-icon' })}\n </media-menu-item-indicator>\n </media-menu-radio-item>\n </template>\n </media-captions-radio-group>\n </media-menu>\n </media-menu>\n <media-tooltip id=\"settings-tooltip\" trigger=\"settings-trigger\" side=\"top\" class=\"media-surface media-tooltip\">\n ${renderText(settingsText)}\n </media-tooltip>\n </div>\n </div>\n\n <div class=\"media-surface media-controls media-controls--secondary\">\n <div class=\"media-button-group\">\n <media-cast-button commandfor=\"cast-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--cast\">\n ${renderIcon('cast-enter', { class: 'media-icon media-icon--cast-enter' })}\n ${renderIcon('cast-exit', { class: 'media-icon media-icon--cast-exit' })}\n </media-cast-button>\n <media-tooltip id=\"cast-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-airplay-button commandfor=\"airplay-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--airplay\">\n ${renderIcon('airplay-enter', { class: 'media-icon media-icon--airplay-enter' })}\n ${renderIcon('airplay-exit', { class: 'media-icon media-icon--airplay-exit' })}\n </media-airplay-button>\n <media-tooltip id=\"airplay-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--pip\">\n ${renderIcon('pip-enter', { class: 'media-icon media-icon--pip-enter' })}\n ${renderIcon('pip-exit', { class: 'media-icon media-icon--pip-exit' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-surface media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n </div>\n </div>\n </media-tooltip-group>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n\n <!-- Hotkeys -->\n <media-hotkey keys=\"Space\" action=\"togglePaused\"></media-hotkey>\n <media-hotkey keys=\"k\" action=\"togglePaused\"></media-hotkey>\n <media-hotkey keys=\"m\" action=\"toggleMuted\"></media-hotkey>\n <media-hotkey keys=\"f\" action=\"toggleFullscreen\"></media-hotkey>\n <media-hotkey keys=\"c\" action=\"toggleSubtitles\"></media-hotkey>\n <media-hotkey keys=\"i\" action=\"togglePictureInPicture\"></media-hotkey>\n <media-hotkey keys=\"ArrowRight\" action=\"seekStep\" value=\"5\"></media-hotkey>\n <media-hotkey keys=\"ArrowLeft\" action=\"seekStep\" value=\"-5\"></media-hotkey>\n <media-hotkey keys=\"l\" action=\"seekStep\" value=\"10\"></media-hotkey>\n <media-hotkey keys=\"j\" action=\"seekStep\" value=\"-10\"></media-hotkey>\n <media-hotkey keys=\"ArrowUp\" action=\"volumeStep\" value=\"0.05\"></media-hotkey>\n <media-hotkey keys=\"ArrowDown\" action=\"volumeStep\" value=\"-0.05\"></media-hotkey>\n <media-hotkey keys=\"0-9\" action=\"seekToPercent\"></media-hotkey>\n <media-hotkey keys=\"Home\" action=\"seekToPercent\" value=\"0\"></media-hotkey>\n <media-hotkey keys=\"End\" action=\"seekToPercent\" value=\"100\"></media-hotkey>\n <media-hotkey keys=\">\" action=\"speedUp\"></media-hotkey>\n <media-hotkey keys=\"<\" action=\"speedDown\"></media-hotkey>\n\n <!-- Gestures -->\n <media-gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\"></media-gesture>\n <media-gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\"></media-gesture>\n <media-gesture type=\"doubletap\" action=\"seekStep\" value=\"-10\" region=\"left\"></media-gesture>\n <media-gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\"></media-gesture>\n <media-gesture type=\"doubletap\" action=\"seekStep\" value=\"10\" region=\"right\"></media-gesture>\n\n <!-- Input Indicators -->\n <media-status-announcer class=\"media-sr-only\"></media-status-announcer>\n <div class=\"media-input-indicator-overlay\">\n <media-volume-indicator hidden class=\"media-surface media-volume-indicator\">\n <media-volume-indicator-fill class=\"media-volume-indicator__content\">\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n <media-volume-indicator-value class=\"media-volume-indicator__value\"></media-volume-indicator-value>\n </media-volume-indicator-fill>\n </media-volume-indicator>\n <media-status-indicator\n hidden\n actions=\"toggleSubtitles toggleFullscreen togglePictureInPicture\"\n class=\"media-surface media-status-indicator media-status-indicator--state\"\n >\n <div class=\"media-status-indicator__content\">\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n ${renderIcon('pip-enter', { class: 'media-icon media-icon--pip-enter' })}\n ${renderIcon('pip-exit', { class: 'media-icon media-icon--pip-exit' })}\n <media-status-indicator-value class=\"media-status-indicator__value\"></media-status-indicator-value>\n </div>\n </media-status-indicator>\n <media-seek-indicator hidden class=\"media-seek-indicator\">\n ${renderIcon('chevron', { class: 'media-icon media-icon--seek' })}\n <media-seek-indicator-value class=\"media-seek-indicator__value\"></media-seek-indicator-value>\n </media-seek-indicator>\n <media-status-indicator hidden actions=\"togglePaused\" class=\"media-status-indicator media-status-indicator--playback\">\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-status-indicator>\n </div>\n </media-container>\n `;\n}\n\nexport class VideoSkinElement extends SkinElement {\n static readonly tagName = 'video-skin';\n static styles = createShadowStyle(styles);\n static template = createTemplate(getTemplateHTML());\n}\n\nsafeDefine(VideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoSkinElement.tagName]: VideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,mBAAe;;;;ACWf,SAAS,kBAAkB;CACzB,OAAgB;;;;;;;;;;;;;UAaR,WAAW,WAAW,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;kBAoBvC,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;kBACnE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;kBAC7D,WAAW,SAAS,EAAE,OAAO,+BAA+B,CAAC,EAAE;;;;;;;;kBAQ/D,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;kBACzE,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;kBACzE,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA+BvE,WAAW,WAAW,EAAE,OAAO,sCAAsC,CAAC,EAAE;;;;;;;;;;;;;kBAa5E,WAAW,gBAAgB,EAAE,OAAO,sCAAsC,CAAC,EAAE;kBAC7E,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;;;;;;;;kBAQ3E,WAAW,QAAQ,EAAE,OAAO,kCAAkC,CAAC,EAAE;kBACjE,WAAW,cAAc;EAAE,IAAI;EAAkB,OAAO;CAAgB,CAAC,EAAE;;;;;wBAKrE,WAAW,YAAY,EAAE,OAAO,aAAa,CAAC,EAAE;wBAChD,WAAW,WAAW,EAAE;;;0BAGtB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;wBAIrE,WAAW,UAAU,EAAE,OAAO,aAAa,CAAC,EAAE;wBAC9C,WAAW,SAAS,EAAE;;;0BAGpB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;wBAIrE,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;wBAC7C,WAAW,SAAS,EAAE;;;0BAGpB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;wBAIrE,WAAW,gBAAgB,EAAE,OAAO,aAAa,CAAC,EAAE;wBACpD,WAAW,YAAY,EAAE;;;0BAGvB,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;;;;;;;sBAOvE,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,WAAW,EAAE;;;;;;;;;;;;4BAYlB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;sBASnD,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,SAAS,EAAE;;;;;;;;4BAQhB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;sBASnD,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,SAAS,EAAE;;;;;;;;4BAQhB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;sBASnD,WAAW,WAAW,EAAE,OAAO,qDAAqD,CAAC,EAAE;sBACvF,WAAW,YAAY,EAAE;;;;;;;;4BAQnB,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;kBAQvD,WAAW,YAAY,EAAE;;;;;;;;kBAQzB,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;kBACzE,WAAW,aAAa,EAAE,OAAO,mCAAmC,CAAC,EAAE;;;;;;;;kBAQvE,WAAW,iBAAiB,EAAE,OAAO,uCAAuC,CAAC,EAAE;kBAC/E,WAAW,gBAAgB,EAAE,OAAO,sCAAsC,CAAC,EAAE;;;;;;;;kBAQ7E,WAAW,aAAa,EAAE,OAAO,mCAAmC,CAAC,EAAE;kBACvE,WAAW,YAAY,EAAE,OAAO,kCAAkC,CAAC,EAAE;;;;;;;;kBAQrE,WAAW,oBAAoB,EAAE,OAAO,0CAA0C,CAAC,EAAE;kBACrF,WAAW,mBAAmB,EAAE,OAAO,yCAAyC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4CvF,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;cAC3E,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;cACzE,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;;;;;;;;;;cAUzE,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;cAC3E,WAAW,gBAAgB,EAAE,OAAO,sCAAsC,CAAC,EAAE;cAC7E,WAAW,oBAAoB,EAAE,OAAO,0CAA0C,CAAC,EAAE;cACrF,WAAW,mBAAmB,EAAE,OAAO,yCAAyC,CAAC,EAAE;cACnF,WAAW,aAAa,EAAE,OAAO,mCAAmC,CAAC,EAAE;cACvE,WAAW,YAAY,EAAE,OAAO,kCAAkC,CAAC,EAAE;;;;;YAKvE,WAAW,WAAW,EAAE,OAAO,8BAA8B,CAAC,EAAE;;;;YAIhE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;YAC7D,WAAW,SAAS,EAAE,OAAO,+BAA+B,CAAC,EAAE;;;;;AAK3E;AAEA,IAAa,mBAAb,cAAsC,YAAY;;iBACtB;;;gBACV,kBAAkBA,YAAM;;;kBACtB,eAAe,gBAAgB,CAAC;;AACpD;AAEA,WAAW,gBAAgB"}
|