@videojs/html 10.2.0 → 10.4.0

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 (374) hide show
  1. package/dist/default/define/audio/compat-skin.css +161 -41
  2. package/dist/default/define/audio/compat-skin2.js +1 -1
  3. package/dist/default/define/audio/neutral-skin.css +73 -34
  4. package/dist/default/define/audio/neutral-skin2.js +1 -1
  5. package/dist/default/define/audio/scaffold-skin.css +166 -42
  6. package/dist/default/define/audio/scaffold-skin2.js +1 -1
  7. package/dist/default/define/audio/skin.css +72 -34
  8. package/dist/default/define/audio/skin2.js +1 -1
  9. package/dist/default/define/extensions/google-analytics.js +6 -0
  10. package/dist/default/define/live-audio/compat-skin.css +143 -41
  11. package/dist/default/define/live-audio/compat-skin2.js +1 -1
  12. package/dist/default/define/live-audio/neutral-skin.css +56 -31
  13. package/dist/default/define/live-audio/neutral-skin2.js +1 -1
  14. package/dist/default/define/live-audio/scaffold-skin.css +148 -42
  15. package/dist/default/define/live-audio/scaffold-skin2.js +1 -1
  16. package/dist/default/define/live-audio/skin.css +55 -31
  17. package/dist/default/define/live-audio/skin2.js +1 -1
  18. package/dist/default/define/live-video/compat-skin.css +234 -51
  19. package/dist/default/define/live-video/compat-skin2.js +1 -1
  20. package/dist/default/define/live-video/neutral-skin.css +300 -46
  21. package/dist/default/define/live-video/neutral-skin2.js +1 -1
  22. package/dist/default/define/live-video/scaffold-skin.css +231 -53
  23. package/dist/default/define/live-video/scaffold-skin2.js +1 -1
  24. package/dist/default/define/live-video/skin.css +314 -49
  25. package/dist/default/define/live-video/skin2.js +1 -1
  26. package/dist/default/define/media/dailymotion-video.js +11 -0
  27. package/dist/default/define/media/mixcloud-audio.js +11 -0
  28. package/dist/default/define/media/soundcloud-audio.js +11 -0
  29. package/dist/default/define/ui/time-slider-markers.js +5 -0
  30. package/dist/default/define/video/compat-skin.css +242 -51
  31. package/dist/default/define/video/compat-skin2.js +1 -1
  32. package/dist/default/define/video/neutral-skin.css +382 -57
  33. package/dist/default/define/video/neutral-skin2.js +1 -1
  34. package/dist/default/define/video/scaffold-skin.css +240 -53
  35. package/dist/default/define/video/scaffold-skin2.js +1 -1
  36. package/dist/default/define/video/skin.css +415 -55
  37. package/dist/default/define/video/skin2.js +1 -1
  38. package/dist/default/extensions/google-analytics/extension.js +75 -0
  39. package/dist/default/extensions/mux-data/extension.js +7 -2
  40. package/dist/default/index.js +3 -1
  41. package/dist/default/internal/skins/compat-audio/skin.css +161 -41
  42. package/dist/default/internal/skins/compat-audio/template.js +1 -1
  43. package/dist/default/internal/skins/compat-live-audio/skin.css +143 -41
  44. package/dist/default/internal/skins/compat-live-video/skin.css +234 -51
  45. package/dist/default/internal/skins/compat-live-video/template.js +2 -0
  46. package/dist/default/internal/skins/compat-video/skin.css +242 -51
  47. package/dist/default/internal/skins/compat-video/template.js +2 -0
  48. package/dist/default/internal/skins/default-audio/skin.css +72 -34
  49. package/dist/default/internal/skins/default-live-audio/skin.css +55 -31
  50. package/dist/default/internal/skins/default-live-video/skin.css +314 -49
  51. package/dist/default/internal/skins/default-live-video/template.js +14 -0
  52. package/dist/default/internal/skins/default-video/register.js +3 -0
  53. package/dist/default/internal/skins/default-video/skin.css +415 -55
  54. package/dist/default/internal/skins/default-video/template.js +33 -5
  55. package/dist/default/internal/skins/neutral-audio/skin.css +73 -34
  56. package/dist/default/internal/skins/neutral-live-audio/skin.css +56 -31
  57. package/dist/default/internal/skins/neutral-live-video/skin.css +300 -46
  58. package/dist/default/internal/skins/neutral-live-video/template.js +14 -0
  59. package/dist/default/internal/skins/neutral-video/skin.css +382 -57
  60. package/dist/default/internal/skins/neutral-video/template.js +25 -11
  61. package/dist/default/internal/skins/scaffold-audio/skin.css +166 -42
  62. package/dist/default/internal/skins/scaffold-audio/template.js +1 -1
  63. package/dist/default/internal/skins/scaffold-live-audio/skin.css +148 -42
  64. package/dist/default/internal/skins/scaffold-live-video/skin.css +231 -53
  65. package/dist/default/internal/skins/scaffold-live-video/template.js +2 -0
  66. package/dist/default/internal/skins/scaffold-video/skin.css +240 -53
  67. package/dist/default/internal/skins/scaffold-video/template.js +3 -1
  68. package/dist/default/media/background-video/adapter.js +13 -35
  69. package/dist/default/media/background-video/base.js +95 -0
  70. package/dist/default/media/background-video/template.js +13 -20
  71. package/dist/default/media/dailymotion-video/adapter.js +31 -0
  72. package/dist/default/media/hls-background-video/adapter.js +23 -35
  73. package/dist/default/media/mixcloud-audio/adapter.js +16 -0
  74. package/dist/default/media/soundcloud-audio/adapter.js +16 -0
  75. package/dist/default/player/element.js +1 -5
  76. package/dist/default/presets/background/skin.js +2 -2
  77. package/dist/default/presets/skin.js +4 -3
  78. package/dist/default/ui/captions-radio-group/element.js +14 -1
  79. package/dist/default/ui/controls/element.js +6 -3
  80. package/dist/default/ui/dialog/element.js +13 -1
  81. package/dist/default/ui/gesture/element.js +3 -0
  82. package/dist/default/ui/media-button-element.js +10 -1
  83. package/dist/default/ui/playback-rate-button/element.js +7 -2
  84. package/dist/default/ui/playback-rate-radio-group/element.js +10 -3
  85. package/dist/default/ui/radio-options/controller.js +18 -5
  86. package/dist/default/ui/time-slider/markers.js +160 -0
  87. package/dist/default/version.js +1 -1
  88. package/dist/dev/define/audio/compat-skin.css +161 -41
  89. package/dist/dev/define/audio/compat-skin2.js +1 -1
  90. package/dist/dev/define/audio/compat-skin2.js.map +1 -1
  91. package/dist/dev/define/audio/neutral-skin.css +73 -34
  92. package/dist/dev/define/audio/neutral-skin2.js +1 -1
  93. package/dist/dev/define/audio/neutral-skin2.js.map +1 -1
  94. package/dist/dev/define/audio/scaffold-skin.css +166 -42
  95. package/dist/dev/define/audio/scaffold-skin2.js +1 -1
  96. package/dist/dev/define/audio/scaffold-skin2.js.map +1 -1
  97. package/dist/dev/define/audio/skin.css +72 -34
  98. package/dist/dev/define/audio/skin2.js +1 -1
  99. package/dist/dev/define/audio/skin2.js.map +1 -1
  100. package/dist/dev/define/extensions/google-analytics.d.ts +11 -0
  101. package/dist/dev/define/extensions/google-analytics.js +8 -0
  102. package/dist/dev/define/extensions/google-analytics.js.map +1 -0
  103. package/dist/dev/define/live-audio/compat-skin.css +143 -41
  104. package/dist/dev/define/live-audio/compat-skin2.js +1 -1
  105. package/dist/dev/define/live-audio/compat-skin2.js.map +1 -1
  106. package/dist/dev/define/live-audio/neutral-skin.css +56 -31
  107. package/dist/dev/define/live-audio/neutral-skin2.js +1 -1
  108. package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -1
  109. package/dist/dev/define/live-audio/scaffold-skin.css +148 -42
  110. package/dist/dev/define/live-audio/scaffold-skin2.js +1 -1
  111. package/dist/dev/define/live-audio/scaffold-skin2.js.map +1 -1
  112. package/dist/dev/define/live-audio/skin.css +55 -31
  113. package/dist/dev/define/live-audio/skin2.js +1 -1
  114. package/dist/dev/define/live-audio/skin2.js.map +1 -1
  115. package/dist/dev/define/live-video/compat-skin.css +234 -51
  116. package/dist/dev/define/live-video/compat-skin2.js +1 -1
  117. package/dist/dev/define/live-video/compat-skin2.js.map +1 -1
  118. package/dist/dev/define/live-video/neutral-skin.css +300 -46
  119. package/dist/dev/define/live-video/neutral-skin2.js +1 -1
  120. package/dist/dev/define/live-video/neutral-skin2.js.map +1 -1
  121. package/dist/dev/define/live-video/scaffold-skin.css +231 -53
  122. package/dist/dev/define/live-video/scaffold-skin2.js +1 -1
  123. package/dist/dev/define/live-video/scaffold-skin2.js.map +1 -1
  124. package/dist/dev/define/live-video/skin.css +314 -49
  125. package/dist/dev/define/live-video/skin2.js +1 -1
  126. package/dist/dev/define/live-video/skin2.js.map +1 -1
  127. package/dist/dev/define/media/dailymotion-video.d.ts +15 -0
  128. package/dist/dev/define/media/dailymotion-video.js +13 -0
  129. package/dist/dev/define/media/dailymotion-video.js.map +1 -0
  130. package/dist/dev/define/media/mixcloud-audio.d.ts +15 -0
  131. package/dist/dev/define/media/mixcloud-audio.js +13 -0
  132. package/dist/dev/define/media/mixcloud-audio.js.map +1 -0
  133. package/dist/dev/define/media/soundcloud-audio.d.ts +15 -0
  134. package/dist/dev/define/media/soundcloud-audio.js +13 -0
  135. package/dist/dev/define/media/soundcloud-audio.js.map +1 -0
  136. package/dist/dev/define/ui/time-slider-markers.d.ts +8 -0
  137. package/dist/dev/define/ui/time-slider-markers.js +7 -0
  138. package/dist/dev/define/ui/time-slider-markers.js.map +1 -0
  139. package/dist/dev/define/video/compat-skin.css +242 -51
  140. package/dist/dev/define/video/compat-skin2.js +1 -1
  141. package/dist/dev/define/video/compat-skin2.js.map +1 -1
  142. package/dist/dev/define/video/neutral-skin.css +382 -57
  143. package/dist/dev/define/video/neutral-skin2.js +1 -1
  144. package/dist/dev/define/video/neutral-skin2.js.map +1 -1
  145. package/dist/dev/define/video/scaffold-skin.css +240 -53
  146. package/dist/dev/define/video/scaffold-skin2.js +1 -1
  147. package/dist/dev/define/video/scaffold-skin2.js.map +1 -1
  148. package/dist/dev/define/video/skin.css +415 -55
  149. package/dist/dev/define/video/skin2.js +1 -1
  150. package/dist/dev/define/video/skin2.js.map +1 -1
  151. package/dist/dev/extensions/google-analytics/extension.d.ts +52 -0
  152. package/dist/dev/extensions/google-analytics/extension.js +77 -0
  153. package/dist/dev/extensions/google-analytics/extension.js.map +1 -0
  154. package/dist/dev/extensions/google-analytics/index.d.ts +2 -0
  155. package/dist/dev/extensions/mux-data/extension.d.ts +4 -1
  156. package/dist/dev/extensions/mux-data/extension.js +7 -2
  157. package/dist/dev/extensions/mux-data/extension.js.map +1 -1
  158. package/dist/dev/index.d.ts +5 -4
  159. package/dist/dev/index.js +3 -1
  160. package/dist/dev/internal/skins/compat-audio/skin.css +161 -41
  161. package/dist/dev/internal/skins/compat-audio/template.js +1 -1
  162. package/dist/dev/internal/skins/compat-audio/template.js.map +1 -1
  163. package/dist/dev/internal/skins/compat-live-audio/skin.css +143 -41
  164. package/dist/dev/internal/skins/compat-live-video/skin.css +234 -51
  165. package/dist/dev/internal/skins/compat-live-video/template.js +2 -0
  166. package/dist/dev/internal/skins/compat-live-video/template.js.map +1 -1
  167. package/dist/dev/internal/skins/compat-video/skin.css +242 -51
  168. package/dist/dev/internal/skins/compat-video/template.js +2 -0
  169. package/dist/dev/internal/skins/compat-video/template.js.map +1 -1
  170. package/dist/dev/internal/skins/default-audio/skin.css +72 -34
  171. package/dist/dev/internal/skins/default-live-audio/skin.css +55 -31
  172. package/dist/dev/internal/skins/default-live-video/register.js.map +1 -1
  173. package/dist/dev/internal/skins/default-live-video/skin.css +314 -49
  174. package/dist/dev/internal/skins/default-live-video/template.js +14 -0
  175. package/dist/dev/internal/skins/default-live-video/template.js.map +1 -1
  176. package/dist/dev/internal/skins/default-video/register.d.ts +1 -0
  177. package/dist/dev/internal/skins/default-video/register.js +3 -0
  178. package/dist/dev/internal/skins/default-video/register.js.map +1 -1
  179. package/dist/dev/internal/skins/default-video/skin.css +415 -55
  180. package/dist/dev/internal/skins/default-video/template.js +33 -5
  181. package/dist/dev/internal/skins/default-video/template.js.map +1 -1
  182. package/dist/dev/internal/skins/neutral-audio/skin.css +73 -34
  183. package/dist/dev/internal/skins/neutral-live-audio/skin.css +56 -31
  184. package/dist/dev/internal/skins/neutral-live-video/register.js.map +1 -1
  185. package/dist/dev/internal/skins/neutral-live-video/skin.css +300 -46
  186. package/dist/dev/internal/skins/neutral-live-video/template.js +14 -0
  187. package/dist/dev/internal/skins/neutral-live-video/template.js.map +1 -1
  188. package/dist/dev/internal/skins/neutral-video/register.js.map +1 -1
  189. package/dist/dev/internal/skins/neutral-video/skin.css +382 -57
  190. package/dist/dev/internal/skins/neutral-video/template.js +25 -11
  191. package/dist/dev/internal/skins/neutral-video/template.js.map +1 -1
  192. package/dist/dev/internal/skins/scaffold-audio/skin.css +166 -42
  193. package/dist/dev/internal/skins/scaffold-audio/template.js +1 -1
  194. package/dist/dev/internal/skins/scaffold-audio/template.js.map +1 -1
  195. package/dist/dev/internal/skins/scaffold-live-audio/skin.css +148 -42
  196. package/dist/dev/internal/skins/scaffold-live-video/skin.css +231 -53
  197. package/dist/dev/internal/skins/scaffold-live-video/template.js +2 -0
  198. package/dist/dev/internal/skins/scaffold-live-video/template.js.map +1 -1
  199. package/dist/dev/internal/skins/scaffold-video/skin.css +240 -53
  200. package/dist/dev/internal/skins/scaffold-video/template.js +3 -1
  201. package/dist/dev/internal/skins/scaffold-video/template.js.map +1 -1
  202. package/dist/dev/media/background-video/adapter.d.ts +7 -13
  203. package/dist/dev/media/background-video/adapter.js +13 -35
  204. package/dist/dev/media/background-video/adapter.js.map +1 -1
  205. package/dist/dev/media/background-video/base.d.ts +44 -0
  206. package/dist/dev/media/background-video/base.js +97 -0
  207. package/dist/dev/media/background-video/base.js.map +1 -0
  208. package/dist/dev/media/background-video/template.d.ts +3 -0
  209. package/dist/dev/media/background-video/template.js +13 -20
  210. package/dist/dev/media/background-video/template.js.map +1 -1
  211. package/dist/dev/media/dailymotion-video/adapter.d.ts +17 -0
  212. package/dist/dev/media/dailymotion-video/adapter.js +47 -0
  213. package/dist/dev/media/dailymotion-video/adapter.js.map +1 -0
  214. package/dist/dev/media/dailymotion-video/index.d.ts +2 -0
  215. package/dist/dev/media/hls-background-video/adapter.d.ts +14 -19
  216. package/dist/dev/media/hls-background-video/adapter.js +23 -35
  217. package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
  218. package/dist/dev/media/mixcloud-audio/adapter.d.ts +11 -0
  219. package/dist/dev/media/mixcloud-audio/adapter.js +52 -0
  220. package/dist/dev/media/mixcloud-audio/adapter.js.map +1 -0
  221. package/dist/dev/media/mixcloud-audio/index.d.ts +2 -0
  222. package/dist/dev/media/soundcloud-audio/adapter.d.ts +11 -0
  223. package/dist/dev/media/soundcloud-audio/adapter.js +53 -0
  224. package/dist/dev/media/soundcloud-audio/adapter.js.map +1 -0
  225. package/dist/dev/media/soundcloud-audio/index.d.ts +2 -0
  226. package/dist/dev/player/element.js +1 -5
  227. package/dist/dev/player/element.js.map +1 -1
  228. package/dist/dev/presets/background/skin.d.ts +2 -1
  229. package/dist/dev/presets/background/skin.js +2 -2
  230. package/dist/dev/presets/background/skin.js.map +1 -1
  231. package/dist/dev/presets/skin.d.ts +4 -3
  232. package/dist/dev/presets/skin.js +4 -3
  233. package/dist/dev/presets/skin.js.map +1 -1
  234. package/dist/dev/ui/captions-button/element.d.ts +2 -0
  235. package/dist/dev/ui/captions-radio-group/element.d.ts +2 -1
  236. package/dist/dev/ui/captions-radio-group/element.js +14 -1
  237. package/dist/dev/ui/captions-radio-group/element.js.map +1 -1
  238. package/dist/dev/ui/controls/element.d.ts +2 -2
  239. package/dist/dev/ui/controls/element.js +6 -3
  240. package/dist/dev/ui/controls/element.js.map +1 -1
  241. package/dist/dev/ui/dialog/element.js +13 -1
  242. package/dist/dev/ui/dialog/element.js.map +1 -1
  243. package/dist/dev/ui/gesture/element.js +3 -0
  244. package/dist/dev/ui/gesture/element.js.map +1 -1
  245. package/dist/dev/ui/media-button-element.d.ts +9 -0
  246. package/dist/dev/ui/media-button-element.js +10 -1
  247. package/dist/dev/ui/media-button-element.js.map +1 -1
  248. package/dist/dev/ui/play-button/element.d.ts +2 -0
  249. package/dist/dev/ui/playback-rate-button/element.d.ts +9 -1
  250. package/dist/dev/ui/playback-rate-button/element.js +7 -2
  251. package/dist/dev/ui/playback-rate-button/element.js.map +1 -1
  252. package/dist/dev/ui/playback-rate-radio-group/element.d.ts +4 -0
  253. package/dist/dev/ui/playback-rate-radio-group/element.js +10 -3
  254. package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
  255. package/dist/dev/ui/radio-options/controller.js +18 -5
  256. package/dist/dev/ui/radio-options/controller.js.map +1 -1
  257. package/dist/dev/ui/time-slider/markers.d.ts +48 -0
  258. package/dist/dev/ui/time-slider/markers.js +165 -0
  259. package/dist/dev/ui/time-slider/markers.js.map +1 -0
  260. package/dist/dev/version.js +1 -1
  261. package/docs/README.md +1 -1
  262. package/docs/guides/autoplay.md +2 -2
  263. package/docs/guides/background-video.md +2 -4
  264. package/docs/guides/browser-support.md +23 -15
  265. package/docs/guides/build-your-own-skin.md +3 -1
  266. package/docs/guides/cdn.md +10 -9
  267. package/docs/guides/content-security-policy.md +3 -0
  268. package/docs/guides/customize-skins.md +7 -2
  269. package/docs/guides/features.md +1 -1
  270. package/docs/guides/google-analytics.md +199 -0
  271. package/docs/guides/installation-cdn.md +4 -4
  272. package/docs/guides/installation-shadcn.md +3 -3
  273. package/docs/guides/installation-svelte.md +4 -4
  274. package/docs/guides/installation-vue.md +4 -4
  275. package/docs/guides/installation.md +4 -4
  276. package/docs/guides/internationalization.md +5 -5
  277. package/docs/guides/keyboard-shortcuts.md +11 -1
  278. package/docs/guides/llms.txt +3 -1
  279. package/docs/guides/media-sources.md +3 -0
  280. package/docs/guides/migrate-from-media-chrome.md +4 -4
  281. package/docs/guides/migrate-from-mux-player.md +9 -9
  282. package/docs/guides/migrate-from-plyr.md +8 -8
  283. package/docs/guides/migrate-from-video-js-8.md +8 -9
  284. package/docs/guides/migrate-from-vidstack.md +10 -10
  285. package/docs/guides/mux-data.md +22 -0
  286. package/docs/guides/presets.md +5 -5
  287. package/docs/guides/self-hosting.md +5 -5
  288. package/docs/guides/skins.md +21 -5
  289. package/docs/guides/timed-metadata.md +318 -0
  290. package/docs/guides/ui-components.md +1 -1
  291. package/docs/llms.txt +25 -6
  292. package/docs/reference/api/chapters-track.md +71 -0
  293. package/docs/reference/api/define-text-track.md +113 -0
  294. package/docs/reference/api/feature-playback-rate.md +54 -3
  295. package/docs/reference/api/feature-playback.md +5 -1
  296. package/docs/reference/api/feature-text-cues.md +133 -0
  297. package/docs/reference/api/feature-text-tracks.md +11 -5
  298. package/docs/reference/api/get-active-text-cues.md +69 -0
  299. package/docs/reference/api/get-text-cues.md +69 -0
  300. package/docs/reference/api/get-text-tracks.md +41 -0
  301. package/docs/reference/api/hls-metadata-track.md +48 -0
  302. package/docs/reference/api/html-create-player.md +2 -2
  303. package/docs/reference/api/llms.txt +13 -1
  304. package/docs/reference/api/media-capabilities.md +4 -4
  305. package/docs/reference/api/player-store.md +15 -7
  306. package/docs/reference/api/preset-audio.md +15 -5
  307. package/docs/reference/api/preset-background.md +2 -2
  308. package/docs/reference/api/preset-live-audio.md +15 -5
  309. package/docs/reference/api/preset-live-video.md +14 -5
  310. package/docs/reference/api/preset-video.md +14 -5
  311. package/docs/reference/api/resolve-adapter-type.md +4 -1
  312. package/docs/reference/api/ui-element.md +2 -2
  313. package/docs/reference/components/alert-dialog.md +21 -16
  314. package/docs/reference/components/audio-compat-skin.md +8 -2
  315. package/docs/reference/components/audio-neutral-skin.md +2 -2
  316. package/docs/reference/components/audio-scaffold-skin.md +2 -2
  317. package/docs/reference/components/audio-skin.md +2 -2
  318. package/docs/reference/components/audio-track-radio-group.md +2 -2
  319. package/docs/reference/components/audio.md +19 -1
  320. package/docs/reference/components/background-video-skin.md +1 -1
  321. package/docs/reference/components/background-video.md +26 -11
  322. package/docs/reference/components/buffering-indicator.md +2 -2
  323. package/docs/reference/components/captions-radio-group.md +3 -3
  324. package/docs/reference/components/cloudflare-video.md +1 -1
  325. package/docs/reference/components/controls.md +16 -3
  326. package/docs/reference/components/dailymotion-video.md +192 -0
  327. package/docs/reference/components/dash-video.md +20 -2
  328. package/docs/reference/components/dialog.md +49 -22
  329. package/docs/reference/components/error-dialog.md +13 -10
  330. package/docs/reference/components/gesture.md +2 -2
  331. package/docs/reference/components/google-analytics.md +51 -0
  332. package/docs/reference/components/google-cast.md +1 -1
  333. package/docs/reference/components/hls-audio.md +56 -2
  334. package/docs/reference/components/hls-background-video.md +25 -5
  335. package/docs/reference/components/hls-video.md +99 -7
  336. package/docs/reference/components/hlsjs-video.md +53 -12
  337. package/docs/reference/components/hotkey.md +2 -2
  338. package/docs/reference/components/live-audio-compat-skin.md +8 -2
  339. package/docs/reference/components/live-audio-neutral-skin.md +2 -2
  340. package/docs/reference/components/live-audio-scaffold-skin.md +2 -2
  341. package/docs/reference/components/live-audio-skin.md +2 -2
  342. package/docs/reference/components/live-video-compat-skin.md +12 -2
  343. package/docs/reference/components/live-video-neutral-skin.md +6 -2
  344. package/docs/reference/components/live-video-scaffold-skin.md +6 -2
  345. package/docs/reference/components/live-video-skin.md +6 -2
  346. package/docs/reference/components/llms.txt +10 -5
  347. package/docs/reference/components/mixcloud-audio.md +203 -0
  348. package/docs/reference/components/mux-audio.md +35 -2
  349. package/docs/reference/components/mux-background-video.md +1 -1
  350. package/docs/reference/components/mux-data.md +20 -2
  351. package/docs/reference/components/mux-video.md +18 -2
  352. package/docs/reference/components/native-hls-video.md +32 -2
  353. package/docs/reference/components/play-button.md +7 -5
  354. package/docs/reference/components/playback-rate-button.md +26 -7
  355. package/docs/reference/components/playback-rate-radio-group.md +7 -4
  356. package/docs/reference/components/player.md +3 -3
  357. package/docs/reference/components/playerjs-video.md +2 -2
  358. package/docs/reference/components/quality-radio-group.md +2 -2
  359. package/docs/reference/components/shaka-video.md +2 -2
  360. package/docs/reference/components/soundcloud-audio.md +227 -0
  361. package/docs/reference/components/spotify-audio.md +3 -3
  362. package/docs/reference/components/tiktok-video.md +3 -3
  363. package/docs/reference/components/time-slider-markers.md +194 -0
  364. package/docs/reference/components/time-slider.md +14 -0
  365. package/docs/reference/components/twitch-video.md +2 -3
  366. package/docs/reference/components/video-compat-skin.md +12 -2
  367. package/docs/reference/components/video-neutral-skin.md +6 -2
  368. package/docs/reference/components/video-scaffold-skin.md +6 -2
  369. package/docs/reference/components/video-skin.md +6 -2
  370. package/docs/reference/components/video.md +19 -1
  371. package/docs/reference/components/vimeo-video.md +1 -1
  372. package/docs/reference/components/wistia-video.md +1 -1
  373. package/docs/reference/components/youtube-video.md +1 -1
  374. package/package.json +60 -40
@@ -218,7 +218,11 @@
218
218
 
219
219
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop {
220
220
  z-index: 40;
221
+ transition-property: opacity;
222
+ transition-duration: .15s;
223
+ transition-duration: var(--media-duration-slower);
221
224
  background-color: #000000bf;
225
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
222
226
  position: absolute;
223
227
  inset: 0;
224
228
  }
@@ -227,6 +231,18 @@
227
231
  display: none;
228
232
  }
229
233
 
234
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop[data-ending-style] {
235
+ transition-duration: var(--media-duration);
236
+ }
237
+
238
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop[data-scope="document"] {
239
+ position: fixed;
240
+ }
241
+
242
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {
243
+ opacity: 0;
244
+ }
245
+
230
246
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-close {
231
247
  height: calc(var(--media-spacing) * 8);
232
248
  width: auto;
@@ -251,8 +267,12 @@
251
267
  background-color: var(--media-popover);
252
268
  padding: calc(var(--media-spacing) * 5);
253
269
  color: var(--media-popover-foreground);
270
+ transition-property: opacity, scale;
271
+ transition-duration: .15s;
272
+ transition-duration: var(--media-duration-slower);
254
273
  border-radius: .5rem;
255
274
  outline-style: none;
275
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
256
276
  display: grid;
257
277
  position: absolute;
258
278
  top: 50%;
@@ -272,6 +292,15 @@
272
292
  outline-color: var(--media-ring);
273
293
  }
274
294
 
295
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup[data-ending-style] {
296
+ transition-duration: var(--media-duration);
297
+ }
298
+
299
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup[data-scope="document"] {
300
+ max-height: calc(100dvh - 2rem);
301
+ position: fixed;
302
+ }
303
+
275
304
  @media (forced-colors: active) {
276
305
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup {
277
306
  border: 1px solid canvastext;
@@ -284,6 +313,11 @@
284
313
  }
285
314
  }
286
315
 
316
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup:is([data-starting-style], [data-ending-style]) {
317
+ scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);
318
+ opacity: 0;
319
+ }
320
+
287
321
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-title {
288
322
  font-size: 1.125rem;
289
323
  font-weight: 700;
@@ -535,12 +569,30 @@
535
569
  }
536
570
  }
537
571
 
572
+ @container media-root (width < 15rem) {
573
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-title {
574
+ display: none;
575
+ }
576
+ }
577
+
538
578
  @container media-root (width < 42rem) {
539
579
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-title {
540
580
  top: calc(var(--media-spacing) * 3.5);
541
581
  }
542
582
  }
543
583
 
584
+ .media-poster > slot::slotted(img) {
585
+ object-fit: var(--media-object-fit, contain);
586
+ object-position: var(--media-object-position, center);
587
+ width: 100%;
588
+ display: block;
589
+ height: 100% !important;
590
+ }
591
+
592
+ .media-poster > slot::slotted(img:not([src]):not([srcset])) {
593
+ visibility: hidden;
594
+ }
595
+
544
596
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-poster {
545
597
  width: 100%;
546
598
  height: 100%;
@@ -731,6 +783,12 @@
731
783
  grid-column-start: 1;
732
784
  }
733
785
 
786
+ @container media-root (width < 15rem) {
787
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-captions-button {
788
+ display: none;
789
+ }
790
+ }
791
+
734
792
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) :where(.media-captions-button)[data-active] .media-captions-button-off-icon, :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-captions-button-on-icon {
735
793
  display: none;
736
794
  }
@@ -773,6 +831,10 @@
773
831
  outline: 2px solid;
774
832
  }
775
833
 
834
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-menu-radio-item[data-custom] {
835
+ font-style: italic;
836
+ }
837
+
776
838
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-menu-radio-item[data-highlighted] {
777
839
  background-color: var(--media-button-highlight);
778
840
  }
@@ -791,6 +853,14 @@
791
853
  }
792
854
  }
793
855
 
856
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-menu-badge {
857
+ background-color: var(--media-muted);
858
+ padding-inline: calc(var(--media-spacing) * 1.5);
859
+ font-size: calc(var(--media-spacing) * 2.75);
860
+ border-radius: .25rem;
861
+ font-weight: 600;
862
+ }
863
+
794
864
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-menu-content {
795
865
  overscroll-behavior: none;
796
866
  max-height: 100%;
@@ -1384,11 +1454,15 @@
1384
1454
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-backdrop {
1385
1455
  pointer-events: none;
1386
1456
  z-index: 10;
1387
- background-image: linear-gradient(to top, #000000b3, #0003, #00000080);
1457
+ background-image: var(--media-controls-gradient);
1388
1458
  position: absolute;
1389
1459
  inset: 0;
1390
1460
  }
1391
1461
 
1462
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-backdrop:not([data-started]) {
1463
+ visibility: var(--media-controls-before-start, hidden);
1464
+ }
1465
+
1392
1466
  :where(:where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-buffering):not([data-visible]) .video-controls-backdrop:not([data-visible]) {
1393
1467
  display: none;
1394
1468
  }
@@ -1457,7 +1531,7 @@
1457
1531
  transition-duration: .15s;
1458
1532
  transition-duration: var(--media-duration-instant);
1459
1533
  transition-timing-function: cubic-bezier(0, 0, .2, 1);
1460
- display: none;
1534
+ display: flex;
1461
1535
  position: absolute;
1462
1536
  top: 50%;
1463
1537
  left: 50%;
@@ -1503,24 +1577,18 @@
1503
1577
  }
1504
1578
  }
1505
1579
 
1506
- @container media-root (width >= 22.5rem) {
1507
- :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center {
1508
- display: flex;
1509
- }
1510
- }
1511
-
1512
1580
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-button {
1513
1581
  background-color: #0006 !important;
1514
1582
  }
1515
1583
 
1516
1584
  @media (hover: hover) {
1517
1585
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-button:hover {
1518
- background-color: #000000d9 !important;
1586
+ background-color: #0009 !important;
1519
1587
  }
1520
1588
  }
1521
1589
 
1522
1590
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-button:focus-visible, :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-button[aria-expanded="true"] {
1523
- background-color: #000000d9 !important;
1591
+ background-color: #0009 !important;
1524
1592
  }
1525
1593
 
1526
1594
  @media (forced-colors: active) {
@@ -1560,11 +1628,25 @@
1560
1628
  height: calc(var(--media-spacing) * 14.5) !important;
1561
1629
  }
1562
1630
 
1631
+ @container media-root (width < 22.5rem) {
1632
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-play {
1633
+ width: calc(var(--media-spacing) * 10) !important;
1634
+ height: calc(var(--media-spacing) * 10) !important;
1635
+ }
1636
+ }
1637
+
1563
1638
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-play-icon {
1564
1639
  width: calc(var(--media-spacing) * 7) !important;
1565
1640
  height: calc(var(--media-spacing) * 7) !important;
1566
1641
  }
1567
1642
 
1643
+ @container media-root (width < 22.5rem) {
1644
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-center-play-icon {
1645
+ width: calc(var(--media-spacing) * 5) !important;
1646
+ height: calc(var(--media-spacing) * 5) !important;
1647
+ }
1648
+ }
1649
+
1568
1650
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-content {
1569
1651
  pointer-events: none;
1570
1652
  z-index: 30;
@@ -1611,6 +1693,10 @@
1611
1693
  position: absolute;
1612
1694
  }
1613
1695
 
1696
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-top:not([data-started]) {
1697
+ visibility: var(--media-controls-before-start, hidden);
1698
+ }
1699
+
1614
1700
  :where(:where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-content):not([data-visible]) .video-controls-top {
1615
1701
  pointer-events: none;
1616
1702
  opacity: 0;
@@ -1665,6 +1751,16 @@
1665
1751
  }
1666
1752
  }
1667
1753
 
1754
+ @container not style(--media-controls-before-start: visible) {
1755
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-top:not([data-started]) {
1756
+ opacity: 0;
1757
+ }
1758
+ }
1759
+
1760
+ :where(:where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-content):not([data-started]) .video-controls-video-bottom {
1761
+ visibility: var(--media-controls-before-start, hidden);
1762
+ }
1763
+
1668
1764
  @media (forced-colors: active) {
1669
1765
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-video-bottom {
1670
1766
  padding-inline: calc(var(--media-spacing) * 2);
@@ -1675,6 +1771,12 @@
1675
1771
  }
1676
1772
  }
1677
1773
 
1774
+ @container not style(--media-controls-before-start: visible) {
1775
+ :where(:where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-content):not([data-started]) .video-controls-video-bottom {
1776
+ opacity: 0;
1777
+ }
1778
+ }
1779
+
1678
1780
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-time-current-value {
1679
1781
  display: none;
1680
1782
  }
@@ -1821,6 +1923,9 @@
1821
1923
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-container, :where(.media-skin[data-theme="compat"][data-preset="live-video"]).media-container {
1822
1924
  border-radius: var(--media-video-border-radius);
1823
1925
  width: 100%;
1926
+ min-width: 0;
1927
+ height: 100%;
1928
+ min-height: 0;
1824
1929
  font-family: var(--media-font-family, "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif);
1825
1930
  font-size: calc(var(--media-spacing) * 3.25);
1826
1931
  color: var(--media-foreground);
@@ -1852,48 +1957,58 @@
1852
1957
  }
1853
1958
 
1854
1959
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-video, :where(.media-skin[data-theme="compat"][data-preset="live-video"]).media-video {
1855
- aspect-ratio: 16 / 9;
1856
1960
  background-color: #000;
1857
1961
  }
1962
+
1963
+ .media-container > slot::slotted(video), :scope.media-container > slot::slotted(video) {
1964
+ border-radius: inherit;
1965
+ object-fit: var(--media-object-fit, contain);
1966
+ object-position: var(--media-object-position, center);
1967
+ width: 100%;
1968
+ max-width: 100%;
1969
+ margin: 0;
1970
+ display: block;
1971
+ height: 100% !important;
1972
+ }
1858
1973
  }
1859
1974
 
1860
1975
  @layer utilities;
1861
1976
 
1862
1977
  @layer base.theme {
1863
1978
  .media-skin {
1864
- --media-background: oklch(0% 0 0);
1865
- --media-foreground: oklch(100% 0 0);
1866
- --media-controls: oklch(0% 0 0 / .35);
1979
+ --media-background: #000;
1980
+ --media-foreground: #fff;
1981
+ --media-controls: #00000059;
1867
1982
  --media-controls-foreground: var(--media-foreground);
1868
- --media-popover: oklch(100% 0 0 / .1);
1983
+ --media-popover: #ffffff1a;
1869
1984
  --media-popover-foreground: var(--media-foreground);
1870
1985
  --media-primary: var(--media-accent-color, var(--media-default-accent-color));
1871
1986
  --media-primary-foreground: var(--media-accent-text-color, var(--media-default-accent-text-color));
1872
- --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
1987
+ --media-accent: var(--media-accent-color, #ffffff1a);
1873
1988
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
1874
- --media-muted: oklch(100% 0 0 / .15);
1875
- --media-muted-foreground: oklch(100% 0 0 / .65);
1876
- --media-border: oklch(0% 0 0 / .1);
1877
- --media-ring: oklch(100% 0 0);
1878
- --media-backdrop: oklch(0% 0 0);
1879
- --media-live-color: oklch(65% .22 27);
1880
- --media-shadow-surface: 0 1px 3px 0 oklch(0% 0 0 / .15), 0 1px 2px -1px oklch(0% 0 0 / .15);
1989
+ --media-muted: #ffffff26;
1990
+ --media-muted-foreground: #ffffffa6;
1991
+ --media-border: #0000001a;
1992
+ --media-ring: #fff;
1993
+ --media-backdrop: #000;
1994
+ --media-live-color: #f9423d;
1995
+ --media-shadow-surface: 0 1px 3px 0 #00000026, 0 1px 2px -1px #00000026;
1881
1996
  --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff1a, inset 0 0 0 1px #ffffff0d;
1882
1997
  --media-shadow-thumb: 0 0 0 1px #0000001a, 0 1px 3px 0 #00000059, 0 1px 2px -1px #00000059;
1883
1998
  --media-shadow-tooltip: 0 0 0 1px var(--media-border), var(--media-shadow-surface);
1884
- --media-shadow-separator: 0 1px 0 0 oklch(100% 0 0 / .075);
1999
+ --media-shadow-separator: 0 1px 0 0 #ffffff13;
1885
2000
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
1886
- --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
2001
+ --media-shadow-subtle-current-color: transparent;
1887
2002
  --media-text-shadow-dialog: 0 1px 0 #00000040;
1888
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
2003
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
1889
2004
  --media-backdrop-filter-indicator: blur(8px);
1890
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
2005
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
1891
2006
  --media-control-corner-shape: round;
1892
2007
  --media-control-radius: 99px;
1893
2008
  --media-control-size: calc(var(--media-spacing) * 9);
1894
2009
  --media-controls-radius: var(--media-control-radius);
1895
- --media-default-accent-color: oklch(100% 0 0);
1896
- --media-default-accent-text-color: oklch(0% 0 0);
2010
+ --media-default-accent-color: #fff;
2011
+ --media-default-accent-text-color: #000;
1897
2012
  --media-duration-instant: 50ms;
1898
2013
  --media-duration-fast: .1s;
1899
2014
  --media-duration: .15s;
@@ -1930,16 +2045,31 @@
1930
2045
  --media-slider-preview-label-offset: calc(var(--media-spacing) * 10.5);
1931
2046
  --media-video-border-radius: var(--media-border-radius, 28px);
1932
2047
  --media-scale: 1;
1933
- --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 30%, transparent);
2048
+ --media-scrollbar-thumb-color: #80808080;
1934
2049
  --media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
1935
2050
  scrollbar-color: var(--media-scrollbar-thumb-color) transparent;
1936
2051
  scrollbar-width: thin;
1937
2052
  }
1938
2053
 
2054
+ @supports (color: color-mix(in oklab, red, red)) {
2055
+ .media-skin {
2056
+ --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
2057
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
2058
+ --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
2059
+ --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 30%, transparent);
2060
+ }
2061
+ }
2062
+
2063
+ @supports (color: oklch(0 0 0)) {
2064
+ .media-skin {
2065
+ --media-live-color: oklch(65% .22 27);
2066
+ }
2067
+ }
2068
+
1939
2069
  @supports (color: contrast-color(red)) {
1940
2070
  .media-skin {
1941
2071
  --media-primary-foreground: var(--media-accent-text-color, contrast-color(var(--media-primary)));
1942
- --media-accent-foreground: var(--media-accent-text-color, contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, oklch(0% 0 0)))));
2072
+ --media-accent-foreground: var(--media-accent-text-color, contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, #000))));
1943
2073
  }
1944
2074
  }
1945
2075
 
@@ -1987,24 +2117,66 @@
1987
2117
  @layer base.preset {
1988
2118
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1989
2119
  --media-frame-border: var(--media-border-color, #0000001a);
1990
- --media-controls-gradient: linear-gradient(to top,
1991
- color-mix(in oklab, var(--media-backdrop) 40%, transparent),
1992
- color-mix(in oklab, var(--media-backdrop) 20%, transparent),
1993
- color-mix(in oklab, var(--media-backdrop) 50%, transparent));
2120
+ --media-controls-gradient-height: max(40%, calc(var(--media-spacing) * 40));
2121
+ --media-controls-bottom-gradient-height: max(50%, calc(var(--media-spacing) * 60));
1994
2122
  --media-caption-controls-y: calc(var(--media-spacing) * -16);
1995
2123
  --media-slider-preview-offset: calc(var(--media-spacing) * 9);
1996
- --media-thumbnail-gradient: linear-gradient(to top,
1997
- color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1998
- color-mix(in oklab, var(--media-backdrop) 10%, transparent),
1999
- transparent);
2124
+ }
2125
+
2126
+ @supports (color: color-mix(in oklab, red, red)) {
2127
+ .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
2128
+ --media-controls-gradient: linear-gradient(to top,
2129
+ color-mix(in oklab, var(--media-backdrop) 60%, transparent),
2130
+ color-mix(in oklab, var(--media-backdrop) 50.7%, transparent) 25%,
2131
+ color-mix(in oklab, var(--media-backdrop) 30%, transparent) 50%,
2132
+ color-mix(in oklab, var(--media-backdrop) 9.3%, transparent) 75%,
2133
+ transparent);
2134
+ --media-controls-top-gradient: linear-gradient(to bottom,
2135
+ color-mix(in oklab, var(--media-backdrop) 55%, transparent),
2136
+ color-mix(in oklab, var(--media-backdrop) 46.48%, transparent) 25%,
2137
+ color-mix(in oklab, var(--media-backdrop) 27.5%, transparent) 50%,
2138
+ color-mix(in oklab, var(--media-backdrop) 8.53%, transparent) 75%,
2139
+ transparent);
2140
+ --media-thumbnail-gradient: linear-gradient(to top,
2141
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2142
+ color-mix(in oklab, var(--media-backdrop) 10%, transparent),
2143
+ transparent);
2144
+ }
2145
+
2146
+ .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2147
+ --media-controls-gradient: linear-gradient(to top,
2148
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2149
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2150
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2151
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2152
+ transparent);
2153
+ --media-controls-top-gradient: linear-gradient(to bottom,
2154
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2155
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2156
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2157
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2158
+ transparent);
2159
+ --media-indicator-gradient: linear-gradient(to bottom,
2160
+ color-mix(in oklab, var(--media-backdrop) 35%, transparent),
2161
+ color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
2162
+ transparent);
2163
+ }
2000
2164
  }
2001
2165
 
2002
2166
  @supports (color: oklch(from red l c h)) and (background-image: linear-gradient(in oklab, red, red)) {
2003
2167
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
2004
2168
  --media-controls-gradient: linear-gradient(to top in oklab,
2005
- oklch(from var(--media-backdrop) l c h / .4),
2006
- oklch(from var(--media-backdrop) l c h / .2),
2007
- oklch(from var(--media-backdrop) l c h / .5));
2169
+ oklch(from var(--media-backdrop) l c h / .6),
2170
+ oklch(from var(--media-backdrop) l c h / .507) 25%,
2171
+ oklch(from var(--media-backdrop) l c h / .3) 50%,
2172
+ oklch(from var(--media-backdrop) l c h / .093) 75%,
2173
+ transparent);
2174
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2175
+ oklch(from var(--media-backdrop) l c h / .55),
2176
+ oklch(from var(--media-backdrop) l c h / .4647) 25%,
2177
+ oklch(from var(--media-backdrop) l c h / .275) 50%,
2178
+ oklch(from var(--media-backdrop) l c h / .0853) 75%,
2179
+ transparent);
2008
2180
  }
2009
2181
  }
2010
2182
 
@@ -2019,18 +2191,14 @@
2019
2191
 
2020
2192
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2021
2193
  --media-frame-border: var(--media-border-color, #00000026);
2022
- --media-controls-gradient: linear-gradient(to top,
2023
- color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2024
- color-mix(in oklab, var(--media-backdrop) 20%, transparent));
2025
- --media-indicator-gradient: linear-gradient(to bottom,
2026
- color-mix(in oklab, var(--media-backdrop) 35%, transparent),
2027
- color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
2028
- transparent);
2194
+ --media-controls-gradient-height: 40%;
2195
+ --media-controls-bottom-gradient-height: max(40%, calc(var(--media-spacing) * 44));
2029
2196
  --media-caption-controls-y: calc(var(--media-spacing) * -14);
2030
2197
  --media-slider-preview-offset: calc(var(--media-spacing) * 11);
2031
2198
  }
2032
2199
 
2033
2200
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="compat"] {
2201
+ --media-controls-gradient: linear-gradient(to top, #00000080, transparent 40% 60%, #0006);
2034
2202
  --media-caption-controls-y: calc(var(--media-spacing) * -18);
2035
2203
  }
2036
2204
 
@@ -2042,7 +2210,16 @@
2042
2210
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2043
2211
  --media-controls-gradient: linear-gradient(to top in oklab,
2044
2212
  oklch(from var(--media-backdrop) l c h / .5),
2045
- oklch(from var(--media-backdrop) l c h / .2));
2213
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2214
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2215
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2216
+ transparent);
2217
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2218
+ oklch(from var(--media-backdrop) l c h / .5),
2219
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2220
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2221
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2222
+ transparent);
2046
2223
  }
2047
2224
  }
2048
2225
 
@@ -2223,7 +2400,7 @@
2223
2400
  @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
2224
2401
  .media-skin {
2225
2402
  --media-popover: var(--media-background);
2226
- --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 80%, transparent);
2403
+ --media-scrollbar-thumb-color: currentColor;
2227
2404
  --media-backdrop-filter-surface: none;
2228
2405
  --media-backdrop-filter-indicator: none;
2229
2406
  --media-backdrop-filter-dialog: none;
@@ -2231,6 +2408,12 @@
2231
2408
  scrollbar-width: auto;
2232
2409
  }
2233
2410
 
2411
+ @supports (color: color-mix(in oklab, red, red)) {
2412
+ .media-skin {
2413
+ --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 80%, transparent);
2414
+ }
2415
+ }
2416
+
2234
2417
  @supports (color: oklch(from currentColor l c h)) {
2235
2418
  .media-skin {
2236
2419
  --media-scrollbar-thumb-color: oklch(from currentColor l c h / .8);
@@ -164,6 +164,8 @@ const template = createTemplate(`<media-container class="media-skin media-contai
164
164
  <media-menu-radio-item class="media-menu-radio-item">
165
165
  <span data-part="label">
166
166
  </span>
167
+ <span data-part="badge" class="media-menu-badge">
168
+ </span>
167
169
  <media-menu-item-indicator force-mount class="media-menu-indicator">
168
170
  <media-icon family="compat" name="check" class="media-menu-radio-icon">
169
171
  </media-icon>
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/compat-live-video/template.ts"],"sourcesContent":["import { createTemplate } from '@videojs/utils/dom';\n\n/** Static template rendered from the finalized VJSC module graph. */\nexport const template =\n createTemplate(/* html */ `<media-container class=\"media-skin media-container media-video\" data-theme=\"compat\" data-preset=\"live-video\">\n<slot>\n</slot>\n<media-poster class=\"media-poster\">\n<slot name=\"poster\">\n<img alt=\"\" decoding=\"async\" class=\"media-poster-image\">\n</slot>\n</media-poster>\n<media-buffering-indicator class=\"media-buffering-indicator\">\n<media-icon family=\"compat\" name=\"spinner\" class=\"media-buffering-indicator-spinner-icon\">\n</media-icon>\n</media-buffering-indicator>\n<media-error-dialog>\n<media-dialog-backdrop class=\"media-dialog-backdrop\">\n</media-dialog-backdrop>\n<media-dialog-popup class=\"media-dialog-popup\">\n<media-dialog-title class=\"media-dialog-title\">\n</media-dialog-title>\n<media-dialog-description class=\"media-dialog-description\">\n</media-dialog-description>\n<media-dialog-close class=\"media-button media-dialog-close\">\n</media-dialog-close>\n</media-dialog-popup>\n</media-error-dialog>\n<media-title class=\"media-title\">\n</media-title>\n<media-controls>\n<media-buffering-indicator class=\"video-controls-buffering\">\n<media-controls-backdrop class=\"video-controls-backdrop\">\n</media-controls-backdrop>\n<media-controls-content class=\"video-controls-content\">\n<media-tooltip-group>\n<media-controls-group class=\"video-controls-top\">\n<media-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-WvnGKrjP-0-trigger\">\n<media-icon family=\"compat\" name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-cast-button class=\"media-button media-cast-button\" id=\"vjs-WvnGKrjP-0-2-trigger\">\n<media-icon family=\"compat\" name=\"cast-enter\" class=\"media-button-icon media-cast-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"cast-exit\" class=\"media-button-icon media-cast-button-exit-icon\">\n</media-icon>\n</media-cast-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-2-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-pip-button class=\"media-button media-pip-button\" id=\"vjs-WvnGKrjP-0-3-trigger\">\n<media-icon family=\"compat\" name=\"pip-enter\" class=\"media-button-icon media-pip-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pip-exit\" class=\"media-button-icon media-pip-button-exit-icon\">\n</media-icon>\n</media-pip-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-3-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-fullscreen-button class=\"media-button media-fullscreen-button\" id=\"vjs-WvnGKrjP-0-4-trigger\">\n<media-icon family=\"compat\" name=\"fullscreen-enter\" class=\"media-button-icon media-fullscreen-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"fullscreen-exit\" class=\"media-button-icon media-fullscreen-button-exit-icon\">\n</media-icon>\n</media-fullscreen-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n</media-controls-group>\n<media-controls-group class=\"video-controls-center\">\n<media-play-button class=\"media-button media-play-button video-controls-center-button video-controls-center-play\" id=\"vjs-WvnGKrjP-0-5-trigger\">\n<media-icon family=\"compat\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon video-controls-center-play-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-5-trigger\" disabled side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n</media-controls-group>\n<div class=\"video-controls-bottom video-controls-video-bottom\">\n<media-controls-group class=\"video-controls-row\">\n<media-controls-group class=\"video-controls-group video-controls-start\">\n<media-play-button class=\"media-button media-play-button\" id=\"vjs-WvnGKrjP-0-6-trigger\">\n<media-icon family=\"compat\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-6-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-live-button class=\"media-button media-live-button\">\n<div aria-hidden=\"true\" class=\"media-live-button-dot\">\n</div>\n<media-text token=\"live.badge\">Live</media-text>\n</media-live-button>\n<media-mute-button commandfor=\"vjs-vjL9cA1N-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-WvnGKrjP-0-7-trigger\">\n<media-icon family=\"compat\" name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-7-trigger\" delay=\"0\" disabled side=\"top\" sticky class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-volume-popover open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-volume-popover-popup\" id=\"vjs-vjL9cA1N-0-popup\">\n<media-volume-slider class=\"media-volume-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n<media-slider-track class=\"media-volume-slider-track\">\n<media-slider-fill class=\"media-volume-slider-fill\">\n</media-slider-fill>\n</media-slider-track>\n<media-slider-thumb class=\"media-volume-slider-thumb\">\n</media-slider-thumb>\n</media-volume-slider>\n</media-volume-popover>\n</media-controls-group>\n<media-controls-group class=\"video-controls-group\">\n<media-captions-button commandfor=\"vjs-iDIj4hLJ-0-popup\" class=\"media-button media-captions-button\" id=\"vjs-WvnGKrjP-0-8-trigger\">\n<media-icon family=\"compat\" name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-8-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-menu side=\"top\" align=\"center\" class=\"media-popup media-popup-safe-area media-menu-popup\" id=\"vjs-iDIj4hLJ-0-popup\">\n<media-menu-content class=\"media-menu-content\">\n<media-captions-radio-group class=\"media-menu-radio-group\">\n<template>\n<media-menu-radio-item class=\"media-menu-radio-item\">\n<span data-part=\"label\">\n</span>\n<media-menu-item-indicator force-mount class=\"media-menu-indicator\">\n<media-icon family=\"compat\" name=\"check\" class=\"media-menu-radio-icon\">\n</media-icon>\n</media-menu-item-indicator>\n</media-menu-radio-item>\n</template>\n</media-captions-radio-group>\n</media-menu-content>\n</media-menu>\n</media-controls-group>\n</media-controls-group>\n</div>\n</media-tooltip-group>\n</media-controls-content>\n</media-buffering-indicator>\n</media-controls>\n<media-hotkey keys=\"Space\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"k\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"m\" action=\"toggleMuted\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowUp\" action=\"volumeStep\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowDown\" action=\"volumeStep\">\n</media-hotkey>\n<media-hotkey keys=\"f\" action=\"toggleFullscreen\">\n</media-hotkey>\n<media-hotkey keys=\"c\" action=\"toggleSubtitles\">\n</media-hotkey>\n<media-hotkey keys=\"i\" action=\"togglePictureInPicture\">\n</media-hotkey>\n<media-gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\">\n</media-gesture>\n<media-gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\">\n</media-gesture>\n<media-gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\">\n</media-gesture>\n<media-status-announcer class=\"media-status-announcer\">\n</media-status-announcer>\n<div aria-hidden=\"true\" class=\"media-indicator-group\">\n<media-volume-indicator class=\"media-indicator media-volume-indicator\">\n<media-volume-indicator-fill class=\"media-volume-indicator-fill\">\n<media-icon family=\"compat\" name=\"volume-high\" class=\"media-volume-indicator-icon media-volume-indicator-high-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-low\" class=\"media-volume-indicator-icon media-volume-indicator-low-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-off\" class=\"media-volume-indicator-icon media-volume-indicator-off-icon\">\n</media-icon>\n<media-volume-indicator-value class=\"media-volume-indicator-value\">\n</media-volume-indicator-value>\n</media-volume-indicator-fill>\n</media-volume-indicator>\n<media-status-indicator actions=\"toggleSubtitles,toggleFullscreen,togglePictureInPicture\" class=\"media-indicator media-status-indicator\">\n<media-icon family=\"compat\" name=\"captions-on\" class=\"media-status-indicator-icon media-status-indicator-captions-on-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"captions-off\" class=\"media-status-indicator-icon media-status-indicator-captions-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"fullscreen-enter\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"fullscreen-exit\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-exit-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pip-enter\" class=\"media-status-indicator-icon media-status-indicator-pip-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pip-exit\" class=\"media-status-indicator-icon media-status-indicator-pip-exit-icon\">\n</media-icon>\n<media-status-indicator-value>\n</media-status-indicator-value>\n</media-status-indicator>\n</div>\n</media-container>`);\n"],"mappings":";;;AAGA,MAAa,WACX,eAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAyOT"}
1
+ {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/compat-live-video/template.ts"],"sourcesContent":["import { createTemplate } from '@videojs/utils/dom';\n\n/** Static template rendered from the finalized VJSC module graph. */\nexport const template =\n createTemplate(/* html */ `<media-container class=\"media-skin media-container media-video\" data-theme=\"compat\" data-preset=\"live-video\">\n<slot>\n</slot>\n<media-poster class=\"media-poster\">\n<slot name=\"poster\">\n<img alt=\"\" decoding=\"async\" class=\"media-poster-image\">\n</slot>\n</media-poster>\n<media-buffering-indicator class=\"media-buffering-indicator\">\n<media-icon family=\"compat\" name=\"spinner\" class=\"media-buffering-indicator-spinner-icon\">\n</media-icon>\n</media-buffering-indicator>\n<media-error-dialog>\n<media-dialog-backdrop class=\"media-dialog-backdrop\">\n</media-dialog-backdrop>\n<media-dialog-popup class=\"media-dialog-popup\">\n<media-dialog-title class=\"media-dialog-title\">\n</media-dialog-title>\n<media-dialog-description class=\"media-dialog-description\">\n</media-dialog-description>\n<media-dialog-close class=\"media-button media-dialog-close\">\n</media-dialog-close>\n</media-dialog-popup>\n</media-error-dialog>\n<media-title class=\"media-title\">\n</media-title>\n<media-controls>\n<media-buffering-indicator class=\"video-controls-buffering\">\n<media-controls-backdrop class=\"video-controls-backdrop\">\n</media-controls-backdrop>\n<media-controls-content class=\"video-controls-content\">\n<media-tooltip-group>\n<media-controls-group class=\"video-controls-top\">\n<media-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-WvnGKrjP-0-trigger\">\n<media-icon family=\"compat\" name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-cast-button class=\"media-button media-cast-button\" id=\"vjs-WvnGKrjP-0-2-trigger\">\n<media-icon family=\"compat\" name=\"cast-enter\" class=\"media-button-icon media-cast-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"cast-exit\" class=\"media-button-icon media-cast-button-exit-icon\">\n</media-icon>\n</media-cast-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-2-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-pip-button class=\"media-button media-pip-button\" id=\"vjs-WvnGKrjP-0-3-trigger\">\n<media-icon family=\"compat\" name=\"pip-enter\" class=\"media-button-icon media-pip-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pip-exit\" class=\"media-button-icon media-pip-button-exit-icon\">\n</media-icon>\n</media-pip-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-3-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-fullscreen-button class=\"media-button media-fullscreen-button\" id=\"vjs-WvnGKrjP-0-4-trigger\">\n<media-icon family=\"compat\" name=\"fullscreen-enter\" class=\"media-button-icon media-fullscreen-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"fullscreen-exit\" class=\"media-button-icon media-fullscreen-button-exit-icon\">\n</media-icon>\n</media-fullscreen-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup media-tooltip-screen-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n</media-controls-group>\n<media-controls-group class=\"video-controls-center\">\n<media-play-button class=\"media-button media-play-button video-controls-center-button video-controls-center-play\" id=\"vjs-WvnGKrjP-0-5-trigger\">\n<media-icon family=\"compat\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon video-controls-center-play-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-5-trigger\" disabled side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n</media-controls-group>\n<div class=\"video-controls-bottom video-controls-video-bottom\">\n<media-controls-group class=\"video-controls-row\">\n<media-controls-group class=\"video-controls-group video-controls-start\">\n<media-play-button class=\"media-button media-play-button\" id=\"vjs-WvnGKrjP-0-6-trigger\">\n<media-icon family=\"compat\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-6-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-live-button class=\"media-button media-live-button\">\n<div aria-hidden=\"true\" class=\"media-live-button-dot\">\n</div>\n<media-text token=\"live.badge\">Live</media-text>\n</media-live-button>\n<media-mute-button commandfor=\"vjs-vjL9cA1N-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-WvnGKrjP-0-7-trigger\">\n<media-icon family=\"compat\" name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-7-trigger\" delay=\"0\" disabled side=\"top\" sticky class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-volume-popover open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-volume-popover-popup\" id=\"vjs-vjL9cA1N-0-popup\">\n<media-volume-slider class=\"media-volume-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n<media-slider-track class=\"media-volume-slider-track\">\n<media-slider-fill class=\"media-volume-slider-fill\">\n</media-slider-fill>\n</media-slider-track>\n<media-slider-thumb class=\"media-volume-slider-thumb\">\n</media-slider-thumb>\n</media-volume-slider>\n</media-volume-popover>\n</media-controls-group>\n<media-controls-group class=\"video-controls-group\">\n<media-captions-button commandfor=\"vjs-iDIj4hLJ-0-popup\" class=\"media-button media-captions-button\" id=\"vjs-WvnGKrjP-0-8-trigger\">\n<media-icon family=\"compat\" name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-WvnGKrjP-0-8-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-menu side=\"top\" align=\"center\" class=\"media-popup media-popup-safe-area media-menu-popup\" id=\"vjs-iDIj4hLJ-0-popup\">\n<media-menu-content class=\"media-menu-content\">\n<media-captions-radio-group class=\"media-menu-radio-group\">\n<template>\n<media-menu-radio-item class=\"media-menu-radio-item\">\n<span data-part=\"label\">\n</span>\n<span data-part=\"badge\" class=\"media-menu-badge\">\n</span>\n<media-menu-item-indicator force-mount class=\"media-menu-indicator\">\n<media-icon family=\"compat\" name=\"check\" class=\"media-menu-radio-icon\">\n</media-icon>\n</media-menu-item-indicator>\n</media-menu-radio-item>\n</template>\n</media-captions-radio-group>\n</media-menu-content>\n</media-menu>\n</media-controls-group>\n</media-controls-group>\n</div>\n</media-tooltip-group>\n</media-controls-content>\n</media-buffering-indicator>\n</media-controls>\n<media-hotkey keys=\"Space\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"k\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"m\" action=\"toggleMuted\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowUp\" action=\"volumeStep\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowDown\" action=\"volumeStep\">\n</media-hotkey>\n<media-hotkey keys=\"f\" action=\"toggleFullscreen\">\n</media-hotkey>\n<media-hotkey keys=\"c\" action=\"toggleSubtitles\">\n</media-hotkey>\n<media-hotkey keys=\"i\" action=\"togglePictureInPicture\">\n</media-hotkey>\n<media-gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\">\n</media-gesture>\n<media-gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\">\n</media-gesture>\n<media-gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\">\n</media-gesture>\n<media-status-announcer class=\"media-status-announcer\">\n</media-status-announcer>\n<div aria-hidden=\"true\" class=\"media-indicator-group\">\n<media-volume-indicator class=\"media-indicator media-volume-indicator\">\n<media-volume-indicator-fill class=\"media-volume-indicator-fill\">\n<media-icon family=\"compat\" name=\"volume-high\" class=\"media-volume-indicator-icon media-volume-indicator-high-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-low\" class=\"media-volume-indicator-icon media-volume-indicator-low-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-off\" class=\"media-volume-indicator-icon media-volume-indicator-off-icon\">\n</media-icon>\n<media-volume-indicator-value class=\"media-volume-indicator-value\">\n</media-volume-indicator-value>\n</media-volume-indicator-fill>\n</media-volume-indicator>\n<media-status-indicator actions=\"toggleSubtitles,toggleFullscreen,togglePictureInPicture\" class=\"media-indicator media-status-indicator\">\n<media-icon family=\"compat\" name=\"captions-on\" class=\"media-status-indicator-icon media-status-indicator-captions-on-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"captions-off\" class=\"media-status-indicator-icon media-status-indicator-captions-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"fullscreen-enter\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"fullscreen-exit\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-exit-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pip-enter\" class=\"media-status-indicator-icon media-status-indicator-pip-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pip-exit\" class=\"media-status-indicator-icon media-status-indicator-pip-exit-icon\">\n</media-icon>\n<media-status-indicator-value>\n</media-status-indicator-value>\n</media-status-indicator>\n</div>\n</media-container>`);\n"],"mappings":";;;AAGA,MAAa,WACX,eAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA2OT"}