@videojs/html 10.0.0-beta.27 → 10.0.0-beta.28

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 (393) hide show
  1. package/cdn/audio-headless.dev.js +1 -1
  2. package/cdn/audio-headless.js +1 -1
  3. package/cdn/audio-minimal-ui.dev.js +1 -1
  4. package/cdn/audio-minimal-ui.js +1 -1
  5. package/cdn/audio-minimal.dev.js +4 -4
  6. package/cdn/audio-minimal.dev.js.map +1 -1
  7. package/cdn/audio-minimal.js +1 -1
  8. package/cdn/audio-minimal.js.map +1 -1
  9. package/cdn/audio-ui.dev.js +1 -1
  10. package/cdn/audio-ui.js +1 -1
  11. package/cdn/audio.dev.js +4 -4
  12. package/cdn/audio.dev.js.map +1 -1
  13. package/cdn/audio.js +1 -1
  14. package/cdn/audio.js.map +1 -1
  15. package/cdn/background-video-WKumpp49.js +59 -0
  16. package/cdn/background-video-WKumpp49.js.map +1 -0
  17. package/cdn/background-video-YHY_3-lX.js +2 -0
  18. package/cdn/background-video-YHY_3-lX.js.map +1 -0
  19. package/cdn/background.dev.js +3 -56
  20. package/cdn/background.dev.js.map +1 -1
  21. package/cdn/background.js +1 -1
  22. package/cdn/background.js.map +1 -1
  23. package/cdn/bn-CcLIScl6.js +108 -0
  24. package/cdn/bn-CcLIScl6.js.map +1 -0
  25. package/cdn/bn-KcCmQhYd.js +2 -0
  26. package/cdn/bn-KcCmQhYd.js.map +1 -0
  27. package/cdn/compounds-BEO1d3ZM.js +8 -0
  28. package/cdn/compounds-BEO1d3ZM.js.map +1 -0
  29. package/cdn/{compounds-CCvdpvge.js → compounds-nk9RJtBK.js} +8 -15
  30. package/cdn/compounds-nk9RJtBK.js.map +1 -0
  31. package/cdn/container-element-Dd0ZCdhK.js +14 -0
  32. package/cdn/container-element-Dd0ZCdhK.js.map +1 -0
  33. package/cdn/container-element-HHK_KZOE.js +376 -0
  34. package/cdn/container-element-HHK_KZOE.js.map +1 -0
  35. package/cdn/{create-player-BHFyOnWi.js → create-player-DK9WOywd.js} +19 -379
  36. package/cdn/create-player-DK9WOywd.js.map +1 -0
  37. package/cdn/create-player-hSdQMP5p.js +2 -0
  38. package/cdn/create-player-hSdQMP5p.js.map +1 -0
  39. package/cdn/embed-params-D2e8u0d4.js +2 -0
  40. package/cdn/embed-params-D2e8u0d4.js.map +1 -0
  41. package/cdn/embed-params-W6T88S8x.js +39 -0
  42. package/cdn/embed-params-W6T88S8x.js.map +1 -0
  43. package/cdn/{gesture-element-CG-Sx_5t.js → gesture-element-6Ld1YwIL.js} +3 -3
  44. package/cdn/{gesture-element-CG-Sx_5t.js.map → gesture-element-6Ld1YwIL.js.map} +1 -1
  45. package/cdn/gesture-element-BC48ucj9.js +2 -0
  46. package/cdn/{gesture-element-BNfMI8eh.js.map → gesture-element-BC48ucj9.js.map} +1 -1
  47. package/cdn/{hls-js-g1zdcyvE.js → hls-js-BEuVm0u9.js} +3 -2
  48. package/cdn/{hls-js-g1zdcyvE.js.map → hls-js-BEuVm0u9.js.map} +1 -1
  49. package/cdn/hls-js-C4P_b2tT.js +2 -0
  50. package/cdn/{hls-js-6lW7L4th.js.map → hls-js-C4P_b2tT.js.map} +1 -1
  51. package/cdn/hls-js-CATW7NBm.js +2 -0
  52. package/cdn/{hls-js-DCQzjzB5.js.map → hls-js-CATW7NBm.js.map} +1 -1
  53. package/cdn/{hls-js-Cwj8UBx9.js → hls-js-WCNy9MVh.js} +3 -2
  54. package/cdn/{hls-js-Cwj8UBx9.js.map → hls-js-WCNy9MVh.js.map} +1 -1
  55. package/cdn/i18n-CE4KxKuj.js +2 -0
  56. package/cdn/i18n-CE4KxKuj.js.map +1 -0
  57. package/cdn/{i18n-Mtlmj1AA.js → i18n-Ch4t6EjV.js} +2 -2
  58. package/cdn/{i18n-Mtlmj1AA.js.map → i18n-Ch4t6EjV.js.map} +1 -1
  59. package/cdn/i18n-Dc7WM2xd.js +2 -0
  60. package/cdn/{i18n-DfKGl5Rh.js.map → i18n-Dc7WM2xd.js.map} +1 -1
  61. package/cdn/i18n-DyF_NfCk.js +157 -0
  62. package/cdn/i18n-DyF_NfCk.js.map +1 -0
  63. package/cdn/i18n.dev.js +3 -152
  64. package/cdn/i18n.dev.js.map +1 -1
  65. package/cdn/i18n.js +1 -1
  66. package/cdn/i18n.js.map +1 -1
  67. package/cdn/{live-button-element-B_y-ZJBy.js → live-button-element-Bae44kBN.js} +5 -4
  68. package/cdn/live-button-element-Bae44kBN.js.map +1 -0
  69. package/cdn/live-button-element-DaHgnYdw.js +2 -0
  70. package/cdn/{live-button-element-CWfkQUoy.js.map → live-button-element-DaHgnYdw.js.map} +1 -1
  71. package/cdn/live-video-minimal.dev.js +8 -8
  72. package/cdn/live-video-minimal.dev.js.map +1 -1
  73. package/cdn/live-video-minimal.js +1 -1
  74. package/cdn/live-video-minimal.js.map +1 -1
  75. package/cdn/live-video.dev.js +9 -9
  76. package/cdn/live-video.dev.js.map +1 -1
  77. package/cdn/live-video.js +1 -1
  78. package/cdn/live-video.js.map +1 -1
  79. package/cdn/locales/bn.dev.js +1 -1
  80. package/cdn/locales/bn.js +1 -1
  81. package/cdn/media/background-video.dev.d.ts +1 -0
  82. package/cdn/media/background-video.dev.js +3 -0
  83. package/cdn/media/background-video.js +1 -0
  84. package/cdn/media/cloudflare-video.dev.d.ts +1 -0
  85. package/cdn/media/cloudflare-video.dev.js +668 -0
  86. package/cdn/media/cloudflare-video.dev.js.map +1 -0
  87. package/cdn/media/cloudflare-video.js +2 -0
  88. package/cdn/media/cloudflare-video.js.map +1 -0
  89. package/cdn/media/container.dev.d.ts +1 -0
  90. package/cdn/media/container.dev.js +8 -0
  91. package/cdn/media/container.dev.js.map +1 -0
  92. package/cdn/media/container.js +2 -0
  93. package/cdn/media/container.js.map +1 -0
  94. package/cdn/media/dash-video.dev.js +2 -1
  95. package/cdn/media/dash-video.js +2 -2
  96. package/cdn/media/dash-video.js.map +1 -1
  97. package/cdn/media/google-cast.dev.js +2 -31
  98. package/cdn/media/google-cast.dev.js.map +1 -1
  99. package/cdn/media/google-cast.js +3 -3
  100. package/cdn/media/google-cast.js.map +1 -1
  101. package/cdn/media/hls-audio.dev.js +1 -0
  102. package/cdn/media/hls-audio.js +1 -1
  103. package/cdn/media/hls-audio.js.map +1 -1
  104. package/cdn/media/hls-background-video.dev.js +2 -1
  105. package/cdn/media/hls-background-video.js +1 -1
  106. package/cdn/media/hls-background-video.js.map +1 -1
  107. package/cdn/media/hls-video.dev.js +2 -1
  108. package/cdn/media/hls-video.js +1 -1
  109. package/cdn/media/hls-video.js.map +1 -1
  110. package/cdn/media/hlsjs-video.dev.js +2 -1
  111. package/cdn/media/hlsjs-video.js +1 -1
  112. package/cdn/media/hlsjs-video.js.map +1 -1
  113. package/cdn/media/mux-audio/hls-js.dev.js +3 -1
  114. package/cdn/media/mux-audio/hls-js.js +1 -1
  115. package/cdn/media/mux-audio/spf.dev.js +1 -0
  116. package/cdn/media/mux-audio/spf.js +1 -1
  117. package/cdn/media/mux-audio/spf.js.map +1 -1
  118. package/cdn/media/mux-audio.dev.js +3 -1
  119. package/cdn/media/mux-audio.js +1 -1
  120. package/cdn/media/mux-background-video.dev.js +2 -1
  121. package/cdn/media/mux-background-video.js +1 -1
  122. package/cdn/media/mux-background-video.js.map +1 -1
  123. package/cdn/media/mux-data.dev.js +2 -1
  124. package/cdn/media/mux-data.dev.js.map +1 -1
  125. package/cdn/media/mux-data.js +2 -2
  126. package/cdn/media/mux-data.js.map +1 -1
  127. package/cdn/media/mux-video/hls-js.dev.js +3 -1
  128. package/cdn/media/mux-video/hls-js.js +1 -1
  129. package/cdn/media/mux-video/spf.dev.js +2 -1
  130. package/cdn/media/mux-video/spf.js +1 -1
  131. package/cdn/media/mux-video/spf.js.map +1 -1
  132. package/cdn/media/mux-video.dev.js +3 -1
  133. package/cdn/media/mux-video.js +1 -1
  134. package/cdn/media/native-hls-video.dev.js +1 -0
  135. package/cdn/media/native-hls-video.js +1 -1
  136. package/cdn/media/native-hls-video.js.map +1 -1
  137. package/cdn/media/spotify-audio.dev.d.ts +1 -0
  138. package/cdn/media/spotify-audio.dev.js +605 -0
  139. package/cdn/media/spotify-audio.dev.js.map +1 -0
  140. package/cdn/media/spotify-audio.js +2 -0
  141. package/cdn/media/spotify-audio.js.map +1 -0
  142. package/cdn/media/tiktok-video.dev.d.ts +1 -0
  143. package/cdn/media/tiktok-video.dev.js +636 -0
  144. package/cdn/media/tiktok-video.dev.js.map +1 -0
  145. package/cdn/media/tiktok-video.js +2 -0
  146. package/cdn/media/tiktok-video.js.map +1 -0
  147. package/cdn/media/twitch-video.dev.d.ts +1 -0
  148. package/cdn/media/twitch-video.dev.js +627 -0
  149. package/cdn/media/twitch-video.dev.js.map +1 -0
  150. package/cdn/media/twitch-video.js +2 -0
  151. package/cdn/media/twitch-video.js.map +1 -0
  152. package/cdn/media/vimeo-video.dev.d.ts +1 -0
  153. package/cdn/media/vimeo-video.dev.js +2989 -0
  154. package/cdn/media/vimeo-video.dev.js.map +1 -0
  155. package/cdn/media/vimeo-video.js +16 -0
  156. package/cdn/media/vimeo-video.js.map +1 -0
  157. package/cdn/media/youtube-video.dev.d.ts +1 -0
  158. package/cdn/media/youtube-video.dev.js +713 -0
  159. package/cdn/media/youtube-video.dev.js.map +1 -0
  160. package/cdn/media/youtube-video.js +2 -0
  161. package/cdn/media/youtube-video.js.map +1 -0
  162. package/cdn/{media-Cp3acYc8.js → media-BavrGKqa.js} +274 -5
  163. package/cdn/media-BavrGKqa.js.map +1 -0
  164. package/cdn/media-Bmablv4g.js +2 -0
  165. package/cdn/media-Bmablv4g.js.map +1 -0
  166. package/cdn/{media-B_gQXwri.js → media-COIe3uI5.js} +12 -3
  167. package/cdn/media-COIe3uI5.js.map +1 -0
  168. package/cdn/{media-CbWsJJhU.js → media-CPVSKLdk.js} +2 -2
  169. package/cdn/{media-CbWsJJhU.js.map → media-CPVSKLdk.js.map} +1 -1
  170. package/cdn/media-CanBm0Jh.js +41 -0
  171. package/cdn/media-CanBm0Jh.js.map +1 -0
  172. package/cdn/{media-Dq4zmIJa2.js → media-Dq4zmIJa.js} +1 -1
  173. package/cdn/media-Dq4zmIJa.js.map +1 -0
  174. package/cdn/{media-DRo3n8tM.js → media-oa3nyL2o.js} +3 -3
  175. package/cdn/{media-DRo3n8tM.js.map → media-oa3nyL2o.js.map} +1 -1
  176. package/cdn/media-played-ranges-CM2zeOGr.js +2 -0
  177. package/cdn/media-played-ranges-CM2zeOGr.js.map +1 -0
  178. package/cdn/media-played-ranges-Yd9acuMt.js +156 -0
  179. package/cdn/media-played-ranges-Yd9acuMt.js.map +1 -0
  180. package/cdn/{media-suYcjCG22.js → media-suYcjCG2.js} +1 -1
  181. package/cdn/media-suYcjCG2.js.map +1 -0
  182. package/cdn/minimal-ui-8iRZf_72.js +2 -0
  183. package/cdn/{minimal-ui-AFk6Ut5f.js.map → minimal-ui-8iRZf_72.js.map} +1 -1
  184. package/cdn/{minimal-ui--JsmpU2q.js → minimal-ui-BpHxIo4z.js} +5 -5
  185. package/cdn/{minimal-ui--JsmpU2q.js.map → minimal-ui-BpHxIo4z.js.map} +1 -1
  186. package/cdn/{minimal-ui-Bxcpf5Mb.js → minimal-ui-CRKvUmB8.js} +9 -9
  187. package/cdn/{minimal-ui-Bxcpf5Mb.js.map → minimal-ui-CRKvUmB8.js.map} +1 -1
  188. package/cdn/minimal-ui-Et2Wcn7r.js +2 -0
  189. package/cdn/{minimal-ui-BVKu9LWj.js.map → minimal-ui-Et2Wcn7r.js.map} +1 -1
  190. package/cdn/mixin-BqN0V06a.js +2 -0
  191. package/cdn/{mixin-DiB7dIef.js.map → mixin-BqN0V06a.js.map} +1 -1
  192. package/cdn/{mixin-CkNZwQXF.js → mixin-C193v40v.js} +67 -67
  193. package/cdn/mixin-C193v40v.js.map +1 -0
  194. package/cdn/noop-BxkeRIz9.js +6 -0
  195. package/cdn/noop-BxkeRIz9.js.map +1 -0
  196. package/cdn/noop-Ch0IHcOP.js +2 -0
  197. package/cdn/noop-Ch0IHcOP.js.map +1 -0
  198. package/cdn/{player-D4fdOLLk.js → player-B2oraRyD.js} +3 -2
  199. package/cdn/{player-D4fdOLLk.js.map → player-B2oraRyD.js.map} +1 -1
  200. package/cdn/player-BRQLp5bX.js +2 -0
  201. package/cdn/{player-srq1RGTj.js.map → player-BRQLp5bX.js.map} +1 -1
  202. package/cdn/player-BloX4l6F.js +2 -0
  203. package/cdn/{player-iIewo8Y9.js.map → player-BloX4l6F.js.map} +1 -1
  204. package/cdn/{player-B0qnepD5.js → player-CKTAtwit.js} +3 -2
  205. package/cdn/{player-B0qnepD5.js.map → player-CKTAtwit.js.map} +1 -1
  206. package/cdn/{player-C4ix6TQq.js → player-DM9rUXg-.js} +3 -2
  207. package/cdn/{player-C4ix6TQq.js.map → player-DM9rUXg-.js.map} +1 -1
  208. package/cdn/player-rCFqzWrA.js +2 -0
  209. package/cdn/{player-B0ccW5-n.js.map → player-rCFqzWrA.js.map} +1 -1
  210. package/cdn/{poster-element-BP1Ypgbf.js → poster-element-BGr1VQJB.js} +16 -4
  211. package/cdn/poster-element-BGr1VQJB.js.map +1 -0
  212. package/cdn/poster-element-DBmgOyep.js +2 -0
  213. package/cdn/poster-element-DBmgOyep.js.map +1 -0
  214. package/cdn/script-D3ZkiqwO.js +2 -0
  215. package/cdn/script-D3ZkiqwO.js.map +1 -0
  216. package/cdn/script-erPJaaTz.js +33 -0
  217. package/cdn/script-erPJaaTz.js.map +1 -0
  218. package/cdn/seek-button-element-FlgBVoGM.js +2 -0
  219. package/cdn/seek-button-element-FlgBVoGM.js.map +1 -0
  220. package/cdn/{seek-button-element-TErrbilI.js → seek-button-element-XMTLIxZj.js} +6 -5
  221. package/cdn/seek-button-element-XMTLIxZj.js.map +1 -0
  222. package/cdn/{skin-element-wPSb4AAs.js → skin-element-DL-Kqa5f.js} +2 -2
  223. package/cdn/{skin-element-wPSb4AAs.js.map → skin-element-DL-Kqa5f.js.map} +1 -1
  224. package/cdn/{skin-element-1_MG2zgS.js → skin-element-DNytI-uu.js} +2 -2
  225. package/cdn/{skin-element-1_MG2zgS.js.map → skin-element-DNytI-uu.js.map} +1 -1
  226. package/cdn/{text-element-DTB9_2HX.js → text-element-D88ArbZz.js} +3 -3
  227. package/cdn/{text-element-DTB9_2HX.js.map → text-element-D88ArbZz.js.map} +1 -1
  228. package/cdn/text-element-DeWBNKXb.js +2 -0
  229. package/cdn/{text-element-Bsyglab8.js.map → text-element-DeWBNKXb.js.map} +1 -1
  230. package/cdn/{time-slider-chapters-element-DPgaLdBt.js → time-slider-chapters-element-DJ0abZXI.js} +5 -4
  231. package/cdn/time-slider-chapters-element-DJ0abZXI.js.map +1 -0
  232. package/cdn/time-slider-chapters-element-DW8YyJn8.js +2 -0
  233. package/cdn/{time-slider-chapters-element-MdlcovBu.js.map → time-slider-chapters-element-DW8YyJn8.js.map} +1 -1
  234. package/cdn/{translate-text-DP0CzUCC.js → translate-text-BWvoW5-r.js} +2 -7
  235. package/cdn/translate-text-BWvoW5-r.js.map +1 -0
  236. package/cdn/translate-text-TzSgu_oe.js +2 -0
  237. package/cdn/translate-text-TzSgu_oe.js.map +1 -0
  238. package/cdn/{ui-D0AokGxw.js → ui-BU3_2gDQ.js} +8 -8
  239. package/cdn/{ui-D0AokGxw.js.map → ui-BU3_2gDQ.js.map} +1 -1
  240. package/cdn/{ui-p36Szn71.js → ui-BsaWWE4y.js} +10 -10
  241. package/cdn/{ui-p36Szn71.js.map → ui-BsaWWE4y.js.map} +1 -1
  242. package/cdn/ui-C0isALTQ.js +2 -0
  243. package/cdn/{ui-CecDxhTX.js.map → ui-C0isALTQ.js.map} +1 -1
  244. package/cdn/ui-DVpkE1MN.js +2 -0
  245. package/cdn/{ui-ChWM6Xz2.js.map → ui-DVpkE1MN.js.map} +1 -1
  246. package/cdn/video-headless.dev.js +1 -1
  247. package/cdn/video-headless.js +1 -1
  248. package/cdn/video-minimal-ui.dev.js +1 -1
  249. package/cdn/video-minimal-ui.js +1 -1
  250. package/cdn/video-minimal.dev.js +4 -4
  251. package/cdn/video-minimal.dev.js.map +1 -1
  252. package/cdn/video-minimal.js +1 -1
  253. package/cdn/video-minimal.js.map +1 -1
  254. package/cdn/video-ui.dev.js +1 -1
  255. package/cdn/video-ui.js +1 -1
  256. package/cdn/video.dev.js +5 -5
  257. package/cdn/video.dev.js.map +1 -1
  258. package/cdn/video.js +1 -1
  259. package/cdn/video.js.map +1 -1
  260. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  261. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  262. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  263. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  264. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  265. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  266. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  267. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  268. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  269. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  270. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  271. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  272. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  273. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  274. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  275. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  276. package/dist/default/define/audio/minimal-skin.css +16 -19
  277. package/dist/default/define/audio/skin.css +27 -30
  278. package/dist/default/define/live-audio/minimal-skin.css +16 -19
  279. package/dist/default/define/live-audio/skin.css +27 -30
  280. package/dist/default/define/live-video/minimal-skin.css +20 -19
  281. package/dist/default/define/live-video/skin.css +31 -30
  282. package/dist/default/define/video/minimal-skin.css +20 -19
  283. package/dist/default/define/video/skin.css +31 -30
  284. package/dist/default/media/tiktok-video/media.js +3 -2
  285. package/dist/default/media/tiktok-video/media.js.map +1 -1
  286. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +6 -6
  287. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  288. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  289. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  290. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  291. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  292. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  293. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  294. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  295. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  296. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  297. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  298. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  299. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  300. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  301. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  302. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  303. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  304. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  305. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  306. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  307. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  308. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  309. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  310. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  311. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  312. package/dist/dev/define/audio/minimal-skin.css +16 -19
  313. package/dist/dev/define/audio/skin.css +27 -30
  314. package/dist/dev/define/live-audio/minimal-skin.css +16 -19
  315. package/dist/dev/define/live-audio/skin.css +27 -30
  316. package/dist/dev/define/live-video/minimal-skin.css +20 -19
  317. package/dist/dev/define/live-video/skin.css +31 -30
  318. package/dist/dev/define/video/minimal-skin.css +20 -19
  319. package/dist/dev/define/video/skin.css +31 -30
  320. package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
  321. package/dist/dev/media/tiktok-video/media.js +10 -7
  322. package/dist/dev/media/tiktok-video/media.js.map +1 -1
  323. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +6 -6
  324. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  325. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +1 -1
  326. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  327. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +4 -4
  328. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  329. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +1 -1
  330. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  331. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  332. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  333. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  334. package/docs/README.md +1 -1
  335. package/docs/concepts/features.md +2 -2
  336. package/docs/concepts/media-sources.md +79 -1
  337. package/docs/concepts/skins.md +31 -30
  338. package/docs/how-to/build-your-own-component.md +1 -1
  339. package/docs/how-to/customize-skins.md +94 -98
  340. package/docs/how-to/migrate-from-media-chrome.md +359 -0
  341. package/docs/how-to/migrate-from-mux-player.md +535 -0
  342. package/docs/how-to/migrate-from-plyr.md +394 -0
  343. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  344. package/docs/llms.txt +9 -0
  345. package/docs/reference/feature-volume.md +3 -1
  346. package/docs/reference/mute-button.md +34 -0
  347. package/docs/reference/volume-slider.md +1 -1
  348. package/package.json +10 -9
  349. package/cdn/bn-DdelKD_n.js +0 -108
  350. package/cdn/bn-DdelKD_n.js.map +0 -1
  351. package/cdn/bn-YS8ruMcO.js +0 -2
  352. package/cdn/bn-YS8ruMcO.js.map +0 -1
  353. package/cdn/compounds-CCvdpvge.js.map +0 -1
  354. package/cdn/compounds-CJ6SbYAh.js +0 -8
  355. package/cdn/compounds-CJ6SbYAh.js.map +0 -1
  356. package/cdn/create-player-BHFyOnWi.js.map +0 -1
  357. package/cdn/create-player-CbpxjDaZ.js +0 -14
  358. package/cdn/create-player-CbpxjDaZ.js.map +0 -1
  359. package/cdn/gesture-element-BNfMI8eh.js +0 -2
  360. package/cdn/hls-js-6lW7L4th.js +0 -2
  361. package/cdn/hls-js-DCQzjzB5.js +0 -2
  362. package/cdn/i18n-DfKGl5Rh.js +0 -2
  363. package/cdn/live-button-element-B_y-ZJBy.js.map +0 -1
  364. package/cdn/live-button-element-CWfkQUoy.js +0 -2
  365. package/cdn/media-5ODYtX1-.js +0 -2
  366. package/cdn/media-5ODYtX1-.js.map +0 -1
  367. package/cdn/media-B_gQXwri.js.map +0 -1
  368. package/cdn/media-CPWNSZFX.js +0 -41
  369. package/cdn/media-CPWNSZFX.js.map +0 -1
  370. package/cdn/media-Cp3acYc8.js.map +0 -1
  371. package/cdn/media-Dq4zmIJa2.js.map +0 -1
  372. package/cdn/media-suYcjCG22.js.map +0 -1
  373. package/cdn/minimal-ui-AFk6Ut5f.js +0 -2
  374. package/cdn/minimal-ui-BVKu9LWj.js +0 -2
  375. package/cdn/mixin-CkNZwQXF.js.map +0 -1
  376. package/cdn/mixin-DiB7dIef.js +0 -2
  377. package/cdn/player-B0ccW5-n.js +0 -2
  378. package/cdn/player-iIewo8Y9.js +0 -2
  379. package/cdn/player-srq1RGTj.js +0 -2
  380. package/cdn/poster-element-BP1Ypgbf.js.map +0 -1
  381. package/cdn/poster-element-S-rr412t.js +0 -2
  382. package/cdn/poster-element-S-rr412t.js.map +0 -1
  383. package/cdn/seek-button-element-DxLmm58Y.js +0 -2
  384. package/cdn/seek-button-element-DxLmm58Y.js.map +0 -1
  385. package/cdn/seek-button-element-TErrbilI.js.map +0 -1
  386. package/cdn/text-element-Bsyglab8.js +0 -2
  387. package/cdn/time-slider-chapters-element-DPgaLdBt.js.map +0 -1
  388. package/cdn/time-slider-chapters-element-MdlcovBu.js +0 -2
  389. package/cdn/translate-text-BPMWpzFm.js +0 -2
  390. package/cdn/translate-text-BPMWpzFm.js.map +0 -1
  391. package/cdn/translate-text-DP0CzUCC.js.map +0 -1
  392. package/cdn/ui-CecDxhTX.js +0 -2
  393. package/cdn/ui-ChWM6Xz2.js +0 -2
@@ -0,0 +1,14 @@
1
+ import{n as e,t}from"./media-element-Cp5PrNre.js";import{a as n,o as r,r as i,t as a}from"./context-C2rsoDxk.js";import{t as o}from"./listen-4VrUltMW.js";import{DEFAULT_LOCALE as s,createTranslator as c,getI18nTranslations as l,onI18nRegistryChange as u}from"./i18n.js";
2
+ /**
3
+ * @license
4
+ * Copyright 2021 Google LLC
5
+ * SPDX-License-Identifier: BSD-3-Clause
6
+ */
7
+ var d=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){let n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:t}]of this.subscriptions)e(this.o,t)},e!==void 0&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});let{disposer:r}=this.subscriptions.get(e);e(this.value,r)}clearCallbacks(){this.subscriptions.clear()}},f=class extends Event{constructor(e,t){
8
+ /**
9
+ * @license
10
+ * Copyright 2021 Google LLC
11
+ * SPDX-License-Identifier: BSD-3-Clause
12
+ */
13
+ super(`context-provider`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},p=class extends d{constructor(e,t,n){super(t.context===void 0?n:t.initialValue),this.onContextRequest=e=>{if(e.context!==this.context)return;let t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=e=>{if(e.context!==this.context||(e.contextTarget??e.composedPath()[0])===this.host)return;let t=new Set;for(let[e,{consumerHost:n}]of this.subscriptions)t.has(e)||(t.add(e),n.dispatchEvent(new r(this.context,n,e,!0)));e.stopPropagation()},this.host=e,t.context===void 0?this.context=t:this.context=t.context,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(`context-request`,this.onContextRequest),this.host.addEventListener(`context-provider`,this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new f(this.context,this.host))}};const m=n(Symbol.for(`@videojs/i18n`));function h(e=document){let t=e.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}function g(e){return e instanceof Node&&e.nodeType===9}function _(e){return e instanceof Node&&e.nodeType===11&&`host`in e}function v(e,t){let n=t;for(;n;){if(n===e||e.contains(n))return!0;let t=n.getRootNode();n=_(t)?t.host:n.parentNode}return!1}let y;function b(){return y??=c(l(s),s),y}var x=class{#e;#t;#n;constructor(t,n){this.#e=t,this.#t=new e(t,{context:n,callback:()=>this.#e.requestUpdate(),subscribe:!0}),t.addController(this)}get value(){return this.#t.value?.translator??b()}get locale(){return this.#t.value?.locale??s}hostConnected(){y=void 0,this.#n=u(()=>{y=void 0,this.#t.value||this.#e.requestUpdate()})}hostDisconnected(){this.#n?.(),this.#n=void 0}};function S(e){e.hasAttribute(`role`)||e.setAttribute(`role`,`group`),e.hasAttribute(`tabindex`)||e.setAttribute(`tabindex`,`0`)}function C(e){let t=h(e.ownerDocument);(!t||t===e.ownerDocument.body||!v(e,t))&&e.focus({preventScroll:!0})}function w(){let e=null,t=new Set;function n(){for(let e of t)e()}return{open(t){if(e===t)return;let r=e;e=t,r?.close(`group-open`),n()},close(t){e===t&&(e=null,n())},isOpenFor(t){return t!==null&&e?.triggerElement===t},subscribe(e){return t.add(e),()=>t.delete(e)}}}const T={key:`container.label`,text:`Media player`},E=n(Symbol.for(`@videojs/popup-group`));function D(t){return n=>{class r extends n{#e=null;#t=null;#n=w();#r=new p(this,{context:E,initialValue:this.#n});constructor(...n){super(...n),new e(this,{context:t.playerContext,callback:e=>{this.#e=e??null},subscribe:!0}),new e(this,{context:t.containerContext,callback:e=>{this.#t=e?.setContainer??null,this.isConnected&&this.#t?.(this)},subscribe:!0})}get store(){return this.#e}connectedCallback(){super.connectedCallback(),this.#r.setValue(this.#n),this.#t?.(this)}disconnectedCallback(){super.disconnectedCallback(),this.#t?.(null)}}return r}}const O=D({playerContext:i,containerContext:a});var k=class extends O(t){static{this.tagName=`media-container`}#e=new x(this,m);#t=null;#n=null;connectedCallback(){super.connectedCallback(),S(this),this.#r(),this.#t=new AbortController,o(this,`pointerup`,this.#i,{signal:this.#t.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#t?.abort(),this.#t=null}update(e){super.update(e),this.#r()}#r(){let e=this.getAttribute(`aria-label`);if(e&&e!==this.#n)return;if(this.hasAttribute(`aria-labelledby`)){e===this.#n&&(this.removeAttribute(`aria-label`),this.#n=null);return}let t=this.#e.value(T);this.setAttribute(`aria-label`,t),this.#n=t}#i=()=>{C(this)}};export{v as a,m as c,b as i,p as l,E as n,g as o,x as r,h as s,k as t};
14
+ //# sourceMappingURL=container-element-Dd0ZCdhK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-element-Dd0ZCdhK.js","names":["t","createContext","#host","#consumer","ContextConsumer","#unsubscribeRegistry","createContext","ContextProvider","#popupGroup","ContextConsumer","#contextStore","#setContainer","#popupGroupProvider","#i18n","#applyLabel","#disconnect","#onPointerUp","#label"],"sources":["../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/value-notifier.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/controllers/context-provider.js","../src/i18n/context.ts","../../utils/dist/dom/focus.js","../../utils/dist/dom/predicates.js","../../utils/dist/dom/tree.js","../src/i18n/controller.ts","../../core/dist/default/dom/ui/container-attrs.js","../../core/dist/default/dom/ui/popover/popup-group.js","../../core/dist/default/i18n/text/container.js","../src/player/popup-group-context.ts","../src/store/container-mixin.ts","../src/media/container-element.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import type { Locale, Translator } from '@videojs/core/i18n';\nimport { type Context, createContext } from '@videojs/element/context';\n\n// ----------------------------------------\n// i18n Context\n// ----------------------------------------\n\nexport const I18N_CONTEXT_KEY = Symbol.for('@videojs/i18n');\n\nexport type I18nContextValue = {\n translator: Translator;\n locale: Locale;\n};\n\n/** Per-factory context identity (see {@link createI18n}). */\nexport type I18nContext = Context<symbol, I18nContextValue>;\n\n/**\n * The default i18n context instance for consuming the player store in controllers.\n *\n * @public\n */\nexport const i18nContext = createContext<I18nContextValue, typeof I18N_CONTEXT_KEY>(I18N_CONTEXT_KEY);\n","//#region src/dom/focus.ts\nfunction getDeepActiveElement(root = document) {\n\tlet active = root.activeElement;\n\twhile (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;\n\treturn active;\n}\n//#endregion\nexport { getDeepActiveElement };\n\n//# sourceMappingURL=focus.js.map","//#region src/dom/predicates.ts\nfunction isDocument(value) {\n\treturn value instanceof Node && value.nodeType === 9;\n}\nfunction isShadowRoot(value) {\n\treturn value instanceof Node && value.nodeType === 11 && \"host\" in value;\n}\nfunction isHTMLVideoElement(value) {\n\treturn value instanceof HTMLVideoElement;\n}\nfunction isHTMLAudioElement(value) {\n\treturn value instanceof HTMLAudioElement;\n}\nfunction isHTMLMediaElement(value) {\n\treturn value instanceof HTMLMediaElement;\n}\n//#endregion\nexport { isDocument, isHTMLAudioElement, isHTMLMediaElement, isHTMLVideoElement, isShadowRoot };\n\n//# sourceMappingURL=predicates.js.map","import { isShadowRoot } from \"./predicates.js\";\n//#region src/dom/tree.ts\nfunction containsComposed(root, element) {\n\tlet current = element;\n\twhile (current) {\n\t\tif (current === root || root.contains(current)) return true;\n\t\tconst nodeRoot = current.getRootNode();\n\t\tcurrent = isShadowRoot(nodeRoot) ? nodeRoot.host : current.parentNode;\n\t}\n\treturn false;\n}\n//#endregion\nexport { containsComposed };\n\n//# sourceMappingURL=tree.js.map","import {\n createTranslator,\n DEFAULT_LOCALE,\n getI18nTranslations,\n type Locale,\n onI18nRegistryChange,\n type Translator,\n} from '@videojs/core/i18n';\nimport type { ReactiveController, ReactiveControllerHost } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { I18nContext } from './context';\n\nlet fallbackTranslator: Translator | undefined;\n\nexport type I18nControllerHost = ReactiveControllerHost & HTMLElement;\n\nexport function getFallbackTranslator(): Translator {\n fallbackTranslator ??= createTranslator(getI18nTranslations(DEFAULT_LOCALE), DEFAULT_LOCALE);\n return fallbackTranslator;\n}\n\nexport class I18nController implements ReactiveController {\n readonly #host: I18nControllerHost;\n readonly #consumer: ContextConsumer<I18nContext, I18nControllerHost>;\n #unsubscribeRegistry: (() => void) | undefined;\n\n constructor(host: I18nControllerHost, context: I18nContext) {\n this.#host = host;\n this.#consumer = new ContextConsumer(host, {\n context,\n callback: () => this.#host.requestUpdate(),\n subscribe: true,\n });\n host.addController(this);\n }\n\n get value(): Translator {\n return this.#consumer.value?.translator ?? getFallbackTranslator();\n }\n\n get locale(): Locale {\n return this.#consumer.value?.locale ?? DEFAULT_LOCALE;\n }\n\n hostConnected(): void {\n fallbackTranslator = undefined;\n this.#unsubscribeRegistry = onI18nRegistryChange(() => {\n fallbackTranslator = undefined;\n if (!this.#consumer.value) {\n this.#host.requestUpdate();\n }\n });\n }\n\n hostDisconnected(): void {\n this.#unsubscribeRegistry?.();\n this.#unsubscribeRegistry = undefined;\n }\n}\n\nexport namespace I18nController {\n export type Constructor = typeof I18nController;\n export type Host = I18nControllerHost;\n}\n","import { containsComposed, getDeepActiveElement } from \"@videojs/utils/dom\";\n//#region src/dom/ui/container-attrs.ts\nconst DEFAULT_CONTAINER_ROLE = \"group\";\nconst DEFAULT_CONTAINER_TAB_INDEX = 0;\nfunction applyContainerAttrs(element) {\n\tif (!element.hasAttribute(\"role\")) element.setAttribute(\"role\", DEFAULT_CONTAINER_ROLE);\n\tif (!element.hasAttribute(\"tabindex\")) element.setAttribute(\"tabindex\", String(0));\n}\nfunction focusContainer(element) {\n\tconst active = getDeepActiveElement(element.ownerDocument);\n\tif (!active || active === element.ownerDocument.body || !containsComposed(element, active)) element.focus({ preventScroll: true });\n}\n//#endregion\nexport { DEFAULT_CONTAINER_ROLE, DEFAULT_CONTAINER_TAB_INDEX, applyContainerAttrs, focusContainer };\n\n//# sourceMappingURL=container-attrs.js.map","//#region src/dom/ui/popover/popup-group.ts\nfunction createPopupGroup() {\n\tlet current = null;\n\tconst listeners = /* @__PURE__ */ new Set();\n\tfunction notify() {\n\t\tfor (const listener of listeners) listener();\n\t}\n\treturn {\n\t\topen(member) {\n\t\t\tif (current === member) return;\n\t\t\tconst previous = current;\n\t\t\tcurrent = member;\n\t\t\tprevious?.close(\"group-open\");\n\t\t\tnotify();\n\t\t},\n\t\tclose(member) {\n\t\t\tif (current !== member) return;\n\t\t\tcurrent = null;\n\t\t\tnotify();\n\t\t},\n\t\tisOpenFor(trigger) {\n\t\t\treturn trigger !== null && current?.triggerElement === trigger;\n\t\t},\n\t\tsubscribe(listener) {\n\t\t\tlisteners.add(listener);\n\t\t\treturn () => listeners.delete(listener);\n\t\t}\n\t};\n}\n//#endregion\nexport { createPopupGroup };\n\n//# sourceMappingURL=popup-group.js.map","const labelText = {\n\tkey: `container.label`,\n\ttext: \"Media player\"\n};\n//#endregion\nexport { labelText };\n\n//# sourceMappingURL=container.js.map","import type { PopupGroup } from '@videojs/core/dom';\nimport { type Context, createContext } from '@videojs/element/context';\n\nconst POPUP_GROUP_CONTEXT_KEY = Symbol.for('@videojs/popup-group');\n\nexport type PopupGroupContext = Context<typeof POPUP_GROUP_CONTEXT_KEY, PopupGroup>;\n\nexport const popupGroupContext = createContext<PopupGroup, typeof POPUP_GROUP_CONTEXT_KEY>(POPUP_GROUP_CONTEXT_KEY);\n","import { type AnyPlayerStore, createPopupGroup, type MediaContainer, type PlayerStore } from '@videojs/core/dom';\nimport { ContextConsumer, ContextProvider } from '@videojs/element/context';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport { type ContainerContext, containerContext, type PlayerContext, playerContext } from '../player/context';\nimport { popupGroupContext } from '../player/popup-group-context';\nimport type { PlayerConsumer, PlayerConsumerConstructor } from './types';\n\nexport interface ContainerMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n containerContext: ContainerContext;\n}\n\nexport type ContainerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerConsumerConstructor<Store>;\n\n/**\n * Create a mixin that consumes player context and registers itself as the\n * container element with the provider via `containerContext`.\n *\n * @param config - Container configuration with player and container contexts.\n */\nexport function createContainerMixin<Store extends PlayerStore>(\n config: ContainerMixinConfig<Store>\n): ContainerMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerContainerElement extends BaseClass implements PlayerConsumer<Store>, MediaContainer {\n #contextStore: Store | null = null;\n #setContainer: ((container: MediaContainer | null) => void) | null = null;\n #popupGroup = createPopupGroup();\n #popupGroupProvider = new ContextProvider(this, {\n context: popupGroupContext,\n initialValue: this.#popupGroup,\n });\n\n constructor(...args: any[]) {\n super(...args);\n\n new ContextConsumer(this, {\n context: config.playerContext,\n callback: (value) => {\n this.#contextStore = value ?? null;\n },\n subscribe: true,\n });\n\n new ContextConsumer(this, {\n context: config.containerContext,\n callback: (value) => {\n this.#setContainer = value?.setContainer ?? null;\n if (this.isConnected) this.#setContainer?.(this);\n },\n subscribe: true,\n });\n }\n\n get store(): Store | null {\n return this.#contextStore;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#popupGroupProvider.setValue(this.#popupGroup);\n this.#setContainer?.(this);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#setContainer?.(null);\n }\n }\n\n return PlayerContainerElement;\n };\n}\n\n/**\n * Player container mixin configured for the default player contexts.\n *\n * Import this convenience mixin directly when composing a custom container.\n */\nexport const ContainerMixin = createContainerMixin<AnyPlayerStore>({\n playerContext,\n containerContext,\n});\n","import { applyContainerAttrs, focusContainer } from '@videojs/core/dom';\nimport { labelText } from '@videojs/core/i18n/text/container';\nimport type { PropertyValues } from '@videojs/element';\nimport { listen } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../i18n/context';\nimport { I18nController } from '../i18n/controller';\nimport { ContainerMixin } from '../store/container-mixin';\nimport { MediaElement } from '../ui/media-element';\n\nexport class MediaContainerElement extends ContainerMixin(MediaElement) {\n static readonly tagName = 'media-container';\n\n readonly #i18n = new I18nController(this, i18nContext);\n #disconnect: AbortController | null = null;\n #label: string | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\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 super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n this.#applyLabel();\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 return;\n }\n\n const label = this.#i18n.value(labelText);\n this.setAttribute('aria-label', label);\n this.#label = label;\n }\n\n #onPointerUp = (): void => {\n focusContainer(this);\n };\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -0,0 +1,376 @@
1
+ import { n as ContextConsumer, t as MediaElement } from "./media-element-CJY3JIgc.js";
2
+ import { a as createContext, o as ContextRequestEvent, r as playerContext, t as containerContext } from "./context-OhQY847V.js";
3
+ import { t as listen } from "./listen-CdeggIF8.js";
4
+ import { DEFAULT_LOCALE, createTranslator, getI18nTranslations, onI18nRegistryChange } from "./i18n.dev.js";
5
+
6
+ //#region ../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/development/lib/value-notifier.js
7
+ /**
8
+ * @license
9
+ * Copyright 2021 Google LLC
10
+ * SPDX-License-Identifier: BSD-3-Clause
11
+ */
12
+ /**
13
+ * A simple class which stores a value, and triggers registered callbacks when
14
+ * the value is changed via its setter.
15
+ *
16
+ * An implementor might use other observable patterns such as MobX or Redux to
17
+ * get behavior like this. But this is a pretty minimal approach that will
18
+ * likely work for a number of use cases.
19
+ */
20
+ var ValueNotifier = class {
21
+ get value() {
22
+ return this._value;
23
+ }
24
+ set value(v) {
25
+ this.setValue(v);
26
+ }
27
+ setValue(v, force = false) {
28
+ const update = force || !Object.is(v, this._value);
29
+ this._value = v;
30
+ if (update) this.updateObservers();
31
+ }
32
+ constructor(defaultValue) {
33
+ this.subscriptions = /* @__PURE__ */ new Map();
34
+ this.updateObservers = () => {
35
+ for (const [callback, { disposer }] of this.subscriptions) callback(this._value, disposer);
36
+ };
37
+ if (defaultValue !== void 0) this.value = defaultValue;
38
+ }
39
+ addCallback(callback, consumerHost, subscribe) {
40
+ if (!subscribe) {
41
+ callback(this.value);
42
+ return;
43
+ }
44
+ if (!this.subscriptions.has(callback)) this.subscriptions.set(callback, {
45
+ disposer: () => {
46
+ this.subscriptions.delete(callback);
47
+ },
48
+ consumerHost
49
+ });
50
+ const { disposer } = this.subscriptions.get(callback);
51
+ callback(this.value, disposer);
52
+ }
53
+ clearCallbacks() {
54
+ this.subscriptions.clear();
55
+ }
56
+ };
57
+
58
+ //#endregion
59
+ //#region ../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-provider.js
60
+ /**
61
+ * @license
62
+ * Copyright 2021 Google LLC
63
+ * SPDX-License-Identifier: BSD-3-Clause
64
+ */
65
+ var ContextProviderEvent = class extends Event {
66
+ /**
67
+ *
68
+ * @param context the context which this provider can provide
69
+ * @param contextTarget the original context target of the provider
70
+ */
71
+ constructor(context, contextTarget) {
72
+ super("context-provider", {
73
+ bubbles: true,
74
+ composed: true
75
+ });
76
+ this.context = context;
77
+ this.contextTarget = contextTarget;
78
+ }
79
+ };
80
+ /**
81
+ * A ReactiveController which adds context provider behavior to a
82
+ * custom element.
83
+ *
84
+ * This controller simply listens to the `context-request` event when
85
+ * the host is connected to the DOM and registers the received callbacks
86
+ * against its observable Context implementation.
87
+ *
88
+ * The controller may also be attached to any HTML element in which case it's
89
+ * up to the user to call hostConnected() when attached to the DOM. This is
90
+ * done automatically for any custom elements implementing
91
+ * ReactiveControllerHost.
92
+ */
93
+ var ContextProvider = class extends ValueNotifier {
94
+ constructor(host, contextOrOptions, initialValue) {
95
+ super(contextOrOptions.context !== void 0 ? contextOrOptions.initialValue : initialValue);
96
+ this.onContextRequest = (ev) => {
97
+ if (ev.context !== this.context) return;
98
+ const consumerHost = ev.contextTarget ?? ev.composedPath()[0];
99
+ if (consumerHost === this.host) return;
100
+ ev.stopPropagation();
101
+ this.addCallback(ev.callback, consumerHost, ev.subscribe);
102
+ };
103
+ /**
104
+ * When we get a provider request event, that means a child of this element
105
+ * has just woken up. If it's a provider of our context, then we may need to
106
+ * re-parent our subscriptions, because is a more specific provider than us
107
+ * for its subtree.
108
+ */
109
+ this.onProviderRequest = (ev) => {
110
+ if (ev.context !== this.context) return;
111
+ if ((ev.contextTarget ?? ev.composedPath()[0]) === this.host) return;
112
+ const seen = /* @__PURE__ */ new Set();
113
+ for (const [callback, { consumerHost }] of this.subscriptions) {
114
+ if (seen.has(callback)) continue;
115
+ seen.add(callback);
116
+ consumerHost.dispatchEvent(new ContextRequestEvent(this.context, consumerHost, callback, true));
117
+ }
118
+ ev.stopPropagation();
119
+ };
120
+ this.host = host;
121
+ if (contextOrOptions.context !== void 0) this.context = contextOrOptions.context;
122
+ else this.context = contextOrOptions;
123
+ this.attachListeners();
124
+ this.host.addController?.(this);
125
+ }
126
+ attachListeners() {
127
+ this.host.addEventListener("context-request", this.onContextRequest);
128
+ this.host.addEventListener("context-provider", this.onProviderRequest);
129
+ }
130
+ hostConnected() {
131
+ this.host.dispatchEvent(new ContextProviderEvent(this.context, this.host));
132
+ }
133
+ };
134
+
135
+ //#endregion
136
+ //#region src/i18n/context.ts
137
+ const I18N_CONTEXT_KEY = Symbol.for("@videojs/i18n");
138
+ /**
139
+ * The default i18n context instance for consuming the player store in controllers.
140
+ *
141
+ * @public
142
+ */
143
+ const i18nContext = createContext(I18N_CONTEXT_KEY);
144
+
145
+ //#endregion
146
+ //#region ../utils/dist/dom/focus.js
147
+ function getDeepActiveElement(root = document) {
148
+ let active = root.activeElement;
149
+ while (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;
150
+ return active;
151
+ }
152
+
153
+ //#endregion
154
+ //#region ../utils/dist/dom/predicates.js
155
+ function isDocument(value) {
156
+ return value instanceof Node && value.nodeType === 9;
157
+ }
158
+ function isShadowRoot(value) {
159
+ return value instanceof Node && value.nodeType === 11 && "host" in value;
160
+ }
161
+
162
+ //#endregion
163
+ //#region ../utils/dist/dom/tree.js
164
+ function containsComposed(root, element) {
165
+ let current = element;
166
+ while (current) {
167
+ if (current === root || root.contains(current)) return true;
168
+ const nodeRoot = current.getRootNode();
169
+ current = isShadowRoot(nodeRoot) ? nodeRoot.host : current.parentNode;
170
+ }
171
+ return false;
172
+ }
173
+
174
+ //#endregion
175
+ //#region src/i18n/controller.ts
176
+ let fallbackTranslator;
177
+ function getFallbackTranslator() {
178
+ fallbackTranslator ??= createTranslator(getI18nTranslations(DEFAULT_LOCALE), DEFAULT_LOCALE);
179
+ return fallbackTranslator;
180
+ }
181
+ var I18nController = class {
182
+ #host;
183
+ #consumer;
184
+ #unsubscribeRegistry;
185
+ constructor(host, context) {
186
+ this.#host = host;
187
+ this.#consumer = new ContextConsumer(host, {
188
+ context,
189
+ callback: () => this.#host.requestUpdate(),
190
+ subscribe: true
191
+ });
192
+ host.addController(this);
193
+ }
194
+ get value() {
195
+ return this.#consumer.value?.translator ?? getFallbackTranslator();
196
+ }
197
+ get locale() {
198
+ return this.#consumer.value?.locale ?? DEFAULT_LOCALE;
199
+ }
200
+ hostConnected() {
201
+ fallbackTranslator = void 0;
202
+ this.#unsubscribeRegistry = onI18nRegistryChange(() => {
203
+ fallbackTranslator = void 0;
204
+ if (!this.#consumer.value) this.#host.requestUpdate();
205
+ });
206
+ }
207
+ hostDisconnected() {
208
+ this.#unsubscribeRegistry?.();
209
+ this.#unsubscribeRegistry = void 0;
210
+ }
211
+ };
212
+
213
+ //#endregion
214
+ //#region ../core/dist/dev/dom/ui/container-attrs.js
215
+ const DEFAULT_CONTAINER_ROLE = "group";
216
+ function applyContainerAttrs(element) {
217
+ if (!element.hasAttribute("role")) element.setAttribute("role", DEFAULT_CONTAINER_ROLE);
218
+ if (!element.hasAttribute("tabindex")) element.setAttribute("tabindex", String(0));
219
+ }
220
+ function focusContainer(element) {
221
+ const active = getDeepActiveElement(element.ownerDocument);
222
+ if (!active || active === element.ownerDocument.body || !containsComposed(element, active)) element.focus({ preventScroll: true });
223
+ }
224
+
225
+ //#endregion
226
+ //#region ../core/dist/dev/dom/ui/popover/popup-group.js
227
+ function createPopupGroup() {
228
+ let current = null;
229
+ const listeners = /* @__PURE__ */ new Set();
230
+ function notify() {
231
+ for (const listener of listeners) listener();
232
+ }
233
+ return {
234
+ open(member) {
235
+ if (current === member) return;
236
+ const previous = current;
237
+ current = member;
238
+ previous?.close("group-open");
239
+ notify();
240
+ },
241
+ close(member) {
242
+ if (current !== member) return;
243
+ current = null;
244
+ notify();
245
+ },
246
+ isOpenFor(trigger) {
247
+ return trigger !== null && current?.triggerElement === trigger;
248
+ },
249
+ subscribe(listener) {
250
+ listeners.add(listener);
251
+ return () => listeners.delete(listener);
252
+ }
253
+ };
254
+ }
255
+
256
+ //#endregion
257
+ //#region ../core/dist/dev/i18n/text/container.js
258
+ const labelText = {
259
+ key: `container.label`,
260
+ text: "Media player"
261
+ };
262
+
263
+ //#endregion
264
+ //#region src/player/popup-group-context.ts
265
+ const POPUP_GROUP_CONTEXT_KEY = Symbol.for("@videojs/popup-group");
266
+ const popupGroupContext = createContext(POPUP_GROUP_CONTEXT_KEY);
267
+
268
+ //#endregion
269
+ //#region src/store/container-mixin.ts
270
+ /**
271
+ * Create a mixin that consumes player context and registers itself as the
272
+ * container element with the provider via `containerContext`.
273
+ *
274
+ * @param config - Container configuration with player and container contexts.
275
+ */
276
+ function createContainerMixin(config) {
277
+ return (BaseClass) => {
278
+ class PlayerContainerElement extends BaseClass {
279
+ #contextStore = null;
280
+ #setContainer = null;
281
+ #popupGroup = createPopupGroup();
282
+ #popupGroupProvider = new ContextProvider(this, {
283
+ context: popupGroupContext,
284
+ initialValue: this.#popupGroup
285
+ });
286
+ constructor(...args) {
287
+ super(...args);
288
+ new ContextConsumer(this, {
289
+ context: config.playerContext,
290
+ callback: (value) => {
291
+ this.#contextStore = value ?? null;
292
+ },
293
+ subscribe: true
294
+ });
295
+ new ContextConsumer(this, {
296
+ context: config.containerContext,
297
+ callback: (value) => {
298
+ this.#setContainer = value?.setContainer ?? null;
299
+ if (this.isConnected) this.#setContainer?.(this);
300
+ },
301
+ subscribe: true
302
+ });
303
+ }
304
+ get store() {
305
+ return this.#contextStore;
306
+ }
307
+ connectedCallback() {
308
+ super.connectedCallback();
309
+ this.#popupGroupProvider.setValue(this.#popupGroup);
310
+ this.#setContainer?.(this);
311
+ }
312
+ disconnectedCallback() {
313
+ super.disconnectedCallback();
314
+ this.#setContainer?.(null);
315
+ }
316
+ }
317
+ return PlayerContainerElement;
318
+ };
319
+ }
320
+ /**
321
+ * Player container mixin configured for the default player contexts.
322
+ *
323
+ * Import this convenience mixin directly when composing a custom container.
324
+ */
325
+ const ContainerMixin = createContainerMixin({
326
+ playerContext,
327
+ containerContext
328
+ });
329
+
330
+ //#endregion
331
+ //#region src/media/container-element.ts
332
+ var MediaContainerElement = class extends ContainerMixin(MediaElement) {
333
+ static {
334
+ this.tagName = "media-container";
335
+ }
336
+ #i18n = new I18nController(this, i18nContext);
337
+ #disconnect = null;
338
+ #label = null;
339
+ connectedCallback() {
340
+ super.connectedCallback();
341
+ applyContainerAttrs(this);
342
+ this.#applyLabel();
343
+ this.#disconnect = new AbortController();
344
+ listen(this, "pointerup", this.#onPointerUp, { signal: this.#disconnect.signal });
345
+ }
346
+ disconnectedCallback() {
347
+ super.disconnectedCallback();
348
+ this.#disconnect?.abort();
349
+ this.#disconnect = null;
350
+ }
351
+ update(changed) {
352
+ super.update(changed);
353
+ this.#applyLabel();
354
+ }
355
+ #applyLabel() {
356
+ const current = this.getAttribute("aria-label");
357
+ if (current && current !== this.#label) return;
358
+ if (this.hasAttribute("aria-labelledby")) {
359
+ if (current === this.#label) {
360
+ this.removeAttribute("aria-label");
361
+ this.#label = null;
362
+ }
363
+ return;
364
+ }
365
+ const label = this.#i18n.value(labelText);
366
+ this.setAttribute("aria-label", label);
367
+ this.#label = label;
368
+ }
369
+ #onPointerUp = () => {
370
+ focusContainer(this);
371
+ };
372
+ };
373
+
374
+ //#endregion
375
+ export { containsComposed as a, i18nContext as c, getFallbackTranslator as i, ContextProvider as l, popupGroupContext as n, isDocument as o, I18nController as r, getDeepActiveElement as s, MediaContainerElement as t };
376
+ //# sourceMappingURL=container-element-HHK_KZOE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-element-HHK_KZOE.js","names":["#host","#consumer","#unsubscribeRegistry","#popupGroup","#contextStore","#setContainer","#popupGroupProvider","#i18n","#applyLabel","#disconnect","#onPointerUp","#label"],"sources":["../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/development/lib/value-notifier.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-provider.js","../src/i18n/context.ts","../../utils/dist/dom/focus.js","../../utils/dist/dom/predicates.js","../../utils/dist/dom/tree.js","../src/i18n/controller.ts","../../core/dist/dev/dom/ui/container-attrs.js","../../core/dist/dev/dom/ui/popover/popup-group.js","../../core/dist/dev/i18n/text/container.js","../src/player/popup-group-context.ts","../src/store/container-mixin.ts","../src/media/container-element.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * A simple class which stores a value, and triggers registered callbacks when\n * the value is changed via its setter.\n *\n * An implementor might use other observable patterns such as MobX or Redux to\n * get behavior like this. But this is a pretty minimal approach that will\n * likely work for a number of use cases.\n */\nexport class ValueNotifier {\n get value() {\n return this._value;\n }\n set value(v) {\n this.setValue(v);\n }\n setValue(v, force = false) {\n const update = force || !Object.is(v, this._value);\n this._value = v;\n if (update) {\n this.updateObservers();\n }\n }\n constructor(defaultValue) {\n this.subscriptions = new Map();\n this.updateObservers = () => {\n for (const [callback, { disposer }] of this.subscriptions) {\n callback(this._value, disposer);\n }\n };\n if (defaultValue !== undefined) {\n this.value = defaultValue;\n }\n }\n addCallback(callback, consumerHost, subscribe) {\n if (!subscribe) {\n // just call the callback once and we're done\n callback(this.value);\n return;\n }\n if (!this.subscriptions.has(callback)) {\n this.subscriptions.set(callback, {\n disposer: () => {\n this.subscriptions.delete(callback);\n },\n consumerHost,\n });\n }\n const { disposer } = this.subscriptions.get(callback);\n callback(this.value, disposer);\n }\n clearCallbacks() {\n this.subscriptions.clear();\n }\n}\n//# sourceMappingURL=value-notifier.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { ContextRequestEvent } from '../context-request-event.js';\nimport { ValueNotifier } from '../value-notifier.js';\nexport class ContextProviderEvent extends Event {\n /**\n *\n * @param context the context which this provider can provide\n * @param contextTarget the original context target of the provider\n */\n constructor(context, contextTarget) {\n super('context-provider', { bubbles: true, composed: true });\n this.context = context;\n this.contextTarget = contextTarget;\n }\n}\n/**\n * A ReactiveController which adds context provider behavior to a\n * custom element.\n *\n * This controller simply listens to the `context-request` event when\n * the host is connected to the DOM and registers the received callbacks\n * against its observable Context implementation.\n *\n * The controller may also be attached to any HTML element in which case it's\n * up to the user to call hostConnected() when attached to the DOM. This is\n * done automatically for any custom elements implementing\n * ReactiveControllerHost.\n */\nexport class ContextProvider extends ValueNotifier {\n constructor(host, contextOrOptions, initialValue) {\n super(contextOrOptions.context !== undefined\n ? contextOrOptions.initialValue\n : initialValue);\n this.onContextRequest = (ev) => {\n // Only call the callback if the context matches.\n if (ev.context !== this.context) {\n return;\n }\n // Also, in case an element is a consumer AND a provider\n // of the same context, we want to avoid the element to self-register.\n const consumerHost = ev.contextTarget ?? ev.composedPath()[0];\n if (consumerHost === this.host) {\n return;\n }\n ev.stopPropagation();\n this.addCallback(ev.callback, consumerHost, ev.subscribe);\n };\n /**\n * When we get a provider request event, that means a child of this element\n * has just woken up. If it's a provider of our context, then we may need to\n * re-parent our subscriptions, because is a more specific provider than us\n * for its subtree.\n */\n this.onProviderRequest = (ev) => {\n // Ignore events when the context doesn't match.\n if (ev.context !== this.context) {\n return;\n }\n // Also, in case an element is a consumer AND a provider\n // of the same context it shouldn't provide to itself.\n const childProviderHost = ev.contextTarget ?? ev.composedPath()[0];\n if (childProviderHost === this.host) {\n return;\n }\n // Re-parent all of our subscriptions in case this new child provider\n // should take them over.\n const seen = new Set();\n for (const [callback, { consumerHost }] of this.subscriptions) {\n // Prevent infinite loops in the case where a one host element\n // is providing the same context multiple times.\n //\n // While normally it's a no-op to attempt to re-parent a subscription\n // that already has its proper parent, in the case where there's more\n // than one ValueProvider for the same context on the same hostElement,\n // they will each call the consumer, and since they will each have their\n // own dispose function, a well behaved consumer will notice the change\n // in dispose function and call their old one.\n //\n // This will cause the subscriptions to thrash, but worse, without this\n // set check here, we can end up in an infinite loop, as we add and remove\n // the same subscriptions onto the end of the map over and over.\n if (seen.has(callback)) {\n continue;\n }\n seen.add(callback);\n consumerHost.dispatchEvent(new ContextRequestEvent(this.context, consumerHost, callback, true));\n }\n ev.stopPropagation();\n };\n this.host = host;\n if (contextOrOptions.context !== undefined) {\n this.context = contextOrOptions.context;\n }\n else {\n this.context = contextOrOptions;\n }\n this.attachListeners();\n this.host.addController?.(this);\n }\n attachListeners() {\n this.host.addEventListener('context-request', this.onContextRequest);\n this.host.addEventListener('context-provider', this.onProviderRequest);\n }\n hostConnected() {\n // emit an event to signal a provider is available for this context\n this.host.dispatchEvent(new ContextProviderEvent(this.context, this.host));\n }\n}\n//# sourceMappingURL=context-provider.js.map","import type { Locale, Translator } from '@videojs/core/i18n';\nimport { type Context, createContext } from '@videojs/element/context';\n\n// ----------------------------------------\n// i18n Context\n// ----------------------------------------\n\nexport const I18N_CONTEXT_KEY = Symbol.for('@videojs/i18n');\n\nexport type I18nContextValue = {\n translator: Translator;\n locale: Locale;\n};\n\n/** Per-factory context identity (see {@link createI18n}). */\nexport type I18nContext = Context<symbol, I18nContextValue>;\n\n/**\n * The default i18n context instance for consuming the player store in controllers.\n *\n * @public\n */\nexport const i18nContext = createContext<I18nContextValue, typeof I18N_CONTEXT_KEY>(I18N_CONTEXT_KEY);\n","//#region src/dom/focus.ts\nfunction getDeepActiveElement(root = document) {\n\tlet active = root.activeElement;\n\twhile (active?.shadowRoot?.activeElement) active = active.shadowRoot.activeElement;\n\treturn active;\n}\n//#endregion\nexport { getDeepActiveElement };\n\n//# sourceMappingURL=focus.js.map","//#region src/dom/predicates.ts\nfunction isDocument(value) {\n\treturn value instanceof Node && value.nodeType === 9;\n}\nfunction isShadowRoot(value) {\n\treturn value instanceof Node && value.nodeType === 11 && \"host\" in value;\n}\nfunction isHTMLVideoElement(value) {\n\treturn value instanceof HTMLVideoElement;\n}\nfunction isHTMLAudioElement(value) {\n\treturn value instanceof HTMLAudioElement;\n}\nfunction isHTMLMediaElement(value) {\n\treturn value instanceof HTMLMediaElement;\n}\n//#endregion\nexport { isDocument, isHTMLAudioElement, isHTMLMediaElement, isHTMLVideoElement, isShadowRoot };\n\n//# sourceMappingURL=predicates.js.map","import { isShadowRoot } from \"./predicates.js\";\n//#region src/dom/tree.ts\nfunction containsComposed(root, element) {\n\tlet current = element;\n\twhile (current) {\n\t\tif (current === root || root.contains(current)) return true;\n\t\tconst nodeRoot = current.getRootNode();\n\t\tcurrent = isShadowRoot(nodeRoot) ? nodeRoot.host : current.parentNode;\n\t}\n\treturn false;\n}\n//#endregion\nexport { containsComposed };\n\n//# sourceMappingURL=tree.js.map","import {\n createTranslator,\n DEFAULT_LOCALE,\n getI18nTranslations,\n type Locale,\n onI18nRegistryChange,\n type Translator,\n} from '@videojs/core/i18n';\nimport type { ReactiveController, ReactiveControllerHost } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { I18nContext } from './context';\n\nlet fallbackTranslator: Translator | undefined;\n\nexport type I18nControllerHost = ReactiveControllerHost & HTMLElement;\n\nexport function getFallbackTranslator(): Translator {\n fallbackTranslator ??= createTranslator(getI18nTranslations(DEFAULT_LOCALE), DEFAULT_LOCALE);\n return fallbackTranslator;\n}\n\nexport class I18nController implements ReactiveController {\n readonly #host: I18nControllerHost;\n readonly #consumer: ContextConsumer<I18nContext, I18nControllerHost>;\n #unsubscribeRegistry: (() => void) | undefined;\n\n constructor(host: I18nControllerHost, context: I18nContext) {\n this.#host = host;\n this.#consumer = new ContextConsumer(host, {\n context,\n callback: () => this.#host.requestUpdate(),\n subscribe: true,\n });\n host.addController(this);\n }\n\n get value(): Translator {\n return this.#consumer.value?.translator ?? getFallbackTranslator();\n }\n\n get locale(): Locale {\n return this.#consumer.value?.locale ?? DEFAULT_LOCALE;\n }\n\n hostConnected(): void {\n fallbackTranslator = undefined;\n this.#unsubscribeRegistry = onI18nRegistryChange(() => {\n fallbackTranslator = undefined;\n if (!this.#consumer.value) {\n this.#host.requestUpdate();\n }\n });\n }\n\n hostDisconnected(): void {\n this.#unsubscribeRegistry?.();\n this.#unsubscribeRegistry = undefined;\n }\n}\n\nexport namespace I18nController {\n export type Constructor = typeof I18nController;\n export type Host = I18nControllerHost;\n}\n","import { containsComposed, getDeepActiveElement } from \"@videojs/utils/dom\";\n//#region src/dom/ui/container-attrs.ts\nconst DEFAULT_CONTAINER_ROLE = \"group\";\nconst DEFAULT_CONTAINER_TAB_INDEX = 0;\nfunction applyContainerAttrs(element) {\n\tif (!element.hasAttribute(\"role\")) element.setAttribute(\"role\", DEFAULT_CONTAINER_ROLE);\n\tif (!element.hasAttribute(\"tabindex\")) element.setAttribute(\"tabindex\", String(0));\n}\nfunction focusContainer(element) {\n\tconst active = getDeepActiveElement(element.ownerDocument);\n\tif (!active || active === element.ownerDocument.body || !containsComposed(element, active)) element.focus({ preventScroll: true });\n}\n//#endregion\nexport { DEFAULT_CONTAINER_ROLE, DEFAULT_CONTAINER_TAB_INDEX, applyContainerAttrs, focusContainer };\n\n//# sourceMappingURL=container-attrs.js.map","//#region src/dom/ui/popover/popup-group.ts\nfunction createPopupGroup() {\n\tlet current = null;\n\tconst listeners = /* @__PURE__ */ new Set();\n\tfunction notify() {\n\t\tfor (const listener of listeners) listener();\n\t}\n\treturn {\n\t\topen(member) {\n\t\t\tif (current === member) return;\n\t\t\tconst previous = current;\n\t\t\tcurrent = member;\n\t\t\tprevious?.close(\"group-open\");\n\t\t\tnotify();\n\t\t},\n\t\tclose(member) {\n\t\t\tif (current !== member) return;\n\t\t\tcurrent = null;\n\t\t\tnotify();\n\t\t},\n\t\tisOpenFor(trigger) {\n\t\t\treturn trigger !== null && current?.triggerElement === trigger;\n\t\t},\n\t\tsubscribe(listener) {\n\t\t\tlisteners.add(listener);\n\t\t\treturn () => listeners.delete(listener);\n\t\t}\n\t};\n}\n//#endregion\nexport { createPopupGroup };\n\n//# sourceMappingURL=popup-group.js.map","const labelText = {\n\tkey: `container.label`,\n\ttext: \"Media player\"\n};\n//#endregion\nexport { labelText };\n\n//# sourceMappingURL=container.js.map","import type { PopupGroup } from '@videojs/core/dom';\nimport { type Context, createContext } from '@videojs/element/context';\n\nconst POPUP_GROUP_CONTEXT_KEY = Symbol.for('@videojs/popup-group');\n\nexport type PopupGroupContext = Context<typeof POPUP_GROUP_CONTEXT_KEY, PopupGroup>;\n\nexport const popupGroupContext = createContext<PopupGroup, typeof POPUP_GROUP_CONTEXT_KEY>(POPUP_GROUP_CONTEXT_KEY);\n","import { type AnyPlayerStore, createPopupGroup, type MediaContainer, type PlayerStore } from '@videojs/core/dom';\nimport { ContextConsumer, ContextProvider } from '@videojs/element/context';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport { type ContainerContext, containerContext, type PlayerContext, playerContext } from '../player/context';\nimport { popupGroupContext } from '../player/popup-group-context';\nimport type { PlayerConsumer, PlayerConsumerConstructor } from './types';\n\nexport interface ContainerMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n containerContext: ContainerContext;\n}\n\nexport type ContainerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerConsumerConstructor<Store>;\n\n/**\n * Create a mixin that consumes player context and registers itself as the\n * container element with the provider via `containerContext`.\n *\n * @param config - Container configuration with player and container contexts.\n */\nexport function createContainerMixin<Store extends PlayerStore>(\n config: ContainerMixinConfig<Store>\n): ContainerMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerContainerElement extends BaseClass implements PlayerConsumer<Store>, MediaContainer {\n #contextStore: Store | null = null;\n #setContainer: ((container: MediaContainer | null) => void) | null = null;\n #popupGroup = createPopupGroup();\n #popupGroupProvider = new ContextProvider(this, {\n context: popupGroupContext,\n initialValue: this.#popupGroup,\n });\n\n constructor(...args: any[]) {\n super(...args);\n\n new ContextConsumer(this, {\n context: config.playerContext,\n callback: (value) => {\n this.#contextStore = value ?? null;\n },\n subscribe: true,\n });\n\n new ContextConsumer(this, {\n context: config.containerContext,\n callback: (value) => {\n this.#setContainer = value?.setContainer ?? null;\n if (this.isConnected) this.#setContainer?.(this);\n },\n subscribe: true,\n });\n }\n\n get store(): Store | null {\n return this.#contextStore;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#popupGroupProvider.setValue(this.#popupGroup);\n this.#setContainer?.(this);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#setContainer?.(null);\n }\n }\n\n return PlayerContainerElement;\n };\n}\n\n/**\n * Player container mixin configured for the default player contexts.\n *\n * Import this convenience mixin directly when composing a custom container.\n */\nexport const ContainerMixin = createContainerMixin<AnyPlayerStore>({\n playerContext,\n containerContext,\n});\n","import { applyContainerAttrs, focusContainer } from '@videojs/core/dom';\nimport { labelText } from '@videojs/core/i18n/text/container';\nimport type { PropertyValues } from '@videojs/element';\nimport { listen } from '@videojs/utils/dom';\n\nimport { i18nContext } from '../i18n/context';\nimport { I18nController } from '../i18n/controller';\nimport { ContainerMixin } from '../store/container-mixin';\nimport { MediaElement } from '../ui/media-element';\n\nexport class MediaContainerElement extends ContainerMixin(MediaElement) {\n static readonly tagName = 'media-container';\n\n readonly #i18n = new I18nController(this, i18nContext);\n #disconnect: AbortController | null = null;\n #label: string | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\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 super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n this.#applyLabel();\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 return;\n }\n\n const label = this.#i18n.value(labelText);\n this.setAttribute('aria-label', label);\n this.#label = label;\n }\n\n #onPointerUp = (): void => {\n focusContainer(this);\n };\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}