@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
@@ -223,6 +223,10 @@
223
223
  display: none;
224
224
  }
225
225
 
226
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-dialog-backdrop[data-scope="document"] {
227
+ position: fixed;
228
+ }
229
+
226
230
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-dialog-close {
227
231
  height: calc(var(--media-spacing) * 8);
228
232
  width: auto;
@@ -268,6 +272,11 @@
268
272
  outline-color: var(--media-ring);
269
273
  }
270
274
 
275
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-dialog-popup[data-scope="document"] {
276
+ max-height: calc(100dvh - var(--media-spacing) * 8);
277
+ position: fixed;
278
+ }
279
+
271
280
  @media (forced-colors: active) {
272
281
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-dialog-popup {
273
282
  border: 1px solid canvastext;
@@ -394,6 +403,18 @@
394
403
  overflow: hidden;
395
404
  }
396
405
 
406
+ .media-poster > slot::slotted(img) {
407
+ object-fit: var(--media-object-fit, contain);
408
+ object-position: var(--media-object-position, center);
409
+ width: 100%;
410
+ display: block;
411
+ height: 100% !important;
412
+ }
413
+
414
+ .media-poster > slot::slotted(img:not([src]):not([srcset])) {
415
+ visibility: hidden;
416
+ }
417
+
397
418
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-poster {
398
419
  width: 100%;
399
420
  height: 100%;
@@ -565,8 +586,13 @@
565
586
  }
566
587
 
567
588
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-tooltip-shortcut {
589
+ text-align: center;
590
+ min-width: 1.5em;
568
591
  font-family: inherit;
569
592
  font-size: calc(var(--media-spacing) * 2.75);
593
+ background-color: oklab(100% 0 5.96046e-8 / .1);
594
+ padding: .1em;
595
+ line-height: 1.25;
570
596
  }
571
597
 
572
598
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-button-icon {
@@ -576,6 +602,12 @@
576
602
  grid-column-start: 1;
577
603
  }
578
604
 
605
+ @container media-root (width < 15rem) {
606
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-captions-button {
607
+ display: none;
608
+ }
609
+ }
610
+
579
611
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) :where(.media-captions-button)[data-active] .media-captions-button-off-icon, :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-captions-button-on-icon {
580
612
  display: none;
581
613
  }
@@ -623,6 +655,10 @@
623
655
  outline: 2px solid;
624
656
  }
625
657
 
658
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-menu-radio-item[data-custom] {
659
+ font-style: italic;
660
+ }
661
+
626
662
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-menu-radio-item[data-highlighted] {
627
663
  background-color: var(--media-button-highlight);
628
664
  }
@@ -641,6 +677,13 @@
641
677
  }
642
678
  }
643
679
 
680
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-menu-badge {
681
+ background-color: var(--media-muted);
682
+ padding-inline: calc(var(--media-spacing) * 1.5);
683
+ font-size: calc(var(--media-spacing) * 2.75);
684
+ border-radius: 0;
685
+ }
686
+
644
687
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-menu-content {
645
688
  overscroll-behavior: none;
646
689
  max-height: 100%;
@@ -1192,7 +1235,7 @@
1192
1235
  pointer-events: auto;
1193
1236
  align-items: center;
1194
1237
  gap: calc(var(--media-spacing) * 2);
1195
- display: none;
1238
+ display: flex;
1196
1239
  position: absolute;
1197
1240
  top: 50%;
1198
1241
  left: 50%;
@@ -1226,25 +1269,47 @@
1226
1269
  }
1227
1270
  }
1228
1271
 
1229
- @container media-root (width >= 22.5rem) {
1230
- :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center {
1231
- display: flex;
1232
- }
1233
- }
1234
-
1235
1272
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button {
1236
- background-color: var(--media-background) !important;
1273
+ background-color: var(--media-popover) !important;
1237
1274
  margin: 0 !important;
1238
1275
  }
1239
1276
 
1277
+ @supports (color: color-mix(in lab, red, red)) {
1278
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button {
1279
+ background-color: color-mix(in oklab, var(--media-popover) 40%, transparent) !important;
1280
+ }
1281
+ }
1282
+
1240
1283
  @media (hover: hover) {
1241
1284
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button:hover {
1242
- background-color: var(--media-button-highlight) !important;
1285
+ background-color: var(--media-popover) !important;
1286
+ }
1287
+
1288
+ @supports (color: color-mix(in lab, red, red)) {
1289
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button:hover {
1290
+ background-color: color-mix(in oklab, var(--media-popover) 60%, transparent) !important;
1291
+ }
1243
1292
  }
1244
1293
  }
1245
1294
 
1246
- :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button:focus-visible, :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button[aria-expanded="true"] {
1247
- background-color: var(--media-button-highlight) !important;
1295
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button:focus-visible {
1296
+ background-color: var(--media-popover) !important;
1297
+ }
1298
+
1299
+ @supports (color: color-mix(in lab, red, red)) {
1300
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button:focus-visible {
1301
+ background-color: color-mix(in oklab, var(--media-popover) 60%, transparent) !important;
1302
+ }
1303
+ }
1304
+
1305
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button[aria-expanded="true"] {
1306
+ background-color: var(--media-popover) !important;
1307
+ }
1308
+
1309
+ @supports (color: color-mix(in lab, red, red)) {
1310
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-button[aria-expanded="true"] {
1311
+ background-color: color-mix(in oklab, var(--media-popover) 60%, transparent) !important;
1312
+ }
1248
1313
  }
1249
1314
 
1250
1315
  @media (forced-colors: active) {
@@ -1284,11 +1349,25 @@
1284
1349
  height: calc(var(--media-spacing) * 14.5) !important;
1285
1350
  }
1286
1351
 
1352
+ @container media-root (width < 22.5rem) {
1353
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-play {
1354
+ width: calc(var(--media-spacing) * 11) !important;
1355
+ height: calc(var(--media-spacing) * 11) !important;
1356
+ }
1357
+ }
1358
+
1287
1359
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-play-icon {
1288
1360
  width: calc(var(--media-spacing) * 7) !important;
1289
1361
  height: calc(var(--media-spacing) * 7) !important;
1290
1362
  }
1291
1363
 
1364
+ @container media-root (width < 22.5rem) {
1365
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-center-play-icon {
1366
+ width: calc(var(--media-spacing) * 5.5) !important;
1367
+ height: calc(var(--media-spacing) * 5.5) !important;
1368
+ }
1369
+ }
1370
+
1292
1371
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-content {
1293
1372
  pointer-events: none;
1294
1373
  z-index: 30;
@@ -1333,6 +1412,10 @@
1333
1412
  top: 0;
1334
1413
  }
1335
1414
 
1415
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-top:not([data-started]) {
1416
+ visibility: var(--media-controls-before-start, hidden);
1417
+ }
1418
+
1336
1419
  :where(:where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-content):not([data-visible]) .video-controls-top {
1337
1420
  pointer-events: none;
1338
1421
  opacity: 0;
@@ -1360,6 +1443,10 @@
1360
1443
  }
1361
1444
  }
1362
1445
 
1446
+ :where(:where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-content):not([data-started]) .video-controls-video-bottom {
1447
+ visibility: var(--media-controls-before-start, hidden);
1448
+ }
1449
+
1363
1450
  @media (forced-colors: active) {
1364
1451
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-video-bottom {
1365
1452
  inset-inline: 0;
@@ -1543,13 +1630,23 @@
1543
1630
  }
1544
1631
  }
1545
1632
 
1633
+ @container media-root (width < 15rem) {
1634
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-title {
1635
+ display: none;
1636
+ }
1637
+ }
1638
+
1546
1639
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-backdrop {
1547
1640
  pointer-events: none;
1548
- background-color: #0006;
1641
+ background-image: linear-gradient(to top, #00000080, #0000 40% 60%, #0006);
1549
1642
  position: absolute;
1550
1643
  inset: 0;
1551
1644
  }
1552
1645
 
1646
+ :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-backdrop:not([data-started]) {
1647
+ visibility: var(--media-controls-before-start, hidden);
1648
+ }
1649
+
1553
1650
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .video-controls-backdrop:not([data-visible]) {
1554
1651
  display: none;
1555
1652
  }
@@ -1563,6 +1660,9 @@
1563
1660
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-container, :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]).media-container {
1564
1661
  border-radius: var(--media-video-border-radius);
1565
1662
  width: 100%;
1663
+ min-width: 0;
1664
+ height: 100%;
1665
+ min-height: 0;
1566
1666
  font-family: var(--media-font-family, inherit);
1567
1667
  font-size: calc(var(--media-spacing) * 3.25);
1568
1668
  color: var(--media-foreground);
@@ -1582,48 +1682,58 @@
1582
1682
  }
1583
1683
 
1584
1684
  :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]) .media-video, :where(.media-skin[data-theme="scaffold"][data-preset="live-video"]).media-video {
1585
- aspect-ratio: 16 / 9;
1586
1685
  background-color: #000;
1587
1686
  }
1687
+
1688
+ .media-container > slot::slotted(video), :scope.media-container > slot::slotted(video) {
1689
+ border-radius: inherit;
1690
+ object-fit: var(--media-object-fit, contain);
1691
+ object-position: var(--media-object-position, center);
1692
+ width: 100%;
1693
+ max-width: 100%;
1694
+ margin: 0;
1695
+ display: block;
1696
+ height: 100% !important;
1697
+ }
1588
1698
  }
1589
1699
 
1590
1700
  @layer utilities;
1591
1701
 
1592
1702
  @layer base.theme {
1593
1703
  .media-skin {
1594
- --media-background: oklch(0% 0 0);
1595
- --media-foreground: oklch(100% 0 0);
1596
- --media-controls: oklch(0% 0 0 / .35);
1704
+ --media-background: #000;
1705
+ --media-foreground: #fff;
1706
+ --media-controls: #00000059;
1597
1707
  --media-controls-foreground: var(--media-foreground);
1598
- --media-popover: oklch(100% 0 0 / .1);
1708
+ --media-popover: #ffffff1a;
1599
1709
  --media-popover-foreground: var(--media-foreground);
1600
1710
  --media-primary: var(--media-accent-color, var(--media-default-accent-color));
1601
1711
  --media-primary-foreground: var(--media-accent-text-color, var(--media-default-accent-text-color));
1602
- --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
1712
+ --media-accent: var(--media-accent-color, #ffffff1a);
1603
1713
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
1604
- --media-muted: oklch(100% 0 0 / .15);
1605
- --media-muted-foreground: oklch(100% 0 0 / .65);
1606
- --media-border: oklch(0% 0 0 / .1);
1607
- --media-ring: oklch(100% 0 0);
1608
- --media-backdrop: oklch(0% 0 0);
1609
- --media-live-color: oklch(65% .22 27);
1610
- --media-shadow-surface: 0 1px 3px 0 oklch(0% 0 0 / .15), 0 1px 2px -1px oklch(0% 0 0 / .15);
1714
+ --media-muted: #ffffff26;
1715
+ --media-muted-foreground: #ffffffa6;
1716
+ --media-border: #0000001a;
1717
+ --media-ring: #fff;
1718
+ --media-backdrop: #000;
1719
+ --media-live-color: #f9423d;
1720
+ --media-shadow-surface: 0 1px 3px 0 #00000026, 0 1px 2px -1px #00000026;
1611
1721
  --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff1a, inset 0 0 0 1px #ffffff0d;
1612
1722
  --media-shadow-thumb: 0 0 0 1px #0000001a, 0 1px 3px 0 #00000059, 0 1px 2px -1px #00000059;
1613
1723
  --media-shadow-tooltip: 0 0 0 1px var(--media-border), var(--media-shadow-surface);
1614
- --media-shadow-separator: 0 1px 0 0 oklch(100% 0 0 / .075);
1724
+ --media-shadow-separator: 0 1px 0 0 #ffffff13;
1615
1725
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
1616
- --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
1726
+ --media-shadow-subtle-current-color: transparent;
1617
1727
  --media-text-shadow-dialog: 0 1px 0 #00000040;
1618
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
1728
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
1619
1729
  --media-backdrop-filter-indicator: blur(8px);
1620
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
1730
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
1621
1731
  --media-control-corner-shape: round;
1622
1732
  --media-control-radius: 99px;
1623
1733
  --media-control-size: calc(var(--media-spacing) * 9);
1624
1734
  --media-controls-radius: var(--media-control-radius);
1625
- --media-default-accent-color: oklch(100% 0 0);
1626
- --media-default-accent-text-color: oklch(0% 0 0);
1735
+ --media-default-accent-color: #fff;
1736
+ --media-default-accent-text-color: #000;
1627
1737
  --media-duration-instant: 50ms;
1628
1738
  --media-duration-fast: .1s;
1629
1739
  --media-duration: .15s;
@@ -1660,16 +1770,31 @@
1660
1770
  --media-slider-preview-label-offset: calc(var(--media-spacing) * 10.5);
1661
1771
  --media-video-border-radius: var(--media-border-radius, 28px);
1662
1772
  --media-scale: 1;
1663
- --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 30%, transparent);
1773
+ --media-scrollbar-thumb-color: #80808080;
1664
1774
  --media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
1665
1775
  scrollbar-color: var(--media-scrollbar-thumb-color) transparent;
1666
1776
  scrollbar-width: thin;
1667
1777
  }
1668
1778
 
1779
+ @supports (color: color-mix(in oklab, red, red)) {
1780
+ .media-skin {
1781
+ --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
1782
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
1783
+ --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
1784
+ --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 30%, transparent);
1785
+ }
1786
+ }
1787
+
1788
+ @supports (color: oklch(0 0 0)) {
1789
+ .media-skin {
1790
+ --media-live-color: oklch(65% .22 27);
1791
+ }
1792
+ }
1793
+
1669
1794
  @supports (color: contrast-color(red)) {
1670
1795
  .media-skin {
1671
1796
  --media-primary-foreground: var(--media-accent-text-color, contrast-color(var(--media-primary)));
1672
- --media-accent-foreground: var(--media-accent-text-color, contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, oklch(0% 0 0)))));
1797
+ --media-accent-foreground: var(--media-accent-text-color, contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, #000))));
1673
1798
  }
1674
1799
  }
1675
1800
 
@@ -1717,24 +1842,66 @@
1717
1842
  @layer base.preset {
1718
1843
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1719
1844
  --media-frame-border: var(--media-border-color, #0000001a);
1720
- --media-controls-gradient: linear-gradient(to top,
1721
- color-mix(in oklab, var(--media-backdrop) 40%, transparent),
1722
- color-mix(in oklab, var(--media-backdrop) 20%, transparent),
1723
- color-mix(in oklab, var(--media-backdrop) 50%, transparent));
1845
+ --media-controls-gradient-height: max(40%, calc(var(--media-spacing) * 40));
1846
+ --media-controls-bottom-gradient-height: max(50%, calc(var(--media-spacing) * 60));
1724
1847
  --media-caption-controls-y: calc(var(--media-spacing) * -16);
1725
1848
  --media-slider-preview-offset: calc(var(--media-spacing) * 9);
1726
- --media-thumbnail-gradient: linear-gradient(to top,
1727
- color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1728
- color-mix(in oklab, var(--media-backdrop) 10%, transparent),
1729
- transparent);
1849
+ }
1850
+
1851
+ @supports (color: color-mix(in oklab, red, red)) {
1852
+ .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1853
+ --media-controls-gradient: linear-gradient(to top,
1854
+ color-mix(in oklab, var(--media-backdrop) 60%, transparent),
1855
+ color-mix(in oklab, var(--media-backdrop) 50.7%, transparent) 25%,
1856
+ color-mix(in oklab, var(--media-backdrop) 30%, transparent) 50%,
1857
+ color-mix(in oklab, var(--media-backdrop) 9.3%, transparent) 75%,
1858
+ transparent);
1859
+ --media-controls-top-gradient: linear-gradient(to bottom,
1860
+ color-mix(in oklab, var(--media-backdrop) 55%, transparent),
1861
+ color-mix(in oklab, var(--media-backdrop) 46.48%, transparent) 25%,
1862
+ color-mix(in oklab, var(--media-backdrop) 27.5%, transparent) 50%,
1863
+ color-mix(in oklab, var(--media-backdrop) 8.53%, transparent) 75%,
1864
+ transparent);
1865
+ --media-thumbnail-gradient: linear-gradient(to top,
1866
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1867
+ color-mix(in oklab, var(--media-backdrop) 10%, transparent),
1868
+ transparent);
1869
+ }
1870
+
1871
+ .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
1872
+ --media-controls-gradient: linear-gradient(to top,
1873
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1874
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
1875
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
1876
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
1877
+ transparent);
1878
+ --media-controls-top-gradient: linear-gradient(to bottom,
1879
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1880
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
1881
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
1882
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
1883
+ transparent);
1884
+ --media-indicator-gradient: linear-gradient(to bottom,
1885
+ color-mix(in oklab, var(--media-backdrop) 35%, transparent),
1886
+ color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
1887
+ transparent);
1888
+ }
1730
1889
  }
1731
1890
 
1732
1891
  @supports (color: oklch(from red l c h)) and (background-image: linear-gradient(in oklab, red, red)) {
1733
1892
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1734
1893
  --media-controls-gradient: linear-gradient(to top in oklab,
1735
- oklch(from var(--media-backdrop) l c h / .4),
1736
- oklch(from var(--media-backdrop) l c h / .2),
1737
- oklch(from var(--media-backdrop) l c h / .5));
1894
+ oklch(from var(--media-backdrop) l c h / .6),
1895
+ oklch(from var(--media-backdrop) l c h / .507) 25%,
1896
+ oklch(from var(--media-backdrop) l c h / .3) 50%,
1897
+ oklch(from var(--media-backdrop) l c h / .093) 75%,
1898
+ transparent);
1899
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
1900
+ oklch(from var(--media-backdrop) l c h / .55),
1901
+ oklch(from var(--media-backdrop) l c h / .4647) 25%,
1902
+ oklch(from var(--media-backdrop) l c h / .275) 50%,
1903
+ oklch(from var(--media-backdrop) l c h / .0853) 75%,
1904
+ transparent);
1738
1905
  }
1739
1906
  }
1740
1907
 
@@ -1749,18 +1916,14 @@
1749
1916
 
1750
1917
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
1751
1918
  --media-frame-border: var(--media-border-color, #00000026);
1752
- --media-controls-gradient: linear-gradient(to top,
1753
- color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1754
- color-mix(in oklab, var(--media-backdrop) 20%, transparent));
1755
- --media-indicator-gradient: linear-gradient(to bottom,
1756
- color-mix(in oklab, var(--media-backdrop) 35%, transparent),
1757
- color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
1758
- transparent);
1919
+ --media-controls-gradient-height: 40%;
1920
+ --media-controls-bottom-gradient-height: max(40%, calc(var(--media-spacing) * 44));
1759
1921
  --media-caption-controls-y: calc(var(--media-spacing) * -14);
1760
1922
  --media-slider-preview-offset: calc(var(--media-spacing) * 11);
1761
1923
  }
1762
1924
 
1763
1925
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="compat"] {
1926
+ --media-controls-gradient: linear-gradient(to top, #00000080, transparent 40% 60%, #0006);
1764
1927
  --media-caption-controls-y: calc(var(--media-spacing) * -18);
1765
1928
  }
1766
1929
 
@@ -1772,7 +1935,16 @@
1772
1935
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
1773
1936
  --media-controls-gradient: linear-gradient(to top in oklab,
1774
1937
  oklch(from var(--media-backdrop) l c h / .5),
1775
- oklch(from var(--media-backdrop) l c h / .2));
1938
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
1939
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
1940
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
1941
+ transparent);
1942
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
1943
+ oklch(from var(--media-backdrop) l c h / .5),
1944
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
1945
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
1946
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
1947
+ transparent);
1776
1948
  }
1777
1949
  }
1778
1950
 
@@ -1903,7 +2075,7 @@
1903
2075
  @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
1904
2076
  .media-skin {
1905
2077
  --media-popover: var(--media-background);
1906
- --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 80%, transparent);
2078
+ --media-scrollbar-thumb-color: currentColor;
1907
2079
  --media-backdrop-filter-surface: none;
1908
2080
  --media-backdrop-filter-indicator: none;
1909
2081
  --media-backdrop-filter-dialog: none;
@@ -1911,6 +2083,12 @@
1911
2083
  scrollbar-width: auto;
1912
2084
  }
1913
2085
 
2086
+ @supports (color: color-mix(in oklab, red, red)) {
2087
+ .media-skin {
2088
+ --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 80%, transparent);
2089
+ }
2090
+ }
2091
+
1914
2092
  @supports (color: oklch(from currentColor l c h)) {
1915
2093
  .media-skin {
1916
2094
  --media-scrollbar-thumb-color: oklch(from currentColor l c h / .8);
@@ -167,6 +167,8 @@ const template = createTemplate(`<media-container class="media-skin media-contai
167
167
  <media-menu-radio-item class="media-menu-radio-item">
168
168
  <span data-part="label">
169
169
  </span>
170
+ <span data-part="badge" class="media-menu-badge">
171
+ </span>
170
172
  <media-menu-item-indicator force-mount class="media-menu-indicator">
171
173
  <media-icon family="scaffold" name="check" class="media-menu-radio-icon">
172
174
  </media-icon>
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/scaffold-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=\"scaffold\" 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-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-controls>\n<media-controls-backdrop class=\"video-controls-backdrop\">\n</media-controls-backdrop>\n<media-controls-group class=\"media-buffering-indicator-controls\">\n<media-buffering-indicator class=\"media-buffering-indicator media-buffering-indicator-backdrop\">\n<media-icon family=\"scaffold\" name=\"spinner\" class=\"media-buffering-indicator-spinner-icon\">\n</media-icon>\n</media-buffering-indicator>\n</media-controls-group>\n<media-controls-content class=\"video-controls-content\">\n<media-tooltip-group>\n<media-controls-group class=\"video-controls-top\">\n<media-title class=\"media-title\">\n</media-title>\n<media-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-edu67hQA-0-trigger\">\n<media-icon family=\"scaffold\" name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-edu67hQA-0-2-trigger\">\n<media-icon family=\"scaffold\" name=\"cast-enter\" class=\"media-button-icon media-cast-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"cast-exit\" class=\"media-button-icon media-cast-button-exit-icon\">\n</media-icon>\n</media-cast-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-2-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-edu67hQA-0-3-trigger\">\n<media-icon family=\"scaffold\" name=\"pip-enter\" class=\"media-button-icon media-pip-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"pip-exit\" class=\"media-button-icon media-pip-button-exit-icon\">\n</media-icon>\n</media-pip-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-3-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-edu67hQA-0-4-trigger\">\n<media-icon family=\"scaffold\" name=\"fullscreen-enter\" class=\"media-button-icon media-fullscreen-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"fullscreen-exit\" class=\"media-button-icon media-fullscreen-button-exit-icon\">\n</media-icon>\n</media-fullscreen-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-buffering-indicator class=\"video-controls-buffering\">\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-edu67hQA-0-5-trigger\">\n<media-icon family=\"scaffold\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" 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-edu67hQA-0-5-trigger\" disabled side=\"top\" class=\"media-popup media-popup-safe-area 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</media-buffering-indicator>\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-edu67hQA-0-6-trigger\">\n<media-icon family=\"scaffold\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-6-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-jYkpFTzU-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-edu67hQA-0-7-trigger\">\n<media-icon family=\"scaffold\" name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-7-trigger\" delay=\"0\" disabled side=\"top\" sticky class=\"media-popup media-popup-safe-area 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-volume-popover-popup\" id=\"vjs-jYkpFTzU-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-SDLjnoCt-0-popup\" class=\"media-button media-captions-button\" id=\"vjs-edu67hQA-0-8-trigger\">\n<media-icon family=\"scaffold\" name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-8-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-SDLjnoCt-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=\"scaffold\" 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-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=\"scaffold\" name=\"volume-high\" class=\"media-volume-indicator-icon media-volume-indicator-high-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"volume-low\" class=\"media-volume-indicator-icon media-volume-indicator-low-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" 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=\"scaffold\" name=\"captions-on\" class=\"media-status-indicator-icon media-status-indicator-captions-on-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"captions-off\" class=\"media-status-indicator-icon media-status-indicator-captions-off-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"fullscreen-enter\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"fullscreen-exit\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-exit-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"pip-enter\" class=\"media-status-indicator-icon media-status-indicator-pip-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" 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"}
1
+ {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/scaffold-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=\"scaffold\" 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-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-controls>\n<media-controls-backdrop class=\"video-controls-backdrop\">\n</media-controls-backdrop>\n<media-controls-group class=\"media-buffering-indicator-controls\">\n<media-buffering-indicator class=\"media-buffering-indicator media-buffering-indicator-backdrop\">\n<media-icon family=\"scaffold\" name=\"spinner\" class=\"media-buffering-indicator-spinner-icon\">\n</media-icon>\n</media-buffering-indicator>\n</media-controls-group>\n<media-controls-content class=\"video-controls-content\">\n<media-tooltip-group>\n<media-controls-group class=\"video-controls-top\">\n<media-title class=\"media-title\">\n</media-title>\n<media-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-edu67hQA-0-trigger\">\n<media-icon family=\"scaffold\" name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-edu67hQA-0-2-trigger\">\n<media-icon family=\"scaffold\" name=\"cast-enter\" class=\"media-button-icon media-cast-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"cast-exit\" class=\"media-button-icon media-cast-button-exit-icon\">\n</media-icon>\n</media-cast-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-2-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-edu67hQA-0-3-trigger\">\n<media-icon family=\"scaffold\" name=\"pip-enter\" class=\"media-button-icon media-pip-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"pip-exit\" class=\"media-button-icon media-pip-button-exit-icon\">\n</media-icon>\n</media-pip-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-3-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-edu67hQA-0-4-trigger\">\n<media-icon family=\"scaffold\" name=\"fullscreen-enter\" class=\"media-button-icon media-fullscreen-button-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"fullscreen-exit\" class=\"media-button-icon media-fullscreen-button-exit-icon\">\n</media-icon>\n</media-fullscreen-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-buffering-indicator class=\"video-controls-buffering\">\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-edu67hQA-0-5-trigger\">\n<media-icon family=\"scaffold\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" 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-edu67hQA-0-5-trigger\" disabled side=\"top\" class=\"media-popup media-popup-safe-area 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</media-buffering-indicator>\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-edu67hQA-0-6-trigger\">\n<media-icon family=\"scaffold\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-6-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-jYkpFTzU-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-edu67hQA-0-7-trigger\">\n<media-icon family=\"scaffold\" name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-7-trigger\" delay=\"0\" disabled side=\"top\" sticky class=\"media-popup media-popup-safe-area 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-volume-popover-popup\" id=\"vjs-jYkpFTzU-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-SDLjnoCt-0-popup\" class=\"media-button media-captions-button\" id=\"vjs-edu67hQA-0-8-trigger\">\n<media-icon family=\"scaffold\" name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-edu67hQA-0-8-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area 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-SDLjnoCt-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=\"scaffold\" 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-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=\"scaffold\" name=\"volume-high\" class=\"media-volume-indicator-icon media-volume-indicator-high-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"volume-low\" class=\"media-volume-indicator-icon media-volume-indicator-low-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" 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=\"scaffold\" name=\"captions-on\" class=\"media-status-indicator-icon media-status-indicator-captions-on-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"captions-off\" class=\"media-status-indicator-icon media-status-indicator-captions-off-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"fullscreen-enter\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"fullscreen-exit\" class=\"media-status-indicator-icon media-status-indicator-fullscreen-exit-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" name=\"pip-enter\" class=\"media-status-indicator-icon media-status-indicator-pip-enter-icon\">\n</media-icon>\n<media-icon family=\"scaffold\" 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA6OT"}