@videojs/html 10.1.0 → 10.3.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 (355) hide show
  1. package/dist/default/define/audio/compat-skin.css +116 -65
  2. package/dist/default/define/audio/compat-skin2.js +1 -1
  3. package/dist/default/define/audio/neutral-skin.css +25 -16
  4. package/dist/default/define/audio/neutral-skin2.js +1 -1
  5. package/dist/default/define/audio/scaffold-skin.css +93 -51
  6. package/dist/default/define/audio/scaffold-skin2.js +1 -1
  7. package/dist/default/define/audio/skin.css +21 -6
  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 +98 -65
  11. package/dist/default/define/live-audio/compat-skin2.js +1 -1
  12. package/dist/default/define/live-audio/neutral-skin.css +8 -5
  13. package/dist/default/define/live-audio/neutral-skin2.js +1 -1
  14. package/dist/default/define/live-audio/scaffold-skin.css +75 -51
  15. package/dist/default/define/live-audio/scaffold-skin2.js +1 -1
  16. package/dist/default/define/live-audio/skin.css +6 -5
  17. package/dist/default/define/live-audio/skin2.js +1 -1
  18. package/dist/default/define/live-video/compat-skin.css +123 -21
  19. package/dist/default/define/live-video/compat-skin2.js +1 -1
  20. package/dist/default/define/live-video/neutral-skin.css +82 -14
  21. package/dist/default/define/live-video/neutral-skin2.js +1 -1
  22. package/dist/default/define/live-video/scaffold-skin.css +107 -26
  23. package/dist/default/define/live-video/scaffold-skin2.js +1 -1
  24. package/dist/default/define/live-video/skin.css +96 -16
  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/video/compat-skin.css +123 -21
  30. package/dist/default/define/video/compat-skin2.js +1 -1
  31. package/dist/default/define/video/neutral-skin.css +85 -24
  32. package/dist/default/define/video/neutral-skin2.js +1 -1
  33. package/dist/default/define/video/scaffold-skin.css +107 -26
  34. package/dist/default/define/video/scaffold-skin2.js +1 -1
  35. package/dist/default/define/video/skin.css +94 -16
  36. package/dist/default/define/video/skin2.js +1 -1
  37. package/dist/default/extensions/google-analytics/extension.js +75 -0
  38. package/dist/default/extensions/mux-data/extension.js +7 -2
  39. package/dist/default/internal/skins/compat-audio/register.js +0 -10
  40. package/dist/default/internal/skins/compat-audio/skin.css +116 -65
  41. package/dist/default/internal/skins/compat-audio/template.js +15 -39
  42. package/dist/default/internal/skins/compat-live-audio/register.js +0 -10
  43. package/dist/default/internal/skins/compat-live-audio/skin.css +98 -65
  44. package/dist/default/internal/skins/compat-live-audio/template.js +2 -26
  45. package/dist/default/internal/skins/compat-live-video/skin.css +123 -21
  46. package/dist/default/internal/skins/compat-video/skin.css +123 -21
  47. package/dist/default/internal/skins/default-audio/skin.css +21 -6
  48. package/dist/default/internal/skins/default-live-audio/skin.css +6 -5
  49. package/dist/default/internal/skins/default-live-video/skin.css +96 -16
  50. package/dist/default/internal/skins/default-video/skin.css +94 -16
  51. package/dist/default/internal/skins/neutral-audio/skin.css +25 -16
  52. package/dist/default/internal/skins/neutral-audio/template.js +1 -1
  53. package/dist/default/internal/skins/neutral-live-audio/skin.css +8 -5
  54. package/dist/default/internal/skins/neutral-live-video/skin.css +82 -14
  55. package/dist/default/internal/skins/neutral-video/skin.css +85 -24
  56. package/dist/default/internal/skins/neutral-video/template.js +1 -1
  57. package/dist/default/internal/skins/scaffold-audio/register.js +0 -10
  58. package/dist/default/internal/skins/scaffold-audio/skin.css +93 -51
  59. package/dist/default/internal/skins/scaffold-audio/template.js +15 -39
  60. package/dist/default/internal/skins/scaffold-live-audio/register.js +0 -10
  61. package/dist/default/internal/skins/scaffold-live-audio/skin.css +75 -51
  62. package/dist/default/internal/skins/scaffold-live-audio/template.js +2 -26
  63. package/dist/default/internal/skins/scaffold-live-video/skin.css +107 -26
  64. package/dist/default/internal/skins/scaffold-video/skin.css +107 -26
  65. package/dist/default/media/dailymotion-video/adapter.js +31 -0
  66. package/dist/default/media/hls-audio/adapter.js +1 -1
  67. package/dist/default/media/hls-background-video/adapter.js +8 -1
  68. package/dist/default/media/hls-video/adapter.js +1 -1
  69. package/dist/default/media/mixcloud-audio/adapter.js +16 -0
  70. package/dist/default/media/soundcloud-audio/adapter.js +16 -0
  71. package/dist/default/player/element.js +1 -5
  72. package/dist/default/presets/background/skin.js +2 -2
  73. package/dist/default/presets/skin.js +4 -3
  74. package/dist/default/ui/dialog/element.js +13 -1
  75. package/dist/default/ui/gesture/element.js +3 -0
  76. package/dist/default/ui/media-button-element.js +10 -1
  77. package/dist/default/ui/playback-rate-button/element.js +7 -2
  78. package/dist/default/ui/playback-rate-radio-group/element.js +10 -3
  79. package/dist/default/ui/radio-options/controller.js +18 -5
  80. package/dist/default/ui/slider/element.js +3 -1
  81. package/dist/default/ui/time-slider/element.js +19 -7
  82. package/dist/default/ui/volume-slider/element.js +3 -1
  83. package/dist/default/version.js +1 -1
  84. package/dist/dev/define/audio/compat-skin.css +116 -65
  85. package/dist/dev/define/audio/compat-skin2.js +1 -1
  86. package/dist/dev/define/audio/compat-skin2.js.map +1 -1
  87. package/dist/dev/define/audio/neutral-skin.css +25 -16
  88. package/dist/dev/define/audio/neutral-skin2.js +1 -1
  89. package/dist/dev/define/audio/neutral-skin2.js.map +1 -1
  90. package/dist/dev/define/audio/scaffold-skin.css +93 -51
  91. package/dist/dev/define/audio/scaffold-skin2.js +1 -1
  92. package/dist/dev/define/audio/scaffold-skin2.js.map +1 -1
  93. package/dist/dev/define/audio/skin.css +21 -6
  94. package/dist/dev/define/audio/skin2.js +1 -1
  95. package/dist/dev/define/audio/skin2.js.map +1 -1
  96. package/dist/dev/define/extensions/google-analytics.d.ts +11 -0
  97. package/dist/dev/define/extensions/google-analytics.js +8 -0
  98. package/dist/dev/define/extensions/google-analytics.js.map +1 -0
  99. package/dist/dev/define/live-audio/compat-skin.css +98 -65
  100. package/dist/dev/define/live-audio/compat-skin2.js +1 -1
  101. package/dist/dev/define/live-audio/compat-skin2.js.map +1 -1
  102. package/dist/dev/define/live-audio/neutral-skin.css +8 -5
  103. package/dist/dev/define/live-audio/neutral-skin2.js +1 -1
  104. package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -1
  105. package/dist/dev/define/live-audio/scaffold-skin.css +75 -51
  106. package/dist/dev/define/live-audio/scaffold-skin2.js +1 -1
  107. package/dist/dev/define/live-audio/scaffold-skin2.js.map +1 -1
  108. package/dist/dev/define/live-audio/skin.css +6 -5
  109. package/dist/dev/define/live-audio/skin2.js +1 -1
  110. package/dist/dev/define/live-audio/skin2.js.map +1 -1
  111. package/dist/dev/define/live-video/compat-skin.css +123 -21
  112. package/dist/dev/define/live-video/compat-skin2.js +1 -1
  113. package/dist/dev/define/live-video/compat-skin2.js.map +1 -1
  114. package/dist/dev/define/live-video/neutral-skin.css +82 -14
  115. package/dist/dev/define/live-video/neutral-skin2.js +1 -1
  116. package/dist/dev/define/live-video/neutral-skin2.js.map +1 -1
  117. package/dist/dev/define/live-video/scaffold-skin.css +107 -26
  118. package/dist/dev/define/live-video/scaffold-skin2.js +1 -1
  119. package/dist/dev/define/live-video/scaffold-skin2.js.map +1 -1
  120. package/dist/dev/define/live-video/skin.css +96 -16
  121. package/dist/dev/define/live-video/skin2.js +1 -1
  122. package/dist/dev/define/live-video/skin2.js.map +1 -1
  123. package/dist/dev/define/media/dailymotion-video.d.ts +15 -0
  124. package/dist/dev/define/media/dailymotion-video.js +13 -0
  125. package/dist/dev/define/media/dailymotion-video.js.map +1 -0
  126. package/dist/dev/define/media/mixcloud-audio.d.ts +15 -0
  127. package/dist/dev/define/media/mixcloud-audio.js +13 -0
  128. package/dist/dev/define/media/mixcloud-audio.js.map +1 -0
  129. package/dist/dev/define/media/soundcloud-audio.d.ts +15 -0
  130. package/dist/dev/define/media/soundcloud-audio.js +13 -0
  131. package/dist/dev/define/media/soundcloud-audio.js.map +1 -0
  132. package/dist/dev/define/video/compat-skin.css +123 -21
  133. package/dist/dev/define/video/compat-skin2.js +1 -1
  134. package/dist/dev/define/video/compat-skin2.js.map +1 -1
  135. package/dist/dev/define/video/neutral-skin.css +85 -24
  136. package/dist/dev/define/video/neutral-skin2.js +1 -1
  137. package/dist/dev/define/video/neutral-skin2.js.map +1 -1
  138. package/dist/dev/define/video/scaffold-skin.css +107 -26
  139. package/dist/dev/define/video/scaffold-skin2.js +1 -1
  140. package/dist/dev/define/video/scaffold-skin2.js.map +1 -1
  141. package/dist/dev/define/video/skin.css +94 -16
  142. package/dist/dev/define/video/skin2.js +1 -1
  143. package/dist/dev/define/video/skin2.js.map +1 -1
  144. package/dist/dev/extensions/google-analytics/extension.d.ts +52 -0
  145. package/dist/dev/extensions/google-analytics/extension.js +77 -0
  146. package/dist/dev/extensions/google-analytics/extension.js.map +1 -0
  147. package/dist/dev/extensions/google-analytics/index.d.ts +2 -0
  148. package/dist/dev/extensions/mux-data/extension.d.ts +4 -1
  149. package/dist/dev/extensions/mux-data/extension.js +7 -2
  150. package/dist/dev/extensions/mux-data/extension.js.map +1 -1
  151. package/dist/dev/index.d.ts +3 -3
  152. package/dist/dev/internal/skins/compat-audio/register.d.ts +3 -5
  153. package/dist/dev/internal/skins/compat-audio/register.js +0 -10
  154. package/dist/dev/internal/skins/compat-audio/register.js.map +1 -1
  155. package/dist/dev/internal/skins/compat-audio/skin.css +116 -65
  156. package/dist/dev/internal/skins/compat-audio/template.js +15 -39
  157. package/dist/dev/internal/skins/compat-audio/template.js.map +1 -1
  158. package/dist/dev/internal/skins/compat-live-audio/register.d.ts +0 -2
  159. package/dist/dev/internal/skins/compat-live-audio/register.js +0 -10
  160. package/dist/dev/internal/skins/compat-live-audio/register.js.map +1 -1
  161. package/dist/dev/internal/skins/compat-live-audio/skin.css +98 -65
  162. package/dist/dev/internal/skins/compat-live-audio/template.js +2 -26
  163. package/dist/dev/internal/skins/compat-live-audio/template.js.map +1 -1
  164. package/dist/dev/internal/skins/compat-live-video/register.d.ts +2 -2
  165. package/dist/dev/internal/skins/compat-live-video/skin.css +123 -21
  166. package/dist/dev/internal/skins/compat-video/register.d.ts +5 -5
  167. package/dist/dev/internal/skins/compat-video/skin.css +123 -21
  168. package/dist/dev/internal/skins/default-audio/register.d.ts +1 -1
  169. package/dist/dev/internal/skins/default-audio/skin.css +21 -6
  170. package/dist/dev/internal/skins/default-live-audio/skin.css +6 -5
  171. package/dist/dev/internal/skins/default-live-video/register.d.ts +2 -2
  172. package/dist/dev/internal/skins/default-live-video/skin.css +96 -16
  173. package/dist/dev/internal/skins/default-video/register.d.ts +3 -3
  174. package/dist/dev/internal/skins/default-video/skin.css +94 -16
  175. package/dist/dev/internal/skins/neutral-audio/register.d.ts +3 -3
  176. package/dist/dev/internal/skins/neutral-audio/skin.css +25 -16
  177. package/dist/dev/internal/skins/neutral-audio/template.js +1 -1
  178. package/dist/dev/internal/skins/neutral-audio/template.js.map +1 -1
  179. package/dist/dev/internal/skins/neutral-live-audio/skin.css +8 -5
  180. package/dist/dev/internal/skins/neutral-live-video/register.d.ts +2 -2
  181. package/dist/dev/internal/skins/neutral-live-video/skin.css +82 -14
  182. package/dist/dev/internal/skins/neutral-video/register.d.ts +5 -5
  183. package/dist/dev/internal/skins/neutral-video/skin.css +85 -24
  184. package/dist/dev/internal/skins/neutral-video/template.js +1 -1
  185. package/dist/dev/internal/skins/neutral-video/template.js.map +1 -1
  186. package/dist/dev/internal/skins/scaffold-audio/register.d.ts +3 -5
  187. package/dist/dev/internal/skins/scaffold-audio/register.js +0 -10
  188. package/dist/dev/internal/skins/scaffold-audio/register.js.map +1 -1
  189. package/dist/dev/internal/skins/scaffold-audio/skin.css +93 -51
  190. package/dist/dev/internal/skins/scaffold-audio/template.js +15 -39
  191. package/dist/dev/internal/skins/scaffold-audio/template.js.map +1 -1
  192. package/dist/dev/internal/skins/scaffold-live-audio/register.d.ts +0 -2
  193. package/dist/dev/internal/skins/scaffold-live-audio/register.js +0 -10
  194. package/dist/dev/internal/skins/scaffold-live-audio/register.js.map +1 -1
  195. package/dist/dev/internal/skins/scaffold-live-audio/skin.css +75 -51
  196. package/dist/dev/internal/skins/scaffold-live-audio/template.js +2 -26
  197. package/dist/dev/internal/skins/scaffold-live-audio/template.js.map +1 -1
  198. package/dist/dev/internal/skins/scaffold-live-video/register.d.ts +2 -2
  199. package/dist/dev/internal/skins/scaffold-live-video/skin.css +107 -26
  200. package/dist/dev/internal/skins/scaffold-video/register.d.ts +5 -5
  201. package/dist/dev/internal/skins/scaffold-video/skin.css +107 -26
  202. package/dist/dev/media/dailymotion-video/adapter.d.ts +17 -0
  203. package/dist/dev/media/dailymotion-video/adapter.js +47 -0
  204. package/dist/dev/media/dailymotion-video/adapter.js.map +1 -0
  205. package/dist/dev/media/dailymotion-video/index.d.ts +2 -0
  206. package/dist/dev/media/hls-audio/adapter.d.ts +1 -1
  207. package/dist/dev/media/hls-audio/adapter.js +1 -1
  208. package/dist/dev/media/hls-audio/adapter.js.map +1 -1
  209. package/dist/dev/media/hls-background-video/adapter.d.ts +6 -1
  210. package/dist/dev/media/hls-background-video/adapter.js +8 -1
  211. package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
  212. package/dist/dev/media/hls-video/adapter.d.ts +1 -1
  213. package/dist/dev/media/hls-video/adapter.js +1 -1
  214. package/dist/dev/media/hls-video/adapter.js.map +1 -1
  215. package/dist/dev/media/mixcloud-audio/adapter.d.ts +11 -0
  216. package/dist/dev/media/mixcloud-audio/adapter.js +52 -0
  217. package/dist/dev/media/mixcloud-audio/adapter.js.map +1 -0
  218. package/dist/dev/media/mixcloud-audio/index.d.ts +2 -0
  219. package/dist/dev/media/soundcloud-audio/adapter.d.ts +11 -0
  220. package/dist/dev/media/soundcloud-audio/adapter.js +53 -0
  221. package/dist/dev/media/soundcloud-audio/adapter.js.map +1 -0
  222. package/dist/dev/media/soundcloud-audio/index.d.ts +2 -0
  223. package/dist/dev/player/element.js +1 -5
  224. package/dist/dev/player/element.js.map +1 -1
  225. package/dist/dev/presets/background/skin.d.ts +2 -1
  226. package/dist/dev/presets/background/skin.js +2 -2
  227. package/dist/dev/presets/background/skin.js.map +1 -1
  228. package/dist/dev/presets/skin.d.ts +4 -3
  229. package/dist/dev/presets/skin.js +4 -3
  230. package/dist/dev/presets/skin.js.map +1 -1
  231. package/dist/dev/ui/dialog/element.js +13 -1
  232. package/dist/dev/ui/dialog/element.js.map +1 -1
  233. package/dist/dev/ui/gesture/element.js +3 -0
  234. package/dist/dev/ui/gesture/element.js.map +1 -1
  235. package/dist/dev/ui/media-button-element.d.ts +9 -0
  236. package/dist/dev/ui/media-button-element.js +10 -1
  237. package/dist/dev/ui/media-button-element.js.map +1 -1
  238. package/dist/dev/ui/play-button/element.d.ts +2 -0
  239. package/dist/dev/ui/playback-rate-button/element.d.ts +9 -1
  240. package/dist/dev/ui/playback-rate-button/element.js +7 -2
  241. package/dist/dev/ui/playback-rate-button/element.js.map +1 -1
  242. package/dist/dev/ui/playback-rate-radio-group/element.d.ts +4 -0
  243. package/dist/dev/ui/playback-rate-radio-group/element.js +10 -3
  244. package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
  245. package/dist/dev/ui/radio-options/controller.js +18 -5
  246. package/dist/dev/ui/radio-options/controller.js.map +1 -1
  247. package/dist/dev/ui/slider/element.js +3 -1
  248. package/dist/dev/ui/slider/element.js.map +1 -1
  249. package/dist/dev/ui/time-slider/element.js +19 -7
  250. package/dist/dev/ui/time-slider/element.js.map +1 -1
  251. package/dist/dev/ui/volume-slider/element.js +3 -1
  252. package/dist/dev/ui/volume-slider/element.js.map +1 -1
  253. package/dist/dev/version.js +1 -1
  254. package/docs/README.md +1 -1
  255. package/docs/guides/autoplay.md +1 -1
  256. package/docs/guides/browser-support.md +13 -11
  257. package/docs/guides/build-your-own-skin.md +383 -0
  258. package/docs/guides/cdn.md +10 -9
  259. package/docs/guides/content-security-policy.md +3 -0
  260. package/docs/guides/customize-skins.md +6 -3
  261. package/docs/guides/features.md +1 -1
  262. package/docs/guides/google-analytics.md +199 -0
  263. package/docs/guides/installation-cdn.md +4 -4
  264. package/docs/guides/installation-shadcn.md +3 -3
  265. package/docs/guides/installation-svelte.md +4 -4
  266. package/docs/guides/installation-vue.md +4 -4
  267. package/docs/guides/installation.md +4 -4
  268. package/docs/guides/internationalization.md +5 -5
  269. package/docs/guides/keyboard-shortcuts.md +1 -1
  270. package/docs/guides/llms.txt +3 -1
  271. package/docs/guides/media-sources.md +3 -0
  272. package/docs/guides/migrate-from-media-chrome.md +4 -4
  273. package/docs/guides/migrate-from-mux-player.md +9 -9
  274. package/docs/guides/migrate-from-plyr.md +8 -8
  275. package/docs/guides/migrate-from-video-js-8.md +9 -10
  276. package/docs/guides/migrate-from-vidstack.md +9 -9
  277. package/docs/guides/mux-data.md +22 -0
  278. package/docs/guides/presets.md +1 -1
  279. package/docs/guides/self-hosting.md +9 -6
  280. package/docs/guides/skins.md +17 -1
  281. package/docs/guides/ui-components.md +1 -1
  282. package/docs/llms.txt +12 -6
  283. package/docs/reference/api/feature-playback-rate.md +54 -3
  284. package/docs/reference/api/feature-playback.md +5 -1
  285. package/docs/reference/api/html-create-player.md +2 -2
  286. package/docs/reference/api/llms.txt +1 -1
  287. package/docs/reference/api/media-capabilities.md +1 -1
  288. package/docs/reference/api/player-store.md +6 -3
  289. package/docs/reference/api/preset-audio.md +13 -5
  290. package/docs/reference/api/preset-background.md +2 -2
  291. package/docs/reference/api/preset-live-audio.md +13 -5
  292. package/docs/reference/api/preset-live-video.md +13 -5
  293. package/docs/reference/api/preset-video.md +13 -5
  294. package/docs/reference/api/resolve-adapter-type.md +4 -1
  295. package/docs/reference/api/ui-element.md +2 -2
  296. package/docs/reference/components/alert-dialog.md +21 -16
  297. package/docs/reference/components/audio-compat-skin.md +8 -2
  298. package/docs/reference/components/audio-neutral-skin.md +2 -2
  299. package/docs/reference/components/audio-scaffold-skin.md +2 -2
  300. package/docs/reference/components/audio-skin.md +2 -2
  301. package/docs/reference/components/audio-track-radio-group.md +2 -2
  302. package/docs/reference/components/background-video-skin.md +1 -1
  303. package/docs/reference/components/background-video.md +1 -1
  304. package/docs/reference/components/buffering-indicator.md +2 -2
  305. package/docs/reference/components/captions-radio-group.md +2 -2
  306. package/docs/reference/components/cloudflare-video.md +1 -1
  307. package/docs/reference/components/dailymotion-video.md +192 -0
  308. package/docs/reference/components/dash-video.md +2 -1
  309. package/docs/reference/components/dialog.md +49 -22
  310. package/docs/reference/components/error-dialog.md +13 -10
  311. package/docs/reference/components/gesture.md +2 -2
  312. package/docs/reference/components/google-analytics.md +51 -0
  313. package/docs/reference/components/google-cast.md +1 -1
  314. package/docs/reference/components/hls-audio.md +2 -48
  315. package/docs/reference/components/hls-background-video.md +4 -1
  316. package/docs/reference/components/hls-video.md +2 -66
  317. package/docs/reference/components/hlsjs-video.md +3 -1
  318. package/docs/reference/components/hotkey.md +2 -2
  319. package/docs/reference/components/live-audio-compat-skin.md +8 -2
  320. package/docs/reference/components/live-audio-neutral-skin.md +2 -2
  321. package/docs/reference/components/live-audio-scaffold-skin.md +2 -2
  322. package/docs/reference/components/live-audio-skin.md +2 -2
  323. package/docs/reference/components/live-video-compat-skin.md +8 -2
  324. package/docs/reference/components/live-video-neutral-skin.md +2 -2
  325. package/docs/reference/components/live-video-scaffold-skin.md +2 -2
  326. package/docs/reference/components/live-video-skin.md +2 -2
  327. package/docs/reference/components/llms.txt +9 -5
  328. package/docs/reference/components/mixcloud-audio.md +203 -0
  329. package/docs/reference/components/mux-audio.md +3 -1
  330. package/docs/reference/components/mux-background-video.md +1 -1
  331. package/docs/reference/components/mux-data.md +22 -2
  332. package/docs/reference/components/mux-video.md +3 -1
  333. package/docs/reference/components/native-hls-video.md +2 -1
  334. package/docs/reference/components/play-button.md +7 -5
  335. package/docs/reference/components/playback-rate-button.md +26 -7
  336. package/docs/reference/components/playback-rate-radio-group.md +7 -4
  337. package/docs/reference/components/player.md +3 -3
  338. package/docs/reference/components/playerjs-video.md +1 -1
  339. package/docs/reference/components/quality-radio-group.md +2 -2
  340. package/docs/reference/components/shaka-video.md +2 -1
  341. package/docs/reference/components/slider.md +2 -0
  342. package/docs/reference/components/soundcloud-audio.md +227 -0
  343. package/docs/reference/components/spotify-audio.md +2 -2
  344. package/docs/reference/components/tiktok-video.md +2 -2
  345. package/docs/reference/components/time-slider.md +7 -5
  346. package/docs/reference/components/twitch-video.md +2 -3
  347. package/docs/reference/components/video-compat-skin.md +8 -2
  348. package/docs/reference/components/video-neutral-skin.md +2 -2
  349. package/docs/reference/components/video-scaffold-skin.md +2 -2
  350. package/docs/reference/components/video-skin.md +2 -2
  351. package/docs/reference/components/vimeo-video.md +2 -1
  352. package/docs/reference/components/volume-slider.md +8 -6
  353. package/docs/reference/components/wistia-video.md +1 -1
  354. package/docs/reference/components/youtube-video.md +2 -1
  355. package/package.json +62 -43
@@ -182,7 +182,11 @@
182
182
 
183
183
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-backdrop {
184
184
  z-index: 40;
185
+ transition-property: opacity;
186
+ transition-duration: .15s;
187
+ transition-duration: var(--media-duration-slower);
185
188
  background-color: #000000bf;
189
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
186
190
  position: absolute;
187
191
  inset: 0;
188
192
  }
@@ -191,6 +195,18 @@
191
195
  display: none;
192
196
  }
193
197
 
198
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-backdrop[data-ending-style] {
199
+ transition-duration: var(--media-duration);
200
+ }
201
+
202
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-backdrop[data-scope="document"] {
203
+ position: fixed;
204
+ }
205
+
206
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {
207
+ opacity: 0;
208
+ }
209
+
194
210
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-close {
195
211
  height: calc(var(--media-spacing) * 8);
196
212
  width: auto;
@@ -215,8 +231,12 @@
215
231
  background-color: var(--media-popover);
216
232
  padding: calc(var(--media-spacing) * 5);
217
233
  color: var(--media-popover-foreground);
234
+ transition-property: opacity, scale;
235
+ transition-duration: .15s;
236
+ transition-duration: var(--media-duration-slower);
218
237
  border-radius: .5rem;
219
238
  outline-style: none;
239
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
220
240
  display: grid;
221
241
  position: absolute;
222
242
  top: 50%;
@@ -236,6 +256,15 @@
236
256
  outline-color: var(--media-ring);
237
257
  }
238
258
 
259
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-popup[data-ending-style] {
260
+ transition-duration: var(--media-duration);
261
+ }
262
+
263
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-popup[data-scope="document"] {
264
+ max-height: calc(100dvh - 2rem);
265
+ position: fixed;
266
+ }
267
+
239
268
  @media (forced-colors: active) {
240
269
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-popup {
241
270
  border: 1px solid canvastext;
@@ -248,6 +277,11 @@
248
277
  }
249
278
  }
250
279
 
280
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-popup:is([data-starting-style], [data-ending-style]) {
281
+ scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);
282
+ opacity: 0;
283
+ }
284
+
251
285
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-dialog-title {
252
286
  font-size: 1.125rem;
253
287
  font-weight: 700;
@@ -263,6 +297,43 @@
263
297
  overflow: hidden;
264
298
  }
265
299
 
300
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button {
301
+ align-items: center;
302
+ gap: calc(var(--media-spacing) * 1.5);
303
+ font-size: calc(var(--media-spacing) * 2.75);
304
+ letter-spacing: .05em;
305
+ text-transform: uppercase;
306
+ grid-auto-flow: column;
307
+ font-weight: 600;
308
+ width: auto !important;
309
+ padding-inline: calc(var(--media-spacing) * 2.5) !important;
310
+ }
311
+
312
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button-dot {
313
+ width: calc(var(--media-spacing) * 2);
314
+ height: calc(var(--media-spacing) * 2);
315
+ opacity: .4;
316
+ transition-property: background-color, opacity;
317
+ transition-duration: .15s;
318
+ transition-duration: var(--media-duration);
319
+ background-color: currentColor;
320
+ border-radius: 9999px;
321
+ flex-shrink: 0;
322
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
323
+ display: inline-block;
324
+ }
325
+
326
+ :where(:where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button)[data-live-edge] .media-live-button-dot {
327
+ opacity: 1;
328
+ background-color: #f43f5e;
329
+ }
330
+
331
+ @media (prefers-reduced-motion: reduce) {
332
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button-dot {
333
+ transition-property: none;
334
+ }
335
+ }
336
+
266
337
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-popup {
267
338
  color: inherit;
268
339
  border-style: solid;
@@ -409,66 +480,6 @@
409
480
  }
410
481
  }
411
482
 
412
- :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) :where(.media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-enter-icon, :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-airplay-button-exit-icon {
413
- display: none;
414
- }
415
-
416
- :where(:where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-exit-icon {
417
- display: block;
418
- }
419
-
420
- :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-button-icon {
421
- width: calc(var(--media-spacing) * 4.5);
422
- height: calc(var(--media-spacing) * 4.5);
423
- grid-row-start: 1;
424
- grid-column-start: 1;
425
- }
426
-
427
- :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) :where(.media-captions-button)[data-active] .media-captions-button-off-icon, :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-captions-button-on-icon {
428
- display: none;
429
- }
430
-
431
- :where(:where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-captions-button)[data-active] .media-captions-button-on-icon {
432
- display: block;
433
- }
434
-
435
- :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button {
436
- align-items: center;
437
- gap: calc(var(--media-spacing) * 1.5);
438
- font-size: calc(var(--media-spacing) * 2.75);
439
- letter-spacing: .05em;
440
- text-transform: uppercase;
441
- grid-auto-flow: column;
442
- font-weight: 600;
443
- width: auto !important;
444
- padding-inline: calc(var(--media-spacing) * 2.5) !important;
445
- }
446
-
447
- :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button-dot {
448
- width: calc(var(--media-spacing) * 2);
449
- height: calc(var(--media-spacing) * 2);
450
- opacity: .4;
451
- transition-property: background-color, opacity;
452
- transition-duration: .15s;
453
- transition-duration: var(--media-duration);
454
- background-color: currentColor;
455
- border-radius: 9999px;
456
- flex-shrink: 0;
457
- transition-timing-function: cubic-bezier(0, 0, .2, 1);
458
- display: inline-block;
459
- }
460
-
461
- :where(:where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button)[data-live-edge] .media-live-button-dot {
462
- opacity: 1;
463
- background-color: #f43f5e;
464
- }
465
-
466
- @media (prefers-reduced-motion: reduce) {
467
- :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-live-button-dot {
468
- transition-property: none;
469
- }
470
- }
471
-
472
483
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-button-icon-base {
473
484
  width: calc(var(--media-spacing) * 4.5);
474
485
  height: calc(var(--media-spacing) * 4.5);
@@ -781,6 +792,13 @@
781
792
  display: block;
782
793
  }
783
794
 
795
+ :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-button-icon {
796
+ width: calc(var(--media-spacing) * 4.5);
797
+ height: calc(var(--media-spacing) * 4.5);
798
+ grid-row-start: 1;
799
+ grid-column-start: 1;
800
+ }
801
+
784
802
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-mute-button-high-icon {
785
803
  display: none;
786
804
  }
@@ -906,7 +924,7 @@
906
924
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .video-controls-backdrop {
907
925
  pointer-events: none;
908
926
  z-index: 10;
909
- background-image: linear-gradient(to top, #000000b3, #0003, #00000080);
927
+ background-image: var(--media-controls-gradient);
910
928
  position: absolute;
911
929
  inset: 0;
912
930
  }
@@ -1297,7 +1315,6 @@
1297
1315
  }
1298
1316
 
1299
1317
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-audio, :where(.media-skin[data-theme="compat"][data-preset="live-audio"]).media-audio {
1300
- aspect-ratio: auto;
1301
1318
  background-color: var(--media-background);
1302
1319
  box-shadow: 0 0 #0000,
1303
1320
  0 0 #0000,
@@ -1310,6 +1327,9 @@
1310
1327
  :where(.media-skin[data-theme="compat"][data-preset="live-audio"]) .media-container, :where(.media-skin[data-theme="compat"][data-preset="live-audio"]).media-container {
1311
1328
  border-radius: var(--media-video-border-radius);
1312
1329
  width: 100%;
1330
+ min-width: 0;
1331
+ height: 100%;
1332
+ min-height: 0;
1313
1333
  font-family: var(--media-font-family, "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif);
1314
1334
  font-size: calc(var(--media-spacing) * 3.25);
1315
1335
  color: var(--media-foreground);
@@ -1339,6 +1359,17 @@
1339
1359
  outline-style: solid;
1340
1360
  outline-color: var(--media-ring);
1341
1361
  }
1362
+
1363
+ .media-container > slot::slotted(video), :scope.media-container > slot::slotted(video) {
1364
+ border-radius: inherit;
1365
+ object-fit: var(--media-object-fit, contain);
1366
+ object-position: var(--media-object-position, center);
1367
+ width: 100%;
1368
+ max-width: 100%;
1369
+ margin: 0;
1370
+ display: block;
1371
+ height: 100% !important;
1372
+ }
1342
1373
  }
1343
1374
 
1344
1375
  @layer utilities;
@@ -1356,7 +1387,7 @@
1356
1387
  --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
1357
1388
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
1358
1389
  --media-muted: oklch(100% 0 0 / .15);
1359
- --media-muted-foreground: oklch(100% 0 0 / .65);
1390
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
1360
1391
  --media-border: oklch(0% 0 0 / .1);
1361
1392
  --media-ring: oklch(100% 0 0);
1362
1393
  --media-backdrop: oklch(0% 0 0);
@@ -1369,9 +1400,9 @@
1369
1400
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
1370
1401
  --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
1371
1402
  --media-text-shadow-dialog: 0 1px 0 #00000040;
1372
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
1403
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
1373
1404
  --media-backdrop-filter-indicator: blur(8px);
1374
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
1405
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
1375
1406
  --media-control-corner-shape: round;
1376
1407
  --media-control-radius: 99px;
1377
1408
  --media-control-size: calc(var(--media-spacing) * 9);
@@ -1476,6 +1507,7 @@
1476
1507
  --media-controls-foreground: var(--media-foreground);
1477
1508
  --media-popover: var(--media-controls);
1478
1509
  --media-popover-foreground: var(--media-foreground);
1510
+ --media-muted: oklch(0% 0 0 / .1);
1479
1511
  --media-surface-border: oklch(0% 0 0 / .05);
1480
1512
  --media-primary: var(--media-accent-color, var(--media-foreground));
1481
1513
  --media-border: oklch(0% 0 0 / .1);
@@ -1494,6 +1526,7 @@
1494
1526
  --media-foreground: light-dark(oklch(0% 0 0), oklch(100% 0 0));
1495
1527
  --media-controls: light-dark(oklch(100% 0 0 / .5), oklch(0% 0 0 / .4));
1496
1528
  --media-border: light-dark(oklch(0% 0 0 / .1), oklch(100% 0 0 / .1));
1529
+ --media-muted: light-dark(oklch(0% 0 0 / .1), oklch(100% 0 0 / .1));
1497
1530
  --media-default-accent-color: light-dark(oklch(0% 0 0), oklch(100% 0 0));
1498
1531
  --media-default-accent-text-color: light-dark(oklch(100% 0 0), oklch(0% 0 0));
1499
1532
  --media-internal-accent-text-fallback: light-dark(oklch(100% 0 0), oklch(0% 0 0));
@@ -44,25 +44,13 @@ const template = createTemplate(`<media-container class="media-skin media-contai
44
44
  </media-live-button>
45
45
  </media-controls-group>
46
46
  <media-controls-group class="video-controls-group">
47
- <media-captions-button class="media-button media-captions-button" id="vjs-vkMVyeox-0-2-trigger">
48
- <media-icon family="compat" name="captions-off" class="media-button-icon media-captions-button-off-icon">
49
- </media-icon>
50
- <media-icon family="compat" name="captions-on" class="media-button-icon media-captions-button-on-icon">
51
- </media-icon>
52
- </media-captions-button>
53
- <media-tooltip trigger="vjs-vkMVyeox-0-2-trigger" side="top" class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
54
- <media-tooltip-label>
55
- </media-tooltip-label>
56
- <media-tooltip-shortcut class="media-tooltip-shortcut">
57
- </media-tooltip-shortcut>
58
- </media-tooltip>
59
- <media-mute-button commandfor="vjs-UWQs13wo-0-popup" class="media-button media-mute-button" id="vjs-vkMVyeox-0-3-trigger">
47
+ <media-mute-button commandfor="vjs-UWQs13wo-0-popup" class="media-button media-mute-button" id="vjs-vkMVyeox-0-2-trigger">
60
48
  <media-icon family="compat" name="volume-off" class="media-button-icon media-mute-button-off-icon">
61
49
  </media-icon>
62
50
  <media-icon family="compat" name="volume-high" class="media-button-icon media-mute-button-high-icon">
63
51
  </media-icon>
64
52
  </media-mute-button>
65
- <media-tooltip trigger="vjs-vkMVyeox-0-3-trigger" delay="0" disabled side="top" sticky class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
53
+ <media-tooltip trigger="vjs-vkMVyeox-0-2-trigger" delay="0" disabled side="top" sticky class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
66
54
  <media-tooltip-label>
67
55
  </media-tooltip-label>
68
56
  <media-tooltip-shortcut class="media-tooltip-shortcut">
@@ -78,18 +66,6 @@ const template = createTemplate(`<media-container class="media-skin media-contai
78
66
  </media-slider-thumb>
79
67
  </media-volume-slider>
80
68
  </media-volume-popover>
81
- <media-airplay-button class="media-button media-airplay-button" id="vjs-vkMVyeox-0-4-trigger">
82
- <media-icon family="compat" name="airplay-enter" class="media-button-icon media-airplay-button-enter-icon">
83
- </media-icon>
84
- <media-icon family="compat" name="airplay-exit" class="media-button-icon media-airplay-button-exit-icon">
85
- </media-icon>
86
- </media-airplay-button>
87
- <media-tooltip trigger="vjs-vkMVyeox-0-4-trigger" side="top" class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
88
- <media-tooltip-label>
89
- </media-tooltip-label>
90
- <media-tooltip-shortcut class="media-tooltip-shortcut">
91
- </media-tooltip-shortcut>
92
- </media-tooltip>
93
69
  </media-controls-group>
94
70
  </media-controls-group>
95
71
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/compat-live-audio/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-audio\" data-theme=\"compat\" data-preset=\"live-audio\">\n<slot>\n</slot>\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 visibility=\"always\">\n<media-buffering-indicator class=\"video-controls-buffering\">\n<media-controls-content class=\"video-controls-content audio-controls-content\">\n<media-tooltip-group>\n<div class=\"video-controls-bottom audio-controls-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-vkMVyeox-0-trigger\">\n<media-icon family=\"compat\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-vkMVyeox-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-live-button class=\"media-button media-live-button\">\n<div aria-hidden=\"true\" class=\"media-live-button-dot\">\n</div>\n<media-text token=\"live.badge\">Live</media-text>\n</media-live-button>\n</media-controls-group>\n<media-controls-group class=\"video-controls-group\">\n<media-captions-button class=\"media-button media-captions-button\" id=\"vjs-vkMVyeox-0-2-trigger\">\n<media-icon family=\"compat\" name=\"captions-off\" class=\"media-button-icon media-captions-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"captions-on\" class=\"media-button-icon media-captions-button-on-icon\">\n</media-icon>\n</media-captions-button>\n<media-tooltip trigger=\"vjs-vkMVyeox-0-2-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-mute-button commandfor=\"vjs-UWQs13wo-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-vkMVyeox-0-3-trigger\">\n<media-icon family=\"compat\" name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-vkMVyeox-0-3-trigger\" delay=\"0\" disabled side=\"top\" sticky class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-volume-popover open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-volume-popover-popup\" id=\"vjs-UWQs13wo-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-airplay-button class=\"media-button media-airplay-button\" id=\"vjs-vkMVyeox-0-4-trigger\">\n<media-icon family=\"compat\" name=\"airplay-enter\" class=\"media-button-icon media-airplay-button-enter-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"airplay-exit\" class=\"media-button-icon media-airplay-button-exit-icon\">\n</media-icon>\n</media-airplay-button>\n<media-tooltip trigger=\"vjs-vkMVyeox-0-4-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n</media-controls-group>\n</media-controls-group>\n</div>\n</media-tooltip-group>\n</media-controls-content>\n</media-buffering-indicator>\n</media-controls>\n<media-hotkey keys=\"Space\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"k\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"m\" action=\"toggleMuted\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowUp\" action=\"volumeStep\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowDown\" action=\"volumeStep\">\n</media-hotkey>\n<media-status-announcer class=\"media-status-announcer\">\n</media-status-announcer>\n</media-container>`);\n"],"mappings":";;;AAGA,MAAa,WACX,eAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA4GT"}
1
+ {"version":3,"file":"template.js","names":[],"sources":["../../../../../src/internal/skins/compat-live-audio/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-audio\" data-theme=\"compat\" data-preset=\"live-audio\">\n<slot>\n</slot>\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 visibility=\"always\">\n<media-buffering-indicator class=\"video-controls-buffering\">\n<media-controls-content class=\"video-controls-content audio-controls-content\">\n<media-tooltip-group>\n<div class=\"video-controls-bottom audio-controls-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-vkMVyeox-0-trigger\">\n<media-icon family=\"compat\" name=\"restart\" class=\"media-button-icon-base media-play-button-restart-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"play\" class=\"media-button-icon-base media-play-button-play-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"pause\" class=\"media-button-icon-base media-play-button-pause-icon\">\n</media-icon>\n</media-play-button>\n<media-tooltip trigger=\"vjs-vkMVyeox-0-trigger\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-live-button class=\"media-button media-live-button\">\n<div aria-hidden=\"true\" class=\"media-live-button-dot\">\n</div>\n<media-text token=\"live.badge\">Live</media-text>\n</media-live-button>\n</media-controls-group>\n<media-controls-group class=\"video-controls-group\">\n<media-mute-button commandfor=\"vjs-UWQs13wo-0-popup\" class=\"media-button media-mute-button\" id=\"vjs-vkMVyeox-0-2-trigger\">\n<media-icon family=\"compat\" name=\"volume-off\" class=\"media-button-icon media-mute-button-off-icon\">\n</media-icon>\n<media-icon family=\"compat\" name=\"volume-high\" class=\"media-button-icon media-mute-button-high-icon\">\n</media-icon>\n</media-mute-button>\n<media-tooltip trigger=\"vjs-vkMVyeox-0-2-trigger\" delay=\"0\" disabled side=\"top\" sticky class=\"media-popup media-popup-safe-area media-popup-transition media-tooltip-popup\">\n<media-tooltip-label>\n</media-tooltip-label>\n<media-tooltip-shortcut class=\"media-tooltip-shortcut\">\n</media-tooltip-shortcut>\n</media-tooltip>\n<media-volume-popover open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popup media-popup-safe-area media-popup-transition media-volume-popover-popup\" id=\"vjs-UWQs13wo-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>\n</div>\n</media-tooltip-group>\n</media-controls-content>\n</media-buffering-indicator>\n</media-controls>\n<media-hotkey keys=\"Space\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"k\" action=\"togglePaused\">\n</media-hotkey>\n<media-hotkey keys=\"m\" action=\"toggleMuted\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowUp\" action=\"volumeStep\">\n</media-hotkey>\n<media-hotkey keys=\"ArrowDown\" action=\"volumeStep\">\n</media-hotkey>\n<media-status-announcer class=\"media-status-announcer\">\n</media-status-announcer>\n</media-container>`);\n"],"mappings":";;;AAGA,MAAa,WACX,eAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAoFT"}
@@ -22,20 +22,20 @@ import "../../../define/ui/menu.js";
22
22
  import "../../../define/ui/menu-content.js";
23
23
  import "../../../define/ui/menu-radio-item.js";
24
24
  import "../../../define/ui/menu-item-indicator.js";
25
- import "../../../define/ui/captions-button.js";
26
25
  import "../../../define/ui/mute-button.js";
27
26
  import "../../../define/ui/volume-popover.js";
28
27
  import "../../../define/ui/volume-slider.js";
29
- import "../../../define/ui/airplay-button.js";
30
28
  import "../../../define/ui/hotkey.js";
31
29
  import "../../../define/ui/status-announcer.js";
32
30
  import "../../../define/ui/live-button.js";
33
31
  import "../../../define/ui/poster.js";
34
32
  import "../../../define/ui/title.js";
35
33
  import "../../../define/ui/controls-backdrop.js";
34
+ import "../../../define/ui/airplay-button.js";
36
35
  import "../../../define/ui/cast-button.js";
37
36
  import "../../../define/ui/pip-button.js";
38
37
  import "../../../define/ui/fullscreen-button.js";
38
+ import "../../../define/ui/captions-button.js";
39
39
  import "../../../define/ui/captions-radio-group.js";
40
40
  import "../../../define/ui/gesture.js";
41
41
  import "../../../define/ui/volume-indicator.js";
@@ -218,7 +218,11 @@
218
218
 
219
219
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop {
220
220
  z-index: 40;
221
+ transition-property: opacity;
222
+ transition-duration: .15s;
223
+ transition-duration: var(--media-duration-slower);
221
224
  background-color: #000000bf;
225
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
222
226
  position: absolute;
223
227
  inset: 0;
224
228
  }
@@ -227,6 +231,18 @@
227
231
  display: none;
228
232
  }
229
233
 
234
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop[data-ending-style] {
235
+ transition-duration: var(--media-duration);
236
+ }
237
+
238
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop[data-scope="document"] {
239
+ position: fixed;
240
+ }
241
+
242
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-backdrop:is([data-starting-style], [data-ending-style]) {
243
+ opacity: 0;
244
+ }
245
+
230
246
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-close {
231
247
  height: calc(var(--media-spacing) * 8);
232
248
  width: auto;
@@ -251,8 +267,12 @@
251
267
  background-color: var(--media-popover);
252
268
  padding: calc(var(--media-spacing) * 5);
253
269
  color: var(--media-popover-foreground);
270
+ transition-property: opacity, scale;
271
+ transition-duration: .15s;
272
+ transition-duration: var(--media-duration-slower);
254
273
  border-radius: .5rem;
255
274
  outline-style: none;
275
+ transition-timing-function: cubic-bezier(0, 0, .2, 1);
256
276
  display: grid;
257
277
  position: absolute;
258
278
  top: 50%;
@@ -272,6 +292,15 @@
272
292
  outline-color: var(--media-ring);
273
293
  }
274
294
 
295
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup[data-ending-style] {
296
+ transition-duration: var(--media-duration);
297
+ }
298
+
299
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup[data-scope="document"] {
300
+ max-height: calc(100dvh - 2rem);
301
+ position: fixed;
302
+ }
303
+
275
304
  @media (forced-colors: active) {
276
305
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup {
277
306
  border: 1px solid canvastext;
@@ -284,6 +313,11 @@
284
313
  }
285
314
  }
286
315
 
316
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-popup:is([data-starting-style], [data-ending-style]) {
317
+ scale: var(--media-hidden-popup-scale) var(--media-hidden-popup-scale);
318
+ opacity: 0;
319
+ }
320
+
287
321
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-dialog-title {
288
322
  font-size: 1.125rem;
289
323
  font-weight: 700;
@@ -541,6 +575,18 @@
541
575
  }
542
576
  }
543
577
 
578
+ .media-poster > slot::slotted(img) {
579
+ object-fit: var(--media-object-fit, contain);
580
+ object-position: var(--media-object-position, center);
581
+ width: 100%;
582
+ display: block;
583
+ height: 100% !important;
584
+ }
585
+
586
+ .media-poster > slot::slotted(img:not([src]):not([srcset])) {
587
+ visibility: hidden;
588
+ }
589
+
544
590
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-poster {
545
591
  width: 100%;
546
592
  height: 100%;
@@ -773,6 +819,10 @@
773
819
  outline: 2px solid;
774
820
  }
775
821
 
822
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-menu-radio-item[data-custom] {
823
+ font-style: italic;
824
+ }
825
+
776
826
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-menu-radio-item[data-highlighted] {
777
827
  background-color: var(--media-button-highlight);
778
828
  }
@@ -910,14 +960,6 @@
910
960
  display: flex;
911
961
  }
912
962
 
913
- :where(.media-skin[data-theme="compat"][data-preset="live-video"]) :where(.media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-enter-icon, :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-airplay-button-exit-icon {
914
- display: none;
915
- }
916
-
917
- :where(:where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-exit-icon {
918
- display: block;
919
- }
920
-
921
963
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-live-button {
922
964
  align-items: center;
923
965
  gap: calc(var(--media-spacing) * 1.5);
@@ -1392,7 +1434,7 @@
1392
1434
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .video-controls-backdrop {
1393
1435
  pointer-events: none;
1394
1436
  z-index: 10;
1395
- background-image: linear-gradient(to top, #000000b3, #0003, #00000080);
1437
+ background-image: var(--media-controls-gradient);
1396
1438
  position: absolute;
1397
1439
  inset: 0;
1398
1440
  }
@@ -1782,6 +1824,14 @@
1782
1824
  inset: auto !important;
1783
1825
  }
1784
1826
 
1827
+ :where(.media-skin[data-theme="compat"][data-preset="live-video"]) :where(.media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-enter-icon, :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-airplay-button-exit-icon {
1828
+ display: none;
1829
+ }
1830
+
1831
+ :where(:where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-exit-icon {
1832
+ display: block;
1833
+ }
1834
+
1785
1835
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-tooltip-screen-popup {
1786
1836
  --media-tooltip-side-offset: 8px !important;
1787
1837
  }
@@ -1821,6 +1871,9 @@
1821
1871
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-container, :where(.media-skin[data-theme="compat"][data-preset="live-video"]).media-container {
1822
1872
  border-radius: var(--media-video-border-radius);
1823
1873
  width: 100%;
1874
+ min-width: 0;
1875
+ height: 100%;
1876
+ min-height: 0;
1824
1877
  font-family: var(--media-font-family, "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif);
1825
1878
  font-size: calc(var(--media-spacing) * 3.25);
1826
1879
  color: var(--media-foreground);
@@ -1852,9 +1905,19 @@
1852
1905
  }
1853
1906
 
1854
1907
  :where(.media-skin[data-theme="compat"][data-preset="live-video"]) .media-video, :where(.media-skin[data-theme="compat"][data-preset="live-video"]).media-video {
1855
- aspect-ratio: 16 / 9;
1856
1908
  background-color: #000;
1857
1909
  }
1910
+
1911
+ .media-container > slot::slotted(video), :scope.media-container > slot::slotted(video) {
1912
+ border-radius: inherit;
1913
+ object-fit: var(--media-object-fit, contain);
1914
+ object-position: var(--media-object-position, center);
1915
+ width: 100%;
1916
+ max-width: 100%;
1917
+ margin: 0;
1918
+ display: block;
1919
+ height: 100% !important;
1920
+ }
1858
1921
  }
1859
1922
 
1860
1923
  @layer utilities;
@@ -1872,7 +1935,7 @@
1872
1935
  --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
1873
1936
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
1874
1937
  --media-muted: oklch(100% 0 0 / .15);
1875
- --media-muted-foreground: oklch(100% 0 0 / .65);
1938
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
1876
1939
  --media-border: oklch(0% 0 0 / .1);
1877
1940
  --media-ring: oklch(100% 0 0);
1878
1941
  --media-backdrop: oklch(0% 0 0);
@@ -1885,9 +1948,9 @@
1885
1948
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
1886
1949
  --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
1887
1950
  --media-text-shadow-dialog: 0 1px 0 #00000040;
1888
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
1951
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
1889
1952
  --media-backdrop-filter-indicator: blur(8px);
1890
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
1953
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
1891
1954
  --media-control-corner-shape: round;
1892
1955
  --media-control-radius: 99px;
1893
1956
  --media-control-size: calc(var(--media-spacing) * 9);
@@ -1987,10 +2050,20 @@
1987
2050
  @layer base.preset {
1988
2051
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
1989
2052
  --media-frame-border: var(--media-border-color, #0000001a);
2053
+ --media-controls-gradient-height: max(40%, calc(var(--media-spacing) * 40));
2054
+ --media-controls-bottom-gradient-height: max(50%, calc(var(--media-spacing) * 60));
1990
2055
  --media-controls-gradient: linear-gradient(to top,
1991
- color-mix(in oklab, var(--media-backdrop) 40%, transparent),
1992
- color-mix(in oklab, var(--media-backdrop) 20%, transparent),
1993
- color-mix(in oklab, var(--media-backdrop) 50%, transparent));
2056
+ color-mix(in oklab, var(--media-backdrop) 60%, transparent),
2057
+ color-mix(in oklab, var(--media-backdrop) 50.7%, transparent) 25%,
2058
+ color-mix(in oklab, var(--media-backdrop) 30%, transparent) 50%,
2059
+ color-mix(in oklab, var(--media-backdrop) 9.3%, transparent) 75%,
2060
+ transparent);
2061
+ --media-controls-top-gradient: linear-gradient(to bottom,
2062
+ color-mix(in oklab, var(--media-backdrop) 55%, transparent),
2063
+ color-mix(in oklab, var(--media-backdrop) 46.48%, transparent) 25%,
2064
+ color-mix(in oklab, var(--media-backdrop) 27.5%, transparent) 50%,
2065
+ color-mix(in oklab, var(--media-backdrop) 8.53%, transparent) 75%,
2066
+ transparent);
1994
2067
  --media-caption-controls-y: calc(var(--media-spacing) * -16);
1995
2068
  --media-slider-preview-offset: calc(var(--media-spacing) * 9);
1996
2069
  --media-thumbnail-gradient: linear-gradient(to top,
@@ -2002,9 +2075,17 @@
2002
2075
  @supports (color: oklch(from red l c h)) and (background-image: linear-gradient(in oklab, red, red)) {
2003
2076
  .media-skin:is([data-preset="video"], [data-preset="live-video"]) {
2004
2077
  --media-controls-gradient: linear-gradient(to top in oklab,
2005
- oklch(from var(--media-backdrop) l c h / .4),
2006
- oklch(from var(--media-backdrop) l c h / .2),
2007
- oklch(from var(--media-backdrop) l c h / .5));
2078
+ oklch(from var(--media-backdrop) l c h / .6),
2079
+ oklch(from var(--media-backdrop) l c h / .507) 25%,
2080
+ oklch(from var(--media-backdrop) l c h / .3) 50%,
2081
+ oklch(from var(--media-backdrop) l c h / .093) 75%,
2082
+ transparent);
2083
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2084
+ oklch(from var(--media-backdrop) l c h / .55),
2085
+ oklch(from var(--media-backdrop) l c h / .4647) 25%,
2086
+ oklch(from var(--media-backdrop) l c h / .275) 50%,
2087
+ oklch(from var(--media-backdrop) l c h / .0853) 75%,
2088
+ transparent);
2008
2089
  }
2009
2090
  }
2010
2091
 
@@ -2019,9 +2100,20 @@
2019
2100
 
2020
2101
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2021
2102
  --media-frame-border: var(--media-border-color, #00000026);
2103
+ --media-controls-gradient-height: 40%;
2104
+ --media-controls-bottom-gradient-height: 40%;
2022
2105
  --media-controls-gradient: linear-gradient(to top,
2023
2106
  color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2024
- color-mix(in oklab, var(--media-backdrop) 20%, transparent));
2107
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2108
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2109
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2110
+ transparent);
2111
+ --media-controls-top-gradient: linear-gradient(to bottom,
2112
+ color-mix(in oklab, var(--media-backdrop) 50%, transparent),
2113
+ color-mix(in oklab, var(--media-backdrop) 42.2%, transparent) 25%,
2114
+ color-mix(in oklab, var(--media-backdrop) 25%, transparent) 50%,
2115
+ color-mix(in oklab, var(--media-backdrop) 7.8%, transparent) 75%,
2116
+ transparent);
2025
2117
  --media-indicator-gradient: linear-gradient(to bottom,
2026
2118
  color-mix(in oklab, var(--media-backdrop) 35%, transparent),
2027
2119
  color-mix(in oklab, var(--media-backdrop) 20%, transparent) calc(var(--media-spacing) * 12),
@@ -2031,6 +2123,7 @@
2031
2123
  }
2032
2124
 
2033
2125
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="compat"] {
2126
+ --media-controls-gradient: linear-gradient(to top, #00000080, transparent 40% 60%, #0006);
2034
2127
  --media-caption-controls-y: calc(var(--media-spacing) * -18);
2035
2128
  }
2036
2129
 
@@ -2042,7 +2135,16 @@
2042
2135
  .media-skin:is([data-preset="video"], [data-preset="live-video"])[data-theme="neutral"] {
2043
2136
  --media-controls-gradient: linear-gradient(to top in oklab,
2044
2137
  oklch(from var(--media-backdrop) l c h / .5),
2045
- oklch(from var(--media-backdrop) l c h / .2));
2138
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2139
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2140
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2141
+ transparent);
2142
+ --media-controls-top-gradient: linear-gradient(to bottom in oklab,
2143
+ oklch(from var(--media-backdrop) l c h / .5),
2144
+ oklch(from var(--media-backdrop) l c h / .422) 25%,
2145
+ oklch(from var(--media-backdrop) l c h / .25) 50%,
2146
+ oklch(from var(--media-backdrop) l c h / .078) 75%,
2147
+ transparent);
2046
2148
  }
2047
2149
  }
2048
2150