@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="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="audio"]) .media-dialog-backdrop[data-ending-style] {
199
+ transition-duration: var(--media-duration);
200
+ }
201
+
202
+ :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-dialog-backdrop[data-scope="document"] {
203
+ position: fixed;
204
+ }
205
+
206
+ :where(.media-skin[data-theme="compat"][data-preset="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="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="audio"]) .media-dialog-popup[data-ending-style] {
260
+ transition-duration: var(--media-duration);
261
+ }
262
+
263
+ :where(.media-skin[data-theme="compat"][data-preset="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="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="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="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="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="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="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="audio"]) .media-live-button-dot {
333
+ transition-property: none;
334
+ }
335
+ }
336
+
266
337
  :where(.media-skin[data-theme="compat"][data-preset="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="audio"]) :where(.media-airplay-button)[data-airplay-state="connected"] .media-airplay-button-enter-icon, :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-airplay-button-exit-icon {
413
- display: none;
414
- }
415
-
416
- :where(:where(.media-skin[data-theme="compat"][data-preset="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="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="audio"]) :where(.media-captions-button)[data-active] .media-captions-button-off-icon, :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-captions-button-on-icon {
428
- display: none;
429
- }
430
-
431
- :where(:where(.media-skin[data-theme="compat"][data-preset="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="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="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="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="audio"]) .media-live-button-dot {
468
- transition-property: none;
469
- }
470
- }
471
-
472
483
  :where(.media-skin[data-theme="compat"][data-preset="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="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="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="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
  }
@@ -1330,6 +1348,10 @@
1330
1348
  outline: 2px solid;
1331
1349
  }
1332
1350
 
1351
+ :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-menu-radio-item[data-custom] {
1352
+ font-style: italic;
1353
+ }
1354
+
1333
1355
  :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-menu-radio-item[data-highlighted] {
1334
1356
  background-color: var(--media-button-highlight);
1335
1357
  }
@@ -1352,6 +1374,20 @@
1352
1374
  font-variant-numeric: tabular-nums;
1353
1375
  }
1354
1376
 
1377
+ @supports not (text-fit: shrink) {
1378
+ :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-playback-rate-button {
1379
+ font-size: min(1em, calc(4em / (var(--media-playback-rate-length, 3) + 1)));
1380
+ }
1381
+ }
1382
+
1383
+ :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-playback-rate-button-label {
1384
+ text-align: center;
1385
+ white-space: nowrap;
1386
+ text-fit: shrink;
1387
+ width: 80%;
1388
+ min-width: 0;
1389
+ }
1390
+
1355
1391
  :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-menu-content {
1356
1392
  overscroll-behavior: none;
1357
1393
  max-height: 100%;
@@ -1512,7 +1548,6 @@
1512
1548
  }
1513
1549
 
1514
1550
  :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-audio, :where(.media-skin[data-theme="compat"][data-preset="audio"]).media-audio {
1515
- aspect-ratio: auto;
1516
1551
  background-color: var(--media-background);
1517
1552
  box-shadow: 0 0 #0000,
1518
1553
  0 0 #0000,
@@ -1525,6 +1560,9 @@
1525
1560
  :where(.media-skin[data-theme="compat"][data-preset="audio"]) .media-container, :where(.media-skin[data-theme="compat"][data-preset="audio"]).media-container {
1526
1561
  border-radius: var(--media-video-border-radius);
1527
1562
  width: 100%;
1563
+ min-width: 0;
1564
+ height: 100%;
1565
+ min-height: 0;
1528
1566
  font-family: var(--media-font-family, "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif);
1529
1567
  font-size: calc(var(--media-spacing) * 3.25);
1530
1568
  color: var(--media-foreground);
@@ -1554,6 +1592,17 @@
1554
1592
  outline-style: solid;
1555
1593
  outline-color: var(--media-ring);
1556
1594
  }
1595
+
1596
+ .media-container > slot::slotted(video), :scope.media-container > slot::slotted(video) {
1597
+ border-radius: inherit;
1598
+ object-fit: var(--media-object-fit, contain);
1599
+ object-position: var(--media-object-position, center);
1600
+ width: 100%;
1601
+ max-width: 100%;
1602
+ margin: 0;
1603
+ display: block;
1604
+ height: 100% !important;
1605
+ }
1557
1606
  }
1558
1607
 
1559
1608
  @layer utilities;
@@ -1571,7 +1620,7 @@
1571
1620
  --media-accent: var(--media-accent-color, color-mix(in oklab, var(--media-default-accent-color) 10%, transparent));
1572
1621
  --media-accent-foreground: var(--media-accent-text-color, currentColor);
1573
1622
  --media-muted: oklch(100% 0 0 / .15);
1574
- --media-muted-foreground: oklch(100% 0 0 / .65);
1623
+ --media-muted-foreground: color-mix(in oklab, var(--media-foreground) 65%, transparent);
1575
1624
  --media-border: oklch(0% 0 0 / .1);
1576
1625
  --media-ring: oklch(100% 0 0);
1577
1626
  --media-backdrop: oklch(0% 0 0);
@@ -1584,9 +1633,9 @@
1584
1633
  --media-shadow-current-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - .5) * .5), .15));
1585
1634
  --media-shadow-subtle-current-color: color-mix(in oklab, var(--media-shadow-current-color) 40%, transparent);
1586
1635
  --media-text-shadow-dialog: 0 1px 0 #00000040;
1587
- --media-backdrop-filter-surface: blur(16px) saturate(110%);
1636
+ --media-backdrop-filter-surface: blur(16px) saturate(125%);
1588
1637
  --media-backdrop-filter-indicator: blur(8px);
1589
- --media-backdrop-filter-dialog: blur(16px) saturate(110%);
1638
+ --media-backdrop-filter-dialog: blur(16px) saturate(125%);
1590
1639
  --media-control-corner-shape: round;
1591
1640
  --media-control-radius: 99px;
1592
1641
  --media-control-size: calc(var(--media-spacing) * 9);
@@ -1691,6 +1740,7 @@
1691
1740
  --media-controls-foreground: var(--media-foreground);
1692
1741
  --media-popover: var(--media-controls);
1693
1742
  --media-popover-foreground: var(--media-foreground);
1743
+ --media-muted: oklch(0% 0 0 / .1);
1694
1744
  --media-surface-border: oklch(0% 0 0 / .05);
1695
1745
  --media-primary: var(--media-accent-color, var(--media-foreground));
1696
1746
  --media-border: oklch(0% 0 0 / .1);
@@ -1709,6 +1759,7 @@
1709
1759
  --media-foreground: light-dark(oklch(0% 0 0), oklch(100% 0 0));
1710
1760
  --media-controls: light-dark(oklch(100% 0 0 / .5), oklch(0% 0 0 / .4));
1711
1761
  --media-border: light-dark(oklch(0% 0 0 / .1), oklch(100% 0 0 / .1));
1762
+ --media-muted: light-dark(oklch(0% 0 0 / .1), oklch(100% 0 0 / .1));
1712
1763
  --media-default-accent-color: light-dark(oklch(0% 0 0), oklch(100% 0 0));
1713
1764
  --media-default-accent-text-color: light-dark(oklch(100% 0 0), oklch(0% 0 0));
1714
1765
  --media-internal-accent-text-fallback: light-dark(oklch(100% 0 0), oklch(0% 0 0));
@@ -94,8 +94,20 @@ const template = createTemplate(`<media-container class="media-skin media-contai
94
94
  <media-tooltip-shortcut class="media-tooltip-shortcut">
95
95
  </media-tooltip-shortcut>
96
96
  </media-tooltip>
97
+ <media-time-group class="media-time-group">
98
+ <media-time class="media-time-toggle" type="current" toggle>
99
+ </media-time>
100
+ <media-time class="media-time-current-value" type="current">
101
+ </media-time>
102
+ <media-time-separator class="media-time-separator">
103
+ </media-time-separator>
104
+ <media-time class="media-time-duration-value" type="duration">
105
+ </media-time>
106
+ </media-time-group>
107
+ </media-controls-group>
108
+ <media-controls-group class="video-controls-group">
97
109
  <media-playback-rate-button commandfor="vjs-qLzMuG8D-0-popup" class="media-button media-playback-rate-button" id="vjs-0wiMTNy2-0-4-trigger">
98
- <span data-part="value">
110
+ <span data-part="value" class="media-playback-rate-button-label">
99
111
  </span>
100
112
  </media-playback-rate-button>
101
113
  <media-tooltip trigger="vjs-0wiMTNy2-0-4-trigger" side="top" class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
@@ -117,37 +129,13 @@ const template = createTemplate(`<media-container class="media-skin media-contai
117
129
  </media-playback-rate-radio-group>
118
130
  </media-menu-content>
119
131
  </media-menu>
120
- <media-time-group class="media-time-group">
121
- <media-time class="media-time-toggle" type="current" toggle>
122
- </media-time>
123
- <media-time class="media-time-current-value" type="current">
124
- </media-time>
125
- <media-time-separator class="media-time-separator">
126
- </media-time-separator>
127
- <media-time class="media-time-duration-value" type="duration">
128
- </media-time>
129
- </media-time-group>
130
- </media-controls-group>
131
- <media-controls-group class="video-controls-group">
132
- <media-captions-button class="media-button media-captions-button" id="vjs-0wiMTNy2-0-5-trigger">
133
- <media-icon family="compat" name="captions-off" class="media-button-icon media-captions-button-off-icon">
134
- </media-icon>
135
- <media-icon family="compat" name="captions-on" class="media-button-icon media-captions-button-on-icon">
136
- </media-icon>
137
- </media-captions-button>
138
- <media-tooltip trigger="vjs-0wiMTNy2-0-5-trigger" side="top" class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
139
- <media-tooltip-label>
140
- </media-tooltip-label>
141
- <media-tooltip-shortcut class="media-tooltip-shortcut">
142
- </media-tooltip-shortcut>
143
- </media-tooltip>
144
- <media-mute-button commandfor="vjs-DTtRMRFm-0-popup" class="media-button media-mute-button" id="vjs-0wiMTNy2-0-6-trigger">
132
+ <media-mute-button commandfor="vjs-DTtRMRFm-0-popup" class="media-button media-mute-button" id="vjs-0wiMTNy2-0-5-trigger">
145
133
  <media-icon family="compat" name="volume-off" class="media-button-icon media-mute-button-off-icon">
146
134
  </media-icon>
147
135
  <media-icon family="compat" name="volume-high" class="media-button-icon media-mute-button-high-icon">
148
136
  </media-icon>
149
137
  </media-mute-button>
150
- <media-tooltip trigger="vjs-0wiMTNy2-0-6-trigger" delay="0" disabled side="top" sticky class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
138
+ <media-tooltip trigger="vjs-0wiMTNy2-0-5-trigger" delay="0" disabled side="top" sticky class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
151
139
  <media-tooltip-label>
152
140
  </media-tooltip-label>
153
141
  <media-tooltip-shortcut class="media-tooltip-shortcut">
@@ -163,18 +151,6 @@ const template = createTemplate(`<media-container class="media-skin media-contai
163
151
  </media-slider-thumb>
164
152
  </media-volume-slider>
165
153
  </media-volume-popover>
166
- <media-airplay-button class="media-button media-airplay-button" id="vjs-0wiMTNy2-0-7-trigger">
167
- <media-icon family="compat" name="airplay-enter" class="media-button-icon media-airplay-button-enter-icon">
168
- </media-icon>
169
- <media-icon family="compat" name="airplay-exit" class="media-button-icon media-airplay-button-exit-icon">
170
- </media-icon>
171
- </media-airplay-button>
172
- <media-tooltip trigger="vjs-0wiMTNy2-0-7-trigger" side="top" class="media-popup media-popup-safe-area media-popup-transition media-tooltip-popup">
173
- <media-tooltip-label>
174
- </media-tooltip-label>
175
- <media-tooltip-shortcut class="media-tooltip-shortcut">
176
- </media-tooltip-shortcut>
177
- </media-tooltip>
178
154
  </media-controls-group>
179
155
  </media-controls-group>
180
156
  </div>
@@ -1,9 +1,5 @@
1
1
  import "../../../define/i18n.js";
2
2
  import { registerIcons } from "../../../icons/element/register/index.js";
3
- import { airPlayEnterIcon } from "../../../icons/dist/html/compat/airplay-enter.js";
4
- import { airPlayExitIcon } from "../../../icons/dist/html/compat/airplay-exit.js";
5
- import { captionsOffIcon } from "../../../icons/dist/html/compat/captions-off.js";
6
- import { captionsOnIcon } from "../../../icons/dist/html/compat/captions-on.js";
7
3
  import { pauseIcon } from "../../../icons/dist/html/compat/pause.js";
8
4
  import { playIcon } from "../../../icons/dist/html/compat/play.js";
9
5
  import { restartIcon } from "../../../icons/dist/html/compat/restart.js";
@@ -21,7 +17,6 @@ import "../../../define/ui/controls.js";
21
17
  import "../../../define/ui/controls-content.js";
22
18
  import "../../../define/ui/tooltip-group.js";
23
19
  import "../../../define/ui/controls-group.js";
24
- import "../../../define/ui/airplay-button.js";
25
20
  import "../../../define/ui/tooltip.js";
26
21
  import "../../../define/ui/tooltip-label.js";
27
22
  import "../../../define/ui/tooltip-shortcut.js";
@@ -32,16 +27,11 @@ import "../../../define/ui/slider-thumb.js";
32
27
  import "../../../define/ui/mute-button.js";
33
28
  import "../../../define/ui/volume-popover.js";
34
29
  import "../../../define/ui/volume-slider.js";
35
- import "../../../define/ui/captions-button.js";
36
30
  import "../../../define/ui/hotkey.js";
37
31
  import "../../../define/ui/status-announcer.js";
38
32
  import "../../../define/ui/live-button.js";
39
33
  //#region src/internal/skins/compat-live-audio/register.ts
40
34
  registerIcons("compat", {
41
- "airplay-enter": airPlayEnterIcon,
42
- "airplay-exit": airPlayExitIcon,
43
- "captions-off": captionsOffIcon,
44
- "captions-on": captionsOnIcon,
45
35
  pause: pauseIcon,
46
36
  play: playIcon,
47
37
  restart: restartIcon,