@videojs/html 10.0.0-beta.27 → 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.
Files changed (676) hide show
  1. package/cdn/{adapter-XTen-YVQ.js → adapter-CEnNWvii.js} +17 -4
  2. package/cdn/adapter-CEnNWvii.js.map +1 -0
  3. package/cdn/adapter-DaKW8NzI.js +2 -0
  4. package/cdn/adapter-DaKW8NzI.js.map +1 -0
  5. package/cdn/audio-headless.dev.js +1 -1
  6. package/cdn/audio-headless.js +1 -1
  7. package/cdn/audio-minimal-ui.dev.js +2 -2
  8. package/cdn/audio-minimal-ui.js +1 -1
  9. package/cdn/audio-minimal.dev.js +5 -5
  10. package/cdn/audio-minimal.dev.js.map +1 -1
  11. package/cdn/audio-minimal.js +1 -1
  12. package/cdn/audio-minimal.js.map +1 -1
  13. package/cdn/audio-ui.dev.js +2 -2
  14. package/cdn/audio-ui.js +1 -1
  15. package/cdn/audio.dev.js +5 -5
  16. package/cdn/audio.dev.js.map +1 -1
  17. package/cdn/audio.js +1 -1
  18. package/cdn/audio.js.map +1 -1
  19. package/cdn/background-video-WKumpp49.js +59 -0
  20. package/cdn/background-video-WKumpp49.js.map +1 -0
  21. package/cdn/background-video-YHY_3-lX.js +2 -0
  22. package/cdn/background-video-YHY_3-lX.js.map +1 -0
  23. package/cdn/background.dev.js +3 -56
  24. package/cdn/background.dev.js.map +1 -1
  25. package/cdn/background.js +1 -1
  26. package/cdn/background.js.map +1 -1
  27. package/cdn/bn-CcLIScl6.js +108 -0
  28. package/cdn/bn-CcLIScl6.js.map +1 -0
  29. package/cdn/bn-KcCmQhYd.js +2 -0
  30. package/cdn/bn-KcCmQhYd.js.map +1 -0
  31. package/cdn/compounds-C4YYLyL2.js +8 -0
  32. package/cdn/compounds-C4YYLyL2.js.map +1 -0
  33. package/cdn/{compounds-CCvdpvge.js → compounds-C73u1MeO.js} +68 -71
  34. package/cdn/compounds-C73u1MeO.js.map +1 -0
  35. package/cdn/container-element-Dd0ZCdhK.js +14 -0
  36. package/cdn/container-element-Dd0ZCdhK.js.map +1 -0
  37. package/cdn/container-element-HHK_KZOE.js +376 -0
  38. package/cdn/container-element-HHK_KZOE.js.map +1 -0
  39. package/cdn/create-player-BU8LDJDL.js +2 -0
  40. package/cdn/create-player-BU8LDJDL.js.map +1 -0
  41. package/cdn/{create-player-BHFyOnWi.js → create-player-Db1CIvlK.js} +76 -424
  42. package/cdn/create-player-Db1CIvlK.js.map +1 -0
  43. package/cdn/{default-BqQDVloS.js → default-A3aM0skz.js} +2 -2
  44. package/cdn/default-A3aM0skz.js.map +1 -0
  45. package/cdn/default-BDyhiTCm.js +2 -0
  46. package/cdn/default-BDyhiTCm.js.map +1 -0
  47. package/cdn/{default-I2LasfxC.js → default-C1_k1NeB.js} +2 -2
  48. package/cdn/default-C1_k1NeB.js.map +1 -0
  49. package/cdn/default-DHrMd4ie.js +2 -0
  50. package/cdn/default-DHrMd4ie.js.map +1 -0
  51. package/cdn/embed-params-D2e8u0d4.js +2 -0
  52. package/cdn/embed-params-D2e8u0d4.js.map +1 -0
  53. package/cdn/embed-params-W6T88S8x.js +39 -0
  54. package/cdn/embed-params-W6T88S8x.js.map +1 -0
  55. package/cdn/error-surface-BID4D3DW.js +59 -0
  56. package/cdn/error-surface-BID4D3DW.js.map +1 -0
  57. package/cdn/{select-tracks-nRPBa1NC.js → error-surface-D0bo71gD.js} +442 -48
  58. package/cdn/error-surface-D0bo71gD.js.map +1 -0
  59. package/cdn/{gesture-element-BNfMI8eh.js → gesture-element-CeRy1IVs.js} +2 -2
  60. package/cdn/gesture-element-CeRy1IVs.js.map +1 -0
  61. package/cdn/{gesture-element-CG-Sx_5t.js → gesture-element-DB67OYCE.js} +3 -3
  62. package/cdn/gesture-element-DB67OYCE.js.map +1 -0
  63. package/cdn/hls-js-CiE4wOrG.js +2 -0
  64. package/cdn/{hls-js-6lW7L4th.js.map → hls-js-CiE4wOrG.js.map} +1 -1
  65. package/cdn/hls-js-DBKRCbQm.js +2 -0
  66. package/cdn/{hls-js-DCQzjzB5.js.map → hls-js-DBKRCbQm.js.map} +1 -1
  67. package/cdn/{hls-js-g1zdcyvE.js → hls-js-DX2NGCAr.js} +3 -2
  68. package/cdn/{hls-js-g1zdcyvE.js.map → hls-js-DX2NGCAr.js.map} +1 -1
  69. package/cdn/{hls-js-Cwj8UBx9.js → hls-js-JeH8yvsP.js} +3 -2
  70. package/cdn/{hls-js-Cwj8UBx9.js.map → hls-js-JeH8yvsP.js.map} +1 -1
  71. package/cdn/i18n-CE4KxKuj.js +2 -0
  72. package/cdn/i18n-CE4KxKuj.js.map +1 -0
  73. package/cdn/i18n-CpBDXf6M.js +2 -0
  74. package/cdn/{i18n-DfKGl5Rh.js.map → i18n-CpBDXf6M.js.map} +1 -1
  75. package/cdn/{i18n-Mtlmj1AA.js → i18n-D0nhPa0m.js} +2 -2
  76. package/cdn/{i18n-Mtlmj1AA.js.map → i18n-D0nhPa0m.js.map} +1 -1
  77. package/cdn/i18n-DyF_NfCk.js +157 -0
  78. package/cdn/i18n-DyF_NfCk.js.map +1 -0
  79. package/cdn/i18n.dev.js +3 -152
  80. package/cdn/i18n.dev.js.map +1 -1
  81. package/cdn/i18n.js +1 -1
  82. package/cdn/i18n.js.map +1 -1
  83. package/cdn/live-button-element-Co8z2LkI.js +2 -0
  84. package/cdn/{live-button-element-CWfkQUoy.js.map → live-button-element-Co8z2LkI.js.map} +1 -1
  85. package/cdn/{live-button-element-B_y-ZJBy.js → live-button-element-zE-8uoR2.js} +5 -4
  86. package/cdn/live-button-element-zE-8uoR2.js.map +1 -0
  87. package/cdn/live-video-minimal.dev.js +12 -10
  88. package/cdn/live-video-minimal.dev.js.map +1 -1
  89. package/cdn/live-video-minimal.js +1 -1
  90. package/cdn/live-video-minimal.js.map +1 -1
  91. package/cdn/live-video.dev.js +13 -11
  92. package/cdn/live-video.dev.js.map +1 -1
  93. package/cdn/live-video.js +1 -1
  94. package/cdn/live-video.js.map +1 -1
  95. package/cdn/locales/bn.dev.js +1 -1
  96. package/cdn/locales/bn.js +1 -1
  97. package/cdn/media/background-video.dev.d.ts +1 -0
  98. package/cdn/media/background-video.dev.js +3 -0
  99. package/cdn/media/background-video.js +1 -0
  100. package/cdn/media/cloudflare-video.dev.d.ts +1 -0
  101. package/cdn/media/cloudflare-video.dev.js +668 -0
  102. package/cdn/media/cloudflare-video.dev.js.map +1 -0
  103. package/cdn/media/cloudflare-video.js +2 -0
  104. package/cdn/media/cloudflare-video.js.map +1 -0
  105. package/cdn/media/container.dev.d.ts +1 -0
  106. package/cdn/media/container.dev.js +8 -0
  107. package/cdn/media/container.dev.js.map +1 -0
  108. package/cdn/media/container.js +2 -0
  109. package/cdn/media/container.js.map +1 -0
  110. package/cdn/media/dash-video.dev.js +2 -1
  111. package/cdn/media/dash-video.js +2 -2
  112. package/cdn/media/dash-video.js.map +1 -1
  113. package/cdn/media/google-cast.dev.js +2 -31
  114. package/cdn/media/google-cast.dev.js.map +1 -1
  115. package/cdn/media/google-cast.js +3 -3
  116. package/cdn/media/google-cast.js.map +1 -1
  117. package/cdn/media/hls-audio.dev.js +2 -1
  118. package/cdn/media/hls-audio.js +1 -1
  119. package/cdn/media/hls-audio.js.map +1 -1
  120. package/cdn/media/hls-background-video.dev.js +2 -1
  121. package/cdn/media/hls-background-video.js +1 -1
  122. package/cdn/media/hls-background-video.js.map +1 -1
  123. package/cdn/media/hls-video.dev.js +2 -1
  124. package/cdn/media/hls-video.js +1 -1
  125. package/cdn/media/hls-video.js.map +1 -1
  126. package/cdn/media/hlsjs-video.dev.js +2 -1
  127. package/cdn/media/hlsjs-video.js +1 -1
  128. package/cdn/media/hlsjs-video.js.map +1 -1
  129. package/cdn/media/mux-audio/hls-js.dev.js +3 -1
  130. package/cdn/media/mux-audio/hls-js.js +1 -1
  131. package/cdn/media/mux-audio/spf.dev.js +3 -2
  132. package/cdn/media/mux-audio/spf.js +1 -1
  133. package/cdn/media/mux-audio/spf.js.map +1 -1
  134. package/cdn/media/mux-audio.dev.js +3 -1
  135. package/cdn/media/mux-audio.js +1 -1
  136. package/cdn/media/mux-background-video.dev.js +2 -1
  137. package/cdn/media/mux-background-video.js +1 -1
  138. package/cdn/media/mux-background-video.js.map +1 -1
  139. package/cdn/media/mux-data.dev.js +2 -1
  140. package/cdn/media/mux-data.dev.js.map +1 -1
  141. package/cdn/media/mux-data.js +2 -2
  142. package/cdn/media/mux-data.js.map +1 -1
  143. package/cdn/media/mux-video/hls-js.dev.js +3 -1
  144. package/cdn/media/mux-video/hls-js.js +1 -1
  145. package/cdn/media/mux-video/spf.dev.js +3 -2
  146. package/cdn/media/mux-video/spf.js +1 -1
  147. package/cdn/media/mux-video/spf.js.map +1 -1
  148. package/cdn/media/mux-video.dev.js +3 -1
  149. package/cdn/media/mux-video.js +1 -1
  150. package/cdn/media/native-hls-video.dev.js +1 -0
  151. package/cdn/media/native-hls-video.js +1 -1
  152. package/cdn/media/native-hls-video.js.map +1 -1
  153. package/cdn/media/spotify-audio.dev.d.ts +1 -0
  154. package/cdn/media/spotify-audio.dev.js +605 -0
  155. package/cdn/media/spotify-audio.dev.js.map +1 -0
  156. package/cdn/media/spotify-audio.js +2 -0
  157. package/cdn/media/spotify-audio.js.map +1 -0
  158. package/cdn/media/tiktok-video.dev.d.ts +1 -0
  159. package/cdn/media/tiktok-video.dev.js +636 -0
  160. package/cdn/media/tiktok-video.dev.js.map +1 -0
  161. package/cdn/media/tiktok-video.js +2 -0
  162. package/cdn/media/tiktok-video.js.map +1 -0
  163. package/cdn/media/twitch-video.dev.d.ts +1 -0
  164. package/cdn/media/twitch-video.dev.js +627 -0
  165. package/cdn/media/twitch-video.dev.js.map +1 -0
  166. package/cdn/media/twitch-video.js +2 -0
  167. package/cdn/media/twitch-video.js.map +1 -0
  168. package/cdn/media/vimeo-video.dev.d.ts +1 -0
  169. package/cdn/media/vimeo-video.dev.js +3011 -0
  170. package/cdn/media/vimeo-video.dev.js.map +1 -0
  171. package/cdn/media/vimeo-video.js +16 -0
  172. package/cdn/media/vimeo-video.js.map +1 -0
  173. package/cdn/media/youtube-video.dev.d.ts +1 -0
  174. package/cdn/media/youtube-video.dev.js +713 -0
  175. package/cdn/media/youtube-video.dev.js.map +1 -0
  176. package/cdn/media/youtube-video.js +2 -0
  177. package/cdn/media/youtube-video.js.map +1 -0
  178. package/cdn/{media-Uxm0d3Vx.js → media-BI8caj07.js} +3 -3
  179. package/cdn/{media-Uxm0d3Vx.js.map → media-BI8caj07.js.map} +1 -1
  180. package/cdn/{media-B_gQXwri.js → media-BNuI0Im7.js} +30 -8
  181. package/cdn/media-BNuI0Im7.js.map +1 -0
  182. package/cdn/{media-Cp3acYc8.js → media-BavrGKqa.js} +274 -5
  183. package/cdn/media-BavrGKqa.js.map +1 -0
  184. package/cdn/media-CQxFuDcv.js +2 -0
  185. package/cdn/{media-CbWsJJhU.js.map → media-CQxFuDcv.js.map} +1 -1
  186. package/cdn/media-CanBm0Jh.js +41 -0
  187. package/cdn/media-CanBm0Jh.js.map +1 -0
  188. package/cdn/media-D4tG62L5.js +2 -0
  189. package/cdn/{media-BTipOcKo.js.map → media-D4tG62L5.js.map} +1 -1
  190. package/cdn/{media-DRo3n8tM.js → media-DI6DvYm3.js} +4 -4
  191. package/cdn/{media-DRo3n8tM.js.map → media-DI6DvYm3.js.map} +1 -1
  192. package/cdn/media-DU3Xf5XR.js +2 -0
  193. package/cdn/media-DU3Xf5XR.js.map +1 -0
  194. package/cdn/media-mYKOAsk3.js +825 -0
  195. package/cdn/media-mYKOAsk3.js.map +1 -0
  196. package/cdn/media-played-ranges-CM2zeOGr.js +2 -0
  197. package/cdn/media-played-ranges-CM2zeOGr.js.map +1 -0
  198. package/cdn/media-played-ranges-Yd9acuMt.js +156 -0
  199. package/cdn/media-played-ranges-Yd9acuMt.js.map +1 -0
  200. package/cdn/media-zReLnePj.js +2 -0
  201. package/cdn/media-zReLnePj.js.map +1 -0
  202. package/cdn/{minimal-DQCLKRyR.js → minimal-3OmH0xQS.js} +2 -2
  203. package/cdn/minimal-3OmH0xQS.js.map +1 -0
  204. package/cdn/{minimal-DLosvq31.js → minimal-6w_Vyyl9.js} +2 -2
  205. package/cdn/minimal-6w_Vyyl9.js.map +1 -0
  206. package/cdn/minimal-BWLTn7oQ.js +2 -0
  207. package/cdn/minimal-BWLTn7oQ.js.map +1 -0
  208. package/cdn/minimal-DIGrklyh.js +2 -0
  209. package/cdn/minimal-DIGrklyh.js.map +1 -0
  210. package/cdn/{minimal-ui-Bxcpf5Mb.js → minimal-ui-BCIESK8f.js} +9 -9
  211. package/cdn/{minimal-ui-Bxcpf5Mb.js.map → minimal-ui-BCIESK8f.js.map} +1 -1
  212. package/cdn/minimal-ui-BXrq3z4U.js +2 -0
  213. package/cdn/{minimal-ui-BVKu9LWj.js.map → minimal-ui-BXrq3z4U.js.map} +1 -1
  214. package/cdn/{minimal-ui--JsmpU2q.js → minimal-ui-DEalpMk6.js} +5 -5
  215. package/cdn/{minimal-ui--JsmpU2q.js.map → minimal-ui-DEalpMk6.js.map} +1 -1
  216. package/cdn/minimal-ui-vY3QgohH.js +2 -0
  217. package/cdn/{minimal-ui-AFk6Ut5f.js.map → minimal-ui-vY3QgohH.js.map} +1 -1
  218. package/cdn/mixin-BqN0V06a.js +2 -0
  219. package/cdn/{mixin-DiB7dIef.js.map → mixin-BqN0V06a.js.map} +1 -1
  220. package/cdn/{mixin-CkNZwQXF.js → mixin-C193v40v.js} +67 -67
  221. package/cdn/mixin-C193v40v.js.map +1 -0
  222. package/cdn/noop-BxkeRIz9.js +6 -0
  223. package/cdn/noop-BxkeRIz9.js.map +1 -0
  224. package/cdn/noop-Ch0IHcOP.js +2 -0
  225. package/cdn/noop-Ch0IHcOP.js.map +1 -0
  226. package/cdn/{player-C4ix6TQq.js → player-B3GlPF90.js} +3 -2
  227. package/cdn/{player-C4ix6TQq.js.map → player-B3GlPF90.js.map} +1 -1
  228. package/cdn/player-CtTC7qa5.js +2 -0
  229. package/cdn/{player-B0ccW5-n.js.map → player-CtTC7qa5.js.map} +1 -1
  230. package/cdn/player-DKkph8UM.js +2 -0
  231. package/cdn/{player-srq1RGTj.js.map → player-DKkph8UM.js.map} +1 -1
  232. package/cdn/{player-B0qnepD5.js → player-DPDmTRvg.js} +3 -2
  233. package/cdn/{player-B0qnepD5.js.map → player-DPDmTRvg.js.map} +1 -1
  234. package/cdn/player-DrDd7LJi.js +2 -0
  235. package/cdn/{player-iIewo8Y9.js.map → player-DrDd7LJi.js.map} +1 -1
  236. package/cdn/{player-D4fdOLLk.js → player-L5UpZmT4.js} +3 -2
  237. package/cdn/{player-D4fdOLLk.js.map → player-L5UpZmT4.js.map} +1 -1
  238. package/cdn/{poster-element-BP1Ypgbf.js → poster-element-B5tdJ2ub.js} +192 -39
  239. package/cdn/poster-element-B5tdJ2ub.js.map +1 -0
  240. package/cdn/poster-element-B8QwXSU_.js +2 -0
  241. package/cdn/poster-element-B8QwXSU_.js.map +1 -0
  242. package/cdn/{error-surface-drmCvBVW.js → relocation-pipelines-Dh8CcgHw.js} +5 -343
  243. package/cdn/relocation-pipelines-Dh8CcgHw.js.map +1 -0
  244. package/cdn/relocation-pipelines-DunE4gcV.js +2 -0
  245. package/cdn/relocation-pipelines-DunE4gcV.js.map +1 -0
  246. package/cdn/script-D3ZkiqwO.js +2 -0
  247. package/cdn/script-D3ZkiqwO.js.map +1 -0
  248. package/cdn/script-erPJaaTz.js +33 -0
  249. package/cdn/script-erPJaaTz.js.map +1 -0
  250. package/cdn/{seek-button-element-TErrbilI.js → seek-button-element-5co-k0Dx.js} +7 -6
  251. package/cdn/seek-button-element-5co-k0Dx.js.map +1 -0
  252. package/cdn/seek-button-element-B8TkILg-.js +2 -0
  253. package/cdn/seek-button-element-B8TkILg-.js.map +1 -0
  254. package/cdn/shallow-equal-C7S8rj2f.js +16 -0
  255. package/cdn/shallow-equal-C7S8rj2f.js.map +1 -0
  256. package/cdn/shallow-equal-KV1zFqZi.js +2 -0
  257. package/cdn/shallow-equal-KV1zFqZi.js.map +1 -0
  258. package/cdn/{skin-element-wPSb4AAs.js → skin-element-DrkI8xuM.js} +2 -2
  259. package/cdn/{skin-element-wPSb4AAs.js.map → skin-element-DrkI8xuM.js.map} +1 -1
  260. package/cdn/{skin-element-1_MG2zgS.js → skin-element-DvX6Bxsv.js} +2 -2
  261. package/cdn/{skin-element-1_MG2zgS.js.map → skin-element-DvX6Bxsv.js.map} +1 -1
  262. package/cdn/text-element-BoY6AhMn.js +2 -0
  263. package/cdn/{text-element-Bsyglab8.js.map → text-element-BoY6AhMn.js.map} +1 -1
  264. package/cdn/{text-element-DTB9_2HX.js → text-element-cg6l21cd.js} +3 -3
  265. package/cdn/{text-element-DTB9_2HX.js.map → text-element-cg6l21cd.js.map} +1 -1
  266. package/cdn/time-slider-chapters-element-BfLjdnU4.js +2 -0
  267. package/cdn/time-slider-chapters-element-BfLjdnU4.js.map +1 -0
  268. package/cdn/{time-slider-chapters-element-DPgaLdBt.js → time-slider-chapters-element-CznFQWFm.js} +7 -6
  269. package/cdn/time-slider-chapters-element-CznFQWFm.js.map +1 -0
  270. package/cdn/{translate-text-DP0CzUCC.js → translate-text-BWvoW5-r.js} +2 -7
  271. package/cdn/translate-text-BWvoW5-r.js.map +1 -0
  272. package/cdn/translate-text-TzSgu_oe.js +2 -0
  273. package/cdn/translate-text-TzSgu_oe.js.map +1 -0
  274. package/cdn/{ui-D0AokGxw.js → ui-BwzqkJNK.js} +8 -8
  275. package/cdn/{ui-D0AokGxw.js.map → ui-BwzqkJNK.js.map} +1 -1
  276. package/cdn/ui-DayfItun.js +2 -0
  277. package/cdn/{ui-CecDxhTX.js.map → ui-DayfItun.js.map} +1 -1
  278. package/cdn/ui-PSnD-pv8.js +2 -0
  279. package/cdn/{ui-ChWM6Xz2.js.map → ui-PSnD-pv8.js.map} +1 -1
  280. package/cdn/{ui-p36Szn71.js → ui-fnKp94a7.js} +10 -10
  281. package/cdn/{ui-p36Szn71.js.map → ui-fnKp94a7.js.map} +1 -1
  282. package/cdn/video-headless.dev.js +1 -1
  283. package/cdn/video-headless.js +1 -1
  284. package/cdn/video-minimal-ui.dev.js +2 -2
  285. package/cdn/video-minimal-ui.js +1 -1
  286. package/cdn/video-minimal.dev.js +8 -6
  287. package/cdn/video-minimal.dev.js.map +1 -1
  288. package/cdn/video-minimal.js +1 -1
  289. package/cdn/video-minimal.js.map +1 -1
  290. package/cdn/video-ui.dev.js +2 -2
  291. package/cdn/video-ui.js +1 -1
  292. package/cdn/video.dev.js +9 -7
  293. package/cdn/video.dev.js.map +1 -1
  294. package/cdn/video.js +1 -1
  295. package/cdn/video.js.map +1 -1
  296. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  297. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  298. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  299. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  300. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  301. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  302. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  303. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  304. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  305. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  306. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  307. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  308. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  309. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  310. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  311. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  312. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  313. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  314. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  315. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  316. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  317. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  318. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  319. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  320. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  321. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  322. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  323. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  324. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  325. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  326. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  327. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  328. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  329. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  330. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  331. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  332. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  333. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  334. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  335. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  336. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  337. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  338. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  339. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  340. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  341. package/dist/default/define/audio/minimal-skin.css +117 -118
  342. package/dist/default/define/audio/skin.css +95 -99
  343. package/dist/default/define/live-audio/minimal-skin.css +117 -118
  344. package/dist/default/define/live-audio/skin.css +95 -99
  345. package/dist/default/define/live-video/minimal-skin.css +158 -137
  346. package/dist/default/define/live-video/minimal-skin.js +1 -1
  347. package/dist/default/define/live-video/minimal-skin.js.map +1 -1
  348. package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
  349. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
  350. package/dist/default/define/live-video/skin.css +120 -106
  351. package/dist/default/define/live-video/skin.js +1 -1
  352. package/dist/default/define/live-video/skin.js.map +1 -1
  353. package/dist/default/define/live-video/skin.tailwind.js +1 -1
  354. package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
  355. package/dist/default/define/ui/gesture.js +7 -0
  356. package/dist/default/define/ui/gesture.js.map +1 -0
  357. package/dist/default/define/video/minimal-skin.css +158 -137
  358. package/dist/default/define/video/minimal-skin.js +1 -1
  359. package/dist/default/define/video/minimal-skin.js.map +1 -1
  360. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  361. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  362. package/dist/default/define/video/skin.css +120 -106
  363. package/dist/default/define/video/skin.js +1 -1
  364. package/dist/default/define/video/skin.js.map +1 -1
  365. package/dist/default/define/video/skin.tailwind.js +1 -1
  366. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  367. package/dist/default/icons/dist/element/default/icons.js +1 -1
  368. package/dist/default/icons/dist/element/default/icons.js.map +1 -1
  369. package/dist/default/icons/dist/element/minimal/icons.js +1 -1
  370. package/dist/default/icons/dist/element/minimal/icons.js.map +1 -1
  371. package/dist/default/icons/dist/html/default/airplay-exit.js +1 -1
  372. package/dist/default/icons/dist/html/default/airplay-exit.js.map +1 -1
  373. package/dist/default/icons/dist/html/minimal/airplay-exit.js +1 -1
  374. package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +1 -1
  375. package/dist/default/icons/dist/render/default/index.js +1 -1
  376. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  377. package/dist/default/icons/dist/render/minimal/index.js +1 -1
  378. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  379. package/dist/default/media/hls-background-video/media.js +18 -0
  380. package/dist/default/media/hls-background-video/media.js.map +1 -1
  381. package/dist/default/media/tiktok-video/media.js +3 -2
  382. package/dist/default/media/tiktok-video/media.js.map +1 -1
  383. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  384. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  385. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  386. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  387. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
  388. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  389. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  390. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  391. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
  392. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  393. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  394. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  395. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  396. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  397. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  398. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  399. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
  400. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  401. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  402. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  403. package/dist/default/store/provider-mixin.js +22 -8
  404. package/dist/default/store/provider-mixin.js.map +1 -1
  405. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
  406. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
  407. package/dist/default/ui/captions-radio-group/captions-radio-group-element.js +1 -1
  408. package/dist/default/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
  409. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  410. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  411. package/dist/default/ui/menu/context.js.map +1 -1
  412. package/dist/default/ui/menu/menu-element.js +28 -27
  413. package/dist/default/ui/menu/menu-element.js.map +1 -1
  414. package/dist/default/ui/menu/menu-radio-group-element.js +14 -14
  415. package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -1
  416. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  417. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  418. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
  419. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
  420. package/dist/default/ui/poster/poster-element.js +138 -8
  421. package/dist/default/ui/poster/poster-element.js.map +1 -1
  422. package/dist/default/ui/quality-radio-group/quality-radio-group-element.js +1 -1
  423. package/dist/default/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
  424. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  425. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  426. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  427. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  428. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  429. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  430. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  431. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  432. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  433. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  434. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  435. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  436. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  437. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  438. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  439. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  440. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  441. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  442. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  443. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  444. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  445. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  446. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  447. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  448. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  449. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  450. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  451. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  452. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  453. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  454. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  455. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  456. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  457. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  458. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  459. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  460. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  461. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  462. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  463. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  464. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  465. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  466. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  467. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  468. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  469. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  470. package/dist/dev/define/audio/minimal-skin.css +117 -118
  471. package/dist/dev/define/audio/skin.css +95 -99
  472. package/dist/dev/define/live-audio/minimal-skin.css +117 -118
  473. package/dist/dev/define/live-audio/skin.css +95 -99
  474. package/dist/dev/define/live-video/minimal-skin.css +158 -137
  475. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
  476. package/dist/dev/define/live-video/minimal-skin.js +3 -1
  477. package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
  478. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  479. package/dist/dev/define/live-video/minimal-skin.tailwind.js +3 -1
  480. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
  481. package/dist/dev/define/live-video/skin.css +120 -106
  482. package/dist/dev/define/live-video/skin.d.ts.map +1 -1
  483. package/dist/dev/define/live-video/skin.js +3 -1
  484. package/dist/dev/define/live-video/skin.js.map +1 -1
  485. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
  486. package/dist/dev/define/live-video/skin.tailwind.js +4 -2
  487. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
  488. package/dist/dev/define/ui/gesture.d.ts +8 -0
  489. package/dist/dev/define/ui/gesture.d.ts.map +1 -0
  490. package/dist/dev/define/ui/gesture.js +7 -0
  491. package/dist/dev/define/ui/gesture.js.map +1 -0
  492. package/dist/dev/define/video/minimal-skin.css +158 -137
  493. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  494. package/dist/dev/define/video/minimal-skin.js +3 -1
  495. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  496. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  497. package/dist/dev/define/video/minimal-skin.tailwind.js +3 -1
  498. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  499. package/dist/dev/define/video/skin.css +120 -106
  500. package/dist/dev/define/video/skin.d.ts.map +1 -1
  501. package/dist/dev/define/video/skin.js +3 -1
  502. package/dist/dev/define/video/skin.js.map +1 -1
  503. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  504. package/dist/dev/define/video/skin.tailwind.js +4 -2
  505. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  506. package/dist/dev/media/hls-background-video/media.d.ts +16 -0
  507. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  508. package/dist/dev/media/hls-background-video/media.js +18 -0
  509. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  510. package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
  511. package/dist/dev/media/tiktok-video/media.js +10 -7
  512. package/dist/dev/media/tiktok-video/media.js.map +1 -1
  513. package/dist/dev/packages/icons/dist/element/default/icons.js +1 -1
  514. package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -1
  515. package/dist/dev/packages/icons/dist/element/minimal/icons.js +1 -1
  516. package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -1
  517. package/dist/dev/packages/icons/dist/html/default/airplay-exit.js +1 -1
  518. package/dist/dev/packages/icons/dist/html/default/airplay-exit.js.map +1 -1
  519. package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js +1 -1
  520. package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js.map +1 -1
  521. package/dist/dev/packages/icons/dist/render/default/index.js +1 -1
  522. package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -1
  523. package/dist/dev/packages/icons/dist/render/minimal/index.js +1 -1
  524. package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -1
  525. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +3 -1
  526. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  527. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js +8 -1
  528. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  529. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +13 -13
  530. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  531. package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  532. package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  533. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
  534. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  535. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  536. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  537. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  538. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  539. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  540. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  541. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
  542. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  543. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  544. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  545. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  546. package/dist/dev/store/provider-mixin.js +24 -8
  547. package/dist/dev/store/provider-mixin.js.map +1 -1
  548. package/dist/dev/store/types.d.ts +2 -2
  549. package/dist/dev/store/types.d.ts.map +1 -1
  550. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
  551. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
  552. package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js +1 -1
  553. package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
  554. package/dist/dev/ui/gesture/gesture-element.d.ts +7 -7
  555. package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -1
  556. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  557. package/dist/dev/ui/hotkey/hotkey-element.d.ts +6 -6
  558. package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -1
  559. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  560. package/dist/dev/ui/menu/context.d.ts +8 -8
  561. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  562. package/dist/dev/ui/menu/context.js.map +1 -1
  563. package/dist/dev/ui/menu/menu-element.d.ts.map +1 -1
  564. package/dist/dev/ui/menu/menu-element.js +28 -27
  565. package/dist/dev/ui/menu/menu-element.js.map +1 -1
  566. package/dist/dev/ui/menu/menu-radio-group-element.d.ts +1 -1
  567. package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -1
  568. package/dist/dev/ui/menu/menu-radio-group-element.js +14 -14
  569. package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -1
  570. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  571. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  572. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  573. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
  574. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
  575. package/dist/dev/ui/poster/poster-element.d.ts +20 -18
  576. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  577. package/dist/dev/ui/poster/poster-element.js +145 -8
  578. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  579. package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js +1 -1
  580. package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
  581. package/dist/dev/ui/slider/slider-preview-element.d.ts +2 -2
  582. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  583. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  584. package/docs/README.md +1 -1
  585. package/docs/concepts/features.md +2 -2
  586. package/docs/concepts/media-sources.md +79 -1
  587. package/docs/concepts/skins.md +122 -108
  588. package/docs/how-to/build-your-own-component.md +1 -1
  589. package/docs/how-to/customize-skins.md +499 -469
  590. package/docs/how-to/migrate-from-media-chrome.md +359 -0
  591. package/docs/how-to/migrate-from-mux-player.md +535 -0
  592. package/docs/how-to/migrate-from-plyr.md +394 -0
  593. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  594. package/docs/llms.txt +9 -0
  595. package/docs/reference/feature-volume.md +3 -1
  596. package/docs/reference/menu.md +3 -19
  597. package/docs/reference/mute-button.md +34 -0
  598. package/docs/reference/popover.md +2 -2
  599. package/docs/reference/poster.md +211 -21
  600. package/docs/reference/slider.md +1 -1
  601. package/docs/reference/time-slider.md +1 -1
  602. package/docs/reference/tooltip.md +6 -6
  603. package/docs/reference/volume-slider.md +2 -2
  604. package/package.json +15 -9
  605. package/cdn/adapter-Bk03SAxn.js +0 -2
  606. package/cdn/adapter-Bk03SAxn.js.map +0 -1
  607. package/cdn/adapter-XTen-YVQ.js.map +0 -1
  608. package/cdn/bn-DdelKD_n.js +0 -108
  609. package/cdn/bn-DdelKD_n.js.map +0 -1
  610. package/cdn/bn-YS8ruMcO.js +0 -2
  611. package/cdn/bn-YS8ruMcO.js.map +0 -1
  612. package/cdn/compounds-CCvdpvge.js.map +0 -1
  613. package/cdn/compounds-CJ6SbYAh.js +0 -8
  614. package/cdn/compounds-CJ6SbYAh.js.map +0 -1
  615. package/cdn/create-player-BHFyOnWi.js.map +0 -1
  616. package/cdn/create-player-CbpxjDaZ.js +0 -14
  617. package/cdn/create-player-CbpxjDaZ.js.map +0 -1
  618. package/cdn/default-BqQDVloS.js.map +0 -1
  619. package/cdn/default-CXWVp2oG.js +0 -2
  620. package/cdn/default-CXWVp2oG.js.map +0 -1
  621. package/cdn/default-Dw6cIEqT.js +0 -2
  622. package/cdn/default-Dw6cIEqT.js.map +0 -1
  623. package/cdn/default-I2LasfxC.js.map +0 -1
  624. package/cdn/error-surface-DCT1m2p1.js +0 -2
  625. package/cdn/error-surface-DCT1m2p1.js.map +0 -1
  626. package/cdn/error-surface-drmCvBVW.js.map +0 -1
  627. package/cdn/gesture-element-BNfMI8eh.js.map +0 -1
  628. package/cdn/gesture-element-CG-Sx_5t.js.map +0 -1
  629. package/cdn/hls-js-6lW7L4th.js +0 -2
  630. package/cdn/hls-js-DCQzjzB5.js +0 -2
  631. package/cdn/i18n-DfKGl5Rh.js +0 -2
  632. package/cdn/live-button-element-B_y-ZJBy.js.map +0 -1
  633. package/cdn/live-button-element-CWfkQUoy.js +0 -2
  634. package/cdn/media-5ODYtX1-.js +0 -2
  635. package/cdn/media-5ODYtX1-.js.map +0 -1
  636. package/cdn/media-BTipOcKo.js +0 -2
  637. package/cdn/media-B_gQXwri.js.map +0 -1
  638. package/cdn/media-CPWNSZFX.js +0 -41
  639. package/cdn/media-CPWNSZFX.js.map +0 -1
  640. package/cdn/media-CbWsJJhU.js +0 -2
  641. package/cdn/media-Cp3acYc8.js.map +0 -1
  642. package/cdn/media-Dq4zmIJa2.js +0 -2
  643. package/cdn/media-Dq4zmIJa2.js.map +0 -1
  644. package/cdn/media-suYcjCG22.js +0 -445
  645. package/cdn/media-suYcjCG22.js.map +0 -1
  646. package/cdn/minimal-BedCvMBG.js +0 -2
  647. package/cdn/minimal-BedCvMBG.js.map +0 -1
  648. package/cdn/minimal-BoP112ye.js +0 -2
  649. package/cdn/minimal-BoP112ye.js.map +0 -1
  650. package/cdn/minimal-DLosvq31.js.map +0 -1
  651. package/cdn/minimal-DQCLKRyR.js.map +0 -1
  652. package/cdn/minimal-ui-AFk6Ut5f.js +0 -2
  653. package/cdn/minimal-ui-BVKu9LWj.js +0 -2
  654. package/cdn/mixin-CkNZwQXF.js.map +0 -1
  655. package/cdn/mixin-DiB7dIef.js +0 -2
  656. package/cdn/player-B0ccW5-n.js +0 -2
  657. package/cdn/player-iIewo8Y9.js +0 -2
  658. package/cdn/player-srq1RGTj.js +0 -2
  659. package/cdn/poster-element-BP1Ypgbf.js.map +0 -1
  660. package/cdn/poster-element-S-rr412t.js +0 -2
  661. package/cdn/poster-element-S-rr412t.js.map +0 -1
  662. package/cdn/seek-button-element-DxLmm58Y.js +0 -2
  663. package/cdn/seek-button-element-DxLmm58Y.js.map +0 -1
  664. package/cdn/seek-button-element-TErrbilI.js.map +0 -1
  665. package/cdn/select-tracks-nRPBa1NC.js.map +0 -1
  666. package/cdn/select-tracks-xV1s28xD.js +0 -59
  667. package/cdn/select-tracks-xV1s28xD.js.map +0 -1
  668. package/cdn/text-element-Bsyglab8.js +0 -2
  669. package/cdn/time-slider-chapters-element-DPgaLdBt.js.map +0 -1
  670. package/cdn/time-slider-chapters-element-MdlcovBu.js +0 -2
  671. package/cdn/time-slider-chapters-element-MdlcovBu.js.map +0 -1
  672. package/cdn/translate-text-BPMWpzFm.js +0 -2
  673. package/cdn/translate-text-BPMWpzFm.js.map +0 -1
  674. package/cdn/translate-text-DP0CzUCC.js.map +0 -1
  675. package/cdn/ui-CecDxhTX.js +0 -2
  676. package/cdn/ui-ChWM6Xz2.js +0 -2
@@ -1,3 +1,4 @@
1
+ import { t as shallowEqual } from "./shallow-equal-C7S8rj2f.js";
1
2
  import { a as createMuxVideoURL, i as createMuxStoryboardURL, n as createMuxPosterURL, o as parseMuxVideoURL } from "./source-BWMOkdJ6.js";
2
3
 
3
4
  //#region ../spf/dist/dev/playback/adapters/mux-video/adapter.js
@@ -20,6 +21,7 @@ const muxMediaDefaultProps = {
20
21
  * source and dispatches `sourcechange` itself.
21
22
  *
22
23
  * @fires sourcechange - Fired when `source` changes, either directly or by parsing a new `src`. Read `source` for the new value.
24
+ * @fires contentdatachange - Fired when the derived `contentData` changes. Read `contentData` for the new value.
23
25
  */
24
26
  function MuxMediaMixin(BaseClass) {
25
27
  class MuxMediaImpl extends BaseClass {
@@ -37,6 +39,7 @@ function MuxMediaMixin(BaseClass) {
37
39
  return "Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one.";
38
40
  }
39
41
  #source = muxMediaDefaultProps.source;
42
+ #contentData = {};
40
43
  /**
41
44
  * Media source URL. Setting a Mux stream URL
42
45
  * (`https://stream.mux.com/<playback-id>.m3u8?...`) extracts the playback ID
@@ -66,23 +69,33 @@ function MuxMediaMixin(BaseClass) {
66
69
  const source = value ?? null;
67
70
  if (source === this.#source) return;
68
71
  this.#source = source;
72
+ const contentDataChanged = this.#refreshContentData();
69
73
  super.src = source && (createMuxVideoURL(source) ?? source.src) || "";
70
74
  this.dispatchEvent?.(new Event("sourcechange"));
75
+ if (contentDataChanged) this.dispatchEvent?.(new Event("contentdatachange"));
71
76
  }
72
77
  /**
73
78
  * Image URLs `source` describes rather than plays: `poster` from its `poster`
74
79
  * params, `storyboard` from its `storyboard` params.
75
80
  *
76
- * Read-only and re-derived on read, so read it again after `sourcechange`.
77
- * Nothing here is applied for you.
81
+ * Derived from `source` and nothing else. The same object is handed back
82
+ * until one of those URLs changes, and `contentdatachange` announces it when
83
+ * it does. Nothing here is applied for you.
78
84
  */
79
85
  get contentData() {
86
+ return this.#contentData;
87
+ }
88
+ /** Rebuild the derived bag, reporting whether anything about it changed. */
89
+ #refreshContentData() {
80
90
  const poster = createMuxPosterURL(this.#source);
81
91
  const storyboard = createMuxStoryboardURL(this.#source);
82
- return {
92
+ const next = {
83
93
  ...poster && { poster },
84
94
  ...storyboard && { storyboard }
85
95
  };
96
+ if (shallowEqual(this.#contentData, next)) return false;
97
+ this.#contentData = next;
98
+ return true;
86
99
  }
87
100
  }
88
101
  return MuxMediaImpl;
@@ -90,4 +103,4 @@ function MuxMediaMixin(BaseClass) {
90
103
 
91
104
  //#endregion
92
105
  export { MuxMediaMixin as t };
93
- //# sourceMappingURL=adapter-XTen-YVQ.js.map
106
+ //# sourceMappingURL=adapter-CEnNWvii.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-CEnNWvii.js","names":["#source","#refreshContentData","#contentData"],"sources":["../../spf/dist/dev/playback/adapters/mux-video/adapter.js"],"sourcesContent":["import { shallowEqual } from \"@videojs/utils/object\";\nimport { createMuxPosterURL, createMuxStoryboardURL, createMuxVideoURL, parseMuxVideoURL } from \"@videojs/media/dom/mux/source\";\n//#region src/playback/adapters/mux-video/adapter.ts\nconst muxMediaDefaultProps = {\n\tsrc: \"\",\n\tsource: null\n};\n/**\n* Mux identity over any SPF Media: the structured `source`, the `src` derived\n* from it, and the image URLs it describes.\n*\n* Everything here is Mux identity, so it carries no engine and both flavors get\n* it unchanged — the video Media over the full HLS engine, the audio-only Media\n* over the subtractive one. A mixin rather than a shared base class because each\n* flavor extends a different SPF Media, so there is no common class to put this\n* on, only a common `src` accessor to write through.\n*\n* Unlike the hls.js-backed `MuxMedia`, there is no inherited `source` to\n* delegate to — the SPF Medias know only `src` — so this owns the structured\n* source and dispatches `sourcechange` itself.\n*\n* @fires sourcechange - Fired when `source` changes, either directly or by parsing a new `src`. Read `source` for the new value.\n* @fires contentdatachange - Fired when the derived `contentData` changes. Read `contentData` for the new value.\n*/\nfunction MuxMediaMixin(BaseClass) {\n\tclass MuxMediaImpl extends BaseClass {\n\t\t/**\n\t\t* Named on the error copy when this engine can't play a source: the\n\t\t* hls.js-backed Mux Media plays the MPEG-TS and DRM-protected sources that\n\t\t* SPF does not, and it backs both `<mux-video>` and `<mux-audio>`.\n\t\t*\n\t\t* Names the flavor rather than an import path, because one Media is reached\n\t\t* through three of them — `@videojs/html`, `@videojs/react`, and this package\n\t\t* — and each has a different counterpart. The flavor suffix is the one thing\n\t\t* common to the layers a consumer imports elements and components from.\n\t\t*/\n\t\tstatic get alternativeMediaSuggestion() {\n\t\t\treturn \"Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one.\";\n\t\t}\n\t\t#source = muxMediaDefaultProps.source;\n\t\t#contentData = {};\n\t\t/**\n\t\t* Media source URL. Setting a Mux stream URL\n\t\t* (`https://stream.mux.com/<playback-id>.m3u8?...`) extracts the playback ID\n\t\t* and query params into `source`; other URLs are kept as a plain `source.src`.\n\t\t*\n\t\t* Only playback options carry over. Mux identity comes from the URL, and the\n\t\t* signed `poster`, `storyboard`, and `drm` tokens are scoped to a playback ID,\n\t\t* so carrying them onto a different source would build rejected URLs.\n\t\t*/\n\t\tget src() {\n\t\t\treturn super.src;\n\t\t}\n\t\tset src(value) {\n\t\t\tif (super.src === value) return;\n\t\t\tthis.source = parseMuxVideoURL(value) ?? (value ? { src: value } : null);\n\t\t}\n\t\t/**\n\t\t* Structured Mux source. Setting it derives `src` from the playback ID, custom\n\t\t* domain, and `playback` params (appended as `snake_case` query params). A\n\t\t* `playback.token` replaces all other params — signed URLs bake them into the\n\t\t* token.\n\t\t*/\n\t\tget source() {\n\t\t\treturn this.#source;\n\t\t}\n\t\tset source(value) {\n\t\t\tconst source = value ?? null;\n\t\t\tif (source === this.#source) return;\n\t\t\tthis.#source = source;\n\t\t\tconst contentDataChanged = this.#refreshContentData();\n\t\t\tsuper.src = source && (createMuxVideoURL(source) ?? source.src) || \"\";\n\t\t\tthis.dispatchEvent?.(new Event(\"sourcechange\"));\n\t\t\tif (contentDataChanged) this.dispatchEvent?.(new Event(\"contentdatachange\"));\n\t\t}\n\t\t/**\n\t\t* Image URLs `source` describes rather than plays: `poster` from its `poster`\n\t\t* params, `storyboard` from its `storyboard` params.\n\t\t*\n\t\t* Derived from `source` and nothing else. The same object is handed back\n\t\t* until one of those URLs changes, and `contentdatachange` announces it when\n\t\t* it does. Nothing here is applied for you.\n\t\t*/\n\t\tget contentData() {\n\t\t\treturn this.#contentData;\n\t\t}\n\t\t/** Rebuild the derived bag, reporting whether anything about it changed. */\n\t\t#refreshContentData() {\n\t\t\tconst poster = createMuxPosterURL(this.#source);\n\t\t\tconst storyboard = createMuxStoryboardURL(this.#source);\n\t\t\tconst next = {\n\t\t\t\t...poster && { poster },\n\t\t\t\t...storyboard && { storyboard }\n\t\t\t};\n\t\t\tif (shallowEqual(this.#contentData, next)) return false;\n\t\t\tthis.#contentData = next;\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn MuxMediaImpl;\n}\n//#endregion\nexport { MuxMediaMixin, muxMediaDefaultProps };\n\n//# sourceMappingURL=adapter.js.map"],"mappings":";;;;AAGA,MAAM,uBAAuB;CAC5B,KAAK;CACL,QAAQ;AACT;;;;;;;;;;;;;;;;;;AAkBA,SAAS,cAAc,WAAW;CACjC,MAAM,qBAAqB,UAAU;;;;;;;;;;;EAWpC,WAAW,6BAA6B;GACvC,OAAO;EACR;EACA,UAAU,qBAAqB;EAC/B,eAAe,CAAC;;;;;;;;;;EAUhB,IAAI,MAAM;GACT,OAAO,MAAM;EACd;EACA,IAAI,IAAI,OAAO;GACd,IAAI,MAAM,QAAQ,OAAO;GACzB,KAAK,SAAS,iBAAiB,KAAK,MAAM,QAAQ,EAAE,KAAK,MAAM,IAAI;EACpE;;;;;;;EAOA,IAAI,SAAS;GACZ,OAAO,KAAKA;EACb;EACA,IAAI,OAAO,OAAO;GACjB,MAAM,SAAS,SAAS;GACxB,IAAI,WAAW,KAAKA,SAAS;GAC7B,KAAKA,UAAU;GACf,MAAM,qBAAqB,KAAKC,oBAAoB;GACpD,MAAM,MAAM,WAAW,kBAAkB,MAAM,KAAK,OAAO,QAAQ;GACnE,KAAK,gBAAgB,IAAI,MAAM,cAAc,CAAC;GAC9C,IAAI,oBAAoB,KAAK,gBAAgB,IAAI,MAAM,mBAAmB,CAAC;EAC5E;;;;;;;;;EASA,IAAI,cAAc;GACjB,OAAO,KAAKC;EACb;;EAEA,sBAAsB;GACrB,MAAM,SAAS,mBAAmB,KAAKF,OAAO;GAC9C,MAAM,aAAa,uBAAuB,KAAKA,OAAO;GACtD,MAAM,OAAO;IACZ,GAAG,UAAU,EAAE,OAAO;IACtB,GAAG,cAAc,EAAE,WAAW;GAC/B;GACA,IAAI,aAAa,KAAKE,cAAc,IAAI,GAAG,OAAO;GAClD,KAAKA,eAAe;GACpB,OAAO;EACR;CACD;CACA,OAAO;AACR"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./shallow-equal-KV1zFqZi.js";import{a as t,i as n,n as r,o as i}from"./source-BjtVLlkW.js";const a={src:``,source:null};function o(o){class s extends o{static get alternativeMediaSuggestion(){return"Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one."}#e=a.source;#t={};get src(){return super.src}set src(e){super.src!==e&&(this.source=i(e)??(e?{src:e}:null))}get source(){return this.#e}set source(e){let n=e??null;if(n===this.#e)return;this.#e=n;let r=this.#n();super.src=n&&(t(n)??n.src)||``,this.dispatchEvent?.(new Event(`sourcechange`)),r&&this.dispatchEvent?.(new Event(`contentdatachange`))}get contentData(){return this.#t}#n(){let t=r(this.#e),i=n(this.#e),a={...t&&{poster:t},...i&&{storyboard:i}};return e(this.#t,a)?!1:(this.#t=a,!0)}}return s}export{o as t};
2
+ //# sourceMappingURL=adapter-DaKW8NzI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-DaKW8NzI.js","names":["#source","#refreshContentData","#contentData"],"sources":["../../spf/dist/default/playback/adapters/mux-video/adapter.js"],"sourcesContent":["import { shallowEqual } from \"@videojs/utils/object\";\nimport { createMuxPosterURL, createMuxStoryboardURL, createMuxVideoURL, parseMuxVideoURL } from \"@videojs/media/dom/mux/source\";\n//#region src/playback/adapters/mux-video/adapter.ts\nconst muxMediaDefaultProps = {\n\tsrc: \"\",\n\tsource: null\n};\n/**\n* Mux identity over any SPF Media: the structured `source`, the `src` derived\n* from it, and the image URLs it describes.\n*\n* Everything here is Mux identity, so it carries no engine and both flavors get\n* it unchanged — the video Media over the full HLS engine, the audio-only Media\n* over the subtractive one. A mixin rather than a shared base class because each\n* flavor extends a different SPF Media, so there is no common class to put this\n* on, only a common `src` accessor to write through.\n*\n* Unlike the hls.js-backed `MuxMedia`, there is no inherited `source` to\n* delegate to — the SPF Medias know only `src` — so this owns the structured\n* source and dispatches `sourcechange` itself.\n*\n* @fires sourcechange - Fired when `source` changes, either directly or by parsing a new `src`. Read `source` for the new value.\n* @fires contentdatachange - Fired when the derived `contentData` changes. Read `contentData` for the new value.\n*/\nfunction MuxMediaMixin(BaseClass) {\n\tclass MuxMediaImpl extends BaseClass {\n\t\t/**\n\t\t* Named on the error copy when this engine can't play a source: the\n\t\t* hls.js-backed Mux Media plays the MPEG-TS and DRM-protected sources that\n\t\t* SPF does not, and it backs both `<mux-video>` and `<mux-audio>`.\n\t\t*\n\t\t* Names the flavor rather than an import path, because one Media is reached\n\t\t* through three of them — `@videojs/html`, `@videojs/react`, and this package\n\t\t* — and each has a different counterpart. The flavor suffix is the one thing\n\t\t* common to the layers a consumer imports elements and components from.\n\t\t*/\n\t\tstatic get alternativeMediaSuggestion() {\n\t\t\treturn \"Try the hls.js-backed Mux media instead: import the `hls-js` flavor in place of the `spf` one.\";\n\t\t}\n\t\t#source = muxMediaDefaultProps.source;\n\t\t#contentData = {};\n\t\t/**\n\t\t* Media source URL. Setting a Mux stream URL\n\t\t* (`https://stream.mux.com/<playback-id>.m3u8?...`) extracts the playback ID\n\t\t* and query params into `source`; other URLs are kept as a plain `source.src`.\n\t\t*\n\t\t* Only playback options carry over. Mux identity comes from the URL, and the\n\t\t* signed `poster`, `storyboard`, and `drm` tokens are scoped to a playback ID,\n\t\t* so carrying them onto a different source would build rejected URLs.\n\t\t*/\n\t\tget src() {\n\t\t\treturn super.src;\n\t\t}\n\t\tset src(value) {\n\t\t\tif (super.src === value) return;\n\t\t\tthis.source = parseMuxVideoURL(value) ?? (value ? { src: value } : null);\n\t\t}\n\t\t/**\n\t\t* Structured Mux source. Setting it derives `src` from the playback ID, custom\n\t\t* domain, and `playback` params (appended as `snake_case` query params). A\n\t\t* `playback.token` replaces all other params — signed URLs bake them into the\n\t\t* token.\n\t\t*/\n\t\tget source() {\n\t\t\treturn this.#source;\n\t\t}\n\t\tset source(value) {\n\t\t\tconst source = value ?? null;\n\t\t\tif (source === this.#source) return;\n\t\t\tthis.#source = source;\n\t\t\tconst contentDataChanged = this.#refreshContentData();\n\t\t\tsuper.src = source && (createMuxVideoURL(source) ?? source.src) || \"\";\n\t\t\tthis.dispatchEvent?.(new Event(\"sourcechange\"));\n\t\t\tif (contentDataChanged) this.dispatchEvent?.(new Event(\"contentdatachange\"));\n\t\t}\n\t\t/**\n\t\t* Image URLs `source` describes rather than plays: `poster` from its `poster`\n\t\t* params, `storyboard` from its `storyboard` params.\n\t\t*\n\t\t* Derived from `source` and nothing else. The same object is handed back\n\t\t* until one of those URLs changes, and `contentdatachange` announces it when\n\t\t* it does. Nothing here is applied for you.\n\t\t*/\n\t\tget contentData() {\n\t\t\treturn this.#contentData;\n\t\t}\n\t\t/** Rebuild the derived bag, reporting whether anything about it changed. */\n\t\t#refreshContentData() {\n\t\t\tconst poster = createMuxPosterURL(this.#source);\n\t\t\tconst storyboard = createMuxStoryboardURL(this.#source);\n\t\t\tconst next = {\n\t\t\t\t...poster && { poster },\n\t\t\t\t...storyboard && { storyboard }\n\t\t\t};\n\t\t\tif (shallowEqual(this.#contentData, next)) return false;\n\t\t\tthis.#contentData = next;\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn MuxMediaImpl;\n}\n//#endregion\nexport { MuxMediaMixin, muxMediaDefaultProps };\n\n//# sourceMappingURL=adapter.js.map"],"mappings":"8GAGA,MAAM,EAAuB,CAC5B,IAAK,GACL,OAAQ,IACT,EAkBA,SAAS,EAAc,EAAW,CACjC,MAAM,UAAqB,CAAU,CAWpC,WAAW,4BAA6B,CACvC,MAAO,gGACR,CACA,GAAU,EAAqB,OAC/B,GAAe,CAAC,EAUhB,IAAI,KAAM,CACT,OAAO,MAAM,GACd,CACA,IAAI,IAAI,EAAO,CACV,MAAM,MAAQ,IAClB,KAAK,OAAS,EAAiB,CAAK,IAAM,EAAQ,CAAE,IAAK,CAAM,EAAI,MACpE,CAOA,IAAI,QAAS,CACZ,OAAO,KAAKA,EACb,CACA,IAAI,OAAO,EAAO,CACjB,IAAM,EAAS,GAAS,KACxB,GAAI,IAAW,KAAKA,GAAS,OAC7B,KAAKA,GAAU,EACf,IAAM,EAAqB,KAAKC,GAAoB,EACpD,MAAM,IAAM,IAAW,EAAkB,CAAM,GAAK,EAAO,MAAQ,GACnE,KAAK,gBAAgB,IAAI,MAAM,cAAc,CAAC,EAC1C,GAAoB,KAAK,gBAAgB,IAAI,MAAM,mBAAmB,CAAC,CAC5E,CASA,IAAI,aAAc,CACjB,OAAO,KAAKC,EACb,CAEA,IAAsB,CACrB,IAAM,EAAS,EAAmB,KAAKF,EAAO,EACxC,EAAa,EAAuB,KAAKA,EAAO,EAChD,EAAO,CACZ,GAAG,GAAU,CAAE,QAAO,EACtB,GAAG,GAAc,CAAE,YAAW,CAC/B,EAGA,OAFI,EAAa,KAAKE,GAAc,CAAI,EAAU,IAClD,KAAKA,GAAe,EACb,GACR,CACD,CACA,OAAO,CACR"}
@@ -1 +1 @@
1
- import "./player-D4fdOLLk.js";
1
+ import "./player-L5UpZmT4.js";
@@ -1 +1 @@
1
- import"./player-iIewo8Y9.js";
1
+ import"./player-DrDd7LJi.js";
@@ -1,2 +1,2 @@
1
- import "./minimal-DQCLKRyR.js";
2
- import "./minimal-ui--JsmpU2q.js";
1
+ import "./minimal-3OmH0xQS.js";
2
+ import "./minimal-ui-DEalpMk6.js";
@@ -1 +1 @@
1
- import"./minimal-BoP112ye.js";import"./minimal-ui-AFk6Ut5f.js";
1
+ import"./minimal-BWLTn7oQ.js";import"./minimal-ui-vY3QgohH.js";
@@ -1,12 +1,12 @@
1
- import { $ as createTemplate } from "./compounds-CCvdpvge.js";
1
+ import { $ as createTemplate } from "./compounds-C73u1MeO.js";
2
2
  import { i as safeDefine } from "./context-OhQY847V.js";
3
3
  import { n as createShadowStyle } from "./shadow-styles-BkjnRJ4e.js";
4
- import { t as SkinElement } from "./skin-element-1_MG2zgS.js";
5
- import { t as renderIcon } from "./minimal-DLosvq31.js";
6
- import "./minimal-ui--JsmpU2q.js";
4
+ import { t as SkinElement } from "./skin-element-DvX6Bxsv.js";
5
+ import { t as renderIcon } from "./minimal-6w_Vyyl9.js";
6
+ import "./minimal-ui-DEalpMk6.js";
7
7
 
8
8
  //#region inline-css:src/define/audio/minimal-skin.js
9
- var minimal_skin_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-minimal-skin *,\n.media-minimal-skin *::before,\n.media-minimal-skin *::after {\n box-sizing: border-box;\n}\n.media-minimal-skin img,\n.media-minimal-skin video,\n.media-minimal-skin svg {\n display: block;\n max-width: 100%;\n}\n.media-minimal-skin button {\n font: inherit;\n}\n.media-minimal-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-minimal-skin {\n interpolate-size: allow-keywords;\n }\n}\n\n.media-minimal-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, 0.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);\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-minimal-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-minimal-skin .media-error:not([data-open]) {\n display: none;\n}\n\n.media-minimal-skin .media-error__title {\n font-weight: 600;\n line-height: 1.25;\n}\n\n.media-minimal-skin .media-error__description {\n overflow-wrap: anywhere;\n opacity: 0.7;\n}\n\n.media-minimal-skin .media-error__actions {\n display: flex;\n gap: calc(var(--spacing) * 2);\n\n > * {\n flex: 1;\n }\n}\n\n.media-minimal-skin .media-error[data-open] ~ .media-controls * {\n visibility: hidden;\n}\n\n.media-minimal-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, 0) + 1));\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 background-color: var(--controls-background-color);\n backdrop-filter: var(--controls-backdrop-filter);\n}\n\n.media-minimal-skin .media-time-controls {\n display: flex;\n flex: 1;\n flex-direction: row-reverse;\n gap: calc(var(--spacing) * 3);\n align-items: center;\n container: media-time-controls / inline-size;\n}\n\n.media-minimal-skin .media-time-group {\n display: flex;\n gap: calc(var(--spacing) * 1);\n align-items: center;\n}\n\n.media-minimal-skin .media-time {\n font-variant-numeric: tabular-nums;\n}\n\n.media-minimal-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 @supports (corner-shape: squircle) {\n border-radius: calc(var(--spacing) * 4);\n corner-shape: squircle;\n }\n\n &:focus-visible {\n outline-color: var(--focus-ring-color);\n outline-offset: 2px;\n }\n}\n\n.media-minimal-skin .media-time--current,\n.media-minimal-skin .media-time-separator {\n display: none;\n}\n\n@container media-root (width > 42rem) {\n .media-minimal-skin .media-time-controls {\n flex-direction: row;\n }\n\n .media-minimal-skin .media-time--duration,\n .media-minimal-skin .media-time-separator {\n color: oklch(from currentColor l c h / 0.6);\n }\n\n .media-minimal-skin .media-time--current,\n .media-minimal-skin .media-time-separator {\n display: inline;\n }\n}\n\n/* Base button */\n.media-minimal-skin .media-button {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n height: calc(var(--spacing) * 9.5);\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(var(--spacing) * 2);\n transition-timing-function: ease-out;\n transition-duration: 150ms;\n transition-property: background-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@supports (corner-shape: squircle) {\n .media-minimal-skin .media-button {\n border-radius: calc(var(--spacing) * 4);\n corner-shape: squircle;\n }\n}\n\n/* Primary button variant */\n.media-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-skin .media-button {\n scale: 1;\n transition-property: background-color, outline-offset;\n will-change: auto;\n }\n}\n\n.media-minimal-skin .media-button-group {\n display: flex;\n gap: 1px;\n align-items: center;\n}\n\n.media-minimal-skin .media-badge {\n padding: calc(var(--spacing) * 1) 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(var(--spacing) * 1);\n}\n\n.media-minimal-skin .media-icon__container {\n position: relative;\n}\n\n.media-minimal-skin .media-icon {\n flex-shrink: 0;\n width: var(--media-icon-size);\n height: var(--media-icon-size);\n}\n.media-minimal-skin .media-icon--flipped {\n scale: -1 1;\n}\n\n.media-minimal-skin .media-slider {\n --thumb-size: calc(var(--spacing) * 3);\n --thumb-active-size: calc(var(--spacing) * 3);\n --track-border-radius: calc(Infinity * 1px);\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 border-radius: var(--track-border-radius);\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: inherit;\n isolation: isolate;\n\n &[data-orientation=\"horizontal\"] {\n width: 100%;\n height: calc(var(--spacing) * 0.75);\n }\n &[data-orientation=\"vertical\"] {\n width: calc(var(--spacing) * 0.75);\n height: 100%;\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: 2px solid transparent;\n outline-offset: -2px;\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.15)),\n 0 1px 3px 0 oklch(0 0 0 / 0.15),\n 0 1px 2px -1px oklch(0 0 0 / 0.15);\n opacity: 0;\n transform-origin: center;\n scale: 0.7;\n translate: -50% -50%;\n transition-timing-function: ease-out;\n transition-duration: 150ms;\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: var(--focus-ring-color);\n outline-offset: 2px;\n }\n }\n\n &:focus-within .media-slider__thumb,\n .media-slider__thumb--persistent {\n width: var(--thumb-active-size);\n height: var(--thumb-active-size);\n opacity: 1;\n scale: 1;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover .media-slider__thumb {\n width: var(--thumb-active-size);\n height: var(--thumb-active-size);\n opacity: 1;\n scale: 1;\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 --chapter-gap: calc(var(--spacing) * 1);\n --chapter-inset-start: 0.5;\n --chapter-inset-end: 0.5;\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\n &:first-child {\n --chapter-inset-start: 0;\n }\n &:last-child {\n --chapter-inset-end: 0;\n }\n\n .media-slider__chapter-track {\n --chapter-track-size: calc(var(--spacing) * 0.75);\n --chapter-track-highlighted-size: calc(var(--spacing) * 1.25);\n border-radius: var(--track-border-radius);\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(--chapter-track-size);\n clip-path: inset(\n 0 calc(100% - var(--media-slider-chapter-end) + var(--chapter-gap) * var(--chapter-inset-end)) 0\n calc(var(--media-slider-chapter-start) + var(--chapter-gap) * var(--chapter-inset-start)) round\n var(--track-border-radius)\n );\n }\n\n &[data-highlighted] .media-slider__chapter-track {\n height: var(--chapter-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(--chapter-track-size);\n clip-path: inset(\n calc(100% - var(--media-slider-chapter-end) + var(--chapter-gap) * var(--chapter-inset-end)) 0\n calc(var(--media-slider-chapter-start) + var(--chapter-gap) * var(--chapter-inset-start)) 0 round\n var(--track-border-radius)\n );\n }\n\n &[data-highlighted] .media-slider__chapter-track {\n width: var(--chapter-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, scale, 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 /* 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: 100%;\n height: calc(var(--spacing) * 1);\n\n .media-slider__thumbnail,\n .media-slider__value {\n position: absolute;\n left: var(--preview-left, var(--media-slider-pointer));\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 transition-property: filter, opacity, scale;\n }\n\n .media-slider__thumbnail {\n --thumbnail-max-width: var(--max-width);\n bottom: calc(100% + (var(--spacing) * 12));\n }\n\n .media-slider__value {\n bottom: calc(100% + (var(--spacing) * 5));\n display: flex;\n flex-direction: row-reverse;\n gap: calc(var(--spacing) * 2);\n justify-content: center;\n padding-inline: calc(var(--spacing) * 3);\n text-shadow: 0 1px 0 var(--shadow-current-color);\n }\n\n .media-slider__chapter-title {\n min-width: 0;\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 z-index: 1;\n pointer-events: none;\n content: \"\";\n background-color: oklch(from currentColor l c h / 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 &[data-pointing] .media-slider__value,\n &[data-pointing] .media-slider__thumbnail,\n &[data-interactive]:not([data-pointing]):not([data-dragging]) .media-slider__value,\n &[data-interactive]:not([data-pointing]):not([data-dragging]) .media-slider__thumbnail {\n opacity: 1;\n filter: blur(0);\n scale: 1;\n }\n\n &[data-orientation=\"horizontal\"]::before {\n top: 50%;\n left: var(--media-slider-pointer);\n width: 1px;\n height: calc(var(--spacing) * 5);\n }\n &[data-orientation=\"vertical\"]::before {\n top: calc(100% - var(--media-slider-pointer));\n left: 50%;\n width: calc(var(--spacing) * 5);\n height: 1px;\n }\n\n &[data-pointing]:not([data-dragging])::before {\n opacity: 1;\n scale: 1;\n }\n }\n}\n\n.media-minimal-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-minimal-skin .media-popover,\n.media-minimal-skin .media-tooltip {\n --popup-translate-distance: calc(var(--spacing) * 2);\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 /* 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 filter: blur(4px);\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-minimal-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\n.media-minimal-skin .media-tooltip {\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2);\n font-size: var(--font-size-base);\n color: var(--tooltip-text-color);\n white-space: nowrap;\n background-color: var(--tooltip-background-color);\n border-radius: calc(var(--spacing) * 2);\n box-shadow:\n 0 0 0 1px var(--tooltip-border-color),\n 0 4px 6px -1px oklch(0 0 0 / 0.2),\n 0 2px 4px -2px oklch(0 0 0 / 0.2);\n backdrop-filter: var(--tooltip-backdrop-filter);\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 margin-right: calc(var(--spacing) * -1);\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.15);\n border-radius: calc(var(--spacing) * 1);\n }\n}\n\n.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-hidden]) {\n display: none;\n}\n\n.media-minimal-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) * 2.5);\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 background-color: var(--popover-background-color);\n border-radius: var(--menu-border-radius);\n box-shadow:\n 0 0 0 1px var(--popover-border-color),\n 0 4px 6px -1px oklch(0 0 0 / 0.1),\n 0 2px 4px -2px oklch(0 0 0 / 0.1);\n backdrop-filter: var(--popover-backdrop-filter);\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: calc(var(--spacing) * 1) 0;\n border-bottom: 1px solid oklch(1 0 0 / 0.1);\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.5);\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\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/* ==========================================================================\n Icon State Visibility for Audio 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--restart,\n.media-button--play .media-icon--play,\n.media-button--play .media-icon--pause,\n.media-button--mute .media-icon--volume-off,\n.media-button--mute .media-icon--volume-low,\n.media-button--mute .media-icon--volume-high {\n display: none;\n opacity: 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 display: block;\n opacity: 1;\n}\n\n\n/* Container */\n\n.media-minimal-skin--audio {\n --default-accent-color: light-dark(oklch(0 0 0), oklch(1 0 0));\n --focus-ring-color: light-dark(oklch(0 0 0), oklch(1 0 0));\n\n --controls-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\n --controls-backdrop-filter: blur(16px) saturate(1.5);\n --controls-border-color: light-dark(oklch(0 0 0 / 0.1), oklch(1 0 0 / 0.1));\n --controls-text-color: light-dark(oklch(0 0 0), oklch(1 0 0));\n\n --error-dialog-transition-duration: 250ms;\n --error-dialog-transition-delay: 100ms;\n\n --popup-transition-duration: 100ms;\n --popup-transition-timing-function: ease-out;\n\n --popover-backdrop-filter: blur(16px) saturate(1.5);\n --popover-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\n --popover-border-color: oklch(0 0 0 / 0.1);\n\n --tooltip-backdrop-filter: var(--popover-backdrop-filter);\n --tooltip-background-color: var(--popover-background-color);\n --tooltip-border-color: var(--popover-border-color);\n\n --tooltip-text-color: currentColor;\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\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\n --tooltip-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\n }\n}\n\n/* Error Dialog */\n\n.media-minimal-skin--audio .media-error__dialog {\n position: absolute;\n inset: 0;\n z-index: 20;\n display: flex;\n gap: calc(var(--spacing) * 4);\n align-items: center;\n padding-inline: calc(var(--spacing) * 5) calc(var(--spacing) * 2);\n background-color: oklch(from var(--controls-background-color) l c h / 1);\n border-radius: calc(Infinity * 1px);\n transition-delay: var(--error-dialog-transition-delay);\n transition-timing-function: ease-out;\n transition-duration: var(--error-dialog-transition-duration);\n transition-property: opacity, filter, scale;\n}\n\n.media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog,\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\n opacity: 0;\n filter: blur(4px);\n scale: 0.95;\n}\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\n transition-delay: 0ms;\n}\n\n.media-minimal-skin--audio .media-error__content {\n display: flex;\n flex: 1;\n gap: calc(var(--spacing) * 2);\n align-items: center;\n}\n\n/* Controls */\n\n.media-minimal-skin--audio .media-controls {\n --base-side-offset: 2;\n --base-boundary-offset: 2;\n\n gap: calc(var(--spacing) * 2);\n color: var(--controls-text-color);\n border-radius: var(--media-border-radius, calc(var(--spacing) * 3.5));\n box-shadow: 0 0 0 1px var(--controls-border-color);\n}\n\n/* Buffering (spinner over play button — overlay only, no layout change) */\n\n.media-minimal-skin--audio .media-button--play__wrapper {\n position: relative;\n display: inline-flex;\n}\n\n.media-minimal-skin--audio .media-button--play__wrapper .media-buffering-indicator {\n color: inherit;\n}\n\n.media-minimal-skin--audio\n .media-button--play__wrapper:has(.media-buffering-indicator[data-visible])\n .media-button--play\n .media-icon {\n opacity: 0;\n}\n\n/* Popups & Animations */\n\n.media-minimal-skin--audio .media-popover--volume {\n --media-popover-side-offset: 0rem;\n padding: 0 calc(var(--spacing) * 2) 0 calc(var(--spacing) * 16);\n background: linear-gradient(to left, var(--controls-background-color) 80%, transparent 100%);\n}\n\n.media-minimal-skin--audio .media-slider .media-slider__preview .media-slider__value {\n bottom: calc(var(--spacing) * 10);\n}\n\n";
9
+ var minimal_skin_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-minimal-skin *,\n.media-minimal-skin *::before,\n.media-minimal-skin *::after {\n box-sizing: border-box;\n}\n.media-minimal-skin img,\n.media-minimal-skin video,\n.media-minimal-skin svg {\n display: block;\n max-width: 100%;\n}\n.media-minimal-skin button {\n font: inherit;\n}\n.media-minimal-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-minimal-skin {\n interpolate-size: allow-keywords;\n }\n}\n\n.media-minimal-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, 0.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);\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-minimal-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-minimal-skin .media-error:not([data-open]) {\n display: none;\n}\n\n.media-minimal-skin .media-error__title {\n font-weight: 600;\n line-height: 1.25;\n}\n\n.media-minimal-skin .media-error__description {\n overflow-wrap: anywhere;\n opacity: 0.7;\n}\n\n.media-minimal-skin .media-error__actions {\n display: flex;\n gap: calc(var(--spacing) * 2);\n\n > * {\n flex: 1;\n }\n}\n\n.media-minimal-skin .media-error[data-open] ~ .media-controls * {\n visibility: hidden;\n}\n\n.media-minimal-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, 0) + 1));\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 background-color: var(--controls-background-color);\n backdrop-filter: var(--controls-backdrop-filter);\n}\n\n.media-minimal-skin .media-time-controls {\n display: flex;\n flex: 1;\n flex-direction: row-reverse;\n gap: calc(var(--spacing) * 3);\n align-items: center;\n container: media-time-controls / inline-size;\n}\n\n.media-minimal-skin .media-time-group {\n display: flex;\n gap: calc(var(--spacing) * 1);\n align-items: center;\n}\n\n.media-minimal-skin .media-time {\n font-variant-numeric: tabular-nums;\n}\n\n.media-minimal-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 @supports (corner-shape: squircle) {\n border-radius: calc(var(--spacing) * 4);\n corner-shape: squircle;\n }\n\n &:focus-visible {\n outline-color: var(--focus-ring-color);\n outline-offset: 2px;\n }\n}\n\n.media-minimal-skin .media-time--current,\n.media-minimal-skin .media-time-separator {\n display: none;\n}\n\n@container media-root (width > 42rem) {\n .media-minimal-skin .media-time-controls {\n flex-direction: row;\n }\n\n .media-minimal-skin .media-time--duration,\n .media-minimal-skin .media-time-separator {\n color: oklch(from currentColor l c h / 0.6);\n }\n\n .media-minimal-skin .media-time--current,\n .media-minimal-skin .media-time-separator {\n display: inline;\n }\n}\n\n/* Base button */\n.media-minimal-skin .media-button {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n height: calc(var(--spacing) * 9.5);\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(var(--spacing) * 2);\n transition-timing-function: ease-out;\n transition-duration: 150ms;\n transition-property: background-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@supports (corner-shape: squircle) {\n .media-minimal-skin .media-button {\n border-radius: calc(var(--spacing) * 4);\n corner-shape: squircle;\n }\n}\n\n/* Primary button variant */\n.media-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-skin .media-button {\n scale: 1;\n transition-property: background-color, outline-offset;\n will-change: auto;\n }\n}\n\n.media-minimal-skin .media-button-group {\n display: flex;\n gap: 1px;\n align-items: center;\n}\n\n.media-minimal-skin .media-badge {\n padding: calc(var(--spacing) * 1) 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(var(--spacing) * 1);\n}\n\n.media-minimal-skin .media-icon__container {\n position: relative;\n}\n\n.media-minimal-skin .media-icon {\n flex-shrink: 0;\n width: var(--media-icon-size);\n height: var(--media-icon-size);\n}\n.media-minimal-skin .media-icon--flipped {\n scale: -1 1;\n}\n\n.media-minimal-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 border-radius: var(--track-border-radius);\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: inherit;\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\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: var(--track-border-radius);\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: 2px solid transparent;\n outline-offset: -2px;\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.15)),\n 0 1px 3px 0 oklch(0 0 0 / 0.15),\n 0 1px 2px -1px oklch(0 0 0 / 0.15);\n opacity: 0;\n transform-origin: center;\n scale: 0.7;\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: var(--focus-ring-color);\n outline-offset: 2px;\n }\n\n &:focus-visible,\n &.media-slider__thumb--persistent {\n opacity: 1;\n scale: 1;\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 }\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: 28;\n --max-size: min(calc(var(--spacing) * var(--max-size-factor)), 100cqi);\n\n min-width: 100%;\n height: calc(var(--spacing) * 1);\n\n @container media-root (width > 32rem) {\n --max-size-factor: 36;\n }\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: var(--preview-left, var(--media-slider-pointer));\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 transition-property: filter, opacity, scale;\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) * 11));\n }\n\n .media-slider__value {\n bottom: calc(100% + (var(--spacing) * 5));\n display: flex;\n flex-direction: row-reverse;\n gap: calc(var(--spacing) * 2);\n justify-content: center;\n padding-inline: calc(var(--spacing) * 3);\n text-shadow: 0 1px 0 var(--shadow-current-color);\n }\n\n .media-slider__chapter-title {\n min-width: 0;\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 z-index: 1;\n pointer-events: none;\n content: \"\";\n background-color: oklch(from currentColor l c h / 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 &[data-orientation=\"horizontal\"]::before {\n top: 50%;\n left: var(--media-slider-pointer);\n width: 1px;\n height: calc(var(--spacing) * 5);\n }\n &[data-orientation=\"vertical\"]::before {\n top: calc(100% - var(--media-slider-pointer));\n left: 50%;\n width: calc(var(--spacing) * 5);\n height: 1px;\n }\n\n &[data-pointing]:not([data-dragging])::before {\n opacity: 1;\n scale: 1;\n }\n }\n\n &:is([data-pointing], :has(:focus-visible))\n .media-slider__preview\n :is(.media-slider__value, .media-slider__thumbnail) {\n opacity: 1;\n filter: blur(0);\n scale: 1;\n }\n}\n\n.media-minimal-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-minimal-skin .media-popover,\n.media-minimal-skin .media-tooltip {\n --popup-translate-distance: calc(var(--spacing) * 2);\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 /* 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 filter: blur(4px);\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-minimal-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\n.media-minimal-skin .media-tooltip {\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2);\n font-size: var(--font-size-base);\n color: var(--tooltip-text-color);\n white-space: nowrap;\n background-color: var(--tooltip-background-color);\n border-radius: calc(var(--spacing) * 2);\n box-shadow:\n 0 0 0 1px var(--tooltip-border-color),\n 0 4px 6px -1px oklch(0 0 0 / 0.2),\n 0 2px 4px -2px oklch(0 0 0 / 0.2);\n backdrop-filter: var(--tooltip-backdrop-filter);\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 margin-right: calc(var(--spacing) * -1);\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.15);\n border-radius: calc(var(--spacing) * 1);\n }\n}\n\n.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-hidden]) {\n display: none;\n}\n\n.media-minimal-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) * 2.5);\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 background-color: var(--popover-background-color);\n border-radius: var(--menu-border-radius);\n box-shadow:\n 0 0 0 1px var(--popover-border-color),\n 0 4px 6px -1px oklch(0 0 0 / 0.1),\n 0 2px 4px -2px oklch(0 0 0 / 0.1);\n backdrop-filter: var(--popover-backdrop-filter);\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: calc(var(--spacing) * 1) 0;\n border-bottom: 1px solid oklch(1 0 0 / 0.1);\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.5);\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\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/* ==========================================================================\n Icon State Visibility for Audio 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--restart,\n.media-button--play .media-icon--play,\n.media-button--play .media-icon--pause,\n.media-button--mute .media-icon--volume-off,\n.media-button--mute .media-icon--volume-low,\n.media-button--mute .media-icon--volume-high {\n display: none;\n opacity: 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 display: block;\n opacity: 1;\n}\n\n\n/* Container */\n\n.media-minimal-skin--audio {\n --default-accent-color: light-dark(oklch(0 0 0), oklch(1 0 0));\n --focus-ring-color: light-dark(oklch(0 0 0), oklch(1 0 0));\n\n --controls-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\n --controls-backdrop-filter: blur(16px) saturate(1.5);\n --controls-border-color: light-dark(oklch(0 0 0 / 0.1), oklch(1 0 0 / 0.1));\n --controls-text-color: light-dark(oklch(0 0 0), oklch(1 0 0));\n\n --error-dialog-transition-duration: 250ms;\n --error-dialog-transition-delay: 100ms;\n\n --popup-transition-duration: 100ms;\n --popup-transition-timing-function: ease-out;\n\n --popover-backdrop-filter: blur(16px) saturate(1.5);\n --popover-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\n --popover-border-color: oklch(0 0 0 / 0.1);\n\n --tooltip-backdrop-filter: var(--popover-backdrop-filter);\n --tooltip-background-color: var(--popover-background-color);\n --tooltip-border-color: var(--popover-border-color);\n\n --tooltip-text-color: currentColor;\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\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\n --tooltip-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\n }\n}\n\n/* Error Dialog */\n\n.media-minimal-skin--audio .media-error__dialog {\n position: absolute;\n inset: 0;\n z-index: 20;\n display: flex;\n gap: calc(var(--spacing) * 4);\n align-items: center;\n padding-inline: calc(var(--spacing) * 5) calc(var(--spacing) * 2);\n background-color: oklch(from var(--controls-background-color) l c h / 1);\n border-radius: calc(Infinity * 1px);\n transition-delay: var(--error-dialog-transition-delay);\n transition-timing-function: ease-out;\n transition-duration: var(--error-dialog-transition-duration);\n transition-property: opacity, filter, scale;\n}\n\n.media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog,\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\n opacity: 0;\n filter: blur(4px);\n scale: 0.95;\n}\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\n transition-delay: 0ms;\n}\n\n.media-minimal-skin--audio .media-error__content {\n display: flex;\n flex: 1;\n gap: calc(var(--spacing) * 2);\n align-items: center;\n}\n\n/* Controls */\n\n.media-minimal-skin--audio .media-controls {\n --base-side-offset: 2;\n --base-boundary-offset: 2;\n\n gap: calc(var(--spacing) * 2);\n color: var(--controls-text-color);\n border-radius: var(--media-border-radius, calc(var(--spacing) * 3.5));\n box-shadow: 0 0 0 1px var(--controls-border-color);\n}\n\n/* Buffering (spinner over play button — overlay only, no layout change) */\n\n.media-minimal-skin--audio .media-button--play__wrapper {\n position: relative;\n display: inline-flex;\n}\n\n.media-minimal-skin--audio .media-button--play__wrapper .media-buffering-indicator {\n color: inherit;\n}\n\n.media-minimal-skin--audio\n .media-button--play__wrapper:has(.media-buffering-indicator[data-visible])\n .media-button--play\n .media-icon {\n opacity: 0;\n}\n\n/* Popups & Animations */\n\n.media-minimal-skin--audio .media-popover--volume {\n --media-popover-side-offset: 0rem;\n padding: 0 calc(var(--spacing) * 2) 0 calc(var(--spacing) * 16);\n background: linear-gradient(to left, var(--controls-background-color) 80%, transparent 100%);\n}\n\n.media-minimal-skin--audio .media-slider .media-slider__preview .media-slider__value {\n bottom: calc(var(--spacing) * 10);\n}\n\n";
10
10
 
11
11
  //#endregion
12
12
  //#region src/define/audio/minimal-skin.ts
@@ -1 +1 @@
1
- {"version":3,"file":"audio-minimal.dev.js","names":["styles"],"sources":["../inline-css:src/define/audio/minimal-skin.js","../src/define/audio/minimal-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-minimal-skin *,\\n.media-minimal-skin *::before,\\n.media-minimal-skin *::after {\\n box-sizing: border-box;\\n}\\n.media-minimal-skin img,\\n.media-minimal-skin video,\\n.media-minimal-skin svg {\\n display: block;\\n max-width: 100%;\\n}\\n.media-minimal-skin button {\\n font: inherit;\\n}\\n.media-minimal-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-minimal-skin {\\n interpolate-size: allow-keywords;\\n }\\n}\\n\\n.media-minimal-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, 0.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);\\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-minimal-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-minimal-skin .media-error:not([data-open]) {\\n display: none;\\n}\\n\\n.media-minimal-skin .media-error__title {\\n font-weight: 600;\\n line-height: 1.25;\\n}\\n\\n.media-minimal-skin .media-error__description {\\n overflow-wrap: anywhere;\\n opacity: 0.7;\\n}\\n\\n.media-minimal-skin .media-error__actions {\\n display: flex;\\n gap: calc(var(--spacing) * 2);\\n\\n > * {\\n flex: 1;\\n }\\n}\\n\\n.media-minimal-skin .media-error[data-open] ~ .media-controls * {\\n visibility: hidden;\\n}\\n\\n.media-minimal-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, 0) + 1));\\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 background-color: var(--controls-background-color);\\n backdrop-filter: var(--controls-backdrop-filter);\\n}\\n\\n.media-minimal-skin .media-time-controls {\\n display: flex;\\n flex: 1;\\n flex-direction: row-reverse;\\n gap: calc(var(--spacing) * 3);\\n align-items: center;\\n container: media-time-controls / inline-size;\\n}\\n\\n.media-minimal-skin .media-time-group {\\n display: flex;\\n gap: calc(var(--spacing) * 1);\\n align-items: center;\\n}\\n\\n.media-minimal-skin .media-time {\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.media-minimal-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 @supports (corner-shape: squircle) {\\n border-radius: calc(var(--spacing) * 4);\\n corner-shape: squircle;\\n }\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n}\\n\\n.media-minimal-skin .media-time--current,\\n.media-minimal-skin .media-time-separator {\\n display: none;\\n}\\n\\n@container media-root (width > 42rem) {\\n .media-minimal-skin .media-time-controls {\\n flex-direction: row;\\n }\\n\\n .media-minimal-skin .media-time--duration,\\n .media-minimal-skin .media-time-separator {\\n color: oklch(from currentColor l c h / 0.6);\\n }\\n\\n .media-minimal-skin .media-time--current,\\n .media-minimal-skin .media-time-separator {\\n display: inline;\\n }\\n}\\n\\n/* Base button */\\n.media-minimal-skin .media-button {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n height: calc(var(--spacing) * 9.5);\\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(var(--spacing) * 2);\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: background-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@supports (corner-shape: squircle) {\\n .media-minimal-skin .media-button {\\n border-radius: calc(var(--spacing) * 4);\\n corner-shape: squircle;\\n }\\n}\\n\\n/* Primary button variant */\\n.media-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-skin .media-button {\\n scale: 1;\\n transition-property: background-color, outline-offset;\\n will-change: auto;\\n }\\n}\\n\\n.media-minimal-skin .media-button-group {\\n display: flex;\\n gap: 1px;\\n align-items: center;\\n}\\n\\n.media-minimal-skin .media-badge {\\n padding: calc(var(--spacing) * 1) 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(var(--spacing) * 1);\\n}\\n\\n.media-minimal-skin .media-icon__container {\\n position: relative;\\n}\\n\\n.media-minimal-skin .media-icon {\\n flex-shrink: 0;\\n width: var(--media-icon-size);\\n height: var(--media-icon-size);\\n}\\n.media-minimal-skin .media-icon--flipped {\\n scale: -1 1;\\n}\\n\\n.media-minimal-skin .media-slider {\\n --thumb-size: calc(var(--spacing) * 3);\\n --thumb-active-size: calc(var(--spacing) * 3);\\n --track-border-radius: calc(Infinity * 1px);\\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 border-radius: var(--track-border-radius);\\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: inherit;\\n isolation: isolate;\\n\\n &[data-orientation=\\\"horizontal\\\"] {\\n width: 100%;\\n height: calc(var(--spacing) * 0.75);\\n }\\n &[data-orientation=\\\"vertical\\\"] {\\n width: calc(var(--spacing) * 0.75);\\n height: 100%;\\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: 2px solid transparent;\\n outline-offset: -2px;\\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.15)),\\n 0 1px 3px 0 oklch(0 0 0 / 0.15),\\n 0 1px 2px -1px oklch(0 0 0 / 0.15);\\n opacity: 0;\\n transform-origin: center;\\n scale: 0.7;\\n translate: -50% -50%;\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\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: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n }\\n\\n &:focus-within .media-slider__thumb,\\n .media-slider__thumb--persistent {\\n width: var(--thumb-active-size);\\n height: var(--thumb-active-size);\\n opacity: 1;\\n scale: 1;\\n }\\n\\n @media (hover: hover) and (pointer: fine) {\\n &:hover .media-slider__thumb {\\n width: var(--thumb-active-size);\\n height: var(--thumb-active-size);\\n opacity: 1;\\n scale: 1;\\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 --chapter-gap: calc(var(--spacing) * 1);\\n --chapter-inset-start: 0.5;\\n --chapter-inset-end: 0.5;\\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\\n &:first-child {\\n --chapter-inset-start: 0;\\n }\\n &:last-child {\\n --chapter-inset-end: 0;\\n }\\n\\n .media-slider__chapter-track {\\n --chapter-track-size: calc(var(--spacing) * 0.75);\\n --chapter-track-highlighted-size: calc(var(--spacing) * 1.25);\\n border-radius: var(--track-border-radius);\\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(--chapter-track-size);\\n clip-path: inset(\\n 0 calc(100% - var(--media-slider-chapter-end) + var(--chapter-gap) * var(--chapter-inset-end)) 0\\n calc(var(--media-slider-chapter-start) + var(--chapter-gap) * var(--chapter-inset-start)) round\\n var(--track-border-radius)\\n );\\n }\\n\\n &[data-highlighted] .media-slider__chapter-track {\\n height: var(--chapter-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(--chapter-track-size);\\n clip-path: inset(\\n calc(100% - var(--media-slider-chapter-end) + var(--chapter-gap) * var(--chapter-inset-end)) 0\\n calc(var(--media-slider-chapter-start) + var(--chapter-gap) * var(--chapter-inset-start)) 0 round\\n var(--track-border-radius)\\n );\\n }\\n\\n &[data-highlighted] .media-slider__chapter-track {\\n width: var(--chapter-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, scale, 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 /* 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: 100%;\\n height: calc(var(--spacing) * 1);\\n\\n .media-slider__thumbnail,\\n .media-slider__value {\\n position: absolute;\\n left: var(--preview-left, var(--media-slider-pointer));\\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 transition-property: filter, opacity, scale;\\n }\\n\\n .media-slider__thumbnail {\\n --thumbnail-max-width: var(--max-width);\\n bottom: calc(100% + (var(--spacing) * 12));\\n }\\n\\n .media-slider__value {\\n bottom: calc(100% + (var(--spacing) * 5));\\n display: flex;\\n flex-direction: row-reverse;\\n gap: calc(var(--spacing) * 2);\\n justify-content: center;\\n padding-inline: calc(var(--spacing) * 3);\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n }\\n\\n .media-slider__chapter-title {\\n min-width: 0;\\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 z-index: 1;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: oklch(from currentColor l c h / 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 &[data-pointing] .media-slider__value,\\n &[data-pointing] .media-slider__thumbnail,\\n &[data-interactive]:not([data-pointing]):not([data-dragging]) .media-slider__value,\\n &[data-interactive]:not([data-pointing]):not([data-dragging]) .media-slider__thumbnail {\\n opacity: 1;\\n filter: blur(0);\\n scale: 1;\\n }\\n\\n &[data-orientation=\\\"horizontal\\\"]::before {\\n top: 50%;\\n left: var(--media-slider-pointer);\\n width: 1px;\\n height: calc(var(--spacing) * 5);\\n }\\n &[data-orientation=\\\"vertical\\\"]::before {\\n top: calc(100% - var(--media-slider-pointer));\\n left: 50%;\\n width: calc(var(--spacing) * 5);\\n height: 1px;\\n }\\n\\n &[data-pointing]:not([data-dragging])::before {\\n opacity: 1;\\n scale: 1;\\n }\\n }\\n}\\n\\n.media-minimal-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-minimal-skin .media-popover,\\n.media-minimal-skin .media-tooltip {\\n --popup-translate-distance: calc(var(--spacing) * 2);\\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 /* 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 filter: blur(4px);\\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-minimal-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\\n.media-minimal-skin .media-tooltip {\\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2);\\n font-size: var(--font-size-base);\\n color: var(--tooltip-text-color);\\n white-space: nowrap;\\n background-color: var(--tooltip-background-color);\\n border-radius: calc(var(--spacing) * 2);\\n box-shadow:\\n 0 0 0 1px var(--tooltip-border-color),\\n 0 4px 6px -1px oklch(0 0 0 / 0.2),\\n 0 2px 4px -2px oklch(0 0 0 / 0.2);\\n backdrop-filter: var(--tooltip-backdrop-filter);\\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 margin-right: calc(var(--spacing) * -1);\\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.15);\\n border-radius: calc(var(--spacing) * 1);\\n }\\n}\\n\\n.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-hidden]) {\\n display: none;\\n}\\n\\n.media-minimal-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) * 2.5);\\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 background-color: var(--popover-background-color);\\n border-radius: var(--menu-border-radius);\\n box-shadow:\\n 0 0 0 1px var(--popover-border-color),\\n 0 4px 6px -1px oklch(0 0 0 / 0.1),\\n 0 2px 4px -2px oklch(0 0 0 / 0.1);\\n backdrop-filter: var(--popover-backdrop-filter);\\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: calc(var(--spacing) * 1) 0;\\n border-bottom: 1px solid oklch(1 0 0 / 0.1);\\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.5);\\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\\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/* ==========================================================================\\n Icon State Visibility for Audio 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--restart,\\n.media-button--play .media-icon--play,\\n.media-button--play .media-icon--pause,\\n.media-button--mute .media-icon--volume-off,\\n.media-button--mute .media-icon--volume-low,\\n.media-button--mute .media-icon--volume-high {\\n display: none;\\n opacity: 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 display: block;\\n opacity: 1;\\n}\\n\\n\\n/* Container */\\n\\n.media-minimal-skin--audio {\\n --default-accent-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n --focus-ring-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n\\n --controls-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\\n --controls-backdrop-filter: blur(16px) saturate(1.5);\\n --controls-border-color: light-dark(oklch(0 0 0 / 0.1), oklch(1 0 0 / 0.1));\\n --controls-text-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n\\n --error-dialog-transition-duration: 250ms;\\n --error-dialog-transition-delay: 100ms;\\n\\n --popup-transition-duration: 100ms;\\n --popup-transition-timing-function: ease-out;\\n\\n --popover-backdrop-filter: blur(16px) saturate(1.5);\\n --popover-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\\n --popover-border-color: oklch(0 0 0 / 0.1);\\n\\n --tooltip-backdrop-filter: var(--popover-backdrop-filter);\\n --tooltip-background-color: var(--popover-background-color);\\n --tooltip-border-color: var(--popover-border-color);\\n\\n --tooltip-text-color: currentColor;\\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\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --tooltip-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\\n }\\n}\\n\\n/* Error Dialog */\\n\\n.media-minimal-skin--audio .media-error__dialog {\\n position: absolute;\\n inset: 0;\\n z-index: 20;\\n display: flex;\\n gap: calc(var(--spacing) * 4);\\n align-items: center;\\n padding-inline: calc(var(--spacing) * 5) calc(var(--spacing) * 2);\\n background-color: oklch(from var(--controls-background-color) l c h / 1);\\n border-radius: calc(Infinity * 1px);\\n transition-delay: var(--error-dialog-transition-delay);\\n transition-timing-function: ease-out;\\n transition-duration: var(--error-dialog-transition-duration);\\n transition-property: opacity, filter, scale;\\n}\\n\\n.media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog,\\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\\n opacity: 0;\\n filter: blur(4px);\\n scale: 0.95;\\n}\\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\\n transition-delay: 0ms;\\n}\\n\\n.media-minimal-skin--audio .media-error__content {\\n display: flex;\\n flex: 1;\\n gap: calc(var(--spacing) * 2);\\n align-items: center;\\n}\\n\\n/* Controls */\\n\\n.media-minimal-skin--audio .media-controls {\\n --base-side-offset: 2;\\n --base-boundary-offset: 2;\\n\\n gap: calc(var(--spacing) * 2);\\n color: var(--controls-text-color);\\n border-radius: var(--media-border-radius, calc(var(--spacing) * 3.5));\\n box-shadow: 0 0 0 1px var(--controls-border-color);\\n}\\n\\n/* Buffering (spinner over play button — overlay only, no layout change) */\\n\\n.media-minimal-skin--audio .media-button--play__wrapper {\\n position: relative;\\n display: inline-flex;\\n}\\n\\n.media-minimal-skin--audio .media-button--play__wrapper .media-buffering-indicator {\\n color: inherit;\\n}\\n\\n.media-minimal-skin--audio\\n .media-button--play__wrapper:has(.media-buffering-indicator[data-visible])\\n .media-button--play\\n .media-icon {\\n opacity: 0;\\n}\\n\\n/* Popups & Animations */\\n\\n.media-minimal-skin--audio .media-popover--volume {\\n --media-popover-side-offset: 0rem;\\n padding: 0 calc(var(--spacing) * 2) 0 calc(var(--spacing) * 16);\\n background: linear-gradient(to left, var(--controls-background-color) 80%, transparent 100%);\\n}\\n\\n.media-minimal-skin--audio .media-slider .media-slider__preview .media-slider__value {\\n bottom: calc(var(--spacing) * 10);\\n}\\n\\n\";","import { renderIcon } from '@videojs/icons/render/minimal';\nimport { createShadowStyle, createTemplate } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\nimport { SkinElement } from '../skin-element';\nimport styles from './minimal-skin.css?inline';\n\n// Register the player, container, and all UI custom elements.\nimport './minimal-ui';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--audio\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <media-error-dialog class=\"media-error\">\n <div class=\"media-error__dialog\">\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--subtle\"></media-alert-dialog-close>\n </div>\n </div>\n </media-error-dialog>\n\n <div class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-group\">\n <span class=\"media-button--play__wrapper\">\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\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\" boundary=\"viewport\" class=\"media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" boundary=\"viewport\" class=\"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-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" boundary=\"viewport\" class=\"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\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time-group\">\n <media-time toggle type=\"current\" class=\"media-time media-time--current\"></media-time>\n <media-time-separator class=\"media-time-separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time media-time--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__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 <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n <media-slider-preview class=\"media-slider__preview\">\n <media-slider-value type=\"pointer\" class=\"media-slider__value media-time\"></media-slider-value>\n </media-slider-preview>\n </media-time-slider>\n </div>\n\n <div class=\"media-button-group\">\n <media-mute-button commandfor=\"audio-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=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" boundary=\"viewport\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"horizontal\" 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\n <media-playback-rate-button commandfor=\"playback-rate-menu\" class=\"media-button media-button--subtle media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-menu id=\"playback-rate-menu\" side=\"top\" align=\"center\" boundary=\"viewport\" class=\"media-popover media-menu\">\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 </div>\n </media-tooltip-group>\n </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=\"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 </media-container>\n `;\n}\n\nexport class MinimalAudioSkinElement extends SkinElement {\n static readonly tagName = 'audio-minimal-skin';\n static styles = createShadowStyle(styles);\n static template = createTemplate(getTemplateHTML());\n}\n\nsafeDefine(MinimalAudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinElement.tagName]: MinimalAudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;AAAA,2BAAe;;;;ACSf,MAAM,YAAY;AAElB,SAAS,kBAAkB;CACzB,OAAgB;;;;;;;;;;;;;;;;;;;;;;;kBAuBA,WAAW,WAAW,EAAE,OAAO,aAAa,CAAC,EAAE;;;kBAG/C,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;kBACnE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;kBAC7D,WAAW,SAAS,EAAE,OAAO,+BAA+B,CAAC,EAAE;;;;;;;;;;kBAU/D,WAAW,QAAQ,EAAE,OAAO,kDAAkD,CAAC,EAAE;kDACjD,UAAU;;;;;;;;4EAQgB,UAAU;;kBAEpE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;kDAC7B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8B5C,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;gBACzE,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;gBACzE,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;wBAmBnE,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BrE;AAEA,IAAa,0BAAb,cAA6C,YAAY;;iBAC7B;;;gBACV,kBAAkBA,oBAAM;;;kBACtB,eAAe,gBAAgB,CAAC;;AACpD;AAEA,WAAW,uBAAuB"}
1
+ {"version":3,"file":"audio-minimal.dev.js","names":["styles"],"sources":["../inline-css:src/define/audio/minimal-skin.js","../src/define/audio/minimal-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-minimal-skin *,\\n.media-minimal-skin *::before,\\n.media-minimal-skin *::after {\\n box-sizing: border-box;\\n}\\n.media-minimal-skin img,\\n.media-minimal-skin video,\\n.media-minimal-skin svg {\\n display: block;\\n max-width: 100%;\\n}\\n.media-minimal-skin button {\\n font: inherit;\\n}\\n.media-minimal-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-minimal-skin {\\n interpolate-size: allow-keywords;\\n }\\n}\\n\\n.media-minimal-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, 0.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);\\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-minimal-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-minimal-skin .media-error:not([data-open]) {\\n display: none;\\n}\\n\\n.media-minimal-skin .media-error__title {\\n font-weight: 600;\\n line-height: 1.25;\\n}\\n\\n.media-minimal-skin .media-error__description {\\n overflow-wrap: anywhere;\\n opacity: 0.7;\\n}\\n\\n.media-minimal-skin .media-error__actions {\\n display: flex;\\n gap: calc(var(--spacing) * 2);\\n\\n > * {\\n flex: 1;\\n }\\n}\\n\\n.media-minimal-skin .media-error[data-open] ~ .media-controls * {\\n visibility: hidden;\\n}\\n\\n.media-minimal-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, 0) + 1));\\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 background-color: var(--controls-background-color);\\n backdrop-filter: var(--controls-backdrop-filter);\\n}\\n\\n.media-minimal-skin .media-time-controls {\\n display: flex;\\n flex: 1;\\n flex-direction: row-reverse;\\n gap: calc(var(--spacing) * 3);\\n align-items: center;\\n container: media-time-controls / inline-size;\\n}\\n\\n.media-minimal-skin .media-time-group {\\n display: flex;\\n gap: calc(var(--spacing) * 1);\\n align-items: center;\\n}\\n\\n.media-minimal-skin .media-time {\\n font-variant-numeric: tabular-nums;\\n}\\n\\n.media-minimal-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 @supports (corner-shape: squircle) {\\n border-radius: calc(var(--spacing) * 4);\\n corner-shape: squircle;\\n }\\n\\n &:focus-visible {\\n outline-color: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n}\\n\\n.media-minimal-skin .media-time--current,\\n.media-minimal-skin .media-time-separator {\\n display: none;\\n}\\n\\n@container media-root (width > 42rem) {\\n .media-minimal-skin .media-time-controls {\\n flex-direction: row;\\n }\\n\\n .media-minimal-skin .media-time--duration,\\n .media-minimal-skin .media-time-separator {\\n color: oklch(from currentColor l c h / 0.6);\\n }\\n\\n .media-minimal-skin .media-time--current,\\n .media-minimal-skin .media-time-separator {\\n display: inline;\\n }\\n}\\n\\n/* Base button */\\n.media-minimal-skin .media-button {\\n display: flex;\\n flex-shrink: 0;\\n align-items: center;\\n justify-content: center;\\n height: calc(var(--spacing) * 9.5);\\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(var(--spacing) * 2);\\n transition-timing-function: ease-out;\\n transition-duration: 150ms;\\n transition-property: background-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@supports (corner-shape: squircle) {\\n .media-minimal-skin .media-button {\\n border-radius: calc(var(--spacing) * 4);\\n corner-shape: squircle;\\n }\\n}\\n\\n/* Primary button variant */\\n.media-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-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-minimal-skin .media-button {\\n scale: 1;\\n transition-property: background-color, outline-offset;\\n will-change: auto;\\n }\\n}\\n\\n.media-minimal-skin .media-button-group {\\n display: flex;\\n gap: 1px;\\n align-items: center;\\n}\\n\\n.media-minimal-skin .media-badge {\\n padding: calc(var(--spacing) * 1) 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(var(--spacing) * 1);\\n}\\n\\n.media-minimal-skin .media-icon__container {\\n position: relative;\\n}\\n\\n.media-minimal-skin .media-icon {\\n flex-shrink: 0;\\n width: var(--media-icon-size);\\n height: var(--media-icon-size);\\n}\\n.media-minimal-skin .media-icon--flipped {\\n scale: -1 1;\\n}\\n\\n.media-minimal-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 border-radius: var(--track-border-radius);\\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: inherit;\\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\\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: var(--track-border-radius);\\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: 2px solid transparent;\\n outline-offset: -2px;\\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.15)),\\n 0 1px 3px 0 oklch(0 0 0 / 0.15),\\n 0 1px 2px -1px oklch(0 0 0 / 0.15);\\n opacity: 0;\\n transform-origin: center;\\n scale: 0.7;\\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: var(--focus-ring-color);\\n outline-offset: 2px;\\n }\\n\\n &:focus-visible,\\n &.media-slider__thumb--persistent {\\n opacity: 1;\\n scale: 1;\\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 }\\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: 28;\\n --max-size: min(calc(var(--spacing) * var(--max-size-factor)), 100cqi);\\n\\n min-width: 100%;\\n height: calc(var(--spacing) * 1);\\n\\n @container media-root (width > 32rem) {\\n --max-size-factor: 36;\\n }\\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: var(--preview-left, var(--media-slider-pointer));\\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 transition-property: filter, opacity, scale;\\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) * 11));\\n }\\n\\n .media-slider__value {\\n bottom: calc(100% + (var(--spacing) * 5));\\n display: flex;\\n flex-direction: row-reverse;\\n gap: calc(var(--spacing) * 2);\\n justify-content: center;\\n padding-inline: calc(var(--spacing) * 3);\\n text-shadow: 0 1px 0 var(--shadow-current-color);\\n }\\n\\n .media-slider__chapter-title {\\n min-width: 0;\\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 z-index: 1;\\n pointer-events: none;\\n content: \\\"\\\";\\n background-color: oklch(from currentColor l c h / 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 &[data-orientation=\\\"horizontal\\\"]::before {\\n top: 50%;\\n left: var(--media-slider-pointer);\\n width: 1px;\\n height: calc(var(--spacing) * 5);\\n }\\n &[data-orientation=\\\"vertical\\\"]::before {\\n top: calc(100% - var(--media-slider-pointer));\\n left: 50%;\\n width: calc(var(--spacing) * 5);\\n height: 1px;\\n }\\n\\n &[data-pointing]:not([data-dragging])::before {\\n opacity: 1;\\n scale: 1;\\n }\\n }\\n\\n &:is([data-pointing], :has(:focus-visible))\\n .media-slider__preview\\n :is(.media-slider__value, .media-slider__thumbnail) {\\n opacity: 1;\\n filter: blur(0);\\n scale: 1;\\n }\\n}\\n\\n.media-minimal-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-minimal-skin .media-popover,\\n.media-minimal-skin .media-tooltip {\\n --popup-translate-distance: calc(var(--spacing) * 2);\\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 /* 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 filter: blur(4px);\\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-minimal-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\\n.media-minimal-skin .media-tooltip {\\n padding: calc(var(--spacing) * 1) calc(var(--spacing) * 2);\\n font-size: var(--font-size-base);\\n color: var(--tooltip-text-color);\\n white-space: nowrap;\\n background-color: var(--tooltip-background-color);\\n border-radius: calc(var(--spacing) * 2);\\n box-shadow:\\n 0 0 0 1px var(--tooltip-border-color),\\n 0 4px 6px -1px oklch(0 0 0 / 0.2),\\n 0 2px 4px -2px oklch(0 0 0 / 0.2);\\n backdrop-filter: var(--tooltip-backdrop-filter);\\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 margin-right: calc(var(--spacing) * -1);\\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.15);\\n border-radius: calc(var(--spacing) * 1);\\n }\\n}\\n\\n.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-hidden]) {\\n display: none;\\n}\\n\\n.media-minimal-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) * 2.5);\\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 background-color: var(--popover-background-color);\\n border-radius: var(--menu-border-radius);\\n box-shadow:\\n 0 0 0 1px var(--popover-border-color),\\n 0 4px 6px -1px oklch(0 0 0 / 0.1),\\n 0 2px 4px -2px oklch(0 0 0 / 0.1);\\n backdrop-filter: var(--popover-backdrop-filter);\\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: calc(var(--spacing) * 1) 0;\\n border-bottom: 1px solid oklch(1 0 0 / 0.1);\\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.5);\\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\\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/* ==========================================================================\\n Icon State Visibility for Audio 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--restart,\\n.media-button--play .media-icon--play,\\n.media-button--play .media-icon--pause,\\n.media-button--mute .media-icon--volume-off,\\n.media-button--mute .media-icon--volume-low,\\n.media-button--mute .media-icon--volume-high {\\n display: none;\\n opacity: 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 display: block;\\n opacity: 1;\\n}\\n\\n\\n/* Container */\\n\\n.media-minimal-skin--audio {\\n --default-accent-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n --focus-ring-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n\\n --controls-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\\n --controls-backdrop-filter: blur(16px) saturate(1.5);\\n --controls-border-color: light-dark(oklch(0 0 0 / 0.1), oklch(1 0 0 / 0.1));\\n --controls-text-color: light-dark(oklch(0 0 0), oklch(1 0 0));\\n\\n --error-dialog-transition-duration: 250ms;\\n --error-dialog-transition-delay: 100ms;\\n\\n --popup-transition-duration: 100ms;\\n --popup-transition-timing-function: ease-out;\\n\\n --popover-backdrop-filter: blur(16px) saturate(1.5);\\n --popover-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\\n --popover-border-color: oklch(0 0 0 / 0.1);\\n\\n --tooltip-backdrop-filter: var(--popover-backdrop-filter);\\n --tooltip-background-color: var(--popover-background-color);\\n --tooltip-border-color: var(--popover-border-color);\\n\\n --tooltip-text-color: currentColor;\\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\\n @media (prefers-reduced-transparency: reduce) or (prefers-contrast: more) {\\n --tooltip-background-color: light-dark(oklch(1 0 0), oklch(0 0 0));\\n }\\n}\\n\\n/* Error Dialog */\\n\\n.media-minimal-skin--audio .media-error__dialog {\\n position: absolute;\\n inset: 0;\\n z-index: 20;\\n display: flex;\\n gap: calc(var(--spacing) * 4);\\n align-items: center;\\n padding-inline: calc(var(--spacing) * 5) calc(var(--spacing) * 2);\\n background-color: oklch(from var(--controls-background-color) l c h / 1);\\n border-radius: calc(Infinity * 1px);\\n transition-delay: var(--error-dialog-transition-delay);\\n transition-timing-function: ease-out;\\n transition-duration: var(--error-dialog-transition-duration);\\n transition-property: opacity, filter, scale;\\n}\\n\\n.media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog,\\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\\n opacity: 0;\\n filter: blur(4px);\\n scale: 0.95;\\n}\\n.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {\\n transition-delay: 0ms;\\n}\\n\\n.media-minimal-skin--audio .media-error__content {\\n display: flex;\\n flex: 1;\\n gap: calc(var(--spacing) * 2);\\n align-items: center;\\n}\\n\\n/* Controls */\\n\\n.media-minimal-skin--audio .media-controls {\\n --base-side-offset: 2;\\n --base-boundary-offset: 2;\\n\\n gap: calc(var(--spacing) * 2);\\n color: var(--controls-text-color);\\n border-radius: var(--media-border-radius, calc(var(--spacing) * 3.5));\\n box-shadow: 0 0 0 1px var(--controls-border-color);\\n}\\n\\n/* Buffering (spinner over play button — overlay only, no layout change) */\\n\\n.media-minimal-skin--audio .media-button--play__wrapper {\\n position: relative;\\n display: inline-flex;\\n}\\n\\n.media-minimal-skin--audio .media-button--play__wrapper .media-buffering-indicator {\\n color: inherit;\\n}\\n\\n.media-minimal-skin--audio\\n .media-button--play__wrapper:has(.media-buffering-indicator[data-visible])\\n .media-button--play\\n .media-icon {\\n opacity: 0;\\n}\\n\\n/* Popups & Animations */\\n\\n.media-minimal-skin--audio .media-popover--volume {\\n --media-popover-side-offset: 0rem;\\n padding: 0 calc(var(--spacing) * 2) 0 calc(var(--spacing) * 16);\\n background: linear-gradient(to left, var(--controls-background-color) 80%, transparent 100%);\\n}\\n\\n.media-minimal-skin--audio .media-slider .media-slider__preview .media-slider__value {\\n bottom: calc(var(--spacing) * 10);\\n}\\n\\n\";","import { renderIcon } from '@videojs/icons/render/minimal';\nimport { createShadowStyle, createTemplate } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\nimport { SkinElement } from '../skin-element';\nimport styles from './minimal-skin.css?inline';\n\n// Register the player, container, and all UI custom elements.\nimport './minimal-ui';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--audio\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <media-error-dialog class=\"media-error\">\n <div class=\"media-error__dialog\">\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--subtle\"></media-alert-dialog-close>\n </div>\n </div>\n </media-error-dialog>\n\n <div class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-group\">\n <span class=\"media-button--play__wrapper\">\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\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\" boundary=\"viewport\" class=\"media-tooltip\">\n <media-tooltip-label></media-tooltip-label>\n <media-tooltip-shortcut class=\"media-tooltip__kbd\"></media-tooltip-shortcut>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" boundary=\"viewport\" class=\"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-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" boundary=\"viewport\" class=\"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\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time-group\">\n <media-time toggle type=\"current\" class=\"media-time media-time--current\"></media-time>\n <media-time-separator class=\"media-time-separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time media-time--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__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 <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n <media-slider-preview class=\"media-slider__preview\">\n <media-slider-value type=\"pointer\" class=\"media-slider__value media-time\"></media-slider-value>\n </media-slider-preview>\n </media-time-slider>\n </div>\n\n <div class=\"media-button-group\">\n <media-mute-button commandfor=\"audio-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=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" boundary=\"viewport\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"horizontal\" 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\n <media-playback-rate-button commandfor=\"playback-rate-menu\" class=\"media-button media-button--subtle media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-menu id=\"playback-rate-menu\" side=\"top\" align=\"center\" boundary=\"viewport\" class=\"media-popover media-menu\">\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 </div>\n </media-tooltip-group>\n </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=\"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 </media-container>\n `;\n}\n\nexport class MinimalAudioSkinElement extends SkinElement {\n static readonly tagName = 'audio-minimal-skin';\n static styles = createShadowStyle(styles);\n static template = createTemplate(getTemplateHTML());\n}\n\nsafeDefine(MinimalAudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinElement.tagName]: MinimalAudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;AAAA,2BAAe;;;;ACSf,MAAM,YAAY;AAElB,SAAS,kBAAkB;CACzB,OAAgB;;;;;;;;;;;;;;;;;;;;;;;kBAuBA,WAAW,WAAW,EAAE,OAAO,aAAa,CAAC,EAAE;;;kBAG/C,WAAW,WAAW,EAAE,OAAO,iCAAiC,CAAC,EAAE;kBACnE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;kBAC7D,WAAW,SAAS,EAAE,OAAO,+BAA+B,CAAC,EAAE;;;;;;;;;;kBAU/D,WAAW,QAAQ,EAAE,OAAO,kDAAkD,CAAC,EAAE;kDACjD,UAAU;;;;;;;;4EAQgB,UAAU;;kBAEpE,WAAW,QAAQ,EAAE,OAAO,8BAA8B,CAAC,EAAE;kDAC7B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA8B5C,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;gBACzE,WAAW,cAAc,EAAE,OAAO,oCAAoC,CAAC,EAAE;gBACzE,WAAW,eAAe,EAAE,OAAO,qCAAqC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;wBAmBnE,WAAW,SAAS,EAAE,OAAO,aAAa,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BrE;AAEA,IAAa,0BAAb,cAA6C,YAAY;;iBAC7B;;;gBACV,kBAAkBA,oBAAM;;;kBACtB,eAAe,gBAAgB,CAAC;;AACpD;AAEA,WAAW,uBAAuB"}