@videojs/html 10.0.0-rc.3 → 10.0.0-rc.5

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 (1021) hide show
  1. package/dist/default/define/audio/compat-skin.css +1923 -0
  2. package/dist/default/define/audio/compat-skin.js +6 -0
  3. package/dist/default/define/audio/compat-skin2.js +4 -0
  4. package/dist/default/define/audio/neutral-skin.css +1855 -0
  5. package/dist/default/define/audio/neutral-skin.js +6 -0
  6. package/dist/default/define/audio/neutral-skin2.js +4 -0
  7. package/dist/default/define/audio/{minimal-ui.js → neutral-ui.js} +1 -1
  8. package/dist/default/define/audio/skin.css +1220 -1411
  9. package/dist/default/define/audio/skin2.js +1 -1
  10. package/dist/default/define/background/skin.css +8 -19
  11. package/dist/default/define/global.css +5 -21
  12. package/dist/default/define/live-audio/compat-skin.css +1708 -0
  13. package/dist/default/define/live-audio/compat-skin.js +6 -0
  14. package/dist/default/define/live-audio/compat-skin2.js +4 -0
  15. package/dist/default/define/live-audio/neutral-skin.css +1270 -0
  16. package/dist/default/define/live-audio/neutral-skin.js +6 -0
  17. package/dist/default/define/live-audio/neutral-skin2.js +4 -0
  18. package/dist/default/define/live-audio/{minimal-ui.js → neutral-ui.js} +1 -1
  19. package/dist/default/define/live-audio/skin.css +849 -959
  20. package/dist/default/define/live-audio/skin2.js +1 -1
  21. package/dist/default/define/live-video/compat-skin.css +2251 -0
  22. package/dist/default/define/live-video/compat-skin.js +6 -0
  23. package/dist/default/define/live-video/compat-skin2.js +4 -0
  24. package/dist/default/define/live-video/neutral-skin.css +2101 -0
  25. package/dist/default/define/live-video/neutral-skin.js +6 -0
  26. package/dist/default/define/live-video/neutral-skin2.js +4 -0
  27. package/dist/default/define/live-video/{minimal-ui.js → neutral-ui.js} +1 -1
  28. package/dist/default/define/live-video/skin.css +1565 -1784
  29. package/dist/default/define/live-video/skin2.js +1 -1
  30. package/dist/default/define/media/dash-video.js +5 -1
  31. package/dist/default/define/media/shaka-video.js +1 -0
  32. package/dist/default/define/shadow.css +2 -12
  33. package/dist/default/define/video/compat-skin.css +2529 -0
  34. package/dist/default/define/video/compat-skin.js +6 -0
  35. package/dist/default/define/video/compat-skin2.js +4 -0
  36. package/dist/default/define/video/neutral-skin.css +2849 -0
  37. package/dist/default/define/video/neutral-skin.js +6 -0
  38. package/dist/default/define/video/neutral-skin2.js +4 -0
  39. package/dist/default/define/video/{minimal-ui.js → neutral-ui.js} +1 -1
  40. package/dist/default/define/video/skin.css +2046 -2454
  41. package/dist/default/define/video/skin2.js +1 -1
  42. package/dist/default/extensions/google-cast/extension.js +18 -17
  43. package/dist/default/extensions/mux-data/extension.js +24 -24
  44. package/dist/default/extensions/player-extension-element.js +49 -0
  45. package/dist/default/i18n/index.js +2 -2
  46. package/dist/default/i18n/locale.js +10 -2
  47. package/dist/default/i18n/provider-element.js +1 -0
  48. package/dist/default/i18n/provider-mixin.js +11 -9
  49. package/dist/default/i18n/render-text.js +5 -1
  50. package/dist/default/i18n/text/airplay.js +1 -0
  51. package/dist/default/i18n/text/buttons.js +1 -0
  52. package/dist/default/i18n/text/captions.js +1 -0
  53. package/dist/default/i18n/text/cast.js +1 -0
  54. package/dist/default/i18n/text/common.js +1 -0
  55. package/dist/default/i18n/text/container.js +1 -0
  56. package/dist/default/i18n/text/errors.js +1 -0
  57. package/dist/default/i18n/text/fullscreen.js +1 -0
  58. package/dist/default/i18n/text/live.js +1 -0
  59. package/dist/default/i18n/text/menu.js +1 -0
  60. package/dist/default/i18n/text/pip.js +1 -0
  61. package/dist/default/i18n/text/playback.js +1 -0
  62. package/dist/default/i18n/text/seek.js +1 -0
  63. package/dist/default/i18n/text/slider.js +1 -0
  64. package/dist/default/i18n/text/status.js +1 -0
  65. package/dist/default/i18n/text/time.js +1 -0
  66. package/dist/default/i18n/text/volume.js +1 -0
  67. package/dist/default/icons/compat/index.js +26 -0
  68. package/dist/default/icons/dist/element/compat/icons.js +30 -0
  69. package/dist/default/icons/dist/element/{minimal → compat}/index.js +2 -2
  70. package/dist/default/icons/dist/element/index.js +2 -1
  71. package/dist/default/icons/dist/element/{minimal → neutral}/icons.js +1 -1
  72. package/dist/default/icons/dist/element/neutral/index.js +8 -0
  73. package/dist/default/icons/dist/html/compat/airplay-enter.js +4 -0
  74. package/dist/default/icons/dist/html/compat/airplay-exit.js +4 -0
  75. package/dist/default/icons/dist/html/compat/captions-off.js +4 -0
  76. package/dist/default/icons/dist/html/compat/captions-on.js +4 -0
  77. package/dist/default/icons/dist/html/compat/cast-enter.js +4 -0
  78. package/dist/default/icons/dist/html/compat/cast-exit.js +4 -0
  79. package/dist/default/icons/dist/html/compat/check.js +4 -0
  80. package/dist/default/icons/dist/html/compat/chevron.js +4 -0
  81. package/dist/default/icons/dist/html/compat/fullscreen-enter.js +4 -0
  82. package/dist/default/icons/dist/html/compat/fullscreen-exit.js +4 -0
  83. package/dist/default/icons/dist/html/compat/gear.js +4 -0
  84. package/dist/default/icons/dist/html/compat/pause.js +4 -0
  85. package/dist/default/icons/dist/html/compat/pip-enter.js +4 -0
  86. package/dist/default/icons/dist/html/compat/pip-exit.js +4 -0
  87. package/dist/default/icons/dist/html/compat/play.js +4 -0
  88. package/dist/default/icons/dist/html/compat/quality.js +4 -0
  89. package/dist/default/icons/dist/html/compat/restart.js +4 -0
  90. package/dist/default/icons/dist/html/compat/seek.js +4 -0
  91. package/dist/default/icons/dist/html/compat/speech.js +4 -0
  92. package/dist/default/icons/dist/html/compat/speed.js +4 -0
  93. package/dist/default/icons/dist/html/{minimal → compat}/spinner.js +1 -1
  94. package/dist/default/icons/dist/html/compat/switches.js +4 -0
  95. package/dist/default/icons/dist/html/compat/volume-high.js +4 -0
  96. package/dist/default/icons/dist/html/compat/volume-low.js +4 -0
  97. package/dist/default/icons/dist/html/compat/volume-off.js +4 -0
  98. package/dist/default/icons/dist/html/{minimal → neutral}/airplay-enter.js +1 -1
  99. package/dist/default/icons/dist/html/{minimal → neutral}/airplay-exit.js +1 -1
  100. package/dist/default/icons/dist/html/{minimal → neutral}/captions-off.js +1 -1
  101. package/dist/default/icons/dist/html/{minimal → neutral}/captions-on.js +1 -1
  102. package/dist/default/icons/dist/html/{minimal → neutral}/cast-enter.js +1 -1
  103. package/dist/default/icons/dist/html/{minimal → neutral}/cast-exit.js +1 -1
  104. package/dist/default/icons/dist/html/{minimal → neutral}/check.js +1 -1
  105. package/dist/default/icons/dist/html/{minimal → neutral}/chevron.js +1 -1
  106. package/dist/default/icons/dist/html/{minimal → neutral}/fullscreen-enter.js +1 -1
  107. package/dist/default/icons/dist/html/{minimal → neutral}/fullscreen-exit.js +1 -1
  108. package/dist/default/icons/dist/html/{minimal → neutral}/gear.js +1 -1
  109. package/dist/default/icons/dist/html/{minimal → neutral}/pause.js +1 -1
  110. package/dist/default/icons/dist/html/{minimal → neutral}/pip-enter.js +1 -1
  111. package/dist/default/icons/dist/html/{minimal → neutral}/pip-exit.js +1 -1
  112. package/dist/default/icons/dist/html/{minimal → neutral}/play.js +1 -1
  113. package/dist/default/icons/dist/html/{minimal → neutral}/quality.js +1 -1
  114. package/dist/default/icons/dist/html/{minimal → neutral}/restart.js +1 -1
  115. package/dist/default/icons/dist/html/{minimal → neutral}/seek.js +1 -1
  116. package/dist/default/icons/dist/html/{minimal → neutral}/speech.js +1 -1
  117. package/dist/default/icons/dist/html/{minimal → neutral}/speed.js +1 -1
  118. package/dist/default/icons/dist/html/neutral/spinner.js +4 -0
  119. package/dist/default/icons/dist/html/{minimal → neutral}/switches.js +1 -1
  120. package/dist/default/icons/dist/html/{minimal → neutral}/volume-high.js +1 -1
  121. package/dist/default/icons/dist/html/{minimal → neutral}/volume-low.js +1 -1
  122. package/dist/default/icons/dist/html/{minimal → neutral}/volume-off.js +1 -1
  123. package/dist/default/icons/element/compat/index.js +1 -0
  124. package/dist/default/icons/element/neutral/index.js +1 -0
  125. package/dist/default/icons/neutral/index.js +26 -0
  126. package/dist/default/index.js +4 -3
  127. package/dist/default/internal/skins/compat-audio/register.js +70 -0
  128. package/dist/default/internal/skins/compat-audio/skin.css +1891 -0
  129. package/dist/default/internal/skins/compat-audio/template.js +215 -0
  130. package/dist/default/internal/skins/compat-live-audio/register.js +50 -0
  131. package/dist/default/internal/skins/compat-live-audio/skin.css +1676 -0
  132. package/dist/default/internal/skins/compat-live-audio/template.js +112 -0
  133. package/dist/default/internal/skins/compat-live-video/register.js +86 -0
  134. package/dist/default/internal/skins/compat-live-video/skin.css +2219 -0
  135. package/dist/default/internal/skins/compat-live-video/template.js +237 -0
  136. package/dist/default/internal/skins/compat-video/register.js +115 -0
  137. package/dist/default/internal/skins/compat-video/skin.css +2497 -0
  138. package/dist/default/internal/skins/compat-video/template.js +457 -0
  139. package/dist/default/internal/skins/default-audio/register.js +8 -8
  140. package/dist/default/internal/skins/default-audio/skin.css +1213 -1365
  141. package/dist/default/internal/skins/default-live-audio/register.js +4 -4
  142. package/dist/default/internal/skins/default-live-audio/skin.css +842 -913
  143. package/dist/default/internal/skins/default-live-video/register.js +8 -8
  144. package/dist/default/internal/skins/default-live-video/skin.css +1548 -1728
  145. package/dist/default/internal/skins/default-video/register.js +13 -13
  146. package/dist/default/internal/skins/default-video/skin.css +2034 -2403
  147. package/dist/default/internal/skins/{minimal-audio → neutral-audio}/register.js +20 -20
  148. package/dist/default/internal/skins/neutral-audio/skin.css +1823 -0
  149. package/dist/default/internal/skins/{minimal-audio → neutral-audio}/template.js +24 -24
  150. package/dist/default/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js +13 -13
  151. package/dist/default/internal/skins/neutral-live-audio/skin.css +1238 -0
  152. package/dist/default/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js +14 -14
  153. package/dist/default/internal/skins/{minimal-live-video → neutral-live-video}/register.js +28 -28
  154. package/dist/default/internal/skins/neutral-live-video/skin.css +2069 -0
  155. package/dist/default/internal/skins/{minimal-live-video → neutral-live-video}/template.js +47 -47
  156. package/dist/default/internal/skins/{minimal-video → neutral-video}/register.js +40 -40
  157. package/dist/default/internal/skins/neutral-video/skin.css +2817 -0
  158. package/dist/default/internal/skins/{minimal-video → neutral-video}/template.js +75 -75
  159. package/dist/default/player/context.js +9 -1
  160. package/dist/default/player/create-player.js +2 -1
  161. package/dist/default/player/element.js +47 -10
  162. package/dist/default/presets/audio/compat-skin.js +19 -0
  163. package/dist/default/presets/audio/index.js +3 -2
  164. package/dist/default/presets/audio/neutral-skin.js +19 -0
  165. package/dist/default/presets/live-audio/compat-skin.js +19 -0
  166. package/dist/default/presets/live-audio/index.js +3 -2
  167. package/dist/default/presets/live-audio/neutral-skin.js +19 -0
  168. package/dist/default/presets/live-video/compat-skin.js +19 -0
  169. package/dist/default/presets/live-video/index.js +3 -2
  170. package/dist/default/presets/live-video/neutral-skin.js +19 -0
  171. package/dist/default/presets/video/compat-skin.js +19 -0
  172. package/dist/default/presets/video/index.js +3 -2
  173. package/dist/default/presets/video/neutral-skin.js +19 -0
  174. package/dist/default/store/media-attach-mixin.js +2 -0
  175. package/dist/default/ui/airplay-button/element.js +1 -1
  176. package/dist/default/ui/buffering-indicator/element.js +4 -0
  177. package/dist/default/ui/dialog/context.js +1 -0
  178. package/dist/default/ui/dialog/element.js +4 -2
  179. package/dist/default/ui/media-button-element.js +7 -6
  180. package/dist/default/ui/media-ui-element.js +6 -1
  181. package/dist/default/ui/menu/context.js +2 -0
  182. package/dist/default/ui/play-button/element.js +1 -1
  183. package/dist/default/ui/playback-rate-button/element.js +4 -2
  184. package/dist/default/ui/popover/element.js +4 -2
  185. package/dist/default/ui/radio-group/context.js +1 -0
  186. package/dist/default/ui/seek-indicator/element.js +7 -1
  187. package/dist/default/ui/slider/context.js +1 -0
  188. package/dist/default/ui/status-indicator/element.js +14 -1
  189. package/dist/default/ui/text/element.js +1 -0
  190. package/dist/default/ui/thumbnail/element.js +3 -2
  191. package/dist/default/ui/tooltip/context.js +1 -0
  192. package/dist/default/ui/tooltip/element.js +4 -2
  193. package/dist/default/ui/volume-popover/element.js +1 -1
  194. package/dist/default/ui/volume-slider/element.js +1 -1
  195. package/dist/default/version.js +27 -0
  196. package/dist/dev/define/audio/compat-skin.css +1923 -0
  197. package/dist/dev/define/audio/compat-skin.d.ts +1 -0
  198. package/dist/dev/define/audio/compat-skin.js +8 -0
  199. package/dist/dev/define/audio/compat-skin.js.map +1 -0
  200. package/dist/dev/define/audio/compat-skin2.js +6 -0
  201. package/dist/dev/define/audio/compat-skin2.js.map +1 -0
  202. package/dist/dev/define/audio/neutral-skin.css +1855 -0
  203. package/dist/dev/define/audio/neutral-skin.d.ts +1 -0
  204. package/dist/dev/define/audio/neutral-skin.js +8 -0
  205. package/dist/dev/define/audio/neutral-skin.js.map +1 -0
  206. package/dist/dev/define/audio/neutral-skin2.js +6 -0
  207. package/dist/dev/define/audio/neutral-skin2.js.map +1 -0
  208. package/dist/dev/define/audio/{minimal-ui.js → neutral-ui.js} +2 -2
  209. package/dist/dev/define/audio/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  210. package/dist/dev/define/audio/skin.css +1220 -1411
  211. package/dist/dev/define/audio/skin2.js +1 -1
  212. package/dist/dev/define/audio/skin2.js.map +1 -1
  213. package/dist/dev/define/background/skin.css +8 -19
  214. package/dist/dev/define/global.css +5 -21
  215. package/dist/dev/define/live-audio/compat-skin.css +1708 -0
  216. package/dist/dev/define/live-audio/compat-skin.d.ts +1 -0
  217. package/dist/dev/define/live-audio/compat-skin.js +8 -0
  218. package/dist/dev/define/live-audio/compat-skin.js.map +1 -0
  219. package/dist/dev/define/live-audio/compat-skin2.js +6 -0
  220. package/dist/dev/define/live-audio/compat-skin2.js.map +1 -0
  221. package/dist/dev/define/live-audio/neutral-skin.css +1270 -0
  222. package/dist/dev/define/live-audio/neutral-skin.d.ts +1 -0
  223. package/dist/dev/define/live-audio/neutral-skin.js +8 -0
  224. package/dist/dev/define/live-audio/neutral-skin.js.map +1 -0
  225. package/dist/dev/define/live-audio/neutral-skin2.js +6 -0
  226. package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -0
  227. package/dist/dev/define/live-audio/{minimal-ui.js → neutral-ui.js} +2 -2
  228. package/dist/dev/define/live-audio/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  229. package/dist/dev/define/live-audio/skin.css +849 -959
  230. package/dist/dev/define/live-audio/skin2.js +1 -1
  231. package/dist/dev/define/live-audio/skin2.js.map +1 -1
  232. package/dist/dev/define/live-video/compat-skin.css +2251 -0
  233. package/dist/dev/define/live-video/compat-skin.d.ts +1 -0
  234. package/dist/dev/define/live-video/compat-skin.js +8 -0
  235. package/dist/dev/define/live-video/compat-skin.js.map +1 -0
  236. package/dist/dev/define/live-video/compat-skin2.js +6 -0
  237. package/dist/dev/define/live-video/compat-skin2.js.map +1 -0
  238. package/dist/dev/define/live-video/neutral-skin.css +2101 -0
  239. package/dist/dev/define/live-video/neutral-skin.d.ts +1 -0
  240. package/dist/dev/define/live-video/neutral-skin.js +8 -0
  241. package/dist/dev/define/live-video/neutral-skin.js.map +1 -0
  242. package/dist/dev/define/live-video/neutral-skin2.js +6 -0
  243. package/dist/dev/define/live-video/neutral-skin2.js.map +1 -0
  244. package/dist/dev/define/live-video/{minimal-ui.js → neutral-ui.js} +2 -2
  245. package/dist/dev/define/live-video/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  246. package/dist/dev/define/live-video/skin.css +1565 -1784
  247. package/dist/dev/define/live-video/skin2.js +1 -1
  248. package/dist/dev/define/live-video/skin2.js.map +1 -1
  249. package/dist/dev/define/media/background-video.d.ts +1 -2
  250. package/dist/dev/define/media/cloudflare-video.d.ts +3 -2
  251. package/dist/dev/define/media/cloudflare-video.js.map +1 -1
  252. package/dist/dev/define/media/dash-video.d.ts +8 -3
  253. package/dist/dev/define/media/dash-video.js +5 -1
  254. package/dist/dev/define/media/dash-video.js.map +1 -1
  255. package/dist/dev/define/media/hls-audio.d.ts +1 -2
  256. package/dist/dev/define/media/hls-background-video.d.ts +1 -2
  257. package/dist/dev/define/media/hls-video.d.ts +1 -2
  258. package/dist/dev/define/media/hlsjs-video.d.ts +3 -2
  259. package/dist/dev/define/media/hlsjs-video.js.map +1 -1
  260. package/dist/dev/define/media/mux-audio/hls-js.d.ts +3 -2
  261. package/dist/dev/define/media/mux-audio/hls-js.js.map +1 -1
  262. package/dist/dev/define/media/mux-audio/index.d.ts +2 -2
  263. package/dist/dev/define/media/mux-audio/spf.d.ts +3 -2
  264. package/dist/dev/define/media/mux-audio/spf.js.map +1 -1
  265. package/dist/dev/define/media/mux-background-video.d.ts +1 -2
  266. package/dist/dev/define/media/mux-video/hls-js.d.ts +3 -2
  267. package/dist/dev/define/media/mux-video/hls-js.js.map +1 -1
  268. package/dist/dev/define/media/mux-video/index.d.ts +2 -2
  269. package/dist/dev/define/media/mux-video/spf.d.ts +3 -2
  270. package/dist/dev/define/media/mux-video/spf.js.map +1 -1
  271. package/dist/dev/define/media/native-hls-video.d.ts +3 -2
  272. package/dist/dev/define/media/native-hls-video.js.map +1 -1
  273. package/dist/dev/define/media/shaka-video.d.ts +4 -2
  274. package/dist/dev/define/media/shaka-video.js +1 -0
  275. package/dist/dev/define/media/shaka-video.js.map +1 -1
  276. package/dist/dev/define/media/spotify-audio.d.ts +3 -2
  277. package/dist/dev/define/media/spotify-audio.js.map +1 -1
  278. package/dist/dev/define/media/tiktok-video.d.ts +3 -2
  279. package/dist/dev/define/media/tiktok-video.js.map +1 -1
  280. package/dist/dev/define/media/twitch-video.d.ts +3 -2
  281. package/dist/dev/define/media/twitch-video.js.map +1 -1
  282. package/dist/dev/define/media/vimeo-video.d.ts +3 -2
  283. package/dist/dev/define/media/vimeo-video.js.map +1 -1
  284. package/dist/dev/define/media/wistia-video.d.ts +3 -2
  285. package/dist/dev/define/media/wistia-video.js.map +1 -1
  286. package/dist/dev/define/media/youtube-video.d.ts +3 -2
  287. package/dist/dev/define/media/youtube-video.js.map +1 -1
  288. package/dist/dev/define/shadow.css +2 -12
  289. package/dist/dev/define/ui/menu-radio-group.d.ts +1 -0
  290. package/dist/dev/define/ui/menu.d.ts +1 -0
  291. package/dist/dev/define/ui/popover.d.ts +1 -0
  292. package/dist/dev/define/video/compat-skin.css +2529 -0
  293. package/dist/dev/define/video/compat-skin.d.ts +1 -0
  294. package/dist/dev/define/video/compat-skin.js +8 -0
  295. package/dist/dev/define/video/compat-skin.js.map +1 -0
  296. package/dist/dev/define/video/compat-skin2.js +6 -0
  297. package/dist/dev/define/video/compat-skin2.js.map +1 -0
  298. package/dist/dev/define/video/neutral-skin.css +2849 -0
  299. package/dist/dev/define/video/neutral-skin.d.ts +1 -0
  300. package/dist/dev/define/video/neutral-skin.js +8 -0
  301. package/dist/dev/define/video/neutral-skin.js.map +1 -0
  302. package/dist/dev/define/video/neutral-skin2.js +6 -0
  303. package/dist/dev/define/video/neutral-skin2.js.map +1 -0
  304. package/dist/dev/define/video/{minimal-ui.js → neutral-ui.js} +2 -2
  305. package/dist/dev/define/video/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  306. package/dist/dev/define/video/skin.css +2046 -2454
  307. package/dist/dev/define/video/skin2.js +1 -1
  308. package/dist/dev/define/video/skin2.js.map +1 -1
  309. package/dist/dev/extensions/google-cast/extension.d.ts +8 -7
  310. package/dist/dev/extensions/google-cast/extension.js +18 -17
  311. package/dist/dev/extensions/google-cast/extension.js.map +1 -1
  312. package/dist/dev/extensions/mux-data/extension.d.ts +6 -6
  313. package/dist/dev/extensions/mux-data/extension.js +24 -24
  314. package/dist/dev/extensions/mux-data/extension.js.map +1 -1
  315. package/dist/dev/extensions/player-extension-element.d.ts +30 -0
  316. package/dist/dev/extensions/player-extension-element.js +51 -0
  317. package/dist/dev/extensions/player-extension-element.js.map +1 -0
  318. package/dist/dev/i18n/context.d.ts +4 -5
  319. package/dist/dev/i18n/controller.d.ts +3 -4
  320. package/dist/dev/i18n/controller.js.map +1 -1
  321. package/dist/dev/i18n/create-i18n.d.ts +3 -4
  322. package/dist/dev/i18n/index.d.ts +2 -2
  323. package/dist/dev/i18n/index.js +2 -2
  324. package/dist/dev/i18n/locale.d.ts +12 -5
  325. package/dist/dev/i18n/locale.js +10 -2
  326. package/dist/dev/i18n/locale.js.map +1 -1
  327. package/dist/dev/i18n/provider-element.d.ts +4 -3
  328. package/dist/dev/i18n/provider-element.js +1 -0
  329. package/dist/dev/i18n/provider-element.js.map +1 -1
  330. package/dist/dev/i18n/provider-mixin.d.ts +1 -2
  331. package/dist/dev/i18n/provider-mixin.js +11 -9
  332. package/dist/dev/i18n/provider-mixin.js.map +1 -1
  333. package/dist/dev/i18n/render-text.d.ts +6 -3
  334. package/dist/dev/i18n/render-text.js +5 -1
  335. package/dist/dev/i18n/render-text.js.map +1 -1
  336. package/dist/dev/i18n/text/airplay.d.ts +1 -0
  337. package/dist/dev/i18n/text/airplay.js +1 -0
  338. package/dist/dev/i18n/text/buttons.d.ts +1 -0
  339. package/dist/dev/i18n/text/buttons.js +1 -0
  340. package/dist/dev/i18n/text/captions.d.ts +1 -0
  341. package/dist/dev/i18n/text/captions.js +1 -0
  342. package/dist/dev/i18n/text/cast.d.ts +1 -0
  343. package/dist/dev/i18n/text/cast.js +1 -0
  344. package/dist/dev/i18n/text/common.d.ts +1 -0
  345. package/dist/dev/i18n/text/common.js +1 -0
  346. package/dist/dev/i18n/text/container.d.ts +1 -0
  347. package/dist/dev/i18n/text/container.js +1 -0
  348. package/dist/dev/i18n/text/errors.d.ts +1 -0
  349. package/dist/dev/i18n/text/errors.js +1 -0
  350. package/dist/dev/i18n/text/fullscreen.d.ts +1 -0
  351. package/dist/dev/i18n/text/fullscreen.js +1 -0
  352. package/dist/dev/i18n/text/live.d.ts +1 -0
  353. package/dist/dev/i18n/text/live.js +1 -0
  354. package/dist/dev/i18n/text/menu.d.ts +1 -0
  355. package/dist/dev/i18n/text/menu.js +1 -0
  356. package/dist/dev/i18n/text/pip.d.ts +1 -0
  357. package/dist/dev/i18n/text/pip.js +1 -0
  358. package/dist/dev/i18n/text/playback.d.ts +1 -0
  359. package/dist/dev/i18n/text/playback.js +1 -0
  360. package/dist/dev/i18n/text/seek.d.ts +1 -0
  361. package/dist/dev/i18n/text/seek.js +1 -0
  362. package/dist/dev/i18n/text/slider.d.ts +1 -0
  363. package/dist/dev/i18n/text/slider.js +1 -0
  364. package/dist/dev/i18n/text/status.d.ts +1 -0
  365. package/dist/dev/i18n/text/status.js +1 -0
  366. package/dist/dev/i18n/text/time.d.ts +1 -0
  367. package/dist/dev/i18n/text/time.js +1 -0
  368. package/dist/dev/i18n/text/volume.d.ts +1 -0
  369. package/dist/dev/i18n/text/volume.js +1 -0
  370. package/dist/dev/i18n/text-mixin.d.ts +1 -2
  371. package/dist/dev/i18n/text-mixin.js.map +1 -1
  372. package/dist/dev/i18n/types.d.ts +2 -3
  373. package/dist/dev/icons/{minimal → compat}/index.d.ts +1 -1
  374. package/dist/dev/icons/compat/index.js +26 -0
  375. package/dist/dev/icons/dist/element/base.d.ts +1 -2
  376. package/dist/dev/icons/dist/element/base.js.map +1 -1
  377. package/dist/dev/icons/dist/element/compat/icons.js +32 -0
  378. package/dist/dev/icons/dist/element/compat/icons.js.map +1 -0
  379. package/dist/dev/icons/dist/element/{minimal → compat}/index.js +2 -2
  380. package/dist/dev/icons/dist/element/compat/index.js.map +1 -0
  381. package/dist/dev/icons/dist/element/index.js +2 -1
  382. package/dist/dev/icons/dist/element/index.js.map +1 -1
  383. package/dist/dev/icons/dist/element/{minimal → neutral}/icons.js +1 -1
  384. package/dist/dev/icons/dist/element/{minimal → neutral}/icons.js.map +1 -1
  385. package/dist/dev/icons/dist/element/neutral/index.d.ts +1 -0
  386. package/dist/dev/icons/dist/element/neutral/index.js +10 -0
  387. package/dist/dev/icons/dist/element/{minimal → neutral}/index.js.map +1 -1
  388. package/dist/dev/icons/dist/html/compat/airplay-enter.js +6 -0
  389. package/dist/dev/icons/dist/html/compat/airplay-enter.js.map +1 -0
  390. package/dist/dev/icons/dist/html/compat/airplay-exit.js +6 -0
  391. package/dist/dev/icons/dist/html/compat/airplay-exit.js.map +1 -0
  392. package/dist/dev/icons/dist/html/compat/captions-off.js +6 -0
  393. package/dist/dev/icons/dist/html/compat/captions-off.js.map +1 -0
  394. package/dist/dev/icons/dist/html/compat/captions-on.js +6 -0
  395. package/dist/dev/icons/dist/html/compat/captions-on.js.map +1 -0
  396. package/dist/dev/icons/dist/html/compat/cast-enter.js +6 -0
  397. package/dist/dev/icons/dist/html/compat/cast-enter.js.map +1 -0
  398. package/dist/dev/icons/dist/html/compat/cast-exit.js +6 -0
  399. package/dist/dev/icons/dist/html/compat/cast-exit.js.map +1 -0
  400. package/dist/dev/icons/dist/html/compat/check.js +6 -0
  401. package/dist/dev/icons/dist/html/compat/check.js.map +1 -0
  402. package/dist/dev/icons/dist/html/compat/chevron.js +6 -0
  403. package/dist/dev/icons/dist/html/compat/chevron.js.map +1 -0
  404. package/dist/dev/icons/dist/html/compat/fullscreen-enter.js +6 -0
  405. package/dist/dev/icons/dist/html/compat/fullscreen-enter.js.map +1 -0
  406. package/dist/dev/icons/dist/html/compat/fullscreen-exit.js +6 -0
  407. package/dist/dev/icons/dist/html/compat/fullscreen-exit.js.map +1 -0
  408. package/dist/dev/icons/dist/html/compat/gear.js +6 -0
  409. package/dist/dev/icons/dist/html/compat/gear.js.map +1 -0
  410. package/dist/dev/icons/dist/html/compat/index.d.ts +28 -0
  411. package/dist/dev/icons/dist/html/compat/pause.js +6 -0
  412. package/dist/dev/icons/dist/html/compat/pause.js.map +1 -0
  413. package/dist/dev/icons/dist/html/compat/pip-enter.js +6 -0
  414. package/dist/dev/icons/dist/html/compat/pip-enter.js.map +1 -0
  415. package/dist/dev/icons/dist/html/compat/pip-exit.js +6 -0
  416. package/dist/dev/icons/dist/html/compat/pip-exit.js.map +1 -0
  417. package/dist/dev/icons/dist/html/compat/play.js +6 -0
  418. package/dist/dev/icons/dist/html/compat/play.js.map +1 -0
  419. package/dist/dev/icons/dist/html/compat/quality.js +6 -0
  420. package/dist/dev/icons/dist/html/compat/quality.js.map +1 -0
  421. package/dist/dev/icons/dist/html/compat/restart.js +6 -0
  422. package/dist/dev/icons/dist/html/compat/restart.js.map +1 -0
  423. package/dist/dev/icons/dist/html/compat/seek.js +6 -0
  424. package/dist/dev/icons/dist/html/compat/seek.js.map +1 -0
  425. package/dist/dev/icons/dist/html/compat/speech.js +6 -0
  426. package/dist/dev/icons/dist/html/compat/speech.js.map +1 -0
  427. package/dist/dev/icons/dist/html/compat/speed.js +6 -0
  428. package/dist/dev/icons/dist/html/compat/speed.js.map +1 -0
  429. package/dist/dev/icons/dist/html/{minimal → compat}/spinner.js +1 -1
  430. package/dist/dev/icons/dist/html/compat/spinner.js.map +1 -0
  431. package/dist/dev/icons/dist/html/compat/switches.js +6 -0
  432. package/dist/dev/icons/dist/html/compat/switches.js.map +1 -0
  433. package/dist/dev/icons/dist/html/compat/volume-high.js +6 -0
  434. package/dist/dev/icons/dist/html/compat/volume-high.js.map +1 -0
  435. package/dist/dev/icons/dist/html/compat/volume-low.js +6 -0
  436. package/dist/dev/icons/dist/html/compat/volume-low.js.map +1 -0
  437. package/dist/dev/icons/dist/html/compat/volume-off.js +6 -0
  438. package/dist/dev/icons/dist/html/compat/volume-off.js.map +1 -0
  439. package/dist/dev/icons/dist/html/default/index.d.ts +25 -26
  440. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-enter.js +1 -1
  441. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-enter.js.map +1 -1
  442. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-exit.js +1 -1
  443. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-exit.js.map +1 -1
  444. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-off.js +1 -1
  445. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-off.js.map +1 -1
  446. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-on.js +1 -1
  447. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-on.js.map +1 -1
  448. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-enter.js +1 -1
  449. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-enter.js.map +1 -1
  450. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-exit.js +1 -1
  451. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-exit.js.map +1 -1
  452. package/dist/dev/icons/dist/html/{minimal → neutral}/check.js +1 -1
  453. package/dist/dev/icons/dist/html/{minimal → neutral}/check.js.map +1 -1
  454. package/dist/dev/icons/dist/html/{minimal → neutral}/chevron.js +1 -1
  455. package/dist/dev/icons/dist/html/{minimal → neutral}/chevron.js.map +1 -1
  456. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-enter.js +1 -1
  457. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-enter.js.map +1 -1
  458. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-exit.js +1 -1
  459. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-exit.js.map +1 -1
  460. package/dist/dev/icons/dist/html/{minimal → neutral}/gear.js +1 -1
  461. package/dist/dev/icons/dist/html/{minimal → neutral}/gear.js.map +1 -1
  462. package/dist/dev/icons/dist/html/neutral/index.d.ts +28 -0
  463. package/dist/dev/icons/dist/html/{minimal → neutral}/pause.js +1 -1
  464. package/dist/dev/icons/dist/html/{minimal → neutral}/pause.js.map +1 -1
  465. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-enter.js +1 -1
  466. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-enter.js.map +1 -1
  467. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-exit.js +1 -1
  468. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-exit.js.map +1 -1
  469. package/dist/dev/icons/dist/html/{minimal → neutral}/play.js +1 -1
  470. package/dist/dev/icons/dist/html/{minimal → neutral}/play.js.map +1 -1
  471. package/dist/dev/icons/dist/html/{minimal → neutral}/quality.js +1 -1
  472. package/dist/dev/icons/dist/html/{minimal → neutral}/quality.js.map +1 -1
  473. package/dist/dev/icons/dist/html/{minimal → neutral}/restart.js +1 -1
  474. package/dist/dev/icons/dist/html/{minimal → neutral}/restart.js.map +1 -1
  475. package/dist/dev/icons/dist/html/{minimal → neutral}/seek.js +1 -1
  476. package/dist/dev/icons/dist/html/{minimal → neutral}/seek.js.map +1 -1
  477. package/dist/dev/icons/dist/html/{minimal → neutral}/speech.js +1 -1
  478. package/dist/dev/icons/dist/html/{minimal → neutral}/speech.js.map +1 -1
  479. package/dist/dev/icons/dist/html/{minimal → neutral}/speed.js +1 -1
  480. package/dist/dev/icons/dist/html/{minimal → neutral}/speed.js.map +1 -1
  481. package/dist/dev/icons/dist/html/neutral/spinner.js +6 -0
  482. package/dist/dev/icons/dist/html/{minimal → neutral}/spinner.js.map +1 -1
  483. package/dist/dev/icons/dist/html/{minimal → neutral}/switches.js +1 -1
  484. package/dist/dev/icons/dist/html/{minimal → neutral}/switches.js.map +1 -1
  485. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-high.js +1 -1
  486. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-high.js.map +1 -1
  487. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-low.js +1 -1
  488. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-low.js.map +1 -1
  489. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-off.js +1 -1
  490. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-off.js.map +1 -1
  491. package/dist/dev/icons/element/compat/index.d.ts +1 -0
  492. package/dist/dev/icons/element/compat/index.js +1 -0
  493. package/dist/dev/icons/element/neutral/index.d.ts +1 -0
  494. package/dist/dev/icons/element/neutral/index.js +1 -0
  495. package/dist/dev/icons/element/register/index.d.ts +1 -2
  496. package/dist/dev/icons/neutral/index.d.ts +2 -0
  497. package/dist/dev/icons/neutral/index.js +26 -0
  498. package/dist/dev/index.d.ts +12 -7
  499. package/dist/dev/index.js +4 -3
  500. package/dist/dev/internal/skins/compat-audio/register.d.ts +43 -0
  501. package/dist/dev/internal/skins/compat-audio/register.js +72 -0
  502. package/dist/dev/internal/skins/compat-audio/register.js.map +1 -0
  503. package/dist/dev/internal/skins/compat-audio/skin.css +1891 -0
  504. package/dist/dev/internal/skins/compat-audio/template.js +217 -0
  505. package/dist/dev/internal/skins/compat-audio/template.js.map +1 -0
  506. package/dist/dev/internal/skins/compat-live-audio/register.d.ts +27 -0
  507. package/dist/dev/internal/skins/compat-live-audio/register.js +52 -0
  508. package/dist/dev/internal/skins/compat-live-audio/register.js.map +1 -0
  509. package/dist/dev/internal/skins/compat-live-audio/skin.css +1676 -0
  510. package/dist/dev/internal/skins/compat-live-audio/template.js +114 -0
  511. package/dist/dev/internal/skins/compat-live-audio/template.js.map +1 -0
  512. package/dist/dev/internal/skins/compat-live-video/register.d.ts +45 -0
  513. package/dist/dev/internal/skins/compat-live-video/register.js +88 -0
  514. package/dist/dev/internal/skins/compat-live-video/register.js.map +1 -0
  515. package/dist/dev/internal/skins/compat-live-video/skin.css +2219 -0
  516. package/dist/dev/internal/skins/compat-live-video/template.js +239 -0
  517. package/dist/dev/internal/skins/compat-live-video/template.js.map +1 -0
  518. package/dist/dev/internal/skins/compat-video/register.d.ts +62 -0
  519. package/dist/dev/internal/skins/compat-video/register.js +117 -0
  520. package/dist/dev/internal/skins/compat-video/register.js.map +1 -0
  521. package/dist/dev/internal/skins/compat-video/skin.css +2497 -0
  522. package/dist/dev/internal/skins/compat-video/template.js +459 -0
  523. package/dist/dev/internal/skins/compat-video/template.js.map +1 -0
  524. package/dist/dev/internal/skins/default-audio/register.d.ts +12 -12
  525. package/dist/dev/internal/skins/default-audio/register.js +8 -8
  526. package/dist/dev/internal/skins/default-audio/skin.css +1213 -1365
  527. package/dist/dev/internal/skins/default-live-audio/register.d.ts +4 -4
  528. package/dist/dev/internal/skins/default-live-audio/register.js +4 -4
  529. package/dist/dev/internal/skins/default-live-audio/skin.css +842 -913
  530. package/dist/dev/internal/skins/default-live-video/register.d.ts +10 -10
  531. package/dist/dev/internal/skins/default-live-video/register.js +8 -8
  532. package/dist/dev/internal/skins/default-live-video/skin.css +1548 -1728
  533. package/dist/dev/internal/skins/default-video/register.d.ts +18 -18
  534. package/dist/dev/internal/skins/default-video/register.js +13 -13
  535. package/dist/dev/internal/skins/default-video/skin.css +2034 -2403
  536. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.d.ts +14 -14
  537. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.js +20 -20
  538. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.js.map +1 -1
  539. package/dist/dev/internal/skins/neutral-audio/skin.css +1823 -0
  540. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/template.js +24 -24
  541. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/template.js.map +1 -1
  542. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.d.ts +4 -4
  543. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js +13 -13
  544. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js.map +1 -1
  545. package/dist/dev/internal/skins/neutral-live-audio/skin.css +1238 -0
  546. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js +14 -14
  547. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js.map +1 -1
  548. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.d.ts +10 -10
  549. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.js +28 -28
  550. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.js.map +1 -1
  551. package/dist/dev/internal/skins/neutral-live-video/skin.css +2069 -0
  552. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/template.js +47 -47
  553. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/template.js.map +1 -1
  554. package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.d.ts +20 -20
  555. package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.js +40 -40
  556. package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.js.map +1 -1
  557. package/dist/dev/internal/skins/neutral-video/skin.css +2817 -0
  558. package/dist/dev/internal/skins/{minimal-video → neutral-video}/template.js +75 -75
  559. package/dist/dev/internal/skins/{minimal-video → neutral-video}/template.js.map +1 -1
  560. package/dist/dev/media/background-video/adapter.d.ts +1 -2
  561. package/dist/dev/media/background-video/template.d.ts +1 -2
  562. package/dist/dev/media/cloudflare-video/adapter.d.ts +3 -15
  563. package/dist/dev/media/dash-video/adapter.d.ts +3 -15
  564. package/dist/dev/media/hls-audio/adapter.d.ts +3 -15
  565. package/dist/dev/media/hls-background-video/adapter.d.ts +8 -5
  566. package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
  567. package/dist/dev/media/hls-video/adapter.d.ts +3 -15
  568. package/dist/dev/media/hlsjs-video/adapter.d.ts +3 -15
  569. package/dist/dev/media/mux-audio/hls-js.d.ts +3 -15
  570. package/dist/dev/media/mux-audio/mixin.js.map +1 -1
  571. package/dist/dev/media/mux-audio/spf.d.ts +3 -15
  572. package/dist/dev/media/mux-video/hls-js.d.ts +3 -15
  573. package/dist/dev/media/mux-video/mixin.js.map +1 -1
  574. package/dist/dev/media/mux-video/spf.d.ts +3 -15
  575. package/dist/dev/media/native-hls-video/adapter.d.ts +3 -15
  576. package/dist/dev/media/shaka-video/adapter.d.ts +3 -15
  577. package/dist/dev/media/spotify-audio/adapter.d.ts +3 -15
  578. package/dist/dev/media/tiktok-video/adapter.d.ts +3 -15
  579. package/dist/dev/media/twitch-video/adapter.d.ts +3 -15
  580. package/dist/dev/media/vimeo-video/adapter.d.ts +3 -15
  581. package/dist/dev/media/wistia-video/adapter.d.ts +1 -2
  582. package/dist/dev/media/youtube-video/adapter.d.ts +3 -15
  583. package/dist/dev/player/context.d.ts +34 -15
  584. package/dist/dev/player/context.js +9 -1
  585. package/dist/dev/player/context.js.map +1 -1
  586. package/dist/dev/player/controller.d.ts +3 -4
  587. package/dist/dev/player/controller.js.map +1 -1
  588. package/dist/dev/player/create-player.d.ts +5 -6
  589. package/dist/dev/player/create-player.js +2 -1
  590. package/dist/dev/player/create-player.js.map +1 -1
  591. package/dist/dev/player/element.js +47 -10
  592. package/dist/dev/player/element.js.map +1 -1
  593. package/dist/dev/presets/audio/compat-skin.d.ts +15 -0
  594. package/dist/dev/presets/audio/compat-skin.js +21 -0
  595. package/dist/dev/presets/audio/compat-skin.js.map +1 -0
  596. package/dist/dev/presets/audio/index.d.ts +3 -2
  597. package/dist/dev/presets/audio/index.js +3 -2
  598. package/dist/dev/presets/audio/neutral-skin.d.ts +15 -0
  599. package/dist/dev/presets/audio/neutral-skin.js +21 -0
  600. package/dist/dev/presets/audio/neutral-skin.js.map +1 -0
  601. package/dist/dev/presets/audio/player.d.ts +2 -3
  602. package/dist/dev/presets/audio/skin.d.ts +2 -3
  603. package/dist/dev/presets/audio/skin.js.map +1 -1
  604. package/dist/dev/presets/background/player.d.ts +2 -3
  605. package/dist/dev/presets/background/skin.d.ts +1 -2
  606. package/dist/dev/presets/live-audio/compat-skin.d.ts +15 -0
  607. package/dist/dev/presets/live-audio/compat-skin.js +21 -0
  608. package/dist/dev/presets/live-audio/compat-skin.js.map +1 -0
  609. package/dist/dev/presets/live-audio/index.d.ts +3 -2
  610. package/dist/dev/presets/live-audio/index.js +3 -2
  611. package/dist/dev/presets/live-audio/neutral-skin.d.ts +15 -0
  612. package/dist/dev/presets/live-audio/neutral-skin.js +21 -0
  613. package/dist/dev/presets/live-audio/neutral-skin.js.map +1 -0
  614. package/dist/dev/presets/live-audio/player.d.ts +2 -3
  615. package/dist/dev/presets/live-audio/skin.d.ts +2 -3
  616. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  617. package/dist/dev/presets/live-video/compat-skin.d.ts +15 -0
  618. package/dist/dev/presets/live-video/compat-skin.js +21 -0
  619. package/dist/dev/presets/live-video/compat-skin.js.map +1 -0
  620. package/dist/dev/presets/live-video/index.d.ts +3 -2
  621. package/dist/dev/presets/live-video/index.js +3 -2
  622. package/dist/dev/presets/live-video/neutral-skin.d.ts +15 -0
  623. package/dist/dev/presets/live-video/neutral-skin.js +21 -0
  624. package/dist/dev/presets/live-video/neutral-skin.js.map +1 -0
  625. package/dist/dev/presets/live-video/player.d.ts +2 -3
  626. package/dist/dev/presets/live-video/skin.d.ts +2 -3
  627. package/dist/dev/presets/live-video/skin.js.map +1 -1
  628. package/dist/dev/presets/skin.d.ts +1 -2
  629. package/dist/dev/presets/video/compat-skin.d.ts +15 -0
  630. package/dist/dev/presets/video/compat-skin.js +21 -0
  631. package/dist/dev/presets/video/compat-skin.js.map +1 -0
  632. package/dist/dev/presets/video/index.d.ts +3 -2
  633. package/dist/dev/presets/video/index.js +3 -2
  634. package/dist/dev/presets/video/neutral-skin.d.ts +15 -0
  635. package/dist/dev/presets/video/neutral-skin.js +21 -0
  636. package/dist/dev/presets/video/neutral-skin.js.map +1 -0
  637. package/dist/dev/presets/video/player.d.ts +2 -3
  638. package/dist/dev/presets/video/skin.d.ts +2 -3
  639. package/dist/dev/presets/video/skin.js.map +1 -1
  640. package/dist/dev/store/media-attach-mixin.d.ts +6 -4
  641. package/dist/dev/store/media-attach-mixin.js +2 -0
  642. package/dist/dev/store/media-attach-mixin.js.map +1 -1
  643. package/dist/dev/store/types.d.ts +2 -4
  644. package/dist/dev/ui/airplay-button/element.d.ts +4 -5
  645. package/dist/dev/ui/airplay-button/element.js +1 -1
  646. package/dist/dev/ui/airplay-button/element.js.map +1 -1
  647. package/dist/dev/ui/alert-dialog/element.d.ts +1 -2
  648. package/dist/dev/ui/audio-track-radio-group/element.d.ts +4 -5
  649. package/dist/dev/ui/audio-track-radio-group/element.js.map +1 -1
  650. package/dist/dev/ui/buffering-indicator/element.d.ts +2 -2
  651. package/dist/dev/ui/buffering-indicator/element.js +4 -0
  652. package/dist/dev/ui/buffering-indicator/element.js.map +1 -1
  653. package/dist/dev/ui/captions-button/element.d.ts +7 -10
  654. package/dist/dev/ui/captions-button/element.js.map +1 -1
  655. package/dist/dev/ui/captions-radio-group/element.d.ts +4 -5
  656. package/dist/dev/ui/captions-radio-group/element.js.map +1 -1
  657. package/dist/dev/ui/cast-button/element.d.ts +3 -4
  658. package/dist/dev/ui/cast-button/element.js.map +1 -1
  659. package/dist/dev/ui/container/element.d.ts +1 -2
  660. package/dist/dev/ui/container/element.js.map +1 -1
  661. package/dist/dev/ui/context-part-element.d.ts +2 -3
  662. package/dist/dev/ui/context-part-element.js.map +1 -1
  663. package/dist/dev/ui/controls/backdrop.d.ts +1 -2
  664. package/dist/dev/ui/controls/content.d.ts +1 -2
  665. package/dist/dev/ui/controls/context.d.ts +1 -2
  666. package/dist/dev/ui/controls/element.d.ts +1 -2
  667. package/dist/dev/ui/controls/element.js.map +1 -1
  668. package/dist/dev/ui/controls/group.d.ts +1 -2
  669. package/dist/dev/ui/dialog/backdrop.d.ts +1 -2
  670. package/dist/dev/ui/dialog/close.d.ts +1 -2
  671. package/dist/dev/ui/dialog/close.js.map +1 -1
  672. package/dist/dev/ui/dialog/context.d.ts +4 -3
  673. package/dist/dev/ui/dialog/context.js +1 -0
  674. package/dist/dev/ui/dialog/context.js.map +1 -1
  675. package/dist/dev/ui/dialog/description.d.ts +1 -2
  676. package/dist/dev/ui/dialog/element.d.ts +5 -4
  677. package/dist/dev/ui/dialog/element.js +4 -2
  678. package/dist/dev/ui/dialog/element.js.map +1 -1
  679. package/dist/dev/ui/dialog/popup.d.ts +1 -2
  680. package/dist/dev/ui/dialog/popup.js.map +1 -1
  681. package/dist/dev/ui/dialog/title.d.ts +1 -2
  682. package/dist/dev/ui/error-dialog/element.d.ts +1 -2
  683. package/dist/dev/ui/error-dialog/element.js.map +1 -1
  684. package/dist/dev/ui/fullscreen-button/element.d.ts +3 -5
  685. package/dist/dev/ui/fullscreen-button/element.js.map +1 -1
  686. package/dist/dev/ui/gesture/element.d.ts +1 -2
  687. package/dist/dev/ui/gesture/element.js.map +1 -1
  688. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts +2 -3
  689. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -1
  690. package/dist/dev/ui/hotkey/element.d.ts +1 -2
  691. package/dist/dev/ui/hotkey/element.js.map +1 -1
  692. package/dist/dev/ui/input-indicator/element.d.ts +5 -4
  693. package/dist/dev/ui/input-indicator/element.js.map +1 -1
  694. package/dist/dev/ui/input-indicator/live-indicator.d.ts +2 -3
  695. package/dist/dev/ui/input-indicator/live-indicator.js.map +1 -1
  696. package/dist/dev/ui/live-button/element.d.ts +4 -4
  697. package/dist/dev/ui/live-button/element.js.map +1 -1
  698. package/dist/dev/ui/media-button-element.d.ts +17 -8
  699. package/dist/dev/ui/media-button-element.js +7 -6
  700. package/dist/dev/ui/media-button-element.js.map +1 -1
  701. package/dist/dev/ui/media-ui-element.d.ts +15 -7
  702. package/dist/dev/ui/media-ui-element.js +6 -1
  703. package/dist/dev/ui/media-ui-element.js.map +1 -1
  704. package/dist/dev/ui/menu/checkbox-item.d.ts +1 -2
  705. package/dist/dev/ui/menu/checkbox-item.js.map +1 -1
  706. package/dist/dev/ui/menu/content.d.ts +1 -2
  707. package/dist/dev/ui/menu/content.js.map +1 -1
  708. package/dist/dev/ui/menu/context.d.ts +9 -5
  709. package/dist/dev/ui/menu/context.js +2 -0
  710. package/dist/dev/ui/menu/context.js.map +1 -1
  711. package/dist/dev/ui/menu/element.d.ts +1 -2
  712. package/dist/dev/ui/menu/element.js.map +1 -1
  713. package/dist/dev/ui/menu/group-controller.js.map +1 -1
  714. package/dist/dev/ui/menu/group-label.d.ts +1 -2
  715. package/dist/dev/ui/menu/group-label.js.map +1 -1
  716. package/dist/dev/ui/menu/group.d.ts +1 -2
  717. package/dist/dev/ui/menu/group.js.map +1 -1
  718. package/dist/dev/ui/menu/item-indicator.d.ts +1 -2
  719. package/dist/dev/ui/menu/item.d.ts +1 -2
  720. package/dist/dev/ui/menu/item.js.map +1 -1
  721. package/dist/dev/ui/menu/radio-group.d.ts +1 -2
  722. package/dist/dev/ui/menu/radio-group.js.map +1 -1
  723. package/dist/dev/ui/menu/radio-item.d.ts +1 -2
  724. package/dist/dev/ui/menu/radio-item.js.map +1 -1
  725. package/dist/dev/ui/menu/separator.d.ts +1 -2
  726. package/dist/dev/ui/mute-button/element.d.ts +3 -4
  727. package/dist/dev/ui/mute-button/element.js.map +1 -1
  728. package/dist/dev/ui/pip-button/element.d.ts +4 -6
  729. package/dist/dev/ui/pip-button/element.js.map +1 -1
  730. package/dist/dev/ui/play-button/element.d.ts +3 -5
  731. package/dist/dev/ui/play-button/element.js +1 -1
  732. package/dist/dev/ui/play-button/element.js.map +1 -1
  733. package/dist/dev/ui/playback-rate-button/element.d.ts +4 -5
  734. package/dist/dev/ui/playback-rate-button/element.js +4 -2
  735. package/dist/dev/ui/playback-rate-button/element.js.map +1 -1
  736. package/dist/dev/ui/playback-rate-radio-group/element.d.ts +4 -5
  737. package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
  738. package/dist/dev/ui/popover/element.d.ts +1 -2
  739. package/dist/dev/ui/popover/element.js +4 -2
  740. package/dist/dev/ui/popover/element.js.map +1 -1
  741. package/dist/dev/ui/position-controller.js.map +1 -1
  742. package/dist/dev/ui/poster/element.d.ts +1 -2
  743. package/dist/dev/ui/poster/element.js.map +1 -1
  744. package/dist/dev/ui/quality-radio-group/element.d.ts +4 -5
  745. package/dist/dev/ui/quality-radio-group/element.js.map +1 -1
  746. package/dist/dev/ui/radio-group/context.d.ts +4 -3
  747. package/dist/dev/ui/radio-group/context.js +1 -0
  748. package/dist/dev/ui/radio-group/context.js.map +1 -1
  749. package/dist/dev/ui/radio-group/element.d.ts +1 -2
  750. package/dist/dev/ui/radio-group/element.js.map +1 -1
  751. package/dist/dev/ui/radio-options/controller.js.map +1 -1
  752. package/dist/dev/ui/seek-button/element.d.ts +2 -3
  753. package/dist/dev/ui/seek-button/element.js.map +1 -1
  754. package/dist/dev/ui/seek-indicator/element.d.ts +3 -4
  755. package/dist/dev/ui/seek-indicator/element.js +7 -1
  756. package/dist/dev/ui/seek-indicator/element.js.map +1 -1
  757. package/dist/dev/ui/seek-indicator/value.d.ts +1 -2
  758. package/dist/dev/ui/slider/buffer.d.ts +1 -2
  759. package/dist/dev/ui/slider/context.d.ts +4 -3
  760. package/dist/dev/ui/slider/context.js +1 -0
  761. package/dist/dev/ui/slider/context.js.map +1 -1
  762. package/dist/dev/ui/slider/element.d.ts +1 -2
  763. package/dist/dev/ui/slider/element.js.map +1 -1
  764. package/dist/dev/ui/slider/events.d.ts +4 -3
  765. package/dist/dev/ui/slider/fill.d.ts +1 -2
  766. package/dist/dev/ui/slider/preview.d.ts +1 -2
  767. package/dist/dev/ui/slider/preview.js.map +1 -1
  768. package/dist/dev/ui/slider/thumb.d.ts +1 -2
  769. package/dist/dev/ui/slider/thumb.js.map +1 -1
  770. package/dist/dev/ui/slider/thumbnail.d.ts +1 -2
  771. package/dist/dev/ui/slider/thumbnail.js.map +1 -1
  772. package/dist/dev/ui/slider/track.d.ts +1 -2
  773. package/dist/dev/ui/slider/value.d.ts +1 -2
  774. package/dist/dev/ui/slider/value.js.map +1 -1
  775. package/dist/dev/ui/status-announcer/element.d.ts +1 -2
  776. package/dist/dev/ui/status-announcer/element.js.map +1 -1
  777. package/dist/dev/ui/status-indicator/element.d.ts +9 -4
  778. package/dist/dev/ui/status-indicator/element.js +14 -1
  779. package/dist/dev/ui/status-indicator/element.js.map +1 -1
  780. package/dist/dev/ui/status-indicator/value.d.ts +1 -2
  781. package/dist/dev/ui/text/element.d.ts +4 -3
  782. package/dist/dev/ui/text/element.js +1 -0
  783. package/dist/dev/ui/text/element.js.map +1 -1
  784. package/dist/dev/ui/thumbnail/element.d.ts +5 -6
  785. package/dist/dev/ui/thumbnail/element.js +3 -2
  786. package/dist/dev/ui/thumbnail/element.js.map +1 -1
  787. package/dist/dev/ui/time/element.d.ts +1 -2
  788. package/dist/dev/ui/time/element.js.map +1 -1
  789. package/dist/dev/ui/time/group.d.ts +1 -2
  790. package/dist/dev/ui/time/separator.d.ts +1 -2
  791. package/dist/dev/ui/time-slider/chapter-title.d.ts +1 -2
  792. package/dist/dev/ui/time-slider/chapter-title.js.map +1 -1
  793. package/dist/dev/ui/time-slider/chapters.d.ts +1 -2
  794. package/dist/dev/ui/time-slider/chapters.js.map +1 -1
  795. package/dist/dev/ui/time-slider/element.d.ts +1 -2
  796. package/dist/dev/ui/time-slider/element.js.map +1 -1
  797. package/dist/dev/ui/title/element.d.ts +1 -2
  798. package/dist/dev/ui/title/element.js.map +1 -1
  799. package/dist/dev/ui/tooltip/context.d.ts +2 -2
  800. package/dist/dev/ui/tooltip/context.js +1 -0
  801. package/dist/dev/ui/tooltip/context.js.map +1 -1
  802. package/dist/dev/ui/tooltip/element.d.ts +1 -2
  803. package/dist/dev/ui/tooltip/element.js +4 -2
  804. package/dist/dev/ui/tooltip/element.js.map +1 -1
  805. package/dist/dev/ui/tooltip/group.d.ts +1 -2
  806. package/dist/dev/ui/tooltip/group.js.map +1 -1
  807. package/dist/dev/ui/tooltip/label.d.ts +1 -2
  808. package/dist/dev/ui/tooltip/label.js.map +1 -1
  809. package/dist/dev/ui/tooltip/shortcut.d.ts +1 -2
  810. package/dist/dev/ui/ui-element.d.ts +3 -3
  811. package/dist/dev/ui/ui-element.js.map +1 -1
  812. package/dist/dev/ui/volume-indicator/element.d.ts +3 -4
  813. package/dist/dev/ui/volume-indicator/element.js.map +1 -1
  814. package/dist/dev/ui/volume-indicator/fill.d.ts +1 -2
  815. package/dist/dev/ui/volume-indicator/value.d.ts +1 -2
  816. package/dist/dev/ui/volume-popover/element.d.ts +1 -2
  817. package/dist/dev/ui/volume-popover/element.js +1 -1
  818. package/dist/dev/ui/volume-popover/element.js.map +1 -1
  819. package/dist/dev/ui/volume-slider/element.d.ts +1 -2
  820. package/dist/dev/ui/volume-slider/element.js +1 -1
  821. package/dist/dev/ui/volume-slider/element.js.map +1 -1
  822. package/dist/dev/version.d.ts +21 -0
  823. package/dist/dev/version.js +29 -0
  824. package/dist/dev/version.js.map +1 -0
  825. package/docs/README.md +1 -1
  826. package/docs/guides/autoplay.md +10 -21
  827. package/docs/guides/background-video.md +74 -7
  828. package/docs/guides/browser-support.md +48 -36
  829. package/docs/guides/build-with-ai.md +1 -1
  830. package/docs/guides/build-your-own-component.md +5 -5
  831. package/docs/guides/captions.md +46 -6
  832. package/docs/guides/casting.md +24 -8
  833. package/docs/guides/cdn.md +11 -10
  834. package/docs/guides/content-security-policy.md +29 -5
  835. package/docs/guides/controls.md +25 -10
  836. package/docs/guides/customize-skins.md +2 -2
  837. package/docs/guides/features.md +3 -1
  838. package/docs/guides/fullscreen.md +35 -8
  839. package/docs/guides/installation-cdn.md +7 -7
  840. package/docs/guides/installation-shadcn.md +5 -5
  841. package/docs/guides/installation-svelte.md +6 -6
  842. package/docs/guides/installation-vue.md +6 -6
  843. package/docs/guides/installation.md +7 -7
  844. package/docs/guides/internationalization.md +37 -28
  845. package/docs/guides/keyboard-shortcuts.md +27 -15
  846. package/docs/guides/live-streams.md +51 -13
  847. package/docs/guides/llms.txt +6 -5
  848. package/docs/guides/media-sources.md +13 -6
  849. package/docs/guides/migrate-from-media-chrome.md +182 -51
  850. package/docs/guides/migrate-from-mux-player.md +191 -116
  851. package/docs/guides/migrate-from-plyr.md +171 -81
  852. package/docs/guides/migrate-from-video-js-8.md +256 -191
  853. package/docs/guides/migrate-from-vidstack.md +865 -0
  854. package/docs/guides/mux-data.md +23 -9
  855. package/docs/guides/picture-in-picture.md +22 -16
  856. package/docs/guides/playback-errors.md +10 -7
  857. package/docs/guides/poster.md +32 -11
  858. package/docs/guides/presets.md +15 -5
  859. package/docs/guides/quality.md +44 -5
  860. package/docs/guides/self-hosting.md +5 -5
  861. package/docs/guides/skins.md +6 -4
  862. package/docs/guides/thumbnails.md +24 -14
  863. package/docs/guides/ui-components.md +1 -1
  864. package/docs/guides/user-preferences.md +38 -15
  865. package/docs/guides/v10-roadmap.md +1 -1
  866. package/docs/llms.txt +45 -11
  867. package/docs/reference/api/create-i18n.md +3 -3
  868. package/docs/reference/api/create-translator.md +1 -1
  869. package/docs/reference/api/feature-audio-track.md +1 -1
  870. package/docs/reference/api/feature-controls.md +2 -2
  871. package/docs/reference/api/feature-fullscreen.md +1 -2
  872. package/docs/reference/api/feature-pip.md +3 -4
  873. package/docs/reference/api/feature-playback.md +2 -3
  874. package/docs/reference/api/feature-quality.md +2 -2
  875. package/docs/reference/api/feature-remote-playback.md +1 -1
  876. package/docs/reference/api/feature-source.md +2 -8
  877. package/docs/reference/api/feature-text-tracks.md +6 -8
  878. package/docs/reference/api/feature-volume.md +1 -1
  879. package/docs/reference/api/find-locale-keys.md +32 -0
  880. package/docs/reference/api/get-locale-key.md +32 -0
  881. package/docs/reference/api/html-create-player.md +24 -26
  882. package/docs/reference/api/i18n-controller.md +1 -1
  883. package/docs/reference/api/is-text.md +33 -0
  884. package/docs/reference/api/llms.txt +23 -2
  885. package/docs/reference/api/load-locale.md +36 -0
  886. package/docs/reference/api/media-capabilities.md +255 -0
  887. package/docs/reference/api/player-controller.md +39 -20
  888. package/docs/reference/api/player-store.md +112 -0
  889. package/docs/reference/api/preset-audio.md +116 -0
  890. package/docs/reference/api/preset-background.md +103 -0
  891. package/docs/reference/api/preset-live-audio.md +119 -0
  892. package/docs/reference/api/preset-live-video.md +124 -0
  893. package/docs/reference/api/preset-video.md +123 -0
  894. package/docs/reference/api/register-i18n.md +13 -0
  895. package/docs/reference/api/resolve-adapter-type.md +98 -0
  896. package/docs/reference/api/resolve-mime-type.md +48 -0
  897. package/docs/reference/api/resolve-translation.md +36 -0
  898. package/docs/reference/api/translate-text.md +56 -0
  899. package/docs/reference/api/translation-phrases.md +13 -0
  900. package/docs/reference/api/ui-element.md +296 -0
  901. package/docs/reference/components/audio-compat-skin.md +33 -0
  902. package/docs/reference/components/{audio-minimal-skin.md → audio-neutral-skin.md} +7 -7
  903. package/docs/reference/components/audio-skin.md +3 -3
  904. package/docs/reference/components/background-video-skin.md +1 -1
  905. package/docs/reference/components/background-video.md +1 -1
  906. package/docs/reference/components/captions-button.md +1 -1
  907. package/docs/reference/components/captions-radio-group.md +1 -1
  908. package/docs/reference/components/cloudflare-video.md +1 -1
  909. package/docs/reference/components/controls.md +2 -2
  910. package/docs/reference/components/dash-video.md +1 -1
  911. package/docs/reference/components/fullscreen-button.md +1 -1
  912. package/docs/reference/components/google-cast.md +4 -4
  913. package/docs/reference/components/hls-audio.md +1 -1
  914. package/docs/reference/components/hls-background-video.md +1 -1
  915. package/docs/reference/components/hls-video.md +1 -1
  916. package/docs/reference/components/hlsjs-video.md +2 -2
  917. package/docs/reference/components/icons.md +130 -0
  918. package/docs/reference/components/live-audio-compat-skin.md +35 -0
  919. package/docs/reference/components/{live-audio-minimal-skin.md → live-audio-neutral-skin.md} +7 -7
  920. package/docs/reference/components/live-audio-skin.md +3 -3
  921. package/docs/reference/components/live-video-compat-skin.md +41 -0
  922. package/docs/reference/components/{live-video-minimal-skin.md → live-video-neutral-skin.md} +7 -7
  923. package/docs/reference/components/live-video-skin.md +3 -3
  924. package/docs/reference/components/llms.txt +16 -6
  925. package/docs/reference/components/menu.md +7 -2
  926. package/docs/reference/components/mux-audio.md +2 -2
  927. package/docs/reference/components/mux-background-video.md +1 -1
  928. package/docs/reference/components/mux-data.md +4 -4
  929. package/docs/reference/components/mux-video.md +4 -4
  930. package/docs/reference/components/native-hls-video.md +1 -1
  931. package/docs/reference/components/pip-button.md +2 -2
  932. package/docs/reference/components/player.md +26 -2
  933. package/docs/reference/components/popover.md +6 -8
  934. package/docs/reference/components/shaka-video.md +1 -1
  935. package/docs/reference/components/spotify-audio.md +1 -1
  936. package/docs/reference/components/status-indicator.md +27 -4
  937. package/docs/reference/components/thumbnail.md +1 -1
  938. package/docs/reference/components/tiktok-video.md +1 -1
  939. package/docs/reference/components/twitch-video.md +1 -1
  940. package/docs/reference/components/video-compat-skin.md +45 -0
  941. package/docs/reference/components/{video-minimal-skin.md → video-neutral-skin.md} +7 -7
  942. package/docs/reference/components/video-skin.md +3 -3
  943. package/docs/reference/components/vimeo-video.md +1 -1
  944. package/docs/reference/components/wistia-video.md +1 -1
  945. package/docs/reference/components/youtube-video.md +1 -1
  946. package/package.json +54 -42
  947. package/dist/default/define/audio/minimal-skin.css +0 -2048
  948. package/dist/default/define/audio/minimal-skin.js +0 -6
  949. package/dist/default/define/audio/minimal-skin2.js +0 -4
  950. package/dist/default/define/live-audio/minimal-skin.css +0 -1378
  951. package/dist/default/define/live-audio/minimal-skin.js +0 -6
  952. package/dist/default/define/live-audio/minimal-skin2.js +0 -4
  953. package/dist/default/define/live-video/minimal-skin.css +0 -2311
  954. package/dist/default/define/live-video/minimal-skin.js +0 -6
  955. package/dist/default/define/live-video/minimal-skin2.js +0 -4
  956. package/dist/default/define/video/minimal-skin.css +0 -3232
  957. package/dist/default/define/video/minimal-skin.js +0 -6
  958. package/dist/default/define/video/minimal-skin2.js +0 -4
  959. package/dist/default/extensions/media-extension-element.js +0 -54
  960. package/dist/default/icons/element/minimal/index.js +0 -1
  961. package/dist/default/icons/minimal/index.js +0 -26
  962. package/dist/default/internal/skins/minimal-audio/skin.css +0 -1977
  963. package/dist/default/internal/skins/minimal-live-audio/skin.css +0 -1307
  964. package/dist/default/internal/skins/minimal-live-video/skin.css +0 -2240
  965. package/dist/default/internal/skins/minimal-video/skin.css +0 -3161
  966. package/dist/default/presets/audio/minimal-skin.js +0 -19
  967. package/dist/default/presets/live-audio/minimal-skin.js +0 -19
  968. package/dist/default/presets/live-video/minimal-skin.js +0 -19
  969. package/dist/default/presets/video/minimal-skin.js +0 -19
  970. package/dist/dev/define/audio/minimal-skin.css +0 -2048
  971. package/dist/dev/define/audio/minimal-skin.d.ts +0 -1
  972. package/dist/dev/define/audio/minimal-skin.js +0 -8
  973. package/dist/dev/define/audio/minimal-skin.js.map +0 -1
  974. package/dist/dev/define/audio/minimal-skin2.js +0 -6
  975. package/dist/dev/define/audio/minimal-skin2.js.map +0 -1
  976. package/dist/dev/define/live-audio/minimal-skin.css +0 -1378
  977. package/dist/dev/define/live-audio/minimal-skin.d.ts +0 -1
  978. package/dist/dev/define/live-audio/minimal-skin.js +0 -8
  979. package/dist/dev/define/live-audio/minimal-skin.js.map +0 -1
  980. package/dist/dev/define/live-audio/minimal-skin2.js +0 -6
  981. package/dist/dev/define/live-audio/minimal-skin2.js.map +0 -1
  982. package/dist/dev/define/live-video/minimal-skin.css +0 -2311
  983. package/dist/dev/define/live-video/minimal-skin.d.ts +0 -1
  984. package/dist/dev/define/live-video/minimal-skin.js +0 -8
  985. package/dist/dev/define/live-video/minimal-skin.js.map +0 -1
  986. package/dist/dev/define/live-video/minimal-skin2.js +0 -6
  987. package/dist/dev/define/live-video/minimal-skin2.js.map +0 -1
  988. package/dist/dev/define/video/minimal-skin.css +0 -3232
  989. package/dist/dev/define/video/minimal-skin.d.ts +0 -1
  990. package/dist/dev/define/video/minimal-skin.js +0 -8
  991. package/dist/dev/define/video/minimal-skin.js.map +0 -1
  992. package/dist/dev/define/video/minimal-skin2.js +0 -6
  993. package/dist/dev/define/video/minimal-skin2.js.map +0 -1
  994. package/dist/dev/extensions/media-extension-element.d.ts +0 -29
  995. package/dist/dev/extensions/media-extension-element.js +0 -56
  996. package/dist/dev/extensions/media-extension-element.js.map +0 -1
  997. package/dist/dev/icons/dist/html/minimal/index.d.ts +0 -29
  998. package/dist/dev/icons/element/minimal/index.d.ts +0 -1
  999. package/dist/dev/icons/element/minimal/index.js +0 -1
  1000. package/dist/dev/icons/minimal/index.js +0 -26
  1001. package/dist/dev/internal/skins/minimal-audio/skin.css +0 -1977
  1002. package/dist/dev/internal/skins/minimal-live-audio/skin.css +0 -1307
  1003. package/dist/dev/internal/skins/minimal-live-video/skin.css +0 -2240
  1004. package/dist/dev/internal/skins/minimal-video/skin.css +0 -3161
  1005. package/dist/dev/presets/audio/minimal-skin.d.ts +0 -16
  1006. package/dist/dev/presets/audio/minimal-skin.js +0 -21
  1007. package/dist/dev/presets/audio/minimal-skin.js.map +0 -1
  1008. package/dist/dev/presets/live-audio/minimal-skin.d.ts +0 -16
  1009. package/dist/dev/presets/live-audio/minimal-skin.js +0 -21
  1010. package/dist/dev/presets/live-audio/minimal-skin.js.map +0 -1
  1011. package/dist/dev/presets/live-video/minimal-skin.d.ts +0 -16
  1012. package/dist/dev/presets/live-video/minimal-skin.js +0 -21
  1013. package/dist/dev/presets/live-video/minimal-skin.js.map +0 -1
  1014. package/dist/dev/presets/video/minimal-skin.d.ts +0 -16
  1015. package/dist/dev/presets/video/minimal-skin.js +0 -21
  1016. package/dist/dev/presets/video/minimal-skin.js.map +0 -1
  1017. /package/dist/dev/define/audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1018. /package/dist/dev/define/live-audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1019. /package/dist/dev/define/live-video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1020. /package/dist/dev/define/video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1021. /package/dist/dev/icons/dist/element/{minimal → compat}/index.d.ts +0 -0
@@ -1,16 +1,63 @@
1
1
  # Migrate from Media Chrome
2
2
 
3
- Map Media Chrome's controller, elements, and attributes onto Video.js v10, where most of the work is renaming and reshaping rather than rewriting
3
+ Move a Media Chrome player to Video.js v10, mapping its controller, controls, styles, and imperative calls
4
4
 
5
- Video.js v10’s HTML player uses the same `media-*` custom-element convention as Media Chrome, so most of the work is **renaming and reshaping**, not rewriting.
5
+ Replace Media Chrome’s controller with a Video.js player and container, then migrate your controls. The libraries share `media-*` tag names, but their attributes, child markup, icons, and styles differ.
6
6
 
7
7
  > **Note**
8
8
  >
9
- > Scoped to apps that compose their own player from Media Chrome elements. If you use `<mux-player>`, follow the Mux Player migration guide instead.
9
+ > This guide is for apps that build their own player from Media Chrome elements. If you use Mux Player, follow [Migrate from Mux Player](./migrate-from-mux-player.md) instead.
10
+
11
+ ## AI Quickstart
12
+
13
+ Paste this prompt into your coding agent:
14
+
15
+ ```
16
+ Migrate this project's Media Chrome player to Video.js v10 for HTML. Use @videojs/html or its CDN bundles for a page without a build step.
17
+
18
+ Run `npx @videojs/cli agents skills` to get the Video.js skill installation instructions. Follow the printed steps for your agent. If they require a session reload, reload the session and continue with this prompt. If you can't run commands, use the installation instructions at https://github.com/videojs/skills. Use the skill throughout this migration.
19
+
20
+ Read the migration guide at https://videojs.org/docs/framework/html/guides/migrate-from-media-chrome, including its Known gaps section. Inspect the existing player and list its media URLs, source formats, tracks, options, custom controls, event handlers, and integrations. Compare that list with the known gaps and report unsupported requirements before changing code. Keep the existing media URLs and required behavior throughout the migration.
21
+
22
+ For installation guidance, read https://videojs.org/docs/framework/html/llms.txt and follow its link to the installation guide. Keep using that online index for a CDN installation.
23
+
24
+ From the application root, run `npx @videojs/cli agents init` without flags to list installation options and their accepted values.
25
+
26
+ Choose values for these options:
27
+ - --media and --source-url: the existing content and playback requirements.
28
+ - --method: the installation method.
29
+ - --preset, --skin, and --extensions: the player UI and integrations.
30
+
31
+ Add those options to `npx @videojs/cli agents init --framework html --project existing` and run the command to print the installation plan. Follow any version-mismatch notice. Both CLI commands print instructions without changing project files. Use the printed plan to install Video.js and configure the player.
32
+
33
+ After installing a package, switch to node_modules/@videojs/html/docs/llms.txt for documentation matching its version.
34
+
35
+ Implement the migration. Then verify playback, captions, controls, and any analytics integration on every browser the project supports.
36
+ ```
10
37
 
11
38
  ## Before you begin
12
39
 
13
- Install Video.js and choose a [preset](./presets.md) (see [Installation](./installation.md)). Start with its ready-made skin if those controls fit your player. If you need to keep a custom control bar, build it from the individual Video.js UI components instead.
40
+ Check [Known gaps](#known-gaps) for controller options and preferences your app relies on. List your media sources, custom controls, event handlers, and theme rules.
41
+
42
+ Install Video.js and choose a [preset](./presets.md) (see [Installation](./installation.md)). If the preset’s ready-made skin has the controls you need, start with it. To keep a custom control bar, build it from the individual Video.js UI components instead.
43
+
44
+ Before loading Video.js HTML, remove every Media Chrome import and CDN script from the page, including any that another component loads. Then reload the page. Both libraries register custom elements with names such as `media-play-button`. A document can hold only one definition per name, and Video.js keeps any definition that already exists. If you need both libraries during migration, load them in separate documents, such as an iframe.
45
+
46
+ For a page without a bundler, load the CDN video preset. It registers the player, the UI elements and icons used in the controller example below, and the `<media-i18n>` element:
47
+
48
+ ```html
49
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/video.js"></script>
50
+ ```
51
+
52
+ Some elements in the mapping table below need separate bundles. If you use any of these elements, also load its bundle:
53
+
54
+ - `media-seek-button`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/ui/seek-button.js`
55
+ - `media-playback-rate-button`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/ui/playback-rate-button.js`
56
+ - `media-thumbnail`: `https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-rc.5/ui/thumbnail.js`
57
+
58
+ Load each with `<script type="module" src="…"></script>`. See [CDN](./cdn.md) for individual component bundles.
59
+
60
+ For a bundler installation:
14
61
 
15
62
  ```bash
16
63
  npm install @videojs/html
@@ -18,18 +65,22 @@ npm install @videojs/html
18
65
 
19
66
  ## Map the controller
20
67
 
21
- Media Chrome wraps a slotted `<video slot="media">` in a single `<media-controller>`. Video.js splits that into two elements. The player owns state and draws nothing. The `<media-container>` is the box everything lives in, with the media as a plain child.
68
+ The examples use the same MP4 source before and after migration. For HLS, DASH, or an embed, keep your existing source and choose its [media component](./media-sources.md).
69
+
70
+ Media Chrome wraps a slotted `<video slot="media">` in a single `<media-controller>`. Video.js splits that into two elements. The player owns state and renders no UI. The `<media-container>` holds the media and controls. Put the media directly inside the container.
22
71
 
23
72
  ```html
24
73
  <!-- Media Chrome -->
25
74
  <media-controller>
26
- <video slot="media" src="video.m3u8"></video>
75
+ <video slot="media" src="video.mp4"></video>
27
76
  <media-control-bar>
28
77
  <media-play-button></media-play-button>
29
78
  </media-control-bar>
30
79
  </media-controller>
31
80
  ```
32
81
 
82
+ Use the HTML and CSS tabs for both installation methods. With a bundler, also add the JavaScript imports. With the CDN video preset, skip those imports because the preset already registers these elements.
83
+
33
84
  **JavaScript**
34
85
 
35
86
  ```js
@@ -46,13 +97,13 @@ import '@videojs/html/icons/element';
46
97
  ```html
47
98
  <!-- Video.js -->
48
99
  <video-player>
49
- <media-container>
50
- <video src="video.mp4"></video>
100
+ <media-container class="app-player-container">
101
+ <video class="app-player-media" src="video.mp4" playsinline></video>
51
102
  <media-controls>
52
- <media-controls-content>
103
+ <media-controls-content class="app-player-controls">
53
104
  <media-play-button class="player-play-button">
54
- <media-icon class="player-play-icon" name="play"></media-icon>
55
- <media-icon class="player-pause-icon" name="pause"></media-icon>
105
+ <media-icon class="player-play-icon" name="play" aria-hidden="true"></media-icon>
106
+ <media-icon class="player-pause-icon" name="pause" aria-hidden="true"></media-icon>
56
107
  </media-play-button>
57
108
  </media-controls-content>
58
109
  </media-controls>
@@ -63,7 +114,55 @@ import '@videojs/html/icons/element';
63
114
  **CSS**
64
115
 
65
116
  ```css
66
- .player-pause-icon {
117
+ .app-player-container {
118
+ position: relative;
119
+ display: block;
120
+ width: 100%;
121
+ aspect-ratio: 16 / 9;
122
+ }
123
+
124
+ .app-player-media {
125
+ display: block;
126
+ width: 100%;
127
+ height: 100%;
128
+ object-fit: contain;
129
+ }
130
+
131
+ .app-player-controls {
132
+ position: absolute;
133
+ inset-inline: 0;
134
+ bottom: 0;
135
+ display: flex;
136
+ padding: 0.75rem;
137
+ background: rgb(0 0 0 / 70%);
138
+ }
139
+
140
+ .app-player-controls:not([data-visible]) {
141
+ visibility: hidden;
142
+ pointer-events: none;
143
+ }
144
+
145
+ .player-play-button {
146
+ padding: 0.5rem;
147
+ color: white;
148
+ cursor: pointer;
149
+ background: #222;
150
+ border: 1px solid white;
151
+ border-radius: 0.25rem;
152
+ }
153
+
154
+ .player-play-button:focus-visible {
155
+ outline: 2px solid white;
156
+ outline-offset: 2px;
157
+ }
158
+
159
+ .player-play-button media-icon {
160
+ display: inline-flex;
161
+ width: 1.5rem;
162
+ height: 1.5rem;
163
+ }
164
+
165
+ .player-play-button .player-pause-icon {
67
166
  display: none;
68
167
  }
69
168
 
@@ -78,25 +177,25 @@ import '@videojs/html/icons/element';
78
177
 
79
178
  ## Map controller attributes
80
179
 
81
- Media Chrome configures behavior through `<media-controller>` attributes. Video.js v10 has no single controller element, so these settle into three places:
180
+ Media Chrome configures behavior through `<media-controller>` attributes. Video.js v10 has no single controller element, so these settings move to three places:
82
181
 
83
- - **Player features** — playback behavior that comes from the player’s feature set. A preset picks one for you; `createPlayer` lets you name your own.
182
+ - **Player features** — playback behavior that comes from the player’s feature set. A preset includes a fixed feature set. With `createPlayer`, you choose the feature set.
84
183
  - **`<media-container>` and `<media-controls>`** — layout, focus, and autohide.
85
- - **Dedicated elements** — `<media-hotkey>`, `<media-gesture>`, and friends, declared in markup.
184
+ - **Dedicated elements** — `<media-hotkey>`, `<media-gesture>`, and similar elements, declared in markup.
86
185
 
87
186
  | Media Chrome attribute | Video.js v10 | How |
88
187
  | --- | --- | --- |
89
188
  | `audio` | the audio preset | Choose an audio player and audio skin rather than toggling at runtime. |
90
- | `autohide` | `media-controls` (built in) | Controls auto-hide after inactivity automatically. `autohide="-1"` becomes `visibility="always"` on `media-controls`; the delay is currently fixed, see [Known gaps](#known-gaps). |
189
+ | `autohide` | `media-controls` (built in) | Controls hide after inactivity by default. For `autohide="-1"`, set `visibility="always"` on `media-controls`. The delay is not configurable yet; see [Known gaps](#known-gaps). |
91
190
  | `fullscreenelement` | `media-container` | Fullscreen targets the container element. |
92
- | `gesturesdisabled` | `media-gesture disabled`, or omit | Disable per gesture element, or leave the gestures out. |
93
- | `nohotkeys` | `media-hotkey disabled`, or omit | Disable per hotkey element, or leave them out. |
191
+ | `gesturesdisabled` | `disabled` on each `media-gesture`, or omit it | Media Chrome disables all gestures at once. In Video.js, set `disabled` on each `media-gesture` or omit it. |
192
+ | `nohotkeys` | `disabled` on each `media-hotkey`, or omit it | Media Chrome disables all hotkeys at once. In Video.js, set `disabled` on each `media-hotkey` or omit it. |
94
193
  | `hotkeys="noarrowleft …"` | individual `media-hotkey` | Each shortcut is its own element, so remove the ones you don’t want. |
95
194
  | `keyboardforwardseekoffset`, `keyboardbackwardseekoffset` | `value` on `media-hotkey` | Set the signed seek amount per element. |
96
- | `defaultsubtitles` | `<track default>` for authored tracks | Add `default` to an authored captions or subtitles track. Tracks discovered from a provider or manifest don’t have one generic player-level default flag. |
97
- | `defaultstreamtype` | `streamType` feature | Partial: derived from the media, with no pre-load default. |
195
+ | `defaultsubtitles` | `<track default>` for authored tracks | Add `default` to an authored captions or subtitles track. For tracks supplied by a provider or manifest, Video.js has no player-level setting that picks the default. |
196
+ | `defaultstreamtype` | `streamType` feature | Partial support. Video.js reads the stream type from the media. You cannot set a default stream type for use before the media loads. |
98
197
  | `liveedgeoffset`, `seektoliveoffset` | live media engine | Live-edge behavior lives in the playback engine, not a UI attribute. |
99
- | `lang` | i18n translator | Localization is configured through the [translator and locale registry](./internationalization.md). |
198
+ | `lang` | `<media-i18n>` | Wrap the player in `<media-i18n lang="…">`. CDN presets register it; with a bundler, import `@videojs/html/i18n`. See [Internationalize the player](./internationalization.md). |
100
199
 
101
200
  ### Hotkeys
102
201
 
@@ -109,11 +208,13 @@ Media Chrome toggles keyboard shortcuts with `nohotkeys` and `hotkeys`. Video.js
109
208
  <media-hotkey keys="ArrowLeft" action="seekStep" value="-5"></media-hotkey>
110
209
  ```
111
210
 
211
+ In a custom layout, put these elements inside the player’s `<media-container>`. With installed skin source, edit its existing hotkey declarations.
212
+
112
213
  To drop a shortcut, remove its element or add `disabled`. There’s no global “all hotkeys off” switch; omit the elements you don’t need.
113
214
 
114
215
  ### Gestures
115
216
 
116
- `gesturesdisabled` becomes per-element `<media-gesture>` controls. Tap and double-tap behavior — click to toggle play, double-tap to seek or go fullscreen — is declared explicitly:
217
+ Declare each tap or double-tap behavior with a `<media-gesture>` element. For example, declare a tap that toggles playback, or a double-tap that seeks or enters fullscreen:
117
218
 
118
219
  ```html
119
220
  <media-gesture type="tap" action="togglePaused" pointer="mouse" region="center"></media-gesture>
@@ -121,11 +222,13 @@ To drop a shortcut, remove its element or add `disabled`. There’s no global
121
222
  <media-gesture type="doubletap" action="seekStep" value="10" region="right"></media-gesture>
122
223
  ```
123
224
 
225
+ In a custom layout, put these elements inside the player’s `<media-container>`. With installed skin source, edit its existing gesture declarations. A packaged skin already declares its own gestures, so do not add duplicates.
226
+
124
227
  Remove an element or set `disabled` to turn a gesture off.
125
228
 
126
229
  ## Map the elements
127
230
 
128
- Most names match. These are the renames that bite:
231
+ Most names match. Start with these name changes:
129
232
 
130
233
  | Media Chrome | Video.js v10 | Note |
131
234
  | --- | --- | --- |
@@ -133,7 +236,7 @@ Most names match. These are the renames that bite:
133
236
  | `media-control-bar` | `media-controls`, `media-controls-group` | grouping |
134
237
  | `media-time-range` | `media-time-slider` | “range” becomes “slider” |
135
238
  | `media-volume-range` | `media-volume-slider` | “range” becomes “slider” |
136
- | `media-time-display`, `media-duration-display` | `media-time` | one element, set via attribute |
239
+ | `media-time-display`, `media-duration-display` | `media-time` | one element; set its `type` attribute to choose the value |
137
240
  | `media-loading-indicator` | `media-buffering-indicator` | rename |
138
241
  | `media-poster-image` | `media-poster` | rename, and the image source moves — see below |
139
242
  | `media-seek-backward-button`, `media-seek-forward-button` | `media-seek-button` | one element, direction via signed `seconds` |
@@ -150,9 +253,9 @@ Unchanged names: `media-play-button`, `media-mute-button`, `media-fullscreen-but
150
253
 
151
254
  Video.js sliders use `media-slider-track`, `media-slider-fill`, and `media-slider-thumb`. See [`media-time-slider`](../reference/components/time-slider.md) and [`media-volume-slider`](../reference/components/volume-slider.md) for copy-paste markup and CSS.
152
255
 
153
- Media Chrome’s named icon slots do not carry over. Remove attributes such as `slot="play"` and put the icon directly inside the Video.js button. Import `@videojs/html/icons/element` to use `<media-icon>`, as shown in [Map the controller](#map-the-controller). Set `family="minimal"` to use the Minimal skin’s icon designs. You can also use your own text or SVG.
256
+ Media Chrome’s named icon slots do not carry over. Remove attributes such as `slot="play"` and put the icon directly inside the Video.js button. With a bundler, import `@videojs/html/icons/element` to use `<media-icon>`; the CDN video preset already registers it. See the example in [Map the controller](#map-the-controller). Set `family="neutral"` or `family="compat"` to use the Neutral or Compat skin’s icon designs. You can also use your own text or SVG.
154
257
 
155
- `media-poster` is the one rename that changes shape. Where `media-poster-image` took its own `src`, `media-poster` wraps the image you bring:
258
+ `media-poster` also works differently. Where `media-poster-image` took its own `src`, `media-poster` wraps the image you bring:
156
259
 
157
260
  ```html
158
261
  <media-poster>
@@ -162,7 +265,7 @@ Media Chrome’s named icon slots do not carry over. Remove attributes such as `
162
265
 
163
266
  ## Rewrite your styles
164
267
 
165
- Media Chrome reflects state as `media*` attributes such as `mediapaused`; Video.js uses `data-*`.
268
+ Media Chrome reflects state in attributes such as `mediapaused`. Video.js uses `data-*` attributes such as `data-paused`.
166
269
 
167
270
  ```css
168
271
  /* Media Chrome */
@@ -174,26 +277,34 @@ media-play-button[mediapaused] .play-icon { display: inline; }
174
277
  media-play-button[data-paused] .play-icon { display: inline; }
175
278
  ```
176
279
 
177
- Continuous values use CSS custom properties: sliders expose `--media-slider-fill` and `--media-slider-pointer`.
280
+ Values that change continuously, such as slider position, use CSS custom properties: sliders expose `--media-slider-fill` and `--media-slider-pointer`.
178
281
 
179
282
  ### Map theme variables by meaning
180
283
 
181
- Media Chrome and Video.js both use names beginning with `--media-`, but that shared prefix is a naming convention, not a compatibility layer. Keep a variable only when its documented meaning matches.
284
+ Media Chrome and Video.js both use names beginning with `--media-`, but the shared prefix does not make their variables compatible. Keep a variable only when its documented meaning matches.
182
285
 
183
286
  | Media Chrome theme variable | Packaged Video.js skin | Migration |
184
287
  | --- | --- | --- |
185
288
  | `--media-accent-color` or `--media-range-bar-color` | `--media-accent-color` | Closest match for slider fills and accented controls. |
186
- | `--media-primary-color` | no direct equivalent | Often colors every control icon in Media Chrome; Video.js’s accent variable has narrower semantics. |
187
- | `--media-secondary-color` | no direct equivalent | Add the skin source and author this palette role in your CSS. |
289
+ | `--media-primary-color` | no direct equivalent | Often colors every control icon in Media Chrome; Video.js’s accent variable colors fewer parts of the skin. |
290
+ | `--media-secondary-color` | no direct equivalent | Add the skin source and write CSS for this color. |
188
291
  | `--media-control-background` | no direct equivalent | Add the skin source and author the CSS. |
189
292
  | `--media-control-hover-background` | no direct equivalent | Add the skin source and author the CSS. |
190
293
  | `--media-range-track-height` | no direct equivalent | Add the skin source and author the slider CSS. |
191
294
 
192
- The packaged Video.js skins expose `--media-accent-color`, `--media-accent-text-color`, `--media-border-radius`, and `--media-scale-unit` for broad customization. Do not assume another Media Chrome variable will work because its name starts with `--media-`.
295
+ The packaged Video.js skins expose eight custom properties:
296
+
297
+ - Colors: `--media-accent-color`, `--media-accent-text-color`, and `--media-border-color`.
298
+ - Corners: `--media-border-radius`.
299
+ - Interface font: `--media-font-family`.
300
+ - Media and poster fit and position: `--media-object-fit` and `--media-object-position`.
301
+ - Control sizing: `--media-scale-unit`.
302
+
303
+ See [Customize skins](./customize-skins.md#style-a-packaged-skin) for their meanings and defaults. Do not assume another Media Chrome variable will work because its name starts with `--media-`.
193
304
 
194
305
  ## Themes become skins
195
306
 
196
- Media Chrome’s `<template>`-based themes (`media-theme`) become Video.js [skins](./skins.md) and [presets](./presets.md). Start from a preset, then [add its skin source to your project](./customize-skins.md#style-skin-source), rather than authoring a template.
307
+ Media Chrome’s `<template>`-based themes (`media-theme`) become Video.js [skins](./skins.md) and [presets](./presets.md). Start from a preset, then [add its skin source to your project](./customize-skins.md#style-skin-source).
197
308
 
198
309
  Ready-made HTML skins keep their controls inside Shadow DOM. Code outside the skin sees a click as coming from the skin, not the button inside it. Some control events also stay inside the skin. Do not use an outside listener to identify which built-in button was clicked.
199
310
 
@@ -203,61 +314,81 @@ Keep the skin when its CSS variables and content slots cover your changes. Build
203
314
 
204
315
  ## Control the player imperatively
205
316
 
206
- Control everything through the player’s store. Media Chrome had no player object; Video.js gives you one, with an action for every operation — `play`, `togglePaused`, `seek`, `setVolume`, `toggleFullscreen` — so one mental model covers playback and the state the browser doesn’t own, such as fullscreen, captions, and quality.
317
+ Use [store actions](../reference/api/player-store.md) such as `play`, `pause`, `seek`, `setVolume`, `requestFullscreen`, and `exitFullscreen` to control playback and UI state.
207
318
 
208
- Hold a reference to the player element and call actions on its store:
319
+ Call actions on the player element’s store only after `player.store.target` is set, which means the media has attached. Fullscreen requests must run from a user interaction:
209
320
 
210
- ```js
211
- const player = document.querySelector('video-player');
212
-
213
- player.store.state.toggleFullscreen();
321
+ ```html
322
+ <button id="toggle-fullscreen" type="button">Toggle fullscreen</button>
323
+
324
+ <script type="module">
325
+ await customElements.whenDefined('video-player');
326
+ const player = document.querySelector('video-player');
327
+
328
+ document.querySelector('#toggle-fullscreen').addEventListener('click', () => {
329
+ if (!player.store.target) return;
330
+
331
+ if (player.store.isFullscreen) {
332
+ player.store.exitFullscreen();
333
+ } else {
334
+ player.store.requestFullscreen();
335
+ }
336
+ });
337
+ </script>
214
338
  ```
215
339
 
216
- The Media Chrome habit of scripting the media element directly still works, unchanged. The media is a plain child of the player, and Video.js derives player state from the native media events, so `video.play()` or `video.currentTime = 30` never leaves the controls out of sync. The media element also stays the way to swap `src`, replace the media component, and listen for native events.
340
+ Keep native media calls such as `video.play()` and assignments such as `video.currentTime = 30`. Video.js updates player state from media events. Set `src` on the media component to change content, and replace the component when the source needs a different playback engine.
217
341
 
218
342
  ## Known gaps
219
343
 
220
344
  These Media Chrome features have no direct equivalent yet. Several can be approximated; see [Workarounds](#workarounds).
221
345
 
222
- - No configurable `autohide` delay and no `autohideovercontrols` ([#1728](https://github.com/videojs/v10/issues/1728)). Disabling autohide (`autohide="-1"`) is covered by `visibility="always"` on the controls component; see [Workarounds](#workarounds).
346
+ - No configurable `autohide` delay and no `autohideovercontrols` ([#1728](https://github.com/videojs/v10/issues/1728)). To disable autohide (`autohide="-1"`), set `visibility="always"` on the controls component; see [Workarounds](#workarounds).
223
347
  - No `defaultduration` placeholder before the media loads ([#1729](https://github.com/videojs/v10/issues/1729))
224
348
  - Volume and muted preferences are not persisted across sessions, so Media Chrome’s `novolumepref` and `nomutedpref` opt-outs have nothing to opt out of ([#944](https://github.com/videojs/v10/issues/944)). Video.js can choose an initial subtitle track from the locale, but it does not yet remember the viewer’s later language choice ([#1786](https://github.com/videojs/v10/issues/1786)).
225
349
  - No `breakpoints` or container-breakpoint attributes; use CSS container queries instead
226
350
  - No `seektoliveoffset` or `noautoseektolive` controls, and live-edge offset and tolerance aren’t configurable ([#1730](https://github.com/videojs/v10/issues/1730))
227
- - Chapters render and each time-slider segment reflects `data-active`, but there’s no player-level active chapter value, `chapterchange` event, or menu to jump between them ([#1873](https://github.com/videojs/v10/issues/1873))
351
+ - Chapters render and each time-slider segment reflects `data-active`, but there’s no player-level active chapter value, `chapterchange` event, or menu for jumping between chapters ([#1873](https://github.com/videojs/v10/issues/1873))
228
352
  - Cue points are not supported ([#1442](https://github.com/videojs/v10/issues/1442))
229
353
 
230
- Chapters themselves do work. Add a default `<track kind="chapters">` and the packaged skins segment the time slider and show the chapter title on hover, via `media-time-slider-chapters` and `media-time-slider-chapter-title`.
354
+ Chapters still work. Add a `<track kind="chapters">` with the `default` attribute. The packaged skins then split the time slider into chapter segments and show the chapter title on hover, via `media-time-slider-chapters` and `media-time-slider-chapter-title`.
231
355
 
232
356
  ## Workarounds
233
357
 
234
358
  ### Disable autohide (`autohide="-1"`)
235
359
 
236
- Set `visibility="always"` on `media-controls` and the controls stay visible regardless of activity. Packaged skins don’t expose that attribute; to keep a preset skin’s look, [add the skin source to your project](./customize-skins.md#style-skin-source) and set it on the skin’s controls element rather than overriding private selectors.
360
+ Set `visibility="always"` on `media-controls` to keep the controls visible regardless of activity. Packaged skins do not expose this attribute. To keep a packaged skin’s look, [add its source to your project](./customize-skins.md#style-skin-source) and set `visibility="always"` on its controls element.
237
361
 
238
362
  ### Breakpoints
239
363
 
240
- The skin root is an inline-size container named `media-root`, so write responsive styles with container queries instead of `breakpoints` attributes. This is exactly how the built-in skins adapt:
364
+ For custom UI, add a class to your container and another to the controls you want to change. Define and query your own CSS container:
241
365
 
242
366
  ```css
243
- @container media-root (width > 40rem) {
244
- .media-controls { /* wide layout */ }
367
+ .app-player-container {
368
+ container-type: inline-size;
369
+ container-name: app-player;
370
+ }
371
+
372
+ @container app-player (width > 40rem) {
373
+ .app-player-controls { /* your wide layout */ }
245
374
  }
246
375
  ```
247
376
 
377
+ Packaged HTML skin controls are inside Shadow DOM; external selectors cannot reach them. React skin selectors are private. To change a packaged skin’s responsive layout, [add its source to your project](./customize-skins.md#style-skin-source) and edit the container queries in its local styles.
378
+
248
379
  ### Default duration
249
380
 
250
- There’s no player input for a pre-load duration. Use `preload="metadata"`, the default, so the real duration is known almost immediately; only `preload="none"` defers it. If you must defer loading, render your own static placeholder in markup.
381
+ There is no player input for a duration placeholder. Set `preload="metadata"` to request the duration before playback. The duration is available only after the network request and engine loading finish. If you defer loading, render a static placeholder in your own UI.
251
382
 
252
383
  ### Preference persistence
253
384
 
254
- Media Chrome remembers volume, muted state, and language across sessions. Video.js v10 persists nothing, so restore and save the values yourself.
385
+ Media Chrome remembers volume, muted state, and language across sessions. Video.js does not persist these preferences. Follow [Remember user preferences](./user-preferences.md) to restore and save them in your app.
255
386
 
256
- Work against the store directly: `selectVolume(store.state).setVolume(…)` on init, and `store.subscribe(…)` to save on change.
387
+ Actions throw before the media attaches. Wait until `store.target` is set, restore the saved values, and then start saving changes. For captions or quality, also wait for the relevant track or rendition list before restoring a selection.
257
388
 
258
389
  ### Live edge offsets
259
390
 
260
- `seektoliveoffset` and `noautoseektolive` are governed by the playback engine rather than the UI layer, so there’s no attribute to tune them today. The escape hatch is a custom live control built against the `selectLive` and `selectTime` player state.
391
+ `seektoliveoffset` and `noautoseektolive` are governed by the playback engine rather than the UI layer, so there’s no attribute to tune them today. As a workaround, build a custom live control that reads player state through `selectLive` and `selectTime`.
261
392
 
262
393
  ## See also
263
394