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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1021) hide show
  1. package/dist/default/define/audio/compat-skin.css +1923 -0
  2. package/dist/default/define/audio/compat-skin.js +6 -0
  3. package/dist/default/define/audio/compat-skin2.js +4 -0
  4. package/dist/default/define/audio/neutral-skin.css +1855 -0
  5. package/dist/default/define/audio/neutral-skin.js +6 -0
  6. package/dist/default/define/audio/neutral-skin2.js +4 -0
  7. package/dist/default/define/audio/{minimal-ui.js → neutral-ui.js} +1 -1
  8. package/dist/default/define/audio/skin.css +1220 -1411
  9. package/dist/default/define/audio/skin2.js +1 -1
  10. package/dist/default/define/background/skin.css +8 -19
  11. package/dist/default/define/global.css +5 -21
  12. package/dist/default/define/live-audio/compat-skin.css +1708 -0
  13. package/dist/default/define/live-audio/compat-skin.js +6 -0
  14. package/dist/default/define/live-audio/compat-skin2.js +4 -0
  15. package/dist/default/define/live-audio/neutral-skin.css +1270 -0
  16. package/dist/default/define/live-audio/neutral-skin.js +6 -0
  17. package/dist/default/define/live-audio/neutral-skin2.js +4 -0
  18. package/dist/default/define/live-audio/{minimal-ui.js → neutral-ui.js} +1 -1
  19. package/dist/default/define/live-audio/skin.css +849 -959
  20. package/dist/default/define/live-audio/skin2.js +1 -1
  21. package/dist/default/define/live-video/compat-skin.css +2251 -0
  22. package/dist/default/define/live-video/compat-skin.js +6 -0
  23. package/dist/default/define/live-video/compat-skin2.js +4 -0
  24. package/dist/default/define/live-video/neutral-skin.css +2101 -0
  25. package/dist/default/define/live-video/neutral-skin.js +6 -0
  26. package/dist/default/define/live-video/neutral-skin2.js +4 -0
  27. package/dist/default/define/live-video/{minimal-ui.js → neutral-ui.js} +1 -1
  28. package/dist/default/define/live-video/skin.css +1565 -1784
  29. package/dist/default/define/live-video/skin2.js +1 -1
  30. package/dist/default/define/media/dash-video.js +5 -1
  31. package/dist/default/define/media/shaka-video.js +1 -0
  32. package/dist/default/define/shadow.css +2 -12
  33. package/dist/default/define/video/compat-skin.css +2529 -0
  34. package/dist/default/define/video/compat-skin.js +6 -0
  35. package/dist/default/define/video/compat-skin2.js +4 -0
  36. package/dist/default/define/video/neutral-skin.css +2849 -0
  37. package/dist/default/define/video/neutral-skin.js +6 -0
  38. package/dist/default/define/video/neutral-skin2.js +4 -0
  39. package/dist/default/define/video/{minimal-ui.js → neutral-ui.js} +1 -1
  40. package/dist/default/define/video/skin.css +2046 -2454
  41. package/dist/default/define/video/skin2.js +1 -1
  42. package/dist/default/extensions/google-cast/extension.js +18 -17
  43. package/dist/default/extensions/mux-data/extension.js +24 -24
  44. package/dist/default/extensions/player-extension-element.js +49 -0
  45. package/dist/default/i18n/index.js +2 -2
  46. package/dist/default/i18n/locale.js +10 -2
  47. package/dist/default/i18n/provider-element.js +1 -0
  48. package/dist/default/i18n/provider-mixin.js +11 -9
  49. package/dist/default/i18n/render-text.js +5 -1
  50. package/dist/default/i18n/text/airplay.js +1 -0
  51. package/dist/default/i18n/text/buttons.js +1 -0
  52. package/dist/default/i18n/text/captions.js +1 -0
  53. package/dist/default/i18n/text/cast.js +1 -0
  54. package/dist/default/i18n/text/common.js +1 -0
  55. package/dist/default/i18n/text/container.js +1 -0
  56. package/dist/default/i18n/text/errors.js +1 -0
  57. package/dist/default/i18n/text/fullscreen.js +1 -0
  58. package/dist/default/i18n/text/live.js +1 -0
  59. package/dist/default/i18n/text/menu.js +1 -0
  60. package/dist/default/i18n/text/pip.js +1 -0
  61. package/dist/default/i18n/text/playback.js +1 -0
  62. package/dist/default/i18n/text/seek.js +1 -0
  63. package/dist/default/i18n/text/slider.js +1 -0
  64. package/dist/default/i18n/text/status.js +1 -0
  65. package/dist/default/i18n/text/time.js +1 -0
  66. package/dist/default/i18n/text/volume.js +1 -0
  67. package/dist/default/icons/compat/index.js +26 -0
  68. package/dist/default/icons/dist/element/compat/icons.js +30 -0
  69. package/dist/default/icons/dist/element/{minimal → compat}/index.js +2 -2
  70. package/dist/default/icons/dist/element/index.js +2 -1
  71. package/dist/default/icons/dist/element/{minimal → neutral}/icons.js +1 -1
  72. package/dist/default/icons/dist/element/neutral/index.js +8 -0
  73. package/dist/default/icons/dist/html/compat/airplay-enter.js +4 -0
  74. package/dist/default/icons/dist/html/compat/airplay-exit.js +4 -0
  75. package/dist/default/icons/dist/html/compat/captions-off.js +4 -0
  76. package/dist/default/icons/dist/html/compat/captions-on.js +4 -0
  77. package/dist/default/icons/dist/html/compat/cast-enter.js +4 -0
  78. package/dist/default/icons/dist/html/compat/cast-exit.js +4 -0
  79. package/dist/default/icons/dist/html/compat/check.js +4 -0
  80. package/dist/default/icons/dist/html/compat/chevron.js +4 -0
  81. package/dist/default/icons/dist/html/compat/fullscreen-enter.js +4 -0
  82. package/dist/default/icons/dist/html/compat/fullscreen-exit.js +4 -0
  83. package/dist/default/icons/dist/html/compat/gear.js +4 -0
  84. package/dist/default/icons/dist/html/compat/pause.js +4 -0
  85. package/dist/default/icons/dist/html/compat/pip-enter.js +4 -0
  86. package/dist/default/icons/dist/html/compat/pip-exit.js +4 -0
  87. package/dist/default/icons/dist/html/compat/play.js +4 -0
  88. package/dist/default/icons/dist/html/compat/quality.js +4 -0
  89. package/dist/default/icons/dist/html/compat/restart.js +4 -0
  90. package/dist/default/icons/dist/html/compat/seek.js +4 -0
  91. package/dist/default/icons/dist/html/compat/speech.js +4 -0
  92. package/dist/default/icons/dist/html/compat/speed.js +4 -0
  93. package/dist/default/icons/dist/html/{minimal → compat}/spinner.js +1 -1
  94. package/dist/default/icons/dist/html/compat/switches.js +4 -0
  95. package/dist/default/icons/dist/html/compat/volume-high.js +4 -0
  96. package/dist/default/icons/dist/html/compat/volume-low.js +4 -0
  97. package/dist/default/icons/dist/html/compat/volume-off.js +4 -0
  98. package/dist/default/icons/dist/html/{minimal → neutral}/airplay-enter.js +1 -1
  99. package/dist/default/icons/dist/html/{minimal → neutral}/airplay-exit.js +1 -1
  100. package/dist/default/icons/dist/html/{minimal → neutral}/captions-off.js +1 -1
  101. package/dist/default/icons/dist/html/{minimal → neutral}/captions-on.js +1 -1
  102. package/dist/default/icons/dist/html/{minimal → neutral}/cast-enter.js +1 -1
  103. package/dist/default/icons/dist/html/{minimal → neutral}/cast-exit.js +1 -1
  104. package/dist/default/icons/dist/html/{minimal → neutral}/check.js +1 -1
  105. package/dist/default/icons/dist/html/{minimal → neutral}/chevron.js +1 -1
  106. package/dist/default/icons/dist/html/{minimal → neutral}/fullscreen-enter.js +1 -1
  107. package/dist/default/icons/dist/html/{minimal → neutral}/fullscreen-exit.js +1 -1
  108. package/dist/default/icons/dist/html/{minimal → neutral}/gear.js +1 -1
  109. package/dist/default/icons/dist/html/{minimal → neutral}/pause.js +1 -1
  110. package/dist/default/icons/dist/html/{minimal → neutral}/pip-enter.js +1 -1
  111. package/dist/default/icons/dist/html/{minimal → neutral}/pip-exit.js +1 -1
  112. package/dist/default/icons/dist/html/{minimal → neutral}/play.js +1 -1
  113. package/dist/default/icons/dist/html/{minimal → neutral}/quality.js +1 -1
  114. package/dist/default/icons/dist/html/{minimal → neutral}/restart.js +1 -1
  115. package/dist/default/icons/dist/html/{minimal → neutral}/seek.js +1 -1
  116. package/dist/default/icons/dist/html/{minimal → neutral}/speech.js +1 -1
  117. package/dist/default/icons/dist/html/{minimal → neutral}/speed.js +1 -1
  118. package/dist/default/icons/dist/html/neutral/spinner.js +4 -0
  119. package/dist/default/icons/dist/html/{minimal → neutral}/switches.js +1 -1
  120. package/dist/default/icons/dist/html/{minimal → neutral}/volume-high.js +1 -1
  121. package/dist/default/icons/dist/html/{minimal → neutral}/volume-low.js +1 -1
  122. package/dist/default/icons/dist/html/{minimal → neutral}/volume-off.js +1 -1
  123. package/dist/default/icons/element/compat/index.js +1 -0
  124. package/dist/default/icons/element/neutral/index.js +1 -0
  125. package/dist/default/icons/neutral/index.js +26 -0
  126. package/dist/default/index.js +4 -3
  127. package/dist/default/internal/skins/compat-audio/register.js +70 -0
  128. package/dist/default/internal/skins/compat-audio/skin.css +1891 -0
  129. package/dist/default/internal/skins/compat-audio/template.js +215 -0
  130. package/dist/default/internal/skins/compat-live-audio/register.js +50 -0
  131. package/dist/default/internal/skins/compat-live-audio/skin.css +1676 -0
  132. package/dist/default/internal/skins/compat-live-audio/template.js +112 -0
  133. package/dist/default/internal/skins/compat-live-video/register.js +86 -0
  134. package/dist/default/internal/skins/compat-live-video/skin.css +2219 -0
  135. package/dist/default/internal/skins/compat-live-video/template.js +237 -0
  136. package/dist/default/internal/skins/compat-video/register.js +115 -0
  137. package/dist/default/internal/skins/compat-video/skin.css +2497 -0
  138. package/dist/default/internal/skins/compat-video/template.js +457 -0
  139. package/dist/default/internal/skins/default-audio/register.js +8 -8
  140. package/dist/default/internal/skins/default-audio/skin.css +1213 -1365
  141. package/dist/default/internal/skins/default-live-audio/register.js +4 -4
  142. package/dist/default/internal/skins/default-live-audio/skin.css +842 -913
  143. package/dist/default/internal/skins/default-live-video/register.js +8 -8
  144. package/dist/default/internal/skins/default-live-video/skin.css +1548 -1728
  145. package/dist/default/internal/skins/default-video/register.js +13 -13
  146. package/dist/default/internal/skins/default-video/skin.css +2034 -2403
  147. package/dist/default/internal/skins/{minimal-audio → neutral-audio}/register.js +20 -20
  148. package/dist/default/internal/skins/neutral-audio/skin.css +1823 -0
  149. package/dist/default/internal/skins/{minimal-audio → neutral-audio}/template.js +24 -24
  150. package/dist/default/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js +13 -13
  151. package/dist/default/internal/skins/neutral-live-audio/skin.css +1238 -0
  152. package/dist/default/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js +14 -14
  153. package/dist/default/internal/skins/{minimal-live-video → neutral-live-video}/register.js +28 -28
  154. package/dist/default/internal/skins/neutral-live-video/skin.css +2069 -0
  155. package/dist/default/internal/skins/{minimal-live-video → neutral-live-video}/template.js +47 -47
  156. package/dist/default/internal/skins/{minimal-video → neutral-video}/register.js +40 -40
  157. package/dist/default/internal/skins/neutral-video/skin.css +2817 -0
  158. package/dist/default/internal/skins/{minimal-video → neutral-video}/template.js +75 -75
  159. package/dist/default/player/context.js +9 -1
  160. package/dist/default/player/create-player.js +2 -1
  161. package/dist/default/player/element.js +47 -10
  162. package/dist/default/presets/audio/compat-skin.js +19 -0
  163. package/dist/default/presets/audio/index.js +3 -2
  164. package/dist/default/presets/audio/neutral-skin.js +19 -0
  165. package/dist/default/presets/live-audio/compat-skin.js +19 -0
  166. package/dist/default/presets/live-audio/index.js +3 -2
  167. package/dist/default/presets/live-audio/neutral-skin.js +19 -0
  168. package/dist/default/presets/live-video/compat-skin.js +19 -0
  169. package/dist/default/presets/live-video/index.js +3 -2
  170. package/dist/default/presets/live-video/neutral-skin.js +19 -0
  171. package/dist/default/presets/video/compat-skin.js +19 -0
  172. package/dist/default/presets/video/index.js +3 -2
  173. package/dist/default/presets/video/neutral-skin.js +19 -0
  174. package/dist/default/store/media-attach-mixin.js +2 -0
  175. package/dist/default/ui/airplay-button/element.js +1 -1
  176. package/dist/default/ui/buffering-indicator/element.js +4 -0
  177. package/dist/default/ui/dialog/context.js +1 -0
  178. package/dist/default/ui/dialog/element.js +4 -2
  179. package/dist/default/ui/media-button-element.js +7 -6
  180. package/dist/default/ui/media-ui-element.js +6 -1
  181. package/dist/default/ui/menu/context.js +2 -0
  182. package/dist/default/ui/play-button/element.js +1 -1
  183. package/dist/default/ui/playback-rate-button/element.js +4 -2
  184. package/dist/default/ui/popover/element.js +4 -2
  185. package/dist/default/ui/radio-group/context.js +1 -0
  186. package/dist/default/ui/seek-indicator/element.js +7 -1
  187. package/dist/default/ui/slider/context.js +1 -0
  188. package/dist/default/ui/status-indicator/element.js +14 -1
  189. package/dist/default/ui/text/element.js +1 -0
  190. package/dist/default/ui/thumbnail/element.js +3 -2
  191. package/dist/default/ui/tooltip/context.js +1 -0
  192. package/dist/default/ui/tooltip/element.js +4 -2
  193. package/dist/default/ui/volume-popover/element.js +1 -1
  194. package/dist/default/ui/volume-slider/element.js +1 -1
  195. package/dist/default/version.js +27 -0
  196. package/dist/dev/define/audio/compat-skin.css +1923 -0
  197. package/dist/dev/define/audio/compat-skin.d.ts +1 -0
  198. package/dist/dev/define/audio/compat-skin.js +8 -0
  199. package/dist/dev/define/audio/compat-skin.js.map +1 -0
  200. package/dist/dev/define/audio/compat-skin2.js +6 -0
  201. package/dist/dev/define/audio/compat-skin2.js.map +1 -0
  202. package/dist/dev/define/audio/neutral-skin.css +1855 -0
  203. package/dist/dev/define/audio/neutral-skin.d.ts +1 -0
  204. package/dist/dev/define/audio/neutral-skin.js +8 -0
  205. package/dist/dev/define/audio/neutral-skin.js.map +1 -0
  206. package/dist/dev/define/audio/neutral-skin2.js +6 -0
  207. package/dist/dev/define/audio/neutral-skin2.js.map +1 -0
  208. package/dist/dev/define/audio/{minimal-ui.js → neutral-ui.js} +2 -2
  209. package/dist/dev/define/audio/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  210. package/dist/dev/define/audio/skin.css +1220 -1411
  211. package/dist/dev/define/audio/skin2.js +1 -1
  212. package/dist/dev/define/audio/skin2.js.map +1 -1
  213. package/dist/dev/define/background/skin.css +8 -19
  214. package/dist/dev/define/global.css +5 -21
  215. package/dist/dev/define/live-audio/compat-skin.css +1708 -0
  216. package/dist/dev/define/live-audio/compat-skin.d.ts +1 -0
  217. package/dist/dev/define/live-audio/compat-skin.js +8 -0
  218. package/dist/dev/define/live-audio/compat-skin.js.map +1 -0
  219. package/dist/dev/define/live-audio/compat-skin2.js +6 -0
  220. package/dist/dev/define/live-audio/compat-skin2.js.map +1 -0
  221. package/dist/dev/define/live-audio/neutral-skin.css +1270 -0
  222. package/dist/dev/define/live-audio/neutral-skin.d.ts +1 -0
  223. package/dist/dev/define/live-audio/neutral-skin.js +8 -0
  224. package/dist/dev/define/live-audio/neutral-skin.js.map +1 -0
  225. package/dist/dev/define/live-audio/neutral-skin2.js +6 -0
  226. package/dist/dev/define/live-audio/neutral-skin2.js.map +1 -0
  227. package/dist/dev/define/live-audio/{minimal-ui.js → neutral-ui.js} +2 -2
  228. package/dist/dev/define/live-audio/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  229. package/dist/dev/define/live-audio/skin.css +849 -959
  230. package/dist/dev/define/live-audio/skin2.js +1 -1
  231. package/dist/dev/define/live-audio/skin2.js.map +1 -1
  232. package/dist/dev/define/live-video/compat-skin.css +2251 -0
  233. package/dist/dev/define/live-video/compat-skin.d.ts +1 -0
  234. package/dist/dev/define/live-video/compat-skin.js +8 -0
  235. package/dist/dev/define/live-video/compat-skin.js.map +1 -0
  236. package/dist/dev/define/live-video/compat-skin2.js +6 -0
  237. package/dist/dev/define/live-video/compat-skin2.js.map +1 -0
  238. package/dist/dev/define/live-video/neutral-skin.css +2101 -0
  239. package/dist/dev/define/live-video/neutral-skin.d.ts +1 -0
  240. package/dist/dev/define/live-video/neutral-skin.js +8 -0
  241. package/dist/dev/define/live-video/neutral-skin.js.map +1 -0
  242. package/dist/dev/define/live-video/neutral-skin2.js +6 -0
  243. package/dist/dev/define/live-video/neutral-skin2.js.map +1 -0
  244. package/dist/dev/define/live-video/{minimal-ui.js → neutral-ui.js} +2 -2
  245. package/dist/dev/define/live-video/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  246. package/dist/dev/define/live-video/skin.css +1565 -1784
  247. package/dist/dev/define/live-video/skin2.js +1 -1
  248. package/dist/dev/define/live-video/skin2.js.map +1 -1
  249. package/dist/dev/define/media/background-video.d.ts +1 -2
  250. package/dist/dev/define/media/cloudflare-video.d.ts +3 -2
  251. package/dist/dev/define/media/cloudflare-video.js.map +1 -1
  252. package/dist/dev/define/media/dash-video.d.ts +8 -3
  253. package/dist/dev/define/media/dash-video.js +5 -1
  254. package/dist/dev/define/media/dash-video.js.map +1 -1
  255. package/dist/dev/define/media/hls-audio.d.ts +1 -2
  256. package/dist/dev/define/media/hls-background-video.d.ts +1 -2
  257. package/dist/dev/define/media/hls-video.d.ts +1 -2
  258. package/dist/dev/define/media/hlsjs-video.d.ts +3 -2
  259. package/dist/dev/define/media/hlsjs-video.js.map +1 -1
  260. package/dist/dev/define/media/mux-audio/hls-js.d.ts +3 -2
  261. package/dist/dev/define/media/mux-audio/hls-js.js.map +1 -1
  262. package/dist/dev/define/media/mux-audio/index.d.ts +2 -2
  263. package/dist/dev/define/media/mux-audio/spf.d.ts +3 -2
  264. package/dist/dev/define/media/mux-audio/spf.js.map +1 -1
  265. package/dist/dev/define/media/mux-background-video.d.ts +1 -2
  266. package/dist/dev/define/media/mux-video/hls-js.d.ts +3 -2
  267. package/dist/dev/define/media/mux-video/hls-js.js.map +1 -1
  268. package/dist/dev/define/media/mux-video/index.d.ts +2 -2
  269. package/dist/dev/define/media/mux-video/spf.d.ts +3 -2
  270. package/dist/dev/define/media/mux-video/spf.js.map +1 -1
  271. package/dist/dev/define/media/native-hls-video.d.ts +3 -2
  272. package/dist/dev/define/media/native-hls-video.js.map +1 -1
  273. package/dist/dev/define/media/shaka-video.d.ts +4 -2
  274. package/dist/dev/define/media/shaka-video.js +1 -0
  275. package/dist/dev/define/media/shaka-video.js.map +1 -1
  276. package/dist/dev/define/media/spotify-audio.d.ts +3 -2
  277. package/dist/dev/define/media/spotify-audio.js.map +1 -1
  278. package/dist/dev/define/media/tiktok-video.d.ts +3 -2
  279. package/dist/dev/define/media/tiktok-video.js.map +1 -1
  280. package/dist/dev/define/media/twitch-video.d.ts +3 -2
  281. package/dist/dev/define/media/twitch-video.js.map +1 -1
  282. package/dist/dev/define/media/vimeo-video.d.ts +3 -2
  283. package/dist/dev/define/media/vimeo-video.js.map +1 -1
  284. package/dist/dev/define/media/wistia-video.d.ts +3 -2
  285. package/dist/dev/define/media/wistia-video.js.map +1 -1
  286. package/dist/dev/define/media/youtube-video.d.ts +3 -2
  287. package/dist/dev/define/media/youtube-video.js.map +1 -1
  288. package/dist/dev/define/shadow.css +2 -12
  289. package/dist/dev/define/ui/menu-radio-group.d.ts +1 -0
  290. package/dist/dev/define/ui/menu.d.ts +1 -0
  291. package/dist/dev/define/ui/popover.d.ts +1 -0
  292. package/dist/dev/define/video/compat-skin.css +2529 -0
  293. package/dist/dev/define/video/compat-skin.d.ts +1 -0
  294. package/dist/dev/define/video/compat-skin.js +8 -0
  295. package/dist/dev/define/video/compat-skin.js.map +1 -0
  296. package/dist/dev/define/video/compat-skin2.js +6 -0
  297. package/dist/dev/define/video/compat-skin2.js.map +1 -0
  298. package/dist/dev/define/video/neutral-skin.css +2849 -0
  299. package/dist/dev/define/video/neutral-skin.d.ts +1 -0
  300. package/dist/dev/define/video/neutral-skin.js +8 -0
  301. package/dist/dev/define/video/neutral-skin.js.map +1 -0
  302. package/dist/dev/define/video/neutral-skin2.js +6 -0
  303. package/dist/dev/define/video/neutral-skin2.js.map +1 -0
  304. package/dist/dev/define/video/{minimal-ui.js → neutral-ui.js} +2 -2
  305. package/dist/dev/define/video/{minimal-ui.js.map → neutral-ui.js.map} +1 -1
  306. package/dist/dev/define/video/skin.css +2046 -2454
  307. package/dist/dev/define/video/skin2.js +1 -1
  308. package/dist/dev/define/video/skin2.js.map +1 -1
  309. package/dist/dev/extensions/google-cast/extension.d.ts +8 -7
  310. package/dist/dev/extensions/google-cast/extension.js +18 -17
  311. package/dist/dev/extensions/google-cast/extension.js.map +1 -1
  312. package/dist/dev/extensions/mux-data/extension.d.ts +6 -6
  313. package/dist/dev/extensions/mux-data/extension.js +24 -24
  314. package/dist/dev/extensions/mux-data/extension.js.map +1 -1
  315. package/dist/dev/extensions/player-extension-element.d.ts +30 -0
  316. package/dist/dev/extensions/player-extension-element.js +51 -0
  317. package/dist/dev/extensions/player-extension-element.js.map +1 -0
  318. package/dist/dev/i18n/context.d.ts +4 -5
  319. package/dist/dev/i18n/controller.d.ts +3 -4
  320. package/dist/dev/i18n/controller.js.map +1 -1
  321. package/dist/dev/i18n/create-i18n.d.ts +3 -4
  322. package/dist/dev/i18n/index.d.ts +2 -2
  323. package/dist/dev/i18n/index.js +2 -2
  324. package/dist/dev/i18n/locale.d.ts +12 -5
  325. package/dist/dev/i18n/locale.js +10 -2
  326. package/dist/dev/i18n/locale.js.map +1 -1
  327. package/dist/dev/i18n/provider-element.d.ts +4 -3
  328. package/dist/dev/i18n/provider-element.js +1 -0
  329. package/dist/dev/i18n/provider-element.js.map +1 -1
  330. package/dist/dev/i18n/provider-mixin.d.ts +1 -2
  331. package/dist/dev/i18n/provider-mixin.js +11 -9
  332. package/dist/dev/i18n/provider-mixin.js.map +1 -1
  333. package/dist/dev/i18n/render-text.d.ts +6 -3
  334. package/dist/dev/i18n/render-text.js +5 -1
  335. package/dist/dev/i18n/render-text.js.map +1 -1
  336. package/dist/dev/i18n/text/airplay.d.ts +1 -0
  337. package/dist/dev/i18n/text/airplay.js +1 -0
  338. package/dist/dev/i18n/text/buttons.d.ts +1 -0
  339. package/dist/dev/i18n/text/buttons.js +1 -0
  340. package/dist/dev/i18n/text/captions.d.ts +1 -0
  341. package/dist/dev/i18n/text/captions.js +1 -0
  342. package/dist/dev/i18n/text/cast.d.ts +1 -0
  343. package/dist/dev/i18n/text/cast.js +1 -0
  344. package/dist/dev/i18n/text/common.d.ts +1 -0
  345. package/dist/dev/i18n/text/common.js +1 -0
  346. package/dist/dev/i18n/text/container.d.ts +1 -0
  347. package/dist/dev/i18n/text/container.js +1 -0
  348. package/dist/dev/i18n/text/errors.d.ts +1 -0
  349. package/dist/dev/i18n/text/errors.js +1 -0
  350. package/dist/dev/i18n/text/fullscreen.d.ts +1 -0
  351. package/dist/dev/i18n/text/fullscreen.js +1 -0
  352. package/dist/dev/i18n/text/live.d.ts +1 -0
  353. package/dist/dev/i18n/text/live.js +1 -0
  354. package/dist/dev/i18n/text/menu.d.ts +1 -0
  355. package/dist/dev/i18n/text/menu.js +1 -0
  356. package/dist/dev/i18n/text/pip.d.ts +1 -0
  357. package/dist/dev/i18n/text/pip.js +1 -0
  358. package/dist/dev/i18n/text/playback.d.ts +1 -0
  359. package/dist/dev/i18n/text/playback.js +1 -0
  360. package/dist/dev/i18n/text/seek.d.ts +1 -0
  361. package/dist/dev/i18n/text/seek.js +1 -0
  362. package/dist/dev/i18n/text/slider.d.ts +1 -0
  363. package/dist/dev/i18n/text/slider.js +1 -0
  364. package/dist/dev/i18n/text/status.d.ts +1 -0
  365. package/dist/dev/i18n/text/status.js +1 -0
  366. package/dist/dev/i18n/text/time.d.ts +1 -0
  367. package/dist/dev/i18n/text/time.js +1 -0
  368. package/dist/dev/i18n/text/volume.d.ts +1 -0
  369. package/dist/dev/i18n/text/volume.js +1 -0
  370. package/dist/dev/i18n/text-mixin.d.ts +1 -2
  371. package/dist/dev/i18n/text-mixin.js.map +1 -1
  372. package/dist/dev/i18n/types.d.ts +2 -3
  373. package/dist/dev/icons/{minimal → compat}/index.d.ts +1 -1
  374. package/dist/dev/icons/compat/index.js +26 -0
  375. package/dist/dev/icons/dist/element/base.d.ts +1 -2
  376. package/dist/dev/icons/dist/element/base.js.map +1 -1
  377. package/dist/dev/icons/dist/element/compat/icons.js +32 -0
  378. package/dist/dev/icons/dist/element/compat/icons.js.map +1 -0
  379. package/dist/dev/icons/dist/element/{minimal → compat}/index.js +2 -2
  380. package/dist/dev/icons/dist/element/compat/index.js.map +1 -0
  381. package/dist/dev/icons/dist/element/index.js +2 -1
  382. package/dist/dev/icons/dist/element/index.js.map +1 -1
  383. package/dist/dev/icons/dist/element/{minimal → neutral}/icons.js +1 -1
  384. package/dist/dev/icons/dist/element/{minimal → neutral}/icons.js.map +1 -1
  385. package/dist/dev/icons/dist/element/neutral/index.d.ts +1 -0
  386. package/dist/dev/icons/dist/element/neutral/index.js +10 -0
  387. package/dist/dev/icons/dist/element/{minimal → neutral}/index.js.map +1 -1
  388. package/dist/dev/icons/dist/html/compat/airplay-enter.js +6 -0
  389. package/dist/dev/icons/dist/html/compat/airplay-enter.js.map +1 -0
  390. package/dist/dev/icons/dist/html/compat/airplay-exit.js +6 -0
  391. package/dist/dev/icons/dist/html/compat/airplay-exit.js.map +1 -0
  392. package/dist/dev/icons/dist/html/compat/captions-off.js +6 -0
  393. package/dist/dev/icons/dist/html/compat/captions-off.js.map +1 -0
  394. package/dist/dev/icons/dist/html/compat/captions-on.js +6 -0
  395. package/dist/dev/icons/dist/html/compat/captions-on.js.map +1 -0
  396. package/dist/dev/icons/dist/html/compat/cast-enter.js +6 -0
  397. package/dist/dev/icons/dist/html/compat/cast-enter.js.map +1 -0
  398. package/dist/dev/icons/dist/html/compat/cast-exit.js +6 -0
  399. package/dist/dev/icons/dist/html/compat/cast-exit.js.map +1 -0
  400. package/dist/dev/icons/dist/html/compat/check.js +6 -0
  401. package/dist/dev/icons/dist/html/compat/check.js.map +1 -0
  402. package/dist/dev/icons/dist/html/compat/chevron.js +6 -0
  403. package/dist/dev/icons/dist/html/compat/chevron.js.map +1 -0
  404. package/dist/dev/icons/dist/html/compat/fullscreen-enter.js +6 -0
  405. package/dist/dev/icons/dist/html/compat/fullscreen-enter.js.map +1 -0
  406. package/dist/dev/icons/dist/html/compat/fullscreen-exit.js +6 -0
  407. package/dist/dev/icons/dist/html/compat/fullscreen-exit.js.map +1 -0
  408. package/dist/dev/icons/dist/html/compat/gear.js +6 -0
  409. package/dist/dev/icons/dist/html/compat/gear.js.map +1 -0
  410. package/dist/dev/icons/dist/html/compat/index.d.ts +28 -0
  411. package/dist/dev/icons/dist/html/compat/pause.js +6 -0
  412. package/dist/dev/icons/dist/html/compat/pause.js.map +1 -0
  413. package/dist/dev/icons/dist/html/compat/pip-enter.js +6 -0
  414. package/dist/dev/icons/dist/html/compat/pip-enter.js.map +1 -0
  415. package/dist/dev/icons/dist/html/compat/pip-exit.js +6 -0
  416. package/dist/dev/icons/dist/html/compat/pip-exit.js.map +1 -0
  417. package/dist/dev/icons/dist/html/compat/play.js +6 -0
  418. package/dist/dev/icons/dist/html/compat/play.js.map +1 -0
  419. package/dist/dev/icons/dist/html/compat/quality.js +6 -0
  420. package/dist/dev/icons/dist/html/compat/quality.js.map +1 -0
  421. package/dist/dev/icons/dist/html/compat/restart.js +6 -0
  422. package/dist/dev/icons/dist/html/compat/restart.js.map +1 -0
  423. package/dist/dev/icons/dist/html/compat/seek.js +6 -0
  424. package/dist/dev/icons/dist/html/compat/seek.js.map +1 -0
  425. package/dist/dev/icons/dist/html/compat/speech.js +6 -0
  426. package/dist/dev/icons/dist/html/compat/speech.js.map +1 -0
  427. package/dist/dev/icons/dist/html/compat/speed.js +6 -0
  428. package/dist/dev/icons/dist/html/compat/speed.js.map +1 -0
  429. package/dist/dev/icons/dist/html/{minimal → compat}/spinner.js +1 -1
  430. package/dist/dev/icons/dist/html/compat/spinner.js.map +1 -0
  431. package/dist/dev/icons/dist/html/compat/switches.js +6 -0
  432. package/dist/dev/icons/dist/html/compat/switches.js.map +1 -0
  433. package/dist/dev/icons/dist/html/compat/volume-high.js +6 -0
  434. package/dist/dev/icons/dist/html/compat/volume-high.js.map +1 -0
  435. package/dist/dev/icons/dist/html/compat/volume-low.js +6 -0
  436. package/dist/dev/icons/dist/html/compat/volume-low.js.map +1 -0
  437. package/dist/dev/icons/dist/html/compat/volume-off.js +6 -0
  438. package/dist/dev/icons/dist/html/compat/volume-off.js.map +1 -0
  439. package/dist/dev/icons/dist/html/default/index.d.ts +25 -26
  440. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-enter.js +1 -1
  441. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-enter.js.map +1 -1
  442. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-exit.js +1 -1
  443. package/dist/dev/icons/dist/html/{minimal → neutral}/airplay-exit.js.map +1 -1
  444. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-off.js +1 -1
  445. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-off.js.map +1 -1
  446. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-on.js +1 -1
  447. package/dist/dev/icons/dist/html/{minimal → neutral}/captions-on.js.map +1 -1
  448. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-enter.js +1 -1
  449. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-enter.js.map +1 -1
  450. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-exit.js +1 -1
  451. package/dist/dev/icons/dist/html/{minimal → neutral}/cast-exit.js.map +1 -1
  452. package/dist/dev/icons/dist/html/{minimal → neutral}/check.js +1 -1
  453. package/dist/dev/icons/dist/html/{minimal → neutral}/check.js.map +1 -1
  454. package/dist/dev/icons/dist/html/{minimal → neutral}/chevron.js +1 -1
  455. package/dist/dev/icons/dist/html/{minimal → neutral}/chevron.js.map +1 -1
  456. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-enter.js +1 -1
  457. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-enter.js.map +1 -1
  458. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-exit.js +1 -1
  459. package/dist/dev/icons/dist/html/{minimal → neutral}/fullscreen-exit.js.map +1 -1
  460. package/dist/dev/icons/dist/html/{minimal → neutral}/gear.js +1 -1
  461. package/dist/dev/icons/dist/html/{minimal → neutral}/gear.js.map +1 -1
  462. package/dist/dev/icons/dist/html/neutral/index.d.ts +28 -0
  463. package/dist/dev/icons/dist/html/{minimal → neutral}/pause.js +1 -1
  464. package/dist/dev/icons/dist/html/{minimal → neutral}/pause.js.map +1 -1
  465. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-enter.js +1 -1
  466. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-enter.js.map +1 -1
  467. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-exit.js +1 -1
  468. package/dist/dev/icons/dist/html/{minimal → neutral}/pip-exit.js.map +1 -1
  469. package/dist/dev/icons/dist/html/{minimal → neutral}/play.js +1 -1
  470. package/dist/dev/icons/dist/html/{minimal → neutral}/play.js.map +1 -1
  471. package/dist/dev/icons/dist/html/{minimal → neutral}/quality.js +1 -1
  472. package/dist/dev/icons/dist/html/{minimal → neutral}/quality.js.map +1 -1
  473. package/dist/dev/icons/dist/html/{minimal → neutral}/restart.js +1 -1
  474. package/dist/dev/icons/dist/html/{minimal → neutral}/restart.js.map +1 -1
  475. package/dist/dev/icons/dist/html/{minimal → neutral}/seek.js +1 -1
  476. package/dist/dev/icons/dist/html/{minimal → neutral}/seek.js.map +1 -1
  477. package/dist/dev/icons/dist/html/{minimal → neutral}/speech.js +1 -1
  478. package/dist/dev/icons/dist/html/{minimal → neutral}/speech.js.map +1 -1
  479. package/dist/dev/icons/dist/html/{minimal → neutral}/speed.js +1 -1
  480. package/dist/dev/icons/dist/html/{minimal → neutral}/speed.js.map +1 -1
  481. package/dist/dev/icons/dist/html/neutral/spinner.js +6 -0
  482. package/dist/dev/icons/dist/html/{minimal → neutral}/spinner.js.map +1 -1
  483. package/dist/dev/icons/dist/html/{minimal → neutral}/switches.js +1 -1
  484. package/dist/dev/icons/dist/html/{minimal → neutral}/switches.js.map +1 -1
  485. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-high.js +1 -1
  486. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-high.js.map +1 -1
  487. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-low.js +1 -1
  488. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-low.js.map +1 -1
  489. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-off.js +1 -1
  490. package/dist/dev/icons/dist/html/{minimal → neutral}/volume-off.js.map +1 -1
  491. package/dist/dev/icons/element/compat/index.d.ts +1 -0
  492. package/dist/dev/icons/element/compat/index.js +1 -0
  493. package/dist/dev/icons/element/neutral/index.d.ts +1 -0
  494. package/dist/dev/icons/element/neutral/index.js +1 -0
  495. package/dist/dev/icons/element/register/index.d.ts +1 -2
  496. package/dist/dev/icons/neutral/index.d.ts +2 -0
  497. package/dist/dev/icons/neutral/index.js +26 -0
  498. package/dist/dev/index.d.ts +12 -7
  499. package/dist/dev/index.js +4 -3
  500. package/dist/dev/internal/skins/compat-audio/register.d.ts +43 -0
  501. package/dist/dev/internal/skins/compat-audio/register.js +72 -0
  502. package/dist/dev/internal/skins/compat-audio/register.js.map +1 -0
  503. package/dist/dev/internal/skins/compat-audio/skin.css +1891 -0
  504. package/dist/dev/internal/skins/compat-audio/template.js +217 -0
  505. package/dist/dev/internal/skins/compat-audio/template.js.map +1 -0
  506. package/dist/dev/internal/skins/compat-live-audio/register.d.ts +27 -0
  507. package/dist/dev/internal/skins/compat-live-audio/register.js +52 -0
  508. package/dist/dev/internal/skins/compat-live-audio/register.js.map +1 -0
  509. package/dist/dev/internal/skins/compat-live-audio/skin.css +1676 -0
  510. package/dist/dev/internal/skins/compat-live-audio/template.js +114 -0
  511. package/dist/dev/internal/skins/compat-live-audio/template.js.map +1 -0
  512. package/dist/dev/internal/skins/compat-live-video/register.d.ts +45 -0
  513. package/dist/dev/internal/skins/compat-live-video/register.js +88 -0
  514. package/dist/dev/internal/skins/compat-live-video/register.js.map +1 -0
  515. package/dist/dev/internal/skins/compat-live-video/skin.css +2219 -0
  516. package/dist/dev/internal/skins/compat-live-video/template.js +239 -0
  517. package/dist/dev/internal/skins/compat-live-video/template.js.map +1 -0
  518. package/dist/dev/internal/skins/compat-video/register.d.ts +62 -0
  519. package/dist/dev/internal/skins/compat-video/register.js +117 -0
  520. package/dist/dev/internal/skins/compat-video/register.js.map +1 -0
  521. package/dist/dev/internal/skins/compat-video/skin.css +2497 -0
  522. package/dist/dev/internal/skins/compat-video/template.js +459 -0
  523. package/dist/dev/internal/skins/compat-video/template.js.map +1 -0
  524. package/dist/dev/internal/skins/default-audio/register.d.ts +12 -12
  525. package/dist/dev/internal/skins/default-audio/register.js +8 -8
  526. package/dist/dev/internal/skins/default-audio/skin.css +1213 -1365
  527. package/dist/dev/internal/skins/default-live-audio/register.d.ts +4 -4
  528. package/dist/dev/internal/skins/default-live-audio/register.js +4 -4
  529. package/dist/dev/internal/skins/default-live-audio/skin.css +842 -913
  530. package/dist/dev/internal/skins/default-live-video/register.d.ts +10 -10
  531. package/dist/dev/internal/skins/default-live-video/register.js +8 -8
  532. package/dist/dev/internal/skins/default-live-video/skin.css +1548 -1728
  533. package/dist/dev/internal/skins/default-video/register.d.ts +18 -18
  534. package/dist/dev/internal/skins/default-video/register.js +13 -13
  535. package/dist/dev/internal/skins/default-video/skin.css +2034 -2403
  536. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.d.ts +14 -14
  537. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.js +20 -20
  538. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/register.js.map +1 -1
  539. package/dist/dev/internal/skins/neutral-audio/skin.css +1823 -0
  540. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/template.js +24 -24
  541. package/dist/dev/internal/skins/{minimal-audio → neutral-audio}/template.js.map +1 -1
  542. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.d.ts +4 -4
  543. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js +13 -13
  544. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/register.js.map +1 -1
  545. package/dist/dev/internal/skins/neutral-live-audio/skin.css +1238 -0
  546. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js +14 -14
  547. package/dist/dev/internal/skins/{minimal-live-audio → neutral-live-audio}/template.js.map +1 -1
  548. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.d.ts +10 -10
  549. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.js +28 -28
  550. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/register.js.map +1 -1
  551. package/dist/dev/internal/skins/neutral-live-video/skin.css +2069 -0
  552. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/template.js +47 -47
  553. package/dist/dev/internal/skins/{minimal-live-video → neutral-live-video}/template.js.map +1 -1
  554. package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.d.ts +20 -20
  555. package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.js +40 -40
  556. package/dist/dev/internal/skins/{minimal-video → neutral-video}/register.js.map +1 -1
  557. package/dist/dev/internal/skins/neutral-video/skin.css +2817 -0
  558. package/dist/dev/internal/skins/{minimal-video → neutral-video}/template.js +75 -75
  559. package/dist/dev/internal/skins/{minimal-video → neutral-video}/template.js.map +1 -1
  560. package/dist/dev/media/background-video/adapter.d.ts +1 -2
  561. package/dist/dev/media/background-video/template.d.ts +1 -2
  562. package/dist/dev/media/cloudflare-video/adapter.d.ts +3 -15
  563. package/dist/dev/media/dash-video/adapter.d.ts +3 -15
  564. package/dist/dev/media/hls-audio/adapter.d.ts +3 -15
  565. package/dist/dev/media/hls-background-video/adapter.d.ts +8 -5
  566. package/dist/dev/media/hls-background-video/adapter.js.map +1 -1
  567. package/dist/dev/media/hls-video/adapter.d.ts +3 -15
  568. package/dist/dev/media/hlsjs-video/adapter.d.ts +3 -15
  569. package/dist/dev/media/mux-audio/hls-js.d.ts +3 -15
  570. package/dist/dev/media/mux-audio/mixin.js.map +1 -1
  571. package/dist/dev/media/mux-audio/spf.d.ts +3 -15
  572. package/dist/dev/media/mux-video/hls-js.d.ts +3 -15
  573. package/dist/dev/media/mux-video/mixin.js.map +1 -1
  574. package/dist/dev/media/mux-video/spf.d.ts +3 -15
  575. package/dist/dev/media/native-hls-video/adapter.d.ts +3 -15
  576. package/dist/dev/media/shaka-video/adapter.d.ts +3 -15
  577. package/dist/dev/media/spotify-audio/adapter.d.ts +3 -15
  578. package/dist/dev/media/tiktok-video/adapter.d.ts +3 -15
  579. package/dist/dev/media/twitch-video/adapter.d.ts +3 -15
  580. package/dist/dev/media/vimeo-video/adapter.d.ts +3 -15
  581. package/dist/dev/media/wistia-video/adapter.d.ts +1 -2
  582. package/dist/dev/media/youtube-video/adapter.d.ts +3 -15
  583. package/dist/dev/player/context.d.ts +34 -15
  584. package/dist/dev/player/context.js +9 -1
  585. package/dist/dev/player/context.js.map +1 -1
  586. package/dist/dev/player/controller.d.ts +3 -4
  587. package/dist/dev/player/controller.js.map +1 -1
  588. package/dist/dev/player/create-player.d.ts +5 -6
  589. package/dist/dev/player/create-player.js +2 -1
  590. package/dist/dev/player/create-player.js.map +1 -1
  591. package/dist/dev/player/element.js +47 -10
  592. package/dist/dev/player/element.js.map +1 -1
  593. package/dist/dev/presets/audio/compat-skin.d.ts +15 -0
  594. package/dist/dev/presets/audio/compat-skin.js +21 -0
  595. package/dist/dev/presets/audio/compat-skin.js.map +1 -0
  596. package/dist/dev/presets/audio/index.d.ts +3 -2
  597. package/dist/dev/presets/audio/index.js +3 -2
  598. package/dist/dev/presets/audio/neutral-skin.d.ts +15 -0
  599. package/dist/dev/presets/audio/neutral-skin.js +21 -0
  600. package/dist/dev/presets/audio/neutral-skin.js.map +1 -0
  601. package/dist/dev/presets/audio/player.d.ts +2 -3
  602. package/dist/dev/presets/audio/skin.d.ts +2 -3
  603. package/dist/dev/presets/audio/skin.js.map +1 -1
  604. package/dist/dev/presets/background/player.d.ts +2 -3
  605. package/dist/dev/presets/background/skin.d.ts +1 -2
  606. package/dist/dev/presets/live-audio/compat-skin.d.ts +15 -0
  607. package/dist/dev/presets/live-audio/compat-skin.js +21 -0
  608. package/dist/dev/presets/live-audio/compat-skin.js.map +1 -0
  609. package/dist/dev/presets/live-audio/index.d.ts +3 -2
  610. package/dist/dev/presets/live-audio/index.js +3 -2
  611. package/dist/dev/presets/live-audio/neutral-skin.d.ts +15 -0
  612. package/dist/dev/presets/live-audio/neutral-skin.js +21 -0
  613. package/dist/dev/presets/live-audio/neutral-skin.js.map +1 -0
  614. package/dist/dev/presets/live-audio/player.d.ts +2 -3
  615. package/dist/dev/presets/live-audio/skin.d.ts +2 -3
  616. package/dist/dev/presets/live-audio/skin.js.map +1 -1
  617. package/dist/dev/presets/live-video/compat-skin.d.ts +15 -0
  618. package/dist/dev/presets/live-video/compat-skin.js +21 -0
  619. package/dist/dev/presets/live-video/compat-skin.js.map +1 -0
  620. package/dist/dev/presets/live-video/index.d.ts +3 -2
  621. package/dist/dev/presets/live-video/index.js +3 -2
  622. package/dist/dev/presets/live-video/neutral-skin.d.ts +15 -0
  623. package/dist/dev/presets/live-video/neutral-skin.js +21 -0
  624. package/dist/dev/presets/live-video/neutral-skin.js.map +1 -0
  625. package/dist/dev/presets/live-video/player.d.ts +2 -3
  626. package/dist/dev/presets/live-video/skin.d.ts +2 -3
  627. package/dist/dev/presets/live-video/skin.js.map +1 -1
  628. package/dist/dev/presets/skin.d.ts +1 -2
  629. package/dist/dev/presets/video/compat-skin.d.ts +15 -0
  630. package/dist/dev/presets/video/compat-skin.js +21 -0
  631. package/dist/dev/presets/video/compat-skin.js.map +1 -0
  632. package/dist/dev/presets/video/index.d.ts +3 -2
  633. package/dist/dev/presets/video/index.js +3 -2
  634. package/dist/dev/presets/video/neutral-skin.d.ts +15 -0
  635. package/dist/dev/presets/video/neutral-skin.js +21 -0
  636. package/dist/dev/presets/video/neutral-skin.js.map +1 -0
  637. package/dist/dev/presets/video/player.d.ts +2 -3
  638. package/dist/dev/presets/video/skin.d.ts +2 -3
  639. package/dist/dev/presets/video/skin.js.map +1 -1
  640. package/dist/dev/store/media-attach-mixin.d.ts +6 -4
  641. package/dist/dev/store/media-attach-mixin.js +2 -0
  642. package/dist/dev/store/media-attach-mixin.js.map +1 -1
  643. package/dist/dev/store/types.d.ts +2 -4
  644. package/dist/dev/ui/airplay-button/element.d.ts +4 -5
  645. package/dist/dev/ui/airplay-button/element.js +1 -1
  646. package/dist/dev/ui/airplay-button/element.js.map +1 -1
  647. package/dist/dev/ui/alert-dialog/element.d.ts +1 -2
  648. package/dist/dev/ui/audio-track-radio-group/element.d.ts +4 -5
  649. package/dist/dev/ui/audio-track-radio-group/element.js.map +1 -1
  650. package/dist/dev/ui/buffering-indicator/element.d.ts +2 -2
  651. package/dist/dev/ui/buffering-indicator/element.js +4 -0
  652. package/dist/dev/ui/buffering-indicator/element.js.map +1 -1
  653. package/dist/dev/ui/captions-button/element.d.ts +7 -10
  654. package/dist/dev/ui/captions-button/element.js.map +1 -1
  655. package/dist/dev/ui/captions-radio-group/element.d.ts +4 -5
  656. package/dist/dev/ui/captions-radio-group/element.js.map +1 -1
  657. package/dist/dev/ui/cast-button/element.d.ts +3 -4
  658. package/dist/dev/ui/cast-button/element.js.map +1 -1
  659. package/dist/dev/ui/container/element.d.ts +1 -2
  660. package/dist/dev/ui/container/element.js.map +1 -1
  661. package/dist/dev/ui/context-part-element.d.ts +2 -3
  662. package/dist/dev/ui/context-part-element.js.map +1 -1
  663. package/dist/dev/ui/controls/backdrop.d.ts +1 -2
  664. package/dist/dev/ui/controls/content.d.ts +1 -2
  665. package/dist/dev/ui/controls/context.d.ts +1 -2
  666. package/dist/dev/ui/controls/element.d.ts +1 -2
  667. package/dist/dev/ui/controls/element.js.map +1 -1
  668. package/dist/dev/ui/controls/group.d.ts +1 -2
  669. package/dist/dev/ui/dialog/backdrop.d.ts +1 -2
  670. package/dist/dev/ui/dialog/close.d.ts +1 -2
  671. package/dist/dev/ui/dialog/close.js.map +1 -1
  672. package/dist/dev/ui/dialog/context.d.ts +4 -3
  673. package/dist/dev/ui/dialog/context.js +1 -0
  674. package/dist/dev/ui/dialog/context.js.map +1 -1
  675. package/dist/dev/ui/dialog/description.d.ts +1 -2
  676. package/dist/dev/ui/dialog/element.d.ts +5 -4
  677. package/dist/dev/ui/dialog/element.js +4 -2
  678. package/dist/dev/ui/dialog/element.js.map +1 -1
  679. package/dist/dev/ui/dialog/popup.d.ts +1 -2
  680. package/dist/dev/ui/dialog/popup.js.map +1 -1
  681. package/dist/dev/ui/dialog/title.d.ts +1 -2
  682. package/dist/dev/ui/error-dialog/element.d.ts +1 -2
  683. package/dist/dev/ui/error-dialog/element.js.map +1 -1
  684. package/dist/dev/ui/fullscreen-button/element.d.ts +3 -5
  685. package/dist/dev/ui/fullscreen-button/element.js.map +1 -1
  686. package/dist/dev/ui/gesture/element.d.ts +1 -2
  687. package/dist/dev/ui/gesture/element.js.map +1 -1
  688. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts +2 -3
  689. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.js.map +1 -1
  690. package/dist/dev/ui/hotkey/element.d.ts +1 -2
  691. package/dist/dev/ui/hotkey/element.js.map +1 -1
  692. package/dist/dev/ui/input-indicator/element.d.ts +5 -4
  693. package/dist/dev/ui/input-indicator/element.js.map +1 -1
  694. package/dist/dev/ui/input-indicator/live-indicator.d.ts +2 -3
  695. package/dist/dev/ui/input-indicator/live-indicator.js.map +1 -1
  696. package/dist/dev/ui/live-button/element.d.ts +4 -4
  697. package/dist/dev/ui/live-button/element.js.map +1 -1
  698. package/dist/dev/ui/media-button-element.d.ts +17 -8
  699. package/dist/dev/ui/media-button-element.js +7 -6
  700. package/dist/dev/ui/media-button-element.js.map +1 -1
  701. package/dist/dev/ui/media-ui-element.d.ts +15 -7
  702. package/dist/dev/ui/media-ui-element.js +6 -1
  703. package/dist/dev/ui/media-ui-element.js.map +1 -1
  704. package/dist/dev/ui/menu/checkbox-item.d.ts +1 -2
  705. package/dist/dev/ui/menu/checkbox-item.js.map +1 -1
  706. package/dist/dev/ui/menu/content.d.ts +1 -2
  707. package/dist/dev/ui/menu/content.js.map +1 -1
  708. package/dist/dev/ui/menu/context.d.ts +9 -5
  709. package/dist/dev/ui/menu/context.js +2 -0
  710. package/dist/dev/ui/menu/context.js.map +1 -1
  711. package/dist/dev/ui/menu/element.d.ts +1 -2
  712. package/dist/dev/ui/menu/element.js.map +1 -1
  713. package/dist/dev/ui/menu/group-controller.js.map +1 -1
  714. package/dist/dev/ui/menu/group-label.d.ts +1 -2
  715. package/dist/dev/ui/menu/group-label.js.map +1 -1
  716. package/dist/dev/ui/menu/group.d.ts +1 -2
  717. package/dist/dev/ui/menu/group.js.map +1 -1
  718. package/dist/dev/ui/menu/item-indicator.d.ts +1 -2
  719. package/dist/dev/ui/menu/item.d.ts +1 -2
  720. package/dist/dev/ui/menu/item.js.map +1 -1
  721. package/dist/dev/ui/menu/radio-group.d.ts +1 -2
  722. package/dist/dev/ui/menu/radio-group.js.map +1 -1
  723. package/dist/dev/ui/menu/radio-item.d.ts +1 -2
  724. package/dist/dev/ui/menu/radio-item.js.map +1 -1
  725. package/dist/dev/ui/menu/separator.d.ts +1 -2
  726. package/dist/dev/ui/mute-button/element.d.ts +3 -4
  727. package/dist/dev/ui/mute-button/element.js.map +1 -1
  728. package/dist/dev/ui/pip-button/element.d.ts +4 -6
  729. package/dist/dev/ui/pip-button/element.js.map +1 -1
  730. package/dist/dev/ui/play-button/element.d.ts +3 -5
  731. package/dist/dev/ui/play-button/element.js +1 -1
  732. package/dist/dev/ui/play-button/element.js.map +1 -1
  733. package/dist/dev/ui/playback-rate-button/element.d.ts +4 -5
  734. package/dist/dev/ui/playback-rate-button/element.js +4 -2
  735. package/dist/dev/ui/playback-rate-button/element.js.map +1 -1
  736. package/dist/dev/ui/playback-rate-radio-group/element.d.ts +4 -5
  737. package/dist/dev/ui/playback-rate-radio-group/element.js.map +1 -1
  738. package/dist/dev/ui/popover/element.d.ts +1 -2
  739. package/dist/dev/ui/popover/element.js +4 -2
  740. package/dist/dev/ui/popover/element.js.map +1 -1
  741. package/dist/dev/ui/position-controller.js.map +1 -1
  742. package/dist/dev/ui/poster/element.d.ts +1 -2
  743. package/dist/dev/ui/poster/element.js.map +1 -1
  744. package/dist/dev/ui/quality-radio-group/element.d.ts +4 -5
  745. package/dist/dev/ui/quality-radio-group/element.js.map +1 -1
  746. package/dist/dev/ui/radio-group/context.d.ts +4 -3
  747. package/dist/dev/ui/radio-group/context.js +1 -0
  748. package/dist/dev/ui/radio-group/context.js.map +1 -1
  749. package/dist/dev/ui/radio-group/element.d.ts +1 -2
  750. package/dist/dev/ui/radio-group/element.js.map +1 -1
  751. package/dist/dev/ui/radio-options/controller.js.map +1 -1
  752. package/dist/dev/ui/seek-button/element.d.ts +2 -3
  753. package/dist/dev/ui/seek-button/element.js.map +1 -1
  754. package/dist/dev/ui/seek-indicator/element.d.ts +3 -4
  755. package/dist/dev/ui/seek-indicator/element.js +7 -1
  756. package/dist/dev/ui/seek-indicator/element.js.map +1 -1
  757. package/dist/dev/ui/seek-indicator/value.d.ts +1 -2
  758. package/dist/dev/ui/slider/buffer.d.ts +1 -2
  759. package/dist/dev/ui/slider/context.d.ts +4 -3
  760. package/dist/dev/ui/slider/context.js +1 -0
  761. package/dist/dev/ui/slider/context.js.map +1 -1
  762. package/dist/dev/ui/slider/element.d.ts +1 -2
  763. package/dist/dev/ui/slider/element.js.map +1 -1
  764. package/dist/dev/ui/slider/events.d.ts +4 -3
  765. package/dist/dev/ui/slider/fill.d.ts +1 -2
  766. package/dist/dev/ui/slider/preview.d.ts +1 -2
  767. package/dist/dev/ui/slider/preview.js.map +1 -1
  768. package/dist/dev/ui/slider/thumb.d.ts +1 -2
  769. package/dist/dev/ui/slider/thumb.js.map +1 -1
  770. package/dist/dev/ui/slider/thumbnail.d.ts +1 -2
  771. package/dist/dev/ui/slider/thumbnail.js.map +1 -1
  772. package/dist/dev/ui/slider/track.d.ts +1 -2
  773. package/dist/dev/ui/slider/value.d.ts +1 -2
  774. package/dist/dev/ui/slider/value.js.map +1 -1
  775. package/dist/dev/ui/status-announcer/element.d.ts +1 -2
  776. package/dist/dev/ui/status-announcer/element.js.map +1 -1
  777. package/dist/dev/ui/status-indicator/element.d.ts +9 -4
  778. package/dist/dev/ui/status-indicator/element.js +14 -1
  779. package/dist/dev/ui/status-indicator/element.js.map +1 -1
  780. package/dist/dev/ui/status-indicator/value.d.ts +1 -2
  781. package/dist/dev/ui/text/element.d.ts +4 -3
  782. package/dist/dev/ui/text/element.js +1 -0
  783. package/dist/dev/ui/text/element.js.map +1 -1
  784. package/dist/dev/ui/thumbnail/element.d.ts +5 -6
  785. package/dist/dev/ui/thumbnail/element.js +3 -2
  786. package/dist/dev/ui/thumbnail/element.js.map +1 -1
  787. package/dist/dev/ui/time/element.d.ts +1 -2
  788. package/dist/dev/ui/time/element.js.map +1 -1
  789. package/dist/dev/ui/time/group.d.ts +1 -2
  790. package/dist/dev/ui/time/separator.d.ts +1 -2
  791. package/dist/dev/ui/time-slider/chapter-title.d.ts +1 -2
  792. package/dist/dev/ui/time-slider/chapter-title.js.map +1 -1
  793. package/dist/dev/ui/time-slider/chapters.d.ts +1 -2
  794. package/dist/dev/ui/time-slider/chapters.js.map +1 -1
  795. package/dist/dev/ui/time-slider/element.d.ts +1 -2
  796. package/dist/dev/ui/time-slider/element.js.map +1 -1
  797. package/dist/dev/ui/title/element.d.ts +1 -2
  798. package/dist/dev/ui/title/element.js.map +1 -1
  799. package/dist/dev/ui/tooltip/context.d.ts +2 -2
  800. package/dist/dev/ui/tooltip/context.js +1 -0
  801. package/dist/dev/ui/tooltip/context.js.map +1 -1
  802. package/dist/dev/ui/tooltip/element.d.ts +1 -2
  803. package/dist/dev/ui/tooltip/element.js +4 -2
  804. package/dist/dev/ui/tooltip/element.js.map +1 -1
  805. package/dist/dev/ui/tooltip/group.d.ts +1 -2
  806. package/dist/dev/ui/tooltip/group.js.map +1 -1
  807. package/dist/dev/ui/tooltip/label.d.ts +1 -2
  808. package/dist/dev/ui/tooltip/label.js.map +1 -1
  809. package/dist/dev/ui/tooltip/shortcut.d.ts +1 -2
  810. package/dist/dev/ui/ui-element.d.ts +3 -3
  811. package/dist/dev/ui/ui-element.js.map +1 -1
  812. package/dist/dev/ui/volume-indicator/element.d.ts +3 -4
  813. package/dist/dev/ui/volume-indicator/element.js.map +1 -1
  814. package/dist/dev/ui/volume-indicator/fill.d.ts +1 -2
  815. package/dist/dev/ui/volume-indicator/value.d.ts +1 -2
  816. package/dist/dev/ui/volume-popover/element.d.ts +1 -2
  817. package/dist/dev/ui/volume-popover/element.js +1 -1
  818. package/dist/dev/ui/volume-popover/element.js.map +1 -1
  819. package/dist/dev/ui/volume-slider/element.d.ts +1 -2
  820. package/dist/dev/ui/volume-slider/element.js +1 -1
  821. package/dist/dev/ui/volume-slider/element.js.map +1 -1
  822. package/dist/dev/version.d.ts +21 -0
  823. package/dist/dev/version.js +29 -0
  824. package/dist/dev/version.js.map +1 -0
  825. package/docs/README.md +1 -1
  826. package/docs/guides/autoplay.md +10 -21
  827. package/docs/guides/background-video.md +74 -7
  828. package/docs/guides/browser-support.md +48 -36
  829. package/docs/guides/build-with-ai.md +1 -1
  830. package/docs/guides/build-your-own-component.md +5 -5
  831. package/docs/guides/captions.md +46 -6
  832. package/docs/guides/casting.md +24 -8
  833. package/docs/guides/cdn.md +11 -10
  834. package/docs/guides/content-security-policy.md +29 -5
  835. package/docs/guides/controls.md +25 -10
  836. package/docs/guides/customize-skins.md +2 -2
  837. package/docs/guides/features.md +3 -1
  838. package/docs/guides/fullscreen.md +35 -8
  839. package/docs/guides/installation-cdn.md +7 -7
  840. package/docs/guides/installation-shadcn.md +5 -5
  841. package/docs/guides/installation-svelte.md +6 -6
  842. package/docs/guides/installation-vue.md +6 -6
  843. package/docs/guides/installation.md +7 -7
  844. package/docs/guides/internationalization.md +37 -28
  845. package/docs/guides/keyboard-shortcuts.md +27 -15
  846. package/docs/guides/live-streams.md +51 -13
  847. package/docs/guides/llms.txt +6 -5
  848. package/docs/guides/media-sources.md +13 -6
  849. package/docs/guides/migrate-from-media-chrome.md +182 -51
  850. package/docs/guides/migrate-from-mux-player.md +191 -116
  851. package/docs/guides/migrate-from-plyr.md +171 -81
  852. package/docs/guides/migrate-from-video-js-8.md +256 -191
  853. package/docs/guides/migrate-from-vidstack.md +865 -0
  854. package/docs/guides/mux-data.md +23 -9
  855. package/docs/guides/picture-in-picture.md +22 -16
  856. package/docs/guides/playback-errors.md +10 -7
  857. package/docs/guides/poster.md +32 -11
  858. package/docs/guides/presets.md +15 -5
  859. package/docs/guides/quality.md +44 -5
  860. package/docs/guides/self-hosting.md +5 -5
  861. package/docs/guides/skins.md +6 -4
  862. package/docs/guides/thumbnails.md +24 -14
  863. package/docs/guides/ui-components.md +1 -1
  864. package/docs/guides/user-preferences.md +38 -15
  865. package/docs/guides/v10-roadmap.md +1 -1
  866. package/docs/llms.txt +45 -11
  867. package/docs/reference/api/create-i18n.md +3 -3
  868. package/docs/reference/api/create-translator.md +1 -1
  869. package/docs/reference/api/feature-audio-track.md +1 -1
  870. package/docs/reference/api/feature-controls.md +2 -2
  871. package/docs/reference/api/feature-fullscreen.md +1 -2
  872. package/docs/reference/api/feature-pip.md +3 -4
  873. package/docs/reference/api/feature-playback.md +2 -3
  874. package/docs/reference/api/feature-quality.md +2 -2
  875. package/docs/reference/api/feature-remote-playback.md +1 -1
  876. package/docs/reference/api/feature-source.md +2 -8
  877. package/docs/reference/api/feature-text-tracks.md +6 -8
  878. package/docs/reference/api/feature-volume.md +1 -1
  879. package/docs/reference/api/find-locale-keys.md +32 -0
  880. package/docs/reference/api/get-locale-key.md +32 -0
  881. package/docs/reference/api/html-create-player.md +24 -26
  882. package/docs/reference/api/i18n-controller.md +1 -1
  883. package/docs/reference/api/is-text.md +33 -0
  884. package/docs/reference/api/llms.txt +23 -2
  885. package/docs/reference/api/load-locale.md +36 -0
  886. package/docs/reference/api/media-capabilities.md +255 -0
  887. package/docs/reference/api/player-controller.md +39 -20
  888. package/docs/reference/api/player-store.md +112 -0
  889. package/docs/reference/api/preset-audio.md +116 -0
  890. package/docs/reference/api/preset-background.md +103 -0
  891. package/docs/reference/api/preset-live-audio.md +119 -0
  892. package/docs/reference/api/preset-live-video.md +124 -0
  893. package/docs/reference/api/preset-video.md +123 -0
  894. package/docs/reference/api/register-i18n.md +13 -0
  895. package/docs/reference/api/resolve-adapter-type.md +98 -0
  896. package/docs/reference/api/resolve-mime-type.md +48 -0
  897. package/docs/reference/api/resolve-translation.md +36 -0
  898. package/docs/reference/api/translate-text.md +56 -0
  899. package/docs/reference/api/translation-phrases.md +13 -0
  900. package/docs/reference/api/ui-element.md +296 -0
  901. package/docs/reference/components/audio-compat-skin.md +33 -0
  902. package/docs/reference/components/{audio-minimal-skin.md → audio-neutral-skin.md} +7 -7
  903. package/docs/reference/components/audio-skin.md +3 -3
  904. package/docs/reference/components/background-video-skin.md +1 -1
  905. package/docs/reference/components/background-video.md +1 -1
  906. package/docs/reference/components/captions-button.md +1 -1
  907. package/docs/reference/components/captions-radio-group.md +1 -1
  908. package/docs/reference/components/cloudflare-video.md +1 -1
  909. package/docs/reference/components/controls.md +2 -2
  910. package/docs/reference/components/dash-video.md +1 -1
  911. package/docs/reference/components/fullscreen-button.md +1 -1
  912. package/docs/reference/components/google-cast.md +4 -4
  913. package/docs/reference/components/hls-audio.md +1 -1
  914. package/docs/reference/components/hls-background-video.md +1 -1
  915. package/docs/reference/components/hls-video.md +1 -1
  916. package/docs/reference/components/hlsjs-video.md +2 -2
  917. package/docs/reference/components/icons.md +130 -0
  918. package/docs/reference/components/live-audio-compat-skin.md +35 -0
  919. package/docs/reference/components/{live-audio-minimal-skin.md → live-audio-neutral-skin.md} +7 -7
  920. package/docs/reference/components/live-audio-skin.md +3 -3
  921. package/docs/reference/components/live-video-compat-skin.md +41 -0
  922. package/docs/reference/components/{live-video-minimal-skin.md → live-video-neutral-skin.md} +7 -7
  923. package/docs/reference/components/live-video-skin.md +3 -3
  924. package/docs/reference/components/llms.txt +16 -6
  925. package/docs/reference/components/menu.md +7 -2
  926. package/docs/reference/components/mux-audio.md +2 -2
  927. package/docs/reference/components/mux-background-video.md +1 -1
  928. package/docs/reference/components/mux-data.md +4 -4
  929. package/docs/reference/components/mux-video.md +4 -4
  930. package/docs/reference/components/native-hls-video.md +1 -1
  931. package/docs/reference/components/pip-button.md +2 -2
  932. package/docs/reference/components/player.md +26 -2
  933. package/docs/reference/components/popover.md +6 -8
  934. package/docs/reference/components/shaka-video.md +1 -1
  935. package/docs/reference/components/spotify-audio.md +1 -1
  936. package/docs/reference/components/status-indicator.md +27 -4
  937. package/docs/reference/components/thumbnail.md +1 -1
  938. package/docs/reference/components/tiktok-video.md +1 -1
  939. package/docs/reference/components/twitch-video.md +1 -1
  940. package/docs/reference/components/video-compat-skin.md +45 -0
  941. package/docs/reference/components/{video-minimal-skin.md → video-neutral-skin.md} +7 -7
  942. package/docs/reference/components/video-skin.md +3 -3
  943. package/docs/reference/components/vimeo-video.md +1 -1
  944. package/docs/reference/components/wistia-video.md +1 -1
  945. package/docs/reference/components/youtube-video.md +1 -1
  946. package/package.json +54 -42
  947. package/dist/default/define/audio/minimal-skin.css +0 -2048
  948. package/dist/default/define/audio/minimal-skin.js +0 -6
  949. package/dist/default/define/audio/minimal-skin2.js +0 -4
  950. package/dist/default/define/live-audio/minimal-skin.css +0 -1378
  951. package/dist/default/define/live-audio/minimal-skin.js +0 -6
  952. package/dist/default/define/live-audio/minimal-skin2.js +0 -4
  953. package/dist/default/define/live-video/minimal-skin.css +0 -2311
  954. package/dist/default/define/live-video/minimal-skin.js +0 -6
  955. package/dist/default/define/live-video/minimal-skin2.js +0 -4
  956. package/dist/default/define/video/minimal-skin.css +0 -3232
  957. package/dist/default/define/video/minimal-skin.js +0 -6
  958. package/dist/default/define/video/minimal-skin2.js +0 -4
  959. package/dist/default/extensions/media-extension-element.js +0 -54
  960. package/dist/default/icons/element/minimal/index.js +0 -1
  961. package/dist/default/icons/minimal/index.js +0 -26
  962. package/dist/default/internal/skins/minimal-audio/skin.css +0 -1977
  963. package/dist/default/internal/skins/minimal-live-audio/skin.css +0 -1307
  964. package/dist/default/internal/skins/minimal-live-video/skin.css +0 -2240
  965. package/dist/default/internal/skins/minimal-video/skin.css +0 -3161
  966. package/dist/default/presets/audio/minimal-skin.js +0 -19
  967. package/dist/default/presets/live-audio/minimal-skin.js +0 -19
  968. package/dist/default/presets/live-video/minimal-skin.js +0 -19
  969. package/dist/default/presets/video/minimal-skin.js +0 -19
  970. package/dist/dev/define/audio/minimal-skin.css +0 -2048
  971. package/dist/dev/define/audio/minimal-skin.d.ts +0 -1
  972. package/dist/dev/define/audio/minimal-skin.js +0 -8
  973. package/dist/dev/define/audio/minimal-skin.js.map +0 -1
  974. package/dist/dev/define/audio/minimal-skin2.js +0 -6
  975. package/dist/dev/define/audio/minimal-skin2.js.map +0 -1
  976. package/dist/dev/define/live-audio/minimal-skin.css +0 -1378
  977. package/dist/dev/define/live-audio/minimal-skin.d.ts +0 -1
  978. package/dist/dev/define/live-audio/minimal-skin.js +0 -8
  979. package/dist/dev/define/live-audio/minimal-skin.js.map +0 -1
  980. package/dist/dev/define/live-audio/minimal-skin2.js +0 -6
  981. package/dist/dev/define/live-audio/minimal-skin2.js.map +0 -1
  982. package/dist/dev/define/live-video/minimal-skin.css +0 -2311
  983. package/dist/dev/define/live-video/minimal-skin.d.ts +0 -1
  984. package/dist/dev/define/live-video/minimal-skin.js +0 -8
  985. package/dist/dev/define/live-video/minimal-skin.js.map +0 -1
  986. package/dist/dev/define/live-video/minimal-skin2.js +0 -6
  987. package/dist/dev/define/live-video/minimal-skin2.js.map +0 -1
  988. package/dist/dev/define/video/minimal-skin.css +0 -3232
  989. package/dist/dev/define/video/minimal-skin.d.ts +0 -1
  990. package/dist/dev/define/video/minimal-skin.js +0 -8
  991. package/dist/dev/define/video/minimal-skin.js.map +0 -1
  992. package/dist/dev/define/video/minimal-skin2.js +0 -6
  993. package/dist/dev/define/video/minimal-skin2.js.map +0 -1
  994. package/dist/dev/extensions/media-extension-element.d.ts +0 -29
  995. package/dist/dev/extensions/media-extension-element.js +0 -56
  996. package/dist/dev/extensions/media-extension-element.js.map +0 -1
  997. package/dist/dev/icons/dist/html/minimal/index.d.ts +0 -29
  998. package/dist/dev/icons/element/minimal/index.d.ts +0 -1
  999. package/dist/dev/icons/element/minimal/index.js +0 -1
  1000. package/dist/dev/icons/minimal/index.js +0 -26
  1001. package/dist/dev/internal/skins/minimal-audio/skin.css +0 -1977
  1002. package/dist/dev/internal/skins/minimal-live-audio/skin.css +0 -1307
  1003. package/dist/dev/internal/skins/minimal-live-video/skin.css +0 -2240
  1004. package/dist/dev/internal/skins/minimal-video/skin.css +0 -3161
  1005. package/dist/dev/presets/audio/minimal-skin.d.ts +0 -16
  1006. package/dist/dev/presets/audio/minimal-skin.js +0 -21
  1007. package/dist/dev/presets/audio/minimal-skin.js.map +0 -1
  1008. package/dist/dev/presets/live-audio/minimal-skin.d.ts +0 -16
  1009. package/dist/dev/presets/live-audio/minimal-skin.js +0 -21
  1010. package/dist/dev/presets/live-audio/minimal-skin.js.map +0 -1
  1011. package/dist/dev/presets/live-video/minimal-skin.d.ts +0 -16
  1012. package/dist/dev/presets/live-video/minimal-skin.js +0 -21
  1013. package/dist/dev/presets/live-video/minimal-skin.js.map +0 -1
  1014. package/dist/dev/presets/video/minimal-skin.d.ts +0 -16
  1015. package/dist/dev/presets/video/minimal-skin.js +0 -21
  1016. package/dist/dev/presets/video/minimal-skin.js.map +0 -1
  1017. /package/dist/dev/define/audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1018. /package/dist/dev/define/live-audio/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1019. /package/dist/dev/define/live-video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1020. /package/dist/dev/define/video/{minimal-ui.d.ts → neutral-ui.d.ts} +0 -0
  1021. /package/dist/dev/icons/dist/element/{minimal → compat}/index.d.ts +0 -0
@@ -1,12 +1,12 @@
1
1
  import { PlayerController } from "../../player/controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
3
  import { index_d_exports } from "../../index.js";
4
- import { CaptionsButtonCore } from "@videojs/core";
4
+ import { CaptionsButtonCore, CaptionsButtonState } from "@videojs/core";
5
5
  import { UIEvent } from "@videojs/core/dom";
6
6
  import { PropertyValues } from "@videojs/element";
7
7
  import { MediaTextTrackState } from "@videojs/media";
8
8
  //#region src/ui/captions-button/element.d.ts
9
- declare class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCore> {
9
+ export declare class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonState, MediaTextTrackState> {
10
10
  #private;
11
11
  static readonly tagName = "media-captions-button";
12
12
  static properties: {
@@ -34,14 +34,12 @@ declare class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCor
34
34
  readonly hidden: 'data-hidden';
35
35
  };
36
36
  protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, {
37
- chaptersCues: import("@videojs/media").MediaTextCue[];
38
- thumbnailCues: import("@videojs/media").MediaTextCue[];
39
- thumbnailTrackSrc: string | null;
40
- thumbnailTrackCrossOrigin: 'anonymous' | 'use-credentials' | null;
41
37
  textTrackList: import("@videojs/media").MediaTextTrack[];
42
38
  subtitlesShowing: boolean;
43
39
  toggleSubtitles: (forceShow?: boolean) => boolean;
44
- selectSubtitlesTrack: (value: string) => void;
40
+ selectSubtitlesTrack: (id: string | null) => void;
41
+ chaptersCues: import("@videojs/media").MediaTextCue[];
42
+ thumbnailsTrack: import("@videojs/media").MediaThumbnailsTrack | null;
45
43
  } | undefined>;
46
44
  protected readonly hotkeyAction = "toggleSubtitles";
47
45
  connectedCallback(): void;
@@ -50,9 +48,8 @@ declare class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCor
50
48
  protected willUpdate(changed: PropertyValues): void;
51
49
  protected update(changed: PropertyValues): void;
52
50
  }
53
- declare namespace CaptionsButtonElement {
54
- type State = CaptionsButtonCore.State;
51
+ export declare namespace CaptionsButtonElement {
52
+ type State = CaptionsButtonState;
55
53
  }
56
54
  //#endregion
57
- export { CaptionsButtonElement };
58
55
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["#defaultCommandfor","#syncCommandFor"],"sources":["../../../../src/ui/captions-button/element.ts"],"sourcesContent":["import { CaptionsButtonCore, CaptionsButtonDataAttrs } from '@videojs/core';\nimport { applyElementProps, selectTextTrack, type UIEvent } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport type { MediaTextTrackState } from '@videojs/media';\nimport { isCaptionOrSubtitleTrack } from '@videojs/utils/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { toggleCommandTarget } from '../command-for';\nimport { MediaButtonElement } from '../media-button-element';\n\nfunction getCaptionTrackCount(state: MediaTextTrackState): number {\n return state.textTrackList.filter(isCaptionOrSubtitleTrack).length;\n}\n\nexport class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonCore> {\n static readonly tagName = 'media-captions-button';\n\n static override properties = {\n label: { type: String },\n disabled: { type: Boolean },\n commandfor: { type: String },\n menuFor: { type: String, attribute: 'menu-for' },\n } satisfies PropertyDeclarationMap<'label' | 'disabled' | 'commandfor' | 'menuFor'>;\n\n commandfor: string | undefined = undefined;\n menuFor: string | undefined = undefined;\n #defaultCommandfor: string | undefined = undefined;\n\n protected readonly core = new CaptionsButtonCore();\n protected readonly stateAttrMap = CaptionsButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTextTrack);\n protected override readonly hotkeyAction = 'toggleSubtitles';\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.commandfor && this.commandfor !== this.menuFor) {\n this.#defaultCommandfor = this.commandfor;\n }\n }\n\n protected activate(state: MediaTextTrackState, event?: UIEvent): void {\n if (this.menuFor && getCaptionTrackCount(state) > 1) {\n if (event instanceof KeyboardEvent) {\n toggleCommandTarget(this, this.menuFor);\n }\n\n return;\n }\n\n this.core.toggle(state);\n }\n\n protected override getIsButtonDisabled(): boolean {\n const media = this.mediaState.value;\n\n if (super.getIsButtonDisabled()) return true;\n\n if (media && getCaptionTrackCount(media) === 0) return true;\n\n return false;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n\n if (changed.has('commandfor') && this.commandfor !== this.menuFor) {\n this.#defaultCommandfor = this.commandfor;\n }\n\n if (changed.has('commandfor') || changed.has('menuFor')) {\n this.#syncCommandFor();\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n if (!media) return;\n\n this.#syncCommandFor(media);\n\n if (this.menuFor && getCaptionTrackCount(media) > 1) {\n applyElementProps(this, {\n 'aria-disabled': this.getIsButtonDisabled() ? 'true' : undefined,\n });\n }\n }\n\n #syncCommandFor(media?: MediaTextTrackState): void {\n const state = media ?? this.mediaState.value;\n const target = state && this.menuFor && getCaptionTrackCount(state) > 1 ? this.menuFor : this.#defaultCommandfor;\n\n if (target) {\n this.setAttribute('commandfor', target);\n } else {\n this.removeAttribute('commandfor');\n }\n }\n}\n\nexport namespace CaptionsButtonElement {\n export type State = CaptionsButtonCore.State;\n}\n"],"mappings":";;;;;;;;AAWA,SAAS,qBAAqB,OAAoC;CAChE,OAAO,MAAM,cAAc,OAAO,wBAAwB,CAAC,CAAC;AAC9D;AAEA,IAAa,wBAAb,cAA2C,mBAAuC;;;EAU/C,KAAA,aAAA,KAAA;EACH,KAAA,UAAA,KAAA;EACW,KAAA,qBAAA,KAAA;EAEf,KAAA,OAAA,IAAI,mBAAmB;EACf,KAAA,eAAA;EACF,KAAA,aAAA,IAAI,iBAAiB,MAAM,eAAe,eAAe;EAC9C,KAAA,eAAA;;;EAhBjB,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,OAAO,EAAE,MAAM,OAAO;GACtB,UAAU,EAAE,MAAM,QAAQ;GAC1B,YAAY,EAAE,MAAM,OAAO;GAC3B,SAAS;IAAE,MAAM;IAAQ,WAAW;GAAW;EACjD;;CAIA;CAOA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,cAAc,KAAK,eAAe,KAAK,SAC9C,KAAKA,qBAAqB,KAAK;CAEnC;CAEA,SAAmB,OAA4B,OAAuB;EACpE,IAAI,KAAK,WAAW,qBAAqB,KAAK,IAAI,GAAG;GACnD,IAAI,iBAAiB,eACnB,oBAAoB,MAAM,KAAK,OAAO;GAGxC;EACF;EAEA,KAAK,KAAK,OAAO,KAAK;CACxB;CAEA,sBAAkD;EAChD,MAAM,QAAQ,KAAK,WAAW;EAE9B,IAAI,MAAM,oBAAoB,GAAG,OAAO;EAExC,IAAI,SAAS,qBAAqB,KAAK,MAAM,GAAG,OAAO;EAEvD,OAAO;CACT;CAEA,WAA8B,SAA+B;EAC3D,MAAM,WAAW,OAAO;EAExB,IAAI,QAAQ,IAAI,YAAY,KAAK,KAAK,eAAe,KAAK,SACxD,KAAKA,qBAAqB,KAAK;EAGjC,IAAI,QAAQ,IAAI,YAAY,KAAK,QAAQ,IAAI,SAAS,GACpD,KAAKC,gBAAgB;CAEzB;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,MAAM,QAAQ,KAAK,WAAW;EAC9B,IAAI,CAAC,OAAO;EAEZ,KAAKA,gBAAgB,KAAK;EAE1B,IAAI,KAAK,WAAW,qBAAqB,KAAK,IAAI,GAChD,kBAAkB,MAAM,EACtB,iBAAiB,KAAK,oBAAoB,IAAI,SAAS,KAAA,EACzD,CAAC;CAEL;CAEA,gBAAgB,OAAmC;EACjD,MAAM,QAAQ,SAAS,KAAK,WAAW;EACvC,MAAM,SAAS,SAAS,KAAK,WAAW,qBAAqB,KAAK,IAAI,IAAI,KAAK,UAAU,KAAKD;EAE9F,IAAI,QACF,KAAK,aAAa,cAAc,MAAM;OAEtC,KAAK,gBAAgB,YAAY;CAErC;AACF"}
1
+ {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/captions-button/element.ts"],"sourcesContent":["import { CaptionsButtonCore, CaptionsButtonDataAttrs, type CaptionsButtonState } from '@videojs/core';\nimport { applyElementProps, selectTextTrack, type UIEvent } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport type { MediaTextTrackState } from '@videojs/media';\nimport { isCaptionOrSubtitleTrack } from '@videojs/utils/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { toggleCommandTarget } from '../command-for';\nimport { MediaButtonElement } from '../media-button-element';\n\nfunction getCaptionTrackCount(state: MediaTextTrackState): number {\n return state.textTrackList.filter(isCaptionOrSubtitleTrack).length;\n}\n\nexport class CaptionsButtonElement extends MediaButtonElement<CaptionsButtonState, MediaTextTrackState> {\n static readonly tagName = 'media-captions-button';\n\n static override properties = {\n label: { type: String },\n disabled: { type: Boolean },\n commandfor: { type: String },\n menuFor: { type: String, attribute: 'menu-for' },\n } satisfies PropertyDeclarationMap<'label' | 'disabled' | 'commandfor' | 'menuFor'>;\n\n commandfor: string | undefined = undefined;\n menuFor: string | undefined = undefined;\n #defaultCommandfor: string | undefined = undefined;\n\n protected readonly core = new CaptionsButtonCore();\n protected readonly stateAttrMap = CaptionsButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTextTrack);\n protected override readonly hotkeyAction = 'toggleSubtitles';\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.commandfor && this.commandfor !== this.menuFor) {\n this.#defaultCommandfor = this.commandfor;\n }\n }\n\n protected activate(state: MediaTextTrackState, event?: UIEvent): void {\n if (this.menuFor && getCaptionTrackCount(state) > 1) {\n if (event instanceof KeyboardEvent) {\n toggleCommandTarget(this, this.menuFor);\n }\n\n return;\n }\n\n this.core.toggle(state);\n }\n\n protected override getIsButtonDisabled(): boolean {\n const media = this.mediaState.value;\n\n if (super.getIsButtonDisabled()) return true;\n\n if (media && getCaptionTrackCount(media) === 0) return true;\n\n return false;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n\n if (changed.has('commandfor') && this.commandfor !== this.menuFor) {\n this.#defaultCommandfor = this.commandfor;\n }\n\n if (changed.has('commandfor') || changed.has('menuFor')) {\n this.#syncCommandFor();\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n if (!media) return;\n\n this.#syncCommandFor(media);\n\n if (this.menuFor && getCaptionTrackCount(media) > 1) {\n applyElementProps(this, {\n 'aria-disabled': this.getIsButtonDisabled() ? 'true' : undefined,\n });\n }\n }\n\n #syncCommandFor(media?: MediaTextTrackState): void {\n const state = media ?? this.mediaState.value;\n const target = state && this.menuFor && getCaptionTrackCount(state) > 1 ? this.menuFor : this.#defaultCommandfor;\n\n if (target) {\n this.setAttribute('commandfor', target);\n } else {\n this.removeAttribute('commandfor');\n }\n }\n}\n\nexport namespace CaptionsButtonElement {\n export type State = CaptionsButtonState;\n}\n"],"mappings":";;;;;;;;AAWA,SAAS,qBAAqB,OAAoC;CAChE,OAAO,MAAM,cAAc,OAAO,wBAAwB,CAAC,CAAC;AAC9D;AAEA,IAAa,wBAAb,cAA2C,mBAA6D;;;EAUrE,KAAA,aAAA,KAAA;EACH,KAAA,UAAA,KAAA;EACW,KAAA,qBAAA,KAAA;EAEf,KAAA,OAAA,IAAI,mBAAmB;EACf,KAAA,eAAA;EACF,KAAA,aAAA,IAAI,iBAAiB,MAAM,eAAe,eAAe;EAC9C,KAAA,eAAA;;;EAhBjB,KAAA,UAAA;;;EAEG,KAAA,aAAA;GAC3B,OAAO,EAAE,MAAM,OAAO;GACtB,UAAU,EAAE,MAAM,QAAQ;GAC1B,YAAY,EAAE,MAAM,OAAO;GAC3B,SAAS;IAAE,MAAM;IAAQ,WAAW;GAAW;EACjD;;CAIA;CAOA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,cAAc,KAAK,eAAe,KAAK,SAC9C,KAAK,qBAAqB,KAAK;CAEnC;CAEA,SAAmB,OAA4B,OAAuB;EACpE,IAAI,KAAK,WAAW,qBAAqB,KAAK,IAAI,GAAG;GACnD,IAAI,iBAAiB,eACnB,oBAAoB,MAAM,KAAK,OAAO;GAGxC;EACF;EAEA,KAAK,KAAK,OAAO,KAAK;CACxB;CAEA,sBAAkD;EAChD,MAAM,QAAQ,KAAK,WAAW;EAE9B,IAAI,MAAM,oBAAoB,GAAG,OAAO;EAExC,IAAI,SAAS,qBAAqB,KAAK,MAAM,GAAG,OAAO;EAEvD,OAAO;CACT;CAEA,WAA8B,SAA+B;EAC3D,MAAM,WAAW,OAAO;EAExB,IAAI,QAAQ,IAAI,YAAY,KAAK,KAAK,eAAe,KAAK,SACxD,KAAK,qBAAqB,KAAK;EAGjC,IAAI,QAAQ,IAAI,YAAY,KAAK,QAAQ,IAAI,SAAS,GACpD,KAAK,gBAAgB;CAEzB;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,MAAM,QAAQ,KAAK,WAAW;EAC9B,IAAI,CAAC,OAAO;EAEZ,KAAK,gBAAgB,KAAK;EAE1B,IAAI,KAAK,WAAW,qBAAqB,KAAK,IAAI,GAChD,kBAAkB,MAAM,EACtB,iBAAiB,KAAK,oBAAoB,IAAI,SAAS,KAAA,EACzD,CAAC;CAEL;CAEA,gBAAgB,OAAmC;EACjD,MAAM,QAAQ,SAAS,KAAK,WAAW;EACvC,MAAM,SAAS,SAAS,KAAK,WAAW,qBAAqB,KAAK,IAAI,IAAI,KAAK,UAAU,KAAK;EAE9F,IAAI,QACF,KAAK,aAAa,cAAc,MAAM;OAEtC,KAAK,gBAAgB,YAAY;CAErC;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { MenuRadioGroupElement } from "../menu/radio-group.js";
2
- import { CaptionsRadioGroupCore } from "@videojs/core";
2
+ import { CaptionsRadioGroupState } from "@videojs/core";
3
3
  import { PropertyValues } from "@videojs/element";
4
4
  import { Text } from "@videojs/core/i18n";
5
5
  //#region src/ui/captions-radio-group/element.d.ts
@@ -8,7 +8,7 @@ import { Text } from "@videojs/core/i18n";
8
8
  * shares the selected label and availability with an enclosing menu. An optional `<template>` holding one
9
9
  * `<media-menu-radio-item>` customizes each generated item.
10
10
  */
11
- declare class CaptionsRadioGroupElement extends MenuRadioGroupElement {
11
+ export declare class CaptionsRadioGroupElement extends MenuRadioGroupElement {
12
12
  #private;
13
13
  static readonly tagName = "media-captions-radio-group";
14
14
  static properties: {
@@ -28,9 +28,8 @@ declare class CaptionsRadioGroupElement extends MenuRadioGroupElement {
28
28
  connectedCallback(): void;
29
29
  protected update(changed: PropertyValues): void;
30
30
  }
31
- declare namespace CaptionsRadioGroupElement {
32
- type State = CaptionsRadioGroupCore.State;
31
+ export declare namespace CaptionsRadioGroupElement {
32
+ type State = CaptionsRadioGroupState;
33
33
  }
34
34
  //#endregion
35
- export { CaptionsRadioGroupElement };
36
35
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["#mediaState","#core","#i18n","#options"],"sources":["../../../../src/ui/captions-radio-group/element.ts"],"sourcesContent":["import { CaptionsRadioGroupCore, CaptionsRadioGroupDataAttrs, type CaptionsRadioGroupOption } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectTextTrack } from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { MenuRadioGroupElement } from '../menu/radio-group';\nimport { RadioOptionsController } from '../radio-options/controller';\n\n/**\n * Menu radio group that generates an Off `<media-menu-radio-item>` plus one per captions and subtitles track, and\n * shares the selected label and availability with an enclosing menu. An optional `<template>` holding one\n * `<media-menu-radio-item>` customizes each generated item.\n */\nexport class CaptionsRadioGroupElement extends MenuRadioGroupElement {\n static override readonly tagName = 'media-captions-radio-group';\n\n static override properties = {\n ...MenuRadioGroupElement.properties,\n disabled: { type: Boolean },\n label: { type: String },\n } satisfies PropertyDeclarationMap<'value' | 'label' | 'disabled'>;\n\n disabled = false;\n label: Text | string = '';\n formatTrack = CaptionsRadioGroupCore.defaultProps.formatTrack;\n\n readonly #core = new CaptionsRadioGroupCore();\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #mediaState = new PlayerController(this, playerContext, selectTextTrack);\n readonly #options = new RadioOptionsController<CaptionsRadioGroupOption>(this, {\n setItemAttributes: (item, option) => item.setAttribute('data-track', option.value),\n onValueChange: (value) => {\n const media = this.#mediaState.value;\n\n if (media) this.#core.selectValue(media, value);\n },\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n const media = this.#mediaState.value;\n let state: CaptionsRadioGroupCore.State | null = null;\n\n if (media) {\n this.#core.setProps({ formatTrack: this.formatTrack, disabled: this.disabled, label: this.label });\n this.#core.setMedia(media);\n state = this.#core.getState();\n\n this.applyDefaultAriaLabel(translateText(this.#core.getLabel(state), this.#i18n.value));\n this.#options.sync(state, this.#i18n.value, this.#i18n.locale);\n this.publishMenuOptionState(state.disabled, state.hidden, state.availability);\n } else {\n this.publishMenuOptionState(true, true, 'unsupported');\n }\n\n super.update(changed);\n\n if (state) applyStateDataAttrs(this, state, CaptionsRadioGroupDataAttrs);\n }\n}\n\nexport namespace CaptionsRadioGroupElement {\n export type State = CaptionsRadioGroupCore.State;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAa,4BAAb,cAA+C,sBAAsB;;;EASxD,KAAA,WAAA;EACY,KAAA,QAAA;EACT,KAAA,cAAA,uBAAuB,aAAa;EAEjC,KAAA,QAAA,IAAI,uBAAuB;EAC3B,KAAA,QAAA,IAAI,eAAe,MAAM,WAAW;EAC9B,KAAA,cAAA,IAAI,iBAAiB,MAAM,eAAe,eAAe;EAC5D,KAAA,WAAA,IAAI,uBAAiD,MAAM;GAC7E,oBAAoB,MAAM,WAAW,KAAK,aAAa,cAAc,OAAO,KAAK;GACjF,gBAAgB,UAAU;IACxB,MAAM,QAAQ,KAAKA,YAAY;IAE/B,IAAI,OAAO,KAAKC,MAAM,YAAY,OAAO,KAAK;GAChD;EACF,CAAC;;;EAtBkC,KAAA,UAAA;;;EAEN,KAAA,aAAA;GAC3B,GAAG,sBAAsB;GACzB,UAAU,EAAE,MAAM,QAAQ;GAC1B,OAAO,EAAE,MAAM,OAAO;EACxB;;CAMA;CACA;CACA;CACA;CASA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,WAAW;EAEpB,IAAe,CAAC,KAAKD,YAAY,SAAS,KAAKA,YAAY,aACzD,kBAAkB,KAAK,WAAW,KAAKA,YAAY,WAAW;CAElE;CAEA,OAA0B,SAA+B;EACvD,MAAM,QAAQ,KAAKA,YAAY;EAC/B,IAAI,QAA6C;EAEjD,IAAI,OAAO;GACT,KAAKC,MAAM,SAAS;IAAE,aAAa,KAAK;IAAa,UAAU,KAAK;IAAU,OAAO,KAAK;GAAM,CAAC;GACjG,KAAKA,MAAM,SAAS,KAAK;GACzB,QAAQ,KAAKA,MAAM,SAAS;GAE5B,KAAK,sBAAsB,cAAc,KAAKA,MAAM,SAAS,KAAK,GAAG,KAAKC,MAAM,KAAK,CAAC;GACtF,KAAKC,SAAS,KAAK,OAAO,KAAKD,MAAM,OAAO,KAAKA,MAAM,MAAM;GAC7D,KAAK,uBAAuB,MAAM,UAAU,MAAM,QAAQ,MAAM,YAAY;EAC9E,OACE,KAAK,uBAAuB,MAAM,MAAM,aAAa;EAGvD,MAAM,OAAO,OAAO;EAEpB,IAAI,OAAO,oBAAoB,MAAM,OAAO,2BAA2B;CACzE;AACF"}
1
+ {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/captions-radio-group/element.ts"],"sourcesContent":["import {\n CaptionsRadioGroupCore,\n CaptionsRadioGroupDataAttrs,\n type CaptionsRadioGroupOption,\n type CaptionsRadioGroupState,\n} from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectTextTrack } from '@videojs/core/dom';\nimport { type Text, translateText } from '@videojs/core/i18n';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { MenuRadioGroupElement } from '../menu/radio-group';\nimport { RadioOptionsController } from '../radio-options/controller';\n\n/**\n * Menu radio group that generates an Off `<media-menu-radio-item>` plus one per captions and subtitles track, and\n * shares the selected label and availability with an enclosing menu. An optional `<template>` holding one\n * `<media-menu-radio-item>` customizes each generated item.\n */\nexport class CaptionsRadioGroupElement extends MenuRadioGroupElement {\n static override readonly tagName = 'media-captions-radio-group';\n\n static override properties = {\n ...MenuRadioGroupElement.properties,\n disabled: { type: Boolean },\n label: { type: String },\n } satisfies PropertyDeclarationMap<'value' | 'label' | 'disabled'>;\n\n disabled = false;\n label: Text | string = '';\n formatTrack = CaptionsRadioGroupCore.defaultProps.formatTrack;\n\n readonly #core = new CaptionsRadioGroupCore();\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #mediaState = new PlayerController(this, playerContext, selectTextTrack);\n readonly #options = new RadioOptionsController<CaptionsRadioGroupOption>(this, {\n setItemAttributes: (item, option) => item.setAttribute('data-track', option.value),\n onValueChange: (value) => {\n const media = this.#mediaState.value;\n\n if (media) this.#core.selectValue(media, value);\n },\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n const media = this.#mediaState.value;\n let state: CaptionsRadioGroupState | null = null;\n\n if (media) {\n this.#core.setProps({ formatTrack: this.formatTrack, disabled: this.disabled, label: this.label });\n this.#core.setMedia(media);\n state = this.#core.getState();\n\n this.applyDefaultAriaLabel(translateText(this.#core.getLabel(state), this.#i18n.value));\n this.#options.sync(state, this.#i18n.value, this.#i18n.locale);\n this.publishMenuOptionState(state.disabled, state.hidden, state.availability);\n } else {\n this.publishMenuOptionState(true, true, 'unsupported');\n }\n\n super.update(changed);\n\n if (state) applyStateDataAttrs(this, state, CaptionsRadioGroupDataAttrs);\n }\n}\n\nexport namespace CaptionsRadioGroupElement {\n export type State = CaptionsRadioGroupState;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAa,4BAAb,cAA+C,sBAAsB;;;EASxD,KAAA,WAAA;EACY,KAAA,QAAA;EACT,KAAA,cAAA,uBAAuB,aAAa;EAEjC,KAAA,QAAA,IAAI,uBAAuB;EAC3B,KAAA,QAAA,IAAI,eAAe,MAAM,WAAW;EAC9B,KAAA,cAAA,IAAI,iBAAiB,MAAM,eAAe,eAAe;EAC5D,KAAA,WAAA,IAAI,uBAAiD,MAAM;GAC7E,oBAAoB,MAAM,WAAW,KAAK,aAAa,cAAc,OAAO,KAAK;GACjF,gBAAgB,UAAU;IACxB,MAAM,QAAQ,KAAK,YAAY;IAE/B,IAAI,OAAO,KAAK,MAAM,YAAY,OAAO,KAAK;GAChD;EACF,CAAC;;;EAtBkC,KAAA,UAAA;;;EAEN,KAAA,aAAA;GAC3B,GAAG,sBAAsB;GACzB,UAAU,EAAE,MAAM,QAAQ;GAC1B,OAAO,EAAE,MAAM,OAAO;EACxB;;CAMA;CACA;CACA;CACA;CASA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,WAAW;EAEpB,IAAe,CAAC,KAAK,YAAY,SAAS,KAAK,YAAY,aACzD,kBAAkB,KAAK,WAAW,KAAK,YAAY,WAAW;CAElE;CAEA,OAA0B,SAA+B;EACvD,MAAM,QAAQ,KAAK,YAAY;EAC/B,IAAI,QAAwC;EAE5C,IAAI,OAAO;GACT,KAAK,MAAM,SAAS;IAAE,aAAa,KAAK;IAAa,UAAU,KAAK;IAAU,OAAO,KAAK;GAAM,CAAC;GACjG,KAAK,MAAM,SAAS,KAAK;GACzB,QAAQ,KAAK,MAAM,SAAS;GAE5B,KAAK,sBAAsB,cAAc,KAAK,MAAM,SAAS,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC;GACtF,KAAK,SAAS,KAAK,OAAO,KAAK,MAAM,OAAO,KAAK,MAAM,MAAM;GAC7D,KAAK,uBAAuB,MAAM,UAAU,MAAM,QAAQ,MAAM,YAAY;EAC9E,OACE,KAAK,uBAAuB,MAAM,MAAM,aAAa;EAGvD,MAAM,OAAO,OAAO;EAEpB,IAAI,OAAO,oBAAoB,MAAM,OAAO,2BAA2B;CACzE;AACF"}
@@ -1,10 +1,10 @@
1
1
  import { PlayerController } from "../../player/controller.js";
2
2
  import { MediaButtonElement } from "../media-button-element.js";
3
3
  import { index_d_exports } from "../../index.js";
4
- import { CastButtonCore } from "@videojs/core";
4
+ import { CastButtonCore, CastButtonState } from "@videojs/core";
5
5
  import { MediaRemotePlaybackState } from "@videojs/media";
6
6
  //#region src/ui/cast-button/element.d.ts
7
- declare class CastButtonElement extends MediaButtonElement<CastButtonCore> {
7
+ export declare class CastButtonElement extends MediaButtonElement<CastButtonState, MediaRemotePlaybackState> {
8
8
  static readonly tagName = "media-cast-button";
9
9
  protected readonly core: CastButtonCore;
10
10
  protected readonly stateAttrMap: {
@@ -16,10 +16,9 @@ declare class CastButtonElement extends MediaButtonElement<CastButtonCore> {
16
16
  protected readonly mediaState: PlayerController<index_d_exports.AnyPlayerStore, {
17
17
  remotePlaybackState: import("@videojs/media").RemotePlaybackConnectionState;
18
18
  remotePlaybackAvailability: import("@videojs/media").MediaFeatureAvailability;
19
- toggleRemotePlayback: () => Promise<void>;
19
+ promptRemotePlayback: () => Promise<void>;
20
20
  } | undefined>;
21
21
  protected activate(state: MediaRemotePlaybackState): Promise<void>;
22
22
  }
23
23
  //#endregion
24
- export { CastButtonElement };
25
24
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/cast-button/element.ts"],"sourcesContent":["import { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\nimport type { MediaRemotePlaybackState } from '@videojs/media';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class CastButtonElement extends MediaButtonElement<CastButtonCore> {\n static readonly tagName = 'media-cast-button';\n\n protected readonly core = new CastButtonCore();\n protected readonly stateAttrMap = CastButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectRemotePlayback);\n\n protected activate(state: MediaRemotePlaybackState): Promise<void> {\n return this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,oBAAb,cAAuC,mBAAmC;;;EAG9C,KAAA,OAAA,IAAI,eAAe;EACX,KAAA,eAAA;EACF,KAAA,aAAA,IAAI,iBAAiB,MAAM,eAAe,oBAAoB;;;EAJpE,KAAA,UAAA;;CAM1B,SAAmB,OAAgD;EACjE,OAAO,KAAK,KAAK,OAAO,KAAK;CAC/B;AACF"}
1
+ {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/cast-button/element.ts"],"sourcesContent":["import { CastButtonCore, CastButtonDataAttrs, type CastButtonState } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\nimport type { MediaRemotePlaybackState } from '@videojs/media';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class CastButtonElement extends MediaButtonElement<CastButtonState, MediaRemotePlaybackState> {\n static readonly tagName = 'media-cast-button';\n\n protected readonly core = new CastButtonCore();\n protected readonly stateAttrMap = CastButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectRemotePlayback);\n\n protected activate(state: MediaRemotePlaybackState): Promise<void> {\n return this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,oBAAb,cAAuC,mBAA8D;;;EAGzE,KAAA,OAAA,IAAI,eAAe;EACX,KAAA,eAAA;EACF,KAAA,aAAA,IAAI,iBAAiB,MAAM,eAAe,oBAAoB;;;EAJpE,KAAA,UAAA;;CAM1B,SAAmB,OAAgD;EACjE,OAAO,KAAK,KAAK,OAAO,KAAK;CAC/B;AACF"}
@@ -7,7 +7,7 @@ import { PropertyValues } from "@videojs/element";
7
7
  *
8
8
  * A container registers itself with its closest player and provides popup coordination to the controls it contains.
9
9
  */
10
- declare class ContainerElement extends UIElement implements MediaContainer {
10
+ export declare class ContainerElement extends UIElement implements MediaContainer {
11
11
  #private;
12
12
  static readonly tagName = "media-container";
13
13
  connectedCallback(): void;
@@ -15,5 +15,4 @@ declare class ContainerElement extends UIElement implements MediaContainer {
15
15
  protected update(changed: PropertyValues): void;
16
16
  }
17
17
  //#endregion
18
- export { ContainerElement };
19
18
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["#core","#controls","#i18n","#popupGroup","#popupGroupProvider","#container","#register","#applyLabel","#disconnect","#onPointerUp","#releaseContainer","#label"],"sources":["../../../../src/ui/container/element.ts"],"sourcesContent":["import { ContainerCore, ContainerDataAttrs } from '@videojs/core';\nimport {\n applyContainerAttrs,\n applyStateDataAttrs,\n createPopupGroup,\n focusContainer,\n type MediaContainer,\n selectControls,\n} from '@videojs/core/dom';\nimport { labelText } from '@videojs/core/i18n/text/container';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer, ContextProvider } from '@videojs/element/context';\nimport { listen } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { type ContainerContextValue, containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { popupGroupContext } from '../../player/popup-group-context';\nimport { UIElement } from '../ui-element';\n\n/**\n * The visual, interactive player boundary.\n *\n * A container registers itself with its closest player and provides popup coordination to the controls it contains.\n */\nexport class ContainerElement extends UIElement implements MediaContainer {\n static readonly tagName = 'media-container';\n\n #releaseContainer: (() => void) | null = null;\n #disconnect: AbortController | null = null;\n #label: string | null = null;\n\n readonly #core = new ContainerCore();\n readonly #controls = new PlayerController(this, playerContext, selectControls);\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #popupGroup = createPopupGroup();\n readonly #popupGroupProvider = new ContextProvider(this, {\n context: popupGroupContext,\n initialValue: this.#popupGroup,\n });\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: (value) => this.#register(value),\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#popupGroupProvider.setValue(this.#popupGroup);\n this.#register(this.#container.value);\n applyContainerAttrs(this);\n this.#applyLabel();\n\n this.#disconnect = new AbortController();\n listen(this, 'pointerup', this.#onPointerUp, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n this.#releaseContainer?.();\n this.#releaseContainer = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n super.disconnectedCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n this.#applyLabel();\n\n const controls = this.#controls.value;\n\n if (controls) {\n this.#core.setMedia(controls);\n applyStateDataAttrs(this, this.#core.getState(), ContainerDataAttrs);\n } else {\n this.removeAttribute(ContainerDataAttrs.controlsVisible);\n }\n }\n\n #register(value: ContainerContextValue | undefined): void {\n this.#releaseContainer?.();\n this.#releaseContainer = null;\n\n if (this.isConnected && value) {\n this.#releaseContainer = value.registerContainer(this);\n }\n }\n\n #applyLabel(): void {\n const current = this.getAttribute('aria-label');\n if (current && current !== this.#label) return;\n\n if (this.hasAttribute('aria-labelledby')) {\n if (current === this.#label) {\n this.removeAttribute('aria-label');\n this.#label = null;\n }\n\n return;\n }\n\n const label = this.#i18n.value(labelText);\n\n this.setAttribute('aria-label', label);\n this.#label = label;\n }\n\n #onPointerUp = (): void => {\n focusContainer(this);\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA0BA,IAAa,mBAAb,cAAsC,UAAoC;;EAC9C,KAAA,UAAA;;CAE1B,oBAAyC;CACzC,cAAsC;CACtC,SAAwB;CAExB,QAAiB,IAAI,cAAc;CACnC,YAAqB,IAAI,iBAAiB,MAAM,eAAe,cAAc;CAC7E,QAAiB,IAAI,eAAe,MAAM,WAAW;CACrD,cAAuB,iBAAiB;CACxC,sBAA+B,IAAI,gBAAgB,MAAM;EACvD,SAAS;EACT,cAAc,KAAKG;CACrB,CAAC;CACD,aAAsB,IAAI,gBAAgB,MAAM;EAC9C,SAAS;EACT,WAAW,UAAU,KAAKG,UAAU,KAAK;CAC3C,CAAC;CAED,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,KAAKF,oBAAoB,SAAS,KAAKD,WAAW;EAClD,KAAKG,UAAU,KAAKD,WAAW,KAAK;EACpC,oBAAoB,IAAI;EACxB,KAAKE,YAAY;EAEjB,KAAKC,cAAc,IAAI,gBAAgB;EACvC,OAAO,MAAM,aAAa,KAAKC,cAAc,EAAE,QAAQ,KAAKD,YAAY,OAAO,CAAC;CAClF;CAEA,uBAAsC;EACpC,KAAKE,oBAAoB;EACzB,KAAKA,oBAAoB;EACzB,KAAKF,aAAa,MAAM;EACxB,KAAKA,cAAc;EACnB,MAAM,qBAAqB;CAC7B;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EACpB,KAAKD,YAAY;EAEjB,MAAM,WAAW,KAAKN,UAAU;EAEhC,IAAI,UAAU;GACZ,KAAKD,MAAM,SAAS,QAAQ;GAC5B,oBAAoB,MAAM,KAAKA,MAAM,SAAS,GAAG,kBAAkB;EACrE,OACE,KAAK,gBAAgB,mBAAmB,eAAe;CAE3D;CAEA,UAAU,OAAgD;EACxD,KAAKU,oBAAoB;EACzB,KAAKA,oBAAoB;EAEzB,IAAI,KAAK,eAAe,OACtB,KAAKA,oBAAoB,MAAM,kBAAkB,IAAI;CAEzD;CAEA,cAAoB;EAClB,MAAM,UAAU,KAAK,aAAa,YAAY;EAC9C,IAAI,WAAW,YAAY,KAAKC,QAAQ;EAExC,IAAI,KAAK,aAAa,iBAAiB,GAAG;GACxC,IAAI,YAAY,KAAKA,QAAQ;IAC3B,KAAK,gBAAgB,YAAY;IACjC,KAAKA,SAAS;GAChB;GAEA;EACF;EAEA,MAAM,QAAQ,KAAKT,MAAM,MAAM,SAAS;EAExC,KAAK,aAAa,cAAc,KAAK;EACrC,KAAKS,SAAS;CAChB;CAEA,qBAA2B;EACzB,eAAe,IAAI;CACrB;AACF"}
1
+ {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/container/element.ts"],"sourcesContent":["import { ContainerCore, ContainerDataAttrs } from '@videojs/core';\nimport {\n applyContainerAttrs,\n applyStateDataAttrs,\n createPopupGroup,\n focusContainer,\n type MediaContainer,\n selectControls,\n} from '@videojs/core/dom';\nimport { labelText } from '@videojs/core/i18n/text/container';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer, ContextProvider } from '@videojs/element/context';\nimport { listen } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../../i18n/context';\nimport { I18nController } from '../../i18n/controller';\nimport { type ContainerContextValue, containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { popupGroupContext } from '../../player/popup-group-context';\nimport { UIElement } from '../ui-element';\n\n/**\n * The visual, interactive player boundary.\n *\n * A container registers itself with its closest player and provides popup coordination to the controls it contains.\n */\nexport class ContainerElement extends UIElement implements MediaContainer {\n static readonly tagName = 'media-container';\n\n #releaseContainer: (() => void) | null = null;\n #disconnect: AbortController | null = null;\n #label: string | null = null;\n\n readonly #core = new ContainerCore();\n readonly #controls = new PlayerController(this, playerContext, selectControls);\n readonly #i18n = new I18nController(this, i18nContext);\n readonly #popupGroup = createPopupGroup();\n readonly #popupGroupProvider = new ContextProvider(this, {\n context: popupGroupContext,\n initialValue: this.#popupGroup,\n });\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: (value) => this.#register(value),\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#popupGroupProvider.setValue(this.#popupGroup);\n this.#register(this.#container.value);\n applyContainerAttrs(this);\n this.#applyLabel();\n\n this.#disconnect = new AbortController();\n listen(this, 'pointerup', this.#onPointerUp, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n this.#releaseContainer?.();\n this.#releaseContainer = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n super.disconnectedCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n this.#applyLabel();\n\n const controls = this.#controls.value;\n\n if (controls) {\n this.#core.setMedia(controls);\n applyStateDataAttrs(this, this.#core.getState(), ContainerDataAttrs);\n } else {\n this.removeAttribute(ContainerDataAttrs.controlsVisible);\n }\n }\n\n #register(value: ContainerContextValue | undefined): void {\n this.#releaseContainer?.();\n this.#releaseContainer = null;\n\n if (this.isConnected && value) {\n this.#releaseContainer = value.registerContainer(this);\n }\n }\n\n #applyLabel(): void {\n const current = this.getAttribute('aria-label');\n if (current && current !== this.#label) return;\n\n if (this.hasAttribute('aria-labelledby')) {\n if (current === this.#label) {\n this.removeAttribute('aria-label');\n this.#label = null;\n }\n\n return;\n }\n\n const label = this.#i18n.value(labelText);\n\n this.setAttribute('aria-label', label);\n this.#label = label;\n }\n\n #onPointerUp = (): void => {\n focusContainer(this);\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA0BA,IAAa,mBAAb,cAAsC,UAAoC;;EAC9C,KAAA,UAAA;;CAE1B,oBAAyC;CACzC,cAAsC;CACtC,SAAwB;CAExB,QAAiB,IAAI,cAAc;CACnC,YAAqB,IAAI,iBAAiB,MAAM,eAAe,cAAc;CAC7E,QAAiB,IAAI,eAAe,MAAM,WAAW;CACrD,cAAuB,iBAAiB;CACxC,sBAA+B,IAAI,gBAAgB,MAAM;EACvD,SAAS;EACT,cAAc,KAAK;CACrB,CAAC;CACD,aAAsB,IAAI,gBAAgB,MAAM;EAC9C,SAAS;EACT,WAAW,UAAU,KAAK,UAAU,KAAK;CAC3C,CAAC;CAED,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,KAAK,oBAAoB,SAAS,KAAK,WAAW;EAClD,KAAK,UAAU,KAAK,WAAW,KAAK;EACpC,oBAAoB,IAAI;EACxB,KAAK,YAAY;EAEjB,KAAK,cAAc,IAAI,gBAAgB;EACvC,OAAO,MAAM,aAAa,KAAK,cAAc,EAAE,QAAQ,KAAK,YAAY,OAAO,CAAC;CAClF;CAEA,uBAAsC;EACpC,KAAK,oBAAoB;EACzB,KAAK,oBAAoB;EACzB,KAAK,aAAa,MAAM;EACxB,KAAK,cAAc;EACnB,MAAM,qBAAqB;CAC7B;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EACpB,KAAK,YAAY;EAEjB,MAAM,WAAW,KAAK,UAAU;EAEhC,IAAI,UAAU;GACZ,KAAK,MAAM,SAAS,QAAQ;GAC5B,oBAAoB,MAAM,KAAK,MAAM,SAAS,GAAG,kBAAkB;EACrE,OACE,KAAK,gBAAgB,mBAAmB,eAAe;CAE3D;CAEA,UAAU,OAAgD;EACxD,KAAK,oBAAoB;EACzB,KAAK,oBAAoB;EAEzB,IAAI,KAAK,eAAe,OACtB,KAAK,oBAAoB,MAAM,kBAAkB,IAAI;CAEzD;CAEA,cAAoB;EAClB,MAAM,UAAU,KAAK,aAAa,YAAY;EAC9C,IAAI,WAAW,YAAY,KAAK,QAAQ;EAExC,IAAI,KAAK,aAAa,iBAAiB,GAAG;GACxC,IAAI,YAAY,KAAK,QAAQ;IAC3B,KAAK,gBAAgB,YAAY;IACjC,KAAK,SAAS;GAChB;GAEA;EACF;EAEA,MAAM,QAAQ,KAAK,MAAM,MAAM,SAAS;EAExC,KAAK,aAAa,cAAc,KAAK;EACrC,KAAK,SAAS;CAChB;CAEA,qBAA2B;EACzB,eAAe,IAAI;CACrB;AACF"}
@@ -3,7 +3,7 @@ import { StateAttrMap } from "@videojs/core";
3
3
  import { PropertyValues } from "@videojs/element";
4
4
  //#region src/ui/context-part-element.d.ts
5
5
  /** Shape that compound context values must satisfy for parts to consume. */
6
- interface PartContextValue<State extends object> {
6
+ export interface PartContextValue<State extends object> {
7
7
  state: State;
8
8
  stateAttrMap: StateAttrMap<State>;
9
9
  }
@@ -20,7 +20,7 @@ interface PartContextValue<State extends object> {
20
20
  * }
21
21
  * ```
22
22
  */
23
- declare abstract class ContextPartElement<State extends object> extends UIElement {
23
+ export declare abstract class ContextPartElement<State extends object> extends UIElement {
24
24
  #private;
25
25
  protected abstract readonly consumer: {
26
26
  value?: PartContextValue<State> | undefined;
@@ -29,5 +29,4 @@ declare abstract class ContextPartElement<State extends object> extends UIElemen
29
29
  protected update(_changed: PropertyValues): void;
30
30
  }
31
31
  //#endregion
32
- export { ContextPartElement, PartContextValue };
33
32
  //# sourceMappingURL=context-part-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-part-element.js","names":["#applyState"],"sources":["../../../src/ui/context-part-element.ts"],"sourcesContent":["import type { StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { UIElement } from './ui-element';\n\n/** Shape that compound context values must satisfy for parts to consume. */\nexport interface PartContextValue<State extends object> {\n state: State;\n stateAttrMap: StateAttrMap<State>;\n}\n\n/**\n * Abstract base for compound-component part elements that consume a parent context and apply data attributes from\n * `ctx.state` + `ctx.stateAttrMap`.\n *\n * Subclasses only need to declare the `consumer` property:\n *\n * ```ts\n * export class SliderTrackElement extends ContextPartElement<SliderState> {\n * static readonly tagName = 'media-slider-track';\n * protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n * }\n * ```\n */\nexport abstract class ContextPartElement<State extends object> extends UIElement {\n protected abstract readonly consumer: { value?: PartContextValue<State> | undefined };\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#applyState();\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n this.#applyState();\n }\n\n #applyState(): void {\n const ctx = this.consumer.value;\n\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,IAAsB,qBAAtB,cAAuE,UAAU;CAG/E,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,KAAKA,YAAY;CACnB;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,KAAKA,YAAY;CACnB;CAEA,cAAoB;EAClB,MAAM,MAAM,KAAK,SAAS;EAE1B,IAAI,KAAK,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;CAChE;AACF"}
1
+ {"version":3,"file":"context-part-element.js","names":[],"sources":["../../../src/ui/context-part-element.ts"],"sourcesContent":["import type { StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport { UIElement } from './ui-element';\n\n/** Shape that compound context values must satisfy for parts to consume. */\nexport interface PartContextValue<State extends object> {\n state: State;\n stateAttrMap: StateAttrMap<State>;\n}\n\n/**\n * Abstract base for compound-component part elements that consume a parent context and apply data attributes from\n * `ctx.state` + `ctx.stateAttrMap`.\n *\n * Subclasses only need to declare the `consumer` property:\n *\n * ```ts\n * export class SliderTrackElement extends ContextPartElement<SliderState> {\n * static readonly tagName = 'media-slider-track';\n * protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n * }\n * ```\n */\nexport abstract class ContextPartElement<State extends object> extends UIElement {\n protected abstract readonly consumer: { value?: PartContextValue<State> | undefined };\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#applyState();\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n this.#applyState();\n }\n\n #applyState(): void {\n const ctx = this.consumer.value;\n\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAyBA,IAAsB,qBAAtB,cAAuE,UAAU;CAG/E,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,KAAK,YAAY;CACnB;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,KAAK,YAAY;CACnB;CAEA,cAAoB;EAClB,MAAM,MAAM,KAAK,SAAS;EAE1B,IAAI,KAAK,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;CAChE;AACF"}
@@ -4,7 +4,7 @@ import { ControlsState } from "@videojs/core";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
5
  //#region src/ui/controls/backdrop.d.ts
6
6
  /** Presentational backdrop that reflects its owning controls surface's state. */
7
- declare class ControlsBackdropElement extends ContextPartElement<ControlsState> {
7
+ export declare class ControlsBackdropElement extends ContextPartElement<ControlsState> {
8
8
  static readonly tagName = "media-controls-backdrop";
9
9
  protected readonly consumer: ContextConsumer<{
10
10
  __context__: ControlsContextValue;
@@ -12,5 +12,4 @@ declare class ControlsBackdropElement extends ContextPartElement<ControlsState>
12
12
  connectedCallback(): void;
13
13
  }
14
14
  //#endregion
15
- export { ControlsBackdropElement };
16
15
  //# sourceMappingURL=backdrop.d.ts.map
@@ -4,7 +4,7 @@ import { ControlsState } from "@videojs/core";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
5
  //#region src/ui/controls/content.d.ts
6
6
  /** Interactive surface that reflects its owning controls state. */
7
- declare class ControlsContentElement extends ContextPartElement<ControlsState> {
7
+ export declare class ControlsContentElement extends ContextPartElement<ControlsState> {
8
8
  static readonly tagName = "media-controls-content";
9
9
  protected readonly consumer: ContextConsumer<{
10
10
  __context__: ControlsContextValue;
@@ -12,5 +12,4 @@ declare class ControlsContentElement extends ContextPartElement<ControlsState> {
12
12
  connectedCallback(): void;
13
13
  }
14
14
  //#endregion
15
- export { ControlsContentElement };
16
15
  //# sourceMappingURL=content.d.ts.map
@@ -1,9 +1,8 @@
1
1
  import { ControlsState, StateAttrMap } from "@videojs/core";
2
2
  //#region src/ui/controls/context.d.ts
3
- interface ControlsContextValue {
3
+ export interface ControlsContextValue {
4
4
  state: ControlsState;
5
5
  stateAttrMap: StateAttrMap<ControlsState>;
6
6
  }
7
7
  //#endregion
8
- export { ControlsContextValue };
9
8
  //# sourceMappingURL=context.d.ts.map
@@ -6,7 +6,7 @@ import { PropertyValues } from "@videojs/element";
6
6
  * Tracks controls visibility, reflects it as data attributes, and shares it with its descendant controls parts. Hiding
7
7
  * the controls closes any popup open inside it.
8
8
  */
9
- declare class ControlsElement extends UIElement {
9
+ export declare class ControlsElement extends UIElement {
10
10
  #private;
11
11
  static readonly tagName = "media-controls";
12
12
  static properties: {
@@ -19,5 +19,4 @@ declare class ControlsElement extends UIElement {
19
19
  protected update(_changed: PropertyValues): void;
20
20
  }
21
21
  //#endregion
22
- export { ControlsElement };
23
22
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["#core","#mediaState","#provider","#visible","#closeOwnedOverlays"],"sources":["../../../../src/ui/controls/element.ts"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs, type ControlsVisibility, POPUP_HOST_SELECTOR } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isFunction } from '@videojs/utils/predicate';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { UIElement } from '../ui-element';\nimport { controlsContext } from './context';\n\n/**\n * Tracks controls visibility, reflects it as data attributes, and shares it with its descendant controls parts. Hiding\n * the controls closes any popup open inside it.\n */\nexport class ControlsElement extends UIElement {\n static readonly tagName = 'media-controls';\n\n static override properties = {\n visibility: { type: String },\n } satisfies PropertyDeclarationMap<'visibility'>;\n\n visibility: ControlsVisibility = ControlsCore.defaultProps.visibility;\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n #visible = true;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && this.visibility === 'auto' && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n this.#core.setProps({ visibility: this.visibility });\n this.#core.setMedia(this.#mediaState.value ?? null);\n\n const state = this.#core.getState();\n if (!state) return;\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n\n const wasVisible = this.#visible;\n\n this.#visible = state.visible;\n\n if (wasVisible && !state.visible) {\n this.#closeOwnedOverlays();\n }\n }\n\n #closeOwnedOverlays(): void {\n for (const element of this.querySelectorAll(POPUP_HOST_SELECTOR)) {\n const host = element as Element & { close?: unknown };\n if (!isFunction(host.close)) continue;\n\n host.close('imperative-action');\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,IAAa,kBAAb,cAAqC,UAAU;;;EAOZ,KAAA,aAAA,aAAa,aAAa;EAE1C,KAAA,QAAA,IAAI,aAAa;EACX,KAAA,cAAA,IAAI,iBAAiB,MAAM,eAAe,cAAc;EAC1D,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,gBAAgB,CAAC;EAChE,KAAA,WAAA;;;EAXe,KAAA,UAAA;;;EAEG,KAAA,aAAA,EAC3B,YAAY,EAAE,MAAM,OAAO,EAC7B;;CAIA;CACA;CACA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAe,KAAK,eAAe,UAAU,CAAC,KAAKC,YAAY,SAAS,KAAKA,YAAY,aACvF,kBAAkB,KAAK,WAAW,KAAKA,YAAY,WAAW;CAElE;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,KAAKD,MAAM,SAAS,EAAE,YAAY,KAAK,WAAW,CAAC;EACnD,KAAKA,MAAM,SAAS,KAAKC,YAAY,SAAS,IAAI;EAElD,MAAM,QAAQ,KAAKD,MAAM,SAAS;EAClC,IAAI,CAAC,OAAO;EAEZ,oBAAoB,MAAM,OAAO,iBAAiB;EAElD,KAAKE,UAAU,SAAS;GACtB;GACA,cAAc;EAChB,CAAC;EAED,MAAM,aAAa,KAAKC;EAExB,KAAKA,WAAW,MAAM;EAEtB,IAAI,cAAc,CAAC,MAAM,SACvB,KAAKC,oBAAoB;CAE7B;CAEA,sBAA4B;EAC1B,KAAK,MAAM,WAAW,KAAK,iBAAiB,mBAAmB,GAAG;GAChE,MAAM,OAAO;GACb,IAAI,CAAC,WAAW,KAAK,KAAK,GAAG;GAE7B,KAAK,MAAM,mBAAmB;EAChC;CACF;AACF"}
1
+ {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/controls/element.ts"],"sourcesContent":["import { ControlsCore, ControlsDataAttrs, type ControlsVisibility, POPUP_HOST_SELECTOR } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isFunction } from '@videojs/utils/predicate';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/controller';\nimport { UIElement } from '../ui-element';\nimport { controlsContext } from './context';\n\n/**\n * Tracks controls visibility, reflects it as data attributes, and shares it with its descendant controls parts. Hiding\n * the controls closes any popup open inside it.\n */\nexport class ControlsElement extends UIElement {\n static readonly tagName = 'media-controls';\n\n static override properties = {\n visibility: { type: String },\n } satisfies PropertyDeclarationMap<'visibility'>;\n\n visibility: ControlsVisibility = ControlsCore.defaultProps.visibility;\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n #visible = true;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && this.visibility === 'auto' && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n this.#core.setProps({ visibility: this.visibility });\n this.#core.setMedia(this.#mediaState.value ?? null);\n\n const state = this.#core.getState();\n if (!state) return;\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n\n const wasVisible = this.#visible;\n\n this.#visible = state.visible;\n\n if (wasVisible && !state.visible) {\n this.#closeOwnedOverlays();\n }\n }\n\n #closeOwnedOverlays(): void {\n for (const element of this.querySelectorAll(POPUP_HOST_SELECTOR)) {\n const host = element as Element & { close?: unknown };\n if (!isFunction(host.close)) continue;\n\n host.close('imperative-action');\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,IAAa,kBAAb,cAAqC,UAAU;;;EAOZ,KAAA,aAAA,aAAa,aAAa;EAE1C,KAAA,QAAA,IAAI,aAAa;EACX,KAAA,cAAA,IAAI,iBAAiB,MAAM,eAAe,cAAc;EAC1D,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,gBAAgB,CAAC;EAChE,KAAA,WAAA;;;EAXe,KAAA,UAAA;;;EAEG,KAAA,aAAA,EAC3B,YAAY,EAAE,MAAM,OAAO,EAC7B;;CAIA;CACA;CACA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAe,KAAK,eAAe,UAAU,CAAC,KAAK,YAAY,SAAS,KAAK,YAAY,aACvF,kBAAkB,KAAK,WAAW,KAAK,YAAY,WAAW;CAElE;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,KAAK,MAAM,SAAS,EAAE,YAAY,KAAK,WAAW,CAAC;EACnD,KAAK,MAAM,SAAS,KAAK,YAAY,SAAS,IAAI;EAElD,MAAM,QAAQ,KAAK,MAAM,SAAS;EAClC,IAAI,CAAC,OAAO;EAEZ,oBAAoB,MAAM,OAAO,iBAAiB;EAElD,KAAK,UAAU,SAAS;GACtB;GACA,cAAc;EAChB,CAAC;EAED,MAAM,aAAa,KAAK;EAExB,KAAK,WAAW,MAAM;EAEtB,IAAI,cAAc,CAAC,MAAM,SACvB,KAAK,oBAAoB;CAE7B;CAEA,sBAA4B;EAC1B,KAAK,MAAM,WAAW,KAAK,iBAAiB,mBAAmB,GAAG;GAChE,MAAM,OAAO;GACb,IAAI,CAAC,WAAW,KAAK,KAAK,GAAG;GAE7B,KAAK,MAAM,mBAAmB;EAChC;CACF;AACF"}
@@ -3,7 +3,7 @@ import { ControlsContextValue } from "./context.js";
3
3
  import { ControlsState } from "@videojs/core";
4
4
  import { ContextConsumer } from "@videojs/element/context";
5
5
  //#region src/ui/controls/group.d.ts
6
- declare class ControlsGroupElement extends ContextPartElement<ControlsState> {
6
+ export declare class ControlsGroupElement extends ContextPartElement<ControlsState> {
7
7
  static readonly tagName = "media-controls-group";
8
8
  protected readonly consumer: ContextConsumer<{
9
9
  __context__: ControlsContextValue;
@@ -11,5 +11,4 @@ declare class ControlsGroupElement extends ContextPartElement<ControlsState> {
11
11
  connectedCallback(): void;
12
12
  }
13
13
  //#endregion
14
- export { ControlsGroupElement };
15
14
  //# sourceMappingURL=group.d.ts.map
@@ -5,7 +5,7 @@ import { DialogState } from "@videojs/core";
5
5
  import { ContextConsumer } from "@videojs/element/context";
6
6
  //#region src/ui/dialog/backdrop.d.ts
7
7
  /** Presentational backdrop that reflects its owning dialog's state. */
8
- declare class DialogBackdropElement extends ContextPartElement<DialogState> {
8
+ export declare class DialogBackdropElement extends ContextPartElement<DialogState> {
9
9
  static readonly tagName = "media-dialog-backdrop";
10
10
  protected readonly consumer: ContextConsumer<{
11
11
  __context__: DialogContextValue;
@@ -13,5 +13,4 @@ declare class DialogBackdropElement extends ContextPartElement<DialogState> {
13
13
  connectedCallback(): void;
14
14
  }
15
15
  //#endregion
16
- export { DialogBackdropElement };
17
16
  //# sourceMappingURL=backdrop.d.ts.map
@@ -2,7 +2,7 @@ import { UIElement } from "../ui-element.js";
2
2
  import { PropertyValues } from "@videojs/element";
3
3
  //#region src/ui/dialog/close.d.ts
4
4
  /** Button that closes its owning dialog; the element itself takes `role="button"` and keyboard focus. */
5
- declare class DialogCloseElement extends UIElement {
5
+ export declare class DialogCloseElement extends UIElement {
6
6
  #private;
7
7
  static readonly tagName: string;
8
8
  static properties: {
@@ -16,5 +16,4 @@ declare class DialogCloseElement extends UIElement {
16
16
  protected update(_changed: PropertyValues): void;
17
17
  }
18
18
  //#endregion
19
- export { DialogCloseElement };
20
19
  //# sourceMappingURL=close.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"close.js","names":["#ctx","#disconnect"],"sources":["../../../../src/ui/dialog/close.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs, createButton } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { UIElement } from '../ui-element';\nimport { dialogContext } from './context';\n\n/** Button that closes its owning dialog; the element itself takes `role=\"button\"` and keyboard focus. */\nexport class DialogCloseElement extends UIElement {\n static readonly tagName: string = 'media-dialog-close';\n\n static override properties = {\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<'disabled'>;\n\n disabled = false;\n\n readonly #ctx = new ContextConsumer(this, { context: dialogContext, subscribe: true });\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#ctx.value?.close(),\n isDisabled: () => this.disabled,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n const ctx = this.#ctx.value;\n\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAb,cAAwC,UAAU;;;EAOrC,KAAA,WAAA;EAEK,KAAA,OAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;EAC/C,KAAA,cAAA;;;EATJ,KAAA,UAAA;;;EAEL,KAAA,aAAA,EAC3B,UAAU,EAAE,MAAM,QAAQ,EAC5B;;CAIA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,KAAKC,cAAc,IAAI,gBAAgB;EAEvC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,KAAKD,KAAK,OAAO,MAAM;GACzC,kBAAkB,KAAK;EACzB,CAAC;EAED,kBAAkB,MAAM,aAAa,EAAE,QAAQ,KAAKC,YAAY,OAAO,CAAC;CAC1E;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAKA,aAAa,MAAM;EACxB,KAAKA,cAAc;CACrB;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,MAAM,MAAM,KAAKD,KAAK;EAEtB,IAAI,KAAK,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;CAChE;AACF"}
1
+ {"version":3,"file":"close.js","names":[],"sources":["../../../../src/ui/dialog/close.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs, createButton } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { UIElement } from '../ui-element';\nimport { dialogContext } from './context';\n\n/** Button that closes its owning dialog; the element itself takes `role=\"button\"` and keyboard focus. */\nexport class DialogCloseElement extends UIElement {\n static readonly tagName: string = 'media-dialog-close';\n\n static override properties = {\n disabled: { type: Boolean },\n } satisfies PropertyDeclarationMap<'disabled'>;\n\n disabled = false;\n\n readonly #ctx = new ContextConsumer(this, { context: dialogContext, subscribe: true });\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.#ctx.value?.close(),\n isDisabled: () => this.disabled,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n const ctx = this.#ctx.value;\n\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAb,cAAwC,UAAU;;;EAOrC,KAAA,WAAA;EAEK,KAAA,OAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;EAC/C,KAAA,cAAA;;;EATJ,KAAA,UAAA;;;EAEL,KAAA,aAAA,EAC3B,UAAU,EAAE,MAAM,QAAQ,EAC5B;;CAIA;CACA;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EACxB,KAAK,cAAc,IAAI,gBAAgB;EAEvC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,KAAK,KAAK,OAAO,MAAM;GACzC,kBAAkB,KAAK;EACzB,CAAC;EAED,kBAAkB,MAAM,aAAa,EAAE,QAAQ,KAAK,YAAY,OAAO,CAAC;CAC1E;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAK,aAAa,MAAM;EACxB,KAAK,cAAc;CACrB;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EACrB,MAAM,MAAM,KAAK,KAAK;EAEtB,IAAI,KAAK,oBAAoB,MAAM,IAAI,OAAO,IAAI,YAAY;CAChE;AACF"}
@@ -1,7 +1,8 @@
1
1
  import { DialogCore, DialogState, StateAttrMap } from "@videojs/core";
2
2
  import { DialogApi } from "@videojs/core/dom";
3
3
  //#region src/ui/dialog/context.d.ts
4
- interface DialogContextValue {
4
+ /** @internal */
5
+ export interface DialogContextValue {
5
6
  state: DialogState;
6
7
  stateAttrMap: StateAttrMap<DialogState>;
7
8
  dialog: DialogApi;
@@ -9,9 +10,9 @@ interface DialogContextValue {
9
10
  popupAttrs: ReturnType<DialogCore['getPopupAttrs']>;
10
11
  close: () => void;
11
12
  }
12
- declare const dialogContext: {
13
+ /** @internal */
14
+ export declare const dialogContext: {
13
15
  __context__: DialogContextValue;
14
16
  };
15
17
  //#endregion
16
- export { DialogContextValue, dialogContext };
17
18
  //# sourceMappingURL=context.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { createContext } from "@videojs/element/context";
2
+ /** @internal */
2
3
  const dialogContext = createContext(Symbol("@videojs/dialog"));
3
4
  //#endregion
4
5
  export { dialogContext };
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/dialog/context.ts"],"sourcesContent":["import type { DialogCore, DialogState, StateAttrMap } from '@videojs/core';\nimport type { DialogApi } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface DialogContextValue {\n state: DialogState;\n stateAttrMap: StateAttrMap<DialogState>;\n dialog: DialogApi;\n popupId: string;\n popupAttrs: ReturnType<DialogCore['getPopupAttrs']>;\n close: () => void;\n}\n\nconst DIALOG_CONTEXT_KEY = Symbol('@videojs/dialog');\n\nexport const dialogContext = createContext<DialogContextValue>(DIALOG_CONTEXT_KEY);\n"],"mappings":";AAeA,MAAa,gBAAgB,cAFF,OAAO,iBAE6B,CAAkB"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/dialog/context.ts"],"sourcesContent":["import type { DialogCore, DialogState, StateAttrMap } from '@videojs/core';\nimport type { DialogApi } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\n/** @internal */\nexport interface DialogContextValue {\n state: DialogState;\n stateAttrMap: StateAttrMap<DialogState>;\n dialog: DialogApi;\n popupId: string;\n popupAttrs: ReturnType<DialogCore['getPopupAttrs']>;\n close: () => void;\n}\n\nconst DIALOG_CONTEXT_KEY = Symbol('@videojs/dialog');\n\n/** @internal */\nexport const dialogContext = createContext<DialogContextValue>(DIALOG_CONTEXT_KEY);\n"],"mappings":";;AAiBA,MAAa,gBAAgB,cAHF,OAAO,iBAG6B,CAAkB"}
@@ -9,7 +9,7 @@ import { ContextConsumer } from "@videojs/element/context";
9
9
  * Text announced as its owning dialog's description. The element takes the `id` that the popup's `aria-describedby`
10
10
  * points to.
11
11
  */
12
- declare class DialogDescriptionElement extends ContextPartElement<DialogState> {
12
+ export declare class DialogDescriptionElement extends ContextPartElement<DialogState> {
13
13
  static readonly tagName: string;
14
14
  protected readonly consumer: ContextConsumer<{
15
15
  __context__: DialogContextValue;
@@ -17,5 +17,4 @@ declare class DialogDescriptionElement extends ContextPartElement<DialogState> {
17
17
  protected update(changed: PropertyValues): void;
18
18
  }
19
19
  //#endregion
20
- export { DialogDescriptionElement };
21
20
  //# sourceMappingURL=description.d.ts.map
@@ -2,13 +2,15 @@ import { UIElement } from "../ui-element.js";
2
2
  import { DialogCore, DialogState, StateAttrMap } from "@videojs/core";
3
3
  import { PropertyValues } from "@videojs/element";
4
4
  //#region src/ui/dialog/element.d.ts
5
- interface DialogElementBaseOptions {
5
+ export interface DialogElementBaseOptions {
6
+ /** @internal */
6
7
  core?: DialogCore;
8
+ /** @internal */
7
9
  stateAttrMap?: StateAttrMap<DialogState>;
8
10
  idPrefix?: string;
9
11
  bindTrigger?: boolean;
10
12
  }
11
- declare class DialogElementBase extends UIElement {
13
+ export declare class DialogElementBase extends UIElement {
12
14
  #private;
13
15
  static properties: {
14
16
  open: {
@@ -34,9 +36,8 @@ declare class DialogElementBase extends UIElement {
34
36
  protected willUpdate(changed: PropertyValues): void;
35
37
  protected update(_changed: PropertyValues): void;
36
38
  }
37
- declare class DialogElement extends DialogElementBase {
39
+ export declare class DialogElement extends DialogElementBase {
38
40
  static readonly tagName = "media-dialog";
39
41
  }
40
42
  //#endregion
41
- export { DialogElement, DialogElementBase, DialogElementBaseOptions };
42
43
  //# sourceMappingURL=element.d.ts.map
@@ -88,8 +88,10 @@ var DialogElementBase = class extends UIElement {
88
88
  this.#core.setProps(this);
89
89
  if (this.#dialog && changed.has("open")) {
90
90
  const { active: inputOpen } = this.#dialog.input.current;
91
- if (this.open !== inputOpen) if (this.open) this.#dialog.open();
92
- else this.#dialog.close();
91
+ if (this.open !== inputOpen) {
92
+ if (this.open) this.#dialog.open();
93
+ else this.#dialog.close();
94
+ }
93
95
  }
94
96
  }
95
97
  update(_changed) {
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["#core","#stateAttrMap","#provider","#position","#popupId","#titleId","#descriptionId","#bindTrigger","#dialog","#snapshot","#cleanupTrigger","#syncTrigger","#triggerElement","#triggerAbort"],"sources":["../../../../src/ui/dialog/element.ts"],"sourcesContent":["import { DialogCore, DialogDataAttrs, type DialogInput, type DialogState, type StateAttrMap } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createDialog,\n createTransition,\n type DialogApi,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { SnapshotController } from '@videojs/store/html';\n\nimport { PositionController } from '../position-controller';\nimport { UIElement } from '../ui-element';\nimport { dialogContext } from './context';\n\nlet idCounter = 0;\n\nexport interface DialogElementBaseOptions {\n core?: DialogCore;\n stateAttrMap?: StateAttrMap<DialogState>;\n idPrefix?: string;\n bindTrigger?: boolean;\n}\n\nexport class DialogElementBase extends UIElement {\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n } satisfies PropertyDeclarationMap<keyof DialogCore.Props>;\n\n open = DialogCore.defaultProps.open;\n defaultOpen = DialogCore.defaultProps.defaultOpen;\n closeOnEscape = DialogCore.defaultProps.closeOnEscape;\n\n readonly #core: DialogCore;\n readonly #stateAttrMap: StateAttrMap<DialogState>;\n readonly #provider = new ContextProvider(this, { context: dialogContext });\n readonly #position = new PositionController(this);\n readonly #popupId: string;\n readonly #titleId: string;\n readonly #descriptionId: string;\n readonly #bindTrigger: boolean;\n\n #dialog: DialogApi | null = null;\n #snapshot: SnapshotController<DialogInput> | null = null;\n #triggerAbort: AbortController | null = null;\n #triggerElement: HTMLElement | null = null;\n\n constructor({\n core = new DialogCore(),\n stateAttrMap = DialogDataAttrs,\n idPrefix = 'dialog',\n bindTrigger = true,\n }: DialogElementBaseOptions = {}) {\n super();\n this.#core = core;\n this.#stateAttrMap = stateAttrMap;\n this.#bindTrigger = bindTrigger;\n this.#popupId = `vjs-${idPrefix}-popup-${idCounter++}`;\n this.#titleId = `vjs-${idPrefix}-title-${idCounter++}`;\n this.#descriptionId = `vjs-${idPrefix}-desc-${idCounter++}`;\n this.#core.setTitleId(this.#titleId);\n this.#core.setDescriptionId(this.#descriptionId);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.#dialog = createDialog({\n transition: createTransition(),\n closeOnEscape: () => this.closeOnEscape,\n onOpenChange: (nextOpen: boolean) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen } }));\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n this.dispatchEvent(new CustomEvent('open-change-complete', { detail: { open: nextOpen } }));\n },\n });\n\n if (this.#snapshot) {\n this.#snapshot.track(this.#dialog.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#dialog.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n if (this.defaultOpen && !this.open) this.#dialog?.open();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#cleanupTrigger();\n this.#dialog?.destroy();\n this.#dialog = null;\n }\n\n close(): void {\n this.#dialog?.close();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n if (this.#dialog && changed.has('open')) {\n const { active: inputOpen } = this.#dialog.input.current;\n\n if (this.open !== inputOpen) {\n if (this.open) this.#dialog.open();\n else this.#dialog.close();\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n if (!this.#dialog) return;\n\n const triggerElement = this.#bindTrigger ? this.#position.findTrigger() : null;\n\n this.#syncTrigger(triggerElement);\n\n const input = this.#dialog.input.current;\n\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, this.#stateAttrMap);\n\n if (this.#triggerElement) {\n applyElementProps(this.#triggerElement, this.#core.getTriggerAttrs(state, this.#popupId));\n }\n\n this.#provider.setValue({\n state,\n stateAttrMap: this.#stateAttrMap,\n dialog: this.#dialog,\n popupId: this.#popupId,\n popupAttrs: this.#core.getPopupAttrs(state),\n close: () => this.#dialog?.close(),\n });\n }\n\n #syncTrigger(triggerElement: HTMLElement | null): void {\n if (triggerElement === this.#triggerElement) return;\n\n this.#cleanupTrigger();\n this.#triggerElement = triggerElement;\n this.#dialog?.setTriggerElement(triggerElement);\n\n if (triggerElement && this.#dialog) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerElement, this.#dialog.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#triggerElement) {\n applyElementProps(this.#triggerElement, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#triggerElement = null;\n this.#dialog?.setTriggerElement(null);\n }\n}\n\nexport class DialogElement extends DialogElementBase {\n static readonly tagName = 'media-dialog';\n}\n"],"mappings":";;;;;;;;AAgBA,IAAI,YAAY;AAShB,IAAa,oBAAb,cAAuC,UAAU;;EAClB,KAAA,aAAA;GAC3B,MAAM,EAAE,MAAM,QAAQ;GACtB,aAAa;IAAE,MAAM;IAAS,WAAW;GAAe;GACxD,eAAe;IAAE,MAAM;IAAS,WAAW;GAAkB;EAC/D;;CAMA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CAEA,YAAY,EACV,OAAO,IAAI,WAAW,GACtB,eAAe,iBACf,WAAW,UACX,cAAc,SACc,CAAC,GAAG;EAChC,MAAM;EAxBD,KAAA,OAAA,WAAW,aAAa;EACjB,KAAA,cAAA,WAAW,aAAa;EACtB,KAAA,gBAAA,WAAW,aAAa;EAInB,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,cAAc,CAAC;EACpD,KAAA,YAAA,IAAI,mBAAmB,IAAI;EAMpB,KAAA,UAAA;EACwB,KAAA,YAAA;EACZ,KAAA,gBAAA;EACF,KAAA,kBAAA;EASpC,KAAKA,QAAQ;EACb,KAAKC,gBAAgB;EACrB,KAAKM,eAAe;EACpB,KAAKH,WAAW,OAAO,SAAS,SAAS;EACzC,KAAKC,WAAW,OAAO,SAAS,SAAS;EACzC,KAAKC,iBAAiB,OAAO,SAAS,QAAQ;EAC9C,KAAKN,MAAM,WAAW,KAAKK,QAAQ;EACnC,KAAKL,MAAM,iBAAiB,KAAKM,cAAc;CACjD;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,WAAW;EAEpB,KAAKE,UAAU,aAAa;GAC1B,YAAY,iBAAiB;GAC7B,qBAAqB,KAAK;GAC1B,eAAe,aAAsB;IACnC,KAAK,OAAO;IACZ,KAAK,cAAc,IAAI,YAAY,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC;GACnF;GACA,uBAAuB,aAAsB;IAC3C,KAAK,cAAc,IAAI,YAAY,wBAAwB,EAAE,QAAQ,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC;GAC5F;EACF,CAAC;EAED,IAAI,KAAKC,WACP,KAAKA,UAAU,MAAM,KAAKD,QAAQ,KAAK;OAEvC,KAAKC,YAAY,IAAI,mBAAmB,MAAM,KAAKD,QAAQ,KAAK;CAEpE;CAEA,aAAgC,SAA+B;EAC7D,MAAM,aAAa,OAAO;EAE1B,IAAI,KAAK,eAAe,CAAC,KAAK,MAAM,KAAKA,SAAS,KAAK;CACzD;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAKE,gBAAgB;EACrB,KAAKF,SAAS,QAAQ;EACtB,KAAKA,UAAU;CACjB;CAEA,QAAc;EACZ,KAAKA,SAAS,MAAM;CACtB;CAEA,WAA8B,SAA+B;EAC3D,MAAM,WAAW,OAAO;EACxB,KAAKR,MAAM,SAAS,IAAI;EAExB,IAAI,KAAKQ,WAAW,QAAQ,IAAI,MAAM,GAAG;GACvC,MAAM,EAAE,QAAQ,cAAc,KAAKA,QAAQ,MAAM;GAEjD,IAAI,KAAK,SAAS,WAChB,IAAI,KAAK,MAAM,KAAKA,QAAQ,KAAK;QAC5B,KAAKA,QAAQ,MAAM;EAE5B;CACF;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,IAAI,CAAC,KAAKA,SAAS;EAEnB,MAAM,iBAAiB,KAAKD,eAAe,KAAKJ,UAAU,YAAY,IAAI;EAE1E,KAAKQ,aAAa,cAAc;EAEhC,MAAM,QAAQ,KAAKH,QAAQ,MAAM;EAEjC,KAAKR,MAAM,SAAS,KAAK;EACzB,MAAM,QAAQ,KAAKA,MAAM,SAAS;EAElC,oBAAoB,MAAM,OAAO,KAAKC,aAAa;EAEnD,IAAI,KAAKW,iBACP,kBAAkB,KAAKA,iBAAiB,KAAKZ,MAAM,gBAAgB,OAAO,KAAKI,QAAQ,CAAC;EAG1F,KAAKF,UAAU,SAAS;GACtB;GACA,cAAc,KAAKD;GACnB,QAAQ,KAAKO;GACb,SAAS,KAAKJ;GACd,YAAY,KAAKJ,MAAM,cAAc,KAAK;GAC1C,aAAa,KAAKQ,SAAS,MAAM;EACnC,CAAC;CACH;CAEA,aAAa,gBAA0C;EACrD,IAAI,mBAAmB,KAAKI,iBAAiB;EAE7C,KAAKF,gBAAgB;EACrB,KAAKE,kBAAkB;EACvB,KAAKJ,SAAS,kBAAkB,cAAc;EAE9C,IAAI,kBAAkB,KAAKA,SAAS;GAClC,KAAKK,gBAAgB,IAAI,gBAAgB;GACzC,kBAAkB,gBAAgB,KAAKL,QAAQ,cAAc,EAAE,QAAQ,KAAKK,cAAc,OAAO,CAAC;EACpG;CACF;CAEA,kBAAwB;EACtB,IAAI,KAAKD,iBACP,kBAAkB,KAAKA,iBAAiB;GACtC,iBAAiB,KAAA;GACjB,iBAAiB,KAAA;GACjB,iBAAiB,KAAA;EACnB,CAAC;EAGH,KAAKC,eAAe,MAAM;EAC1B,KAAKA,gBAAgB;EACrB,KAAKD,kBAAkB;EACvB,KAAKJ,SAAS,kBAAkB,IAAI;CACtC;AACF;AAEA,IAAa,gBAAb,cAAmC,kBAAkB;;EACzB,KAAA,UAAA;;AAC5B"}
1
+ {"version":3,"file":"element.js","names":[],"sources":["../../../../src/ui/dialog/element.ts"],"sourcesContent":["import {\n DialogCore,\n DialogDataAttrs,\n type DialogInput,\n type DialogState,\n type StateAttrMap,\n type DialogProps,\n} from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createDialog,\n createTransition,\n type DialogApi,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { SnapshotController } from '@videojs/store/html';\n\nimport { PositionController } from '../position-controller';\nimport { UIElement } from '../ui-element';\nimport { dialogContext } from './context';\n\nlet idCounter = 0;\n\nexport interface DialogElementBaseOptions {\n /** @internal */\n core?: DialogCore;\n /** @internal */\n stateAttrMap?: StateAttrMap<DialogState>;\n idPrefix?: string;\n bindTrigger?: boolean;\n}\n\nexport class DialogElementBase extends UIElement {\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n } satisfies PropertyDeclarationMap<keyof DialogProps>;\n\n open = DialogCore.defaultProps.open;\n defaultOpen = DialogCore.defaultProps.defaultOpen;\n closeOnEscape = DialogCore.defaultProps.closeOnEscape;\n\n readonly #core: DialogCore;\n readonly #stateAttrMap: StateAttrMap<DialogState>;\n readonly #provider = new ContextProvider(this, { context: dialogContext });\n readonly #position = new PositionController(this);\n readonly #popupId: string;\n readonly #titleId: string;\n readonly #descriptionId: string;\n readonly #bindTrigger: boolean;\n\n #dialog: DialogApi | null = null;\n #snapshot: SnapshotController<DialogInput> | null = null;\n #triggerAbort: AbortController | null = null;\n #triggerElement: HTMLElement | null = null;\n\n constructor({\n core = new DialogCore(),\n stateAttrMap = DialogDataAttrs,\n idPrefix = 'dialog',\n bindTrigger = true,\n }: DialogElementBaseOptions = {}) {\n super();\n this.#core = core;\n this.#stateAttrMap = stateAttrMap;\n this.#bindTrigger = bindTrigger;\n this.#popupId = `vjs-${idPrefix}-popup-${idCounter++}`;\n this.#titleId = `vjs-${idPrefix}-title-${idCounter++}`;\n this.#descriptionId = `vjs-${idPrefix}-desc-${idCounter++}`;\n this.#core.setTitleId(this.#titleId);\n this.#core.setDescriptionId(this.#descriptionId);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.destroyed) return;\n\n this.#dialog = createDialog({\n transition: createTransition(),\n closeOnEscape: () => this.closeOnEscape,\n onOpenChange: (nextOpen: boolean) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen } }));\n },\n onOpenChangeComplete: (nextOpen: boolean) => {\n this.dispatchEvent(new CustomEvent('open-change-complete', { detail: { open: nextOpen } }));\n },\n });\n\n if (this.#snapshot) {\n this.#snapshot.track(this.#dialog.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#dialog.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n if (this.defaultOpen && !this.open) this.#dialog?.open();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#cleanupTrigger();\n this.#dialog?.destroy();\n this.#dialog = null;\n }\n\n close(): void {\n this.#dialog?.close();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n if (this.#dialog && changed.has('open')) {\n const { active: inputOpen } = this.#dialog.input.current;\n\n if (this.open !== inputOpen) {\n if (this.open) this.#dialog.open();\n else this.#dialog.close();\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n if (!this.#dialog) return;\n\n const triggerElement = this.#bindTrigger ? this.#position.findTrigger() : null;\n\n this.#syncTrigger(triggerElement);\n\n const input = this.#dialog.input.current;\n\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, this.#stateAttrMap);\n\n if (this.#triggerElement) {\n applyElementProps(this.#triggerElement, this.#core.getTriggerAttrs(state, this.#popupId));\n }\n\n this.#provider.setValue({\n state,\n stateAttrMap: this.#stateAttrMap,\n dialog: this.#dialog,\n popupId: this.#popupId,\n popupAttrs: this.#core.getPopupAttrs(state),\n close: () => this.#dialog?.close(),\n });\n }\n\n #syncTrigger(triggerElement: HTMLElement | null): void {\n if (triggerElement === this.#triggerElement) return;\n\n this.#cleanupTrigger();\n this.#triggerElement = triggerElement;\n this.#dialog?.setTriggerElement(triggerElement);\n\n if (triggerElement && this.#dialog) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerElement, this.#dialog.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#triggerElement) {\n applyElementProps(this.#triggerElement, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#triggerElement = null;\n this.#dialog?.setTriggerElement(null);\n }\n}\n\nexport class DialogElement extends DialogElementBase {\n static readonly tagName = 'media-dialog';\n}\n"],"mappings":";;;;;;;;AAuBA,IAAI,YAAY;AAWhB,IAAa,oBAAb,cAAuC,UAAU;;EAClB,KAAA,aAAA;GAC3B,MAAM,EAAE,MAAM,QAAQ;GACtB,aAAa;IAAE,MAAM;IAAS,WAAW;GAAe;GACxD,eAAe;IAAE,MAAM;IAAS,WAAW;GAAkB;EAC/D;;CAMA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CAEA,YAAY,EACV,OAAO,IAAI,WAAW,GACtB,eAAe,iBACf,WAAW,UACX,cAAc,SACc,CAAC,GAAG;EAChC,MAAM;EAxBD,KAAA,OAAA,WAAW,aAAa;EACjB,KAAA,cAAA,WAAW,aAAa;EACtB,KAAA,gBAAA,WAAW,aAAa;EAInB,KAAA,YAAA,IAAI,gBAAgB,MAAM,EAAE,SAAS,cAAc,CAAC;EACpD,KAAA,YAAA,IAAI,mBAAmB,IAAI;EAMpB,KAAA,UAAA;EACwB,KAAA,YAAA;EACZ,KAAA,gBAAA;EACF,KAAA,kBAAA;EASpC,KAAK,QAAQ;EACb,KAAK,gBAAgB;EACrB,KAAK,eAAe;EACpB,KAAK,WAAW,OAAO,SAAS,SAAS;EACzC,KAAK,WAAW,OAAO,SAAS,SAAS;EACzC,KAAK,iBAAiB,OAAO,SAAS,QAAQ;EAC9C,KAAK,MAAM,WAAW,KAAK,QAAQ;EACnC,KAAK,MAAM,iBAAiB,KAAK,cAAc;CACjD;CAEA,oBAAmC;EACjC,MAAM,kBAAkB;EAExB,IAAI,KAAK,WAAW;EAEpB,KAAK,UAAU,aAAa;GAC1B,YAAY,iBAAiB;GAC7B,qBAAqB,KAAK;GAC1B,eAAe,aAAsB;IACnC,KAAK,OAAO;IACZ,KAAK,cAAc,IAAI,YAAY,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC;GACnF;GACA,uBAAuB,aAAsB;IAC3C,KAAK,cAAc,IAAI,YAAY,wBAAwB,EAAE,QAAQ,EAAE,MAAM,SAAS,EAAE,CAAC,CAAC;GAC5F;EACF,CAAC;EAED,IAAI,KAAK,WACP,KAAK,UAAU,MAAM,KAAK,QAAQ,KAAK;OAEvC,KAAK,YAAY,IAAI,mBAAmB,MAAM,KAAK,QAAQ,KAAK;CAEpE;CAEA,aAAgC,SAA+B;EAC7D,MAAM,aAAa,OAAO;EAE1B,IAAI,KAAK,eAAe,CAAC,KAAK,MAAM,KAAK,SAAS,KAAK;CACzD;CAEA,uBAAsC;EACpC,MAAM,qBAAqB;EAC3B,KAAK,gBAAgB;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,UAAU;CACjB;CAEA,QAAc;EACZ,KAAK,SAAS,MAAM;CACtB;CAEA,WAA8B,SAA+B;EAC3D,MAAM,WAAW,OAAO;EACxB,KAAK,MAAM,SAAS,IAAI;EAExB,IAAI,KAAK,WAAW,QAAQ,IAAI,MAAM,GAAG;GACvC,MAAM,EAAE,QAAQ,cAAc,KAAK,QAAQ,MAAM;GAEjD,IAAI,KAAK,SAAS,WAAW;IAC3B,IAAI,KAAK,MAAM,KAAK,QAAQ,KAAK;SAC5B,KAAK,QAAQ,MAAM;GAC1B;EACF;CACF;CAEA,OAA0B,UAAgC;EACxD,MAAM,OAAO,QAAQ;EAErB,IAAI,CAAC,KAAK,SAAS;EAEnB,MAAM,iBAAiB,KAAK,eAAe,KAAK,UAAU,YAAY,IAAI;EAE1E,KAAK,aAAa,cAAc;EAEhC,MAAM,QAAQ,KAAK,QAAQ,MAAM;EAEjC,KAAK,MAAM,SAAS,KAAK;EACzB,MAAM,QAAQ,KAAK,MAAM,SAAS;EAElC,oBAAoB,MAAM,OAAO,KAAK,aAAa;EAEnD,IAAI,KAAK,iBACP,kBAAkB,KAAK,iBAAiB,KAAK,MAAM,gBAAgB,OAAO,KAAK,QAAQ,CAAC;EAG1F,KAAK,UAAU,SAAS;GACtB;GACA,cAAc,KAAK;GACnB,QAAQ,KAAK;GACb,SAAS,KAAK;GACd,YAAY,KAAK,MAAM,cAAc,KAAK;GAC1C,aAAa,KAAK,SAAS,MAAM;EACnC,CAAC;CACH;CAEA,aAAa,gBAA0C;EACrD,IAAI,mBAAmB,KAAK,iBAAiB;EAE7C,KAAK,gBAAgB;EACrB,KAAK,kBAAkB;EACvB,KAAK,SAAS,kBAAkB,cAAc;EAE9C,IAAI,kBAAkB,KAAK,SAAS;GAClC,KAAK,gBAAgB,IAAI,gBAAgB;GACzC,kBAAkB,gBAAgB,KAAK,QAAQ,cAAc,EAAE,QAAQ,KAAK,cAAc,OAAO,CAAC;EACpG;CACF;CAEA,kBAAwB;EACtB,IAAI,KAAK,iBACP,kBAAkB,KAAK,iBAAiB;GACtC,iBAAiB,KAAA;GACjB,iBAAiB,KAAA;GACjB,iBAAiB,KAAA;EACnB,CAAC;EAGH,KAAK,eAAe,MAAM;EAC1B,KAAK,gBAAgB;EACrB,KAAK,kBAAkB;EACvB,KAAK,SAAS,kBAAkB,IAAI;CACtC;AACF;AAEA,IAAa,gBAAb,cAAmC,kBAAkB;;EACzB,KAAA,UAAA;;AAC5B"}
@@ -6,7 +6,7 @@ import { PropertyValues } from "@videojs/element";
6
6
  import { ContextConsumer } from "@videojs/element/context";
7
7
  //#region src/ui/dialog/popup.d.ts
8
8
  /** Semantic popup that owns focus management and dialog transition completion. */
9
- declare class DialogPopupElement extends ContextPartElement<DialogState> {
9
+ export declare class DialogPopupElement extends ContextPartElement<DialogState> {
10
10
  #private;
11
11
  static readonly tagName = "media-dialog-popup";
12
12
  protected readonly consumer: ContextConsumer<{
@@ -16,5 +16,4 @@ declare class DialogPopupElement extends ContextPartElement<DialogState> {
16
16
  protected update(changed: PropertyValues): void;
17
17
  }
18
18
  //#endregion
19
- export { DialogPopupElement };
20
19
  //# sourceMappingURL=popup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup.js","names":["#dialog"],"sources":["../../../../src/ui/dialog/popup.ts"],"sourcesContent":["import type { DialogState } from '@videojs/core';\nimport { applyElementProps, type DialogApi } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { dialogContext } from './context';\n\n/** Semantic popup that owns focus management and dialog transition completion. */\nexport class DialogPopupElement extends ContextPartElement<DialogState> {\n static readonly tagName = 'media-dialog-popup';\n\n protected readonly consumer = new ContextConsumer(this, { context: dialogContext, subscribe: true });\n\n #dialog: DialogApi | null = null;\n\n override disconnectedCallback(): void {\n this.#dialog?.setPopupElement(null);\n this.#dialog = null;\n super.disconnectedCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const ctx = this.consumer.value;\n if (!ctx) return;\n\n if (this.#dialog !== ctx.dialog) {\n this.#dialog?.setPopupElement(null);\n this.#dialog = ctx.dialog;\n this.#dialog.setPopupElement(this);\n }\n\n applyElementProps(this, {\n id: ctx.popupId,\n tabIndex: -1,\n ...ctx.popupAttrs,\n });\n }\n}\n"],"mappings":";;;;;;AASA,IAAa,qBAAb,cAAwC,mBAAgC;;;EAGxC,KAAA,WAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;EAEvE,KAAA,UAAA;;;EAJF,KAAA,UAAA;;CAI1B;CAEA,uBAAsC;EACpC,KAAKA,SAAS,gBAAgB,IAAI;EAClC,KAAKA,UAAU;EACf,MAAM,qBAAqB;CAC7B;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,MAAM,MAAM,KAAK,SAAS;EAC1B,IAAI,CAAC,KAAK;EAEV,IAAI,KAAKA,YAAY,IAAI,QAAQ;GAC/B,KAAKA,SAAS,gBAAgB,IAAI;GAClC,KAAKA,UAAU,IAAI;GACnB,KAAKA,QAAQ,gBAAgB,IAAI;EACnC;EAEA,kBAAkB,MAAM;GACtB,IAAI,IAAI;GACR,UAAU;GACV,GAAG,IAAI;EACT,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"popup.js","names":[],"sources":["../../../../src/ui/dialog/popup.ts"],"sourcesContent":["import type { DialogState } from '@videojs/core';\nimport { applyElementProps, type DialogApi } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { dialogContext } from './context';\n\n/** Semantic popup that owns focus management and dialog transition completion. */\nexport class DialogPopupElement extends ContextPartElement<DialogState> {\n static readonly tagName = 'media-dialog-popup';\n\n protected readonly consumer = new ContextConsumer(this, { context: dialogContext, subscribe: true });\n\n #dialog: DialogApi | null = null;\n\n override disconnectedCallback(): void {\n this.#dialog?.setPopupElement(null);\n this.#dialog = null;\n super.disconnectedCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const ctx = this.consumer.value;\n if (!ctx) return;\n\n if (this.#dialog !== ctx.dialog) {\n this.#dialog?.setPopupElement(null);\n this.#dialog = ctx.dialog;\n this.#dialog.setPopupElement(this);\n }\n\n applyElementProps(this, {\n id: ctx.popupId,\n tabIndex: -1,\n ...ctx.popupAttrs,\n });\n }\n}\n"],"mappings":";;;;;;AASA,IAAa,qBAAb,cAAwC,mBAAgC;;;EAGxC,KAAA,WAAA,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;EAAK,CAAC;EAEvE,KAAA,UAAA;;;EAJF,KAAA,UAAA;;CAI1B;CAEA,uBAAsC;EACpC,KAAK,SAAS,gBAAgB,IAAI;EAClC,KAAK,UAAU;EACf,MAAM,qBAAqB;CAC7B;CAEA,OAA0B,SAA+B;EACvD,MAAM,OAAO,OAAO;EAEpB,MAAM,MAAM,KAAK,SAAS;EAC1B,IAAI,CAAC,KAAK;EAEV,IAAI,KAAK,YAAY,IAAI,QAAQ;GAC/B,KAAK,SAAS,gBAAgB,IAAI;GAClC,KAAK,UAAU,IAAI;GACnB,KAAK,QAAQ,gBAAgB,IAAI;EACnC;EAEA,kBAAkB,MAAM;GACtB,IAAI,IAAI;GACR,UAAU;GACV,GAAG,IAAI;EACT,CAAC;CACH;AACF"}
@@ -6,7 +6,7 @@ import { PropertyValues } from "@videojs/element";
6
6
  import { ContextConsumer } from "@videojs/element/context";
7
7
  //#region src/ui/dialog/title.d.ts
8
8
  /** Text that labels its owning dialog. The element takes the `id` that the popup's `aria-labelledby` points to. */
9
- declare class DialogTitleElement extends ContextPartElement<DialogState> {
9
+ export declare class DialogTitleElement extends ContextPartElement<DialogState> {
10
10
  static readonly tagName: string;
11
11
  protected readonly consumer: ContextConsumer<{
12
12
  __context__: DialogContextValue;
@@ -14,5 +14,4 @@ declare class DialogTitleElement extends ContextPartElement<DialogState> {
14
14
  protected update(changed: PropertyValues): void;
15
15
  }
16
16
  //#endregion
17
- export { DialogTitleElement };
18
17
  //# sourceMappingURL=title.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { UIElement } from "../ui-element.js";
2
2
  import { PropertyValues } from "@videojs/element";
3
3
  //#region src/ui/error-dialog/element.d.ts
4
- declare class ErrorDialogElement extends UIElement {
4
+ export declare class ErrorDialogElement extends UIElement {
5
5
  #private;
6
6
  static readonly tagName = "media-error-dialog";
7
7
  constructor();
@@ -11,5 +11,4 @@ declare class ErrorDialogElement extends UIElement {
11
11
  protected update(_changed: PropertyValues): void;
12
12
  }
13
13
  //#endregion
14
- export { ErrorDialogElement };
15
14
  //# sourceMappingURL=element.d.ts.map