@videojs/html 10.0.0-rc.4 → 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 (1020) 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-your-own-component.md +5 -5
  830. package/docs/guides/captions.md +46 -6
  831. package/docs/guides/casting.md +24 -8
  832. package/docs/guides/cdn.md +11 -10
  833. package/docs/guides/content-security-policy.md +29 -5
  834. package/docs/guides/controls.md +25 -10
  835. package/docs/guides/customize-skins.md +2 -2
  836. package/docs/guides/features.md +3 -1
  837. package/docs/guides/fullscreen.md +35 -8
  838. package/docs/guides/installation-cdn.md +5 -5
  839. package/docs/guides/installation-shadcn.md +4 -4
  840. package/docs/guides/installation-svelte.md +5 -5
  841. package/docs/guides/installation-vue.md +5 -5
  842. package/docs/guides/installation.md +5 -5
  843. package/docs/guides/internationalization.md +37 -28
  844. package/docs/guides/keyboard-shortcuts.md +27 -15
  845. package/docs/guides/live-streams.md +51 -13
  846. package/docs/guides/llms.txt +6 -5
  847. package/docs/guides/media-sources.md +8 -5
  848. package/docs/guides/migrate-from-media-chrome.md +182 -51
  849. package/docs/guides/migrate-from-mux-player.md +191 -116
  850. package/docs/guides/migrate-from-plyr.md +171 -81
  851. package/docs/guides/migrate-from-video-js-8.md +255 -190
  852. package/docs/guides/migrate-from-vidstack.md +865 -0
  853. package/docs/guides/mux-data.md +23 -9
  854. package/docs/guides/picture-in-picture.md +22 -16
  855. package/docs/guides/playback-errors.md +10 -7
  856. package/docs/guides/poster.md +32 -11
  857. package/docs/guides/presets.md +15 -5
  858. package/docs/guides/quality.md +44 -5
  859. package/docs/guides/self-hosting.md +5 -5
  860. package/docs/guides/skins.md +6 -4
  861. package/docs/guides/thumbnails.md +24 -14
  862. package/docs/guides/ui-components.md +1 -1
  863. package/docs/guides/user-preferences.md +38 -15
  864. package/docs/guides/v10-roadmap.md +1 -1
  865. package/docs/llms.txt +45 -11
  866. package/docs/reference/api/create-i18n.md +3 -3
  867. package/docs/reference/api/create-translator.md +1 -1
  868. package/docs/reference/api/feature-audio-track.md +1 -1
  869. package/docs/reference/api/feature-controls.md +2 -2
  870. package/docs/reference/api/feature-fullscreen.md +1 -2
  871. package/docs/reference/api/feature-pip.md +3 -4
  872. package/docs/reference/api/feature-playback.md +2 -3
  873. package/docs/reference/api/feature-quality.md +2 -2
  874. package/docs/reference/api/feature-remote-playback.md +1 -1
  875. package/docs/reference/api/feature-source.md +2 -8
  876. package/docs/reference/api/feature-text-tracks.md +6 -8
  877. package/docs/reference/api/feature-volume.md +1 -1
  878. package/docs/reference/api/find-locale-keys.md +32 -0
  879. package/docs/reference/api/get-locale-key.md +32 -0
  880. package/docs/reference/api/html-create-player.md +24 -26
  881. package/docs/reference/api/i18n-controller.md +1 -1
  882. package/docs/reference/api/is-text.md +33 -0
  883. package/docs/reference/api/llms.txt +23 -2
  884. package/docs/reference/api/load-locale.md +36 -0
  885. package/docs/reference/api/media-capabilities.md +255 -0
  886. package/docs/reference/api/player-controller.md +39 -20
  887. package/docs/reference/api/player-store.md +112 -0
  888. package/docs/reference/api/preset-audio.md +116 -0
  889. package/docs/reference/api/preset-background.md +103 -0
  890. package/docs/reference/api/preset-live-audio.md +119 -0
  891. package/docs/reference/api/preset-live-video.md +124 -0
  892. package/docs/reference/api/preset-video.md +123 -0
  893. package/docs/reference/api/register-i18n.md +13 -0
  894. package/docs/reference/api/resolve-adapter-type.md +98 -0
  895. package/docs/reference/api/resolve-mime-type.md +48 -0
  896. package/docs/reference/api/resolve-translation.md +36 -0
  897. package/docs/reference/api/translate-text.md +56 -0
  898. package/docs/reference/api/translation-phrases.md +13 -0
  899. package/docs/reference/api/ui-element.md +296 -0
  900. package/docs/reference/components/audio-compat-skin.md +33 -0
  901. package/docs/reference/components/{audio-minimal-skin.md → audio-neutral-skin.md} +6 -6
  902. package/docs/reference/components/audio-skin.md +2 -2
  903. package/docs/reference/components/background-video-skin.md +1 -1
  904. package/docs/reference/components/background-video.md +1 -1
  905. package/docs/reference/components/captions-button.md +1 -1
  906. package/docs/reference/components/captions-radio-group.md +1 -1
  907. package/docs/reference/components/cloudflare-video.md +1 -1
  908. package/docs/reference/components/controls.md +2 -2
  909. package/docs/reference/components/dash-video.md +1 -1
  910. package/docs/reference/components/fullscreen-button.md +1 -1
  911. package/docs/reference/components/google-cast.md +4 -4
  912. package/docs/reference/components/hls-audio.md +1 -1
  913. package/docs/reference/components/hls-background-video.md +1 -1
  914. package/docs/reference/components/hls-video.md +1 -1
  915. package/docs/reference/components/hlsjs-video.md +2 -2
  916. package/docs/reference/components/icons.md +130 -0
  917. package/docs/reference/components/live-audio-compat-skin.md +35 -0
  918. package/docs/reference/components/{live-audio-minimal-skin.md → live-audio-neutral-skin.md} +6 -6
  919. package/docs/reference/components/live-audio-skin.md +2 -2
  920. package/docs/reference/components/live-video-compat-skin.md +41 -0
  921. package/docs/reference/components/{live-video-minimal-skin.md → live-video-neutral-skin.md} +6 -6
  922. package/docs/reference/components/live-video-skin.md +2 -2
  923. package/docs/reference/components/llms.txt +16 -6
  924. package/docs/reference/components/menu.md +7 -2
  925. package/docs/reference/components/mux-audio.md +2 -2
  926. package/docs/reference/components/mux-background-video.md +1 -1
  927. package/docs/reference/components/mux-data.md +4 -4
  928. package/docs/reference/components/mux-video.md +4 -4
  929. package/docs/reference/components/native-hls-video.md +1 -1
  930. package/docs/reference/components/pip-button.md +2 -2
  931. package/docs/reference/components/player.md +26 -2
  932. package/docs/reference/components/popover.md +6 -8
  933. package/docs/reference/components/shaka-video.md +1 -1
  934. package/docs/reference/components/spotify-audio.md +1 -1
  935. package/docs/reference/components/status-indicator.md +27 -4
  936. package/docs/reference/components/thumbnail.md +1 -1
  937. package/docs/reference/components/tiktok-video.md +1 -1
  938. package/docs/reference/components/twitch-video.md +1 -1
  939. package/docs/reference/components/video-compat-skin.md +45 -0
  940. package/docs/reference/components/{video-minimal-skin.md → video-neutral-skin.md} +6 -6
  941. package/docs/reference/components/video-skin.md +2 -2
  942. package/docs/reference/components/vimeo-video.md +1 -1
  943. package/docs/reference/components/wistia-video.md +1 -1
  944. package/docs/reference/components/youtube-video.md +1 -1
  945. package/package.json +54 -42
  946. package/dist/default/define/audio/minimal-skin.css +0 -2048
  947. package/dist/default/define/audio/minimal-skin.js +0 -6
  948. package/dist/default/define/audio/minimal-skin2.js +0 -4
  949. package/dist/default/define/live-audio/minimal-skin.css +0 -1378
  950. package/dist/default/define/live-audio/minimal-skin.js +0 -6
  951. package/dist/default/define/live-audio/minimal-skin2.js +0 -4
  952. package/dist/default/define/live-video/minimal-skin.css +0 -2311
  953. package/dist/default/define/live-video/minimal-skin.js +0 -6
  954. package/dist/default/define/live-video/minimal-skin2.js +0 -4
  955. package/dist/default/define/video/minimal-skin.css +0 -3232
  956. package/dist/default/define/video/minimal-skin.js +0 -6
  957. package/dist/default/define/video/minimal-skin2.js +0 -4
  958. package/dist/default/extensions/media-extension-element.js +0 -54
  959. package/dist/default/icons/element/minimal/index.js +0 -1
  960. package/dist/default/icons/minimal/index.js +0 -26
  961. package/dist/default/internal/skins/minimal-audio/skin.css +0 -1977
  962. package/dist/default/internal/skins/minimal-live-audio/skin.css +0 -1307
  963. package/dist/default/internal/skins/minimal-live-video/skin.css +0 -2240
  964. package/dist/default/internal/skins/minimal-video/skin.css +0 -3161
  965. package/dist/default/presets/audio/minimal-skin.js +0 -19
  966. package/dist/default/presets/live-audio/minimal-skin.js +0 -19
  967. package/dist/default/presets/live-video/minimal-skin.js +0 -19
  968. package/dist/default/presets/video/minimal-skin.js +0 -19
  969. package/dist/dev/define/audio/minimal-skin.css +0 -2048
  970. package/dist/dev/define/audio/minimal-skin.d.ts +0 -1
  971. package/dist/dev/define/audio/minimal-skin.js +0 -8
  972. package/dist/dev/define/audio/minimal-skin.js.map +0 -1
  973. package/dist/dev/define/audio/minimal-skin2.js +0 -6
  974. package/dist/dev/define/audio/minimal-skin2.js.map +0 -1
  975. package/dist/dev/define/live-audio/minimal-skin.css +0 -1378
  976. package/dist/dev/define/live-audio/minimal-skin.d.ts +0 -1
  977. package/dist/dev/define/live-audio/minimal-skin.js +0 -8
  978. package/dist/dev/define/live-audio/minimal-skin.js.map +0 -1
  979. package/dist/dev/define/live-audio/minimal-skin2.js +0 -6
  980. package/dist/dev/define/live-audio/minimal-skin2.js.map +0 -1
  981. package/dist/dev/define/live-video/minimal-skin.css +0 -2311
  982. package/dist/dev/define/live-video/minimal-skin.d.ts +0 -1
  983. package/dist/dev/define/live-video/minimal-skin.js +0 -8
  984. package/dist/dev/define/live-video/minimal-skin.js.map +0 -1
  985. package/dist/dev/define/live-video/minimal-skin2.js +0 -6
  986. package/dist/dev/define/live-video/minimal-skin2.js.map +0 -1
  987. package/dist/dev/define/video/minimal-skin.css +0 -3232
  988. package/dist/dev/define/video/minimal-skin.d.ts +0 -1
  989. package/dist/dev/define/video/minimal-skin.js +0 -8
  990. package/dist/dev/define/video/minimal-skin.js.map +0 -1
  991. package/dist/dev/define/video/minimal-skin2.js +0 -6
  992. package/dist/dev/define/video/minimal-skin2.js.map +0 -1
  993. package/dist/dev/extensions/media-extension-element.d.ts +0 -29
  994. package/dist/dev/extensions/media-extension-element.js +0 -56
  995. package/dist/dev/extensions/media-extension-element.js.map +0 -1
  996. package/dist/dev/icons/dist/html/minimal/index.d.ts +0 -29
  997. package/dist/dev/icons/element/minimal/index.d.ts +0 -1
  998. package/dist/dev/icons/element/minimal/index.js +0 -1
  999. package/dist/dev/icons/minimal/index.js +0 -26
  1000. package/dist/dev/internal/skins/minimal-audio/skin.css +0 -1977
  1001. package/dist/dev/internal/skins/minimal-live-audio/skin.css +0 -1307
  1002. package/dist/dev/internal/skins/minimal-live-video/skin.css +0 -2240
  1003. package/dist/dev/internal/skins/minimal-video/skin.css +0 -3161
  1004. package/dist/dev/presets/audio/minimal-skin.d.ts +0 -16
  1005. package/dist/dev/presets/audio/minimal-skin.js +0 -21
  1006. package/dist/dev/presets/audio/minimal-skin.js.map +0 -1
  1007. package/dist/dev/presets/live-audio/minimal-skin.d.ts +0 -16
  1008. package/dist/dev/presets/live-audio/minimal-skin.js +0 -21
  1009. package/dist/dev/presets/live-audio/minimal-skin.js.map +0 -1
  1010. package/dist/dev/presets/live-video/minimal-skin.d.ts +0 -16
  1011. package/dist/dev/presets/live-video/minimal-skin.js +0 -21
  1012. package/dist/dev/presets/live-video/minimal-skin.js.map +0 -1
  1013. package/dist/dev/presets/video/minimal-skin.d.ts +0 -16
  1014. package/dist/dev/presets/video/minimal-skin.js +0 -21
  1015. package/dist/dev/presets/video/minimal-skin.js.map +0 -1
  1016. /package/dist/dev/define/audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1017. /package/dist/dev/define/live-audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1018. /package/dist/dev/define/live-video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1019. /package/dist/dev/define/video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1020. /package/dist/dev/icons/dist/element/{minimal → compat}/index.d.ts +0 -0
@@ -24,7 +24,7 @@ For components you add yourself, select them by their custom element name. Use t
24
24
 
25
25
  ### Add icons
26
26
 
27
- Import `@videojs/html/icons/element` once in your `app.ts` to register `<media-icon>`. Choose an icon with `name`. Set `family="minimal"` to use the Minimal skin’s icon designs. You can also use your own text or SVG.
27
+ Import `@videojs/html/icons/element` once in your `app.ts` to register `<media-icon>`. Choose an icon with `name`. 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.
28
28
 
29
29
  ```ts
30
30
  import '@videojs/html/icons/element';
@@ -1,8 +1,8 @@
1
1
  # Remember user preferences
2
2
 
3
- Persist volume, caption, and quality preferences across sessions by subscribing to player state.
3
+ Save volume and caption preferences, restore them after loading, and adapt the pattern for quality selection.
4
4
 
5
- The player doesn’t persist preferences itself today. Player state gives you everything needed to wire persistence to the storage you choose — local storage, your backend, or per-profile settings.
5
+ Save preferences from player state to local storage or your backend. Video.js leaves storage and per-profile settings to your application.
6
6
 
7
7
  ## Recommended approach
8
8
 
@@ -16,16 +16,18 @@ Subscribe to the state you want to remember, write it to storage when it changes
16
16
  </video-player>
17
17
  <script type="module">
18
18
  import '@videojs/html/video/player';
19
+ import '@videojs/html/ui/container';
19
20
  import { selectVolume } from '@videojs/html';
20
21
 
21
22
  const STORAGE_KEY = 'player:volume';
22
23
  const player = document.querySelector('video-player');
23
24
  const store = player.store;
24
25
 
25
- // Local storage can be unavailable (private modes), so guard reads and writes.
26
+ // Guard storage access so playback still works when storage is blocked.
26
27
  function readSaved() {
27
28
  try {
28
- return JSON.parse(localStorage.getItem(STORAGE_KEY) ?? 'null');
29
+ const value = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? 'null');
30
+ return Number.isFinite(value?.volume) && typeof value?.muted === 'boolean' ? value : null;
29
31
  } catch {
30
32
  return null;
31
33
  }
@@ -46,9 +48,8 @@ Subscribe to the state you want to remember, write it to storage when it changes
46
48
  if (!store.target) return false;
47
49
  const v = selectVolume(store.state);
48
50
  v?.setVolume(saved.volume);
49
- // setVolume above zero unmutes, so mute again if that's the saved preference.
50
- // At volume zero the player already counts as muted, and toggling would unmute.
51
- if (v && saved.muted && saved.volume > 0) v.toggleMuted();
51
+ // Apply saved mute after setVolume, which unmutes above zero.
52
+ if (saved.muted) v?.setMuted(true);
52
53
  return true;
53
54
  };
54
55
  if (!restore()) {
@@ -72,26 +73,48 @@ Subscribe to the state you want to remember, write it to storage when it changes
72
73
  ## How it works
73
74
 
74
75
  - Player state is the single source of truth: it already reflects every change, whatever caused it — your UI, keyboard shortcuts, native controls, or scripts.
75
- - `store.subscribe(callback)` fires on any state change. Notifications are batched per microtask, so rapid changes (a volume drag) produce one callback per tick, which keeps storage writes cheap. There is no per-key subscription on the store: read the state and diff the slice you care about.
76
+ - `store.subscribe(callback)` fires on any state change. The store batches notifications per microtask, so changes made in the same tick produce one callback. There is no per-key subscription on the store: read the state and diff the slice you care about.
76
77
  - Feature selectors exported by `@videojs/html` (`selectVolume`, `selectTextTrack`, `selectQuality`, and the rest) read a feature’s slice from any store, returning `undefined` when the feature isn’t present.
77
- - Restore through the feature actions (`setVolume`, `toggleMuted`, `selectSubtitlesTrack`, `selectVideoRendition`) rather than poking the media element, so state and UI stay consistent.
78
+ - Restore through the feature actions (`setVolume`, `setMuted`, `selectSubtitlesTrack`, `selectVideoRendition`) rather than poking the media element, so state and UI stay consistent.
78
79
  - Actions need an attached media target: calling one before the store attaches throws. Check `store.target` and defer the restore until it is set, as the examples do.
79
80
 
80
81
  ## Availability and constraints
81
82
 
82
- - Nothing persists by default: volume resets to the media element’s value, captions to the track markup, quality to automatic, on every load.
83
- - `setVolume` clamps to 0–1 and unmutes when setting a value above zero; restore volume first, then toggle `muted` back on when the saved preference is muted, as the examples do. Skip the toggle when the saved volume is zero: the player treats volume zero as muted, so toggling would unmute and raise the volume. Don’t compare against store state right after calling an action: notifications batch per microtask, so that state is still stale.
84
- - Restore track and quality selections after the media exposes them: track and rendition lists arrive when the media loads, not at player creation. Subscribe and apply when the saved entry appears in the list.
85
- - Programmatic volume control is unavailable on some platforms (after attach, iOS Safari reports `volumeAvailability: 'unsupported'`); volume persistence quietly does nothing there.
83
+ - Video.js does not write preferences to storage. Initial values come from the media element, track markup, and playback engine.
84
+ - `setVolume` clamps to 0–1 and unmutes above zero. Restore volume first, then call `setMuted(true)` if the saved preference is muted. Calling `setMuted(false)` at zero raises the volume to 0.25.
85
+ - The volume examples leave autoplay off. For muted autoplay, defer volume restoration until a user action: restoring a positive volume unmutes the media and can interrupt autoplay, even if you immediately mute it again.
86
+ - `setVolume` and `setMuted` update `store.state` immediately. A React hook’s selected value updates on the next render.
87
+ - Track and rendition lists arrive when the media loads, not when the player is created. Subscribe and restore a saved selection when its entry appears in the list.
88
+ - On iOS Safari, `volumeAvailability` is `'unsupported'` after attachment. Restoring the volume level has no effect there; mute can still be restored.
86
89
  - Local storage is per-origin and can be unavailable (private modes, embedded contexts); guard reads and writes accordingly.
87
90
 
88
91
  ## Common variations
89
92
 
90
93
  ### Persist caption preference
91
94
 
92
- Save the showing track’s `language` (not its generated id, which can change between sources), or `'off'` when the user turns captions off. Restoring is two phases: while the media loads, assert the saved preference whenever the track modes drift from it, because browsers can auto-enable a track of their own during loading. Once the media can play (`canPlay`), treat every change as the user’s choice and save it. A restore that re-runs forever would keep overriding the user; one that runs only once can get overridden by the browser.
95
+ Save the showing track’s `language` because track ids can change between sources. Save `'off'` when captions are off. Restore once when the first caption or subtitle list arrives, then save later selection changes. Do not wait for `canPlay`. With limited preloading, `canPlay` can stay `false` until playback starts. Repeated restoration would override a selection the user already made.
93
96
 
94
- Apply the same pattern with `selectTextTrack(store.state)` inside `store.subscribe`: until `canPlay` is true, re-apply the saved preference by passing the matching track’s `id` (or `'off'`) to `selectSubtitlesTrack` whenever the modes drift; afterward, save the showing track’s `language`, or `'off'` when none is showing, on every change.
97
+ If the saved language is absent from that first list, leave the stored preference intact until the selection changes. This example does not retry restoration when more tracks arrive; adapt the initial loading step if your engine exposes languages in several batches. Browser selection changes after restoration are saved just like user changes.
98
+
99
+ Apply the same pattern in a store subscription:
100
+
101
+ 1. Inside `store.subscribe`, read the track state with `selectTextTrack(store.state)`.
102
+ 2. When the first caption or subtitle list arrives, record the current selection and mark restoration complete. If the saved language is present, call `selectSubtitlesTrack` with that track’s `id`. If the saved value is `'off'`, pass `null`. Do not save during this first pass.
103
+ 3. After that, save selection changes. If the saved language was absent from the first list, keep the stored preference until the selection changes.
104
+ 4. Guard `localStorage` reads and writes, and restart restoration for each new source.
105
+
106
+ Omit `default` from the tracks when persisting caption preferences. A default track can turn on after restoration, causing the subscription to save its language over a stored `'off'` preference.
107
+
108
+ ### Remember a quality selection
109
+
110
+ Adapt the same restore-then-save pattern to the [quality feature](../reference/api/feature-quality.md):
111
+
112
+ 1. Save `'auto'` or the resolution of the selected entry in `videoRenditionList`. Read `selected`; `activeVideoRendition` can change during automatic playback and does not identify a manual preference.
113
+ 2. Wait for the next source’s rendition list, then match the saved resolution to an entry. Rendition ids belong to that source, so do not reuse a saved id across sources.
114
+ 3. Call `selectVideoRendition` with the matching entry’s id, or `'auto'` if no match exists. Every entry in `videoRenditionList` has an id; use it directly.
115
+ 4. Do not save until restoration finishes; otherwise the source’s default selection overwrites the saved choice. After that, save each change the user makes.
116
+
117
+ To remember a data-saving limit while preserving automatic switching, persist `maxAutoResolution` and pass it on the next source. It needs the hls.js engine; native HLS playback ignores it. See [Options Video.js normalizes](./media-sources.md#options-videojs-normalizes).
95
118
 
96
119
  ### Persist to your backend
97
120
 
@@ -51,7 +51,7 @@ Feature-complete release ahead of GA.
51
51
 
52
52
  - Core feature parity with v8 in terms of fundamentals
53
53
  - Feature parity with Media Chrome, Vidstack, Plyr, and Mux Player
54
- - Community encouraged to begin full reintegration projects, following the migration guides for [Video.js 8](./migrate-from-video-js-8.md), [Mux Player](./migrate-from-mux-player.md), [Plyr](./migrate-from-plyr.md), and [Media Chrome](./migrate-from-media-chrome.md)
54
+ - Community encouraged to begin full reintegration projects, following the migration guides for [Video.js 8](./migrate-from-video-js-8.md), [Mux Player](./migrate-from-mux-player.md), [Plyr](./migrate-from-plyr.md), [Media Chrome](./migrate-from-media-chrome.md), and [Vidstack](./migrate-from-vidstack.md)
55
55
  - Plugin ecosystem migration begins in earnest
56
56
 
57
57
  ### Engine development focus
package/docs/llms.txt CHANGED
@@ -1,11 +1,13 @@
1
1
  # Video.js v10 — HTML Documentation
2
2
 
3
- > Bundled with `@videojs/html` v10.0.0-rc.4. Links are relative paths to files in this directory.
3
+ > Bundled with `@videojs/html` v10.0.0-rc.5. Links are relative paths to files in this directory.
4
4
 
5
5
  > Install the [Video.js skill](https://github.com/videojs/skills) to help AI coding agents find version-matched pages from this index.
6
6
 
7
7
  > The `video.js` package on npm is still Video.js 8. Video.js 10 ships as `@videojs/html`; to move existing Video.js 8 code, read https://videojs.org/docs/framework/html/guides/migrate-from-video-js-8.md
8
8
 
9
+ > Vidstack Player is in security-only maintenance. To move existing `vidstack` code, read https://videojs.org/docs/framework/html/guides/migrate-from-vidstack.md
10
+
9
11
  > Print version-matched installation options without changing files: `npx @videojs/cli agents init`, then pass `--framework html` with the other choices. Installation guide index: https://videojs.org/docs/guides/installation.md
10
12
 
11
13
  ## Guides
@@ -27,7 +29,7 @@ Install Video.js, customize a skin, understand its main pieces, check browser an
27
29
  - [Architecture](./guides/architecture.md): How Video.js players are structured — state, UI, media, and extensions
28
30
  - [Customize skins](./guides/customize-skins.md): Style a packaged Video.js skin or add its source to change controls, layout, styles, and interactions
29
31
  - [Why Video.js?](./guides/why-videojs.md): The open-source video player for React and HTML. Lightweight, accessible components built for performance and streaming.
30
- - [Browser support](./guides/browser-support.md): Browsers and rendering environments supported by Video.js 10, and what the stylesheets need from them
32
+ - [Browser support](./guides/browser-support.md): Browsers and rendering environments supported by Video.js 10, and how the packaged skins reach them
31
33
  - [Build with AI](./guides/build-with-ai.md): Install the Video.js skill and give AI coding agents version-matched docs for building and migrating players
32
34
  - [v10 Roadmap](./guides/v10-roadmap.md): Timeline and milestones for Video.js v10 rebuild and the future of v8
33
35
  - [Contribute to Video.js](https://github.com/videojs/v10/blob/main/CONTRIBUTING.md)
@@ -76,7 +78,7 @@ Guides for one player capability each: the recommended setup, how it works, brow
76
78
  - [Show timeline thumbnail previews](./guides/thumbnails.md): Preview frames along the timeline while the user scrubs, powered by a storyboard track.
77
79
  - [Cast to AirPlay and Chromecast](./guides/casting.md): Send playback to AirPlay and Google Cast devices, with availability detection and connection state.
78
80
  - [Handle playback errors](./guides/playback-errors.md): Display playback failures, report them, and choose a useful recovery action.
79
- - [Remember user preferences](./guides/user-preferences.md): Persist volume, caption, and quality preferences across sessions by subscribing to player state.
81
+ - [Remember user preferences](./guides/user-preferences.md): Save volume and caption preferences, restore them after loading, and adapt the pattern for quality selection.
80
82
  - [Add a background video](./guides/background-video.md): Add an accessible background video from an MP4, WebM, HLS, or Mux source
81
83
  - [Internationalize the player](./guides/internationalization.md): Translate player labels and announcements: shipped locale packs, custom translations, runtime switching, and server rendering.
82
84
  - [Monitor playback with Mux Data](./guides/mux-data.md): Measure startup time, rebuffering, failures, and watch time by adding the Mux Data extension to a player
@@ -86,9 +88,10 @@ Guides for one player capability each: the recommended setup, how it works, brow
86
88
  Guides for moving an existing player integration to Video.js v10, one per player you might be coming from.
87
89
 
88
90
  - [Migrate from Video.js 8](./guides/migrate-from-video-js-8.md): Move a Video.js 8 integration to v10, mapping the options object, techs, plugins, and player API onto composed components
89
- - [Migrate from Mux Player](./guides/migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10, splitting one element into a player, a media, and a skin
91
+ - [Migrate from Mux Player](./guides/migrate-from-mux-player.md): Move a Mux Player embed to Video.js v10 using a player, media component, skin, and analytics extension
90
92
  - [Migrate from Plyr](./guides/migrate-from-plyr.md): Move an existing Plyr integration to Video.js v10, mapping Plyr options and its instance API onto components and player state
91
- - [Migrate from Media Chrome](./guides/migrate-from-media-chrome.md): Map Media Chrome's controller, elements, and attributes onto Video.js v10, where most of the work is renaming and reshaping rather than rewriting
93
+ - [Migrate from Media Chrome](./guides/migrate-from-media-chrome.md): Move a Media Chrome player to Video.js v10, mapping its controller, controls, styles, and imperative calls
94
+ - [Migrate from Vidstack](./guides/migrate-from-vidstack.md): Move a Vidstack Player integration to Video.js 10, mapping the player, providers, layouts, and media store onto composed components
92
95
 
93
96
  ## Components
94
97
 
@@ -109,13 +112,17 @@ API reference for the components that establish a player and lay out its interfa
109
112
  API reference for the packaged skins each preset ships.
110
113
 
111
114
  - [video-skin](./reference/components/video-skin.md): The video preset's default skin with the modern, frosted look
112
- - [video-minimal-skin](./reference/components/video-minimal-skin.md): The video preset's visually lighter skin, closer to a classic control bar
115
+ - [video-neutral-skin](./reference/components/video-neutral-skin.md): The video preset's visually lighter skin, closer to a classic control bar
116
+ - [video-compat-skin](./reference/components/video-compat-skin.md): A video skin designed for broader browser compatibility
113
117
  - [audio-skin](./reference/components/audio-skin.md): The audio preset's default skin with the modern, frosted look
114
- - [audio-minimal-skin](./reference/components/audio-minimal-skin.md): The audio preset's visually lighter skin, closer to a classic control bar
118
+ - [audio-neutral-skin](./reference/components/audio-neutral-skin.md): The audio preset's visually lighter skin, closer to a classic control bar
119
+ - [audio-compat-skin](./reference/components/audio-compat-skin.md): An audio skin designed for broader browser compatibility
115
120
  - [live-video-skin](./reference/components/live-video-skin.md): The live video preset's default skin, which swaps time controls for a Live button
116
- - [live-video-minimal-skin](./reference/components/live-video-minimal-skin.md): The live video preset's visually lighter skin, closer to a classic control bar
121
+ - [live-video-neutral-skin](./reference/components/live-video-neutral-skin.md): The live video preset's visually lighter skin, closer to a classic control bar
122
+ - [live-video-compat-skin](./reference/components/live-video-compat-skin.md): A live video skin designed for broader browser compatibility
117
123
  - [live-audio-skin](./reference/components/live-audio-skin.md): The live audio preset's default skin, which swaps time controls for a Live button
118
- - [live-audio-minimal-skin](./reference/components/live-audio-minimal-skin.md): The live audio preset's visually lighter skin, closer to a classic control bar
124
+ - [live-audio-neutral-skin](./reference/components/live-audio-neutral-skin.md): The live audio preset's visually lighter skin, closer to a classic control bar
125
+ - [live-audio-compat-skin](./reference/components/live-audio-compat-skin.md): A live audio skin designed for broader browser compatibility
119
126
  - [background-video-skin](./reference/components/background-video-skin.md): The background preset's chrome-less skin for ambient video
120
127
 
121
128
  ### Media
@@ -215,9 +222,15 @@ API reference for the non-visual components that add gestures, hotkeys, and anno
215
222
  - [media-hotkey](./reference/components/hotkey.md): Register a keyboard shortcut that invokes a player action
216
223
  - [media-status-announcer](./reference/components/status-announcer.md): Announce player state changes through a persistent status live region
217
224
 
225
+ ### Icons
226
+
227
+ API reference for the icon sets the skins use, available for your own controls.
228
+
229
+ - [Icons](./reference/components/icons.md): The SVG icon sets used by the packaged skins, as React components, SVG strings, and the media-icon element
230
+
218
231
  ## API
219
232
 
220
- API reference for the player factory, store controllers, features, translation tools, and utilities.
233
+ API reference for the player factory, presets, store controllers, features, translation tools, and utilities.
221
234
 
222
235
  Section index: [reference/api/llms.txt](./reference/api/llms.txt).
223
236
 
@@ -227,11 +240,24 @@ API reference for creating a player and reaching it and its container from your
227
240
 
228
241
  - [createPlayer](./reference/api/html-create-player.md): Factory function that creates a typed player element and controller for HTML custom elements
229
242
  - [PlayerController](./reference/api/player-controller.md): Reactive controller for accessing player store state in HTML custom elements
243
+ - [UIElement](./reference/api/ui-element.md): Base class for custom elements that read player state through reactive controllers
244
+ - [Media capability guards](./reference/api/media-capabilities.md): Type guards that narrow a Media object to the capabilities it supports
245
+
246
+ ### Presets
247
+
248
+ API reference for the presets: each bundles a player, feature bundle, skins, and media for one use case.
249
+
250
+ - [Video preset](./reference/api/preset-video.md): The general-purpose video preset — a player, feature bundle, skins, and media for on-demand video
251
+ - [Audio preset](./reference/api/preset-audio.md): The audio-only preset — a player, feature bundle, skins, and media for on-demand audio
252
+ - [Live video preset](./reference/api/preset-live-video.md): The live video preset — a player, feature bundle, skins, and media for live video streams
253
+ - [Live audio preset](./reference/api/preset-live-audio.md): The live audio preset — a player, feature bundle, skins, and media for live audio streams
254
+ - [Background preset](./reference/api/preset-background.md): The background video preset — a player, feature bundle, skin, and media for ambient video with no controls
230
255
 
231
256
  ### Store
232
257
 
233
258
  API reference for reading and subscribing to player state: selectors and the store controllers.
234
259
 
260
+ - [Player store](./reference/api/player-store.md): Every state field and action on the player store, grouped by the feature that adds it
235
261
  - [createSelector](./reference/api/create-selector.md): Create a type-safe selector for a store slice's state
236
262
  - [StoreController](./reference/api/store-controller.md): Reactive controller for subscribing to store state in HTML custom elements
237
263
  - [SnapshotController](./reference/api/snapshot-controller.md): Reactive controller for subscribing to a State container in HTML custom elements
@@ -273,12 +299,20 @@ API reference for translating the player: the i18n elements, controller, and the
273
299
  - [hasRegisteredLocale](./reference/api/has-registered-locale.md): Check whether an exact locale tag exists in the global i18n registry
274
300
  - [onI18nRegistryChange](./reference/api/on-i18n-registry-change.md): Subscribe to global i18n registry mutations
275
301
  - [createTranslator](./reference/api/create-translator.md): Build a typed translator from a resolved translation map
302
+ - [translateText](./reference/api/translate-text.md): Translate a text descriptor, or fall back to its English default
303
+ - [resolveTranslation](./reference/api/resolve-translation.md): Translate a key with the params its English default requires
304
+ - [isText](./reference/api/is-text.md): Check whether a value is a text descriptor
305
+ - [loadLocale](./reference/api/load-locale.md): Lazy-load the built-in translation pack for a locale
306
+ - [getLocaleKey](./reference/api/get-locale-key.md): Normalize a locale tag to the key the i18n registry stores it under
307
+ - [findLocaleKeys](./reference/api/find-locale-keys.md): List the locale tags a lookup falls back through, most specific first
276
308
  - [I18nController](./reference/api/i18n-controller.md): Reactive controller for consuming translator and locale values from an HTML i18n context
277
309
 
278
310
  ### Utils
279
311
 
280
- Lower-level building blocks for custom components: the keyboard shortcut controller.
312
+ Lower-level building blocks: adapter and MIME type resolution, and the keyboard shortcut controller for custom components.
281
313
 
314
+ - [resolveAdapterType](./reference/api/resolve-adapter-type.md): Resolve which type of adapter plays a source URL, from its host, MIME type, or file extension
315
+ - [resolveMimeType](./reference/api/resolve-mime-type.md): Resolve a source's MIME type from its file extension
282
316
  - [AriaKeyShortcutsController](./reference/api/aria-key-shortcuts-controller.md): Reactive controller that exposes registered hotkey shortcut metadata
283
317
 
284
318
  ### Error codes
@@ -11,13 +11,13 @@ import { createI18n } from "@videojs/html/i18n";
11
11
  `createI18n` returns a context-bound `ProviderMixin`, `TextMixin`, and `I18nController` for custom elements. Use it when you need a custom locale loader or custom i18n elements. Most apps use `<media-i18n>` and `<media-text>` from `@videojs/html/i18n`.
12
12
 
13
13
  ```ts
14
- import { ReactiveElement } from '@videojs/element';
14
+ import { UIElement } from '@videojs/html';
15
15
  import { createI18n } from '@videojs/html/i18n';
16
16
 
17
17
  const { ProviderMixin, TextMixin } = createI18n();
18
18
 
19
- class LocalizedRoot extends ProviderMixin(ReactiveElement) {}
20
- class LocalizedText extends TextMixin(ReactiveElement) {}
19
+ class LocalizedRoot extends ProviderMixin(UIElement) {}
20
+ class LocalizedText extends TextMixin(UIElement) {}
21
21
  ```
22
22
 
23
23
  ## API Reference
@@ -8,7 +8,7 @@ Build a typed translator from a resolved translation map
8
8
  import { createTranslator } from "@videojs/html/i18n";
9
9
  ```
10
10
 
11
- `createTranslator` wraps the flat map returned by `getI18nTranslations` and returns a typed translator. Providers call this internally after merging registry, lazy-loaded built-in packs, browser-translated fallback copy, and provider layers. Use it directly for custom UI outside built-in controls.
11
+ `createTranslator` wraps the flat map returned by `getI18nTranslations` and returns a typed `Translator` function. Providers call this internally after merging registry, lazy-loaded built-in packs, browser-translated fallback copy, and provider layers. Use it directly for custom UI outside built-in controls.
12
12
 
13
13
  ```ts
14
14
  import { createTranslator, getI18nTranslations } from '@videojs/html/i18n';
@@ -24,7 +24,7 @@ The `videoFeatures` [feature bundle](../../guides/presets.md) includes this feat
24
24
 
25
25
  | Action | Type | Description |
26
26
  | --- | --- | --- |
27
- | `selectAudioTrack` | `(value: string) => void` | Select an audio track by menu value. |
27
+ | `selectAudioTrack` | `(id: string) => void` | Select an audio track by `id`. |
28
28
 
29
29
  ### Selector
30
30
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  User activity and controls visibility state for the player store
4
4
 
5
- Read-only — tracks user activity for showing and hiding controls.
5
+ Tracks user activity for showing and hiding controls, with actions to toggle visibility and keep controls shown.
6
6
 
7
7
  ## Import
8
8
 
@@ -26,7 +26,7 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
26
26
  | Action | Type | Description |
27
27
  | --- | --- | --- |
28
28
  | `requestControlsLock` | `() => (() => void)` | Keep controls visible during a sustained interaction. The returned function releases the lock. Multiple concurrent locks are supported and each release function is idempotent. |
29
- | `toggleControls` | `() => boolean` | Toggle controls visibility. Returns the new `controlsVisible` value. |
29
+ | `toggleControls` | `(forceShow?: boolean) => boolean` | Toggle controls visibility, or force it with `forceShow`. Returns the new `controlsVisible` value. |
30
30
 
31
31
  ### Selector
32
32
 
@@ -18,7 +18,7 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
18
18
 
19
19
  | Property | Type | Description |
20
20
  | --- | --- | --- |
21
- | `fullscreen` | `boolean` | Whether fullscreen mode is currently active. |
21
+ | `isFullscreen` | `boolean` | Whether fullscreen mode is currently active. |
22
22
  | `fullscreenAvailability` | `'available' \| 'unavailable' \| 'unsupported'` | Whether fullscreen can be requested on this platform. |
23
23
 
24
24
  ### Actions
@@ -27,7 +27,6 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
27
27
  | --- | --- | --- |
28
28
  | `requestFullscreen` | `() => Promise<void>` | Enter fullscreen mode. Tries container first, falls back to media element. |
29
29
  | `exitFullscreen` | `() => Promise<void>` | Exit fullscreen mode. |
30
- | `toggleFullscreen` | `() => Promise<void>` | Toggle fullscreen mode. |
31
30
 
32
31
  ### Selector
33
32
 
@@ -18,16 +18,15 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
18
18
 
19
19
  | Property | Type | Description |
20
20
  | --- | --- | --- |
21
- | `pip` | `boolean` | Whether picture-in-picture mode is currently active. |
22
- | `pipAvailability` | `'available' \| 'unavailable' \| 'unsupported'` | Whether picture-in-picture can be requested on this platform. |
21
+ | `isPictureInPicture` | `boolean` | Whether picture-in-picture mode is currently active. |
22
+ | `pictureInPictureAvailability` | `'available' \| 'unavailable' \| 'unsupported'` | Whether picture-in-picture can be requested on this platform. |
23
23
 
24
24
  ### Actions
25
25
 
26
26
  | Action | Type | Description |
27
27
  | --- | --- | --- |
28
- | `requestPictureInPicture` | `() => Promise<void>` | Enter picture-in-picture mode. |
28
+ | `requestPictureInPicture` | `() => Promise<void>` | Enter picture-in-picture mode, exiting fullscreen first. Rejects before metadata is loaded. |
29
29
  | `exitPictureInPicture` | `() => Promise<void>` | Exit picture-in-picture mode. |
30
- | `togglePictureInPicture` | `() => Promise<void>` | Toggle picture-in-picture mode. |
31
30
 
32
31
  ### Selector
33
32
 
@@ -27,9 +27,8 @@ The `audioFeatures`, `liveAudioFeatures`, `liveVideoFeatures`, and `videoFeature
27
27
 
28
28
  | Action | Type | Description |
29
29
  | --- | --- | --- |
30
- | `play` | `() => Promise<void>` | Start playback. |
31
- | `pause` | `() => void` | Pause playback. |
32
- | `togglePaused` | `() => boolean` | Toggle play/pause. Returns `true` if playback started. |
30
+ | `play` | `() => Promise<void>` | Start playback. Updates `paused` immediately when the media starts. |
31
+ | `pause` | `() => void` | Pause playback. Updates `paused` immediately. |
33
32
 
34
33
  ### Selector
35
34
 
@@ -19,13 +19,13 @@ The `videoFeatures` [feature bundle](../../guides/presets.md) includes this feat
19
19
  | Property | Type | Description |
20
20
  | --- | --- | --- |
21
21
  | `videoRenditionList` | `MediaVideoRendition[]` | Video renditions available for manual quality selection. |
22
- | `activeVideoRendition` | `{ id?: string; width?: number; height?: number; bitrate?: number; frameRate?: number; codec?: string; selected: boolean } \| null` | Video rendition currently playing, including when automatic ABR is selected. |
22
+ | `activeVideoRendition` | `{ id: string; width?: number; height?: number; bitrate?: number; frameRate?: number; codec?: string; selected: boolean } \| null` | Video rendition currently playing, including when automatic ABR is selected. |
23
23
 
24
24
  ### Actions
25
25
 
26
26
  | Action | Type | Description |
27
27
  | --- | --- | --- |
28
- | `selectVideoRendition` | `(value: string) => void` | Select a video rendition by menu value, or automatic ABR with `"auto"`. |
28
+ | `selectVideoRendition` | `(id: string) => void` | Select a video rendition by `id`, or automatic ABR with `"auto"`. |
29
29
 
30
30
  ### Selector
31
31
 
@@ -27,7 +27,7 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
27
27
 
28
28
  | Action | Type | Description |
29
29
  | --- | --- | --- |
30
- | `toggleRemotePlayback` | `() => Promise<void>` | Toggle the remote playback connection. |
30
+ | `promptRemotePlayback` | `() => Promise<void>` | Prompt the user to pick a remote playback device. Exits fullscreen first when connecting. |
31
31
 
32
32
  ### Selector
33
33
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Media source state and actions for the player store
4
4
 
5
- Tracks the current media source and readiness.
5
+ Tracks the loaded media resource and how much of it is ready. To change the source, set `src` or `source` on the media element, which also carries type and engine configuration.
6
6
 
7
7
  ## Import
8
8
 
@@ -18,15 +18,9 @@ The `audioFeatures`, `liveAudioFeatures`, `liveVideoFeatures`, and `videoFeature
18
18
 
19
19
  | Property | Type | Description |
20
20
  | --- | --- | --- |
21
- | `source` | `string \| null` | Current media source URL (null if none). |
21
+ | `currentSrc` | `string` | Current media source URL (empty string if none). |
22
22
  | `canPlay` | `boolean` | Whether enough data is loaded to begin playback. |
23
23
 
24
- ### Actions
25
-
26
- | Action | Type | Description |
27
- | --- | --- | --- |
28
- | `loadSource` | `(src: string) => string` | Load a new media source. Returns the new source URL. |
29
-
30
24
  ### Selector
31
25
 
32
26
  Pass `selectSource` to [`PlayerController`](./player-controller.md) to subscribe to source state. Returns `undefined` if the source feature is not configured.
@@ -6,7 +6,7 @@ Manages subtitles, captions, chapters, and thumbnail tracks.
6
6
 
7
7
  A default `kind="chapters"` track can also divide the [time slider](../components/time-slider.md) into chapter ranges and label the chapter at the current interaction position.
8
8
 
9
- When a thumbnail track is present, `thumbnailTrackCrossOrigin` reports the media element’s CORS mode, or `null` when the media is not CORS-enabled. [Thumbnail](../components/thumbnail.md) reads it to fetch sprite sheets the same way the browser fetched the track.
9
+ `thumbnailsTrack` is the first `kind="metadata"` track labeled `thumbnails`, or `null` when there is none. Its `crossOrigin` reports the media element’s CORS mode, or `null` when the media is not CORS-enabled. [Thumbnail](../components/thumbnail.md) reads it to fetch sprite sheets the same way the browser fetched the track.
10
10
 
11
11
  ## Import
12
12
 
@@ -22,19 +22,17 @@ The `liveVideoFeatures` and `videoFeatures` [feature bundles](../../guides/prese
22
22
 
23
23
  | Property | Type | Description |
24
24
  | --- | --- | --- |
25
- | `chaptersCues` | `MediaTextCue[]` | Cues from the first `kind="chapters"` track. |
26
- | `thumbnailCues` | `MediaTextCue[]` | Cues from the first `kind="metadata" label="thumbnails"` track. |
27
- | `thumbnailTrackSrc` | `string \| null` | The `<track>` element's `src` for resolving relative cue text URLs. |
28
- | `thumbnailTrackCrossOrigin` | `'anonymous' \| 'use-credentials' \| null` | The media element's CORS mode, mapped through the CORS-settings-attribute rules, or `null` when it is not in CORS mode. Thumbnail UI fetches the sprite sheets the cues point at with this mode, since a cross-origin `<track>` only loads at all when the media element is CORS-enabled. |
29
25
  | `textTrackList` | `MediaTextTrack[]` | All text tracks available on the media element. |
30
- | `subtitlesShowing` | `boolean` | Whether captions/subtitles are currently enabled. |
26
+ | `subtitlesShowing` | `boolean` | Whether a captions/subtitles track is showing. |
27
+ | `chaptersCues` | `MediaTextCue[]` | Cues from the first `kind="chapters"` track, with cue ends clamped to a finite media duration. |
28
+ | `thumbnailsTrack` | `{ cues: MediaTextCue[]; src: string \| null; crossOrigin: 'anonymous' \| 'use-credentials' \| null } \| null` | The first thumbnails track, or `null` when there is none. |
31
29
 
32
30
  ### Actions
33
31
 
34
32
  | Action | Type | Description |
35
33
  | --- | --- | --- |
36
- | `toggleSubtitles` | `(forceShow?: boolean) => boolean` | Toggle captions/subtitles visibility. Showing restores the track that was last showing, or the first caption/subtitle track when there is none. Returns the new enabled value. |
37
- | `selectSubtitlesTrack` | `(value: string) => void` | Select a captions/subtitles track by menu value, or disable with `"off"`. |
34
+ | `toggleSubtitles` | `(forceShow?: boolean) => boolean` | Toggle captions/subtitles visibility. Showing enables one caption/subtitle track. A track already showing stays selected. Otherwise, selection prefers the last track shown, then a track matching the browser language, then the first available track. Returns whether a track is showing. |
35
+ | `selectSubtitlesTrack` | `(id: string \| null) => void` | Show the captions/subtitles track with `id`, or turn captions/subtitles off with `null`. |
38
36
 
39
37
  ### Selector
40
38
 
@@ -28,7 +28,7 @@ The `audioFeatures`, `liveAudioFeatures`, `liveVideoFeatures`, and `videoFeature
28
28
  | Action | Type | Description |
29
29
  | --- | --- | --- |
30
30
  | `setVolume` | `(volume: number) => number` | Set volume (clamped 0-1). Returns the clamped value. |
31
- | `toggleMuted` | `() => boolean` | Toggle mute state. Returns the new muted value. |
31
+ | `setMuted` | `(muted: boolean) => boolean` | Set the muted state, updating the store immediately. Unmuting at volume 0 restores volume to 0.25. Returns the new muted value. |
32
32
 
33
33
  ### Selector
34
34
 
@@ -0,0 +1,32 @@
1
+ # findLocaleKeys
2
+
3
+ List the locale tags a lookup falls back through, most specific first
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { findLocaleKeys } from "@videojs/html/i18n";
9
+ ```
10
+
11
+ `findLocaleKeys` returns the fallback chain the player resolves a locale through: the normalized tag from [`getLocaleKey`](./get-locale-key.md), then each shorter prefix, ending with `en`. A Chinese tag with a script, such as `zh-Hant-HK`, also falls back through `zh-tw` or `zh-cn` before `zh`. A translation missing from one locale is looked up in the next.
12
+
13
+ ```ts
14
+ import { findLocaleKeys } from '@videojs/html/i18n';
15
+
16
+ findLocaleKeys('es-419-u-nu-latn'); // ['es-419', 'es', 'en']
17
+ findLocaleKeys('fr'); // ['fr', 'en']
18
+ ```
19
+
20
+ ## API Reference
21
+
22
+ `findLocaleKeys(locale): Locale[]`
23
+
24
+ ### Parameters
25
+
26
+ | Parameter | Type | Default | Description |
27
+ | --- | --- | --- | --- |
28
+ | `locale` (required) | `(typeof LOCALES)[number] \| string & {}` | — | BCP 47 tag to resolve. |
29
+
30
+ ### Return Value
31
+
32
+ `Locale[]`
@@ -0,0 +1,32 @@
1
+ # getLocaleKey
2
+
3
+ Normalize a locale tag to the key the i18n registry stores it under
4
+
5
+ ## Import
6
+
7
+ ```ts
8
+ import { getLocaleKey } from "@videojs/html/i18n";
9
+ ```
10
+
11
+ `getLocaleKey` lowercases a BCP 47 tag, replaces underscores with hyphens, and removes Unicode extensions such as `-u-nu-latn`. The registry stores [`registerI18n`](./register-i18n.md) layers under this key, so use it to compare a tag with one you have registered or to key your own per-locale data the same way.
12
+
13
+ ```ts
14
+ import { getLocaleKey } from '@videojs/html/i18n';
15
+
16
+ getLocaleKey('en_US-u-nu-latn'); // 'en-us'
17
+ getLocaleKey('zh-Hant'); // 'zh-hant'
18
+ ```
19
+
20
+ ## API Reference
21
+
22
+ `getLocaleKey(locale): Locale`
23
+
24
+ ### Parameters
25
+
26
+ | Parameter | Type | Default | Description |
27
+ | --- | --- | --- | --- |
28
+ | `locale` (required) | `(typeof LOCALES)[number] \| string & {}` | — | BCP 47 tag to normalize. |
29
+
30
+ ### Return Value
31
+
32
+ `(typeof LOCALES)[number] | string & {}`