@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
@@ -215,6 +215,11 @@
215
215
  transition-duration: var(--media-duration-slower);
216
216
  }
217
217
 
218
+ :where(.media-skin[data-theme="default"]) .media-dialog-backdrop[data-scope="document"] {
219
+ border-radius: 0;
220
+ position: fixed;
221
+ }
222
+
218
223
  :where(.media-skin[data-theme="default"]) .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {
219
224
  opacity: 0;
220
225
  }
@@ -302,6 +307,11 @@
302
307
  transition-duration: var(--media-duration-slower);
303
308
  }
304
309
 
310
+ :where(.media-skin[data-theme="default"]) .media-dialog-popup[data-scope="document"] {
311
+ max-height: calc(100dvh - 1rem);
312
+ position: fixed;
313
+ }
314
+
305
315
  :where(.media-skin[data-theme="default"]) .media-dialog-popup:is([data-starting-style], [data-ending-style]) {
306
316
  scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);
307
317
  opacity: 0;
@@ -404,25 +414,24 @@
404
414
  pointer-events: none;
405
415
  isolation: isolate;
406
416
  z-index: 20;
407
- min-height: calc(var(--media-control-size) + (calc(var(--media-spacing) * 2)));
408
417
  transform-origin: top;
418
+ text-overflow: ellipsis;
419
+ white-space: nowrap;
409
420
  padding-inline: calc(var(--media-spacing) * 6);
410
421
  padding-top: calc(var(--media-spacing) * 2.5);
411
422
  font-size: calc(var(--media-spacing) * 4);
423
+ line-height: calc(var(--media-control-size) - (calc(var(--media-spacing) * .5)));
412
424
  letter-spacing: -.0125em;
413
- overflow-wrap: anywhere;
414
425
  color: var(--media-controls-foreground);
415
426
  transition-property: filter, opacity, scale, translate;
416
427
  transition-duration: .15s;
417
428
  transition-duration: calc(var(--media-duration-controls) / 2);
418
429
  text-shadow: 0 1px 0 var(--media-shadow-current-color);
419
- inset-inline: 0;
420
- align-items: center;
421
430
  font-weight: 500;
422
431
  transition-timing-function: cubic-bezier(0, 0, .2, 1);
423
- display: flex;
424
432
  position: absolute;
425
- top: 0;
433
+ inset: 0;
434
+ overflow: hidden;
426
435
  }
427
436
 
428
437
  :where(.media-skin[data-theme="default"]) .media-title:not([data-visible]) {
@@ -438,10 +447,35 @@
438
447
  }
439
448
  }
440
449
 
450
+ @container media-root (width < 15rem) {
451
+ :where(.media-skin[data-theme="default"]) .media-title {
452
+ display: none;
453
+ }
454
+ }
455
+
456
+ @container media-root (width < 17.5rem) {
457
+ :where(.media-skin[data-theme="default"]) .media-title {
458
+ font-size: calc(var(--media-spacing) * 3.25);
459
+ }
460
+ }
461
+
441
462
  @container media-root (width >= 28rem) {
442
463
  :where(.media-skin[data-theme="default"]) .media-title {
443
464
  padding-inline: calc(var(--media-spacing) * 6);
444
465
  padding-top: calc(var(--media-spacing) * 4);
466
+ line-height: calc(var(--media-control-size) - (calc(var(--media-spacing) * 2)));
467
+ }
468
+ }
469
+
470
+ @container media-root (width >= 32rem) {
471
+ :where(.media-skin[data-theme="default"]) .media-title:before {
472
+ z-index: -1;
473
+ height: var(--media-controls-gradient-height);
474
+ content: "";
475
+ background-image: var(--media-controls-top-gradient);
476
+ inset-inline: 0;
477
+ position: absolute;
478
+ top: 0;
445
479
  }
446
480
  }
447
481
 
@@ -505,9 +539,9 @@
505
539
  object-position: var(--media-object-position, center);
506
540
  width: 100%;
507
541
  max-width: 100%;
508
- height: 100%;
509
542
  margin: 0;
510
543
  display: block;
544
+ height: 100% !important;
511
545
  }
512
546
 
513
547
  :where(.media-skin[data-theme="default"]) .media-status-announcer {
@@ -628,6 +662,12 @@
628
662
  transition-timing-function: cubic-bezier(.4, 0, 1, 1);
629
663
  }
630
664
 
665
+ @media (pointer: coarse) {
666
+ :where(.media-skin[data-theme="default"]) .media-playback-status-indicator {
667
+ display: none !important;
668
+ }
669
+ }
670
+
631
671
  :where(.media-skin[data-theme="default"]) .media-playback-status-indicator:is([data-starting-style], [data-ending-style]) {
632
672
  scale: var(--media-hidden-playback-scale) var(--media-hidden-playback-scale);
633
673
  opacity: 0;
@@ -1084,6 +1124,7 @@
1084
1124
  }
1085
1125
 
1086
1126
  :where(.media-skin[data-theme="default"]) .media-play-button-play-icon {
1127
+ translate: 1px;
1087
1128
  scale: var(--media-hidden-icon-scale) var(--media-hidden-icon-scale);
1088
1129
  opacity: 0;
1089
1130
  }
@@ -1168,6 +1209,10 @@
1168
1209
  opacity: .5;
1169
1210
  }
1170
1211
 
1212
+ :where(.media-skin[data-theme="default"]) .media-menu-radio-item[data-custom] {
1213
+ font-style: italic;
1214
+ }
1215
+
1171
1216
  :where(.media-skin[data-theme="default"]) .media-menu-radio-item[data-availability="unavailable"], :where(.media-skin[data-theme="default"]) .media-menu-radio-item[data-availability="unsupported"] {
1172
1217
  display: none;
1173
1218
  }
@@ -1204,8 +1249,15 @@
1204
1249
  color: inherit;
1205
1250
  }
1206
1251
 
1252
+ :where(.media-skin[data-theme="default"]) .media-menu-badge {
1253
+ border-radius: var(--media-control-radius);
1254
+ background-color: var(--media-accent);
1255
+ padding-inline: calc(var(--media-spacing) * 1.5);
1256
+ font-size: .7em;
1257
+ font-weight: 600;
1258
+ }
1259
+
1207
1260
  :where(.media-skin[data-theme="default"]) .media-menu-content {
1208
- max-height: inherit;
1209
1261
  overscroll-behavior: none;
1210
1262
  transition-property: translate, filter;
1211
1263
  transition-duration: .15s;
@@ -1227,6 +1279,8 @@
1227
1279
  :where(.media-skin[data-theme="default"]) .media-menu-content:not([data-submenu]) {
1228
1280
  inset-inline: var(--media-spacing);
1229
1281
  top: var(--media-spacing);
1282
+ max-height: calc(min(var(--media-menu-available-height, calc(var(--media-spacing) * 56)), calc(var(--media-spacing) * 56)) -
1283
+ (calc(var(--media-spacing) * 2)));
1230
1284
  gap: calc(var(--media-spacing) * .5);
1231
1285
  flex-direction: column;
1232
1286
  display: flex;
@@ -1321,7 +1375,6 @@
1321
1375
  }
1322
1376
 
1323
1377
  :where(.media-skin[data-theme="default"]) .media-menu-radio-group {
1324
- max-height: inherit;
1325
1378
  gap: calc(var(--media-spacing) * .5);
1326
1379
  anchor-scope: --media-menu-item-highlight-anchor;
1327
1380
  flex-direction: column;
@@ -1680,18 +1733,152 @@
1680
1733
  z-index: 10;
1681
1734
  border-radius: inherit;
1682
1735
  background-image: var(--media-controls-gradient);
1736
+ background-size: 100% var(--media-controls-bottom-gradient-height);
1683
1737
  transition-property: opacity;
1684
1738
  transition-duration: .15s;
1685
1739
  transition-duration: var(--media-duration-controls);
1740
+ background-position: bottom;
1741
+ background-repeat: no-repeat;
1686
1742
  transition-timing-function: cubic-bezier(0, 0, .2, 1);
1687
1743
  position: absolute;
1688
1744
  inset: 0;
1689
1745
  }
1690
1746
 
1747
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-backdrop:not([data-started]) {
1748
+ visibility: var(--media-controls-before-start, hidden);
1749
+ }
1750
+
1691
1751
  :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-backdrop:not([data-visible]) {
1692
1752
  opacity: 0;
1693
1753
  }
1694
1754
 
1755
+ @container media-root (width < 32rem) {
1756
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-backdrop:before {
1757
+ height: var(--media-controls-gradient-height);
1758
+ content: "";
1759
+ background-image: var(--media-controls-top-gradient);
1760
+ inset-inline: 0;
1761
+ position: absolute;
1762
+ top: 0;
1763
+ }
1764
+ }
1765
+
1766
+ @container not style(--media-controls-before-start: visible) {
1767
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-backdrop:not([data-started]) {
1768
+ opacity: 0;
1769
+ }
1770
+ }
1771
+
1772
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center {
1773
+ pointer-events: none;
1774
+ z-index: 30;
1775
+ align-items: center;
1776
+ gap: calc(var(--media-spacing) * 6);
1777
+ transition-property: filter, opacity, scale;
1778
+ transition-duration: .15s;
1779
+ transition-duration: calc(var(--media-duration-controls) / 2);
1780
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
1781
+ display: flex;
1782
+ position: absolute;
1783
+ top: 50%;
1784
+ left: 50%;
1785
+ translate: -50% -50%;
1786
+ }
1787
+
1788
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center:not([data-visible]) {
1789
+ scale: var(--media-hidden-scale) var(--media-hidden-scale);
1790
+ opacity: 0;
1791
+ transition-duration: var(--media-duration-controls);
1792
+ }
1793
+
1794
+ :where(:where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-buffering)[data-visible] .video-controls-center {
1795
+ display: none;
1796
+ }
1797
+
1798
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center:where(:dir(rtl), [dir="rtl"], [dir="rtl"] *) {
1799
+ flex-direction: row-reverse;
1800
+ }
1801
+
1802
+ @media (pointer: fine) {
1803
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center:not([data-visible]) {
1804
+ filter: blur(var(--media-hidden-blur));
1805
+ }
1806
+ }
1807
+
1808
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-buffering {
1809
+ display: contents;
1810
+ }
1811
+
1812
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-button {
1813
+ pointer-events: auto;
1814
+ }
1815
+
1816
+ :where(:where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center):not([data-visible]) .video-controls-center-button {
1817
+ pointer-events: none;
1818
+ }
1819
+
1820
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play {
1821
+ background-color: var(--media-primary) !important;
1822
+ width: auto !important;
1823
+ height: auto !important;
1824
+ padding: calc(var(--media-spacing) * 4) !important;
1825
+ color: var(--media-primary-foreground) !important;
1826
+ border-radius: 9999px !important;
1827
+ }
1828
+
1829
+ @media (hover: hover) {
1830
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play:hover {
1831
+ background-color: var(--media-primary) !important;
1832
+ }
1833
+
1834
+ @supports (color: color-mix(in lab, red, red)) {
1835
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play:hover {
1836
+ background-color: color-mix(in oklab, var(--media-primary) 85%, var(--media-primary-foreground)) !important;
1837
+ }
1838
+ }
1839
+ }
1840
+
1841
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play:focus-visible {
1842
+ background-color: var(--media-primary) !important;
1843
+ }
1844
+
1845
+ @supports (color: color-mix(in lab, red, red)) {
1846
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play:focus-visible {
1847
+ background-color: color-mix(in oklab, var(--media-primary) 85%, var(--media-primary-foreground)) !important;
1848
+ }
1849
+ }
1850
+
1851
+ @media (pointer: fine) {
1852
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play[data-started]:not(:focus-visible) {
1853
+ pointer-events: none !important;
1854
+ opacity: 0 !important;
1855
+ }
1856
+ }
1857
+
1858
+ @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
1859
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play {
1860
+ background-color: var(--media-primary) !important;
1861
+ }
1862
+ }
1863
+
1864
+ @container media-root (width < 22.5rem) {
1865
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play {
1866
+ padding: calc(var(--media-spacing) * 3) !important;
1867
+ }
1868
+ }
1869
+
1870
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play-icon {
1871
+ width: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5) !important;
1872
+ height: calc(var(--media-icon-size, calc(var(--media-spacing) * 4.5)) * 1.5) !important;
1873
+ }
1874
+
1875
+ @container media-root (width < 22.5rem) {
1876
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-center-play-icon {
1877
+ width: var(--media-icon-size, calc(var(--media-spacing) * 4.5)) !important;
1878
+ height: var(--media-icon-size, calc(var(--media-spacing) * 4.5)) !important;
1879
+ }
1880
+ }
1881
+
1695
1882
  :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-content {
1696
1883
  padding: var(--media-spacing);
1697
1884
  color: var(--media-controls-foreground);
@@ -1703,6 +1890,10 @@
1703
1890
  display: contents;
1704
1891
  }
1705
1892
 
1893
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-content:not([data-started]) {
1894
+ visibility: var(--media-controls-before-start, hidden);
1895
+ }
1896
+
1706
1897
  @container media-root (width >= 32rem) {
1707
1898
  :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-content {
1708
1899
  inset-inline: calc(var(--media-spacing) * 2);
@@ -1756,6 +1947,12 @@
1756
1947
  }
1757
1948
  }
1758
1949
 
1950
+ @container not style(--media-controls-before-start: visible) {
1951
+ :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-content:not([data-started]) {
1952
+ opacity: 0;
1953
+ }
1954
+ }
1955
+
1759
1956
  :where(.media-skin[data-theme="default"][data-preset="live-video"]) .video-controls-primary {
1760
1957
  inset-inline: calc(var(--media-spacing) * 2);
1761
1958
  bottom: calc(var(--media-spacing) * 2);
@@ -1842,39 +2039,39 @@
1842
2039
 
1843
2040
  @layer base.theme {
1844
2041
  .media-skin {
1845
- --media-background: oklch(0% 0 0);
1846
- --media-foreground: oklch(100% 0 0);
1847
- --media-controls: oklch(0% 0 0 / .35);
2042
+ --media-background: #000;
2043
+ --media-foreground: #fff;
2044
+ --media-controls: #00000059;
1848
2045
  --media-controls-foreground: var(--media-foreground);
1849
- --media-popover: oklch(100% 0 0 / .1);
2046
+ --media-popover: #ffffff1a;
1850
2047
  --media-popover-foreground: var(--media-foreground);
1851
2048
  --media-primary: var(--media-accent-color, var(--media-default-accent-color));
1852
2049
  --media-primary-foreground: var(--media-accent-text-color, var(--media-default-accent-text-color));
1853
- --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
2050
+ --media-accent: var(--media-accent-color, #ffffff1a);
1854
2051
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
1855
- --media-muted: oklch(100% 0 0 / .15);
1856
- --media-muted-foreground: oklch(100% 0 0 / .65);
1857
- --media-border: oklch(0% 0 0 / .1);
1858
- --media-ring: oklch(100% 0 0);
1859
- --media-backdrop: oklch(0% 0 0);
1860
- --media-live-color: oklch(65% .22 27);
1861
- --media-shadow-surface: 0 1px 3px 0 oklch(0% 0 0 / .15), 0 1px 2px -1px oklch(0% 0 0 / .15);
2052
+ --media-muted: #ffffff26;
2053
+ --media-muted-foreground: #ffffffa6;
2054
+ --media-border: #0000001a;
2055
+ --media-ring: #fff;
2056
+ --media-backdrop: #000;
2057
+ --media-live-color: #f9423d;
2058
+ --media-shadow-surface: 0 1px 3px 0 #00000026, 0 1px 2px -1px #00000026;
1862
2059
  --media-shadow-surface-inset: inset 0 1px 0 0 #ffffff1a, inset 0 0 0 1px #ffffff0d;
1863
2060
  --media-shadow-thumb: 0 0 0 1px #0000001a, 0 1px 3px 0 #00000059, 0 1px 2px -1px #00000059;
1864
2061
  --media-shadow-tooltip: 0 0 0 1px var(--media-border), var(--media-shadow-surface);
1865
- --media-shadow-separator: 0 1px 0 0 oklch(100% 0 0 / .075);
2062
+ --media-shadow-separator: 0 1px 0 0 #ffffff13;
1866
2063
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
1867
- --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
2064
+ --media-shadow-subtle-current-color: transparent;
1868
2065
  --media-text-shadow-dialog: 0 1px 0 #00000040;
1869
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
2066
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
1870
2067
  --media-backdrop-filter-indicator: blur(8px);
1871
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
2068
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
1872
2069
  --media-control-corner-shape: round;
1873
2070
  --media-control-radius: 99px;
1874
2071
  --media-control-size: calc(var(--media-spacing) * 9);
1875
2072
  --media-controls-radius: var(--media-control-radius);
1876
- --media-default-accent-color: oklch(100% 0 0);
1877
- --media-default-accent-text-color: oklch(0% 0 0);
2073
+ --media-default-accent-color: #fff;
2074
+ --media-default-accent-text-color: #000;
1878
2075
  --media-duration-instant: 50ms;
1879
2076
  --media-duration-fast: .1s;
1880
2077
  --media-duration: .15s;
@@ -1911,16 +2108,31 @@
1911
2108
  --media-slider-preview-label-offset: calc(var(--media-spacing) * 10.5);
1912
2109
  --media-video-border-radius: var(--media-border-radius, 28px);
1913
2110
  --media-scale: 1;
1914
- --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 30%, transparent);
2111
+ --media-scrollbar-thumb-color: #80808080;
1915
2112
  --media-spacing: calc(var(--media-scale-unit, 16px) * var(--media-scale) / 4);
1916
2113
  scrollbar-color: var(--media-scrollbar-thumb-color) transparent;
1917
2114
  scrollbar-width: thin;
1918
2115
  }
1919
2116
 
2117
+ @supports (color: color-mix(in oklab, red, red)) {
2118
+ .media-skin {
2119
+ --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
2120
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
2121
+ --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
2122
+ --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 30%, transparent);
2123
+ }
2124
+ }
2125
+
2126
+ @supports (color: oklch(0 0 0)) {
2127
+ .media-skin {
2128
+ --media-live-color: oklch(65% .22 27);
2129
+ }
2130
+ }
2131
+
1920
2132
  @supports (color: contrast-color(red)) {
1921
2133
  .media-skin {
1922
2134
  --media-primary-foreground: var(--media-accent-text-color, contrast-color(var(--media-primary)));
1923
- --media-accent-foreground: var(--media-accent-text-color, contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, oklch(0% 0 0)))));
2135
+ --media-accent-foreground: var(--media-accent-text-color, contrast-color(var(--media-accent-color, var(--media-internal-accent-text-fallback, #000))));
1924
2136
  }
1925
2137
  }
1926
2138
 
@@ -1968,24 +2180,66 @@
1968
2180
  @layer base.preset {
1969
2181
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1970
2182
  --media-frame-border: var(--media-border-color, #0000001a);
1971
- --media-controls-gradient: linear-gradient(to top,
1972
- color-mix(in oklab, var(--media-backdrop) 40%, transparent),
1973
- color-mix(in oklab, var(--media-backdrop) 20%, transparent),
1974
- color-mix(in oklab, var(--media-backdrop) 50%, transparent));
2183
+ --media-controls-gradient-height: max(40%, calc(var(--media-spacing) * 40));
2184
+ --media-controls-bottom-gradient-height: max(50%, calc(var(--media-spacing) * 60));
1975
2185
  --media-caption-controls-y: calc(var(--media-spacing) * -16);
1976
2186
  --media-slider-preview-offset: calc(var(--media-spacing) * 9);
1977
- --media-thumbnail-gradient: linear-gradient(to top,
1978
- color-mix(in oklab, var(--media-backdrop) 50%, transparent),
1979
- color-mix(in oklab, var(--media-backdrop) 10%, transparent),
1980
- transparent);
2187
+ }
2188
+
2189
+ @supports (color: color-mix(in oklab, red, red)) {
2190
+ .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
2191
+ --media-controls-gradient: linear-gradient(to top,
2192
+ color-mix(in oklab, var(--media-backdrop) 60%, transparent),
2193
+ color-mix(in oklab, var(--media-backdrop) 50.7%, transparent) 25%,
2194
+ color-mix(in oklab, var(--media-backdrop) 30%, transparent) 50%,
2195
+ color-mix(in oklab, var(--media-backdrop) 9.3%, transparent) 75%,
2196
+ transparent);
2197
+ --media-controls-top-gradient: linear-gradient(to bottom,
2198
+ color-mix(in oklab, var(--media-backdrop) 55%, transparent),
2199
+ color-mix(in oklab, var(--media-backdrop) 46.48%, transparent) 25%,
2200
+ color-mix(in oklab, var(--media-backdrop) 27.5%, transparent) 50%,
2201
+ color-mix(in oklab, var(--media-backdrop) 8.53%, transparent) 75%,
2202
+ transparent);
2203
+ --media-thumbnail-gradient: linear-gradient(to top,
2204
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2205
+ color-mix(in oklab, var(--media-backdrop) 10%, transparent),
2206
+ transparent);
2207
+ }
2208
+
2209
+ .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2210
+ --media-controls-gradient: linear-gradient(to top,
2211
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2212
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2213
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2214
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2215
+ transparent);
2216
+ --media-controls-top-gradient: linear-gradient(to bottom,
2217
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2218
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2219
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2220
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2221
+ transparent);
2222
+ --media-indicator-gradient: linear-gradient(to bottom,
2223
+ color-mix(in oklab, var(--media-backdrop) 35%, transparent),
2224
+ color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
2225
+ transparent);
2226
+ }
1981
2227
  }
1982
2228
 
1983
2229
  @supports (color: oklch(from red l c h)) and (background-image: linear-gradient(in oklab, red, red)) {
1984
2230
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1985
2231
  --media-controls-gradient: linear-gradient(to top in oklab,
1986
- oklch(from var(--media-backdrop) l c h / .4),
1987
- oklch(from var(--media-backdrop) l c h / .2),
1988
- oklch(from var(--media-backdrop) l c h / .5));
2232
+ oklch(from var(--media-backdrop) l c h / .6),
2233
+ oklch(from var(--media-backdrop) l c h / .507) 25%,
2234
+ oklch(from var(--media-backdrop) l c h / .3) 50%,
2235
+ oklch(from var(--media-backdrop) l c h / .093) 75%,
2236
+ transparent);
2237
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2238
+ oklch(from var(--media-backdrop) l c h / .55),
2239
+ oklch(from var(--media-backdrop) l c h / .4647) 25%,
2240
+ oklch(from var(--media-backdrop) l c h / .275) 50%,
2241
+ oklch(from var(--media-backdrop) l c h / .0853) 75%,
2242
+ transparent);
1989
2243
  }
1990
2244
  }
1991
2245
 
@@ -2000,18 +2254,14 @@
2000
2254
 
2001
2255
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2002
2256
  --media-frame-border: var(--media-border-color, #00000026);
2003
- --media-controls-gradient: linear-gradient(to top,
2004
- color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2005
- color-mix(in oklab, var(--media-backdrop) 20%, transparent));
2006
- --media-indicator-gradient: linear-gradient(to bottom,
2007
- color-mix(in oklab, var(--media-backdrop) 35%, transparent),
2008
- color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
2009
- transparent);
2257
+ --media-controls-gradient-height: 40%;
2258
+ --media-controls-bottom-gradient-height: max(40%, calc(var(--media-spacing) * 44));
2010
2259
  --media-caption-controls-y: calc(var(--media-spacing) * -14);
2011
2260
  --media-slider-preview-offset: calc(var(--media-spacing) * 11);
2012
2261
  }
2013
2262
 
2014
2263
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="compat"] {
2264
+ --media-controls-gradient: linear-gradient(to top, #00000080, transparent 40% 60%, #0006);
2015
2265
  --media-caption-controls-y: calc(var(--media-spacing) * -18);
2016
2266
  }
2017
2267
 
@@ -2023,7 +2273,16 @@
2023
2273
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2024
2274
  --media-controls-gradient: linear-gradient(to top in oklab,
2025
2275
  oklch(from var(--media-backdrop) l c h / .5),
2026
- oklch(from var(--media-backdrop) l c h / .2));
2276
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2277
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2278
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2279
+ transparent);
2280
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2281
+ oklch(from var(--media-backdrop) l c h / .5),
2282
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2283
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2284
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2285
+ transparent);
2027
2286
  }
2028
2287
  }
2029
2288
 
@@ -2094,7 +2353,7 @@
2094
2353
  @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
2095
2354
  .media-skin {
2096
2355
  --media-popover: var(--media-background);
2097
- --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 80%, transparent);
2356
+ --media-scrollbar-thumb-color: currentColor;
2098
2357
  --media-backdrop-filter-surface: none;
2099
2358
  --media-backdrop-filter-indicator: none;
2100
2359
  --media-backdrop-filter-dialog: none;
@@ -2102,6 +2361,12 @@
2102
2361
  scrollbar-width: auto;
2103
2362
  }
2104
2363
 
2364
+ @supports (color: color-mix(in oklab, red, red)) {
2365
+ .media-skin {
2366
+ --media-scrollbar-thumb-color: color-mix(in oklab, currentColor 80%, transparent);
2367
+ }
2368
+ }
2369
+
2105
2370
  @supports (color: oklch(from currentColor l c h)) {
2106
2371
  .media-skin {
2107
2372
  --media-scrollbar-thumb-color: oklch(from currentColor l c h / .8);
@@ -32,6 +32,18 @@ const template = createTemplate(`<media-container class="media-skin media-contai
32
32
  <media-title class="media-title">
33
33
  </media-title>
34
34
  <media-controls>
35
+ <media-buffering-indicator class="video-controls-center-buffering">
36
+ <media-controls-group class="video-controls-center">
37
+ <media-play-button class="media-button media-play-button video-controls-center-button video-controls-center-play">
38
+ <media-icon name="restart" class="media-button-icon media-play-button-restart-icon video-controls-center-play-icon">
39
+ </media-icon>
40
+ <media-icon name="play" class="media-button-icon media-play-button-play-icon video-controls-center-play-icon">
41
+ </media-icon>
42
+ <media-icon name="pause" class="media-button-icon media-play-button-pause-icon video-controls-center-play-icon">
43
+ </media-icon>
44
+ </media-play-button>
45
+ </media-controls-group>
46
+ </media-buffering-indicator>
35
47
  <media-controls-backdrop class="video-controls-backdrop">
36
48
  </media-controls-backdrop>
37
49
  <media-controls-content class="video-controls video-controls-content video-controls-spaced">
@@ -98,6 +110,8 @@ const template = createTemplate(`<media-container class="media-skin media-contai
98
110
  <media-menu-radio-item class="media-menu-radio-item">
99
111
  <span data-part="label">
100
112
  </span>
113
+ <span data-part="badge" class="media-menu-badge">
114
+ </span>
101
115
  <media-menu-item-indicator force-mount class="media-menu-item-indicator">
102
116
  <media-icon name="check" class="media-menu-radio-item-icon">
103
117
  </media-icon>
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/default-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 video-skin\" data-theme=\"default\" 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 name=\"spinner\" class=\"media-buffering-indicator-spinner-icon\">\n</media-icon>\n</media-buffering-indicator>\n<media-error-dialog class=\"media-dialog-root\">\n<media-dialog-backdrop class=\"media-dialog-backdrop\">\n</media-dialog-backdrop>\n<media-dialog-popup class=\"media-dialog-popup\">\n<div class=\"media-dialog-content\">\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</div>\n<div class=\"media-dialog-actions\">\n<media-dialog-close class=\"media-button media-dialog-close\">\n</media-dialog-close>\n</div>\n</media-dialog-popup>\n</media-error-dialog>\n<media-title class=\"media-title\">\n</media-title>\n<media-controls>\n<media-controls-backdrop class=\"video-controls-backdrop\">\n</media-controls-backdrop>\n<media-controls-content class=\"video-controls video-controls-content video-controls-spaced\">\n<media-tooltip-group>\n<media-controls-group class=\"video-controls-primary video-controls-spaced\">\n<media-play-button class=\"media-button media-play-button\" id=\"vjs-GwMvn1qb-0-trigger\">\n<media-icon name=\"restart\" class=\"media-button-icon media-play-button-restart-icon\">\n</media-icon>\n<media-icon name=\"play\" class=\"media-button-icon media-play-button-play-icon\">\n</media-icon>\n<media-icon name=\"pause\" class=\"media-button-icon media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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</media-live-button>\n<div aria-hidden=\"true\" class=\"video-controls-spacer\">\n</div>\n<media-mute-button commandfor=\"vjs-nFWpFKR6-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-GwMvn1qb-0-2-trigger\">\n<media-icon name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon name=\"volume-low\" class=\"media-button-icon media-mute-button-low-icon\">\n</media-icon>\n<media-icon name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-2-trigger\" delay=\"0\" disabled sticky side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-popup-surface media-volume-popover\" id=\"vjs-nFWpFKR6-0-popup\">\n<media-volume-slider class=\"media-slider media-volume-slider\" thumb-alignment=\"edge\" orientation=\"vertical\">\n<media-slider-track class=\"media-slider-track\">\n<media-slider-fill class=\"media-slider-fill\">\n</media-slider-fill>\n</media-slider-track>\n<media-slider-thumb class=\"media-slider-thumb media-volume-slider-thumb\">\n</media-slider-thumb>\n</media-volume-slider>\n</media-volume-popover>\n<media-captions-button commandfor=\"vjs-ePSMNeK8-0-popup\" class=\"media-button media-captions-button video-controls-captions-menu\" id=\"vjs-GwMvn1qb-0-3-trigger\">\n<media-icon name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-3-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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\" boundary=\"viewport\" class=\"media-popup media-popup-surface media-menu-popup\" id=\"vjs-ePSMNeK8-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-item-indicator\">\n<media-icon name=\"check\" class=\"media-menu-radio-item-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-cast-button class=\"media-button media-cast-button\" id=\"vjs-GwMvn1qb-0-4-trigger\">\n<media-icon name=\"cast-enter\" class=\"media-button-icon media-cast-button-enter-icon\">\n</media-icon>\n<media-icon name=\"cast-exit\" class=\"media-button-icon media-cast-button-exit-icon\">\n</media-icon>\n</media-cast-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-GwMvn1qb-0-5-trigger\">\n<media-icon name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-5-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-GwMvn1qb-0-6-trigger\">\n<media-icon name=\"pip-enter\" class=\"media-button-icon media-pip-button-enter-icon\">\n</media-icon>\n<media-icon name=\"pip-exit\" class=\"media-button-icon media-pip-button-exit-icon\">\n</media-icon>\n</media-pip-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-6-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-GwMvn1qb-0-7-trigger\">\n<media-icon name=\"fullscreen-enter\" class=\"media-button-icon media-fullscreen-button-enter-icon\">\n</media-icon>\n<media-icon name=\"fullscreen-exit\" class=\"media-button-icon media-fullscreen-button-exit-icon\">\n</media-icon>\n</media-fullscreen-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-7-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-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 class=\"video-status-indicators\">\n<media-volume-indicator class=\"media-indicator media-volume-indicator\">\n<media-volume-indicator-fill class=\"media-indicator-content media-volume-indicator-fill\">\n<media-icon name=\"volume-high\" class=\"media-volume-indicator-high-icon\">\n</media-icon>\n<media-icon name=\"volume-low\" class=\"media-volume-indicator-low-icon\">\n</media-icon>\n<media-icon name=\"volume-off\" class=\"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<div class=\"media-indicator-content media-status-indicator-content\">\n<media-icon name=\"captions-on\" class=\"media-status-indicator-captions-on-icon\">\n</media-icon>\n<media-icon name=\"captions-off\" class=\"media-status-indicator-captions-off-icon\">\n</media-icon>\n<media-icon name=\"fullscreen-enter\" class=\"media-status-indicator-fullscreen-enter-icon\">\n</media-icon>\n<media-icon name=\"fullscreen-exit\" class=\"media-status-indicator-fullscreen-exit-icon\">\n</media-icon>\n<media-icon name=\"pip-enter\" class=\"media-status-indicator-pip-enter-icon\">\n</media-icon>\n<media-icon name=\"pip-exit\" class=\"media-status-indicator-pip-exit-icon\">\n</media-icon>\n<media-status-indicator-value class=\"media-status-indicator-value\">\n</media-status-indicator-value>\n</div>\n</media-status-indicator>\n<media-status-indicator actions=\"togglePaused\" class=\"media-playback-status-indicator\">\n<media-icon name=\"play\" class=\"media-playback-status-indicator-play-icon\">\n</media-icon>\n<media-icon name=\"pause\" class=\"media-playback-status-indicator-pause-icon\">\n</media-icon>\n</media-status-indicator>\n</div>\n</media-container>`);\n"],"mappings":";;;AAGA,MAAa,WACX,eAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA4NT"}
1
+ {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/default-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 video-skin\" data-theme=\"default\" 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 name=\"spinner\" class=\"media-buffering-indicator-spinner-icon\">\n</media-icon>\n</media-buffering-indicator>\n<media-error-dialog class=\"media-dialog-root\">\n<media-dialog-backdrop class=\"media-dialog-backdrop\">\n</media-dialog-backdrop>\n<media-dialog-popup class=\"media-dialog-popup\">\n<div class=\"media-dialog-content\">\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</div>\n<div class=\"media-dialog-actions\">\n<media-dialog-close class=\"media-button media-dialog-close\">\n</media-dialog-close>\n</div>\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-center-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\">\n<media-icon name=\"restart\" class=\"media-button-icon media-play-button-restart-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon name=\"play\" class=\"media-button-icon media-play-button-play-icon video-controls-center-play-icon\">\n</media-icon>\n<media-icon name=\"pause\" class=\"media-button-icon media-play-button-pause-icon video-controls-center-play-icon\">\n</media-icon>\n</media-play-button>\n</media-controls-group>\n</media-buffering-indicator>\n<media-controls-backdrop class=\"video-controls-backdrop\">\n</media-controls-backdrop>\n<media-controls-content class=\"video-controls video-controls-content video-controls-spaced\">\n<media-tooltip-group>\n<media-controls-group class=\"video-controls-primary video-controls-spaced\">\n<media-play-button class=\"media-button media-play-button\" id=\"vjs-GwMvn1qb-0-trigger\">\n<media-icon name=\"restart\" class=\"media-button-icon media-play-button-restart-icon\">\n</media-icon>\n<media-icon name=\"play\" class=\"media-button-icon media-play-button-play-icon\">\n</media-icon>\n<media-icon name=\"pause\" class=\"media-button-icon media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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</media-live-button>\n<div aria-hidden=\"true\" class=\"video-controls-spacer\">\n</div>\n<media-mute-button commandfor=\"vjs-nFWpFKR6-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-GwMvn1qb-0-2-trigger\">\n<media-icon name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon name=\"volume-low\" class=\"media-button-icon media-mute-button-low-icon\">\n</media-icon>\n<media-icon name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-2-trigger\" delay=\"0\" disabled sticky side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-popup-surface media-volume-popover\" id=\"vjs-nFWpFKR6-0-popup\">\n<media-volume-slider class=\"media-slider media-volume-slider\" thumb-alignment=\"edge\" orientation=\"vertical\">\n<media-slider-track class=\"media-slider-track\">\n<media-slider-fill class=\"media-slider-fill\">\n</media-slider-fill>\n</media-slider-track>\n<media-slider-thumb class=\"media-slider-thumb media-volume-slider-thumb\">\n</media-slider-thumb>\n</media-volume-slider>\n</media-volume-popover>\n<media-captions-button commandfor=\"vjs-ePSMNeK8-0-popup\" class=\"media-button media-captions-button video-controls-captions-menu\" id=\"vjs-GwMvn1qb-0-3-trigger\">\n<media-icon name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-3-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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\" boundary=\"viewport\" class=\"media-popup media-popup-surface media-menu-popup\" id=\"vjs-ePSMNeK8-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-item-indicator\">\n<media-icon name=\"check\" class=\"media-menu-radio-item-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-cast-button class=\"media-button media-cast-button\" id=\"vjs-GwMvn1qb-0-4-trigger\">\n<media-icon name=\"cast-enter\" class=\"media-button-icon media-cast-button-enter-icon\">\n</media-icon>\n<media-icon name=\"cast-exit\" class=\"media-button-icon media-cast-button-exit-icon\">\n</media-icon>\n</media-cast-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-GwMvn1qb-0-5-trigger\">\n<media-icon name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-5-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-GwMvn1qb-0-6-trigger\">\n<media-icon name=\"pip-enter\" class=\"media-button-icon media-pip-button-enter-icon\">\n</media-icon>\n<media-icon name=\"pip-exit\" class=\"media-button-icon media-pip-button-exit-icon\">\n</media-icon>\n</media-pip-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-6-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-GwMvn1qb-0-7-trigger\">\n<media-icon name=\"fullscreen-enter\" class=\"media-button-icon media-fullscreen-button-enter-icon\">\n</media-icon>\n<media-icon name=\"fullscreen-exit\" class=\"media-button-icon media-fullscreen-button-exit-icon\">\n</media-icon>\n</media-fullscreen-button>\n<media-tooltip trigger=\"vjs-GwMvn1qb-0-7-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-popup-surface media-tooltip\">\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-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 class=\"video-status-indicators\">\n<media-volume-indicator class=\"media-indicator media-volume-indicator\">\n<media-volume-indicator-fill class=\"media-indicator-content media-volume-indicator-fill\">\n<media-icon name=\"volume-high\" class=\"media-volume-indicator-high-icon\">\n</media-icon>\n<media-icon name=\"volume-low\" class=\"media-volume-indicator-low-icon\">\n</media-icon>\n<media-icon name=\"volume-off\" class=\"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<div class=\"media-indicator-content media-status-indicator-content\">\n<media-icon name=\"captions-on\" class=\"media-status-indicator-captions-on-icon\">\n</media-icon>\n<media-icon name=\"captions-off\" class=\"media-status-indicator-captions-off-icon\">\n</media-icon>\n<media-icon name=\"fullscreen-enter\" class=\"media-status-indicator-fullscreen-enter-icon\">\n</media-icon>\n<media-icon name=\"fullscreen-exit\" class=\"media-status-indicator-fullscreen-exit-icon\">\n</media-icon>\n<media-icon name=\"pip-enter\" class=\"media-status-indicator-pip-enter-icon\">\n</media-icon>\n<media-icon name=\"pip-exit\" class=\"media-status-indicator-pip-exit-icon\">\n</media-icon>\n<media-status-indicator-value class=\"media-status-indicator-value\">\n</media-status-indicator-value>\n</div>\n</media-status-indicator>\n<media-status-indicator actions=\"togglePaused\" class=\"media-playback-status-indicator\">\n<media-icon name=\"play\" class=\"media-playback-status-indicator-play-icon\">\n</media-icon>\n<media-icon name=\"pause\" class=\"media-playback-status-indicator-pause-icon\">\n</media-icon>\n</media-status-indicator>\n</div>\n</media-container>`);\n"],"mappings":";;;AAGA,MAAa,WACX,eAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA0OT"}