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

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 (1438) hide show
  1. package/README.md +12 -2
  2. package/dist/default/define/audio/minimal-skin.css +663 -414
  3. package/dist/default/define/audio/minimal-skin.js +0 -2
  4. package/dist/default/define/audio/minimal-skin2.js +1 -3
  5. package/dist/default/define/audio/minimal-ui.js +0 -2
  6. package/dist/default/define/audio/player.js +0 -2
  7. package/dist/default/define/audio/skin.css +409 -205
  8. package/dist/default/define/audio/skin.js +0 -2
  9. package/dist/default/define/audio/skin2.js +1 -3
  10. package/dist/default/define/audio/ui.js +0 -2
  11. package/dist/default/define/background/player.js +0 -2
  12. package/dist/default/define/background/skin.js +0 -2
  13. package/dist/default/define/background/skin2.js +1 -3
  14. package/dist/default/define/extensions/google-cast.js +0 -2
  15. package/dist/default/define/extensions/mux-data.js +0 -2
  16. package/dist/default/define/global.css +13 -0
  17. package/dist/default/define/global.js +1 -3
  18. package/dist/default/define/i18n.js +0 -2
  19. package/dist/default/define/live-audio/minimal-skin.css +458 -368
  20. package/dist/default/define/live-audio/minimal-skin.js +0 -2
  21. package/dist/default/define/live-audio/minimal-skin2.js +1 -3
  22. package/dist/default/define/live-audio/minimal-ui.js +0 -2
  23. package/dist/default/define/live-audio/player.js +0 -2
  24. package/dist/default/define/live-audio/skin.css +221 -159
  25. package/dist/default/define/live-audio/skin.js +0 -2
  26. package/dist/default/define/live-audio/skin2.js +1 -3
  27. package/dist/default/define/live-audio/ui.js +0 -2
  28. package/dist/default/define/live-video/minimal-skin.css +1002 -863
  29. package/dist/default/define/live-video/minimal-skin.js +0 -2
  30. package/dist/default/define/live-video/minimal-skin2.js +1 -3
  31. package/dist/default/define/live-video/minimal-ui.js +0 -2
  32. package/dist/default/define/live-video/player.js +0 -2
  33. package/dist/default/define/live-video/skin.css +804 -687
  34. package/dist/default/define/live-video/skin.js +0 -2
  35. package/dist/default/define/live-video/skin2.js +1 -3
  36. package/dist/default/define/live-video/ui.js +0 -2
  37. package/dist/default/define/media/background-video.js +0 -2
  38. package/dist/default/define/media/cloudflare-video.js +0 -2
  39. package/dist/default/define/media/dash-video.js +0 -2
  40. package/dist/default/define/media/hls-audio.js +0 -2
  41. package/dist/default/define/media/hls-background-video.js +0 -2
  42. package/dist/default/define/media/hls-video.js +0 -2
  43. package/dist/default/define/media/hlsjs-video.js +0 -2
  44. package/dist/default/define/media/mux-audio/hls-js.js +0 -2
  45. package/dist/default/define/media/mux-audio/spf.js +0 -2
  46. package/dist/default/define/media/mux-background-video.js +0 -2
  47. package/dist/default/define/media/mux-video/hls-js.js +0 -2
  48. package/dist/default/define/media/mux-video/spf.js +0 -2
  49. package/dist/default/define/media/native-hls-video.js +0 -2
  50. package/dist/default/define/media/shaka-video.js +0 -2
  51. package/dist/default/define/media/spotify-audio.js +0 -2
  52. package/dist/default/define/media/tiktok-video.js +0 -2
  53. package/dist/default/define/media/twitch-video.js +0 -2
  54. package/dist/default/define/media/vimeo-video.js +0 -2
  55. package/dist/default/define/media/wistia-video.js +0 -2
  56. package/dist/default/define/media/youtube-video.js +0 -2
  57. package/dist/default/define/shadow.css +22 -0
  58. package/dist/default/define/shadow.js +4 -0
  59. package/dist/default/define/ui/airplay-button.js +0 -2
  60. package/dist/default/define/ui/alert-dialog.js +0 -2
  61. package/dist/default/define/ui/audio-track-radio-group.js +0 -2
  62. package/dist/default/define/ui/buffering-indicator.js +0 -2
  63. package/dist/default/define/ui/captions-button.js +0 -2
  64. package/dist/default/define/ui/captions-radio-group.js +0 -2
  65. package/dist/default/define/ui/cast-button.js +0 -2
  66. package/dist/default/define/ui/container.js +0 -2
  67. package/dist/default/define/ui/controls-backdrop.js +0 -2
  68. package/dist/default/define/ui/controls-content.js +0 -2
  69. package/dist/default/define/ui/controls-group.js +0 -2
  70. package/dist/default/define/ui/controls.js +0 -2
  71. package/dist/default/define/ui/dialog-backdrop.js +0 -2
  72. package/dist/default/define/ui/dialog-close.js +0 -2
  73. package/dist/default/define/ui/dialog-description.js +0 -2
  74. package/dist/default/define/ui/dialog-popup.js +0 -2
  75. package/dist/default/define/ui/dialog-title.js +0 -2
  76. package/dist/default/define/ui/dialog.js +0 -2
  77. package/dist/default/define/ui/error-dialog.js +0 -2
  78. package/dist/default/define/ui/fullscreen-button.js +0 -2
  79. package/dist/default/define/ui/gesture.js +0 -2
  80. package/dist/default/define/ui/hotkey.js +0 -2
  81. package/dist/default/define/ui/live-button.js +0 -2
  82. package/dist/default/define/ui/menu-checkbox-item.js +0 -2
  83. package/dist/default/define/ui/menu-content.js +0 -2
  84. package/dist/default/define/ui/menu-group-label.js +0 -2
  85. package/dist/default/define/ui/menu-group.js +0 -2
  86. package/dist/default/define/ui/menu-item-indicator.js +0 -2
  87. package/dist/default/define/ui/menu-item.js +0 -2
  88. package/dist/default/define/ui/menu-radio-group.js +0 -2
  89. package/dist/default/define/ui/menu-radio-item.js +0 -2
  90. package/dist/default/define/ui/menu-separator.js +0 -2
  91. package/dist/default/define/ui/menu.js +0 -2
  92. package/dist/default/define/ui/mute-button.js +0 -2
  93. package/dist/default/define/ui/pip-button.js +0 -2
  94. package/dist/default/define/ui/play-button.js +0 -2
  95. package/dist/default/define/ui/playback-rate-button.js +0 -2
  96. package/dist/default/define/ui/playback-rate-radio-group.js +0 -2
  97. package/dist/default/define/ui/popover.js +0 -2
  98. package/dist/default/define/ui/poster.js +0 -2
  99. package/dist/default/define/ui/quality-radio-group.js +0 -2
  100. package/dist/default/define/ui/seek-button.js +0 -2
  101. package/dist/default/define/ui/seek-indicator-value.js +0 -2
  102. package/dist/default/define/ui/seek-indicator.js +0 -2
  103. package/dist/default/define/ui/slider-buffer.js +0 -2
  104. package/dist/default/define/ui/slider-fill.js +0 -2
  105. package/dist/default/define/ui/slider-preview.js +0 -2
  106. package/dist/default/define/ui/slider-thumb.js +0 -2
  107. package/dist/default/define/ui/slider-thumbnail.js +0 -2
  108. package/dist/default/define/ui/slider-track.js +0 -2
  109. package/dist/default/define/ui/slider-value.js +0 -2
  110. package/dist/default/define/ui/slider.js +0 -2
  111. package/dist/default/define/ui/status-announcer.js +0 -2
  112. package/dist/default/define/ui/status-indicator-value.js +0 -2
  113. package/dist/default/define/ui/status-indicator.js +0 -2
  114. package/dist/default/define/ui/thumbnail.js +0 -2
  115. package/dist/default/define/ui/time-group.js +0 -2
  116. package/dist/default/define/ui/time-separator.js +0 -2
  117. package/dist/default/define/ui/time-slider-chapter-title.js +0 -2
  118. package/dist/default/define/ui/time-slider-chapters.js +0 -2
  119. package/dist/default/define/ui/time-slider.js +0 -2
  120. package/dist/default/define/ui/time.js +0 -2
  121. package/dist/default/define/ui/title.js +0 -2
  122. package/dist/default/define/ui/tooltip-group.js +0 -2
  123. package/dist/default/define/ui/tooltip-label.js +0 -2
  124. package/dist/default/define/ui/tooltip-shortcut.js +0 -2
  125. package/dist/default/define/ui/tooltip.js +0 -2
  126. package/dist/default/define/ui/volume-indicator-fill.js +0 -2
  127. package/dist/default/define/ui/volume-indicator-value.js +0 -2
  128. package/dist/default/define/ui/volume-indicator.js +0 -2
  129. package/dist/default/define/ui/volume-popover.js +0 -2
  130. package/dist/default/define/ui/volume-slider.js +0 -2
  131. package/dist/default/define/video/minimal-skin.css +764 -647
  132. package/dist/default/define/video/minimal-skin.js +0 -2
  133. package/dist/default/define/video/minimal-skin2.js +1 -3
  134. package/dist/default/define/video/minimal-ui.js +0 -2
  135. package/dist/default/define/video/player.js +0 -2
  136. package/dist/default/define/video/skin.css +528 -441
  137. package/dist/default/define/video/skin.js +0 -2
  138. package/dist/default/define/video/skin2.js +1 -3
  139. package/dist/default/define/video/ui.js +0 -2
  140. package/dist/default/extensions/google-cast/extension.js +0 -2
  141. package/dist/default/extensions/media-extension-element.js +0 -2
  142. package/dist/default/extensions/mux-data/extension.js +0 -2
  143. package/dist/default/i18n/cache-key.js +0 -2
  144. package/dist/default/i18n/context.js +0 -2
  145. package/dist/default/i18n/controller.js +0 -2
  146. package/dist/default/i18n/create-i18n.js +0 -2
  147. package/dist/default/i18n/index.js +2 -2
  148. package/dist/default/i18n/locale.js +0 -2
  149. package/dist/default/i18n/locales/all/register.js +0 -2
  150. package/dist/default/i18n/locales/ar/register.js +0 -2
  151. package/dist/default/i18n/locales/az/register.js +0 -2
  152. package/dist/default/i18n/locales/bg/register.js +0 -2
  153. package/dist/default/i18n/locales/bn/register.js +0 -2
  154. package/dist/default/i18n/locales/bs/register.js +0 -2
  155. package/dist/default/i18n/locales/ca/register.js +0 -2
  156. package/dist/default/i18n/locales/cs/register.js +0 -2
  157. package/dist/default/i18n/locales/cy/register.js +0 -2
  158. package/dist/default/i18n/locales/da/register.js +0 -2
  159. package/dist/default/i18n/locales/de/register.js +0 -2
  160. package/dist/default/i18n/locales/el/register.js +0 -2
  161. package/dist/default/i18n/locales/en/register.js +0 -2
  162. package/dist/default/i18n/locales/es/register.js +0 -2
  163. package/dist/default/i18n/locales/et/register.js +0 -2
  164. package/dist/default/i18n/locales/eu/register.js +0 -2
  165. package/dist/default/i18n/locales/fa/register.js +0 -2
  166. package/dist/default/i18n/locales/fi/register.js +0 -2
  167. package/dist/default/i18n/locales/fr/register.js +0 -2
  168. package/dist/default/i18n/locales/gd/register.js +0 -2
  169. package/dist/default/i18n/locales/gl/register.js +0 -2
  170. package/dist/default/i18n/locales/he/register.js +0 -2
  171. package/dist/default/i18n/locales/hi/register.js +0 -2
  172. package/dist/default/i18n/locales/hr/register.js +0 -2
  173. package/dist/default/i18n/locales/hu/register.js +0 -2
  174. package/dist/default/i18n/locales/id/register.js +0 -2
  175. package/dist/default/i18n/locales/it/register.js +0 -2
  176. package/dist/default/i18n/locales/ja/register.js +0 -2
  177. package/dist/default/i18n/locales/ko/register.js +0 -2
  178. package/dist/default/i18n/locales/lt/register.js +0 -2
  179. package/dist/default/i18n/locales/lv/register.js +0 -2
  180. package/dist/default/i18n/locales/mr/register.js +0 -2
  181. package/dist/default/i18n/locales/nb/register.js +0 -2
  182. package/dist/default/i18n/locales/ne/register.js +0 -2
  183. package/dist/default/i18n/locales/nl/register.js +0 -2
  184. package/dist/default/i18n/locales/nn/register.js +0 -2
  185. package/dist/default/i18n/locales/oc/register.js +0 -2
  186. package/dist/default/i18n/locales/pl/register.js +0 -2
  187. package/dist/default/i18n/locales/pt/register.js +0 -2
  188. package/dist/default/i18n/locales/pt-BR/register.js +0 -2
  189. package/dist/default/i18n/locales/pt-PT/register.js +0 -2
  190. package/dist/default/i18n/locales/ro/register.js +0 -2
  191. package/dist/default/i18n/locales/ru/register.js +0 -2
  192. package/dist/default/i18n/locales/sk/register.js +0 -2
  193. package/dist/default/i18n/locales/sl/register.js +0 -2
  194. package/dist/default/i18n/locales/sr/register.js +0 -2
  195. package/dist/default/i18n/locales/sv/register.js +0 -2
  196. package/dist/default/i18n/locales/te/register.js +0 -2
  197. package/dist/default/i18n/locales/th/register.js +0 -2
  198. package/dist/default/i18n/locales/tr/register.js +0 -2
  199. package/dist/default/i18n/locales/uk/register.js +0 -2
  200. package/dist/default/i18n/locales/vi/register.js +0 -2
  201. package/dist/default/i18n/locales/zh/register.js +0 -2
  202. package/dist/default/i18n/locales/zh-CN/register.js +0 -2
  203. package/dist/default/i18n/locales/zh-TW/register.js +0 -2
  204. package/dist/default/i18n/provider-element.js +0 -2
  205. package/dist/default/i18n/provider-mixin.js +0 -2
  206. package/dist/default/i18n/render-text.js +0 -2
  207. package/dist/default/i18n/text-mixin.js +0 -2
  208. package/dist/default/icons/dist/element/base.js +0 -2
  209. package/dist/default/icons/dist/element/default/icons.js +0 -2
  210. package/dist/default/icons/dist/element/default/index.js +0 -2
  211. package/dist/default/icons/dist/element/index.js +0 -2
  212. package/dist/default/icons/dist/element/minimal/icons.js +0 -2
  213. package/dist/default/icons/dist/element/minimal/index.js +0 -2
  214. package/dist/default/icons/dist/html/default/airplay-enter.js +0 -2
  215. package/dist/default/icons/dist/html/default/airplay-exit.js +0 -2
  216. package/dist/default/icons/dist/html/default/captions-off.js +0 -2
  217. package/dist/default/icons/dist/html/default/captions-on.js +0 -2
  218. package/dist/default/icons/dist/html/default/cast-enter.js +0 -2
  219. package/dist/default/icons/dist/html/default/cast-exit.js +0 -2
  220. package/dist/default/icons/dist/html/default/check.js +0 -2
  221. package/dist/default/icons/dist/html/default/chevron.js +0 -2
  222. package/dist/default/icons/dist/html/default/fullscreen-enter.js +0 -2
  223. package/dist/default/icons/dist/html/default/fullscreen-exit.js +0 -2
  224. package/dist/default/icons/dist/html/default/gear.js +0 -2
  225. package/dist/default/icons/dist/html/default/pause.js +0 -2
  226. package/dist/default/icons/dist/html/default/pip-enter.js +0 -2
  227. package/dist/default/icons/dist/html/default/pip-exit.js +0 -2
  228. package/dist/default/icons/dist/html/default/play.js +0 -2
  229. package/dist/default/icons/dist/html/default/quality.js +0 -2
  230. package/dist/default/icons/dist/html/default/restart.js +0 -2
  231. package/dist/default/icons/dist/html/default/seek.js +0 -2
  232. package/dist/default/icons/dist/html/default/speech.js +0 -2
  233. package/dist/default/icons/dist/html/default/speed.js +0 -2
  234. package/dist/default/icons/dist/html/default/spinner.js +0 -2
  235. package/dist/default/icons/dist/html/default/switches.js +0 -2
  236. package/dist/default/icons/dist/html/default/volume-high.js +0 -2
  237. package/dist/default/icons/dist/html/default/volume-low.js +0 -2
  238. package/dist/default/icons/dist/html/default/volume-off.js +0 -2
  239. package/dist/default/icons/dist/html/minimal/airplay-enter.js +0 -2
  240. package/dist/default/icons/dist/html/minimal/airplay-exit.js +0 -2
  241. package/dist/default/icons/dist/html/minimal/captions-off.js +0 -2
  242. package/dist/default/icons/dist/html/minimal/captions-on.js +0 -2
  243. package/dist/default/icons/dist/html/minimal/cast-enter.js +0 -2
  244. package/dist/default/icons/dist/html/minimal/cast-exit.js +0 -2
  245. package/dist/default/icons/dist/html/minimal/check.js +0 -2
  246. package/dist/default/icons/dist/html/minimal/chevron.js +0 -2
  247. package/dist/default/icons/dist/html/minimal/fullscreen-enter.js +0 -2
  248. package/dist/default/icons/dist/html/minimal/fullscreen-exit.js +0 -2
  249. package/dist/default/icons/dist/html/minimal/gear.js +0 -2
  250. package/dist/default/icons/dist/html/minimal/pause.js +0 -2
  251. package/dist/default/icons/dist/html/minimal/pip-enter.js +0 -2
  252. package/dist/default/icons/dist/html/minimal/pip-exit.js +0 -2
  253. package/dist/default/icons/dist/html/minimal/play.js +0 -2
  254. package/dist/default/icons/dist/html/minimal/quality.js +0 -2
  255. package/dist/default/icons/dist/html/minimal/restart.js +0 -2
  256. package/dist/default/icons/dist/html/minimal/seek.js +0 -2
  257. package/dist/default/icons/dist/html/minimal/speech.js +0 -2
  258. package/dist/default/icons/dist/html/minimal/speed.js +0 -2
  259. package/dist/default/icons/dist/html/minimal/spinner.js +0 -2
  260. package/dist/default/icons/dist/html/minimal/switches.js +0 -2
  261. package/dist/default/icons/dist/html/minimal/volume-high.js +0 -2
  262. package/dist/default/icons/dist/html/minimal/volume-low.js +0 -2
  263. package/dist/default/icons/dist/html/minimal/volume-off.js +0 -2
  264. package/dist/default/icons/element/register/index.js +0 -2
  265. package/dist/default/index.js +2 -2
  266. package/dist/default/internal/skins/default-audio/register.js +0 -2
  267. package/dist/default/internal/skins/default-audio/skin.css +387 -191
  268. package/dist/default/internal/skins/default-audio/template.js +12 -14
  269. package/dist/default/internal/skins/default-live-audio/register.js +0 -2
  270. package/dist/default/internal/skins/default-live-audio/skin.css +199 -145
  271. package/dist/default/internal/skins/default-live-audio/template.js +5 -7
  272. package/dist/default/internal/skins/default-live-video/register.js +1 -2
  273. package/dist/default/internal/skins/default-live-video/skin.css +713 -604
  274. package/dist/default/internal/skins/default-live-video/template.js +18 -19
  275. package/dist/default/internal/skins/default-video/register.js +1 -2
  276. package/dist/default/internal/skins/default-video/skin.css +506 -427
  277. package/dist/default/internal/skins/default-video/template.js +33 -33
  278. package/dist/default/internal/skins/minimal-audio/register.js +0 -2
  279. package/dist/default/internal/skins/minimal-audio/skin.css +641 -400
  280. package/dist/default/internal/skins/minimal-audio/template.js +12 -14
  281. package/dist/default/internal/skins/minimal-live-audio/register.js +0 -2
  282. package/dist/default/internal/skins/minimal-live-audio/skin.css +436 -354
  283. package/dist/default/internal/skins/minimal-live-audio/template.js +5 -7
  284. package/dist/default/internal/skins/minimal-live-video/register.js +1 -2
  285. package/dist/default/internal/skins/minimal-live-video/skin.css +916 -785
  286. package/dist/default/internal/skins/minimal-live-video/template.js +18 -19
  287. package/dist/default/internal/skins/minimal-video/register.js +1 -2
  288. package/dist/default/internal/skins/minimal-video/skin.css +742 -633
  289. package/dist/default/internal/skins/minimal-video/template.js +33 -33
  290. package/dist/default/internal/skins/properties.css +11 -0
  291. package/dist/default/media/background-video/adapter.js +0 -2
  292. package/dist/default/media/background-video/template.js +0 -2
  293. package/dist/default/media/cloudflare-video/adapter.js +0 -2
  294. package/dist/default/media/dash-video/adapter.js +0 -2
  295. package/dist/default/media/hls-audio/adapter.js +0 -2
  296. package/dist/default/media/hls-background-video/adapter.js +0 -2
  297. package/dist/default/media/hls-video/adapter.js +0 -2
  298. package/dist/default/media/hlsjs-video/adapter.js +0 -2
  299. package/dist/default/media/mux-audio/hls-js.js +0 -2
  300. package/dist/default/media/mux-audio/mixin.js +0 -2
  301. package/dist/default/media/mux-audio/spf.js +0 -2
  302. package/dist/default/media/mux-video/hls-js.js +0 -2
  303. package/dist/default/media/mux-video/mixin.js +0 -2
  304. package/dist/default/media/mux-video/spf.js +0 -2
  305. package/dist/default/media/native-hls-video/adapter.js +0 -2
  306. package/dist/default/media/shaka-video/adapter.js +0 -2
  307. package/dist/default/media/spotify-audio/adapter.js +0 -2
  308. package/dist/default/media/tiktok-video/adapter.js +0 -2
  309. package/dist/default/media/twitch-video/adapter.js +0 -2
  310. package/dist/default/media/vimeo-video/adapter.js +0 -2
  311. package/dist/default/media/wistia-video/adapter.js +0 -2
  312. package/dist/default/media/youtube-video/adapter.js +0 -2
  313. package/dist/default/player/context.js +0 -2
  314. package/dist/default/player/controller.js +0 -2
  315. package/dist/default/player/create-player.js +0 -2
  316. package/dist/default/player/element.js +0 -2
  317. package/dist/default/player/popup-group-context.js +0 -2
  318. package/dist/default/presets/audio/minimal-skin.js +0 -2
  319. package/dist/default/presets/audio/player.js +0 -2
  320. package/dist/default/presets/audio/skin.js +0 -2
  321. package/dist/default/presets/background/player.js +0 -2
  322. package/dist/default/presets/background/skin.js +2 -2
  323. package/dist/default/presets/live-audio/minimal-skin.js +0 -2
  324. package/dist/default/presets/live-audio/player.js +0 -2
  325. package/dist/default/presets/live-audio/skin.js +0 -2
  326. package/dist/default/presets/live-video/minimal-skin.js +0 -2
  327. package/dist/default/presets/live-video/player.js +0 -2
  328. package/dist/default/presets/live-video/skin.js +0 -2
  329. package/dist/default/presets/skin.js +14 -5
  330. package/dist/default/presets/video/minimal-skin.js +0 -2
  331. package/dist/default/presets/video/player.js +0 -2
  332. package/dist/default/presets/video/skin.js +0 -2
  333. package/dist/default/registration/safe-define.js +0 -2
  334. package/dist/default/registration/ui-compounds.js +0 -2
  335. package/dist/default/store/media-attach-mixin.js +0 -2
  336. package/dist/default/ui/airplay-button/element.js +0 -2
  337. package/dist/default/ui/alert-dialog/element.js +0 -2
  338. package/dist/default/ui/audio-track-radio-group/element.js +5 -2
  339. package/dist/default/ui/buffering-indicator/element.js +0 -2
  340. package/dist/default/ui/captions-button/element.js +0 -2
  341. package/dist/default/ui/captions-radio-group/element.js +5 -2
  342. package/dist/default/ui/cast-button/element.js +0 -2
  343. package/dist/default/ui/command-for.js +0 -2
  344. package/dist/default/ui/container/element.js +0 -2
  345. package/dist/default/ui/context-part-element.js +0 -2
  346. package/dist/default/ui/controls/backdrop.js +0 -2
  347. package/dist/default/ui/controls/content.js +0 -2
  348. package/dist/default/ui/controls/context.js +0 -2
  349. package/dist/default/ui/controls/element.js +4 -2
  350. package/dist/default/ui/controls/group.js +0 -2
  351. package/dist/default/ui/dialog/backdrop.js +0 -2
  352. package/dist/default/ui/dialog/close.js +1 -2
  353. package/dist/default/ui/dialog/context.js +0 -2
  354. package/dist/default/ui/dialog/description.js +4 -2
  355. package/dist/default/ui/dialog/element.js +0 -2
  356. package/dist/default/ui/dialog/popup.js +0 -2
  357. package/dist/default/ui/dialog/title.js +1 -2
  358. package/dist/default/ui/error-dialog/element.js +0 -2
  359. package/dist/default/ui/fullscreen-button/element.js +0 -2
  360. package/dist/default/ui/gesture/element.js +0 -2
  361. package/dist/default/ui/hotkey/aria-key-shortcuts-controller.js +0 -2
  362. package/dist/default/ui/hotkey/element.js +0 -2
  363. package/dist/default/ui/input-indicator/element.js +0 -2
  364. package/dist/default/ui/input-indicator/live-indicator.js +0 -2
  365. package/dist/default/ui/live-button/element.js +0 -2
  366. package/dist/default/ui/media-button-element.js +0 -2
  367. package/dist/default/ui/media-ui-element.js +0 -2
  368. package/dist/default/ui/menu/checkbox-item.js +6 -3
  369. package/dist/default/ui/menu/content.js +1 -3
  370. package/dist/default/ui/menu/context.js +0 -2
  371. package/dist/default/ui/menu/element.js +0 -2
  372. package/dist/default/ui/menu/group-controller.js +0 -2
  373. package/dist/default/ui/menu/group-label.js +1 -2
  374. package/dist/default/ui/menu/group.js +4 -2
  375. package/dist/default/ui/menu/item-indicator.js +4 -2
  376. package/dist/default/ui/menu/item.js +4 -2
  377. package/dist/default/ui/menu/radio-group.js +1 -2
  378. package/dist/default/ui/menu/radio-item.js +4 -2
  379. package/dist/default/ui/menu/separator.js +1 -2
  380. package/dist/default/ui/mute-button/element.js +0 -2
  381. package/dist/default/ui/pip-button/element.js +0 -2
  382. package/dist/default/ui/play-button/element.js +0 -2
  383. package/dist/default/ui/playback-rate-button/element.js +0 -2
  384. package/dist/default/ui/playback-rate-radio-group/element.js +5 -2
  385. package/dist/default/ui/popover/element.js +0 -2
  386. package/dist/default/ui/position-controller.js +0 -2
  387. package/dist/default/ui/poster/element.js +0 -2
  388. package/dist/default/ui/quality-radio-group/element.js +6 -2
  389. package/dist/default/ui/radio-group/context.js +0 -2
  390. package/dist/default/ui/radio-group/element.js +0 -2
  391. package/dist/default/ui/radio-options/controller.js +0 -2
  392. package/dist/default/ui/seek-button/element.js +0 -2
  393. package/dist/default/ui/seek-indicator/element.js +0 -2
  394. package/dist/default/ui/seek-indicator/value.js +0 -2
  395. package/dist/default/ui/slider/buffer.js +0 -2
  396. package/dist/default/ui/slider/context.js +0 -2
  397. package/dist/default/ui/slider/element.js +0 -2
  398. package/dist/default/ui/slider/fill.js +0 -2
  399. package/dist/default/ui/slider/preview.js +0 -2
  400. package/dist/default/ui/slider/thumb.js +0 -2
  401. package/dist/default/ui/slider/thumbnail.js +4 -2
  402. package/dist/default/ui/slider/track.js +0 -2
  403. package/dist/default/ui/slider/value.js +1 -2
  404. package/dist/default/ui/status-announcer/element.js +0 -2
  405. package/dist/default/ui/status-indicator/element.js +0 -2
  406. package/dist/default/ui/status-indicator/value.js +0 -2
  407. package/dist/default/ui/text/element.js +0 -2
  408. package/dist/default/ui/thumbnail/element.js +28 -8
  409. package/dist/default/ui/time/element.js +0 -2
  410. package/dist/default/ui/time/group.js +1 -2
  411. package/dist/default/ui/time/separator.js +0 -2
  412. package/dist/default/ui/time-slider/chapter-title.js +0 -2
  413. package/dist/default/ui/time-slider/chapters.js +0 -2
  414. package/dist/default/ui/time-slider/element.js +5 -4
  415. package/dist/default/ui/title/element.js +5 -9
  416. package/dist/default/ui/tooltip/context.js +0 -2
  417. package/dist/default/ui/tooltip/element.js +0 -2
  418. package/dist/default/ui/tooltip/group.js +0 -2
  419. package/dist/default/ui/tooltip/label.js +0 -2
  420. package/dist/default/ui/tooltip/shortcut.js +0 -2
  421. package/dist/default/ui/ui-element.js +0 -2
  422. package/dist/default/ui/volume-indicator/element.js +0 -2
  423. package/dist/default/ui/volume-indicator/fill.js +0 -2
  424. package/dist/default/ui/volume-indicator/value.js +0 -2
  425. package/dist/default/ui/volume-popover/element.js +0 -2
  426. package/dist/default/ui/volume-slider/element.js +0 -2
  427. package/dist/dev/define/audio/minimal-skin.css +663 -414
  428. package/dist/dev/define/audio/minimal-skin2.js +1 -1
  429. package/dist/dev/define/audio/minimal-skin2.js.map +1 -1
  430. package/dist/dev/define/audio/skin.css +409 -205
  431. package/dist/dev/define/audio/skin2.js +1 -1
  432. package/dist/dev/define/audio/skin2.js.map +1 -1
  433. package/dist/dev/define/global.css +13 -0
  434. package/dist/dev/define/global.js +1 -1
  435. package/dist/dev/define/global.js.map +1 -1
  436. package/dist/dev/define/live-audio/minimal-skin.css +458 -368
  437. package/dist/dev/define/live-audio/minimal-skin2.js +1 -1
  438. package/dist/dev/define/live-audio/minimal-skin2.js.map +1 -1
  439. package/dist/dev/define/live-audio/skin.css +221 -159
  440. package/dist/dev/define/live-audio/skin2.js +1 -1
  441. package/dist/dev/define/live-audio/skin2.js.map +1 -1
  442. package/dist/dev/define/live-video/minimal-skin.css +1002 -863
  443. package/dist/dev/define/live-video/minimal-skin2.js +1 -1
  444. package/dist/dev/define/live-video/minimal-skin2.js.map +1 -1
  445. package/dist/dev/define/live-video/skin.css +804 -687
  446. package/dist/dev/define/live-video/skin2.js +1 -1
  447. package/dist/dev/define/live-video/skin2.js.map +1 -1
  448. package/dist/dev/define/shadow.css +22 -0
  449. package/dist/dev/define/shadow.js +6 -0
  450. package/dist/dev/define/shadow.js.map +1 -0
  451. package/dist/dev/define/video/minimal-skin.css +764 -647
  452. package/dist/dev/define/video/minimal-skin2.js +1 -1
  453. package/dist/dev/define/video/minimal-skin2.js.map +1 -1
  454. package/dist/dev/define/video/skin.css +528 -441
  455. package/dist/dev/define/video/skin2.js +1 -1
  456. package/dist/dev/define/video/skin2.js.map +1 -1
  457. package/dist/dev/i18n/index.d.ts +2 -2
  458. package/dist/dev/i18n/index.js +2 -2
  459. package/dist/dev/index.d.ts +3 -3
  460. package/dist/dev/index.js +2 -2
  461. package/dist/dev/internal/skins/default-audio/skin.css +387 -191
  462. package/dist/dev/internal/skins/default-audio/template.js +12 -12
  463. package/dist/dev/internal/skins/default-audio/template.js.map +1 -1
  464. package/dist/dev/internal/skins/default-live-audio/skin.css +199 -145
  465. package/dist/dev/internal/skins/default-live-audio/template.js +5 -5
  466. package/dist/dev/internal/skins/default-live-audio/template.js.map +1 -1
  467. package/dist/dev/internal/skins/default-live-video/register.d.ts +1 -0
  468. package/dist/dev/internal/skins/default-live-video/register.js +1 -0
  469. package/dist/dev/internal/skins/default-live-video/register.js.map +1 -1
  470. package/dist/dev/internal/skins/default-live-video/skin.css +713 -604
  471. package/dist/dev/internal/skins/default-live-video/template.js +18 -17
  472. package/dist/dev/internal/skins/default-live-video/template.js.map +1 -1
  473. package/dist/dev/internal/skins/default-video/register.d.ts +1 -0
  474. package/dist/dev/internal/skins/default-video/register.js +1 -0
  475. package/dist/dev/internal/skins/default-video/register.js.map +1 -1
  476. package/dist/dev/internal/skins/default-video/skin.css +506 -427
  477. package/dist/dev/internal/skins/default-video/template.js +33 -31
  478. package/dist/dev/internal/skins/default-video/template.js.map +1 -1
  479. package/dist/dev/internal/skins/minimal-audio/skin.css +641 -400
  480. package/dist/dev/internal/skins/minimal-audio/template.js +12 -12
  481. package/dist/dev/internal/skins/minimal-audio/template.js.map +1 -1
  482. package/dist/dev/internal/skins/minimal-live-audio/skin.css +436 -354
  483. package/dist/dev/internal/skins/minimal-live-audio/template.js +5 -5
  484. package/dist/dev/internal/skins/minimal-live-audio/template.js.map +1 -1
  485. package/dist/dev/internal/skins/minimal-live-video/register.d.ts +1 -0
  486. package/dist/dev/internal/skins/minimal-live-video/register.js +1 -0
  487. package/dist/dev/internal/skins/minimal-live-video/register.js.map +1 -1
  488. package/dist/dev/internal/skins/minimal-live-video/skin.css +916 -785
  489. package/dist/dev/internal/skins/minimal-live-video/template.js +18 -17
  490. package/dist/dev/internal/skins/minimal-live-video/template.js.map +1 -1
  491. package/dist/dev/internal/skins/minimal-video/register.d.ts +1 -0
  492. package/dist/dev/internal/skins/minimal-video/register.js +1 -0
  493. package/dist/dev/internal/skins/minimal-video/register.js.map +1 -1
  494. package/dist/dev/internal/skins/minimal-video/skin.css +742 -633
  495. package/dist/dev/internal/skins/minimal-video/template.js +33 -31
  496. package/dist/dev/internal/skins/minimal-video/template.js.map +1 -1
  497. package/dist/dev/internal/skins/properties.css +11 -0
  498. package/dist/dev/player/context.d.ts +1 -0
  499. package/dist/dev/player/context.js.map +1 -1
  500. package/dist/dev/presets/background/skin.js +2 -0
  501. package/dist/dev/presets/background/skin.js.map +1 -1
  502. package/dist/dev/presets/skin.js +14 -3
  503. package/dist/dev/presets/skin.js.map +1 -1
  504. package/dist/dev/ui/audio-track-radio-group/element.d.ts +5 -0
  505. package/dist/dev/ui/audio-track-radio-group/element.js +5 -0
  506. package/dist/dev/ui/audio-track-radio-group/element.js.map +1 -1
  507. package/dist/dev/ui/captions-radio-group/element.d.ts +5 -0
  508. package/dist/dev/ui/captions-radio-group/element.js +5 -0
  509. package/dist/dev/ui/captions-radio-group/element.js.map +1 -1
  510. package/dist/dev/ui/controls/element.d.ts +4 -0
  511. package/dist/dev/ui/controls/element.js +4 -0
  512. package/dist/dev/ui/controls/element.js.map +1 -1
  513. package/dist/dev/ui/dialog/close.d.ts +1 -0
  514. package/dist/dev/ui/dialog/close.js +1 -0
  515. package/dist/dev/ui/dialog/close.js.map +1 -1
  516. package/dist/dev/ui/dialog/description.d.ts +4 -0
  517. package/dist/dev/ui/dialog/description.js +4 -0
  518. package/dist/dev/ui/dialog/description.js.map +1 -1
  519. package/dist/dev/ui/dialog/title.d.ts +1 -0
  520. package/dist/dev/ui/dialog/title.js +1 -0
  521. package/dist/dev/ui/dialog/title.js.map +1 -1
  522. package/dist/dev/ui/menu/checkbox-item.d.ts +6 -1
  523. package/dist/dev/ui/menu/checkbox-item.js +6 -1
  524. package/dist/dev/ui/menu/checkbox-item.js.map +1 -1
  525. package/dist/dev/ui/menu/content.js +1 -1
  526. package/dist/dev/ui/menu/content.js.map +1 -1
  527. package/dist/dev/ui/menu/group-label.d.ts +1 -0
  528. package/dist/dev/ui/menu/group-label.js +1 -0
  529. package/dist/dev/ui/menu/group-label.js.map +1 -1
  530. package/dist/dev/ui/menu/group.d.ts +4 -0
  531. package/dist/dev/ui/menu/group.js +4 -0
  532. package/dist/dev/ui/menu/group.js.map +1 -1
  533. package/dist/dev/ui/menu/item-indicator.d.ts +4 -0
  534. package/dist/dev/ui/menu/item-indicator.js +4 -0
  535. package/dist/dev/ui/menu/item-indicator.js.map +1 -1
  536. package/dist/dev/ui/menu/item.d.ts +4 -0
  537. package/dist/dev/ui/menu/item.js +4 -0
  538. package/dist/dev/ui/menu/item.js.map +1 -1
  539. package/dist/dev/ui/menu/radio-group.d.ts +1 -0
  540. package/dist/dev/ui/menu/radio-group.js +1 -0
  541. package/dist/dev/ui/menu/radio-group.js.map +1 -1
  542. package/dist/dev/ui/menu/radio-item.d.ts +4 -0
  543. package/dist/dev/ui/menu/radio-item.js +4 -0
  544. package/dist/dev/ui/menu/radio-item.js.map +1 -1
  545. package/dist/dev/ui/menu/separator.d.ts +1 -0
  546. package/dist/dev/ui/menu/separator.js +1 -0
  547. package/dist/dev/ui/menu/separator.js.map +1 -1
  548. package/dist/dev/ui/playback-rate-radio-group/element.d.ts +5 -0
  549. package/dist/dev/ui/playback-rate-radio-group/element.js +5 -0
  550. package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
  551. package/dist/dev/ui/quality-radio-group/element.d.ts +6 -0
  552. package/dist/dev/ui/quality-radio-group/element.js +6 -0
  553. package/dist/dev/ui/quality-radio-group/element.js.map +1 -1
  554. package/dist/dev/ui/slider/thumbnail.d.ts +4 -0
  555. package/dist/dev/ui/slider/thumbnail.js +4 -0
  556. package/dist/dev/ui/slider/thumbnail.js.map +1 -1
  557. package/dist/dev/ui/slider/value.d.ts +1 -0
  558. package/dist/dev/ui/slider/value.js +1 -0
  559. package/dist/dev/ui/slider/value.js.map +1 -1
  560. package/dist/dev/ui/thumbnail/element.d.ts +3 -1
  561. package/dist/dev/ui/thumbnail/element.js +28 -6
  562. package/dist/dev/ui/thumbnail/element.js.map +1 -1
  563. package/dist/dev/ui/time/group.d.ts +1 -0
  564. package/dist/dev/ui/time/group.js +1 -0
  565. package/dist/dev/ui/time/group.js.map +1 -1
  566. package/dist/dev/ui/time-slider/element.js +5 -2
  567. package/dist/dev/ui/time-slider/element.js.map +1 -1
  568. package/dist/dev/ui/title/element.d.ts +1 -2
  569. package/dist/dev/ui/title/element.js +5 -7
  570. package/dist/dev/ui/title/element.js.map +1 -1
  571. package/docs/README.md +1 -1
  572. package/docs/guides/accessibility.md +93 -0
  573. package/docs/{concepts/overview.md → guides/architecture.md} +20 -21
  574. package/docs/{how-to → guides}/autoplay.md +42 -47
  575. package/docs/{how-to/add-a-background-video.md → guides/background-video.md} +36 -51
  576. package/docs/guides/browser-support.md +145 -0
  577. package/docs/guides/build-with-ai.md +167 -0
  578. package/docs/guides/build-your-own-component.md +245 -0
  579. package/docs/{concepts → guides}/bundlers.md +13 -5
  580. package/docs/guides/captions.md +140 -0
  581. package/docs/{how-to/cast-to-airplay-and-chromecast.md → guides/casting.md} +40 -39
  582. package/docs/guides/cdn.md +102 -0
  583. package/docs/guides/content-security-policy.md +37 -0
  584. package/docs/{how-to/show-and-hide-controls.md → guides/controls.md} +38 -37
  585. package/docs/guides/customize-skins.md +141 -0
  586. package/docs/{concepts → guides}/features.md +22 -46
  587. package/docs/guides/fullscreen.md +145 -0
  588. package/docs/guides/installation-cdn.md +164 -0
  589. package/docs/guides/installation-shadcn.md +305 -0
  590. package/docs/guides/installation-svelte.md +198 -0
  591. package/docs/guides/installation-vue.md +229 -0
  592. package/docs/guides/installation.md +186 -0
  593. package/docs/{how-to/internationalize-the-player.md → guides/internationalization.md} +84 -103
  594. package/docs/guides/keyboard-shortcuts.md +98 -0
  595. package/docs/guides/live-streams.md +110 -0
  596. package/docs/guides/llms.txt +79 -0
  597. package/docs/{concepts → guides}/media-sources.md +64 -262
  598. package/docs/{how-to → guides}/migrate-from-media-chrome.md +79 -249
  599. package/docs/{how-to → guides}/migrate-from-mux-player.md +146 -321
  600. package/docs/guides/migrate-from-plyr.md +296 -0
  601. package/docs/guides/migrate-from-video-js-8.md +467 -0
  602. package/docs/{concepts → guides}/mux-data.md +26 -27
  603. package/docs/{how-to/use-picture-in-picture.md → guides/picture-in-picture.md} +31 -33
  604. package/docs/guides/playback-errors.md +129 -0
  605. package/docs/{how-to/add-a-poster-and-loading-placeholder.md → guides/poster.md} +24 -34
  606. package/docs/{concepts → guides}/presets.md +17 -131
  607. package/docs/{how-to/add-quality-selector.md → guides/quality.md} +41 -41
  608. package/docs/{how-to/self-host-the-player.md → guides/self-hosting.md} +31 -41
  609. package/docs/guides/skins.md +68 -0
  610. package/docs/{how-to/use-videojs-with-svelte.md → guides/svelte.md} +15 -18
  611. package/docs/guides/thumbnails.md +183 -0
  612. package/docs/{concepts → guides}/typescript.md +10 -3
  613. package/docs/{concepts → guides}/ui-components.md +8 -14
  614. package/docs/{how-to/remember-user-preferences.md → guides/user-preferences.md} +25 -28
  615. package/docs/guides/v10-roadmap.md +92 -0
  616. package/docs/{how-to/use-videojs-with-vue.md → guides/vue.md} +19 -22
  617. package/docs/{concepts → guides}/why-videojs.md +36 -17
  618. package/docs/llms.txt +253 -181
  619. package/docs/reference/api/aria-key-shortcuts-controller.md +50 -0
  620. package/docs/reference/{create-i18n.md → api/create-i18n.md} +13 -52
  621. package/docs/reference/{create-selector.md → api/create-selector.md} +11 -33
  622. package/docs/reference/api/create-translator.md +36 -0
  623. package/docs/reference/api/error-codes.md +25 -0
  624. package/docs/reference/{feature-audio-track.md → api/feature-audio-track.md} +10 -36
  625. package/docs/reference/{feature-buffer.md → api/feature-buffer.md} +8 -31
  626. package/docs/reference/{feature-controls.md → api/feature-controls.md} +12 -58
  627. package/docs/reference/{feature-error.md → api/feature-error.md} +10 -36
  628. package/docs/reference/{feature-fullscreen.md → api/feature-fullscreen.md} +14 -69
  629. package/docs/reference/{feature-live.md → api/feature-live.md} +15 -42
  630. package/docs/reference/{feature-metadata.md → api/feature-metadata.md} +20 -80
  631. package/docs/reference/{feature-orientation-lock.md → api/feature-orientation-lock.md} +16 -64
  632. package/docs/reference/{feature-pip.md → api/feature-pip.md} +13 -66
  633. package/docs/reference/{feature-playback-rate.md → api/feature-playback-rate.md} +11 -46
  634. package/docs/reference/{feature-playback.md → api/feature-playback.md} +15 -86
  635. package/docs/reference/{feature-quality.md → api/feature-quality.md} +11 -46
  636. package/docs/reference/{feature-remote-playback.md → api/feature-remote-playback.md} +12 -47
  637. package/docs/reference/{feature-source.md → api/feature-source.md} +11 -46
  638. package/docs/reference/{feature-stream-type.md → api/feature-stream-type.md} +7 -23
  639. package/docs/reference/api/feature-text-tracks.md +54 -0
  640. package/docs/reference/{feature-time.md → api/feature-time.md} +12 -56
  641. package/docs/reference/{feature-volume.md → api/feature-volume.md} +14 -76
  642. package/docs/reference/{get-i18n-translations.md → api/get-i18n-translations.md} +11 -41
  643. package/docs/reference/{has-registered-locale.md → api/has-registered-locale.md} +7 -29
  644. package/docs/reference/{html-create-player.md → api/html-create-player.md} +45 -203
  645. package/docs/reference/{i-18-n-controller.md → api/i18n-controller.md} +12 -62
  646. package/docs/reference/api/llms.txt +74 -0
  647. package/docs/reference/{media-i18n.md → api/media-i18n.md} +8 -16
  648. package/docs/reference/{media-text.md → api/media-text.md} +3 -7
  649. package/docs/reference/{on-i18n-registry-change.md → api/on-i18n-registry-change.md} +9 -37
  650. package/docs/reference/{player-controller.md → api/player-controller.md} +36 -142
  651. package/docs/reference/{register-i18n.md → api/register-i18n.md} +9 -42
  652. package/docs/reference/api/snapshot-controller.md +95 -0
  653. package/docs/reference/api/store-controller.md +85 -0
  654. package/docs/reference/{subscription-controller.md → api/subscription-controller.md} +12 -70
  655. package/docs/reference/api/translation-phrases.md +107 -0
  656. package/docs/reference/api/vjs8-legacy-component.md +21 -0
  657. package/docs/reference/api/vjs8-legacy-get-player.md +21 -0
  658. package/docs/reference/api/vjs8-legacy-init.md +21 -0
  659. package/docs/reference/api/vjs8-legacy-options.md +21 -0
  660. package/docs/reference/api/vjs8-legacy-plugin.md +21 -0
  661. package/docs/reference/{airplay-button.md → components/airplay-button.md} +41 -194
  662. package/docs/reference/{alert-dialog.md → components/alert-dialog.md} +91 -280
  663. package/docs/reference/components/audio-minimal-skin.md +39 -0
  664. package/docs/reference/components/audio-skin.md +39 -0
  665. package/docs/reference/{audio-track-radio-group.md → components/audio-track-radio-group.md} +47 -219
  666. package/docs/reference/{audio.md → components/audio.md} +16 -17
  667. package/docs/reference/components/background-video-skin.md +37 -0
  668. package/docs/reference/{background-video.md → components/background-video.md} +25 -53
  669. package/docs/reference/{buffering-indicator.md → components/buffering-indicator.md} +21 -65
  670. package/docs/reference/{captions-button.md → components/captions-button.md} +35 -171
  671. package/docs/reference/{captions-radio-group.md → components/captions-radio-group.md} +48 -227
  672. package/docs/reference/{cast-button.md → components/cast-button.md} +39 -179
  673. package/docs/reference/components/cloudflare-video.md +157 -0
  674. package/docs/reference/{controls.md → components/controls.md} +52 -171
  675. package/docs/reference/components/dash-video.md +111 -0
  676. package/docs/reference/{dialog.md → components/dialog.md} +101 -314
  677. package/docs/reference/{error-dialog.md → components/error-dialog.md} +66 -162
  678. package/docs/reference/{fullscreen-button.md → components/fullscreen-button.md} +35 -153
  679. package/docs/reference/{gesture.md → components/gesture.md} +28 -130
  680. package/docs/reference/components/google-cast.md +47 -0
  681. package/docs/reference/components/hls-audio.md +87 -0
  682. package/docs/reference/components/hls-background-video.md +51 -0
  683. package/docs/reference/components/hls-video.md +110 -0
  684. package/docs/reference/components/hlsjs-video.md +126 -0
  685. package/docs/reference/{hotkey.md → components/hotkey.md} +28 -115
  686. package/docs/reference/{live-audio-minimal-skin.md → components/live-audio-minimal-skin.md} +12 -16
  687. package/docs/reference/{live-audio-skin.md → components/live-audio-skin.md} +12 -16
  688. package/docs/reference/{live-button.md → components/live-button.md} +36 -156
  689. package/docs/reference/components/live-video-minimal-skin.md +47 -0
  690. package/docs/reference/components/live-video-skin.md +47 -0
  691. package/docs/reference/components/llms.txt +122 -0
  692. package/docs/reference/{menu.md → components/menu.md} +123 -541
  693. package/docs/reference/{mute-button.md → components/mute-button.md} +50 -200
  694. package/docs/reference/components/mux-audio.md +127 -0
  695. package/docs/reference/{mux-background-video.md → components/mux-background-video.md} +9 -15
  696. package/docs/reference/components/mux-data.md +51 -0
  697. package/docs/reference/components/mux-video.md +220 -0
  698. package/docs/reference/components/native-hls-video.md +128 -0
  699. package/docs/reference/{pip-button.md → components/pip-button.md} +35 -153
  700. package/docs/reference/{play-button.md → components/play-button.md} +30 -134
  701. package/docs/reference/{playback-rate-button.md → components/playback-rate-button.md} +25 -105
  702. package/docs/reference/{playback-rate-radio-group.md → components/playback-rate-radio-group.md} +47 -223
  703. package/docs/reference/{player-container.md → components/player-container.md} +16 -27
  704. package/docs/reference/{player.md → components/player.md} +14 -24
  705. package/docs/reference/components/popover.md +193 -0
  706. package/docs/reference/{poster.md → components/poster.md} +42 -162
  707. package/docs/reference/{quality-radio-group.md → components/quality-radio-group.md} +47 -219
  708. package/docs/reference/{seek-button.md → components/seek-button.md} +26 -127
  709. package/docs/reference/{seek-indicator.md → components/seek-indicator.md} +55 -233
  710. package/docs/reference/components/shaka-video.md +161 -0
  711. package/docs/reference/components/slider.md +414 -0
  712. package/docs/reference/components/spotify-audio.md +144 -0
  713. package/docs/reference/{status-announcer.md → components/status-announcer.md} +37 -122
  714. package/docs/reference/{status-indicator.md → components/status-indicator.md} +57 -278
  715. package/docs/reference/components/thumbnail.md +321 -0
  716. package/docs/reference/components/tiktok-video.md +165 -0
  717. package/docs/reference/{time-slider.md → components/time-slider.md} +136 -595
  718. package/docs/reference/{time.md → components/time.md} +96 -286
  719. package/docs/reference/{title.md → components/title.md} +31 -70
  720. package/docs/reference/components/tooltip.md +274 -0
  721. package/docs/reference/components/twitch-video.md +161 -0
  722. package/docs/reference/components/video-minimal-skin.md +51 -0
  723. package/docs/reference/components/video-skin.md +51 -0
  724. package/docs/reference/{video.md → components/video.md} +14 -17
  725. package/docs/reference/components/vimeo-video.md +173 -0
  726. package/docs/reference/{volume-indicator.md → components/volume-indicator.md} +78 -291
  727. package/docs/reference/components/volume-popover.md +232 -0
  728. package/docs/reference/components/volume-slider.md +331 -0
  729. package/docs/reference/{wistia-video.md → components/wistia-video.md} +22 -30
  730. package/docs/reference/components/youtube-video.md +163 -0
  731. package/package.json +39 -38
  732. package/dist/default/define/audio/minimal-skin.js.map +0 -1
  733. package/dist/default/define/audio/minimal-skin2.js.map +0 -1
  734. package/dist/default/define/audio/minimal-ui.js.map +0 -1
  735. package/dist/default/define/audio/player.js.map +0 -1
  736. package/dist/default/define/audio/skin.js.map +0 -1
  737. package/dist/default/define/audio/skin2.js.map +0 -1
  738. package/dist/default/define/audio/ui.js.map +0 -1
  739. package/dist/default/define/background/player.js.map +0 -1
  740. package/dist/default/define/background/skin.js.map +0 -1
  741. package/dist/default/define/background/skin2.js.map +0 -1
  742. package/dist/default/define/extensions/google-cast.js.map +0 -1
  743. package/dist/default/define/extensions/mux-data.js.map +0 -1
  744. package/dist/default/define/global.js.map +0 -1
  745. package/dist/default/define/i18n.js.map +0 -1
  746. package/dist/default/define/live-audio/minimal-skin.js.map +0 -1
  747. package/dist/default/define/live-audio/minimal-skin2.js.map +0 -1
  748. package/dist/default/define/live-audio/minimal-ui.js.map +0 -1
  749. package/dist/default/define/live-audio/player.js.map +0 -1
  750. package/dist/default/define/live-audio/skin.js.map +0 -1
  751. package/dist/default/define/live-audio/skin2.js.map +0 -1
  752. package/dist/default/define/live-audio/ui.js.map +0 -1
  753. package/dist/default/define/live-video/minimal-skin.js.map +0 -1
  754. package/dist/default/define/live-video/minimal-skin2.js.map +0 -1
  755. package/dist/default/define/live-video/minimal-ui.js.map +0 -1
  756. package/dist/default/define/live-video/player.js.map +0 -1
  757. package/dist/default/define/live-video/skin.js.map +0 -1
  758. package/dist/default/define/live-video/skin2.js.map +0 -1
  759. package/dist/default/define/live-video/ui.js.map +0 -1
  760. package/dist/default/define/media/background-video.js.map +0 -1
  761. package/dist/default/define/media/cloudflare-video.js.map +0 -1
  762. package/dist/default/define/media/dash-video.js.map +0 -1
  763. package/dist/default/define/media/hls-audio.js.map +0 -1
  764. package/dist/default/define/media/hls-background-video.js.map +0 -1
  765. package/dist/default/define/media/hls-video.js.map +0 -1
  766. package/dist/default/define/media/hlsjs-video.js.map +0 -1
  767. package/dist/default/define/media/mux-audio/hls-js.js.map +0 -1
  768. package/dist/default/define/media/mux-audio/spf.js.map +0 -1
  769. package/dist/default/define/media/mux-background-video.js.map +0 -1
  770. package/dist/default/define/media/mux-video/hls-js.js.map +0 -1
  771. package/dist/default/define/media/mux-video/spf.js.map +0 -1
  772. package/dist/default/define/media/native-hls-video.js.map +0 -1
  773. package/dist/default/define/media/shaka-video.js.map +0 -1
  774. package/dist/default/define/media/spotify-audio.js.map +0 -1
  775. package/dist/default/define/media/tiktok-video.js.map +0 -1
  776. package/dist/default/define/media/twitch-video.js.map +0 -1
  777. package/dist/default/define/media/vimeo-video.js.map +0 -1
  778. package/dist/default/define/media/wistia-video.js.map +0 -1
  779. package/dist/default/define/media/youtube-video.js.map +0 -1
  780. package/dist/default/define/shared.css +0 -27
  781. package/dist/default/define/shared.js +0 -6
  782. package/dist/default/define/shared.js.map +0 -1
  783. package/dist/default/define/ui/airplay-button.js.map +0 -1
  784. package/dist/default/define/ui/alert-dialog.js.map +0 -1
  785. package/dist/default/define/ui/audio-track-radio-group.js.map +0 -1
  786. package/dist/default/define/ui/buffering-indicator.js.map +0 -1
  787. package/dist/default/define/ui/captions-button.js.map +0 -1
  788. package/dist/default/define/ui/captions-radio-group.js.map +0 -1
  789. package/dist/default/define/ui/cast-button.js.map +0 -1
  790. package/dist/default/define/ui/container.js.map +0 -1
  791. package/dist/default/define/ui/controls-backdrop.js.map +0 -1
  792. package/dist/default/define/ui/controls-content.js.map +0 -1
  793. package/dist/default/define/ui/controls-group.js.map +0 -1
  794. package/dist/default/define/ui/controls.js.map +0 -1
  795. package/dist/default/define/ui/dialog-backdrop.js.map +0 -1
  796. package/dist/default/define/ui/dialog-close.js.map +0 -1
  797. package/dist/default/define/ui/dialog-description.js.map +0 -1
  798. package/dist/default/define/ui/dialog-popup.js.map +0 -1
  799. package/dist/default/define/ui/dialog-title.js.map +0 -1
  800. package/dist/default/define/ui/dialog.js.map +0 -1
  801. package/dist/default/define/ui/error-dialog.js.map +0 -1
  802. package/dist/default/define/ui/fullscreen-button.js.map +0 -1
  803. package/dist/default/define/ui/gesture.js.map +0 -1
  804. package/dist/default/define/ui/hotkey.js.map +0 -1
  805. package/dist/default/define/ui/live-button.js.map +0 -1
  806. package/dist/default/define/ui/menu-checkbox-item.js.map +0 -1
  807. package/dist/default/define/ui/menu-content.js.map +0 -1
  808. package/dist/default/define/ui/menu-group-label.js.map +0 -1
  809. package/dist/default/define/ui/menu-group.js.map +0 -1
  810. package/dist/default/define/ui/menu-item-indicator.js.map +0 -1
  811. package/dist/default/define/ui/menu-item.js.map +0 -1
  812. package/dist/default/define/ui/menu-radio-group.js.map +0 -1
  813. package/dist/default/define/ui/menu-radio-item.js.map +0 -1
  814. package/dist/default/define/ui/menu-separator.js.map +0 -1
  815. package/dist/default/define/ui/menu.js.map +0 -1
  816. package/dist/default/define/ui/mute-button.js.map +0 -1
  817. package/dist/default/define/ui/pip-button.js.map +0 -1
  818. package/dist/default/define/ui/play-button.js.map +0 -1
  819. package/dist/default/define/ui/playback-rate-button.js.map +0 -1
  820. package/dist/default/define/ui/playback-rate-radio-group.js.map +0 -1
  821. package/dist/default/define/ui/popover.js.map +0 -1
  822. package/dist/default/define/ui/poster.js.map +0 -1
  823. package/dist/default/define/ui/quality-radio-group.js.map +0 -1
  824. package/dist/default/define/ui/seek-button.js.map +0 -1
  825. package/dist/default/define/ui/seek-indicator-value.js.map +0 -1
  826. package/dist/default/define/ui/seek-indicator.js.map +0 -1
  827. package/dist/default/define/ui/slider-buffer.js.map +0 -1
  828. package/dist/default/define/ui/slider-fill.js.map +0 -1
  829. package/dist/default/define/ui/slider-preview.js.map +0 -1
  830. package/dist/default/define/ui/slider-thumb.js.map +0 -1
  831. package/dist/default/define/ui/slider-thumbnail.js.map +0 -1
  832. package/dist/default/define/ui/slider-track.js.map +0 -1
  833. package/dist/default/define/ui/slider-value.js.map +0 -1
  834. package/dist/default/define/ui/slider.js.map +0 -1
  835. package/dist/default/define/ui/status-announcer.js.map +0 -1
  836. package/dist/default/define/ui/status-indicator-value.js.map +0 -1
  837. package/dist/default/define/ui/status-indicator.js.map +0 -1
  838. package/dist/default/define/ui/thumbnail.js.map +0 -1
  839. package/dist/default/define/ui/time-group.js.map +0 -1
  840. package/dist/default/define/ui/time-separator.js.map +0 -1
  841. package/dist/default/define/ui/time-slider-chapter-title.js.map +0 -1
  842. package/dist/default/define/ui/time-slider-chapters.js.map +0 -1
  843. package/dist/default/define/ui/time-slider.js.map +0 -1
  844. package/dist/default/define/ui/time.js.map +0 -1
  845. package/dist/default/define/ui/title.js.map +0 -1
  846. package/dist/default/define/ui/tooltip-group.js.map +0 -1
  847. package/dist/default/define/ui/tooltip-label.js.map +0 -1
  848. package/dist/default/define/ui/tooltip-shortcut.js.map +0 -1
  849. package/dist/default/define/ui/tooltip.js.map +0 -1
  850. package/dist/default/define/ui/volume-indicator-fill.js.map +0 -1
  851. package/dist/default/define/ui/volume-indicator-value.js.map +0 -1
  852. package/dist/default/define/ui/volume-indicator.js.map +0 -1
  853. package/dist/default/define/ui/volume-popover.js.map +0 -1
  854. package/dist/default/define/ui/volume-slider.js.map +0 -1
  855. package/dist/default/define/video/minimal-skin.js.map +0 -1
  856. package/dist/default/define/video/minimal-skin2.js.map +0 -1
  857. package/dist/default/define/video/minimal-ui.js.map +0 -1
  858. package/dist/default/define/video/player.js.map +0 -1
  859. package/dist/default/define/video/skin.js.map +0 -1
  860. package/dist/default/define/video/skin2.js.map +0 -1
  861. package/dist/default/define/video/ui.js.map +0 -1
  862. package/dist/default/extensions/google-cast/extension.js.map +0 -1
  863. package/dist/default/extensions/media-extension-element.js.map +0 -1
  864. package/dist/default/extensions/mux-data/extension.js.map +0 -1
  865. package/dist/default/i18n/cache-key.js.map +0 -1
  866. package/dist/default/i18n/context.js.map +0 -1
  867. package/dist/default/i18n/controller.js.map +0 -1
  868. package/dist/default/i18n/create-i18n.js.map +0 -1
  869. package/dist/default/i18n/locale.js.map +0 -1
  870. package/dist/default/i18n/locales/all/register.js.map +0 -1
  871. package/dist/default/i18n/locales/ar/register.js.map +0 -1
  872. package/dist/default/i18n/locales/az/register.js.map +0 -1
  873. package/dist/default/i18n/locales/bg/register.js.map +0 -1
  874. package/dist/default/i18n/locales/bn/register.js.map +0 -1
  875. package/dist/default/i18n/locales/bs/register.js.map +0 -1
  876. package/dist/default/i18n/locales/ca/register.js.map +0 -1
  877. package/dist/default/i18n/locales/cs/register.js.map +0 -1
  878. package/dist/default/i18n/locales/cy/register.js.map +0 -1
  879. package/dist/default/i18n/locales/da/register.js.map +0 -1
  880. package/dist/default/i18n/locales/de/register.js.map +0 -1
  881. package/dist/default/i18n/locales/el/register.js.map +0 -1
  882. package/dist/default/i18n/locales/en/register.js.map +0 -1
  883. package/dist/default/i18n/locales/es/register.js.map +0 -1
  884. package/dist/default/i18n/locales/et/register.js.map +0 -1
  885. package/dist/default/i18n/locales/eu/register.js.map +0 -1
  886. package/dist/default/i18n/locales/fa/register.js.map +0 -1
  887. package/dist/default/i18n/locales/fi/register.js.map +0 -1
  888. package/dist/default/i18n/locales/fr/register.js.map +0 -1
  889. package/dist/default/i18n/locales/gd/register.js.map +0 -1
  890. package/dist/default/i18n/locales/gl/register.js.map +0 -1
  891. package/dist/default/i18n/locales/he/register.js.map +0 -1
  892. package/dist/default/i18n/locales/hi/register.js.map +0 -1
  893. package/dist/default/i18n/locales/hr/register.js.map +0 -1
  894. package/dist/default/i18n/locales/hu/register.js.map +0 -1
  895. package/dist/default/i18n/locales/id/register.js.map +0 -1
  896. package/dist/default/i18n/locales/it/register.js.map +0 -1
  897. package/dist/default/i18n/locales/ja/register.js.map +0 -1
  898. package/dist/default/i18n/locales/ko/register.js.map +0 -1
  899. package/dist/default/i18n/locales/lt/register.js.map +0 -1
  900. package/dist/default/i18n/locales/lv/register.js.map +0 -1
  901. package/dist/default/i18n/locales/mr/register.js.map +0 -1
  902. package/dist/default/i18n/locales/nb/register.js.map +0 -1
  903. package/dist/default/i18n/locales/ne/register.js.map +0 -1
  904. package/dist/default/i18n/locales/nl/register.js.map +0 -1
  905. package/dist/default/i18n/locales/nn/register.js.map +0 -1
  906. package/dist/default/i18n/locales/oc/register.js.map +0 -1
  907. package/dist/default/i18n/locales/pl/register.js.map +0 -1
  908. package/dist/default/i18n/locales/pt/register.js.map +0 -1
  909. package/dist/default/i18n/locales/pt-BR/register.js.map +0 -1
  910. package/dist/default/i18n/locales/pt-PT/register.js.map +0 -1
  911. package/dist/default/i18n/locales/ro/register.js.map +0 -1
  912. package/dist/default/i18n/locales/ru/register.js.map +0 -1
  913. package/dist/default/i18n/locales/sk/register.js.map +0 -1
  914. package/dist/default/i18n/locales/sl/register.js.map +0 -1
  915. package/dist/default/i18n/locales/sr/register.js.map +0 -1
  916. package/dist/default/i18n/locales/sv/register.js.map +0 -1
  917. package/dist/default/i18n/locales/te/register.js.map +0 -1
  918. package/dist/default/i18n/locales/th/register.js.map +0 -1
  919. package/dist/default/i18n/locales/tr/register.js.map +0 -1
  920. package/dist/default/i18n/locales/uk/register.js.map +0 -1
  921. package/dist/default/i18n/locales/vi/register.js.map +0 -1
  922. package/dist/default/i18n/locales/zh/register.js.map +0 -1
  923. package/dist/default/i18n/locales/zh-CN/register.js.map +0 -1
  924. package/dist/default/i18n/locales/zh-TW/register.js.map +0 -1
  925. package/dist/default/i18n/provider-element.js.map +0 -1
  926. package/dist/default/i18n/provider-mixin.js.map +0 -1
  927. package/dist/default/i18n/render-text.js.map +0 -1
  928. package/dist/default/i18n/text-mixin.js.map +0 -1
  929. package/dist/default/icons/dist/element/base.js.map +0 -1
  930. package/dist/default/icons/dist/element/default/icons.js.map +0 -1
  931. package/dist/default/icons/dist/element/default/index.js.map +0 -1
  932. package/dist/default/icons/dist/element/index.js.map +0 -1
  933. package/dist/default/icons/dist/element/minimal/icons.js.map +0 -1
  934. package/dist/default/icons/dist/element/minimal/index.js.map +0 -1
  935. package/dist/default/icons/dist/html/default/airplay-enter.js.map +0 -1
  936. package/dist/default/icons/dist/html/default/airplay-exit.js.map +0 -1
  937. package/dist/default/icons/dist/html/default/captions-off.js.map +0 -1
  938. package/dist/default/icons/dist/html/default/captions-on.js.map +0 -1
  939. package/dist/default/icons/dist/html/default/cast-enter.js.map +0 -1
  940. package/dist/default/icons/dist/html/default/cast-exit.js.map +0 -1
  941. package/dist/default/icons/dist/html/default/check.js.map +0 -1
  942. package/dist/default/icons/dist/html/default/chevron.js.map +0 -1
  943. package/dist/default/icons/dist/html/default/fullscreen-enter.js.map +0 -1
  944. package/dist/default/icons/dist/html/default/fullscreen-exit.js.map +0 -1
  945. package/dist/default/icons/dist/html/default/gear.js.map +0 -1
  946. package/dist/default/icons/dist/html/default/pause.js.map +0 -1
  947. package/dist/default/icons/dist/html/default/pip-enter.js.map +0 -1
  948. package/dist/default/icons/dist/html/default/pip-exit.js.map +0 -1
  949. package/dist/default/icons/dist/html/default/play.js.map +0 -1
  950. package/dist/default/icons/dist/html/default/quality.js.map +0 -1
  951. package/dist/default/icons/dist/html/default/restart.js.map +0 -1
  952. package/dist/default/icons/dist/html/default/seek.js.map +0 -1
  953. package/dist/default/icons/dist/html/default/speech.js.map +0 -1
  954. package/dist/default/icons/dist/html/default/speed.js.map +0 -1
  955. package/dist/default/icons/dist/html/default/spinner.js.map +0 -1
  956. package/dist/default/icons/dist/html/default/switches.js.map +0 -1
  957. package/dist/default/icons/dist/html/default/volume-high.js.map +0 -1
  958. package/dist/default/icons/dist/html/default/volume-low.js.map +0 -1
  959. package/dist/default/icons/dist/html/default/volume-off.js.map +0 -1
  960. package/dist/default/icons/dist/html/minimal/airplay-enter.js.map +0 -1
  961. package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +0 -1
  962. package/dist/default/icons/dist/html/minimal/captions-off.js.map +0 -1
  963. package/dist/default/icons/dist/html/minimal/captions-on.js.map +0 -1
  964. package/dist/default/icons/dist/html/minimal/cast-enter.js.map +0 -1
  965. package/dist/default/icons/dist/html/minimal/cast-exit.js.map +0 -1
  966. package/dist/default/icons/dist/html/minimal/check.js.map +0 -1
  967. package/dist/default/icons/dist/html/minimal/chevron.js.map +0 -1
  968. package/dist/default/icons/dist/html/minimal/fullscreen-enter.js.map +0 -1
  969. package/dist/default/icons/dist/html/minimal/fullscreen-exit.js.map +0 -1
  970. package/dist/default/icons/dist/html/minimal/gear.js.map +0 -1
  971. package/dist/default/icons/dist/html/minimal/pause.js.map +0 -1
  972. package/dist/default/icons/dist/html/minimal/pip-enter.js.map +0 -1
  973. package/dist/default/icons/dist/html/minimal/pip-exit.js.map +0 -1
  974. package/dist/default/icons/dist/html/minimal/play.js.map +0 -1
  975. package/dist/default/icons/dist/html/minimal/quality.js.map +0 -1
  976. package/dist/default/icons/dist/html/minimal/restart.js.map +0 -1
  977. package/dist/default/icons/dist/html/minimal/seek.js.map +0 -1
  978. package/dist/default/icons/dist/html/minimal/speech.js.map +0 -1
  979. package/dist/default/icons/dist/html/minimal/speed.js.map +0 -1
  980. package/dist/default/icons/dist/html/minimal/spinner.js.map +0 -1
  981. package/dist/default/icons/dist/html/minimal/switches.js.map +0 -1
  982. package/dist/default/icons/dist/html/minimal/volume-high.js.map +0 -1
  983. package/dist/default/icons/dist/html/minimal/volume-low.js.map +0 -1
  984. package/dist/default/icons/dist/html/minimal/volume-off.js.map +0 -1
  985. package/dist/default/icons/element/register/index.js.map +0 -1
  986. package/dist/default/internal/skins/default-audio/register.js.map +0 -1
  987. package/dist/default/internal/skins/default-audio/template.js.map +0 -1
  988. package/dist/default/internal/skins/default-live-audio/register.js.map +0 -1
  989. package/dist/default/internal/skins/default-live-audio/template.js.map +0 -1
  990. package/dist/default/internal/skins/default-live-video/register.js.map +0 -1
  991. package/dist/default/internal/skins/default-live-video/template.js.map +0 -1
  992. package/dist/default/internal/skins/default-video/register.js.map +0 -1
  993. package/dist/default/internal/skins/default-video/template.js.map +0 -1
  994. package/dist/default/internal/skins/minimal-audio/register.js.map +0 -1
  995. package/dist/default/internal/skins/minimal-audio/template.js.map +0 -1
  996. package/dist/default/internal/skins/minimal-live-audio/register.js.map +0 -1
  997. package/dist/default/internal/skins/minimal-live-audio/template.js.map +0 -1
  998. package/dist/default/internal/skins/minimal-live-video/register.js.map +0 -1
  999. package/dist/default/internal/skins/minimal-live-video/template.js.map +0 -1
  1000. package/dist/default/internal/skins/minimal-video/register.js.map +0 -1
  1001. package/dist/default/internal/skins/minimal-video/template.js.map +0 -1
  1002. package/dist/default/media/background-video/adapter.js.map +0 -1
  1003. package/dist/default/media/background-video/template.js.map +0 -1
  1004. package/dist/default/media/cloudflare-video/adapter.js.map +0 -1
  1005. package/dist/default/media/dash-video/adapter.js.map +0 -1
  1006. package/dist/default/media/hls-audio/adapter.js.map +0 -1
  1007. package/dist/default/media/hls-background-video/adapter.js.map +0 -1
  1008. package/dist/default/media/hls-video/adapter.js.map +0 -1
  1009. package/dist/default/media/hlsjs-video/adapter.js.map +0 -1
  1010. package/dist/default/media/mux-audio/hls-js.js.map +0 -1
  1011. package/dist/default/media/mux-audio/mixin.js.map +0 -1
  1012. package/dist/default/media/mux-audio/spf.js.map +0 -1
  1013. package/dist/default/media/mux-video/hls-js.js.map +0 -1
  1014. package/dist/default/media/mux-video/mixin.js.map +0 -1
  1015. package/dist/default/media/mux-video/spf.js.map +0 -1
  1016. package/dist/default/media/native-hls-video/adapter.js.map +0 -1
  1017. package/dist/default/media/shaka-video/adapter.js.map +0 -1
  1018. package/dist/default/media/spotify-audio/adapter.js.map +0 -1
  1019. package/dist/default/media/tiktok-video/adapter.js.map +0 -1
  1020. package/dist/default/media/twitch-video/adapter.js.map +0 -1
  1021. package/dist/default/media/vimeo-video/adapter.js.map +0 -1
  1022. package/dist/default/media/wistia-video/adapter.js.map +0 -1
  1023. package/dist/default/media/youtube-video/adapter.js.map +0 -1
  1024. package/dist/default/player/context.js.map +0 -1
  1025. package/dist/default/player/controller.js.map +0 -1
  1026. package/dist/default/player/create-player.js.map +0 -1
  1027. package/dist/default/player/element.js.map +0 -1
  1028. package/dist/default/player/popup-group-context.js.map +0 -1
  1029. package/dist/default/presets/audio/minimal-skin.js.map +0 -1
  1030. package/dist/default/presets/audio/player.js.map +0 -1
  1031. package/dist/default/presets/audio/skin.js.map +0 -1
  1032. package/dist/default/presets/background/player.js.map +0 -1
  1033. package/dist/default/presets/background/skin.js.map +0 -1
  1034. package/dist/default/presets/live-audio/minimal-skin.js.map +0 -1
  1035. package/dist/default/presets/live-audio/player.js.map +0 -1
  1036. package/dist/default/presets/live-audio/skin.js.map +0 -1
  1037. package/dist/default/presets/live-video/minimal-skin.js.map +0 -1
  1038. package/dist/default/presets/live-video/player.js.map +0 -1
  1039. package/dist/default/presets/live-video/skin.js.map +0 -1
  1040. package/dist/default/presets/skin.js.map +0 -1
  1041. package/dist/default/presets/video/minimal-skin.js.map +0 -1
  1042. package/dist/default/presets/video/player.js.map +0 -1
  1043. package/dist/default/presets/video/skin.js.map +0 -1
  1044. package/dist/default/registration/safe-define.js.map +0 -1
  1045. package/dist/default/registration/ui-compounds.js.map +0 -1
  1046. package/dist/default/store/media-attach-mixin.js.map +0 -1
  1047. package/dist/default/ui/airplay-button/element.js.map +0 -1
  1048. package/dist/default/ui/alert-dialog/element.js.map +0 -1
  1049. package/dist/default/ui/audio-track-radio-group/element.js.map +0 -1
  1050. package/dist/default/ui/buffering-indicator/element.js.map +0 -1
  1051. package/dist/default/ui/captions-button/element.js.map +0 -1
  1052. package/dist/default/ui/captions-radio-group/element.js.map +0 -1
  1053. package/dist/default/ui/cast-button/element.js.map +0 -1
  1054. package/dist/default/ui/command-for.js.map +0 -1
  1055. package/dist/default/ui/container/element.js.map +0 -1
  1056. package/dist/default/ui/context-part-element.js.map +0 -1
  1057. package/dist/default/ui/controls/backdrop.js.map +0 -1
  1058. package/dist/default/ui/controls/content.js.map +0 -1
  1059. package/dist/default/ui/controls/context.js.map +0 -1
  1060. package/dist/default/ui/controls/element.js.map +0 -1
  1061. package/dist/default/ui/controls/group.js.map +0 -1
  1062. package/dist/default/ui/dialog/backdrop.js.map +0 -1
  1063. package/dist/default/ui/dialog/close.js.map +0 -1
  1064. package/dist/default/ui/dialog/context.js.map +0 -1
  1065. package/dist/default/ui/dialog/description.js.map +0 -1
  1066. package/dist/default/ui/dialog/element.js.map +0 -1
  1067. package/dist/default/ui/dialog/popup.js.map +0 -1
  1068. package/dist/default/ui/dialog/title.js.map +0 -1
  1069. package/dist/default/ui/error-dialog/element.js.map +0 -1
  1070. package/dist/default/ui/fullscreen-button/element.js.map +0 -1
  1071. package/dist/default/ui/gesture/element.js.map +0 -1
  1072. package/dist/default/ui/hotkey/aria-key-shortcuts-controller.js.map +0 -1
  1073. package/dist/default/ui/hotkey/element.js.map +0 -1
  1074. package/dist/default/ui/input-indicator/element.js.map +0 -1
  1075. package/dist/default/ui/input-indicator/live-indicator.js.map +0 -1
  1076. package/dist/default/ui/live-button/element.js.map +0 -1
  1077. package/dist/default/ui/media-button-element.js.map +0 -1
  1078. package/dist/default/ui/media-ui-element.js.map +0 -1
  1079. package/dist/default/ui/menu/checkbox-item.js.map +0 -1
  1080. package/dist/default/ui/menu/content.js.map +0 -1
  1081. package/dist/default/ui/menu/context.js.map +0 -1
  1082. package/dist/default/ui/menu/element.js.map +0 -1
  1083. package/dist/default/ui/menu/group-controller.js.map +0 -1
  1084. package/dist/default/ui/menu/group-label.js.map +0 -1
  1085. package/dist/default/ui/menu/group.js.map +0 -1
  1086. package/dist/default/ui/menu/item-indicator.js.map +0 -1
  1087. package/dist/default/ui/menu/item.js.map +0 -1
  1088. package/dist/default/ui/menu/radio-group.js.map +0 -1
  1089. package/dist/default/ui/menu/radio-item.js.map +0 -1
  1090. package/dist/default/ui/menu/separator.js.map +0 -1
  1091. package/dist/default/ui/mute-button/element.js.map +0 -1
  1092. package/dist/default/ui/pip-button/element.js.map +0 -1
  1093. package/dist/default/ui/play-button/element.js.map +0 -1
  1094. package/dist/default/ui/playback-rate-button/element.js.map +0 -1
  1095. package/dist/default/ui/playback-rate-radio-group/element.js.map +0 -1
  1096. package/dist/default/ui/popover/element.js.map +0 -1
  1097. package/dist/default/ui/position-controller.js.map +0 -1
  1098. package/dist/default/ui/poster/element.js.map +0 -1
  1099. package/dist/default/ui/quality-radio-group/element.js.map +0 -1
  1100. package/dist/default/ui/radio-group/context.js.map +0 -1
  1101. package/dist/default/ui/radio-group/element.js.map +0 -1
  1102. package/dist/default/ui/radio-options/controller.js.map +0 -1
  1103. package/dist/default/ui/seek-button/element.js.map +0 -1
  1104. package/dist/default/ui/seek-indicator/element.js.map +0 -1
  1105. package/dist/default/ui/seek-indicator/value.js.map +0 -1
  1106. package/dist/default/ui/slider/buffer.js.map +0 -1
  1107. package/dist/default/ui/slider/context.js.map +0 -1
  1108. package/dist/default/ui/slider/element.js.map +0 -1
  1109. package/dist/default/ui/slider/fill.js.map +0 -1
  1110. package/dist/default/ui/slider/preview.js.map +0 -1
  1111. package/dist/default/ui/slider/thumb.js.map +0 -1
  1112. package/dist/default/ui/slider/thumbnail.js.map +0 -1
  1113. package/dist/default/ui/slider/track.js.map +0 -1
  1114. package/dist/default/ui/slider/value.js.map +0 -1
  1115. package/dist/default/ui/status-announcer/element.js.map +0 -1
  1116. package/dist/default/ui/status-indicator/element.js.map +0 -1
  1117. package/dist/default/ui/status-indicator/value.js.map +0 -1
  1118. package/dist/default/ui/text/element.js.map +0 -1
  1119. package/dist/default/ui/thumbnail/element.js.map +0 -1
  1120. package/dist/default/ui/time/element.js.map +0 -1
  1121. package/dist/default/ui/time/group.js.map +0 -1
  1122. package/dist/default/ui/time/separator.js.map +0 -1
  1123. package/dist/default/ui/time-slider/chapter-title.js.map +0 -1
  1124. package/dist/default/ui/time-slider/chapters.js.map +0 -1
  1125. package/dist/default/ui/time-slider/element.js.map +0 -1
  1126. package/dist/default/ui/title/element.js.map +0 -1
  1127. package/dist/default/ui/tooltip/context.js.map +0 -1
  1128. package/dist/default/ui/tooltip/element.js.map +0 -1
  1129. package/dist/default/ui/tooltip/group.js.map +0 -1
  1130. package/dist/default/ui/tooltip/label.js.map +0 -1
  1131. package/dist/default/ui/tooltip/shortcut.js.map +0 -1
  1132. package/dist/default/ui/ui-element.js.map +0 -1
  1133. package/dist/default/ui/volume-indicator/element.js.map +0 -1
  1134. package/dist/default/ui/volume-indicator/fill.js.map +0 -1
  1135. package/dist/default/ui/volume-indicator/value.js.map +0 -1
  1136. package/dist/default/ui/volume-popover/element.js.map +0 -1
  1137. package/dist/default/ui/volume-slider/element.js.map +0 -1
  1138. package/dist/dev/define/extensions/google-cast.d.ts.map +0 -1
  1139. package/dist/dev/define/extensions/mux-data.d.ts.map +0 -1
  1140. package/dist/dev/define/i18n.d.ts.map +0 -1
  1141. package/dist/dev/define/media/background-video.d.ts.map +0 -1
  1142. package/dist/dev/define/media/cloudflare-video.d.ts.map +0 -1
  1143. package/dist/dev/define/media/dash-video.d.ts.map +0 -1
  1144. package/dist/dev/define/media/hls-audio.d.ts.map +0 -1
  1145. package/dist/dev/define/media/hls-background-video.d.ts.map +0 -1
  1146. package/dist/dev/define/media/hls-video.d.ts.map +0 -1
  1147. package/dist/dev/define/media/hlsjs-video.d.ts.map +0 -1
  1148. package/dist/dev/define/media/mux-audio/hls-js.d.ts.map +0 -1
  1149. package/dist/dev/define/media/mux-audio/spf.d.ts.map +0 -1
  1150. package/dist/dev/define/media/mux-background-video.d.ts.map +0 -1
  1151. package/dist/dev/define/media/mux-video/hls-js.d.ts.map +0 -1
  1152. package/dist/dev/define/media/mux-video/spf.d.ts.map +0 -1
  1153. package/dist/dev/define/media/native-hls-video.d.ts.map +0 -1
  1154. package/dist/dev/define/media/shaka-video.d.ts.map +0 -1
  1155. package/dist/dev/define/media/spotify-audio.d.ts.map +0 -1
  1156. package/dist/dev/define/media/tiktok-video.d.ts.map +0 -1
  1157. package/dist/dev/define/media/twitch-video.d.ts.map +0 -1
  1158. package/dist/dev/define/media/vimeo-video.d.ts.map +0 -1
  1159. package/dist/dev/define/media/wistia-video.d.ts.map +0 -1
  1160. package/dist/dev/define/media/youtube-video.d.ts.map +0 -1
  1161. package/dist/dev/define/shared.css +0 -27
  1162. package/dist/dev/define/shared.js +0 -6
  1163. package/dist/dev/define/shared.js.map +0 -1
  1164. package/dist/dev/define/ui/airplay-button.d.ts.map +0 -1
  1165. package/dist/dev/define/ui/alert-dialog.d.ts.map +0 -1
  1166. package/dist/dev/define/ui/audio-track-radio-group.d.ts.map +0 -1
  1167. package/dist/dev/define/ui/buffering-indicator.d.ts.map +0 -1
  1168. package/dist/dev/define/ui/captions-button.d.ts.map +0 -1
  1169. package/dist/dev/define/ui/captions-radio-group.d.ts.map +0 -1
  1170. package/dist/dev/define/ui/cast-button.d.ts.map +0 -1
  1171. package/dist/dev/define/ui/container.d.ts.map +0 -1
  1172. package/dist/dev/define/ui/controls-backdrop.d.ts.map +0 -1
  1173. package/dist/dev/define/ui/controls-content.d.ts.map +0 -1
  1174. package/dist/dev/define/ui/controls-group.d.ts.map +0 -1
  1175. package/dist/dev/define/ui/controls.d.ts.map +0 -1
  1176. package/dist/dev/define/ui/dialog-backdrop.d.ts.map +0 -1
  1177. package/dist/dev/define/ui/dialog-close.d.ts.map +0 -1
  1178. package/dist/dev/define/ui/dialog-description.d.ts.map +0 -1
  1179. package/dist/dev/define/ui/dialog-popup.d.ts.map +0 -1
  1180. package/dist/dev/define/ui/dialog-title.d.ts.map +0 -1
  1181. package/dist/dev/define/ui/dialog.d.ts.map +0 -1
  1182. package/dist/dev/define/ui/error-dialog.d.ts.map +0 -1
  1183. package/dist/dev/define/ui/fullscreen-button.d.ts.map +0 -1
  1184. package/dist/dev/define/ui/gesture.d.ts.map +0 -1
  1185. package/dist/dev/define/ui/hotkey.d.ts.map +0 -1
  1186. package/dist/dev/define/ui/live-button.d.ts.map +0 -1
  1187. package/dist/dev/define/ui/menu-checkbox-item.d.ts.map +0 -1
  1188. package/dist/dev/define/ui/menu-content.d.ts.map +0 -1
  1189. package/dist/dev/define/ui/menu-group-label.d.ts.map +0 -1
  1190. package/dist/dev/define/ui/menu-group.d.ts.map +0 -1
  1191. package/dist/dev/define/ui/menu-item-indicator.d.ts.map +0 -1
  1192. package/dist/dev/define/ui/menu-item.d.ts.map +0 -1
  1193. package/dist/dev/define/ui/menu-radio-group.d.ts.map +0 -1
  1194. package/dist/dev/define/ui/menu-radio-item.d.ts.map +0 -1
  1195. package/dist/dev/define/ui/menu-separator.d.ts.map +0 -1
  1196. package/dist/dev/define/ui/menu.d.ts.map +0 -1
  1197. package/dist/dev/define/ui/mute-button.d.ts.map +0 -1
  1198. package/dist/dev/define/ui/pip-button.d.ts.map +0 -1
  1199. package/dist/dev/define/ui/play-button.d.ts.map +0 -1
  1200. package/dist/dev/define/ui/playback-rate-button.d.ts.map +0 -1
  1201. package/dist/dev/define/ui/playback-rate-radio-group.d.ts.map +0 -1
  1202. package/dist/dev/define/ui/popover.d.ts.map +0 -1
  1203. package/dist/dev/define/ui/poster.d.ts.map +0 -1
  1204. package/dist/dev/define/ui/quality-radio-group.d.ts.map +0 -1
  1205. package/dist/dev/define/ui/seek-button.d.ts.map +0 -1
  1206. package/dist/dev/define/ui/seek-indicator-value.d.ts.map +0 -1
  1207. package/dist/dev/define/ui/seek-indicator.d.ts.map +0 -1
  1208. package/dist/dev/define/ui/slider-buffer.d.ts.map +0 -1
  1209. package/dist/dev/define/ui/slider-fill.d.ts.map +0 -1
  1210. package/dist/dev/define/ui/slider-preview.d.ts.map +0 -1
  1211. package/dist/dev/define/ui/slider-thumb.d.ts.map +0 -1
  1212. package/dist/dev/define/ui/slider-thumbnail.d.ts.map +0 -1
  1213. package/dist/dev/define/ui/slider-track.d.ts.map +0 -1
  1214. package/dist/dev/define/ui/slider-value.d.ts.map +0 -1
  1215. package/dist/dev/define/ui/slider.d.ts.map +0 -1
  1216. package/dist/dev/define/ui/status-announcer.d.ts.map +0 -1
  1217. package/dist/dev/define/ui/status-indicator-value.d.ts.map +0 -1
  1218. package/dist/dev/define/ui/status-indicator.d.ts.map +0 -1
  1219. package/dist/dev/define/ui/thumbnail.d.ts.map +0 -1
  1220. package/dist/dev/define/ui/time-group.d.ts.map +0 -1
  1221. package/dist/dev/define/ui/time-separator.d.ts.map +0 -1
  1222. package/dist/dev/define/ui/time-slider-chapter-title.d.ts.map +0 -1
  1223. package/dist/dev/define/ui/time-slider-chapters.d.ts.map +0 -1
  1224. package/dist/dev/define/ui/time-slider.d.ts.map +0 -1
  1225. package/dist/dev/define/ui/time.d.ts.map +0 -1
  1226. package/dist/dev/define/ui/title.d.ts.map +0 -1
  1227. package/dist/dev/define/ui/tooltip-group.d.ts.map +0 -1
  1228. package/dist/dev/define/ui/tooltip-label.d.ts.map +0 -1
  1229. package/dist/dev/define/ui/tooltip-shortcut.d.ts.map +0 -1
  1230. package/dist/dev/define/ui/tooltip.d.ts.map +0 -1
  1231. package/dist/dev/define/ui/volume-indicator-fill.d.ts.map +0 -1
  1232. package/dist/dev/define/ui/volume-indicator-value.d.ts.map +0 -1
  1233. package/dist/dev/define/ui/volume-indicator.d.ts.map +0 -1
  1234. package/dist/dev/define/ui/volume-popover.d.ts.map +0 -1
  1235. package/dist/dev/define/ui/volume-slider.d.ts.map +0 -1
  1236. package/dist/dev/extensions/google-cast/extension.d.ts.map +0 -1
  1237. package/dist/dev/extensions/media-extension-element.d.ts.map +0 -1
  1238. package/dist/dev/extensions/mux-data/extension.d.ts.map +0 -1
  1239. package/dist/dev/i18n/context.d.ts.map +0 -1
  1240. package/dist/dev/i18n/controller.d.ts.map +0 -1
  1241. package/dist/dev/i18n/create-i18n.d.ts.map +0 -1
  1242. package/dist/dev/i18n/locale.d.ts.map +0 -1
  1243. package/dist/dev/i18n/provider-element.d.ts.map +0 -1
  1244. package/dist/dev/i18n/provider-mixin.d.ts.map +0 -1
  1245. package/dist/dev/i18n/render-text.d.ts.map +0 -1
  1246. package/dist/dev/i18n/text-mixin.d.ts.map +0 -1
  1247. package/dist/dev/i18n/types.d.ts.map +0 -1
  1248. package/dist/dev/icons/dist/element/base.d.ts.map +0 -1
  1249. package/dist/dev/icons/dist/html/default/index.d.ts.map +0 -1
  1250. package/dist/dev/icons/dist/html/minimal/index.d.ts.map +0 -1
  1251. package/dist/dev/icons/element/register/index.d.ts.map +0 -1
  1252. package/dist/dev/index.d.ts.map +0 -1
  1253. package/dist/dev/media/background-video/adapter.d.ts.map +0 -1
  1254. package/dist/dev/media/background-video/template.d.ts.map +0 -1
  1255. package/dist/dev/media/cloudflare-video/adapter.d.ts.map +0 -1
  1256. package/dist/dev/media/dash-video/adapter.d.ts.map +0 -1
  1257. package/dist/dev/media/hls-audio/adapter.d.ts.map +0 -1
  1258. package/dist/dev/media/hls-background-video/adapter.d.ts.map +0 -1
  1259. package/dist/dev/media/hls-video/adapter.d.ts.map +0 -1
  1260. package/dist/dev/media/hlsjs-video/adapter.d.ts.map +0 -1
  1261. package/dist/dev/media/mux-audio/hls-js.d.ts.map +0 -1
  1262. package/dist/dev/media/mux-audio/spf.d.ts.map +0 -1
  1263. package/dist/dev/media/mux-video/hls-js.d.ts.map +0 -1
  1264. package/dist/dev/media/mux-video/spf.d.ts.map +0 -1
  1265. package/dist/dev/media/native-hls-video/adapter.d.ts.map +0 -1
  1266. package/dist/dev/media/shaka-video/adapter.d.ts.map +0 -1
  1267. package/dist/dev/media/spotify-audio/adapter.d.ts.map +0 -1
  1268. package/dist/dev/media/tiktok-video/adapter.d.ts.map +0 -1
  1269. package/dist/dev/media/twitch-video/adapter.d.ts.map +0 -1
  1270. package/dist/dev/media/vimeo-video/adapter.d.ts.map +0 -1
  1271. package/dist/dev/media/wistia-video/adapter.d.ts.map +0 -1
  1272. package/dist/dev/media/youtube-video/adapter.d.ts.map +0 -1
  1273. package/dist/dev/player/context.d.ts.map +0 -1
  1274. package/dist/dev/player/controller.d.ts.map +0 -1
  1275. package/dist/dev/player/create-player.d.ts.map +0 -1
  1276. package/dist/dev/presets/audio/minimal-skin.d.ts.map +0 -1
  1277. package/dist/dev/presets/audio/player.d.ts.map +0 -1
  1278. package/dist/dev/presets/audio/skin.d.ts.map +0 -1
  1279. package/dist/dev/presets/background/player.d.ts.map +0 -1
  1280. package/dist/dev/presets/background/skin.d.ts.map +0 -1
  1281. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +0 -1
  1282. package/dist/dev/presets/live-audio/player.d.ts.map +0 -1
  1283. package/dist/dev/presets/live-audio/skin.d.ts.map +0 -1
  1284. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +0 -1
  1285. package/dist/dev/presets/live-video/player.d.ts.map +0 -1
  1286. package/dist/dev/presets/live-video/skin.d.ts.map +0 -1
  1287. package/dist/dev/presets/skin.d.ts.map +0 -1
  1288. package/dist/dev/presets/video/minimal-skin.d.ts.map +0 -1
  1289. package/dist/dev/presets/video/player.d.ts.map +0 -1
  1290. package/dist/dev/presets/video/skin.d.ts.map +0 -1
  1291. package/dist/dev/store/media-attach-mixin.d.ts.map +0 -1
  1292. package/dist/dev/store/types.d.ts.map +0 -1
  1293. package/dist/dev/ui/airplay-button/element.d.ts.map +0 -1
  1294. package/dist/dev/ui/alert-dialog/element.d.ts.map +0 -1
  1295. package/dist/dev/ui/audio-track-radio-group/element.d.ts.map +0 -1
  1296. package/dist/dev/ui/buffering-indicator/element.d.ts.map +0 -1
  1297. package/dist/dev/ui/captions-button/element.d.ts.map +0 -1
  1298. package/dist/dev/ui/captions-radio-group/element.d.ts.map +0 -1
  1299. package/dist/dev/ui/cast-button/element.d.ts.map +0 -1
  1300. package/dist/dev/ui/container/element.d.ts.map +0 -1
  1301. package/dist/dev/ui/context-part-element.d.ts.map +0 -1
  1302. package/dist/dev/ui/controls/backdrop.d.ts.map +0 -1
  1303. package/dist/dev/ui/controls/content.d.ts.map +0 -1
  1304. package/dist/dev/ui/controls/context.d.ts.map +0 -1
  1305. package/dist/dev/ui/controls/element.d.ts.map +0 -1
  1306. package/dist/dev/ui/controls/group.d.ts.map +0 -1
  1307. package/dist/dev/ui/dialog/backdrop.d.ts.map +0 -1
  1308. package/dist/dev/ui/dialog/close.d.ts.map +0 -1
  1309. package/dist/dev/ui/dialog/context.d.ts.map +0 -1
  1310. package/dist/dev/ui/dialog/description.d.ts.map +0 -1
  1311. package/dist/dev/ui/dialog/element.d.ts.map +0 -1
  1312. package/dist/dev/ui/dialog/popup.d.ts.map +0 -1
  1313. package/dist/dev/ui/dialog/title.d.ts.map +0 -1
  1314. package/dist/dev/ui/error-dialog/element.d.ts.map +0 -1
  1315. package/dist/dev/ui/fullscreen-button/element.d.ts.map +0 -1
  1316. package/dist/dev/ui/gesture/element.d.ts.map +0 -1
  1317. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +0 -1
  1318. package/dist/dev/ui/hotkey/element.d.ts.map +0 -1
  1319. package/dist/dev/ui/input-indicator/element.d.ts.map +0 -1
  1320. package/dist/dev/ui/input-indicator/live-indicator.d.ts.map +0 -1
  1321. package/dist/dev/ui/live-button/element.d.ts.map +0 -1
  1322. package/dist/dev/ui/media-button-element.d.ts.map +0 -1
  1323. package/dist/dev/ui/media-ui-element.d.ts.map +0 -1
  1324. package/dist/dev/ui/menu/checkbox-item.d.ts.map +0 -1
  1325. package/dist/dev/ui/menu/content.d.ts.map +0 -1
  1326. package/dist/dev/ui/menu/context.d.ts.map +0 -1
  1327. package/dist/dev/ui/menu/element.d.ts.map +0 -1
  1328. package/dist/dev/ui/menu/group-label.d.ts.map +0 -1
  1329. package/dist/dev/ui/menu/group.d.ts.map +0 -1
  1330. package/dist/dev/ui/menu/item-indicator.d.ts.map +0 -1
  1331. package/dist/dev/ui/menu/item.d.ts.map +0 -1
  1332. package/dist/dev/ui/menu/radio-group.d.ts.map +0 -1
  1333. package/dist/dev/ui/menu/radio-item.d.ts.map +0 -1
  1334. package/dist/dev/ui/menu/separator.d.ts.map +0 -1
  1335. package/dist/dev/ui/mute-button/element.d.ts.map +0 -1
  1336. package/dist/dev/ui/pip-button/element.d.ts.map +0 -1
  1337. package/dist/dev/ui/play-button/element.d.ts.map +0 -1
  1338. package/dist/dev/ui/playback-rate-button/element.d.ts.map +0 -1
  1339. package/dist/dev/ui/playback-rate-radio-group/element.d.ts.map +0 -1
  1340. package/dist/dev/ui/popover/element.d.ts.map +0 -1
  1341. package/dist/dev/ui/poster/element.d.ts.map +0 -1
  1342. package/dist/dev/ui/quality-radio-group/element.d.ts.map +0 -1
  1343. package/dist/dev/ui/radio-group/context.d.ts.map +0 -1
  1344. package/dist/dev/ui/radio-group/element.d.ts.map +0 -1
  1345. package/dist/dev/ui/seek-button/element.d.ts.map +0 -1
  1346. package/dist/dev/ui/seek-indicator/element.d.ts.map +0 -1
  1347. package/dist/dev/ui/seek-indicator/value.d.ts.map +0 -1
  1348. package/dist/dev/ui/slider/buffer.d.ts.map +0 -1
  1349. package/dist/dev/ui/slider/context.d.ts.map +0 -1
  1350. package/dist/dev/ui/slider/element.d.ts.map +0 -1
  1351. package/dist/dev/ui/slider/events.d.ts.map +0 -1
  1352. package/dist/dev/ui/slider/fill.d.ts.map +0 -1
  1353. package/dist/dev/ui/slider/preview.d.ts.map +0 -1
  1354. package/dist/dev/ui/slider/thumb.d.ts.map +0 -1
  1355. package/dist/dev/ui/slider/thumbnail.d.ts.map +0 -1
  1356. package/dist/dev/ui/slider/track.d.ts.map +0 -1
  1357. package/dist/dev/ui/slider/value.d.ts.map +0 -1
  1358. package/dist/dev/ui/status-announcer/element.d.ts.map +0 -1
  1359. package/dist/dev/ui/status-indicator/element.d.ts.map +0 -1
  1360. package/dist/dev/ui/status-indicator/value.d.ts.map +0 -1
  1361. package/dist/dev/ui/text/element.d.ts.map +0 -1
  1362. package/dist/dev/ui/thumbnail/element.d.ts.map +0 -1
  1363. package/dist/dev/ui/time/element.d.ts.map +0 -1
  1364. package/dist/dev/ui/time/group.d.ts.map +0 -1
  1365. package/dist/dev/ui/time/separator.d.ts.map +0 -1
  1366. package/dist/dev/ui/time-slider/chapter-title.d.ts.map +0 -1
  1367. package/dist/dev/ui/time-slider/chapters.d.ts.map +0 -1
  1368. package/dist/dev/ui/time-slider/element.d.ts.map +0 -1
  1369. package/dist/dev/ui/title/element.d.ts.map +0 -1
  1370. package/dist/dev/ui/tooltip/context.d.ts.map +0 -1
  1371. package/dist/dev/ui/tooltip/element.d.ts.map +0 -1
  1372. package/dist/dev/ui/tooltip/group.d.ts.map +0 -1
  1373. package/dist/dev/ui/tooltip/label.d.ts.map +0 -1
  1374. package/dist/dev/ui/tooltip/shortcut.d.ts.map +0 -1
  1375. package/dist/dev/ui/ui-element.d.ts.map +0 -1
  1376. package/dist/dev/ui/volume-indicator/element.d.ts.map +0 -1
  1377. package/dist/dev/ui/volume-indicator/fill.d.ts.map +0 -1
  1378. package/dist/dev/ui/volume-indicator/value.d.ts.map +0 -1
  1379. package/dist/dev/ui/volume-popover/element.d.ts.map +0 -1
  1380. package/dist/dev/ui/volume-slider/element.d.ts.map +0 -1
  1381. package/docs/concepts/accessibility.md +0 -68
  1382. package/docs/concepts/browser-support.md +0 -45
  1383. package/docs/concepts/cdn.md +0 -119
  1384. package/docs/concepts/custom-element-lifecycle.md +0 -115
  1385. package/docs/concepts/security.md +0 -32
  1386. package/docs/concepts/skins.md +0 -188
  1387. package/docs/concepts/v10-roadmap.md +0 -75
  1388. package/docs/how-to/add-keyboard-shortcuts-and-gestures.md +0 -98
  1389. package/docs/how-to/build-with-ai.md +0 -39
  1390. package/docs/how-to/build-your-own-component.md +0 -350
  1391. package/docs/how-to/customize-skins.md +0 -358
  1392. package/docs/how-to/go-fullscreen-and-lock-orientation.md +0 -147
  1393. package/docs/how-to/handle-playback-errors.md +0 -88
  1394. package/docs/how-to/installation.md +0 -165
  1395. package/docs/how-to/migrate-from-plyr.md +0 -406
  1396. package/docs/how-to/migrate-from-video-js-8.md +0 -626
  1397. package/docs/how-to/play-live-streams.md +0 -116
  1398. package/docs/how-to/show-captions-and-subtitles.md +0 -140
  1399. package/docs/how-to/show-timeline-thumbnail-previews.md +0 -164
  1400. package/docs/reference/aria-key-shortcuts-controller.md +0 -117
  1401. package/docs/reference/audio-minimal-skin.md +0 -43
  1402. package/docs/reference/audio-skin.md +0 -43
  1403. package/docs/reference/background-video-skin.md +0 -39
  1404. package/docs/reference/cloudflare-video.md +0 -513
  1405. package/docs/reference/create-translator.md +0 -81
  1406. package/docs/reference/dash-video.md +0 -363
  1407. package/docs/reference/feature-text-tracks.md +0 -134
  1408. package/docs/reference/google-cast.md +0 -83
  1409. package/docs/reference/hls-audio.md +0 -212
  1410. package/docs/reference/hls-background-video.md +0 -100
  1411. package/docs/reference/hls-video.md +0 -339
  1412. package/docs/reference/hlsjs-video.md +0 -1047
  1413. package/docs/reference/html-i-18-n-context.md +0 -55
  1414. package/docs/reference/live-video-minimal-skin.md +0 -51
  1415. package/docs/reference/live-video-skin.md +0 -51
  1416. package/docs/reference/media-attach-mixin.md +0 -101
  1417. package/docs/reference/mux-audio.md +0 -951
  1418. package/docs/reference/mux-data.md +0 -107
  1419. package/docs/reference/mux-video.md +0 -1152
  1420. package/docs/reference/native-hls-video.md +0 -375
  1421. package/docs/reference/player-context.md +0 -60
  1422. package/docs/reference/popover.md +0 -505
  1423. package/docs/reference/shaka-video.md +0 -642
  1424. package/docs/reference/slider.md +0 -859
  1425. package/docs/reference/snapshot-controller.md +0 -244
  1426. package/docs/reference/spotify-audio.md +0 -424
  1427. package/docs/reference/store-controller.md +0 -208
  1428. package/docs/reference/thumbnail.md +0 -386
  1429. package/docs/reference/tiktok-video.md +0 -534
  1430. package/docs/reference/tooltip.md +0 -631
  1431. package/docs/reference/translation-phrases.md +0 -453
  1432. package/docs/reference/twitch-video.md +0 -477
  1433. package/docs/reference/video-minimal-skin.md +0 -49
  1434. package/docs/reference/video-skin.md +0 -49
  1435. package/docs/reference/vimeo-video.md +0 -1056
  1436. package/docs/reference/volume-popover.md +0 -527
  1437. package/docs/reference/volume-slider.md +0 -759
  1438. package/docs/reference/youtube-video.md +0 -603
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffer.js","names":[],"sources":["../../../../src/ui/slider/buffer.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderBufferElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-buffer';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,sBAAb,cAAyC,mBAAgC;;;EAGzC,KAAA,WAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;;;EAFzE,KAAA,UAAA;;AAG5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.ts"],"sourcesContent":["import type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface SliderContextValue {\n /** Base slider state — children use this for data attributes and value display. */\n state: SliderState;\n /** Maps state keys to `data-*` attribute names for part elements. */\n stateAttrMap: StateAttrMap<SliderState>;\n /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */\n pointerValue: number;\n /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */\n thumbAttrs: Record<string, string | number | boolean | undefined>;\n /** Keyboard and focus event handlers for the thumb element. */\n thumbProps: SliderThumbProps;\n /** Optional formatter for value display. Receives domain value and value type. */\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SLIDER_CONTEXT_KEY = Symbol('@videojs/slider');\n\nexport const sliderContext = createContext<SliderContextValue>(SLIDER_CONTEXT_KEY);\n"],"mappings":";AAqBA,MAAa,gBAAgB,cAFF,OAAO,iBAE6B,CAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#controlsState","#i18n","#provider","#disconnect","#slider","#releaseControlsLock","#releaseControlsVisibilityLock"],"sources":["../../../../src/ui/slider/element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n selectControls,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { UIElement } from '../ui-element';\nimport { sliderContext } from './context';\n\n/**\n * @fires value-change - Fired while the slider value changes during an interaction.\n * @fires value-commit - Fired when an interaction commits the slider value.\n * @fires drag-start - Fired when a pointer drag starts.\n * @fires drag-end - Fired when a pointer drag ends.\n */\nexport class SliderElement extends UIElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label: Text | string = '';\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onPressStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n },\n onPressEnd: () => this.#releaseControlsVisibilityLock(),\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: (() => {\n const attrs = this.#core.getAttrs(state);\n\n return { ...attrs, 'aria-label': translateText(attrs['aria-label'], this.#i18n.value) };\n })(),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fill.js","names":[],"sources":["../../../../src/ui/slider/fill.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderFillElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-fill';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,oBAAb,cAAuC,mBAAgC;;;EAGvC,KAAA,WAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;;;EAFzE,KAAA,UAAA;;AAG5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview.js","names":["#ctx","#stopObservingResize","#width","#applyPosition"],"sources":["../../../../src/ui/slider/preview.ts"],"sourcesContent":["import type { SliderPreviewProps } from '@videojs/core';\nimport { applyStateDataAttrs, getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { applyStyles, observeResize } from '@videojs/utils/dom';\n\nimport { UIElement } from '../ui-element';\nimport { sliderContext } from './context';\n\nexport class SliderPreviewElement extends UIElement {\n static readonly tagName = 'media-slider-preview';\n\n static override properties = {\n overflow: { type: String },\n } satisfies PropertyDeclarationMap<'overflow'>;\n\n overflow: NonNullable<SliderPreviewProps['overflow']> = 'clamp';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #stopObservingResize: (() => void) | null = null;\n #width = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#stopObservingResize = observeResize(this, ([entry]) => {\n this.#width = entry!.contentRect.width;\n this.#applyPosition();\n });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#stopObservingResize?.();\n this.#stopObservingResize = null;\n }\n\n #applyPosition(): void {\n applyStyles(this, getSliderPreviewStyle(this.#width, this.overflow));\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n\n this.#applyPosition();\n }\n}\n"],"mappings":";;;;;;AASA,IAAa,uBAAb,cAA0C,UAAU;;;EAOM,KAAA,WAAA;EAExC,KAAA,OAAA,IAAI,gBAAgB,MAAM;GACxC,SAAS;GACT,WAAW;EACb,CAAC;EAE2C,KAAA,uBAAA;EACnC,KAAA,SAAA;;;EAdiB,KAAA,UAAA;;;EAEG,KAAA,aAAA,EAC3B,UAAU,EAAE,MAAM,OAAO,EAC3B;;CAIA;CAKA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,KAAKC,uBAAuB,cAAc,OAAO,CAAC,WAAW;GAC3D,KAAKC,SAAS,MAAO,YAAY;GACjC,KAAKC,eAAe;EACtB,CAAC;CACH;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAKF,uBAAuB;EAC5B,KAAKA,uBAAuB;CAC9B;CAEA,iBAAuB;EACrB,YAAY,MAAM,sBAAsB,KAAKC,QAAQ,KAAK,QAAQ,CAAC;CACrE;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,MAAM,MAAM,KAAKF,KAAK;EAEtB,IAAI,KAAK,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;EAE9D,KAAKG,eAAe;CACtB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"thumb.js","names":["#ctx","#disconnect","#thumbPropsApplied"],"sources":["../../../../src/ui/slider/thumb.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { UIElement } from '../ui-element';\nimport { sliderContext } from './context';\n\nexport class SliderThumbElement extends UIElement {\n static readonly tagName = 'media-slider-thumb';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #disconnect: AbortController | null = null;\n #thumbPropsApplied = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n this.#thumbPropsApplied = false;\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n this.#thumbPropsApplied = false;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n // Apply keyboard and focus handlers once — they don't change per slider instance.\n if (!this.#thumbPropsApplied && this.#disconnect) {\n applyElementProps(this, ctx.thumbProps, { signal: this.#disconnect.signal });\n this.#thumbPropsApplied = true;\n }\n\n // Apply ARIA attributes every update (values change as slider moves).\n applyElementProps(this, ctx.thumbAttrs);\n\n // Apply state data attributes.\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,UAAU;;EACtB,KAAA,UAAA;;CAE1B,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;CACb,CAAC;CAED,cAAsC;CACtC,qBAAqB;CAErB,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,KAAKC,cAAc,IAAI,gBAAgB;EACvC,KAAKC,qBAAqB;CAC5B;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAKD,aAAa,MAAM;EACxB,KAAKA,cAAc;EACnB,KAAKC,qBAAqB;CAC5B;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,MAAM,MAAM,KAAKF,KAAK;EACtB,IAAI,CAAC,KAAK;EAGV,IAAI,CAAC,KAAKE,sBAAsB,KAAKD,aAAa;GAChD,kBAAkB,MAAM,IAAI,YAAY,EAAE,QAAQ,KAAKA,YAAY,OAAO,CAAC;GAC3E,KAAKC,qBAAqB;EAC5B;EAGA,kBAAkB,MAAM,IAAI,UAAU;EAGtC,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;CACvD;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"thumbnail.js","names":["#ctx"],"sources":["../../../../src/ui/slider/thumbnail.ts"],"sourcesContent":["import type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ThumbnailElement } from '../thumbnail/element';\nimport { sliderContext } from './context';\n\n// @ts-expect-error TS2417 — tagName narrows to a different literal for custom element registration.\nexport class SliderThumbnailElement extends ThumbnailElement {\n static override readonly tagName = 'media-slider-thumbnail';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n protected override update(changed: PropertyValues): void {\n const ctx = this.#ctx.value;\n\n if (ctx) this.time = ctx.pointerValue;\n\n super.update(changed);\n }\n}\n"],"mappings":";;;;AAOA,IAAa,yBAAb,cAA4C,iBAAiB;;EACxB,KAAA,UAAA;;CAEnC,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;CACb,CAAC;CAED,OAA0B,SAA+B;EACvD,MAAM,MAAM,KAAKA,KAAK;EAEtB,IAAI,KAAK,KAAK,OAAO,IAAI;EAEzB,MAAM,OAAO,OAAO;CACtB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"track.js","names":[],"sources":["../../../../src/ui/slider/track.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderTrackElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-track';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,qBAAb,cAAwC,mBAAgC;;;EAGxC,KAAA,WAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;;;EAFzE,KAAA,UAAA;;AAG5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.js","names":["#ctx"],"sources":["../../../../src/ui/slider/value.ts"],"sourcesContent":["import { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { UIElement } from '../ui-element';\nimport { sliderContext } from './context';\n\nexport class SliderValueElement extends UIElement {\n static readonly tagName = 'media-slider-value';\n\n static override properties = {\n type: { type: String },\n } satisfies PropertyDeclarationMap<'type'>;\n\n type: 'current' | 'pointer' = 'current';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-live', 'off');\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n const value = this.type === 'pointer' ? ctx.pointerValue : ctx.state.value;\n\n this.textContent = ctx.formatValue ? ctx.formatValue(value, this.type) : String(Math.round(value));\n\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,UAAU;;;EAOlB,KAAA,OAAA;EAEd,KAAA,OAAA,IAAI,gBAAgB,MAAM;GACxC,SAAS;GACT,WAAW;EACb,CAAC;;;EAXyB,KAAA,UAAA;;;EAEG,KAAA,aAAA,EAC3B,MAAM,EAAE,MAAM,OAAO,EACvB;;CAIA;CAKA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,KAAK,aAAa,aAAa,KAAK;CACtC;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,MAAM,MAAM,KAAKA,KAAK;EACtB,IAAI,CAAC,KAAK;EAEV,MAAM,QAAQ,KAAK,SAAS,YAAY,IAAI,eAAe,IAAI,MAAM;EAErE,KAAK,cAAc,IAAI,cAAc,IAAI,YAAY,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,KAAK,CAAC;EAEjG,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;CACvD;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#i18n","#core","#player","#reconnect","#container","#ensureLiveText","#disconnect","#storeUnsubscribe","#liveText"],"sources":["../../../../src/ui/status-announcer/element.ts"],"sourcesContent":["import { createStatusAnnouncerLabels, StatusAnnouncerCore } from '@videojs/core';\nimport { type StatusAnnouncerStore, shouldAnnounceStatusChange, subscribeToStatusAnnouncer } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { containerContext, playerContext } from '../../player/context';\nimport { UIElement } from '../ui-element';\n\nexport class StatusAnnouncerElement extends UIElement {\n static readonly tagName = 'media-status-announcer';\n\n static override properties = {\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<'closeDelay'>;\n\n closeDelay: number | undefined;\n\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #core = new StatusAnnouncerCore();\n // Context can resolve while connected markup is still upgrading.\n #storeUnsubscribe: (() => void) | null = null;\n readonly #player = new ContextConsumer(this, {\n context: playerContext,\n callback: (store) => this.#reconnect(store),\n subscribe: true,\n });\n readonly #container = new ContextConsumer(this, { context: containerContext, subscribe: true });\n\n #disconnect: AbortController | null = null;\n #liveText: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.setAttribute('role', 'status');\n this.#ensureLiveText();\n\n this.#disconnect = new AbortController();\n this.#core.state.subscribe(() => this.requestUpdate(), { signal: this.#disconnect.signal });\n this.#reconnect();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#storeUnsubscribe?.();\n this.#storeUnsubscribe = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#storeUnsubscribe?.();\n this.#core.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps({\n closeDelay: this.closeDelay,\n labels: createStatusAnnouncerLabels(this.#i18n.value, this.#i18n.locale),\n shouldAnnounce: () => shouldAnnounceStatusChange(this.#container.value?.container),\n });\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const label = this.#core.state.current.label;\n const liveText = this.#ensureLiveText();\n\n if (label === null) {\n liveText.replaceChildren();\n } else {\n liveText.replaceChildren(document.createTextNode(label));\n }\n }\n\n #reconnect(store: StatusAnnouncerStore | undefined = this.#player.value): void {\n this.#storeUnsubscribe?.();\n this.#storeUnsubscribe = null;\n\n if (!store) {\n this.#core.resetSnapshot();\n return;\n }\n\n this.#storeUnsubscribe = subscribeToStatusAnnouncer(store, this.#core);\n }\n\n #ensureLiveText(): HTMLElement {\n if (this.#liveText?.isConnected) return this.#liveText;\n\n const existing = this.querySelector<HTMLElement>('[data-status-announcer-content]');\n\n this.#liveText = existing ?? document.createElement('span');\n this.#liveText.setAttribute('data-status-announcer-content', '');\n\n if (!existing) this.append(this.#liveText);\n\n return this.#liveText;\n }\n}\n"],"mappings":";;;;;;;;AAUA,IAAa,yBAAb,cAA4C,UAAU;;EAC1B,KAAA,UAAA;;;EAEG,KAAA,aAAA,EAC3B,YAAY;GAAE,MAAM;GAAQ,WAAW;EAAc,EACvD;;CAIA,QAAiB,IAAI,eAAe,MAAM,WAAW;CACrD,QAAiB,IAAI,oBAAoB;CAEzC,oBAAyC;CACzC,UAAmB,IAAI,gBAAgB,MAAM;EAC3C,SAAS;EACT,WAAW,UAAU,KAAKG,WAAW,KAAK;EAC1C,WAAW;CACb,CAAC;CACD,aAAsB,IAAI,gBAAgB,MAAM;EAAE,SAAS;EAAkB,WAAW;CAAK,CAAC;CAE9F,cAAsC;CACtC,YAAgC;CAEhC,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,WAAW;EAEpB,KAAK,aAAa,QAAQ,QAAQ;EAClC,KAAKE,gBAAgB;EAErB,KAAKC,cAAc,IAAI,gBAAgB;EACvC,KAAKL,MAAM,MAAM,gBAAgB,KAAK,cAAc,GAAG,EAAE,QAAQ,KAAKK,YAAY,OAAO,CAAC;EAC1F,KAAKH,WAAW;CAClB;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAKI,oBAAoB;EACzB,KAAKA,oBAAoB;EACzB,KAAKD,aAAa,MAAM;EACxB,KAAKA,cAAc;CACrB;CAEA,kBAAiC;EAC/B,KAAKC,oBAAoB;EACzB,KAAKN,MAAM,QAAQ;EACnB,MAAM,gBAAgB;CACxB;CAEA,WAA8B,SAA+B;EAC3D,MAAM,WAAW,OAAO;EACxB,KAAKA,MAAM,SAAS;GAClB,YAAY,KAAK;GACjB,QAAQ,4BAA4B,KAAKD,MAAM,OAAO,KAAKA,MAAM,MAAM;GACvE,sBAAsB,2BAA2B,KAAKI,WAAW,OAAO,SAAS;EACnF,CAAC;CACH;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,MAAM,QAAQ,KAAKH,MAAM,MAAM,QAAQ;EACvC,MAAM,WAAW,KAAKI,gBAAgB;EAEtC,IAAI,UAAU,MACZ,SAAS,gBAAgB;OAEzB,SAAS,gBAAgB,SAAS,eAAe,KAAK,CAAC;CAE3D;CAEA,WAAW,QAA0C,KAAKH,QAAQ,OAAa;EAC7E,KAAKK,oBAAoB;EACzB,KAAKA,oBAAoB;EAEzB,IAAI,CAAC,OAAO;GACV,KAAKN,MAAM,cAAc;GACzB;EACF;EAEA,KAAKM,oBAAoB,2BAA2B,OAAO,KAAKN,KAAK;CACvE;CAEA,kBAA+B;EAC7B,IAAI,KAAKO,WAAW,aAAa,OAAO,KAAKA;EAE7C,MAAM,WAAW,KAAK,cAA2B,iCAAiC;EAElF,KAAKA,YAAY,YAAY,SAAS,cAAc,MAAM;EAC1D,KAAKA,UAAU,aAAa,iCAAiC,EAAE;EAE/D,IAAI,CAAC,UAAU,KAAK,OAAO,KAAKA,SAAS;EAEzC,OAAO,KAAKA;CACd;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#i18n","#core","#transition","#liveIndicator","#options"],"sources":["../../../../src/ui/status-indicator/element.ts"],"sourcesContent":["import {\n createInputIndicatorLabels,\n getStatusIndicatorDisplayValue,\n type InputAction,\n StatusIndicatorCore,\n StatusIndicatorDataAttrs,\n} from '@videojs/core';\nimport { createTransition } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { InputIndicatorElement, type InputIndicatorOptions } from '../input-indicator/element';\nimport { LiveIndicator } from '../input-indicator/live-indicator';\n\nexport class StatusIndicatorElement extends InputIndicatorElement<StatusIndicatorCore.State> {\n static readonly tagName = 'media-status-indicator';\n\n static override properties = {\n actions: { type: String },\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<'actions' | 'closeDelay'>;\n\n actions: string | undefined;\n closeDelay: number | undefined;\n\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #core = new StatusIndicatorCore();\n readonly #transition = createTransition();\n readonly #liveIndicator = new LiveIndicator({\n host: this,\n dataAttrs: StatusIndicatorDataAttrs,\n render: renderStatusIndicator,\n });\n readonly #options = { replayOnUpdate: false } satisfies InputIndicatorOptions;\n\n protected get core() {\n return this.#core;\n }\n\n protected get transition() {\n return this.#transition;\n }\n\n protected get liveIndicator() {\n return this.#liveIndicator;\n }\n\n protected override get options() {\n return this.#options;\n }\n\n protected override syncCoreProps(): void {\n this.#core.setProps({\n actions: parseActions(this.actions),\n closeDelay: this.closeDelay,\n labels: createInputIndicatorLabels(this.#i18n.value),\n });\n }\n}\n\nfunction parseActions(actions: string | undefined): readonly InputAction[] | undefined {\n return actions?.split(/[\\s,]+/).filter(Boolean) as readonly InputAction[] | undefined;\n}\n\nfunction renderStatusIndicator(element: HTMLElement, state: StatusIndicatorCore.State): void {\n const value = element.querySelector('media-status-indicator-value');\n if (!value) return;\n\n value.textContent = getStatusIndicatorDisplayValue(state);\n}\n"],"mappings":";;;;;;;AAeA,IAAa,yBAAb,cAA4C,sBAAiD;;EACjE,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,SAAS,EAAE,MAAM,OAAO;GACxB,YAAY;IAAE,MAAM;IAAQ,WAAW;GAAc;EACvD;;CAKA,QAAiB,IAAI,eAAe,MAAM,WAAW;CACrD,QAAiB,IAAI,oBAAoB;CACzC,cAAuB,iBAAiB;CACxC,iBAA0B,IAAI,cAAc;EAC1C,MAAM;EACN,WAAW;EACX,QAAQ;CACV,CAAC;CACD,WAAoB,EAAE,gBAAgB,MAAM;CAE5C,IAAc,OAAO;EACnB,OAAO,KAAKC;CACd;CAEA,IAAc,aAAa;EACzB,OAAO,KAAKC;CACd;CAEA,IAAc,gBAAgB;EAC5B,OAAO,KAAKC;CACd;CAEA,IAAuB,UAAU;EAC/B,OAAO,KAAKC;CACd;CAEA,gBAAyC;EACvC,KAAKH,MAAM,SAAS;GAClB,SAAS,aAAa,KAAK,OAAO;GAClC,YAAY,KAAK;GACjB,QAAQ,2BAA2B,KAAKD,MAAM,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,aAAa,SAAiE;CACrF,OAAO,SAAS,MAAM,QAAQ,CAAC,CAAC,OAAO,OAAO;AAChD;AAEA,SAAS,sBAAsB,SAAsB,OAAwC;CAC3F,MAAM,QAAQ,QAAQ,cAAc,8BAA8B;CAClE,IAAI,CAAC,OAAO;CAEZ,MAAM,cAAc,+BAA+B,KAAK;AAC1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.js","names":[],"sources":["../../../../src/ui/status-indicator/value.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\nexport class StatusIndicatorValueElement extends UIElement {\n static readonly tagName = 'media-status-indicator-value';\n}\n"],"mappings":";;AAEA,IAAa,8BAAb,cAAiD,UAAU;;EAC/B,KAAA,UAAA;;AAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/text/element.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\n\nimport { i18nContext } from '../../i18n/context';\nimport { createTextMixin, type I18nTextMixin as TextMixin } from '../../i18n/text-mixin';\n\nexport const I18nTextMixin: TextMixin = createTextMixin({ context: i18nContext });\n\nexport class TextElement extends I18nTextMixin(ReactiveElement) {\n static readonly tagName = 'media-text';\n}\n\nexport { TextElement as MediaTextElement };\n"],"mappings":";;;;AAKA,MAAa,gBAA2B,gBAAgB,EAAE,SAAS,YAAY,CAAC;AAEhF,IAAa,cAAb,cAAiC,cAAc,eAAe,CAAC,CAAC;;EACpC,KAAA,UAAA;;AAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#shadow","#fallback","#children","#imageAttributes","#textTracks","#externalThumbnails","#api","#img","#slots","#adopt","#thumbnails","#lastTextTrack","#inheritedCrossOrigin","#applySource","#resetStyles","#applyResize"],"sources":["../../../../src/ui/thumbnail/element.ts"],"sourcesContent":["import {\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailImage,\n type ThumbnailResizeResult,\n} from '@videojs/core';\nimport type { ThumbnailApi } from '@videojs/core/dom';\nimport { applyElementProps, applyStateDataAttrs, createThumbnail, selectTextTrack } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport type { MediaTextTrackState } from '@videojs/media';\nimport { findComposedElement, isHTMLImageElement, listen } from '@videojs/utils/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { UIElement } from '../ui-element';\n\nconst SHADOW_CSS = `\\\n:host {\n display: inline-block;\n overflow: hidden;\n}\nimg,\n::slotted(img) {\n display: block;\n}`;\n\n/** The image the element draws when none is supplied, reachable from outside as `::part(image)`. */\nfunction createFallbackImage(): HTMLImageElement {\n const img = document.createElement('img');\n\n img.alt = '';\n img.setAttribute('part', 'image');\n img.setAttribute('aria-hidden', 'true');\n img.setAttribute('decoding', 'async');\n\n return img;\n}\n\n/**\n * `<media-thumbnail>` — resolves and sizes a time-based thumbnail into an image.\n *\n * The element owns `src` and `srcset` on the active image. Left empty, it draws an image of its own in its shadow root.\n * Supply an `<img>` child instead — `<media-thumbnail time=\"12\"><img alt=\"\"></media-thumbnail>` — to compose overlays\n * or loading indicators beside the image the element controls.\n */\nexport class ThumbnailElement extends UIElement {\n static readonly tagName = 'media-thumbnail';\n\n static override properties = {\n time: { type: Number },\n crossOrigin: { type: String, attribute: 'crossorigin' },\n loading: { type: String },\n fetchPriority: { type: String, attribute: 'fetchpriority' },\n } satisfies PropertyDeclarationMap<Exclude<keyof ThumbnailCore.Props, 'thumbnails'>>;\n\n time = 0;\n crossOrigin: ThumbnailCore.Props['crossOrigin'];\n loading: ThumbnailCore.Props['loading'];\n fetchPriority: ThumbnailCore.Props['fetchPriority'];\n\n readonly #core = new ThumbnailCore();\n readonly #shadow = this.attachShadow({ mode: 'open' });\n readonly #fallback = createFallbackImage();\n readonly #children = new MutationObserver(() => this.requestUpdate());\n // An image assigned through a forwarding slot lives outside this subtree, so its\n // attributes are watched on the image itself.\n readonly #imageAttributes = new MutationObserver(() => this.requestUpdate());\n readonly #textTracks = new PlayerController(this, playerContext, selectTextTrack);\n\n #slots: AbortController | null = null;\n #img: HTMLImageElement | null = null;\n #thumbnails: ThumbnailImage[] = [];\n #externalThumbnails: ThumbnailImage[] | undefined;\n #lastTextTrack: MediaTextTrackState | undefined;\n #api: ThumbnailApi | null = null;\n\n constructor() {\n super();\n\n const style = document.createElement('style');\n\n style.textContent = SHADOW_CSS;\n this.#shadow.append(style, document.createElement('slot'), this.#fallback);\n }\n\n /**\n * Set thumbnail images directly, bypassing the automatic `<track>` detection. When set, this takes priority over the\n * text track path.\n */\n get thumbnails(): ThumbnailImage[] | undefined {\n return this.#externalThumbnails;\n }\n\n set thumbnails(value: ThumbnailImage[] | undefined) {\n this.#externalThumbnails = value;\n this.requestUpdate();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.#api = createThumbnail({\n getContainer: () => this,\n getImg: () => this.#img,\n onStateChange: () => this.requestUpdate(),\n });\n this.#children.observe(this, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['src', 'srcset'],\n });\n\n // Nodes assigned to a forwarding slot are not children of this subtree, so an image slotted\n // in later never shows up as a mutation. The slot announces it with `slotchange` instead.\n this.#slots = new AbortController();\n listen(this, 'slotchange', () => this.requestUpdate(), { signal: this.#slots.signal });\n\n // Disconnecting let go of the image, and reconnecting alone schedules no update,\n // so a moved element adopts its image and reapplies the source here.\n this.requestUpdate();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this.#adopt(null);\n this.#children.disconnect();\n this.#slots?.abort();\n this.#slots = null;\n this.#api?.destroy();\n this.#api = null;\n }\n\n override destroyCallback(): void {\n this.#api?.destroy();\n super.destroyCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const textTrack = this.#textTracks.value;\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n if (this.#externalThumbnails) {\n this.#thumbnails = this.#externalThumbnails;\n } else if (textTrack !== this.#lastTextTrack) {\n this.#lastTextTrack = textTrack;\n this.#thumbnails =\n textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }\n\n const thumbnail = this.#core.findActiveThumbnail(this.#thumbnails, this.time);\n const img = findComposedElement(this, isHTMLImageElement) ?? this.#fallback;\n\n this.#adopt(img);\n\n // Sync img attributes from element properties.\n applyElementProps(img, {\n crossorigin: this.#core.resolveCrossOrigin(this.crossOrigin, this.#inheritedCrossOrigin(textTrack)),\n loading: this.loading,\n fetchpriority: this.fetchPriority,\n });\n\n // Track src changes via the thumbnail API.\n this.#api?.updateSrc(thumbnail?.url);\n this.#applySource(thumbnail?.url);\n this.#api?.connect();\n\n if (!thumbnail) {\n this.#resetStyles();\n\n const state = this.#core.getState(false, false, undefined);\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, ThumbnailDataAttrs);\n return;\n }\n\n const api = this.#api;\n const state = this.#core.getState(api?.loading ?? false, api?.error ?? false, thumbnail);\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, ThumbnailDataAttrs);\n\n if (api?.naturalWidth && api.naturalHeight) {\n const constraints = api.readConstraints();\n const result = this.#core.resize(thumbnail, api.naturalWidth, api.naturalHeight, constraints);\n\n if (result) {\n this.#applyResize(result);\n }\n }\n }\n\n /**\n * Leaving `crossOrigin` unset means \"follow the media element\", so thumbnails keep working on a CORS-enabled player\n * without a skin having to thread an attribute through. Only the `<track>` path inherits: `thumbnails` set directly\n * may point at a host that has nothing to do with the media element.\n */\n #inheritedCrossOrigin(textTrack: MediaTextTrackState | undefined): ThumbnailCore.Props['crossOrigin'] {\n return this.#externalThumbnails ? undefined : textTrack?.thumbnailTrackCrossOrigin;\n }\n\n #applyResize(result: ThumbnailResizeResult): void {\n this.style.width = `${result.containerWidth}px`;\n this.style.height = `${result.containerHeight}px`;\n\n const imgStyle = this.#img?.style;\n if (!imgStyle) return;\n\n imgStyle.width = `${result.imageWidth}px`;\n imgStyle.height = `${result.imageHeight}px`;\n imgStyle.maxWidth = 'none';\n imgStyle.transform =\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : '';\n }\n\n #resetStyles(): void {\n this.style.width = '';\n this.style.height = '';\n\n const imgStyle = this.#img?.style;\n if (!imgStyle) return;\n\n imgStyle.width = '';\n imgStyle.height = '';\n imgStyle.maxWidth = '';\n imgStyle.transform = '';\n }\n\n #adopt(next: HTMLImageElement | null): void {\n if (next === this.#img) return;\n\n const previous = this.#img;\n\n if (previous) {\n this.#api?.disconnectImg(previous);\n this.#resetStyles();\n previous.removeAttribute('src');\n previous.removeAttribute('srcset');\n }\n\n this.#img = next;\n this.#imageAttributes.disconnect();\n\n if (next && next !== this.#fallback) {\n this.#imageAttributes.observe(next, { attributes: true, attributeFilter: ['src', 'srcset'] });\n }\n\n // The fallback only occupies the shadow root while it is the active image,\n // so a supplied image never sits beside a hidden one.\n if (next === this.#fallback) this.#shadow.append(this.#fallback);\n else if (next) this.#fallback.remove();\n\n // Reset the request even when the next image will receive the same URL. A\n // replacement image is a new download with its own lifecycle.\n this.#api?.updateSrc(undefined);\n }\n\n #applySource(src: string | undefined): void {\n const img = this.#img;\n if (!img) return;\n\n // A srcset candidate wins over src, so the root has to clear both parts of\n // the source contract before applying the selected thumbnail URL.\n img.removeAttribute('srcset');\n\n if (!src) img.removeAttribute('src');\n else if (img.getAttribute('src') !== src) img.setAttribute('src', src);\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#state","#hasTimeRange","#toggleType","#core","#buffer","#i18n","#signSpan","#textNode","#disconnect","#syncListeners","#listening","#activeType","#clearAttrs","#getLabelParams","#handleClick","#handleKeyDown"],"sources":["../../../../src/ui/time/element.ts"],"sourcesContent":["import { TimeCore, TimeDataAttrs, type TimeType } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, logMissingFeature, selectBuffer, selectTime } from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport { durationSuffixText, elapsedSuffixText, remainingSuffixText } from '@videojs/core/i18n/text/time';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { hasTimeRange } from '@videojs/media';\nimport { isInteractiveActivation } from '@videojs/utils/dom';\nimport { formatTimeAsPhrase } from '@videojs/utils/time';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { UIElement } from '../ui-element';\n\nexport class TimeElement extends UIElement {\n static readonly tagName = 'media-time';\n\n static override properties = {\n type: { type: String },\n negativeSign: { type: String, attribute: 'negative-sign' },\n label: { type: String },\n toggle: { type: Boolean },\n } satisfies PropertyDeclarationMap<keyof TimeCore.Props>;\n\n type: TimeType = TimeCore.defaultProps.type;\n negativeSign = TimeCore.defaultProps.negativeSign;\n label: Text | string = '';\n toggle = TimeCore.defaultProps.toggle;\n\n readonly #core = new TimeCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n readonly #buffer = new PlayerController(this, playerContext, selectBuffer);\n readonly #i18n = new I18nController(this, i18nContext);\n\n readonly #signSpan = document.createElement('span');\n readonly #textNode = new Text();\n\n #disconnect: AbortController | null = null;\n #listening = false;\n #activeType: TimeType = TimeCore.defaultProps.type;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n this.#syncListeners();\n\n if (!this.#signSpan.parentNode) {\n this.#signSpan.setAttribute('aria-hidden', 'true');\n this.#signSpan.hidden = true;\n this.append(this.#signSpan, this.#textNode);\n }\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n this.#listening = false;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n\n if (changed.has('type') || changed.has('toggle')) {\n this.#activeType = this.type;\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n if (changed.has('toggle')) {\n this.#syncListeners();\n }\n\n const media = this.#state.value;\n\n if (!media) {\n this.#clearAttrs();\n return;\n }\n\n this.#core.setProps({\n type: this.toggle ? this.#activeType : this.type,\n negativeSign: this.negativeSign,\n label: this.label,\n toggle: this.toggle,\n });\n this.#core.setMedia({ ...media, seekable: this.#buffer.value?.seekable ?? [] });\n this.#core.setFormatLocale(this.#i18n.locale);\n const state = this.#core.getState();\n\n this.#signSpan.hidden = !state.negative;\n this.#signSpan.textContent = state.negative ? this.negativeSign : '';\n this.#textNode.textContent = state.text;\n\n const attrs = this.#core.getAttrs(state, this.type);\n const label = translateText(attrs['aria-label'], this.#i18n.value, this.#getLabelParams(state));\n const description = attrs['aria-description']\n ? translateText(attrs['aria-description'], this.#i18n.value)\n : undefined;\n\n applyElementProps(this, {\n 'aria-label': label,\n 'aria-description': description,\n 'aria-disabled': attrs['aria-disabled'],\n role: this.toggle ? attrs.role : 'time',\n tabIndex: attrs.tabIndex,\n datetime: this.toggle || state.unavailable ? undefined : state.datetime,\n });\n applyStateDataAttrs(this, state, TimeDataAttrs);\n }\n\n #getLabelParams(state: TimeCore.State): { duration: string } | undefined {\n const params = this.#core.getLabelParams(state);\n if (!params) return undefined;\n\n const duration = formatTimeAsPhrase(Math.abs(state.seconds), { locale: this.#i18n.locale });\n\n const text = {\n current: elapsedSuffixText,\n duration: durationSuffixText,\n remaining: remainingSuffixText,\n }[state.type];\n\n return { duration: translateText(text, this.#i18n.value, { duration }) };\n }\n\n #handleClick = (event: MouseEvent): void => {\n if (event.defaultPrevented || !this.toggle || !this.#state.value || !this.#hasTimeRange()) return;\n\n this.#toggleType();\n };\n\n #handleKeyDown = (event: KeyboardEvent): void => {\n if (event.defaultPrevented || !isInteractiveActivation(event)) return;\n\n if (!this.toggle || !this.#state.value || !this.#hasTimeRange()) return;\n\n // Prevent space from scrolling page.\n event.preventDefault();\n\n if (event.repeat) return;\n\n this.#toggleType();\n };\n\n #toggleType(): void {\n if (this.type === 'current') {\n this.#activeType = this.#activeType === 'remaining' ? 'current' : 'remaining';\n } else {\n this.#activeType = this.#activeType === 'duration' ? 'remaining' : 'duration';\n }\n\n this.requestUpdate();\n }\n\n #hasTimeRange(): boolean {\n const media = this.#state.value;\n if (!media) return false;\n\n return hasTimeRange({ ...media, seekable: this.#buffer.value?.seekable ?? [] });\n }\n\n #syncListeners(): void {\n if (!this.toggle || !this.#disconnect || this.#listening) return;\n\n this.#listening = true;\n applyElementProps(\n this,\n {\n onClick: this.#handleClick,\n onKeyDown: this.#handleKeyDown,\n },\n { signal: this.#disconnect.signal }\n );\n }\n\n #clearAttrs(): void {\n applyElementProps(this, {\n 'aria-label': undefined,\n 'aria-description': undefined,\n 'aria-disabled': undefined,\n role: undefined,\n tabIndex: undefined,\n datetime: undefined,\n 'data-type': undefined,\n 'data-disabled': undefined,\n 'data-unavailable': undefined,\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"group.js","names":[],"sources":["../../../../src/ui/time/group.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\nexport class TimeGroupElement extends UIElement {\n static readonly tagName = 'media-time-group';\n\n // Future: Could provide context for hoursDisplay to children via Lit context\n}\n"],"mappings":";;AAEA,IAAa,mBAAb,cAAsC,UAAU;;EACpB,KAAA,UAAA;;AAG5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"separator.js","names":[],"sources":["../../../../src/ui/time/separator.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\nexport class TimeSeparatorElement extends UIElement {\n static readonly tagName = 'media-time-separator';\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Set aria-hidden for accessibility\n this.setAttribute('aria-hidden', 'true');\n\n // Set default content if empty\n if (!this.textContent?.trim()) {\n this.textContent = '/';\n }\n }\n}\n"],"mappings":";;AAEA,IAAa,uBAAb,cAA0C,UAAU;;EACxB,KAAA,UAAA;;CAE1B,oBAAmC;EACjC,MAAM,kBAAkB;EAGxB,KAAK,aAAa,eAAe,MAAM;EAGvC,IAAI,CAAC,KAAK,aAAa,KAAK,GAC1B,KAAK,cAAc;CAEvB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chapter-title.js","names":["#core","#slider","#textTrack","#time"],"sources":["../../../../src/ui/time-slider/chapter-title.ts"],"sourcesContent":["import { TimeSliderChaptersCore } from '@videojs/core';\nimport { selectTextTrack, selectTime } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { sliderContext } from '../slider/context';\nimport { UIElement } from '../ui-element';\n\n/** Displays the chapter title at the current pointer or keyboard position. */\nexport class TimeSliderChapterTitleElement extends UIElement {\n static readonly tagName = 'media-time-slider-chapter-title';\n\n readonly #core = new TimeSliderChaptersCore();\n readonly #slider = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n readonly #textTrack = new PlayerController(this, playerContext, selectTextTrack);\n readonly #time = new PlayerController(this, playerContext, selectTime);\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const slider = this.#slider.value;\n if (!slider) return;\n\n const duration = this.#time.value?.duration ?? 0;\n const { chapters } = this.#core.getRanges(this.#textTrack.value?.chaptersCues ?? [], 0, duration);\n\n const keyboard = slider.state.interactive && !slider.state.pointing && !slider.state.dragging;\n const value = slider.state.pointing || slider.state.dragging ? slider.pointerValue : slider.state.value;\n const chapter = this.#core.findChapter(chapters, value);\n\n this.textContent = chapter?.cue?.text ?? '';\n\n if (keyboard) {\n this.removeAttribute('aria-hidden');\n this.setAttribute('aria-live', 'polite');\n } else {\n this.setAttribute('aria-hidden', 'true');\n this.removeAttribute('aria-live');\n }\n }\n}\n"],"mappings":";;;;;;;;;AAWA,IAAa,gCAAb,cAAmD,UAAU;;EACjC,KAAA,UAAA;;CAE1B,QAAiB,IAAI,uBAAuB;CAC5C,UAAmB,IAAI,gBAAgB,MAAM;EAAE,SAAS;EAAe,WAAW;CAAK,CAAC;CACxF,aAAsB,IAAI,iBAAiB,MAAM,eAAe,eAAe;CAC/E,QAAiB,IAAI,iBAAiB,MAAM,eAAe,UAAU;CAErE,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,MAAM,SAAS,KAAKC,QAAQ;EAC5B,IAAI,CAAC,QAAQ;EAEb,MAAM,WAAW,KAAKE,MAAM,OAAO,YAAY;EAC/C,MAAM,EAAE,aAAa,KAAKH,MAAM,UAAU,KAAKE,WAAW,OAAO,gBAAgB,CAAC,GAAG,GAAG,QAAQ;EAEhG,MAAM,WAAW,OAAO,MAAM,eAAe,CAAC,OAAO,MAAM,YAAY,CAAC,OAAO,MAAM;EACrF,MAAM,QAAQ,OAAO,MAAM,YAAY,OAAO,MAAM,WAAW,OAAO,eAAe,OAAO,MAAM;EAClG,MAAM,UAAU,KAAKF,MAAM,YAAY,UAAU,KAAK;EAEtD,KAAK,cAAc,SAAS,KAAK,QAAQ;EAEzC,IAAI,UAAU;GACZ,KAAK,gBAAgB,aAAa;GAClC,KAAK,aAAa,aAAa,QAAQ;EACzC,OAAO;GACL,KAAK,aAAa,eAAe,MAAM;GACvC,KAAK,gBAAgB,WAAW;EAClC;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chapters.js","names":["#segments","#core","#slider","#textTrack","#buffer","#time","#rendered","#getTemplateRoot","#setStyle","#templateChecked","#templateRoot"],"sources":["../../../../src/ui/time-slider/chapters.ts"],"sourcesContent":["import {\n SliderSegmentsCore,\n TimeSliderChapterCSSVars,\n TimeSliderChapterDataAttrs,\n TimeSliderChaptersCore,\n} from '@videojs/core';\nimport { applyStateDataAttrs, selectBuffer, selectTextTrack, selectTime } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { cloneTemplateRoot, getTemplateElement, getTemplateRoot } from '@videojs/utils/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { sliderContext } from '../slider/context';\nimport { UIElement } from '../ui-element';\n\n/**\n * Clones a light-DOM template once per normalized chapter range.\n *\n * The required template must contain exactly one HTML root element. When no chapter cues are available, the template is\n * cloned once for a full-duration range.\n */\nexport class TimeSliderChaptersElement extends UIElement {\n static readonly tagName = 'media-time-slider-chapters';\n\n readonly #segments = new SliderSegmentsCore();\n readonly #core = new TimeSliderChaptersCore();\n readonly #slider = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n readonly #textTrack = new PlayerController(this, playerContext, selectTextTrack);\n readonly #buffer = new PlayerController(this, playerContext, selectBuffer);\n readonly #time = new PlayerController(this, playerContext, selectTime);\n readonly #rendered = new Map<string, HTMLElement>();\n #templateRoot: HTMLElement | null = null;\n #templateChecked = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-hidden', 'true');\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const slider = this.#slider.value;\n const duration = this.#time.value?.duration ?? 0;\n const templateRoot = this.#getTemplateRoot();\n\n if (!slider) return;\n\n applyStateDataAttrs(this, slider.state, slider.stateAttrMap);\n\n if (!templateRoot) return;\n\n const { chapters, ranges, max } = this.#core.getRanges(this.#textTrack.value?.chaptersCues ?? [], 0, duration);\n\n const geometry = this.#segments.getGeometry({\n ranges,\n min: 0,\n max,\n orientation: slider.state.orientation,\n });\n\n const buffered = this.#buffer.value?.buffered ?? [];\n const bufferedEnd = buffered.length ? buffered[buffered.length - 1]![1] : 0;\n\n const next = new Map<string, HTMLElement>();\n\n for (const segment of geometry) {\n const state = this.#core.getState(\n this.#segments.getState(segment, slider.state, slider.pointerValue),\n chapters,\n bufferedEnd\n );\n let root = this.#rendered.get(state.key);\n\n if (!root) root = cloneTemplateRoot(templateRoot, this.ownerDocument);\n\n this.#setStyle(root, 'pointer-events', state.cue ? undefined : 'none');\n this.#setStyle(root, TimeSliderChapterCSSVars.start, state.startPercent);\n this.#setStyle(root, TimeSliderChapterCSSVars.end, state.endPercent);\n this.#setStyle(root, TimeSliderChapterCSSVars.width, state.width ?? state.height);\n this.#setStyle(root, TimeSliderChapterCSSVars.fill, `${state.fillPercent}%`);\n this.#setStyle(root, TimeSliderChapterCSSVars.buffer, `${state.bufferPercent}%`);\n applyStateDataAttrs(root, slider.state, slider.stateAttrMap);\n applyStateDataAttrs(root, state, TimeSliderChapterDataAttrs);\n\n next.set(state.key, root);\n }\n\n for (const [key, root] of this.#rendered) {\n if (!next.has(key)) root.remove();\n }\n\n let before: ChildNode | null = null;\n\n for (const root of [...next.values()].reverse()) {\n if (root.parentNode !== this || root.nextSibling !== before) this.insertBefore(root, before);\n\n before = root;\n }\n\n this.#rendered.clear();\n\n for (const [key, rendered] of next) this.#rendered.set(key, rendered);\n }\n\n #getTemplateRoot(): HTMLElement | null {\n if (this.#templateChecked) return this.#templateRoot;\n\n const template = getTemplateElement(this);\n\n if (!template) {\n for (const node of [...this.childNodes]) node.remove();\n\n return null;\n }\n\n this.#templateChecked = true;\n const root = getTemplateRoot(template);\n\n for (const node of [...this.childNodes]) {\n if (node !== template) node.remove();\n }\n\n if (root?.namespaceURI !== 'http://www.w3.org/1999/xhtml') {\n if (__DEV__) {\n console.warn(`[${this.localName}] template must contain exactly one HTML root element.`);\n }\n\n return null;\n }\n\n this.#templateRoot = root as HTMLElement;\n return this.#templateRoot;\n }\n\n #setStyle(element: HTMLElement, name: string, value: string | undefined): void {\n if (value === undefined) element.style.removeProperty(name);\n else element.style.setProperty(name, value);\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#controlsState","#provider","#timeState","#bufferState","#playbackState","#i18n","#disconnect","#slider","#releaseControlsLock","#releaseControlsVisibilityLock","#resumeIfDragPaused"],"sources":["../../../../src/ui/time-slider/element.ts"],"sourcesContent":["import { TimeSliderCore, TimeSliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getTimeSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectBuffer,\n selectControls,\n selectPlayback,\n selectTime,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { hasTimeRange } from '@videojs/media';\nimport { applyStyles } from '@videojs/utils/dom';\nimport { formatTime } from '@videojs/utils/time';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { sliderContext } from '../slider/context';\nimport { UIElement } from '../ui-element';\n\n/**\n * @fires drag-start - Fired when a pointer drag starts.\n * @fires drag-end - Fired when a pointer drag ends.\n */\nexport class TimeSliderElement extends UIElement {\n static readonly tagName = 'media-time-slider';\n\n static override properties = {\n label: { type: String },\n changeThrottle: { type: Number, attribute: 'change-throttle' },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n pauseOnDrag: { type: Boolean, attribute: 'pause-on-drag' },\n } satisfies PropertyDeclarationMap<Exclude<keyof TimeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label: Text | string = '';\n changeThrottle = TimeSliderCore.defaultProps.changeThrottle;\n step = TimeSliderCore.defaultProps.step;\n largeStep = TimeSliderCore.defaultProps.largeStep;\n orientation = TimeSliderCore.defaultProps.orientation;\n disabled = TimeSliderCore.defaultProps.disabled;\n thumbAlignment = TimeSliderCore.defaultProps.thumbAlignment;\n pauseOnDrag = TimeSliderCore.defaultProps.pauseOnDrag;\n\n readonly #core = new TimeSliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #timeState = new PlayerController(this, playerContext, selectTime);\n readonly #bufferState = new PlayerController(this, playerContext, selectBuffer);\n readonly #playbackState = new PlayerController(this, playerContext, selectPlayback);\n readonly #i18n = new I18nController(this, i18nContext);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isDisabled: () => {\n const time = this.#timeState.value;\n const buffer = this.#bufferState.value;\n\n return this.disabled || !time || !buffer || !hasTimeRange({ ...time, ...buffer });\n },\n getPercent: () => {\n const media = this.#timeState.value;\n if (!media) return 0;\n\n return this.#core.percentFromValue(media.currentTime);\n },\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueCommit: (percent) => {\n const media = this.#timeState.value;\n\n if (media) media.seek(this.#core.rawValueFromPercent(percent));\n },\n changeThrottle: this.changeThrottle,\n onPressStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n },\n onPressEnd: () => this.#releaseControlsVisibilityLock(),\n onDragStart: () => {\n this.#core.startDrag(this.#playbackState.value);\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.#core.endDrag(this.#playbackState.value);\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n if (__DEV__ && !this.#timeState.value) {\n logMissingFeature(this.localName, this.#timeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#resumeIfDragPaused();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#resumeIfDragPaused();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n // createSlider's destroy() does not fire onDragEnd, so a teardown mid-drag\n // would leave playback paused. Called from both disconnect and destroy paths\n // before super so the PlayerController is still attached.\n #resumeIfDragPaused(): void {\n this.#core.endDrag(this.#playbackState.value);\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps({\n label: this.label,\n changeThrottle: this.changeThrottle,\n step: this.step,\n largeStep: this.largeStep,\n orientation: this.orientation,\n disabled: this.disabled,\n thumbAlignment: this.thumbAlignment,\n pauseOnDrag: this.pauseOnDrag,\n });\n this.#core.setFormatLocale(this.#i18n.locale);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n if (!this.#slider) return;\n\n const time = this.#timeState.value;\n const buffer = this.#bufferState.value;\n\n if (!time) return;\n\n this.#core.setInput(this.#slider.input.current);\n const media = { ...time, ...(buffer ?? { buffered: [], seekable: [] }) };\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n const cssVars = getTimeSliderCSSVars(this.#slider.adjustForAlignment(state));\n const thumbAttrs = this.#core.getAttrs(state);\n\n applyStyles(this, cssVars);\n\n // Domain-specific data attributes on root (includes data-seeking).\n applyStateDataAttrs(this, state, TimeSliderDataAttrs);\n\n // Provide context to child elements with base slider data attrs.\n this.#provider.setValue({\n state,\n stateAttrMap: TimeSliderDataAttrs,\n pointerValue: this.#core.rawValueFromPercent(state.pointerPercent),\n thumbAttrs: {\n ...thumbAttrs,\n 'aria-label': translateText(thumbAttrs['aria-label'], this.#i18n.value),\n 'aria-valuetext': translateText(\n thumbAttrs['aria-valuetext'],\n this.#i18n.value,\n this.#core.getValueTextParams(state)\n ),\n },\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => formatTime(value, state.duration, { locale: this.#i18n.locale }),\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#metadataState","#textNode"],"sources":["../../../../src/ui/title/element.ts"],"sourcesContent":["import { TitleCore, TitleDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectMetadata } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { UIElement } from '../ui-element';\n\n/**\n * Displays the resolved content title.\n *\n * The element owns its text content. Set the title through the player's `content-title` attribute rather than by\n * writing children.\n */\nexport class TitleElement extends UIElement {\n static readonly tagName = 'media-title';\n\n readonly #core = new TitleCore();\n readonly #metadataState = new PlayerController(this, playerContext, selectMetadata);\n\n readonly #textNode = new Text();\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (!this.#textNode.parentNode) {\n this.append(this.#textNode);\n }\n\n if (__DEV__ && !this.#metadataState.value) {\n logMissingFeature(this.localName, this.#metadataState.displayName!);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const metadata = this.#metadataState.value;\n if (!metadata) return;\n\n const state = this.#core.getState(metadata);\n\n this.#textNode.textContent = state.title;\n this.hidden = state.hidden;\n\n applyStateDataAttrs(this, state, TitleDataAttrs);\n }\n}\n"],"mappings":";;;;;;;;;;;;AAcA,IAAa,eAAb,cAAkC,UAAU;;EAChB,KAAA,UAAA;;CAE1B,QAAiB,IAAI,UAAU;CAC/B,iBAA0B,IAAI,iBAAiB,MAAM,eAAe,cAAc;CAElF,YAAqB,IAAI,KAAK;CAE9B,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,CAAC,KAAKE,UAAU,YAClB,KAAK,OAAO,KAAKA,SAAS;CAM9B;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,MAAM,WAAW,KAAKD,eAAe;EACrC,IAAI,CAAC,UAAU;EAEf,MAAM,QAAQ,KAAKD,MAAM,SAAS,QAAQ;EAE1C,KAAKE,UAAU,cAAc,MAAM;EACnC,KAAK,SAAS,MAAM;EAEpB,oBAAoB,MAAM,OAAO,cAAc;CACjD;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/tooltip/context.ts"],"sourcesContent":["import type { TooltipGroupCore } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nconst TOOLTIP_GROUP_CONTEXT_KEY = Symbol('@videojs/tooltip-group');\n\nexport const tooltipGroupContext = createContext<TooltipGroupCore>(TOOLTIP_GROUP_CONTEXT_KEY);\n"],"mappings":";AAKA,MAAa,sBAAsB,cAFD,OAAO,wBAE0B,CAAyB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#i18n","#groupConsumer","#containerCtx","#popupGroupCtx","#position","#disconnect","#tooltip","#snapshot","#cleanupTrigger","#syncTrigger","#currentTrigger","#syncContent","#triggerAbort","#hostHasAuthoredTooltipContent"],"sources":["../../../../src/ui/tooltip/element.ts"],"sourcesContent":["import {\n type ButtonState,\n POPUP_HOST_ATTR,\n TooltipCore,\n TooltipCSSVars,\n TooltipDataAttrs,\n type TooltipInput,\n} from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createTooltip,\n createTransition,\n HOTKEY_SHORTCUT_CHANGE_EVENT,\n type PositioningBoundary,\n type TooltipApi,\n type TooltipChangeDetails,\n type TooltipOpenChangeReason,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { State } from '@videojs/store';\nimport { SnapshotController } from '@videojs/store/html';\nimport { listen, tryHidePopover, tryShowPopover } from '@videojs/utils/dom';\nimport { isFunction } from '@videojs/utils/predicate';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { containerContext } from '../../player/context';\nimport { popupGroupContext } from '../../player/popup-group-context';\nimport { PositionController } from '../position-controller';\nimport { UIElement } from '../ui-element';\nimport { tooltipGroupContext } from './context';\nimport { TooltipLabelElement } from './label';\nimport { TooltipShortcutElement } from './shortcut';\n\ntype TriggerElement = HTMLElement & {\n getLabel(): Text | string | undefined;\n getResolvedLabel?(): string | undefined;\n getShortcut?: (() => string | undefined) | undefined;\n $state: State<ButtonState>;\n};\n\nfunction isLabelTrigger(el: HTMLElement): el is TriggerElement {\n return '$state' in el;\n}\n\n/** @fires open-change - Fired when the tooltip's open state changes. */\nexport class TooltipElement extends UIElement {\n static readonly tagName = 'media-tooltip';\n\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n side: { type: String },\n align: { type: String },\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n disableHoverablePopup: { type: Boolean, attribute: 'disable-hoverable-popup' },\n disabled: { type: Boolean },\n sticky: { type: Boolean },\n boundary: { type: String },\n trigger: { type: String },\n } satisfies PropertyDeclarationMap<keyof TooltipCore.Props | 'boundary' | 'trigger'>;\n\n open = TooltipCore.defaultProps.open;\n defaultOpen = TooltipCore.defaultProps.defaultOpen;\n side = TooltipCore.defaultProps.side;\n align = TooltipCore.defaultProps.align;\n delay = TooltipCore.defaultProps.delay;\n closeDelay = TooltipCore.defaultProps.closeDelay;\n disableHoverablePopup = TooltipCore.defaultProps.disableHoverablePopup;\n disabled = TooltipCore.defaultProps.disabled;\n sticky = TooltipCore.defaultProps.sticky;\n boundary: PositioningBoundary = 'container';\n trigger = '';\n\n readonly #core = new TooltipCore();\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #groupConsumer = new ContextConsumer(this, { context: tooltipGroupContext });\n readonly #containerCtx = new ContextConsumer(this, { context: containerContext, subscribe: true });\n readonly #popupGroupCtx = new ContextConsumer(this, { context: popupGroupContext });\n readonly #position = new PositionController(this);\n #tooltip: TooltipApi | null = null;\n #snapshot: SnapshotController<TooltipInput> | null = null;\n\n // Cleanup controllers\n #disconnect: AbortController | null = null;\n #triggerAbort: AbortController | null = null;\n #currentTrigger: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.setAttribute(POPUP_HOST_ATTR, '');\n\n this.#disconnect = new AbortController();\n\n this.#tooltip = createTooltip({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: TooltipChangeDetails) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen, ...details } }));\n },\n delay: () => this.delay,\n closeDelay: () => this.closeDelay,\n disableHoverablePopup: () => this.disableHoverablePopup,\n disabled: () => this.disabled,\n sticky: () => this.sticky,\n // Lazy getter — group may arrive after connect via context.\n group: () => this.#groupConsumer.value,\n popupGroup: () => this.#popupGroupCtx.value,\n });\n\n // Register self as the popup element — the element IS the popup.\n this.#tooltip.setPopupElement(this);\n\n // Apply popup event handlers (pointerenter/leave, focusout) to self.\n applyElementProps(this, this.#tooltip.popupProps, { signal: this.#disconnect.signal });\n\n // Subscribe to interaction state for reactive updates.\n if (this.#snapshot) {\n this.#snapshot.track(this.#tooltip.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#tooltip.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n // Uncontrolled mode: open if `defaultOpen` is set. Controlled `open`\n // is already synced by `willUpdate` on the first render cycle.\n if (this.defaultOpen && !this.open) {\n this.#tooltip?.open();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#cleanupTrigger();\n this.#tooltip?.destroy();\n this.#tooltip = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n close(reason: TooltipOpenChangeReason = 'imperative-action'): void {\n this.#tooltip?.close(reason);\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // Sync controlled open state\n if (this.#tooltip && changed.has('open')) {\n const { active: interactionOpen } = this.#tooltip.input.current;\n\n if (this.open !== interactionOpen) {\n if (this.open) {\n this.#tooltip.open();\n } else {\n this.#tooltip.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n if (!this.#tooltip) return;\n\n const triggerEl = this.#position.findTrigger(this.trigger);\n\n this.#syncTrigger(triggerEl);\n\n if (this.#currentTrigger && isLabelTrigger(this.#currentTrigger)) {\n this.#syncContent(this.#currentTrigger);\n }\n\n // Derive state from core + input.\n const input = this.#tooltip.input.current;\n\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n // Apply popup ARIA and data attributes to self.\n applyElementProps(this, this.#core.getPopupAttrs(state));\n applyStateDataAttrs(this, state, TooltipDataAttrs);\n\n // Show/hide via Popover API AFTER data attributes are applied so\n // `data-starting-style` is present before the first visible frame.\n if (state.open) {\n tryShowPopover(this);\n } else {\n tryHidePopover(this);\n }\n\n // Skip positioning when closed — no rects to measure.\n if (!state.open) {\n this.#position.cleanup();\n return;\n }\n\n this.#position.sync({\n anchorName: this.id,\n position: { side: state.side, align: state.align },\n trigger: this.#currentTrigger,\n boundary: this.boundary,\n container: this.#containerCtx.value?.container ?? null,\n cssVars: TooltipCSSVars,\n onSideChange: (side) => this.setAttribute(TooltipDataAttrs.side, side),\n });\n }\n\n // --- Trigger management ---\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#position.cleanup();\n this.#cleanupTrigger();\n this.#currentTrigger = triggerEl;\n this.#tooltip?.setTriggerElement(triggerEl);\n\n if (triggerEl && this.#tooltip) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerEl, this.#tooltip.triggerProps, { signal: this.#triggerAbort.signal });\n\n if (isLabelTrigger(triggerEl)) {\n this.#syncContent(triggerEl);\n triggerEl.$state.subscribe(() => this.#syncContent(triggerEl), {\n signal: this.#triggerAbort.signal,\n });\n listen(triggerEl, HOTKEY_SHORTCUT_CHANGE_EVENT, () => this.#syncContent(triggerEl), {\n signal: this.#triggerAbort.signal,\n });\n }\n }\n }\n\n #syncContent(triggerEl: TriggerElement): void {\n const label = triggerEl.getLabel();\n let resolved = isFunction(triggerEl.getResolvedLabel) ? triggerEl.getResolvedLabel() : undefined;\n\n if (resolved === undefined && label) {\n resolved = translateText(label, this.#i18n.value);\n }\n\n const shortcut = triggerEl.getShortcut?.();\n\n let labelEl = TooltipLabelElement.findIn(this);\n let shortcutEl = TooltipShortcutElement.findIn(this);\n\n if (!labelEl && !shortcutEl) {\n if (this.#hostHasAuthoredTooltipContent()) return;\n\n labelEl = TooltipLabelElement.create();\n shortcutEl = TooltipShortcutElement.create();\n this.replaceChildren(labelEl, shortcutEl);\n }\n\n labelEl?.setSyncedText(resolved ?? '');\n shortcutEl?.setSyncedShortcut(shortcut);\n }\n\n #hostHasAuthoredTooltipContent(): boolean {\n return Array.from(this.childNodes).some((node) => !!node.textContent?.trim());\n }\n\n #cleanupTrigger(): void {\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#currentTrigger = null;\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"group.js","names":["#core","#provider"],"sources":["../../../../src/ui/tooltip/group.ts"],"sourcesContent":["import { TooltipGroupCore } from '@videojs/core';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { UIElement } from '../ui-element';\nimport { tooltipGroupContext } from './context';\n\nexport class TooltipGroupElement extends UIElement {\n static readonly tagName = 'media-tooltip-group';\n\n static override properties = {\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n timeout: { type: Number },\n } satisfies PropertyDeclarationMap<keyof TooltipGroupCore.Props>;\n\n delay = TooltipGroupCore.defaultProps.delay;\n closeDelay = TooltipGroupCore.defaultProps.closeDelay;\n timeout = TooltipGroupCore.defaultProps.timeout;\n\n readonly #core = new TooltipGroupCore();\n readonly #provider = new ContextProvider(this, { context: tooltipGroupContext, initialValue: this.#core });\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n this.#core.setProps(this);\n this.#provider.setValue(this.#core);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,sBAAb,cAAyC,UAAU;;;EASzC,KAAA,QAAA,iBAAiB,aAAa;EACzB,KAAA,aAAA,iBAAiB,aAAa;EACjC,KAAA,UAAA,iBAAiB,aAAa;EAEvB,KAAA,QAAA,IAAI,iBAAiB;EACjB,KAAA,YAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAqB,cAAc,KAAKA;EAAM,CAAC;;;EAb/E,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,OAAO,EAAE,MAAM,OAAO;GACtB,YAAY;IAAE,MAAM;IAAQ,WAAW;GAAc;GACrD,SAAS,EAAE,MAAM,OAAO;EAC1B;;CAMA;CACA;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,KAAKA,MAAM,SAAS,IAAI;EACxB,KAAKC,UAAU,SAAS,KAAKD,KAAK;CACpC;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"label.js","names":["#hasAuthoredContent"],"sources":["../../../../src/ui/tooltip/label.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\nfunction hasAuthoredContent(host: HTMLElement): boolean {\n return Array.from(host.childNodes).some((node) => !!node.textContent?.trim());\n}\n\n/** Label region inside `media-tooltip`; parent syncs text from the trigger when linked to a media button. */\nexport class TooltipLabelElement extends UIElement {\n static readonly tagName = 'media-tooltip-label';\n\n #hasAuthoredContent = false;\n\n static findIn(host: HTMLElement): TooltipLabelElement | null {\n return host.querySelector(TooltipLabelElement.tagName);\n }\n\n static create(): TooltipLabelElement {\n return document.createElement(TooltipLabelElement.tagName) as TooltipLabelElement;\n }\n\n override connectedCallback(): void {\n this.#hasAuthoredContent ||= hasAuthoredContent(this);\n super.connectedCallback();\n }\n\n setSyncedText(text: string): void {\n if (this.#hasAuthoredContent) return;\n\n this.textContent = text;\n }\n}\n"],"mappings":";;AAEA,SAAS,mBAAmB,MAA4B;CACtD,OAAO,MAAM,KAAK,KAAK,UAAU,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,KAAK,aAAa,KAAK,CAAC;AAC9E;;AAGA,IAAa,sBAAb,MAAa,4BAA4B,UAAU;;EACvB,KAAA,UAAA;;CAE1B,sBAAsB;CAEtB,OAAO,OAAO,MAA+C;EAC3D,OAAO,KAAK,cAAc,oBAAoB,OAAO;CACvD;CAEA,OAAO,SAA8B;EACnC,OAAO,SAAS,cAAc,oBAAoB,OAAO;CAC3D;CAEA,oBAAmC;EACjC,KAAKA,wBAAwB,mBAAmB,IAAI;EACpD,MAAM,kBAAkB;CAC1B;CAEA,cAAc,MAAoB;EAChC,IAAI,KAAKA,qBAAqB;EAE9B,KAAK,cAAc;CACrB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shortcut.js","names":[],"sources":["../../../../src/ui/tooltip/shortcut.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\n/**\n * Shortcut hint inside `media-tooltip`. CSS skins: `class=\"media-tooltip__kbd\"`; Tailwind skins: `class` from\n * `popup.tooltipShortcut`.\n */\nexport class TooltipShortcutElement extends UIElement {\n static readonly tagName = 'media-tooltip-shortcut';\n\n static findIn(host: HTMLElement): TooltipShortcutElement | null {\n return host.querySelector(TooltipShortcutElement.tagName);\n }\n\n static create(): TooltipShortcutElement {\n return document.createElement(TooltipShortcutElement.tagName) as TooltipShortcutElement;\n }\n\n setSyncedShortcut(shortcut: string | undefined): void {\n if (shortcut) {\n this.textContent = shortcut;\n this.hidden = false;\n } else {\n this.textContent = '';\n this.hidden = true;\n }\n }\n}\n"],"mappings":";;;;;;AAMA,IAAa,yBAAb,MAAa,+BAA+B,UAAU;;EAC1B,KAAA,UAAA;;CAE1B,OAAO,OAAO,MAAkD;EAC9D,OAAO,KAAK,cAAc,uBAAuB,OAAO;CAC1D;CAEA,OAAO,SAAiC;EACtC,OAAO,SAAS,cAAc,uBAAuB,OAAO;CAC9D;CAEA,kBAAkB,UAAoC;EACpD,IAAI,UAAU;GACZ,KAAK,cAAc;GACnB,KAAK,SAAS;EAChB,OAAO;GACL,KAAK,cAAc;GACnB,KAAK,SAAS;EAChB;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui-element.js","names":[],"sources":["../../../src/ui/ui-element.ts"],"sourcesContent":["import { DestroyMixin, ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/** Base class for interactive media UI elements. */\nexport class UIElement extends DestroyMixin(ReactiveElement) {}\n\nexport interface UIElementConstructor extends Constructor<UIElement> {}\n"],"mappings":";;;AAIA,IAAa,YAAb,cAA+B,aAAa,eAAe,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#i18n","#core","#transition","#liveIndicator","#options"],"sources":["../../../../src/ui/volume-indicator/element.ts"],"sourcesContent":["import {\n createInputIndicatorLabels,\n getVolumeIndicatorDisplayValue,\n VolumeIndicatorCore,\n VolumeIndicatorCSSVars,\n VolumeIndicatorDataAttrs,\n} from '@videojs/core';\nimport { createTransition } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { InputIndicatorElement, type InputIndicatorOptions } from '../input-indicator/element';\nimport { LiveIndicator } from '../input-indicator/live-indicator';\n\nexport class VolumeIndicatorElement extends InputIndicatorElement<VolumeIndicatorCore.State> {\n static readonly tagName = 'media-volume-indicator';\n\n static override properties = {\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<'closeDelay'>;\n\n closeDelay: number | undefined;\n\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #core = new VolumeIndicatorCore();\n readonly #transition = createTransition();\n readonly #liveIndicator = new LiveIndicator({\n host: this,\n dataAttrs: VolumeIndicatorDataAttrs,\n render: renderVolumeIndicator,\n });\n readonly #options = { replayOnUpdate: false } satisfies InputIndicatorOptions;\n\n protected get core() {\n return this.#core;\n }\n\n protected get transition() {\n return this.#transition;\n }\n\n protected get liveIndicator() {\n return this.#liveIndicator;\n }\n\n protected override get options() {\n return this.#options;\n }\n\n protected override syncCoreProps(): void {\n this.#core.setProps({\n closeDelay: this.closeDelay,\n labels: createInputIndicatorLabels(this.#i18n.value),\n });\n }\n}\n\nfunction renderVolumeIndicator(element: HTMLElement, state: VolumeIndicatorCore.State): void {\n const fill = element.querySelector<HTMLElement>('media-volume-indicator-fill');\n const value = element.querySelector('media-volume-indicator-value');\n\n if (state.fill) {\n fill?.style.setProperty(VolumeIndicatorCSSVars.fill, state.fill);\n } else {\n fill?.style.removeProperty(VolumeIndicatorCSSVars.fill);\n }\n\n if (value) {\n value.textContent = getVolumeIndicatorDisplayValue(state);\n }\n}\n"],"mappings":";;;;;;;AAeA,IAAa,yBAAb,cAA4C,sBAAiD;;EACjE,KAAA,UAAA;;;EAEG,KAAA,aAAA,EAC3B,YAAY;GAAE,MAAM;GAAQ,WAAW;EAAc,EACvD;;CAIA,QAAiB,IAAI,eAAe,MAAM,WAAW;CACrD,QAAiB,IAAI,oBAAoB;CACzC,cAAuB,iBAAiB;CACxC,iBAA0B,IAAI,cAAc;EAC1C,MAAM;EACN,WAAW;EACX,QAAQ;CACV,CAAC;CACD,WAAoB,EAAE,gBAAgB,MAAM;CAE5C,IAAc,OAAO;EACnB,OAAO,KAAKC;CACd;CAEA,IAAc,aAAa;EACzB,OAAO,KAAKC;CACd;CAEA,IAAc,gBAAgB;EAC5B,OAAO,KAAKC;CACd;CAEA,IAAuB,UAAU;EAC/B,OAAO,KAAKC;CACd;CAEA,gBAAyC;EACvC,KAAKH,MAAM,SAAS;GAClB,YAAY,KAAK;GACjB,QAAQ,2BAA2B,KAAKD,MAAM,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,sBAAsB,SAAsB,OAAwC;CAC3F,MAAM,OAAO,QAAQ,cAA2B,6BAA6B;CAC7E,MAAM,QAAQ,QAAQ,cAAc,8BAA8B;CAElE,IAAI,MAAM,MACR,MAAM,MAAM,YAAY,uBAAuB,MAAM,MAAM,IAAI;MAE/D,MAAM,MAAM,eAAe,uBAAuB,IAAI;CAGxD,IAAI,OACF,MAAM,cAAc,+BAA+B,KAAK;AAE5D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fill.js","names":[],"sources":["../../../../src/ui/volume-indicator/fill.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\nexport class VolumeIndicatorFillElement extends UIElement {\n static readonly tagName = 'media-volume-indicator-fill';\n}\n"],"mappings":";;AAEA,IAAa,6BAAb,cAAgD,UAAU;;EAC9B,KAAA,UAAA;;AAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"value.js","names":[],"sources":["../../../../src/ui/volume-indicator/value.ts"],"sourcesContent":["import { UIElement } from '../ui-element';\n\nexport class VolumeIndicatorValueElement extends UIElement {\n static readonly tagName = 'media-volume-indicator-value';\n}\n"],"mappings":";;AAEA,IAAa,8BAAb,cAAiD,UAAU;;EAC/B,KAAA,UAAA;;AAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#volume"],"sources":["../../../../src/ui/volume-popover/element.ts"],"sourcesContent":["import { VolumePopoverCore, VolumePopoverDataAttrs } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, selectVolume } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport type { MediaVolumeState } from '@videojs/media';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { PopoverElement } from '../popover/element';\n\nconst unavailableVolume: MediaVolumeState = {\n volume: 0,\n muted: false,\n volumeAvailability: 'unsupported',\n mutedAvailability: 'unsupported',\n setVolume: () => 0,\n toggleMuted: () => false,\n};\n\n/** A volume-aware popover that keeps its adjacent mute trigger available as a fallback. */\nexport class VolumePopoverElement extends PopoverElement {\n static override readonly tagName = 'media-volume-popover';\n\n readonly #core = new VolumePopoverCore();\n readonly #volume = new PlayerController(this, playerContext, selectVolume);\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n this.#core.setProps(this);\n this.#core.setInput({\n active: this.hasAttribute('data-open'),\n status: this.hasAttribute('data-starting-style')\n ? 'starting'\n : this.hasAttribute('data-ending-style')\n ? 'ending'\n : 'idle',\n });\n this.#core.setMedia(this.#volume.value ?? unavailableVolume);\n\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, VolumePopoverDataAttrs);\n this.hidden = state.hidden;\n\n if (state.hidden) {\n this.close();\n\n if (this.triggerElement) {\n applyElementProps(this.triggerElement, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n }\n }\n }\n}\n"],"mappings":";;;;;;AASA,MAAM,oBAAsC;CAC1C,QAAQ;CACR,OAAO;CACP,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;AACrB;;AAGA,IAAa,uBAAb,cAA0C,eAAe;;EACpB,KAAA,UAAA;;CAEnC,QAAiB,IAAI,kBAAkB;CACvC,UAAmB,IAAI,iBAAiB,MAAM,eAAe,YAAY;CAEzE,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,KAAKA,MAAM,SAAS,IAAI;EACxB,KAAKA,MAAM,SAAS;GAClB,QAAQ,KAAK,aAAa,WAAW;GACrC,QAAQ,KAAK,aAAa,qBAAqB,IAC3C,aACA,KAAK,aAAa,mBAAmB,IACnC,WACA;EACR,CAAC;EACD,KAAKA,MAAM,SAAS,KAAKC,QAAQ,SAAS,iBAAiB;EAE3D,MAAM,QAAQ,KAAKD,MAAM,SAAS;EAElC,oBAAoB,MAAM,OAAO,sBAAsB;EACvD,KAAK,SAAS,MAAM;EAEpB,IAAI,MAAM,QAAQ;GAChB,KAAK,MAAM;GAEX,IAAI,KAAK,gBACP,kBAAkB,KAAK,gBAAgB;IACrC,iBAAiB,KAAA;IACjB,iBAAiB,KAAA;IACjB,iBAAiB,KAAA;GACnB,CAAC;EAEL;CACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element.js","names":["#core","#controlsState","#provider","#volumeState","#i18n","#disconnect","#setVolume","#slider","#releaseControlsLock","#releaseControlsVisibilityLock"],"sources":["../../../../src/ui/volume-slider/element.ts"],"sourcesContent":["import { VolumeSliderCore, VolumeSliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n createWheelStep,\n getSliderCSSVars,\n logMissingFeature,\n type SliderApi,\n selectControls,\n selectVolume,\n} from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { sliderContext } from '../slider/context';\nimport { UIElement } from '../ui-element';\n\n/**\n * @fires drag-start - Fired when a pointer drag starts.\n * @fires drag-end - Fired when a pointer drag ends.\n */\nexport class VolumeSliderElement extends UIElement {\n static readonly tagName = 'media-volume-slider';\n\n static override properties = {\n label: { type: String },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n wheelStep: { type: Number, attribute: 'wheel-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<Exclude<keyof VolumeSliderCore.Props, 'value' | 'min' | 'max'>>;\n\n label: Text | string = '';\n step = VolumeSliderCore.defaultProps.step;\n largeStep = VolumeSliderCore.defaultProps.largeStep;\n wheelStep = VolumeSliderCore.defaultProps.wheelStep;\n orientation = VolumeSliderCore.defaultProps.orientation;\n disabled = VolumeSliderCore.defaultProps.disabled;\n thumbAlignment = VolumeSliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new VolumeSliderCore();\n readonly #controlsState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n readonly #volumeState = new PlayerController(this, playerContext, selectVolume);\n readonly #i18n = new I18nController(this, i18nContext);\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n #releaseControlsLock: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n const isDisabled = () => {\n const volume = this.#volumeState.value;\n\n return this.disabled || !volume || volume.volumeAvailability !== 'available';\n };\n\n const getPercent = () => (this.#volumeState.value?.volume ?? 0) * 100;\n const getStepPercent = () => this.#core.getStepPercent();\n const setVolume = (percent: number) => this.#setVolume(percent);\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isDisabled,\n getPercent,\n getStepPercent,\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: setVolume,\n onValueCommit: setVolume,\n onPressStart: () => {\n this.#releaseControlsLock ??= this.#controlsState.value?.requestControlsLock() ?? null;\n },\n onPressEnd: () => this.#releaseControlsVisibilityLock(),\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n const wheelProps = createWheelStep({\n isDisabled,\n getPercent,\n getStepPercent: () => this.#core.getWheelStepPercent(),\n onValueChange: setVolume,\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyElementProps(this, wheelProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n\n if (__DEV__ && !this.#volumeState.value) {\n logMissingFeature(this.localName, this.#volumeState.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n this.#releaseControlsVisibilityLock();\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#releaseControlsVisibilityLock();\n this.#slider?.destroy();\n super.destroyCallback();\n }\n\n #releaseControlsVisibilityLock(): void {\n this.#releaseControlsLock?.();\n this.#releaseControlsLock = null;\n }\n\n protected override willUpdate(_changed: PropertyValues): void {\n super.willUpdate(_changed);\n this.#core.setProps(this);\n this.#core.setFormatLocale(this.#i18n.locale);\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n if (!this.#slider) return;\n\n const media = this.#volumeState.value;\n if (!media) return;\n\n this.#core.setInput(this.#slider.input.current);\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n const thumbAttrs = this.#core.getAttrs(state);\n\n applyStyles(this, cssVars);\n\n // Apply data attributes to root.\n applyStateDataAttrs(this, state, VolumeSliderDataAttrs);\n applyElementProps(this, { hidden: state.hidden ? '' : undefined });\n\n // Provide context to child elements.\n this.#provider.setValue({\n state,\n stateAttrMap: VolumeSliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: {\n ...thumbAttrs,\n 'aria-label': translateText(thumbAttrs['aria-label'], this.#i18n.value),\n 'aria-valuetext': translateText(\n thumbAttrs['aria-valuetext'],\n this.#i18n.value,\n this.#core.getValueTextParams(state)\n ),\n },\n thumbProps: this.#slider.thumbProps,\n formatValue: (value) => `${Math.round(value)}%`,\n });\n }\n\n #setVolume(percent: number): void {\n const media = this.#volumeState.value;\n\n media?.setVolume(this.#core.valueFromPercent(percent) / 100);\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-cast.d.ts","names":[],"sources":["../../../../src/define/extensions/google-cast.ts"],"mappings":";;;QAOQ;YACI;KACP,oBAAoB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mux-data.d.ts","names":[],"sources":["../../../../src/define/extensions/mux-data.ts"],"mappings":";;;QAOQ;YACI;KACP,iBAAiB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"i18n.d.ts","names":[],"sources":["../../../src/define/i18n.ts"],"mappings":";;;QAOQ;YACI;KACP,oBAAoB,UAAU;KAC9B,YAAY,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-video.d.ts","names":[],"sources":["../../../../src/define/media/background-video.ts"],"mappings":";;;cAGa,+BAA+B;kBAC1B;;QAKV;YACI;KACP,uBAAuB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloudflare-video.d.ts","names":[],"sources":["../../../../src/define/media/cloudflare-video.ts"],"mappings":";;;cAGa,+BAA+B;kBAC1B;;QAKV;YACI;KACP,uBAAuB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dash-video.d.ts","names":[],"sources":["../../../../src/define/media/dash-video.ts"],"mappings":";;;;cAIa,yBAAyB;kBACpB;;QAKV;YACI;KACP,iBAAiB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hls-audio.d.ts","names":[],"sources":["../../../../src/define/media/hls-audio.ts"],"mappings":";;;cAGa,wBAAwB;kBACnB;;QAKV;YACI;KACP,gBAAgB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hls-background-video.d.ts","names":[],"sources":["../../../../src/define/media/hls-background-video.ts"],"mappings":";;;cAGa,kCAAkC;kBAC7B;;QAKV;YACI;KACP,0BAA0B,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hls-video.d.ts","names":[],"sources":["../../../../src/define/media/hls-video.ts"],"mappings":";;;;cAIa,wBAAwB;kBACnB;;QAKV;YACI;KACP,gBAAgB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hlsjs-video.d.ts","names":[],"sources":["../../../../src/define/media/hlsjs-video.ts"],"mappings":";;;;cAIa,0BAA0B;kBACrB;;QAKV;YACI;KACP,kBAAkB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hls-js.d.ts","names":[],"sources":["../../../../../src/define/media/mux-audio/hls-js.ts"],"mappings":";;cAGa,wBAAwB;kBACnB;;QAKV;;YAEI;IACR,UAAU;;YAGF;IAER,aAAa,sBAAsB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spf.d.ts","names":[],"sources":["../../../../../src/define/media/mux-audio/spf.ts"],"mappings":";;cAGa,wBAAwB;kBACnB;;QAKV;;YAEI;IACR,KAAK;;YAGG;IACR,aAAa,sBAAsB;IAGnC,iBAAiB,cAAc,gDAAgD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mux-background-video.d.ts","names":[],"sources":["../../../../src/define/media/mux-background-video.ts"],"mappings":";;;;;;;;;cASa,kCAAkC;kBAC7B;;QAKV;YACI;KACP,0BAA0B,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hls-js.d.ts","names":[],"sources":["../../../../../src/define/media/mux-video/hls-js.ts"],"mappings":";;cAGa,wBAAwB;kBACnB;;QAKV;;YAEI;IACR,UAAU;;YAGF;IAKR,aAAa,sBAAsB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spf.d.ts","names":[],"sources":["../../../../../src/define/media/mux-video/spf.ts"],"mappings":";;cAGa,wBAAwB;kBACnB;;QAKV;;;;;;;;;;;;YAYI;IACR,KAAK;;YAGG;IACR,aAAa,sBAAsB;IAGnC,iBAAiB,cAAc,gDAAgD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"native-hls-video.d.ts","names":[],"sources":["../../../../src/define/media/native-hls-video.ts"],"mappings":";;;;cAIa,8BAA8B;kBACzB;;QAKV;YACI;KACP,sBAAsB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shaka-video.d.ts","names":[],"sources":["../../../../src/define/media/shaka-video.ts"],"mappings":";;;cAGa,0BAA0B;kBACrB;;QAKV;YACI;KACP,kBAAkB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spotify-audio.d.ts","names":[],"sources":["../../../../src/define/media/spotify-audio.ts"],"mappings":";;;cAGa,4BAA4B;kBACvB;;QAKV;YACI;KACP,oBAAoB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tiktok-video.d.ts","names":[],"sources":["../../../../src/define/media/tiktok-video.ts"],"mappings":";;;cAGa,2BAA2B;kBACtB;;QAKV;YACI;KACP,mBAAmB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"twitch-video.d.ts","names":[],"sources":["../../../../src/define/media/twitch-video.ts"],"mappings":";;;cAGa,2BAA2B;kBACtB;;QAKV;YACI;KACP,mBAAmB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vimeo-video.d.ts","names":[],"sources":["../../../../src/define/media/vimeo-video.ts"],"mappings":";;;cAGa,0BAA0B;kBACrB;;QAKV;YACI;KACP,kBAAkB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wistia-video.d.ts","names":[],"sources":["../../../../src/define/media/wistia-video.ts"],"mappings":";;;cAGa,2BAA2B;kBACtB;;QAKV;YACI;KACP,mBAAmB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"youtube-video.d.ts","names":[],"sources":["../../../../src/define/media/youtube-video.ts"],"mappings":";;;cAGa,4BAA4B;kBACvB;;QAKV;YACI;KACP,oBAAoB,UAAU"}
@@ -1,27 +0,0 @@
1
- /* -------------------------------------------------------------------------- */
2
- /* Shared styles for all HTML skins */
3
- /* -------------------------------------------------------------------------- */
4
-
5
- media-tooltip-group,
6
- media-dialog,
7
- media-alert-dialog,
8
- media-error-dialog,
9
- media-controls {
10
- display: contents;
11
- }
12
-
13
- :host {
14
- /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */
15
- display: grid;
16
- width: 100%;
17
- }
18
-
19
- media-container {
20
- min-width: 0;
21
- min-height: 0;
22
- }
23
-
24
- /* Hide the volume popover when its slider is unavailable. */
25
- .media-popover--volume:has(media-volume-slider[data-hidden]) {
26
- display: none;
27
- }
@@ -1,6 +0,0 @@
1
- //#region src/define/shared.css?inline
2
- var shared_default = "media-tooltip-group, media-dialog, media-alert-dialog, media-error-dialog, media-controls {\n display: contents;\n}\n\n:host {\n width: 100%;\n display: grid;\n}\n\nmedia-container {\n min-width: 0;\n min-height: 0;\n}\n\n.media-popover--volume:has(media-volume-slider[data-hidden]) {\n display: none;\n}\n";
3
- //#endregion
4
- export { shared_default as default };
5
-
6
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","names":[],"sources":["../../../src/define/shared.css?inline"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Shared styles for all HTML skins */\n/* -------------------------------------------------------------------------- */\n\nmedia-tooltip-group,\nmedia-dialog,\nmedia-alert-dialog,\nmedia-error-dialog,\nmedia-controls {\n display: contents;\n}\n\n:host {\n /* `display:grid` fixes a weird issue with Safari when setting aspect-ratio */\n display: grid;\n width: 100%;\n}\n\nmedia-container {\n min-width: 0;\n min-height: 0;\n}\n\n/* Hide the volume popover when its slider is unavailable. */\n.media-popover--volume:has(media-volume-slider[data-hidden]) {\n display: none;\n}\n"],"mappings":";AAIA,IAAA,iBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"airplay-button.d.ts","names":[],"sources":["../../../../src/define/ui/airplay-button.ts"],"mappings":";;QAKQ;YACI;KACP,qBAAqB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-dialog.d.ts","names":[],"sources":["../../../../src/define/ui/alert-dialog.ts"],"mappings":";;QAKQ;YACI;KACP,mBAAmB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio-track-radio-group.d.ts","names":[],"sources":["../../../../src/define/ui/audio-track-radio-group.ts"],"mappings":";;QAKQ;YACI;KACP,4BAA4B,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffering-indicator.d.ts","names":[],"sources":["../../../../src/define/ui/buffering-indicator.ts"],"mappings":";;QAKQ;YACI;KACP,0BAA0B,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"captions-button.d.ts","names":[],"sources":["../../../../src/define/ui/captions-button.ts"],"mappings":";;QAKQ;YACI;KACP,sBAAsB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"captions-radio-group.d.ts","names":[],"sources":["../../../../src/define/ui/captions-radio-group.ts"],"mappings":";;QAKQ;YACI;KACP,0BAA0B,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cast-button.d.ts","names":[],"sources":["../../../../src/define/ui/cast-button.ts"],"mappings":";;QAKQ;YACI;KACP,kBAAkB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"container.d.ts","names":[],"sources":["../../../../src/define/ui/container.ts"],"mappings":";;QAKQ;YACI;KACP,iBAAiB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls-backdrop.d.ts","names":[],"sources":["../../../../src/define/ui/controls-backdrop.ts"],"mappings":";;QAKQ;YACI;KACP,wBAAwB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls-content.d.ts","names":[],"sources":["../../../../src/define/ui/controls-content.ts"],"mappings":";;QAKQ;YACI;KACP,uBAAuB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls-group.d.ts","names":[],"sources":["../../../../src/define/ui/controls-group.ts"],"mappings":";;QAKQ;YACI;KACP,qBAAqB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls.d.ts","names":[],"sources":["../../../../src/define/ui/controls.ts"],"mappings":";;QAKQ;YACI;KACP,gBAAgB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog-backdrop.d.ts","names":[],"sources":["../../../../src/define/ui/dialog-backdrop.ts"],"mappings":";;QAKQ;YACI;KACP,sBAAsB,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog-close.d.ts","names":[],"sources":["../../../../src/define/ui/dialog-close.ts"],"mappings":";;QAKQ;YACI;IACR,sBAAsB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog-description.d.ts","names":[],"sources":["../../../../src/define/ui/dialog-description.ts"],"mappings":";;QAKQ;YACI;IACR,4BAA4B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog-popup.d.ts","names":[],"sources":["../../../../src/define/ui/dialog-popup.ts"],"mappings":";;QAKQ;YACI;KACP,mBAAmB,UAAU"}