@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 @@
1
+ {"version":3,"file":"create-player-DK9WOywd.js","names":["#base","#keys","hasOwnProp","#current","#markPending","#listeners","#pending","TAP_THRESHOLD","#target","#bindings","#subscribers","#recognizers","#connect","#maybeDisconnect","#disconnect","#host","#state","#selector","#cached","#subscribe","#unsubscribe","#onAvailable","#directStore","#consumer","#host","#selector","#accessor","#connect","#snapshot","#host","#selector","#consumer","#connect","#store","#media","#mediaProvider","#setMedia","#tryAttach","#container","#containerProvider","#setContainer","#store","#syncInitialConfig","#playerProvider","#queueFallbackDiscovery","#detachStore","#detach","#configuredStore","#fallbackQueued"],"sources":["../../utils/dist/object/shallow-equal.js","../../utils/dist/dom/event.js","../../utils/dist/dom/interactive.js","../../utils/dist/dom/time-ranges.js","../../store/dist/dev/core/abort-controller-registry.js","../../store/dist/dev/core/combine.js","../../store/dist/dev/core/errors.js","../../store/dist/dev/core/slice.js","../../store/dist/dev/core/state.js","../../store/dist/dev/core/store.js","../../core/dist/dev/dom/feature.js","../../media/dist/dev/core/predicate.js","../../core/dist/dev/dom/store/features/audio-track.js","../../core/dist/dev/dom/store/features/buffer.js","../../core/dist/dev/dom/gesture/region.js","../../core/dist/dev/dom/gesture/coordinator.js","../../core/dist/dev/dom/presentation/remote-playback.js","../../core/dist/dev/dom/store/features/controls.js","../../core/dist/dev/dom/store/features/error.js","../../core/dist/dev/dom/presentation/fullscreen.js","../../core/dist/dev/dom/presentation/pip.js","../../core/dist/dev/dom/store/features/fullscreen.js","../../core/dist/dev/dom/store/features/live.js","../../core/dist/dev/dom/store/features/metadata.js","../../core/dist/dev/dom/store/features/pip.js","../../core/dist/dev/dom/store/features/playback.js","../../core/dist/dev/dom/store/features/playback-rate.js","../../core/dist/dev/dom/store/features/quality.js","../../core/dist/dev/dom/store/features/remote-playback.js","../../core/dist/dev/dom/store/features/source.js","../../core/dist/dev/dom/store/features/text-track.js","../../core/dist/dev/dom/store/signal-keys.js","../../core/dist/dev/dom/store/features/time.js","../../core/dist/dev/dom/store/features/volume.js","../../core/dist/dev/dom/store/features/presets.js","../../store/dist/dev/html/controllers/snapshot-controller.js","../../store/dist/dev/html/store-accessor.js","../../store/dist/dev/html/controllers/store-controller.js","../src/player/player-controller.ts","../src/store/provider-mixin.ts","../src/player/create-player.ts"],"sourcesContent":["//#region src/object/shallow-equal.ts\nconst hasOwn = Object.prototype.hasOwnProperty;\n/** Shallowly compares values, including own string and symbol keys. */\nfunction shallowEqual(a, b) {\n\tif (Object.is(a, b)) return true;\n\tif (typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) return false;\n\tconst keysA = Reflect.ownKeys(a);\n\tconst keysB = Reflect.ownKeys(b);\n\tif (keysA.length !== keysB.length) return false;\n\tfor (const key of keysA) if (!hasOwn.call(b, key) || !Object.is(a[key], b[key])) return false;\n\treturn true;\n}\n//#endregion\nexport { shallowEqual };\n\n//# sourceMappingURL=shallow-equal.js.map","//#region src/dom/event.ts\n/** Resolve the deepest event target, preferring composedPath for shadow DOM. */\nfunction resolveEventTarget(event) {\n\tconst path = event.composedPath();\n\treturn path.length > 0 ? path[0] : event.target;\n}\nfunction onEvent(target, type, options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst handleAbort = () => {\n\t\t\treject(options?.signal?.reason ?? \"Aborted\");\n\t\t};\n\t\tif (options?.signal?.aborted) {\n\t\t\thandleAbort();\n\t\t\treturn;\n\t\t}\n\t\toptions?.signal?.addEventListener(\"abort\", handleAbort, { once: true });\n\t\ttarget.addEventListener(type, (event) => {\n\t\t\toptions?.signal?.removeEventListener(\"abort\", handleAbort);\n\t\t\tresolve(event);\n\t\t}, {\n\t\t\t...options,\n\t\t\tonce: true\n\t\t});\n\t});\n}\n//#endregion\nexport { onEvent, resolveEventTarget };\n\n//# sourceMappingURL=event.js.map","import { resolveEventTarget } from \"./event.js\";\n//#region src/dom/interactive.ts\nconst INTERACTIVE_SELECTOR = [\n\t\"button\",\n\t\"input\",\n\t\"select\",\n\t\"textarea\",\n\t\"a[href]\",\n\t\"[role=\\\"button\\\"]\",\n\t\"[role=\\\"menu\\\"]\",\n\t\"[role=\\\"menuitem\\\"]\",\n\t\"[role=\\\"menuitemcheckbox\\\"]\",\n\t\"[role=\\\"menuitemradio\\\"]\",\n\t\"[role=\\\"slider\\\"]\",\n\t\"[data-interactive]\"\n].join(\",\");\nconst EDITABLE_SELECTOR = [\n\t\"textarea\",\n\t\"select\",\n\t\"input:not([type])\",\n\t...[\n\t\t\"text\",\n\t\t\"search\",\n\t\t\"url\",\n\t\t\"tel\",\n\t\t\"email\",\n\t\t\"password\",\n\t\t\"number\"\n\t].map((type) => `input[type=\"${type}\"]`),\n\t\"[contenteditable]:not([contenteditable=\\\"false\\\"])\"\n].join(\",\");\nfunction isEditableElement(el) {\n\treturn el.matches(EDITABLE_SELECTOR);\n}\n/** Whether the keyboard event target is an editable element (input, textarea, etc). */\nfunction isEditableTarget(event) {\n\tconst target = resolveEventTarget(event);\n\treturn target instanceof Element && isEditableElement(target);\n}\n/** Whether the event originated from an interactive control (button, slider, etc). */\nfunction isInteractiveTarget(event) {\n\tconst target = resolveEventTarget(event);\n\tif (!(target instanceof Element)) return false;\n\treturn target.closest(INTERACTIVE_SELECTOR) !== null;\n}\nconst ACTIVATION_KEYS = /* @__PURE__ */ new Set([\" \", \"Enter\"]);\n/**\n* Selector for elements that use Space/Enter as a native activation key.\n* Narrower than `INTERACTIVE_SELECTOR` — excludes editable elements like\n* `input`, `textarea`, `select` where Space/Enter is text input, not activation.\n*/\nconst ACTIVATABLE_SELECTOR = \"button,a[href],[role=\\\"slider\\\"],[role=\\\"button\\\"]\";\n/** Whether the event is an activation key on an activatable element (button, link, slider). */\nfunction isInteractiveActivation(event) {\n\tif (!ACTIVATION_KEYS.has(event.key)) return false;\n\tconst target = resolveEventTarget(event);\n\treturn target instanceof Element && target.matches(ACTIVATABLE_SELECTOR);\n}\n//#endregion\nexport { EDITABLE_SELECTOR, INTERACTIVE_SELECTOR, isEditableElement, isEditableTarget, isInteractiveActivation, isInteractiveTarget };\n\n//# sourceMappingURL=interactive.js.map","//#region src/dom/time-ranges.ts\n/** Converts a TimeRanges object to an array of [start, end] tuples. */\nfunction serializeTimeRanges(ranges) {\n\tconst result = [];\n\tfor (let i = 0; i < ranges.length; i++) result.push([ranges.start(i), ranges.end(i)]);\n\treturn result;\n}\n//#endregion\nexport { serializeTimeRanges };\n\n//# sourceMappingURL=time-ranges.js.map","import { anyAbortSignal } from \"@videojs/utils/events\";\n//#region src/core/abort-controller-registry.ts\nvar AbortControllerRegistry = class {\n\t#base;\n\t#keys = /* @__PURE__ */ new Map();\n\t/** The attach-scoped signal. Aborts on detach or reattach. */\n\tget base() {\n\t\treturn (this.#base ??= new AbortController()).signal;\n\t}\n\t/** Clears all keyed signals, leaving base intact. */\n\tclear() {\n\t\tfor (const controller of this.#keys.values()) controller.abort();\n\t\tthis.#keys.clear();\n\t}\n\t/** Resets base and clears all keyed signals. */\n\treset() {\n\t\tthis.clear();\n\t\tthis.#base?.abort();\n\t\tthis.#base = void 0;\n\t}\n\t/** Creates a new signal for the key, superseding any previous signal. */\n\tsupersede(key) {\n\t\tthis.#keys.get(key)?.abort();\n\t\tconst controller = new AbortController();\n\t\tthis.#keys.set(key, controller);\n\t\treturn anyAbortSignal([this.base, controller.signal]);\n\t}\n};\n//#endregion\nexport { AbortControllerRegistry };\n\n//# sourceMappingURL=abort-controller-registry.js.map","//#region src/core/combine.ts\n/**\n* Combines multiple slices into a single slice.\n*\n* @param slices - The slices to combine.\n* @returns A new slice that represents the combination of the input slices.\n*/\nfunction combine(...slices) {\n\tconst derivedDefinitions = slices.map((slice) => slice.derived ?? {});\n\twarnDuplicates(\"derived\", derivedDefinitions);\n\treturn {\n\t\tstate: (ctx) => {\n\t\t\tconst states = slices.map((slice) => slice.state(ctx));\n\t\t\twarnDuplicates(\"state\", states);\n\t\t\twarnOverlaps(states, derivedDefinitions);\n\t\t\treturn Object.assign({}, ...states);\n\t\t},\n\t\tpreserve: Array.from(new Set(slices.flatMap((slice) => slice.preserve ?? []))),\n\t\tderived: Object.assign({}, ...derivedDefinitions),\n\t\tattach: (ctx) => {\n\t\t\tfor (const slice of slices) try {\n\t\t\t\tslice.attach?.(ctx);\n\t\t\t} catch (err) {\n\t\t\t\tctx.reportError(err);\n\t\t\t}\n\t\t}\n\t};\n}\nfunction warnDuplicates(namespace, objects) {\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const object of objects) for (const key of Reflect.ownKeys(object)) {\n\t\tif (seen.has(key)) console.warn(`[vjs-store] combine(): duplicate ${namespace} key \"${String(key)}\" — later slice overwrites earlier one`);\n\t\tseen.add(key);\n\t}\n}\nfunction warnOverlaps(states, derivedDefinitions) {\n\tconst stateKeys = new Set(states.flatMap((state) => Reflect.ownKeys(state)));\n\tfor (const key of new Set(derivedDefinitions.flatMap((derived) => Reflect.ownKeys(derived)))) if (stateKeys.has(key)) console.warn(`[vjs-store] combine(): state and derived key \"${String(key)}\" overlap — derived state overwrites source state`);\n}\n//#endregion\nexport { combine };\n\n//# sourceMappingURL=combine.js.map","//#region src/core/errors.ts\nvar StoreError = class extends Error {\n\tcode;\n\tcause;\n\tconstructor(code, options) {\n\t\tsuper(options?.message ?? code);\n\t\tthis.name = \"StoreError\";\n\t\tthis.code = code;\n\t\tthis.cause = options?.cause;\n\t}\n};\nfunction isStoreError(error) {\n\treturn error instanceof StoreError;\n}\nfunction throwNoTargetError() {\n\tthrow new StoreError(\"NO_TARGET\");\n}\nfunction throwDestroyedError() {\n\tthrow new StoreError(\"DESTROYED\");\n}\n//#endregion\nexport { StoreError, isStoreError, throwDestroyedError, throwNoTargetError };\n\n//# sourceMappingURL=errors.js.map","//#region src/core/slice.ts\nfunction defineSlice() {\n\treturn ((config) => config);\n}\n//#endregion\nexport { defineSlice };\n\n//# sourceMappingURL=slice.js.map","import { shallowEqual } from \"@videojs/utils/object\";\nimport { noop } from \"@videojs/utils/function\";\n//#region src/core/state.ts\nlet isFlushScheduled = false;\nfunction scheduleFlush() {\n\tif (isFlushScheduled) return;\n\tisFlushScheduled = true;\n\tqueueMicrotask(flush);\n}\nconst pendingContainers = /* @__PURE__ */ new Set();\nfunction flush() {\n\tisFlushScheduled = false;\n\tfor (const container of pendingContainers) container.flush();\n\tpendingContainers.clear();\n}\nconst hasOwnProp = Object.prototype.hasOwnProperty;\nvar StateContainer = class {\n\t#current;\n\t#listeners = /* @__PURE__ */ new Set();\n\t#pending = false;\n\tconstructor(initial) {\n\t\tthis.#current = Object.freeze({ ...initial });\n\t}\n\tget current() {\n\t\treturn this.#current;\n\t}\n\tpatch(partial) {\n\t\tconst next = { ...this.#current };\n\t\tlet changed = false;\n\t\tfor (const key of Reflect.ownKeys(partial)) {\n\t\t\tif (!hasOwnProp.call(partial, key)) continue;\n\t\t\tconst value = partial[key];\n\t\t\tif (!Object.is(this.#current[key], value)) {\n\t\t\t\tnext[key] = value;\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t}\n\t\tif (changed) {\n\t\t\tthis.#current = Object.freeze(next);\n\t\t\tthis.#markPending();\n\t\t}\n\t}\n\treplace(next) {\n\t\tif (shallowEqual(this.#current, next)) return;\n\t\tthis.#current = Object.freeze({ ...next });\n\t\tthis.#markPending();\n\t}\n\tsubscribe(callback, options) {\n\t\tconst signal = options?.signal;\n\t\tif (signal?.aborted) return noop;\n\t\tthis.#listeners.add(callback);\n\t\tif (!signal) return () => this.#listeners.delete(callback);\n\t\tconst onAbort = () => this.#listeners.delete(callback);\n\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\treturn () => {\n\t\t\tsignal.removeEventListener(\"abort\", onAbort);\n\t\t\tthis.#listeners.delete(callback);\n\t\t};\n\t}\n\tflush() {\n\t\tif (!this.#pending) return;\n\t\tthis.#pending = false;\n\t\tfor (const fn of this.#listeners) fn();\n\t}\n\t#markPending() {\n\t\tthis.#pending = true;\n\t\tpendingContainers.add(this);\n\t\tscheduleFlush();\n\t}\n};\nfunction createState(initial) {\n\treturn new StateContainer(initial);\n}\nfunction isState(value) {\n\treturn value instanceof StateContainer;\n}\n//#endregion\nexport { createState, flush, isState };\n\n//# sourceMappingURL=state.js.map","import { AbortControllerRegistry } from \"./abort-controller-registry.js\";\nimport { throwDestroyedError, throwNoTargetError } from \"./errors.js\";\nimport { createState } from \"./state.js\";\nimport { isNull, isObject } from \"@videojs/utils/predicate\";\n//#region src/core/store.ts\nconst STORE_SYMBOL = Symbol.for(\"@videojs/store\");\nconst hasOwnProp = Object.prototype.hasOwnProperty;\nfunction createStore() {\n\treturn ((slice, options = {}) => {\n\t\tlet target = null;\n\t\tlet destroyed = false;\n\t\tconst setupAbort = new AbortController();\n\t\tconst signals = new AbortControllerRegistry();\n\t\tlet sourceState;\n\t\tlet state;\n\t\tfunction validate() {\n\t\t\tif (destroyed) throwDestroyedError();\n\t\t\tif (!target) throwNoTargetError();\n\t\t}\n\t\tconst initialSourceState = freezeCopy(slice.state({\n\t\t\ttarget: () => {\n\t\t\t\tvalidate();\n\t\t\t\treturn target;\n\t\t\t},\n\t\t\tsignals,\n\t\t\tget: () => sourceState,\n\t\t\tset: (partial) => setSource(partial)\n\t\t}));\n\t\tsourceState = initialSourceState;\n\t\tconst initialDerivedState = derive(sourceState);\n\t\tstate = createState(publish(sourceState, initialDerivedState));\n\t\tconst store = {\n\t\t\t[STORE_SYMBOL]: true,\n\t\t\tget $state() {\n\t\t\t\treturn state;\n\t\t\t},\n\t\t\tget target() {\n\t\t\t\treturn target;\n\t\t\t},\n\t\t\tget destroyed() {\n\t\t\t\treturn destroyed;\n\t\t\t},\n\t\t\tget state() {\n\t\t\t\treturn state.current;\n\t\t\t},\n\t\t\tattach,\n\t\t\tdestroy,\n\t\t\tsubscribe\n\t\t};\n\t\tfor (const key of Object.keys(state.current)) Object.defineProperty(store, key, {\n\t\t\tget: () => state.current[key],\n\t\t\tenumerable: true\n\t\t});\n\t\tfor (const key of Object.getOwnPropertySymbols(sourceState)) {\n\t\t\tif (typeof sourceState[key] !== \"function\") continue;\n\t\t\tObject.defineProperty(store, key, { get: () => sourceState[key] });\n\t\t}\n\t\ttry {\n\t\t\toptions.onSetup?.({\n\t\t\t\tstore,\n\t\t\t\tsignal: setupAbort.signal\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treportError(error);\n\t\t}\n\t\treturn store;\n\t\tfunction derive(source) {\n\t\t\tconst result = {};\n\t\t\tconst definitions = slice.derived;\n\t\t\tif (!definitions) return result;\n\t\t\tconst ctx = { get: () => source };\n\t\t\tfor (const key of Object.keys(definitions)) result[key] = definitions[key](ctx);\n\t\t\treturn result;\n\t\t}\n\t\tfunction publish(source, derived) {\n\t\t\tconst result = {};\n\t\t\tfor (const key of Object.keys(source)) result[key] = source[key];\n\t\t\treturn Object.assign(result, derived);\n\t\t}\n\t\tfunction setSource(partial) {\n\t\t\tconst patched = patchSource(sourceState, partial);\n\t\t\tif (!patched) return;\n\t\t\tconst nextDerived = derive(patched.next);\n\t\t\tsourceState = patched.next;\n\t\t\tstate.replace(publish(sourceState, nextDerived));\n\t\t}\n\t\tfunction attach(newTarget) {\n\t\t\tif (destroyed) throwDestroyedError();\n\t\t\tsignals.reset();\n\t\t\ttarget = newTarget;\n\t\t\tconst attachContext = {\n\t\t\t\ttarget: newTarget,\n\t\t\t\tsignal: signals.base,\n\t\t\t\tget: () => sourceState,\n\t\t\t\tset: (partial) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsetSource(partial);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treportError(error);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\treportError,\n\t\t\t\tstore: {\n\t\t\t\t\tget state() {\n\t\t\t\t\t\treturn state.current;\n\t\t\t\t\t},\n\t\t\t\t\tsubscribe\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tslice.attach?.(attachContext);\n\t\t\t} catch (error) {\n\t\t\t\treportError(error);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\toptions.onAttach?.({\n\t\t\t\t\tstore,\n\t\t\t\t\ttarget: newTarget,\n\t\t\t\t\tsignal: signals.base\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\treportError(error);\n\t\t\t}\n\t\t\treturn detach;\n\t\t}\n\t\tfunction detach() {\n\t\t\tif (isNull(target)) return;\n\t\t\tsignals.reset();\n\t\t\ttarget = null;\n\t\t\tconst resetState = { ...initialSourceState };\n\t\t\tfor (const key of slice.preserve ?? []) resetState[key] = sourceState[key];\n\t\t\tsetSource(resetState);\n\t\t}\n\t\tfunction destroy() {\n\t\t\tif (destroyed) return;\n\t\t\tdestroyed = true;\n\t\t\tdetach();\n\t\t\tsetupAbort.abort();\n\t\t}\n\t\tfunction subscribe(callback, options) {\n\t\t\treturn state.subscribe(callback, options);\n\t\t}\n\t\tfunction reportError(error) {\n\t\t\tif (options.onError) options.onError({\n\t\t\t\tstore,\n\t\t\t\terror\n\t\t\t});\n\t\t\telse console.error(\"[vjs-store]\", error);\n\t\t}\n\t});\n}\nfunction freezeCopy(value) {\n\treturn Object.freeze({ ...value });\n}\nfunction patchSource(current, partial) {\n\tconst next = { ...current };\n\tlet changed = false;\n\tfor (const key of Reflect.ownKeys(partial)) {\n\t\tif (!hasOwnProp.call(partial, key)) continue;\n\t\tconst value = partial[key];\n\t\tif (Object.is(current[key], value)) continue;\n\t\tnext[key] = value;\n\t\tchanged = true;\n\t}\n\treturn changed ? { next: Object.freeze(next) } : null;\n}\nfunction isStore(value) {\n\treturn isObject(value) && STORE_SYMBOL in value;\n}\n//#endregion\nexport { createStore, isStore };\n\n//# sourceMappingURL=store.js.map","import { defineSlice } from \"@videojs/store\";\nimport { isUndefined } from \"@videojs/utils/predicate\";\n//#region src/dom/feature.ts\nconst definePlayerSlice = defineSlice();\nfunction definePlayerFeature(definition, defaultConfig) {\n\tif (arguments.length === 1) {\n\t\tconst feature = definition;\n\t\tconst preserved = Object.values(feature.config ?? {}).map((entry) => entry.state);\n\t\treturn {\n\t\t\t...feature,\n\t\t\t...preserved.length > 0 ? { preserve: preserved } : {}\n\t\t};\n\t}\n\tconst { name, state, attach } = definition;\n\tconst forConfig = (featureConfig) => definePlayerSlice({\n\t\t...isUndefined(name) ? {} : { name },\n\t\tstate: (ctx) => state(ctx, featureConfig),\n\t\t...attach ? { attach: (ctx) => attach(ctx, featureConfig) } : {}\n\t});\n\tconst defaultFeature = forConfig(defaultConfig);\n\tconst feature = ((featureConfig) => isUndefined(featureConfig) ? defaultFeature : forConfig(featureConfig));\n\tfeature.state = defaultFeature.state;\n\tif (defaultFeature.attach) feature.attach = defaultFeature.attach;\n\tif (!isUndefined(name)) Object.defineProperty(feature, \"name\", { value: name });\n\treturn feature;\n}\n/** Merge the configuration declarations from the selected player features. */\nfunction combinePlayerFeatureConfigs(features) {\n\tconst definitions = features.map((feature) => feature.config ?? {});\n\t{\n\t\tconst seen = /* @__PURE__ */ new Set();\n\t\tfor (const definition of definitions) for (const key of Object.keys(definition)) {\n\t\t\tif (seen.has(key)) console.warn(`[vjs-core] duplicate config key \"${key}\" — later feature overwrites earlier one`);\n\t\t\tseen.add(key);\n\t\t}\n\t}\n\treturn Object.assign({}, ...definitions);\n}\n/** Forward one configuration input through its feature-owned private action. */\nfunction setPlayerConfigValue(store, entry, value) {\n\tconst action = store[entry.action];\n\tif (typeof action !== \"function\") throw new TypeError(`Missing config action \"${String(entry.action)}\"`);\n\taction(value);\n}\n//#endregion\nexport { combinePlayerFeatureConfigs, definePlayerFeature, setPlayerConfigValue };\n\n//# sourceMappingURL=feature.js.map","import { EMPTY_REMOTE, EMPTY_TEXT_TRACKS, EMPTY_TIME_RANGES } from \"./constants.js\";\nimport { isFunction, isObject, isUndefined } from \"@videojs/utils/predicate\";\n//#region src/core/predicate.ts\nfunction hasMetadata(media) {\n\treturn media.readyState >= 1;\n}\nfunction isMediaPauseCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.paused) && !isUndefined(media.ended) && isFunction(media.pause);\n}\nfunction isMediaSeekCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.currentTime) && !isUndefined(media.duration) && !isUndefined(media.seeking);\n}\nfunction isMediaSourceCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.src) && !isUndefined(media.currentSrc) && !isUndefined(media.readyState) && isFunction(media.load);\n}\nfunction isMediaVolumeCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.volume) && !isUndefined(media.muted);\n}\n/**\n* Whether the media reports a mute at all, which is a narrower question than\n* `isMediaVolumeCapable`: an embed can take a mute command while offering no way\n* to set a level.\n*/\nfunction isMediaMutedCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.muted);\n}\nfunction isMediaPlaybackRateCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.playbackRate);\n}\n/**\n* Only `requestPictureInPicture` is required. A native video element carries it\n* but leaves exiting to `document`, so demanding the pair would rule out the one\n* media that most certainly can.\n*/\nfunction isMediaPictureInPictureCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn isFunction(value.requestPictureInPicture);\n}\nfunction isMediaBufferCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.buffered) && media.buffered !== EMPTY_TIME_RANGES && !isUndefined(media.seekable) && media.seekable !== EMPTY_TIME_RANGES;\n}\nfunction isMediaErrorCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.error);\n}\nfunction isMediaTextTrackCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.textTracks) && media.textTracks !== EMPTY_TEXT_TRACKS;\n}\nfunction isMediaVideoRenditionCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.videoRenditions);\n}\nfunction isMediaAudioTrackCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.audioTracks);\n}\nfunction isMediaVideoDimensionsCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.videoWidth) && !isUndefined(media.videoHeight);\n}\nfunction isMediaRemotePlaybackCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn isObject(media.remote) && media.remote !== EMPTY_REMOTE;\n}\nfunction isMediaStreamTypeCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.streamType);\n}\nfunction isMediaContentDataCapable(value) {\n\tif (!isObject(value)) return false;\n\treturn !isUndefined(value.contentData);\n}\nfunction isMediaLiveCapable(value) {\n\tif (!isObject(value)) return false;\n\tconst media = value;\n\treturn !isUndefined(media.liveEdgeStart) && !isUndefined(media.targetLiveWindow);\n}\nfunction isQuerySelectorAllCapable(value) {\n\treturn isObject(value) && \"querySelectorAll\" in value && isFunction(value.querySelectorAll);\n}\n//#endregion\nexport { hasMetadata, isMediaAudioTrackCapable, isMediaBufferCapable, isMediaContentDataCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaMutedCapable, isMediaPauseCapable, isMediaPictureInPictureCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable, isMediaVolumeCapable, isQuerySelectorAllCapable };\n\n//# sourceMappingURL=predicate.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaAudioTrackCapable } from \"@videojs/media\";\n//#region src/dom/store/features/audio-track.ts\nfunction getTrackValue(track, index) {\n\treturn track.id || String(index);\n}\nfunction toMediaTrack(track) {\n\treturn {\n\t\t...track.id !== void 0 && { id: track.id },\n\t\t...track.kind !== void 0 && { kind: track.kind },\n\t\tlabel: track.label,\n\t\tlanguage: track.language,\n\t\tenabled: track.enabled\n\t};\n}\nconst audioTrackFeature = definePlayerFeature({\n\tname: \"audioTrack\",\n\tstate: ({ target }) => ({\n\t\taudioTrackList: [],\n\t\tselectAudioTrack(value) {\n\t\t\tconst { media } = target();\n\t\t\tif (!isMediaAudioTrackCapable(media)) return;\n\t\t\tconst tracks = [...media.audioTracks];\n\t\t\tconst track = tracks.find((candidate, index) => getTrackValue(candidate, index) === value);\n\t\t\tif (!track) return;\n\t\t\tfor (const candidate of tracks) candidate.enabled = candidate === track;\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tlet audioTracks = null;\n\t\tlet cleanup = null;\n\t\tconst getAudioTracks = () => isMediaAudioTrackCapable(media) ? media.audioTracks : null;\n\t\tconst sync = (list = getAudioTracks()) => {\n\t\t\tset({ audioTrackList: list ? [...list].map(toMediaTrack) : [] });\n\t\t};\n\t\tconst bind = () => {\n\t\t\tconst nextAudioTracks = getAudioTracks();\n\t\t\tif (nextAudioTracks === audioTracks) {\n\t\t\t\tsync(nextAudioTracks);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcleanup?.abort();\n\t\t\tcleanup = new AbortController();\n\t\t\taudioTracks = nextAudioTracks;\n\t\t\tif (audioTracks) {\n\t\t\t\tlisten(audioTracks, \"addtrack\", () => sync(audioTracks), { signal: cleanup.signal });\n\t\t\t\tlisten(audioTracks, \"removetrack\", () => sync(audioTracks), { signal: cleanup.signal });\n\t\t\t\tlisten(audioTracks, \"change\", () => sync(audioTracks), { signal: cleanup.signal });\n\t\t\t}\n\t\t\tsync(audioTracks);\n\t\t};\n\t\tbind();\n\t\tlisten(media, \"loadstart\", bind, { signal });\n\t\tsignal.addEventListener(\"abort\", () => cleanup?.abort(), { once: true });\n\t}\n});\n//#endregion\nexport { audioTrackFeature };\n\n//# sourceMappingURL=audio-track.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen, serializeTimeRanges } from \"@videojs/utils/dom\";\nimport { isMediaBufferCapable } from \"@videojs/media\";\n//#region src/dom/store/features/buffer.ts\nconst bufferFeature = definePlayerFeature({\n\tname: \"buffer\",\n\tstate: () => ({\n\t\tbuffered: [],\n\t\tseekable: []\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaBufferCapable(media)) return;\n\t\tconst sync = () => set({\n\t\t\tbuffered: serializeTimeRanges(media.buffered),\n\t\t\tseekable: serializeTimeRanges(media.seekable)\n\t\t});\n\t\tsync();\n\t\tlisten(media, \"progress\", sync, { signal });\n\t\tlisten(media, \"emptied\", sync, { signal });\n\t}\n});\n//#endregion\nexport { bufferFeature };\n\n//# sourceMappingURL=buffer.js.map","//#region src/dom/gesture/region.ts\n/**\n* Determine which named region a pointer position falls into.\n*\n* Regions divide the container width equally based on how many are active:\n* - `left` + `right` → halves (50% / 50%)\n* - `left` + `center` + `right` → thirds (33% / 34% / 33%)\n*\n* Single region: `left` covers the left half, `right` the right half,\n* and `center` covers the full surface. Partial two-region combos\n* (e.g. `left` + `center`) use the same natural zones — positions outside\n* all active zones return `null` so full-surface gestures can handle them.\n*/\nfunction resolveRegion(clientX, containerRect, activeRegions) {\n\tif (activeRegions.size === 0) return null;\n\tconst relativeX = clientX - containerRect.left;\n\tconst width = containerRect.width;\n\tif (width === 0) return null;\n\tconst ratio = relativeX / width;\n\tif (activeRegions.size === 2 && activeRegions.has(\"left\") && activeRegions.has(\"right\")) return ratio < .5 ? \"left\" : \"right\";\n\tif (activeRegions.size === 3) {\n\t\tif (ratio < 1 / 3) return \"left\";\n\t\tif (ratio < 2 / 3) return \"center\";\n\t\treturn \"right\";\n\t}\n\tif (activeRegions.has(\"left\") && ratio < .5) return \"left\";\n\tif (activeRegions.has(\"right\") && ratio >= .5) return \"right\";\n\tif (activeRegions.has(\"center\")) {\n\t\tif (activeRegions.size === 1) return \"center\";\n\t\tif (ratio >= 1 / 3 && ratio < 2 / 3) return \"center\";\n\t}\n\treturn null;\n}\n//#endregion\nexport { resolveRegion };\n\n//# sourceMappingURL=region.js.map","import { resolveRegion } from \"./region.js\";\nimport { isInteractiveTarget, listen } from \"@videojs/utils/dom\";\n//#region src/dom/gesture/coordinator.ts\nconst TAP_THRESHOLD = 250;\nvar GestureCoordinator = class {\n\t#target;\n\t#bindings = [];\n\t#recognizers = /* @__PURE__ */ new Set();\n\t#disconnect = null;\n\t#subscribers = /* @__PURE__ */ new Set();\n\tconstructor(target) {\n\t\tthis.#target = target;\n\t}\n\tget bindings() {\n\t\treturn this.#bindings;\n\t}\n\tsubscribe(callback) {\n\t\tthis.#subscribers.add(callback);\n\t\treturn () => this.#subscribers.delete(callback);\n\t}\n\t/**\n\t* Whether a registered binding claims this tap for the given action. A claimed tap\n\t* belongs to the gesture layer, so callers should leave it alone. Taps on interactive\n\t* targets (buttons, sliders) are never claimed — the same filtering the pointerup\n\t* listener applies. A disabled binding still claims: disabling a gesture opts out of\n\t* the action, it doesn't hand the tap back to a fallback handler.\n\t*/\n\tclaimsTap(event, action) {\n\t\tif (isInteractiveTarget(event)) return false;\n\t\treturn this.#bindings.some((b) => b.type === \"tap\" && b.action === action && (!b.pointer || b.pointer === event.pointerType));\n\t}\n\tadd(binding) {\n\t\tconst wrapped = {\n\t\t\t...binding,\n\t\t\tonActivate: (event) => {\n\t\t\t\tif (this.#subscribers.size > 0) {\n\t\t\t\t\tconst activateEvent = {\n\t\t\t\t\t\ttype: binding.type,\n\t\t\t\t\t\tsource: \"gesture\",\n\t\t\t\t\t\taction: binding.action,\n\t\t\t\t\t\tvalue: binding.value,\n\t\t\t\t\t\tregion: binding.region,\n\t\t\t\t\t\tpointer: binding.pointer,\n\t\t\t\t\t\tevent\n\t\t\t\t\t};\n\t\t\t\t\tfor (const cb of this.#subscribers) try {\n\t\t\t\t\t\tcb(activateEvent);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn(\"[vjs-gesture] subscribe callback threw:\", error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbinding.onActivate(event);\n\t\t\t}\n\t\t};\n\t\tthis.#bindings.push(wrapped);\n\t\tthis.#recognizers.add(wrapped.recognizer);\n\t\tthis.#connect();\n\t\tlet removed = false;\n\t\treturn () => {\n\t\t\tif (removed) return;\n\t\t\tremoved = true;\n\t\t\tconst idx = this.#bindings.indexOf(wrapped);\n\t\t\tif (idx !== -1) this.#bindings.splice(idx, 1);\n\t\t\tthis.#maybeDisconnect();\n\t\t};\n\t}\n\t#connect() {\n\t\tif (this.#disconnect) return;\n\t\tthis.#disconnect = new AbortController();\n\t\tconst { signal } = this.#disconnect;\n\t\tlet pointerDownTime = 0;\n\t\tlisten(this.#target, \"pointerdown\", (event) => {\n\t\t\tif (event.button !== 0) return;\n\t\t\tpointerDownTime = Date.now();\n\t\t}, { signal });\n\t\tlisten(this.#target, \"pointerup\", (event) => {\n\t\t\tif (event.button !== 0) return;\n\t\t\tif (Date.now() - pointerDownTime > TAP_THRESHOLD) return;\n\t\t\tif (isInteractiveTarget(event)) return;\n\t\t\tconst pointerType = event.pointerType;\n\t\t\tconst clientX = event.clientX;\n\t\t\tconst target = this.#target;\n\t\t\tconst bindings = this.#bindings;\n\t\t\tconst matches = { resolve: (type) => matchBindings(bindings, type, pointerType, clientX, target) };\n\t\t\tfor (const recognizer of this.#recognizers) recognizer.handleUp(matches, event);\n\t\t}, { signal });\n\t}\n\t#maybeDisconnect() {\n\t\tif (this.#bindings.length > 0) return;\n\t\tfor (const recognizer of this.#recognizers) recognizer.reset();\n\t\tthis.#recognizers.clear();\n\t\tthis.#disconnect?.abort();\n\t\tthis.#disconnect = null;\n\t}\n};\nconst coordinators = /* @__PURE__ */ new WeakMap();\n/** Look up the gesture coordinator for a target element, if one exists. */\nfunction findGestureCoordinator(target) {\n\treturn coordinators.get(target);\n}\nfunction getGestureCoordinator(target) {\n\tlet coordinator = coordinators.get(target);\n\tif (!coordinator) {\n\t\tcoordinator = new GestureCoordinator(target);\n\t\tcoordinators.set(target, coordinator);\n\t}\n\treturn coordinator;\n}\nfunction matchBindings(bindings, type, pointerType, clientX, target) {\n\tconst rect = target.getBoundingClientRect();\n\tconst activeRegions = getActiveRegions(bindings, type, pointerType);\n\tconst region = activeRegions.size > 0 ? resolveRegion(clientX, rect, activeRegions) : null;\n\tconst matches = [];\n\tfor (const binding of bindings) {\n\t\tif (binding.disabled) continue;\n\t\tif (binding.type !== type) continue;\n\t\tif (binding.pointer && binding.pointer !== pointerType) continue;\n\t\tif (binding.region) {\n\t\t\tif (binding.region !== region) continue;\n\t\t} else if (region !== null) continue;\n\t\tmatches.push(binding);\n\t}\n\treturn matches;\n}\nfunction getActiveRegions(bindings, type, pointerType) {\n\tconst regions = /* @__PURE__ */ new Set();\n\tfor (const binding of bindings) {\n\t\tif (binding.disabled) continue;\n\t\tif (binding.type !== type) continue;\n\t\tif (binding.pointer && binding.pointer !== pointerType) continue;\n\t\tif (binding.region) regions.add(binding.region);\n\t}\n\treturn regions;\n}\n//#endregion\nexport { GestureCoordinator, findGestureCoordinator, getGestureCoordinator };\n\n//# sourceMappingURL=coordinator.js.map","import { isObject } from \"@videojs/utils/predicate\";\n//#region src/dom/presentation/remote-playback.ts\nfunction resolveRemote(media) {\n\tconst target = media;\n\tif (isObject(target.remote) && \"state\" in target.remote && \"prompt\" in target.remote) return target.remote;\n}\nfunction isRemotePlaybackConnected(media) {\n\treturn resolveRemote(media)?.state === \"connected\";\n}\nfunction isRemotePlaybackConnecting(media) {\n\treturn resolveRemote(media)?.state === \"connecting\";\n}\nasync function requestRemotePlayback(media) {\n\tconst remote = resolveRemote(media);\n\tif (!remote) throw new DOMException(\"Remote playback not supported\", \"NotSupportedError\");\n\treturn remote.prompt();\n}\n//#endregion\nexport { isRemotePlaybackConnected, isRemotePlaybackConnecting, requestRemotePlayback };\n\n//# sourceMappingURL=remote-playback.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { findGestureCoordinator } from \"../../gesture/coordinator.js\";\nimport { isRemotePlaybackConnected, isRemotePlaybackConnecting } from \"../../presentation/remote-playback.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isNull } from \"@videojs/utils/predicate\";\nimport { isMediaPauseCapable, isMediaRemotePlaybackCapable } from \"@videojs/media\";\n//#region src/dom/store/features/controls.ts\nconst IDLE_DELAY = 2e3;\nconst TAP_THRESHOLD = 250;\nconst TOUCH_SETTLE_DELAY = 500;\nconst controlsActionsByRequest = /* @__PURE__ */ new WeakMap();\nconst controlsFeature = definePlayerFeature({\n\tname: \"controls\",\n\tstate: ({ get, set }) => {\n\t\tconst fallbackRequestControlsLock = () => {\n\t\t\tset({ controlsVisible: true });\n\t\t\treturn () => {};\n\t\t};\n\t\tconst fallbackToggleControls = () => {\n\t\t\tconst next = !get().userActive;\n\t\t\tset({\n\t\t\t\tuserActive: next,\n\t\t\t\tcontrolsVisible: next\n\t\t\t});\n\t\t\treturn next;\n\t\t};\n\t\tconst actions = createControlsActions(fallbackRequestControlsLock, fallbackToggleControls);\n\t\tcontrolsActionsByRequest.set(actions.requestControlsLock, actions);\n\t\treturn {\n\t\t\tuserActive: true,\n\t\t\tcontrolsVisible: true,\n\t\t\trequestControlsLock: actions.requestControlsLock,\n\t\t\ttoggleControls: actions.toggleControls\n\t\t};\n\t},\n\tattach({ target, signal, get, set }) {\n\t\tconst { media, container } = target;\n\t\tif (!isMediaPauseCapable(media) || isNull(container)) {\n\t\t\tif (isNull(container)) console.warn(\"[vjs] controlsFeature requires a container element for activity tracking.\");\n\t\t\treturn;\n\t\t}\n\t\tlet idleTimer;\n\t\tlet controlsLockCount = 0;\n\t\tconst computeVisible = (userActive) => {\n\t\t\treturn controlsLockCount > 0 || userActive || media.paused || isRemotePlaybackConnected(media) || isRemotePlaybackConnecting(media);\n\t\t};\n\t\tfunction clearIdle() {\n\t\t\tclearTimeout(idleTimer);\n\t\t\tidleTimer = void 0;\n\t\t}\n\t\tfunction scheduleIdle() {\n\t\t\tclearIdle();\n\t\t\tif (controlsLockCount > 0) return;\n\t\t\tidleTimer = setTimeout(setInactive, IDLE_DELAY);\n\t\t}\n\t\tfunction setActive() {\n\t\t\tif (!get().userActive) set({\n\t\t\t\tuserActive: true,\n\t\t\t\tcontrolsVisible: true\n\t\t\t});\n\t\t\tscheduleIdle();\n\t\t}\n\t\tfunction setInactive() {\n\t\t\tclearIdle();\n\t\t\tset({\n\t\t\t\tuserActive: false,\n\t\t\t\tcontrolsVisible: computeVisible(false)\n\t\t\t});\n\t\t}\n\t\tfunction requestControlsLock() {\n\t\t\tcontrolsLockCount++;\n\t\t\tclearIdle();\n\t\t\tif (!get().controlsVisible) set({ controlsVisible: true });\n\t\t\tlet released = false;\n\t\t\treturn () => {\n\t\t\t\tif (released || signal.aborted) return;\n\t\t\t\treleased = true;\n\t\t\t\tcontrolsLockCount--;\n\t\t\t\tif (controlsLockCount === 0) setActive();\n\t\t\t};\n\t\t}\n\t\tfunction toggleControls() {\n\t\t\tif (get().controlsVisible) setInactive();\n\t\t\telse setActive();\n\t\t\treturn get().controlsVisible;\n\t\t}\n\t\tconst actions = controlsActionsByRequest.get(get().requestControlsLock);\n\t\tactions.setDelegates(requestControlsLock, toggleControls);\n\t\tlet pointerDownTime = 0;\n\t\tlet lastTouchAt = 0;\n\t\tconst isRecentTouch = () => lastTouchAt > 0 && Date.now() - lastTouchAt < TOUCH_SETTLE_DELAY;\n\t\tfunction onPointerDown(event) {\n\t\t\tpointerDownTime = Date.now();\n\t\t\tif (event.pointerType === \"touch\") lastTouchAt = pointerDownTime;\n\t\t}\n\t\tfunction onPointerUp(event) {\n\t\t\tif (event.pointerType === \"touch\") lastTouchAt = Date.now();\n\t\t\tif (event.pointerType === \"touch\" && Date.now() - pointerDownTime < TAP_THRESHOLD) {\n\t\t\t\tif (findGestureCoordinator(container)?.claimsTap(event, \"toggleControls\")) return;\n\t\t\t\tconst isMediaOrContainer = [media, container].includes(event.target);\n\t\t\t\tif (get().controlsVisible && isMediaOrContainer) setInactive();\n\t\t\t\telse setActive();\n\t\t\t} else setActive();\n\t\t}\n\t\tconst onPlaybackChange = () => {\n\t\t\tconst { userActive } = get();\n\t\t\tset({ controlsVisible: computeVisible(userActive) });\n\t\t\tif (!media.paused && userActive) scheduleIdle();\n\t\t};\n\t\tfunction onPointerMove(event) {\n\t\t\tif (event.pointerType === \"touch\") {\n\t\t\t\tif (get().userActive) scheduleIdle();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetActive();\n\t\t}\n\t\tlisten(container, \"pointermove\", onPointerMove, { signal });\n\t\tlisten(container, \"pointerdown\", onPointerDown, { signal });\n\t\tlisten(container, \"pointerup\", onPointerUp, { signal });\n\t\tlisten(container, \"keyup\", setActive, { signal });\n\t\tlisten(container, \"focusin\", () => {\n\t\t\tif (isRecentTouch()) return;\n\t\t\tsetActive();\n\t\t}, { signal });\n\t\tlisten(container, \"mouseleave\", () => {\n\t\t\tif (isRecentTouch()) return;\n\t\t\tsetInactive();\n\t\t}, { signal });\n\t\tlisten(media, \"play\", onPlaybackChange, { signal });\n\t\tlisten(media, \"pause\", onPlaybackChange, { signal });\n\t\tlisten(media, \"ended\", onPlaybackChange, { signal });\n\t\tif (isMediaRemotePlaybackCapable(media)) {\n\t\t\tconst onCastChange = () => {\n\t\t\t\tconst { userActive } = get();\n\t\t\t\tset({ controlsVisible: computeVisible(userActive) });\n\t\t\t};\n\t\t\tlisten(media.remote, \"connect\", onCastChange, { signal });\n\t\t\tlisten(media.remote, \"connecting\", onCastChange, { signal });\n\t\t\tlisten(media.remote, \"disconnect\", onCastChange, { signal });\n\t\t}\n\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\tactions.reset();\n\t\t\tcontrolsLockCount = 0;\n\t\t\tclearIdle();\n\t\t}, { once: true });\n\t\tscheduleIdle();\n\t}\n});\nfunction createControlsActions(fallbackRequestControlsLock, fallbackToggleControls) {\n\tlet requestControlsLockDelegate = fallbackRequestControlsLock;\n\tlet toggleControlsDelegate = fallbackToggleControls;\n\tconst locks = /* @__PURE__ */ new Set();\n\tconst requestControlsLock = () => {\n\t\tconst lock = { release: requestControlsLockDelegate() };\n\t\tlet released = false;\n\t\tlocks.add(lock);\n\t\treturn () => {\n\t\t\tif (released) return;\n\t\t\treleased = true;\n\t\t\tlocks.delete(lock);\n\t\t\tlock.release();\n\t\t};\n\t};\n\tconst toggleControls = () => toggleControlsDelegate();\n\tconst actions = {\n\t\trequestControlsLock,\n\t\ttoggleControls,\n\t\tsetDelegates(nextRequestControlsLock, nextToggleControls) {\n\t\t\tif (nextRequestControlsLock !== requestControlsLockDelegate) {\n\t\t\t\trequestControlsLockDelegate = nextRequestControlsLock;\n\t\t\t\tfor (const lock of locks) {\n\t\t\t\t\tlock.release();\n\t\t\t\t\tlock.release = nextRequestControlsLock();\n\t\t\t\t}\n\t\t\t}\n\t\t\ttoggleControlsDelegate = nextToggleControls;\n\t\t},\n\t\treset() {\n\t\t\tactions.setDelegates(fallbackRequestControlsLock, fallbackToggleControls);\n\t\t}\n\t};\n\treturn actions;\n}\n//#endregion\nexport { controlsFeature };\n\n//# sourceMappingURL=controls.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaErrorCapable } from \"@videojs/media\";\n//#region src/dom/store/features/error.ts\nconst errorFeature = definePlayerFeature({\n\tname: \"error\",\n\tstate: ({ set }) => ({\n\t\terror: null,\n\t\tdismissError() {\n\t\t\tset({ error: null });\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaErrorCapable(media)) return;\n\t\tconst syncError = () => set({ error: media.error });\n\t\tlisten(media, \"error\", syncError, { signal });\n\t\tlisten(media, \"emptied\", () => set({ error: null }), { signal });\n\t}\n});\n//#endregion\nexport { errorFeature };\n\n//# sourceMappingURL=error.js.map","import { isFunction } from \"@videojs/utils/predicate\";\n//#region src/dom/presentation/fullscreen.ts\nfunction isFullscreenEnabled() {\n\tconst doc = document;\n\tif (doc.fullscreenEnabled || doc.webkitFullscreenEnabled) return true;\n\treturn isFunction(document.createElement(\"video\").webkitSetPresentationMode);\n}\nfunction getFullscreenElement() {\n\tconst doc = document;\n\treturn doc.fullscreenElement ?? doc.webkitFullscreenElement ?? null;\n}\nfunction matchesFullscreen(element) {\n\tif (!(element instanceof Element)) return false;\n\ttry {\n\t\treturn element.matches(\":fullscreen\");\n\t} catch {\n\t\treturn false;\n\t}\n}\nfunction isFullscreen(container, media) {\n\tif (media.webkitPresentationMode === \"fullscreen\") return true;\n\tconst fullscreenElement = getFullscreenElement();\n\tif (fullscreenElement && (fullscreenElement === container || fullscreenElement === media)) return true;\n\tif (matchesFullscreen(container) || matchesFullscreen(media)) return true;\n\treturn media.isFullscreen ?? false;\n}\nasync function requestFullscreen(container, media) {\n\tconst doc = document;\n\tif (container && (doc.fullscreenEnabled || doc.webkitFullscreenEnabled)) {\n\t\tconst el = container;\n\t\tif (isFunction(el.requestFullscreen)) return el.requestFullscreen();\n\t\tif (isFunction(el.webkitRequestFullscreen)) return el.webkitRequestFullscreen();\n\t}\n\tconst webkitVideo = media;\n\tif (isFunction(webkitVideo.webkitSetPresentationMode)) {\n\t\twebkitVideo.webkitSetPresentationMode(\"fullscreen\");\n\t\treturn;\n\t}\n\tconst video = media;\n\tif (isFunction(video.requestFullscreen)) return video.requestFullscreen();\n}\nasync function exitFullscreen(media) {\n\tconst doc = document;\n\tconst webkitVideo = media;\n\tif (webkitVideo.webkitPresentationMode === \"fullscreen\" && isFunction(webkitVideo.webkitSetPresentationMode)) {\n\t\twebkitVideo.webkitSetPresentationMode(\"inline\");\n\t\treturn;\n\t}\n\tif (isFunction(doc.exitFullscreen)) return doc.exitFullscreen();\n\tif (isFunction(doc.webkitExitFullscreen)) return doc.webkitExitFullscreen();\n\tconst video = media;\n\tif (isFunction(video.exitFullscreen)) return video.exitFullscreen();\n}\n//#endregion\nexport { exitFullscreen, getFullscreenElement, isFullscreen, isFullscreenEnabled, requestFullscreen };\n\n//# sourceMappingURL=fullscreen.js.map","import { isFunction } from \"@videojs/utils/predicate\";\nimport { isMediaPictureInPictureCapable } from \"@videojs/media\";\n//#region src/dom/presentation/pip.ts\nfunction isPictureInPictureEnabled() {\n\tif (document.pictureInPictureEnabled) {\n\t\tconst isSafari = /.*Version\\/.*Safari\\/.*/.test(navigator.userAgent);\n\t\tconst isPWA = typeof matchMedia === \"function\" && matchMedia(\"(display-mode: standalone)\").matches;\n\t\treturn !isSafari || !isPWA;\n\t}\n\treturn isFunction(document.createElement(\"video\").webkitSetPresentationMode);\n}\n/**\n* Whether this media can enter picture-in-picture at all, which is a separate\n* question from whether the browser supports it. Mirrors the branches\n* `requestPictureInPicture` takes below, so anything it would refuse to act on\n* reports as incapable here — an iframe embed whose provider has no\n* picture-in-picture can never enter it, however capable the browser is.\n*/\nfunction isPictureInPictureCapable(media) {\n\tif (isFunction(media.webkitSetPresentationMode)) return true;\n\treturn isMediaPictureInPictureCapable(media);\n}\nfunction isPictureInPicture(media) {\n\tif (media.webkitPresentationMode === \"picture-in-picture\") return true;\n\tif (document.pictureInPictureElement === media) return true;\n\treturn media.isPictureInPicture ?? false;\n}\nasync function requestPictureInPicture(media) {\n\tconst webkitVideo = media;\n\tif (isFunction(webkitVideo.webkitSetPresentationMode)) {\n\t\twebkitVideo.webkitSetPresentationMode(\"picture-in-picture\");\n\t\treturn;\n\t}\n\tconst video = media;\n\tif (isFunction(video.requestPictureInPicture)) return video.requestPictureInPicture();\n}\nasync function exitPictureInPicture(media) {\n\tconst webkitVideo = media;\n\tif (webkitVideo.webkitPresentationMode === \"picture-in-picture\" && isFunction(webkitVideo.webkitSetPresentationMode)) {\n\t\twebkitVideo.webkitSetPresentationMode(\"inline\");\n\t\treturn;\n\t}\n\tif (isFunction(document.exitPictureInPicture)) return document.exitPictureInPicture();\n\tconst video = media;\n\tif (isFunction(video.exitPictureInPicture)) return video.exitPictureInPicture();\n}\n//#endregion\nexport { exitPictureInPicture, isPictureInPicture, isPictureInPictureCapable, isPictureInPictureEnabled, requestPictureInPicture };\n\n//# sourceMappingURL=pip.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { exitFullscreen, isFullscreen, isFullscreenEnabled, requestFullscreen } from \"../../presentation/fullscreen.js\";\nimport { exitPictureInPicture, isPictureInPicture } from \"../../presentation/pip.js\";\nimport { listen } from \"@videojs/utils/dom\";\n//#region src/dom/store/features/fullscreen.ts\nconst fullscreenFeature = definePlayerFeature({\n\tname: \"fullscreen\",\n\tstate: ({ target }) => ({\n\t\tfullscreen: false,\n\t\tfullscreenAvailability: \"unavailable\",\n\t\tasync requestFullscreen() {\n\t\t\tconst { media, container } = target();\n\t\t\tif (isPictureInPicture(media)) await exitPictureInPicture(media);\n\t\t\treturn requestFullscreen(container, media);\n\t\t},\n\t\tasync exitFullscreen() {\n\t\t\tconst { media } = target();\n\t\t\treturn exitFullscreen(media);\n\t\t},\n\t\tasync toggleFullscreen() {\n\t\t\tconst { media, container } = target();\n\t\t\tif (isFullscreen(container, media)) return exitFullscreen(media);\n\t\t\tif (isPictureInPicture(media)) await exitPictureInPicture(media);\n\t\t\treturn requestFullscreen(container, media);\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media, container } = target;\n\t\tset({ fullscreenAvailability: isFullscreenEnabled() ? \"available\" : \"unsupported\" });\n\t\tconst sync = () => set({ fullscreen: isFullscreen(container, media) });\n\t\tsync();\n\t\tlisten(document, \"fullscreenchange\", sync, { signal });\n\t\tlisten(document, \"webkitfullscreenchange\", sync, { signal });\n\t\tif (\"webkitPresentationMode\" in media) listen(media, \"webkitpresentationmodechanged\", sync, { signal });\n\t}\n});\n//#endregion\nexport { fullscreenFeature };\n\n//# sourceMappingURL=fullscreen.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaLiveCapable } from \"@videojs/media\";\n//#region src/dom/store/features/live.ts\n/**\n* Player feature exposing `liveEdgeStart` and `targetLiveWindow` in store\n* state for media that implements `MediaLiveCapability` (currently\n* `HlsJsMedia` and its delegates).\n*\n* - `liveEdgeStart` — presentation time marking the start of the Live Edge\n* Window. Playing at the live edge when `currentTime >= liveEdgeStart`.\n* `NaN` when the stream isn't live or the value is unknown.\n* - `targetLiveWindow` — `0` for standard latency live, `Infinity` for DVR,\n* `NaN` for on-demand or unknown.\n*\n* Included by the {@link liveVideoFeatures} and {@link liveAudioFeatures}\n* presets; apps can also compose it into a custom preset.\n*\n* @see https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md\n*/\nconst liveFeature = definePlayerFeature({\n\tname: \"live\",\n\tstate: () => ({\n\t\tliveEdgeStart: NaN,\n\t\ttargetLiveWindow: NaN\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaLiveCapable(media)) return;\n\t\tconst sync = () => set({\n\t\t\tliveEdgeStart: media.liveEdgeStart,\n\t\t\ttargetLiveWindow: media.targetLiveWindow\n\t\t});\n\t\tsync();\n\t\tlisten(media, \"targetlivewindowchange\", sync, { signal });\n\t\tlisten(media, \"streamtypechange\", sync, { signal });\n\t\tlisten(media, \"loadedmetadata\", sync, { signal });\n\t\tlisten(media, \"canplay\", sync, { signal });\n\t\tlisten(media, \"progress\", sync, { signal });\n\t\tlisten(media, \"durationchange\", sync, { signal });\n\t\tlisten(media, \"timeupdate\", sync, { signal });\n\t\tlisten(media, \"emptied\", sync, { signal });\n\t}\n});\n//#endregion\nexport { liveFeature };\n\n//# sourceMappingURL=live.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaContentDataCapable } from \"@videojs/media\";\n//#region src/dom/store/features/metadata.ts\nconst MEDIA_CONTENT_TITLE = Symbol(\"@videojs/media-content-title\");\nconst USER_CONTENT_TITLE = Symbol(\"@videojs/user-content-title\");\nconst USER_DEFAULT_CONTENT_TITLE = Symbol(\"@videojs/user-default-content-title\");\nconst SET_USER_CONTENT_TITLE = Symbol(\"@videojs/set-user-content-title\");\nconst SET_USER_DEFAULT_CONTENT_TITLE = Symbol(\"@videojs/set-user-default-content-title\");\nconst DEFAULT_CONTENT_TITLE = \"\";\n/**\n* Resolves user, media, and fallback content-title metadata into player state.\n* Included in the standard audio, video, and live presets.\n*/\nconst metadataFeature = definePlayerFeature({\n\tname: \"metadata\",\n\tconfig: {\n\t\tcontentTitle: {\n\t\t\taction: SET_USER_CONTENT_TITLE,\n\t\t\tstate: USER_CONTENT_TITLE\n\t\t},\n\t\tdefaultContentTitle: {\n\t\t\taction: SET_USER_DEFAULT_CONTENT_TITLE,\n\t\t\tstate: USER_DEFAULT_CONTENT_TITLE\n\t\t}\n\t},\n\tstate: ({ set }) => ({\n\t\t[MEDIA_CONTENT_TITLE]: void 0,\n\t\t[USER_CONTENT_TITLE]: void 0,\n\t\t[USER_DEFAULT_CONTENT_TITLE]: void 0,\n\t\t[SET_USER_CONTENT_TITLE]: (value) => set({ [USER_CONTENT_TITLE]: value }),\n\t\t[SET_USER_DEFAULT_CONTENT_TITLE]: (value) => set({ [USER_DEFAULT_CONTENT_TITLE]: value }),\n\t\tsetContentTitle: (value) => set({ [USER_CONTENT_TITLE]: value }),\n\t\tsetDefaultContentTitle: (value) => set({ [USER_DEFAULT_CONTENT_TITLE]: value })\n\t}),\n\tderived: { contentTitle: ({ get }) => get()[USER_CONTENT_TITLE] ?? get()[MEDIA_CONTENT_TITLE] ?? get()[USER_DEFAULT_CONTENT_TITLE] ?? DEFAULT_CONTENT_TITLE },\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaContentDataCapable(media)) return;\n\t\tconst sync = () => set({ [MEDIA_CONTENT_TITLE]: media.contentData?.title });\n\t\tsync();\n\t\tlisten(media, \"contentdatachange\", sync, { signal });\n\t}\n});\n//#endregion\nexport { metadataFeature };\n\n//# sourceMappingURL=metadata.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { exitFullscreen, isFullscreen } from \"../../presentation/fullscreen.js\";\nimport { exitPictureInPicture, isPictureInPicture, isPictureInPictureCapable, isPictureInPictureEnabled, requestPictureInPicture } from \"../../presentation/pip.js\";\nimport { listen } from \"@videojs/utils/dom\";\n//#region src/dom/store/features/pip.ts\nconst pipFeature = definePlayerFeature({\n\tname: \"pip\",\n\tstate: ({ target }) => ({\n\t\tpip: false,\n\t\tpipAvailability: \"unavailable\",\n\t\tasync requestPictureInPicture() {\n\t\t\tconst { media, container } = target();\n\t\t\tif (isFullscreen(container, media)) await exitFullscreen(media);\n\t\t\treturn requestPictureInPicture(media);\n\t\t},\n\t\tasync exitPictureInPicture() {\n\t\t\tconst { media } = target();\n\t\t\treturn exitPictureInPicture(media);\n\t\t},\n\t\tasync togglePictureInPicture() {\n\t\t\tconst { media, container } = target();\n\t\t\tif (isPictureInPicture(media)) return exitPictureInPicture(media);\n\t\t\tif (isFullscreen(container, media)) await exitFullscreen(media);\n\t\t\treturn requestPictureInPicture(media);\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tset({ pipAvailability: isPictureInPictureEnabled() && isPictureInPictureCapable(media) ? \"available\" : \"unsupported\" });\n\t\tconst sync = () => set({ pip: isPictureInPicture(media) });\n\t\tsync();\n\t\tlisten(media, \"enterpictureinpicture\", sync, { signal });\n\t\tlisten(media, \"leavepictureinpicture\", sync, { signal });\n\t\tif (\"webkitPresentationMode\" in media) listen(media, \"webkitpresentationmodechanged\", sync, { signal });\n\t}\n});\n//#endregion\nexport { pipFeature };\n\n//# sourceMappingURL=pip.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaPauseCapable, isMediaSeekCapable, isMediaSourceCapable } from \"@videojs/media\";\n//#region src/dom/store/features/playback.ts\nconst playbackFeature = definePlayerFeature({\n\tname: \"playback\",\n\tstate: ({ target }) => ({\n\t\tpaused: true,\n\t\tended: false,\n\t\tstarted: false,\n\t\twaiting: false,\n\t\tplay() {\n\t\t\treturn target().media.play();\n\t\t},\n\t\tpause() {\n\t\t\tconst { media } = target();\n\t\t\tif (isMediaPauseCapable(media)) media.pause();\n\t\t},\n\t\ttogglePaused() {\n\t\t\tconst media = target().media;\n\t\t\tif (!isMediaPauseCapable(media)) return false;\n\t\t\tif (media.paused) {\n\t\t\t\tmedia.play();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tmedia.pause();\n\t\t\treturn false;\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaPauseCapable(media) || !isMediaSeekCapable(media) || !isMediaSourceCapable(media)) return;\n\t\tconst sync = () => set({\n\t\t\tpaused: media.paused,\n\t\t\tended: media.ended,\n\t\t\tstarted: !media.paused || media.currentTime > 0,\n\t\t\twaiting: media.readyState < HTMLMediaElement.HAVE_FUTURE_DATA && !media.paused\n\t\t});\n\t\tsync();\n\t\tlisten(media, \"emptied\", sync, { signal });\n\t\tlisten(media, \"play\", sync, { signal });\n\t\tlisten(media, \"pause\", sync, { signal });\n\t\tlisten(media, \"ended\", sync, { signal });\n\t\tlisten(media, \"playing\", sync, { signal });\n\t\tlisten(media, \"waiting\", sync, { signal });\n\t\tlisten(media, \"seeked\", sync, { signal });\n\t}\n});\n//#endregion\nexport { playbackFeature };\n\n//# sourceMappingURL=playback.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaPlaybackRateCapable } from \"@videojs/media\";\n//#region src/dom/store/features/playback-rate.ts\nconst DEFAULT_RATES = [\n\t.2,\n\t.5,\n\t.7,\n\t1,\n\t1.2,\n\t1.5,\n\t1.7,\n\t2\n];\nconst playbackRateFeature = definePlayerFeature({\n\tname: \"playbackRate\",\n\tstate: ({ target }) => ({\n\t\tplaybackRates: DEFAULT_RATES,\n\t\tplaybackRate: 1,\n\t\tsetPlaybackRate(rate) {\n\t\t\tconst { media } = target();\n\t\t\tif (isMediaPlaybackRateCapable(media)) media.playbackRate = rate;\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaPlaybackRateCapable(media)) return;\n\t\tconst sync = () => set({ playbackRate: media.playbackRate });\n\t\tsync();\n\t\tlisten(media, \"ratechange\", sync, { signal });\n\t}\n});\n//#endregion\nexport { playbackRateFeature };\n\n//# sourceMappingURL=playback-rate.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaVideoDimensionsCapable, isMediaVideoRenditionCapable } from \"@videojs/media\";\n//#region src/dom/store/features/quality.ts\nconst QUALITY_AUTO_VALUE = \"auto\";\nfunction getRenditionValue(rendition, index) {\n\treturn rendition.id || String(index);\n}\nfunction toMediaRendition(rendition) {\n\treturn {\n\t\t...rendition.id !== void 0 && { id: rendition.id },\n\t\t...rendition.width !== void 0 && { width: rendition.width },\n\t\t...rendition.height !== void 0 && { height: rendition.height },\n\t\t...rendition.bitrate !== void 0 && { bitrate: rendition.bitrate },\n\t\t...rendition.frameRate !== void 0 && { frameRate: rendition.frameRate },\n\t\t...rendition.codec !== void 0 && { codec: rendition.codec },\n\t\tselected: rendition.selected\n\t};\n}\nfunction getSize(rendition) {\n\tif (rendition.width && rendition.height) return Math.min(rendition.width, rendition.height);\n\treturn rendition.height ?? rendition.width;\n}\nconst qualityFeature = definePlayerFeature({\n\tname: \"quality\",\n\tstate: ({ target }) => ({\n\t\tvideoRenditionList: [],\n\t\tactiveVideoRendition: null,\n\t\tselectVideoRendition(value) {\n\t\t\tconst { media } = target();\n\t\t\tif (!isMediaVideoRenditionCapable(media)) return;\n\t\t\tif (value === QUALITY_AUTO_VALUE) {\n\t\t\t\tmedia.videoRenditions.selectedIndex = -1;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst index = [...media.videoRenditions].findIndex((rendition, renditionIndex) => getRenditionValue(rendition, renditionIndex) === value);\n\t\t\tif (index !== -1) media.videoRenditions.selectedIndex = index;\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tlet videoRenditions = null;\n\t\tlet cleanup = null;\n\t\tconst getVideoRenditions = () => isMediaVideoRenditionCapable(media) ? media.videoRenditions : null;\n\t\tconst getActiveRendition = (list) => {\n\t\t\tif (!list) return null;\n\t\t\tconst renditions = [...list];\n\t\t\tconst active = renditions.find((rendition) => rendition.active);\n\t\t\tif (active) return active;\n\t\t\tif (!isMediaVideoDimensionsCapable(media) || !media.videoWidth && !media.videoHeight) return null;\n\t\t\tconst size = getSize({\n\t\t\t\twidth: media.videoWidth || void 0,\n\t\t\t\theight: media.videoHeight || void 0\n\t\t\t});\n\t\t\tconst matches = renditions.filter((rendition) => getSize(rendition) === size);\n\t\t\treturn matches.length === 1 ? matches[0] : null;\n\t\t};\n\t\tconst sync = (list = getVideoRenditions()) => {\n\t\t\tconst active = getActiveRendition(list);\n\t\t\tset({\n\t\t\t\tvideoRenditionList: list ? [...list].map(toMediaRendition) : [],\n\t\t\t\tactiveVideoRendition: active ? toMediaRendition(active) : null\n\t\t\t});\n\t\t};\n\t\tconst bind = () => {\n\t\t\tconst nextVideoRenditions = getVideoRenditions();\n\t\t\tif (nextVideoRenditions === videoRenditions) {\n\t\t\t\tsync(nextVideoRenditions);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcleanup?.abort();\n\t\t\tcleanup = new AbortController();\n\t\t\tvideoRenditions = nextVideoRenditions;\n\t\t\tif (videoRenditions) {\n\t\t\t\tlisten(videoRenditions, \"addrendition\", () => sync(videoRenditions), { signal: cleanup.signal });\n\t\t\t\tlisten(videoRenditions, \"removerendition\", () => sync(videoRenditions), { signal: cleanup.signal });\n\t\t\t\tlisten(videoRenditions, \"change\", () => sync(videoRenditions), { signal: cleanup.signal });\n\t\t\t\tlisten(videoRenditions, \"activechange\", () => sync(videoRenditions), { signal: cleanup.signal });\n\t\t\t}\n\t\t\tsync(videoRenditions);\n\t\t};\n\t\tbind();\n\t\tlisten(media, \"loadstart\", bind, { signal });\n\t\tlisten(media, \"resize\", () => sync(videoRenditions), { signal });\n\t\tsignal.addEventListener(\"abort\", () => cleanup?.abort(), { once: true });\n\t}\n});\n//#endregion\nexport { qualityFeature };\n\n//# sourceMappingURL=quality.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { isRemotePlaybackConnected, requestRemotePlayback } from \"../../presentation/remote-playback.js\";\nimport { exitFullscreen, isFullscreen } from \"../../presentation/fullscreen.js\";\nimport { isWebKitAirPlayCapable, listen } from \"@videojs/utils/dom\";\nimport { isMediaRemotePlaybackCapable } from \"@videojs/media\";\n//#region src/dom/store/features/remote-playback.ts\nconst remotePlaybackFeature = definePlayerFeature({\n\tname: \"remotePlayback\",\n\tstate: ({ target }) => ({\n\t\tremotePlaybackState: \"disconnected\",\n\t\tremotePlaybackAvailability: \"unsupported\",\n\t\tasync toggleRemotePlayback() {\n\t\t\tconst { media, container } = target();\n\t\t\tif (isRemotePlaybackConnected(media)) return requestRemotePlayback(media);\n\t\t\tif (isFullscreen(container, media)) await exitFullscreen(media);\n\t\t\treturn await requestRemotePlayback(media);\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaRemotePlaybackCapable(media)) return;\n\t\tif (isWebKitAirPlayCapable(media)) {\n\t\t\tconst syncConnection = () => {\n\t\t\t\tset({ remotePlaybackState: media.webkitCurrentPlaybackTargetIsWireless ? \"connected\" : \"disconnected\" });\n\t\t\t};\n\t\t\tconst syncAvailability = (event) => {\n\t\t\t\tconst { availability } = event;\n\t\t\t\tset({ remotePlaybackAvailability: availability === \"available\" ? \"available\" : \"unavailable\" });\n\t\t\t};\n\t\t\tlisten(media, \"webkitplaybacktargetavailabilitychanged\", syncAvailability, { signal });\n\t\t\tlisten(media, \"webkitcurrentplaybacktargetiswirelesschanged\", syncConnection, { signal });\n\t\t\tsyncConnection();\n\t\t\treturn;\n\t\t}\n\t\tconst syncState = () => set({ remotePlaybackState: media.remote.state });\n\t\tsyncState();\n\t\tlisten(media.remote, \"connect\", syncState, { signal });\n\t\tlisten(media.remote, \"connecting\", syncState, { signal });\n\t\tlisten(media.remote, \"disconnect\", syncState, { signal });\n\t\tmedia.remote.watchAvailability((available) => {\n\t\t\tset({ remotePlaybackAvailability: available ? \"available\" : \"unavailable\" });\n\t\t}).catch(() => {\n\t\t\tset({ remotePlaybackAvailability: \"unsupported\" });\n\t\t});\n\t\tsignal.addEventListener(\"abort\", () => {\n\t\t\tmedia.remote?.cancelWatchAvailability?.().catch(() => {});\n\t\t});\n\t}\n});\n//#endregion\nexport { remotePlaybackFeature };\n\n//# sourceMappingURL=remote-playback.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaSourceCapable } from \"@videojs/media\";\n//#region src/dom/store/features/source.ts\nconst sourceFeature = definePlayerFeature({\n\tname: \"source\",\n\tstate: ({ target, signals }) => ({\n\t\tsource: null,\n\t\tcanPlay: false,\n\t\tloadSource(src) {\n\t\t\tsignals.clear();\n\t\t\tconst { media } = target();\n\t\t\tif (!isMediaSourceCapable(media)) return src;\n\t\t\tmedia.src = src;\n\t\t\tmedia.load();\n\t\t\treturn src;\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaSourceCapable(media)) return;\n\t\tconst sync = () => set({\n\t\t\tsource: media.currentSrc || media.src || null,\n\t\t\tcanPlay: media.readyState >= HTMLMediaElement.HAVE_ENOUGH_DATA\n\t\t});\n\t\tsync();\n\t\tlisten(media, \"canplay\", sync, { signal });\n\t\tlisten(media, \"canplaythrough\", sync, { signal });\n\t\tlisten(media, \"loadstart\", sync, { signal });\n\t\tlisten(media, \"emptied\", sync, { signal });\n\t}\n});\n//#endregion\nexport { sourceFeature };\n\n//# sourceMappingURL=source.js.map","import { findLocaleKeys, getCanonicalLocaleKey } from \"../../../core/i18n/registry.js\";\nimport { DEFAULT_LOCALE } from \"../../../i18n.js\";\nimport { definePlayerFeature } from \"../../feature.js\";\nimport { findTrackElement, isCaptionOrSubtitleTrack, listen } from \"@videojs/utils/dom\";\nimport { isMediaTextTrackCapable, isQuerySelectorAllCapable } from \"@videojs/media\";\n//#region src/dom/store/features/text-track.ts\nfunction getTrackId(track, index) {\n\treturn track.id || `track:${index}:${track.kind}:${track.language}:${track.label}`;\n}\n/**\n* Caption/subtitle tracks paired with the ids exposed through `textTrackList`,\n* ordered like the captions menu so index-based fallbacks agree with the UI.\n*/\nfunction getSubtitlesTracks(media) {\n\treturn Array.from(media.textTracks).map((track, index) => ({\n\t\tid: getTrackId(track, index),\n\t\ttrack\n\t})).filter(({ track }) => isCaptionOrSubtitleTrack(track)).sort((a, b) => a.track.kind > b.track.kind ? 1 : a.track.kind < b.track.kind ? -1 : 0);\n}\n/** Show at most one caption/subtitle track; passing `null` disables them all. */\nfunction showOnly(tracks, active) {\n\tfor (const { track } of tracks) {\n\t\tconst mode = track === active ? \"showing\" : \"disabled\";\n\t\tif (track.mode !== mode) track.mode = mode;\n\t}\n}\nfunction findLocaleTrack(tracks, locale) {\n\tconst localeKey = getCanonicalLocaleKey(locale);\n\tconst keys = findLocaleKeys(locale);\n\tif (localeKey !== DEFAULT_LOCALE && !localeKey.startsWith(`${DEFAULT_LOCALE}-`)) keys.pop();\n\tfor (const key of keys) {\n\t\tconst exact = tracks.find(({ track }) => getCanonicalLocaleKey(track.language) === key);\n\t\tif (exact) return exact;\n\t\tconst regional = tracks.find(({ track }) => getCanonicalLocaleKey(track.language).startsWith(`${key}-`));\n\t\tif (regional) return regional;\n\t}\n}\nconst textTrackFeature = definePlayerFeature({\n\tname: \"textTrack\",\n\tstate: ({ target }) => {\n\t\tlet lastShownId = null;\n\t\treturn {\n\t\t\tchaptersCues: [],\n\t\t\tthumbnailCues: [],\n\t\t\tthumbnailTrackSrc: null,\n\t\t\ttextTrackList: [],\n\t\t\tsubtitlesShowing: false,\n\t\t\ttoggleSubtitles(forceShow) {\n\t\t\t\tconst { media } = target();\n\t\t\t\tif (!isMediaTextTrackCapable(media)) return false;\n\t\t\t\tconst subtitlesTracks = getSubtitlesTracks(media);\n\t\t\t\tif (!subtitlesTracks.length) return false;\n\t\t\t\tconst showing = subtitlesTracks.find(({ track }) => track.mode === \"showing\");\n\t\t\t\tconst nextShowing = forceShow ?? !showing;\n\t\t\t\tif (showing) lastShownId = showing.id;\n\t\t\t\tif (!nextShowing) {\n\t\t\t\t\tshowOnly(subtitlesTracks, null);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst next = showing ?? subtitlesTracks.find(({ id }) => id === lastShownId) ?? findLocaleTrack(subtitlesTracks, globalThis.navigator?.language ?? \"\") ?? subtitlesTracks[0];\n\t\t\t\tlastShownId = next.id;\n\t\t\t\tshowOnly(subtitlesTracks, next.track);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tselectSubtitlesTrack(value) {\n\t\t\t\tconst { media } = target();\n\t\t\t\tif (!isMediaTextTrackCapable(media)) return;\n\t\t\t\tconst subtitlesTracks = getSubtitlesTracks(media);\n\t\t\t\tif (!subtitlesTracks.length) return;\n\t\t\t\tif (value === \"off\") {\n\t\t\t\t\tconst showing = subtitlesTracks.find(({ track }) => track.mode === \"showing\");\n\t\t\t\t\tif (showing) lastShownId = showing.id;\n\t\t\t\t\tshowOnly(subtitlesTracks, null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst active = subtitlesTracks.find(({ id }) => id === value);\n\t\t\t\tif (!active) return;\n\t\t\t\tlastShownId = active.id;\n\t\t\t\tshowOnly(subtitlesTracks, active.track);\n\t\t\t}\n\t\t};\n\t},\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaTextTrackCapable(media)) return;\n\t\tlet trackCleanup = null;\n\t\tconst sync = () => {\n\t\t\ttrackCleanup?.abort();\n\t\t\ttrackCleanup = new AbortController();\n\t\t\tlet chaptersTrack = null;\n\t\t\tlet thumbnailTrack = null;\n\t\t\tconst textTrackList = [];\n\t\t\tlet subtitlesShowing = false;\n\t\t\tfor (let i = 0; i < media.textTracks.length; i++) {\n\t\t\t\tconst track = media.textTracks[i];\n\t\t\t\tif (!chaptersTrack && track.kind === \"chapters\") chaptersTrack = track;\n\t\t\t\tif (!thumbnailTrack && track.kind === \"metadata\" && track.label === \"thumbnails\") thumbnailTrack = track;\n\t\t\t\ttextTrackList.push({\n\t\t\t\t\tid: getTrackId(track, i),\n\t\t\t\t\tkind: track.kind,\n\t\t\t\t\tlabel: track.label,\n\t\t\t\t\tlanguage: track.language,\n\t\t\t\t\tmode: track.mode\n\t\t\t\t});\n\t\t\t\tif (isCaptionOrSubtitleTrack(track) && track.mode === \"showing\") subtitlesShowing = true;\n\t\t\t}\n\t\t\tconst chaptersCues = chaptersTrack?.cues ? Array.from(chaptersTrack.cues) : [];\n\t\t\tconst thumbnailCues = thumbnailTrack?.cues ? Array.from(thumbnailTrack.cues) : [];\n\t\t\tlet thumbnailTrackSrc = null;\n\t\t\tif (thumbnailTrack) thumbnailTrackSrc = findTrackElement(media, thumbnailTrack)?.src ?? null;\n\t\t\tconst tracks = isQuerySelectorAllCapable(media) && media.querySelectorAll(\"track\") || [];\n\t\t\tconst shadowTracks = media instanceof HTMLElement && media.shadowRoot?.querySelectorAll(\"track\") || [];\n\t\t\tfor (const trackEl of [...tracks, ...shadowTracks]) if (!trackEl.track?.cues?.length) listen(trackEl, \"load\", sync, { signal: trackCleanup.signal });\n\t\t\tset({\n\t\t\t\tchaptersCues,\n\t\t\t\tthumbnailCues,\n\t\t\t\tthumbnailTrackSrc,\n\t\t\t\ttextTrackList,\n\t\t\t\tsubtitlesShowing\n\t\t\t});\n\t\t};\n\t\tsync();\n\t\tconst textTracks = media.textTracks;\n\t\tif (textTracks instanceof EventTarget) {\n\t\t\tlisten(textTracks, \"addtrack\", sync, { signal });\n\t\t\tlisten(textTracks, \"removetrack\", sync, { signal });\n\t\t\tlisten(textTracks, \"change\", sync, { signal });\n\t\t}\n\t\tlisten(media, \"loadstart\", sync, { signal });\n\t\tsignal.addEventListener(\"abort\", () => trackCleanup?.abort(), { once: true });\n\t}\n});\n//#endregion\nexport { textTrackFeature };\n\n//# sourceMappingURL=text-track.js.map","//#region src/dom/store/signal-keys.ts\nconst signalKeys = { seek: Symbol.for(\"@videojs/seek\") };\n//#endregion\nexport { signalKeys };\n\n//# sourceMappingURL=signal-keys.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { signalKeys } from \"../signal-keys.js\";\nimport { listen, onEvent } from \"@videojs/utils/dom\";\nimport { hasMetadata, isMediaBufferCapable, isMediaSeekCapable, isMediaSourceCapable } from \"@videojs/media\";\nimport { noop } from \"@videojs/utils/function\";\n//#region src/dom/store/features/time.ts\nconst timeFeature = definePlayerFeature({\n\tname: \"time\",\n\tstate: ({ target, signals, set }) => ({\n\t\tcurrentTime: 0,\n\t\tduration: 0,\n\t\tseeking: false,\n\t\tasync seek(time) {\n\t\t\tconst { media } = target(), signal = signals.supersede(signalKeys.seek);\n\t\t\tif (!isMediaSeekCapable(media) || !isMediaSourceCapable(media)) return 0;\n\t\t\tif (!hasMetadata(media)) {\n\t\t\t\tif (!await onEvent(media, \"loadedmetadata\", { signal }).catch(() => false)) return media.currentTime;\n\t\t\t}\n\t\t\tconst clampedTime = Math.max(0, Math.min(time, media.duration || Infinity));\n\t\t\tset({\n\t\t\t\tcurrentTime: clampedTime,\n\t\t\t\tseeking: true\n\t\t\t});\n\t\t\tmedia.currentTime = clampedTime;\n\t\t\tawait onEvent(media, \"seeked\", { signal }).catch(noop);\n\t\t\treturn media.currentTime;\n\t\t}\n\t}),\n\tattach({ target, signal, set, get }) {\n\t\tconst { media } = target;\n\t\tif (!isMediaSeekCapable(media)) return;\n\t\tconst resolveDuration = () => {\n\t\t\tconst { duration } = media;\n\t\t\tif (duration === Number.POSITIVE_INFINITY && isMediaBufferCapable(media)) {\n\t\t\t\tconst { seekable } = media;\n\t\t\t\treturn seekable.length > 0 ? seekable.end(seekable.length - 1) : 0;\n\t\t\t}\n\t\t\treturn Number.isFinite(duration) ? duration : 0;\n\t\t};\n\t\tconst sync = () => set({\n\t\t\tcurrentTime: media.currentTime,\n\t\t\tduration: resolveDuration(),\n\t\t\tseeking: media.seeking\n\t\t});\n\t\tconst syncUnlessSeeking = () => {\n\t\t\tif (get().seeking) return;\n\t\t\tsync();\n\t\t};\n\t\tsync();\n\t\tlisten(media, \"timeupdate\", syncUnlessSeeking, { signal });\n\t\tlisten(media, \"durationchange\", sync, { signal });\n\t\tlisten(media, \"seeking\", sync, { signal });\n\t\tlisten(media, \"seeked\", sync, { signal });\n\t\tlisten(media, \"loadedmetadata\", sync, { signal });\n\t\tlisten(media, \"emptied\", sync, { signal });\n\t\tlisten(media, \"progress\", syncUnlessSeeking, { signal });\n\t}\n});\n//#endregion\nexport { timeFeature };\n\n//# sourceMappingURL=time.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { listen } from \"@videojs/utils/dom\";\nimport { isMediaMutedCapable, isMediaVolumeCapable } from \"@videojs/media\";\n//#region src/dom/store/features/volume.ts\n/** Volume to restore when unmuting at zero. */\nconst UNMUTE_VOLUME = .25;\nconst volumeFeature = definePlayerFeature({\n\tname: \"volume\",\n\tstate: ({ target }) => ({\n\t\tvolume: 1,\n\t\tmuted: false,\n\t\tvolumeAvailability: \"unavailable\",\n\t\tmutedAvailability: \"unavailable\",\n\t\tsetVolume(volume) {\n\t\t\tconst { media } = target();\n\t\t\tif (!isMediaVolumeCapable(media)) return 0;\n\t\t\tconst clamped = Math.max(0, Math.min(1, volume));\n\t\t\tif (clamped > 0 && media.muted) media.muted = false;\n\t\t\tmedia.volume = clamped;\n\t\t\treturn media.volume;\n\t\t},\n\t\ttoggleMuted() {\n\t\t\tconst { media } = target();\n\t\t\tif (!isMediaMutedCapable(media)) return false;\n\t\t\tif (!isMediaVolumeCapable(media)) {\n\t\t\t\tmedia.muted = !media.muted;\n\t\t\t\treturn media.muted;\n\t\t\t}\n\t\t\tif (media.muted || media.volume === 0) {\n\t\t\t\tmedia.muted = false;\n\t\t\t\tif (media.volume === 0) media.volume = UNMUTE_VOLUME;\n\t\t\t} else media.muted = true;\n\t\t\treturn media.muted;\n\t\t}\n\t}),\n\tattach({ target, signal, set }) {\n\t\tconst { media } = target;\n\t\tconst volumeCapable = isMediaVolumeCapable(media);\n\t\tconst mutedCapable = isMediaMutedCapable(media);\n\t\tif (!volumeCapable && !mutedCapable) return;\n\t\tset({\n\t\t\tvolumeAvailability: volumeCapable ? canSetVolume() : \"unavailable\",\n\t\t\tmutedAvailability: mutedCapable ? \"available\" : \"unavailable\"\n\t\t});\n\t\tconst sync = () => set({\n\t\t\tvolume: volumeCapable ? media.volume : 1,\n\t\t\tmuted: mutedCapable ? media.muted : false\n\t\t});\n\t\tsync();\n\t\tlisten(media, \"volumechange\", sync, { signal });\n\t}\n});\n/** Check if volume can be programmatically set (fails on iOS Safari). */\nfunction canSetVolume() {\n\tconst video = document.createElement(\"video\");\n\ttry {\n\t\tvideo.volume = .5;\n\t\treturn video.volume === .5 ? \"available\" : \"unsupported\";\n\t} catch {\n\t\treturn \"unsupported\";\n\t}\n}\n//#endregion\nexport { volumeFeature };\n\n//# sourceMappingURL=volume.js.map","import { audioTrackFeature } from \"./audio-track.js\";\nimport { bufferFeature } from \"./buffer.js\";\nimport { controlsFeature } from \"./controls.js\";\nimport { errorFeature } from \"./error.js\";\nimport { fullscreenFeature } from \"./fullscreen.js\";\nimport { liveFeature } from \"./live.js\";\nimport { metadataFeature } from \"./metadata.js\";\nimport { pipFeature } from \"./pip.js\";\nimport { playbackFeature } from \"./playback.js\";\nimport { playbackRateFeature } from \"./playback-rate.js\";\nimport { qualityFeature } from \"./quality.js\";\nimport { remotePlaybackFeature } from \"./remote-playback.js\";\nimport { sourceFeature } from \"./source.js\";\nimport { textTrackFeature } from \"./text-track.js\";\nimport { timeFeature } from \"./time.js\";\nimport { volumeFeature } from \"./volume.js\";\n//#region src/dom/store/features/presets.ts\nconst videoFeatures = [\n\tplaybackFeature,\n\tplaybackRateFeature,\n\tqualityFeature,\n\taudioTrackFeature,\n\tvolumeFeature,\n\ttimeFeature,\n\tsourceFeature,\n\tbufferFeature,\n\tfullscreenFeature,\n\tpipFeature,\n\tremotePlaybackFeature,\n\tcontrolsFeature,\n\ttextTrackFeature,\n\terrorFeature,\n\tmetadataFeature\n];\nconst audioFeatures = [\n\tplaybackFeature,\n\tplaybackRateFeature,\n\tvolumeFeature,\n\ttimeFeature,\n\tsourceFeature,\n\tbufferFeature,\n\terrorFeature,\n\tmetadataFeature\n];\nconst backgroundFeatures = [];\n/**\n* Features for a live video player. Mirrors {@link videoFeatures} but drops\n* {@link playbackRateFeature} (not meaningful for live) and adds\n* {@link liveFeature} so store consumers can read `liveEdgeStart` and\n* `targetLiveWindow`.\n*/\nconst liveVideoFeatures = [\n\tplaybackFeature,\n\tvolumeFeature,\n\ttimeFeature,\n\tsourceFeature,\n\tbufferFeature,\n\tfullscreenFeature,\n\tpipFeature,\n\tremotePlaybackFeature,\n\tcontrolsFeature,\n\ttextTrackFeature,\n\terrorFeature,\n\tliveFeature,\n\tmetadataFeature\n];\n/**\n* Features for a live audio player. Mirrors {@link audioFeatures} but drops\n* {@link playbackRateFeature} (not meaningful for live) and adds\n* {@link liveFeature} so store consumers can read `liveEdgeStart` and\n* `targetLiveWindow`.\n*/\nconst liveAudioFeatures = [\n\tplaybackFeature,\n\tvolumeFeature,\n\ttimeFeature,\n\tsourceFeature,\n\tbufferFeature,\n\terrorFeature,\n\tliveFeature,\n\tmetadataFeature\n];\n//#endregion\nexport { audioFeatures, backgroundFeatures, liveAudioFeatures, liveVideoFeatures, videoFeatures };\n\n//# sourceMappingURL=presets.js.map","import { shallowEqual } from \"../../core/shallow-equal.js\";\nimport { noop } from \"@videojs/utils/function\";\n//#region src/html/controllers/snapshot-controller.ts\n/**\n* Subscribe to a `State<T>` container with optional selector.\n*\n* Without selector: returns full state, re-renders on any state change.\n* With selector: returns selected slice, re-renders only when the slice changes (shallowEqual).\n*\n* @example\n* ```ts\n* #state = new SnapshotController(this, sliderState, (s) => s.value);\n* ```\n*/\nvar SnapshotController = class {\n\t#host;\n\t#selector;\n\t#state;\n\t#cached;\n\t#unsubscribe = noop;\n\tconstructor(host, state, selector) {\n\t\tthis.#host = host;\n\t\tthis.#state = state;\n\t\tthis.#selector = selector;\n\t\thost.addController(this);\n\t}\n\tget value() {\n\t\tif (!this.#selector) return this.#state.current;\n\t\tthis.#cached ??= this.#selector(this.#state.current);\n\t\treturn this.#cached;\n\t}\n\t/** Switch to tracking a different state container. */\n\ttrack(state) {\n\t\tthis.#state = state;\n\t\tthis.#subscribe();\n\t}\n\thostConnected() {\n\t\tthis.#subscribe();\n\t}\n\thostDisconnected() {\n\t\tthis.#unsubscribe();\n\t\tthis.#unsubscribe = noop;\n\t\tthis.#cached = void 0;\n\t}\n\t#subscribe() {\n\t\tthis.#unsubscribe();\n\t\tif (!this.#selector) {\n\t\t\tthis.#unsubscribe = this.#state.subscribe(() => this.#host.requestUpdate());\n\t\t\treturn;\n\t\t}\n\t\tconst selector = this.#selector;\n\t\tthis.#cached = selector(this.#state.current);\n\t\tthis.#unsubscribe = this.#state.subscribe(() => {\n\t\t\tconst next = selector(this.#state.current);\n\t\t\tif (!shallowEqual(this.#cached, next)) {\n\t\t\t\tthis.#cached = next;\n\t\t\t\tthis.#host.requestUpdate();\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\nexport { SnapshotController };\n\n//# sourceMappingURL=snapshot-controller.js.map","import { isStore } from \"../core/store.js\";\nimport { noop } from \"@videojs/utils/function\";\nimport { ContextConsumer } from \"@videojs/element/context\";\n//#region src/html/store-accessor.ts\n/**\n* Resolves a store from either a direct instance or context.\n*\n* When given a direct store, provides immediate access.\n* When given a context, sets up a ContextConsumer to receive the store.\n*\n* @example Direct store\n* ```ts\n* const accessor = new StoreAccessor(host, store, (s) => console.log('available', s));\n* accessor.value; // Store (immediately available)\n* ```\n*\n* @example Context source\n* ```ts\n* const accessor = new StoreAccessor(host, context, (s) => console.log('available', s));\n* accessor.value; // null until context provides store\n* ```\n*/\nvar StoreAccessor = class {\n\t#onAvailable;\n\t#consumer;\n\t#directStore;\n\tconstructor(host, source, onAvailable) {\n\t\tthis.#onAvailable = onAvailable ?? noop;\n\t\tif (isStore(source)) {\n\t\t\tthis.#directStore = source;\n\t\t\tthis.#consumer = null;\n\t\t} else {\n\t\t\tthis.#directStore = null;\n\t\t\tthis.#consumer = new ContextConsumer(host, {\n\t\t\t\tcontext: source,\n\t\t\t\tcallback: (store) => this.#onAvailable(store),\n\t\t\t\tsubscribe: false\n\t\t\t});\n\t\t}\n\t\thost.addController(this);\n\t}\n\t/** Returns the store, or null if not yet available from context. */\n\tget value() {\n\t\tif (this.#consumer) return this.#consumer.value ?? null;\n\t\treturn this.#directStore;\n\t}\n\thostConnected() {\n\t\tif (this.#directStore) this.#onAvailable(this.#directStore);\n\t}\n};\n//#endregion\nexport { StoreAccessor };\n\n//# sourceMappingURL=store-accessor.js.map","import { SnapshotController } from \"./snapshot-controller.js\";\nimport { StoreAccessor } from \"../store-accessor.js\";\nimport { isNull, isUndefined } from \"@videojs/utils/predicate\";\n//#region src/html/controllers/store-controller.ts\n/**\n* Access store state and actions.\n*\n* Without selector: Returns the store, does NOT subscribe to changes.\n* With selector: Returns selected state, triggers update when selected state changes (shallowEqual).\n*\n* @example\n* ```ts\n* // Store access (no subscription) - access actions\n* class Controls extends LitElement {\n* #store = new StoreController(this, storeSource);\n*\n* handleClick() {\n* this.#store.value.setVolume(0.5);\n* }\n* }\n*\n* // Selector-based subscription - re-renders when playback changes\n* class PlayButton extends LitElement {\n* #playback = new StoreController(this, storeSource, selectPlayback);\n*\n* render() {\n* const playback = this.#playback.value;\n* if (!playback) return nothing;\n* return html`<button @click=${playback.toggle}>\n* ${playback.paused ? 'Play' : 'Pause'}\n* </button>`;\n* }\n* }\n* ```\n*/\nvar StoreController = class {\n\t#host;\n\t#selector;\n\t#accessor;\n\t#snapshot = null;\n\tconstructor(host, source, selector) {\n\t\tthis.#host = host;\n\t\tthis.#selector = selector;\n\t\tthis.#accessor = new StoreAccessor(host, source, (store) => this.#connect(store));\n\t\thost.addController(this);\n\t}\n\tget value() {\n\t\tconst store = this.#accessor.value;\n\t\tif (isNull(store)) throw new Error(\"Store not available\");\n\t\tif (isUndefined(this.#selector)) return store;\n\t\treturn this.#snapshot.value;\n\t}\n\thostConnected() {}\n\t#connect(store) {\n\t\tif (isUndefined(this.#selector)) return;\n\t\tif (!this.#snapshot) this.#snapshot = new SnapshotController(this.#host, store.$state, this.#selector);\n\t\telse this.#snapshot.track(store.$state);\n\t}\n};\n//#endregion\nexport { StoreController };\n\n//# sourceMappingURL=store-controller.js.map","import type { PlayerStore } from '@videojs/core/dom';\nimport type { ReactiveController, ReactiveControllerHost } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { InferStoreState, Selector } from '@videojs/store';\nimport { StoreController } from '@videojs/store/html';\n\nimport type { PlayerContext } from './context';\n\nexport type PlayerControllerHost = ReactiveControllerHost & HTMLElement;\n\n/**\n * Reactive controller for accessing player store state.\n *\n * Without selector: Returns the store, does NOT subscribe to changes.\n * With selector: Returns selected state, subscribes with shallowEqual comparison.\n *\n * @example\n * ```ts\n * // Store access (no subscription)\n * class Controls extends MediaElement {\n * #player = new PlayerController(this, playerContext);\n *\n * handleClick() {\n * this.#player.value.setVolume(0.5);\n * }\n * }\n *\n * // Selector-based subscription\n * class PlayButton extends MediaElement {\n * #playback = new PlayerController(this, playerContext, selectPlayback);\n * }\n * ```\n */\nexport class PlayerController<Store extends PlayerStore, Result = Store> implements ReactiveController {\n readonly #host: PlayerControllerHost;\n readonly #selector: Selector<InferStoreState<Store>, Result> | undefined;\n\n #consumer: ContextConsumer<PlayerContext<Store>, PlayerControllerHost>;\n #store: StoreController<Store, Result> | null = null;\n\n /**\n * @label Without Selector\n * @param host - The host element that owns this controller.\n * @param context - Player context to resolve the store from.\n */\n constructor(host: PlayerControllerHost, context: PlayerContext<Store>);\n /**\n * @label With Selector\n * @param host - The host element that owns this controller.\n * @param context - Player context to resolve the store from.\n * @param selector - Derives a value from the player store state.\n */\n constructor(\n host: PlayerControllerHost,\n context: PlayerContext<Store>,\n selector: Selector<InferStoreState<Store>, Result>\n );\n constructor(\n host: PlayerControllerHost,\n context: PlayerContext<Store>,\n selector?: Selector<InferStoreState<Store>, Result>\n ) {\n this.#host = host;\n this.#selector = selector;\n\n this.#consumer = new ContextConsumer(host, {\n context,\n callback: (ctx) => this.#connect(ctx),\n subscribe: true,\n });\n\n host.addController(this);\n }\n\n get value(): Result | undefined {\n const store = this.#consumer.value;\n if (!store) return undefined;\n\n // Without selector: return store directly\n if (!this.#selector) return store as unknown as Result;\n\n // With selector: use StoreController\n return this.#store?.value;\n }\n\n get displayName(): string | undefined {\n return this.#selector?.displayName;\n }\n\n hostConnected(): void {\n const store = this.#consumer.value;\n if (store) this.#connect(store);\n }\n\n hostDisconnected(): void {\n this.#store = null;\n }\n\n #connect(store: Store): void {\n if (!this.#store && this.#selector) {\n this.#store = new StoreController(this.#host, store, this.#selector);\n }\n }\n}\n\nexport namespace PlayerController {\n export type Host = PlayerControllerHost;\n\n export type Constructor<Store extends PlayerStore = PlayerStore, Result = Store> = typeof PlayerController<\n Store,\n Result\n >;\n}\n","import {\n type MediaContainer,\n type PlayerFeatureConfig,\n type PlayerStore,\n type PlayerTarget,\n setPlayerConfigValue,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport type { Media } from '@videojs/media/dom';\nimport { isNull } from '@videojs/utils/predicate';\nimport { kebabCase } from '@videojs/utils/string';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, MediaContext, PlayerContext } from '../player/context';\nimport type { PlayerProviderConstructor } from './types';\n\nexport interface ProviderMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n mediaContext: MediaContext;\n containerContext: ContainerContext;\n factory: () => Store;\n config: PlayerFeatureConfig;\n}\n\nexport type ProviderMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerProviderConstructor<Store>;\n\n/**\n * Create a mixin that provides player context to descendant elements and\n * owns the `store.attach()` lifecycle.\n *\n * Media and container elements register themselves via media/container\n * contexts that carry both the current value and a setter. When a media\n * element is available, the provider calls `store.attach({ media, container })`.\n *\n * As a fallback for plain `<video>`/`<audio>` that can't consume context,\n * the provider queries its subtree after a microtask.\n *\n * @param options - Provider options with contexts, store factory, and feature configuration.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n options: ProviderMixinConfig<Store>\n): ProviderMixin<Store> {\n const configKeys = Object.keys(options.config);\n\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass {\n static properties = {\n ...(BaseClass as unknown as { properties: PropertyDeclarationMap }).properties,\n ...Object.fromEntries(configKeys.map((key) => [key, { type: String, attribute: kebabCase(key) }])),\n };\n\n #store: Store | null = options.factory();\n #configuredStore: Store | null = null;\n #detach: (() => void) | null = null;\n #media: Media | null = null;\n #container: MediaContainer | null = null;\n #fallbackQueued = false;\n\n #setMedia = (media: Media | null): void => {\n if (this.#media === media) return;\n this.#media = media;\n this.#mediaProvider.setValue({ media, setMedia: this.#setMedia });\n this.#tryAttach();\n };\n\n #setContainer = (container: MediaContainer | null): void => {\n if (this.#container === container) return;\n this.#container = container;\n this.#containerProvider.setValue({\n container,\n setContainer: this.#setContainer,\n });\n this.#tryAttach();\n };\n\n #playerProvider = new ContextProvider(this, {\n context: options.playerContext,\n initialValue: this.store,\n });\n\n #mediaProvider = new ContextProvider(this, {\n context: options.mediaContext,\n initialValue: { media: this.#media, setMedia: this.#setMedia },\n });\n\n #containerProvider = new ContextProvider(this, {\n context: options.containerContext,\n initialValue: {\n container: this.#container,\n setContainer: this.#setContainer,\n },\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = options.factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\n this.#syncInitialConfig();\n super.connectedCallback();\n this.#playerProvider.setValue(this.store);\n this.#mediaProvider.setValue({ media: this.#media, setMedia: this.#setMedia });\n this.#containerProvider.setValue({\n container: this.#container,\n setContainer: this.#setContainer,\n });\n this.#tryAttach();\n this.#queueFallbackDiscovery();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#detachStore();\n }\n\n override destroyCallback() {\n this.#detachStore();\n this.#store?.destroy();\n this.#store = null;\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n\n // Configuration flows one way: only actual reactive property changes\n // write to the store. Store-side writers do not reflect back here.\n for (const key of configKeys) {\n if (!changed.has(key)) continue;\n setPlayerConfigValue(this.store, options.config[key]!, (this as unknown as Record<string, unknown>)[key]);\n }\n }\n\n #tryAttach(): void {\n const store = this.#store;\n if (!store) return;\n\n if (!this.#media) {\n this.#detachStore();\n return;\n }\n\n const target: PlayerTarget = {\n media: this.#media,\n container: this.#container,\n };\n\n const hasMediaChanged = store.target?.media !== target.media;\n const hasContainerChanged = store.target?.container !== target.container;\n\n if (hasMediaChanged || hasContainerChanged) {\n this.#detachStore();\n this.#detach = store.attach(target);\n }\n }\n\n #detachStore(): void {\n this.#detach?.();\n this.#detach = null;\n }\n\n #syncInitialConfig(): void {\n const store = this.store;\n if (this.#configuredStore === store) return;\n\n for (const key of configKeys) {\n setPlayerConfigValue(store, options.config[key]!, (this as unknown as Record<string, unknown>)[key]);\n }\n this.#configuredStore = store;\n }\n\n #queueFallbackDiscovery(): void {\n if (this.#media || this.#fallbackQueued) return;\n this.#fallbackQueued = true;\n\n queueMicrotask(() => {\n this.#fallbackQueued = false;\n\n // Context already registered media — skip fallback.\n if (this.#media) return;\n\n const media = this.querySelector<HTMLMediaElement>('video, audio');\n if (media) {\n this.#setMedia(media);\n }\n });\n }\n }\n\n return PlayerProviderElement as unknown as Class & PlayerProviderConstructor<Store>;\n };\n}\n","import {\n type AnyPlayerFeature,\n type AudioFeatures,\n type AudioPlayerStore,\n combinePlayerFeatureConfigs,\n type PlayerStore,\n type PlayerTarget,\n type VideoFeatures,\n type VideoPlayerStore,\n} from '@videojs/core/dom';\nimport { combine, createStore } from '@videojs/store';\n\nimport { createProviderMixin, type ProviderMixin } from '../store/provider-mixin';\nimport { containerContext, mediaContext, type PlayerContext, playerContext } from './context';\nimport { PlayerController } from './player-controller';\n\nexport interface CreatePlayerConfig<Features extends AnyPlayerFeature[]> {\n features: Features;\n}\n\nexport interface CreatePlayerResult<Store extends PlayerStore> {\n /** Context for consuming player in controllers. */\n context: PlayerContext<Store>;\n\n /** Creates a store instance for imperative access. */\n create: () => Store;\n\n /** Player controller bound to this player's context. */\n PlayerController: PlayerController.Constructor<Store>;\n\n /** Mixin that provides player context to descendants. */\n ProviderMixin: ProviderMixin<Store>;\n}\n\n/**\n * Creates a player factory with a typed store, provider mixin, and controller.\n *\n * @example\n * ```ts\n * import { createPlayer, MediaElement, selectPlayback } from '@videojs/html';\n * import { videoFeatures } from '@videojs/html/video';\n *\n * const { ProviderMixin, PlayerController, context } = createPlayer({\n * features: videoFeatures,\n * });\n *\n * // Provider element: owns the store, provides context to descendants\n * class VideoPlayer extends ProviderMixin(MediaElement) {}\n * customElements.define('video-player', VideoPlayer);\n *\n * // Control element with selector\n * class PlayButton extends MediaElement {\n * #playback = new PlayerController(this, context, selectPlayback);\n * }\n * ```\n *\n * @label Video\n * @param config - Player configuration with features.\n */\nexport function createPlayer(config: CreatePlayerConfig<VideoFeatures>): CreatePlayerResult<VideoPlayerStore>;\n\n/**\n * Creates a player factory for audio media.\n *\n * @label Audio\n * @param config - Player configuration with features.\n */\nexport function createPlayer(config: CreatePlayerConfig<AudioFeatures>): CreatePlayerResult<AudioPlayerStore>;\n\n/**\n * Creates a player factory with custom features.\n *\n * @label Generic\n * @param config - Player configuration with features.\n */\nexport function createPlayer<const Features extends AnyPlayerFeature[]>(\n config: CreatePlayerConfig<Features>\n): CreatePlayerResult<PlayerStore<Features>>;\n\nexport function createPlayer(config: CreatePlayerConfig<AnyPlayerFeature[]>): CreatePlayerResult<PlayerStore> {\n const slice = combine(...config.features);\n const featureConfig = combinePlayerFeatureConfigs(config.features);\n\n function create(): PlayerStore {\n return createStore<PlayerTarget>()(slice);\n }\n\n const ProviderMixin = createProviderMixin<PlayerStore>({\n playerContext,\n mediaContext,\n containerContext,\n factory: create,\n config: featureConfig,\n });\n\n return {\n context: playerContext,\n create,\n PlayerController,\n ProviderMixin,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{a as e,r as t,s as n,u as r}from"./predicate-LbFu-fPH.js";import{n as i,t as a}from"./i18n-CE4KxKuj.js";import{n as o}from"./media-element-Cp5PrNre.js";import{n as s,r as c,t as l}from"./context-C2rsoDxk.js";import{l as u}from"./container-element-Dd0ZCdhK.js";import{n as d}from"./casing-CxqC0yQL.js";import{t as f}from"./listen-4VrUltMW.js";import{t as p}from"./noop-Ch0IHcOP.js";import{n as m,t as h}from"./text-track-CG8USvNG.js";import{t as g}from"./webkit-DljEkldb.js";import{t as _}from"./abort-BhNYXtuF.js";import{n as v,r as y,t as b}from"./constants-B4LD5zrj.js";const ee=Object.prototype.hasOwnProperty;function x(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Reflect.ownKeys(e),r=Reflect.ownKeys(t);if(n.length!==r.length)return!1;for(let r of n)if(!ee.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}function S(e){let t=e.composedPath();return t.length>0?t[0]:e.target}function C(e,t,n){return new Promise((r,i)=>{let a=()=>{i(n?.signal?.reason??`Aborted`)};if(n?.signal?.aborted){a();return}n?.signal?.addEventListener(`abort`,a,{once:!0}),e.addEventListener(t,e=>{n?.signal?.removeEventListener(`abort`,a),r(e)},{...n,once:!0})})}const te=[`button`,`input`,`select`,`textarea`,`a[href]`,`[role="button"]`,`[role="menu"]`,`[role="menuitem"]`,`[role="menuitemcheckbox"]`,`[role="menuitemradio"]`,`[role="slider"]`,`[data-interactive]`].join(`,`),ne=[`textarea`,`select`,`input:not([type])`,...[`text`,`search`,`url`,`tel`,`email`,`password`,`number`].map(e=>`input[type="${e}"]`),`[contenteditable]:not([contenteditable="false"])`].join(`,`);function re(e){return e.matches(ne)}function ie(e){let t=S(e);return t instanceof Element&&re(t)}function ae(e){let t=S(e);return t instanceof Element&&t.closest(te)!==null}const oe=new Set([` `,`Enter`]);function se(e){if(!oe.has(e.key))return!1;let t=S(e);return t instanceof Element&&t.matches(`button,a[href],[role="slider"],[role="button"]`)}function ce(e){let t=[];for(let n=0;n<e.length;n++)t.push([e.start(n),e.end(n)]);return t}var le=class{#e;#t=new Map;get base(){return(this.#e??=new AbortController).signal}clear(){for(let e of this.#t.values())e.abort();this.#t.clear()}reset(){this.clear(),this.#e?.abort(),this.#e=void 0}supersede(e){this.#t.get(e)?.abort();let t=new AbortController;return this.#t.set(e,t),_([this.base,t.signal])}};function ue(...e){let t=e.map(e=>e.derived??{});return{state:t=>{let n=e.map(e=>e.state(t));return Object.assign({},...n)},preserve:Array.from(new Set(e.flatMap(e=>e.preserve??[]))),derived:Object.assign({},...t),attach:t=>{for(let n of e)try{n.attach?.(t)}catch(e){t.reportError(e)}}}}var de=class extends Error{code;cause;constructor(e,t){super(t?.message??e),this.name=`StoreError`,this.code=e,this.cause=t?.cause}};function fe(){throw new de(`NO_TARGET`)}function pe(){throw new de(`DESTROYED`)}function me(){return(e=>e)}let w=!1;function he(){w||(w=!0,queueMicrotask(ge))}const T=new Set;function ge(){w=!1;for(let e of T)e.flush();T.clear()}const _e=Object.prototype.hasOwnProperty;var ve=class{#e;#t=new Set;#n=!1;constructor(e){this.#e=Object.freeze({...e})}get current(){return this.#e}patch(e){let t={...this.#e},n=!1;for(let r of Reflect.ownKeys(e)){if(!_e.call(e,r))continue;let i=e[r];Object.is(this.#e[r],i)||(t[r]=i,n=!0)}n&&(this.#e=Object.freeze(t),this.#r())}replace(e){x(this.#e,e)||(this.#e=Object.freeze({...e}),this.#r())}subscribe(e,t){let n=t?.signal;if(n?.aborted)return p;if(this.#t.add(e),!n)return()=>this.#t.delete(e);let r=()=>this.#t.delete(e);return n.addEventListener(`abort`,r,{once:!0}),()=>{n.removeEventListener(`abort`,r),this.#t.delete(e)}}flush(){if(this.#n){this.#n=!1;for(let e of this.#t)e()}}#r(){this.#n=!0,T.add(this),he()}};function ye(e){return new ve(e)}const be=Symbol.for(`@videojs/store`),xe=Object.prototype.hasOwnProperty;function Se(){return((t,n={})=>{let r=null,i=!1,a=new AbortController,o=new le,s,c;function l(){i&&pe(),r||fe()}let u=Ce(t.state({target:()=>(l(),r),signals:o,get:()=>s,set:e=>h(e)}));s=u;let d=p(s);c=ye(m(s,d));let f={[be]:!0,get $state(){return c},get target(){return r},get destroyed(){return i},get state(){return c.current},attach:g,destroy:v,subscribe:y};for(let e of Object.keys(c.current))Object.defineProperty(f,e,{get:()=>c.current[e],enumerable:!0});for(let e of Object.getOwnPropertySymbols(s))typeof s[e]==`function`&&Object.defineProperty(f,e,{get:()=>s[e]});try{n.onSetup?.({store:f,signal:a.signal})}catch(e){b(e)}return f;function p(e){let n={},r=t.derived;if(!r)return n;let i={get:()=>e};for(let e of Object.keys(r))n[e]=r[e](i);return n}function m(e,t){let n={};for(let t of Object.keys(e))n[t]=e[t];return Object.assign(n,t)}function h(e){let t=we(s,e);if(!t)return;let n=p(t.next);s=t.next,c.replace(m(s,n))}function g(e){i&&pe(),o.reset(),r=e;let a={target:e,signal:o.base,get:()=>s,set:e=>{try{h(e)}catch(e){b(e)}},reportError:b,store:{get state(){return c.current},subscribe:y}};try{t.attach?.(a)}catch(e){b(e)}try{n.onAttach?.({store:f,target:e,signal:o.base})}catch(e){b(e)}return _}function _(){if(e(r))return;o.reset(),r=null;let n={...u};for(let e of t.preserve??[])n[e]=s[e];h(n)}function v(){i||(i=!0,_(),a.abort())}function y(e,t){return c.subscribe(e,t)}function b(e){n.onError?n.onError({store:f,error:e}):console.error(`[vjs-store]`,e)}})}function Ce(e){return Object.freeze({...e})}function we(e,t){let n={...e},r=!1;for(let i of Reflect.ownKeys(t)){if(!xe.call(t,i))continue;let a=t[i];Object.is(e[i],a)||(n[i]=a,r=!0)}return r?{next:Object.freeze(n)}:null}function Te(e){return n(e)&&be in e}const Ee=me();function E(e,t){if(arguments.length===1){let t=e,n=Object.values(t.config??{}).map(e=>e.state);return{...t,...n.length>0?{preserve:n}:{}}}let{name:n,state:i,attach:a}=e,o=e=>Ee({...r(n)?{}:{name:n},state:t=>i(t,e),...a?{attach:t=>a(t,e)}:{}}),s=o(t),c=(e=>r(e)?s:o(e));return c.state=s.state,s.attach&&(c.attach=s.attach),r(n)||Object.defineProperty(c,"name",{value:n}),c}function De(e){let t=e.map(e=>e.config??{});return Object.assign({},...t)}function Oe(e,t,n){let r=e[t.action];if(typeof r!=`function`)throw TypeError(`Missing config action "${String(t.action)}"`);r(n)}function ke(e){return e.readyState>=1}function D(e){if(!n(e))return!1;let i=e;return!r(i.paused)&&!r(i.ended)&&t(i.pause)}function O(e){if(!n(e))return!1;let t=e;return!r(t.currentTime)&&!r(t.duration)&&!r(t.seeking)}function k(e){if(!n(e))return!1;let i=e;return!r(i.src)&&!r(i.currentSrc)&&!r(i.readyState)&&t(i.load)}function Ae(e){if(!n(e))return!1;let t=e;return!r(t.volume)&&!r(t.muted)}function je(e){return n(e)?!r(e.muted):!1}function Me(e){return n(e)?!r(e.playbackRate):!1}function Ne(e){return n(e)?t(e.requestPictureInPicture):!1}function Pe(e){if(!n(e))return!1;let t=e;return!r(t.buffered)&&t.buffered!==y&&!r(t.seekable)&&t.seekable!==y}function Fe(e){return n(e)?!r(e.error):!1}function A(e){if(!n(e))return!1;let t=e;return!r(t.textTracks)&&t.textTracks!==v}function Ie(e){return n(e)?!r(e.videoRenditions):!1}function Le(e){return n(e)?!r(e.audioTracks):!1}function Re(e){if(!n(e))return!1;let t=e;return!r(t.videoWidth)&&!r(t.videoHeight)}function ze(e){if(!n(e))return!1;let t=e;return n(t.remote)&&t.remote!==b}function Be(e){return n(e)?!r(e.streamType):!1}function Ve(e){return n(e)?!r(e.contentData):!1}function He(e){if(!n(e))return!1;let t=e;return!r(t.liveEdgeStart)&&!r(t.targetLiveWindow)}function Ue(e){return n(e)&&`querySelectorAll`in e&&t(e.querySelectorAll)}function We(e,t){return e.id||String(t)}function Ge(e){return{...e.id!==void 0&&{id:e.id},...e.kind!==void 0&&{kind:e.kind},label:e.label,language:e.language,enabled:e.enabled}}const Ke=E({name:`audioTrack`,state:({target:e})=>({audioTrackList:[],selectAudioTrack(t){let{media:n}=e();if(!Le(n))return;let r=[...n.audioTracks],i=r.find((e,n)=>We(e,n)===t);if(i)for(let e of r)e.enabled=e===i}}),attach({target:e,signal:t,set:n}){let{media:r}=e,i=null,a=null,o=()=>Le(r)?r.audioTracks:null,s=(e=o())=>{n({audioTrackList:e?[...e].map(Ge):[]})},c=()=>{let e=o();if(e===i){s(e);return}a?.abort(),a=new AbortController,i=e,i&&(f(i,`addtrack`,()=>s(i),{signal:a.signal}),f(i,`removetrack`,()=>s(i),{signal:a.signal}),f(i,`change`,()=>s(i),{signal:a.signal})),s(i)};c(),f(r,`loadstart`,c,{signal:t}),t.addEventListener(`abort`,()=>a?.abort(),{once:!0})}}),j=E({name:`buffer`,state:()=>({buffered:[],seekable:[]}),attach({target:e,signal:t,set:n}){let{media:r}=e;if(!Pe(r))return;let i=()=>n({buffered:ce(r.buffered),seekable:ce(r.seekable)});i(),f(r,`progress`,i,{signal:t}),f(r,`emptied`,i,{signal:t})}});function qe(e,t,n){if(n.size===0)return null;let r=e-t.left,i=t.width;if(i===0)return null;let a=r/i;return n.size===2&&n.has(`left`)&&n.has(`right`)?a<.5?`left`:`right`:n.size===3?a<1/3?`left`:a<2/3?`center`:`right`:n.has(`left`)&&a<.5?`left`:n.has(`right`)&&a>=.5?`right`:n.has(`center`)&&(n.size===1||a>=1/3&&a<2/3)?`center`:null}var Je=class{#e;#t=[];#n=new Set;#r=null;#i=new Set;constructor(e){this.#e=e}get bindings(){return this.#t}subscribe(e){return this.#i.add(e),()=>this.#i.delete(e)}claimsTap(e,t){return!ae(e)&&this.#t.some(n=>n.type===`tap`&&n.action===t&&(!n.pointer||n.pointer===e.pointerType))}add(e){let t={...e,onActivate:t=>{if(this.#i.size>0){let n={type:e.type,source:`gesture`,action:e.action,value:e.value,region:e.region,pointer:e.pointer,event:t};for(let e of this.#i)try{e(n)}catch{}}e.onActivate(t)}};this.#t.push(t),this.#n.add(t.recognizer),this.#a();let n=!1;return()=>{if(n)return;n=!0;let e=this.#t.indexOf(t);e!==-1&&this.#t.splice(e,1),this.#o()}}#a(){if(this.#r)return;this.#r=new AbortController;let{signal:e}=this.#r,t=0;f(this.#e,`pointerdown`,e=>{e.button===0&&(t=Date.now())},{signal:e}),f(this.#e,`pointerup`,e=>{if(e.button!==0||Date.now()-t>250||ae(e))return;let n=e.pointerType,r=e.clientX,i=this.#e,a=this.#t,o={resolve:e=>Ze(a,e,n,r,i)};for(let t of this.#n)t.handleUp(o,e)},{signal:e})}#o(){if(!(this.#t.length>0)){for(let e of this.#n)e.reset();this.#n.clear(),this.#r?.abort(),this.#r=null}}};const M=new WeakMap;function Ye(e){return M.get(e)}function Xe(e){let t=M.get(e);return t||(t=new Je(e),M.set(e,t)),t}function Ze(e,t,n,r,i){let a=i.getBoundingClientRect(),o=Qe(e,t,n),s=o.size>0?qe(r,a,o):null,c=[];for(let r of e)if(!r.disabled&&r.type===t&&!(r.pointer&&r.pointer!==n)){if(r.region){if(r.region!==s)continue}else if(s!==null)continue;c.push(r)}return c}function Qe(e,t,n){let r=new Set;for(let i of e)i.disabled||i.type===t&&(i.pointer&&i.pointer!==n||i.region&&r.add(i.region));return r}function N(e){let t=e;if(n(t.remote)&&`state`in t.remote&&`prompt`in t.remote)return t.remote}function $e(e){return N(e)?.state===`connected`}function et(e){return N(e)?.state===`connecting`}async function tt(e){let t=N(e);if(!t)throw new DOMException(`Remote playback not supported`,`NotSupportedError`);return t.prompt()}const nt=new WeakMap,P=E({name:`controls`,state:({get:e,set:t})=>{let n=rt(()=>(t({controlsVisible:!0}),()=>{}),()=>{let n=!e().userActive;return t({userActive:n,controlsVisible:n}),n});return nt.set(n.requestControlsLock,n),{userActive:!0,controlsVisible:!0,requestControlsLock:n.requestControlsLock,toggleControls:n.toggleControls}},attach({target:t,signal:n,get:r,set:i}){let{media:a,container:o}=t;if(!D(a)||e(o))return;let s,c=0,l=e=>c>0||e||a.paused||$e(a)||et(a);function u(){clearTimeout(s),s=void 0}function d(){u(),!(c>0)&&(s=setTimeout(m,2e3))}function p(){r().userActive||i({userActive:!0,controlsVisible:!0}),d()}function m(){u(),i({userActive:!1,controlsVisible:l(!1)})}function h(){c++,u(),r().controlsVisible||i({controlsVisible:!0});let e=!1;return()=>{e||n.aborted||(e=!0,c--,c===0&&p())}}function g(){return r().controlsVisible?m():p(),r().controlsVisible}let _=nt.get(r().requestControlsLock);_.setDelegates(h,g);let v=0,y=0,b=()=>y>0&&Date.now()-y<500;function ee(e){v=Date.now(),e.pointerType===`touch`&&(y=v)}function x(e){if(e.pointerType===`touch`&&(y=Date.now()),e.pointerType===`touch`&&Date.now()-v<250){if(Ye(o)?.claimsTap(e,`toggleControls`))return;let t=[a,o].includes(e.target);r().controlsVisible&&t?m():p()}else p()}let S=()=>{let{userActive:e}=r();i({controlsVisible:l(e)}),!a.paused&&e&&d()};function C(e){if(e.pointerType===`touch`){r().userActive&&d();return}p()}if(f(o,`pointermove`,C,{signal:n}),f(o,`pointerdown`,ee,{signal:n}),f(o,`pointerup`,x,{signal:n}),f(o,`keyup`,p,{signal:n}),f(o,`focusin`,()=>{b()||p()},{signal:n}),f(o,`mouseleave`,()=>{b()||m()},{signal:n}),f(a,`play`,S,{signal:n}),f(a,`pause`,S,{signal:n}),f(a,`ended`,S,{signal:n}),ze(a)){let e=()=>{let{userActive:e}=r();i({controlsVisible:l(e)})};f(a.remote,`connect`,e,{signal:n}),f(a.remote,`connecting`,e,{signal:n}),f(a.remote,`disconnect`,e,{signal:n})}n.addEventListener(`abort`,()=>{_.reset(),c=0,u()},{once:!0}),d()}});function rt(e,t){let n=e,r=t,i=new Set,a={requestControlsLock:()=>{let e={release:n()},t=!1;return i.add(e),()=>{t||(t=!0,i.delete(e),e.release())}},toggleControls:()=>r(),setDelegates(e,t){if(e!==n){n=e;for(let t of i)t.release(),t.release=e()}r=t},reset(){a.setDelegates(e,t)}};return a}const F=E({name:`error`,state:({set:e})=>({error:null,dismissError(){e({error:null})}}),attach({target:e,signal:t,set:n}){let{media:r}=e;Fe(r)&&(f(r,`error`,()=>n({error:r.error}),{signal:t}),f(r,`emptied`,()=>n({error:null}),{signal:t}))}});function it(){let e=document;return e.fullscreenEnabled||e.webkitFullscreenEnabled?!0:t(document.createElement(`video`).webkitSetPresentationMode)}function at(){let e=document;return e.fullscreenElement??e.webkitFullscreenElement??null}function ot(e){if(!(e instanceof Element))return!1;try{return e.matches(`:fullscreen`)}catch{return!1}}function I(e,t){if(t.webkitPresentationMode===`fullscreen`)return!0;let n=at();return n&&(n===e||n===t)||ot(e)||ot(t)?!0:t.isFullscreen??!1}async function st(e,n){let r=document;if(e&&(r.fullscreenEnabled||r.webkitFullscreenEnabled)){let n=e;if(t(n.requestFullscreen))return n.requestFullscreen();if(t(n.webkitRequestFullscreen))return n.webkitRequestFullscreen()}let i=n;if(t(i.webkitSetPresentationMode)){i.webkitSetPresentationMode(`fullscreen`);return}let a=n;if(t(a.requestFullscreen))return a.requestFullscreen()}async function L(e){let n=document,r=e;if(r.webkitPresentationMode===`fullscreen`&&t(r.webkitSetPresentationMode)){r.webkitSetPresentationMode(`inline`);return}if(t(n.exitFullscreen))return n.exitFullscreen();if(t(n.webkitExitFullscreen))return n.webkitExitFullscreen();let i=e;if(t(i.exitFullscreen))return i.exitFullscreen()}function ct(){if(document.pictureInPictureEnabled){let e=/.*Version\/.*Safari\/.*/.test(navigator.userAgent),t=typeof matchMedia==`function`&&matchMedia(`(display-mode: standalone)`).matches;return!e||!t}return t(document.createElement(`video`).webkitSetPresentationMode)}function lt(e){return t(e.webkitSetPresentationMode)?!0:Ne(e)}function R(e){return e.webkitPresentationMode===`picture-in-picture`||document.pictureInPictureElement===e?!0:e.isPictureInPicture??!1}async function ut(e){let n=e;if(t(n.webkitSetPresentationMode)){n.webkitSetPresentationMode(`picture-in-picture`);return}let r=e;if(t(r.requestPictureInPicture))return r.requestPictureInPicture()}async function z(e){let n=e;if(n.webkitPresentationMode===`picture-in-picture`&&t(n.webkitSetPresentationMode)){n.webkitSetPresentationMode(`inline`);return}if(t(document.exitPictureInPicture))return document.exitPictureInPicture();let r=e;if(t(r.exitPictureInPicture))return r.exitPictureInPicture()}const B=E({name:`fullscreen`,state:({target:e})=>({fullscreen:!1,fullscreenAvailability:`unavailable`,async requestFullscreen(){let{media:t,container:n}=e();return R(t)&&await z(t),st(n,t)},async exitFullscreen(){let{media:t}=e();return L(t)},async toggleFullscreen(){let{media:t,container:n}=e();return I(n,t)?L(t):(R(t)&&await z(t),st(n,t))}}),attach({target:e,signal:t,set:n}){let{media:r,container:i}=e;n({fullscreenAvailability:it()?`available`:`unsupported`});let a=()=>n({fullscreen:I(i,r)});a(),f(document,`fullscreenchange`,a,{signal:t}),f(document,`webkitfullscreenchange`,a,{signal:t}),`webkitPresentationMode`in r&&f(r,`webkitpresentationmodechanged`,a,{signal:t})}}),dt=E({name:`live`,state:()=>({liveEdgeStart:NaN,targetLiveWindow:NaN}),attach({target:e,signal:t,set:n}){let{media:r}=e;if(!He(r))return;let i=()=>n({liveEdgeStart:r.liveEdgeStart,targetLiveWindow:r.targetLiveWindow});i(),f(r,`targetlivewindowchange`,i,{signal:t}),f(r,`streamtypechange`,i,{signal:t}),f(r,`loadedmetadata`,i,{signal:t}),f(r,`canplay`,i,{signal:t}),f(r,`progress`,i,{signal:t}),f(r,`durationchange`,i,{signal:t}),f(r,`timeupdate`,i,{signal:t}),f(r,`emptied`,i,{signal:t})}}),V=Symbol(`@videojs/media-content-title`),H=Symbol(`@videojs/user-content-title`),U=Symbol(`@videojs/user-default-content-title`),ft=Symbol(`@videojs/set-user-content-title`),pt=Symbol(`@videojs/set-user-default-content-title`),W=E({name:`metadata`,config:{contentTitle:{action:ft,state:H},defaultContentTitle:{action:pt,state:U}},state:({set:e})=>({[V]:void 0,[H]:void 0,[U]:void 0,[ft]:t=>e({[H]:t}),[pt]:t=>e({[U]:t}),setContentTitle:t=>e({[H]:t}),setDefaultContentTitle:t=>e({[U]:t})}),derived:{contentTitle:({get:e})=>e()[H]??e()[V]??e()[U]??``},attach({target:e,signal:t,set:n}){let{media:r}=e;if(!Ve(r))return;let i=()=>n({[V]:r.contentData?.title});i(),f(r,`contentdatachange`,i,{signal:t})}}),G=E({name:`pip`,state:({target:e})=>({pip:!1,pipAvailability:`unavailable`,async requestPictureInPicture(){let{media:t,container:n}=e();return I(n,t)&&await L(t),ut(t)},async exitPictureInPicture(){let{media:t}=e();return z(t)},async togglePictureInPicture(){let{media:t,container:n}=e();return R(t)?z(t):(I(n,t)&&await L(t),ut(t))}}),attach({target:e,signal:t,set:n}){let{media:r}=e;n({pipAvailability:ct()&&lt(r)?`available`:`unsupported`});let i=()=>n({pip:R(r)});i(),f(r,`enterpictureinpicture`,i,{signal:t}),f(r,`leavepictureinpicture`,i,{signal:t}),`webkitPresentationMode`in r&&f(r,`webkitpresentationmodechanged`,i,{signal:t})}}),K=E({name:`playback`,state:({target:e})=>({paused:!0,ended:!1,started:!1,waiting:!1,play(){return e().media.play()},pause(){let{media:t}=e();D(t)&&t.pause()},togglePaused(){let t=e().media;return D(t)?t.paused?(t.play(),!0):(t.pause(),!1):!1}}),attach({target:e,signal:t,set:n}){let{media:r}=e;if(!D(r)||!O(r)||!k(r))return;let i=()=>n({paused:r.paused,ended:r.ended,started:!r.paused||r.currentTime>0,waiting:r.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&!r.paused});i(),f(r,`emptied`,i,{signal:t}),f(r,`play`,i,{signal:t}),f(r,`pause`,i,{signal:t}),f(r,`ended`,i,{signal:t}),f(r,`playing`,i,{signal:t}),f(r,`waiting`,i,{signal:t}),f(r,`seeked`,i,{signal:t})}}),mt=[.2,.5,.7,1,1.2,1.5,1.7,2],q=E({name:`playbackRate`,state:({target:e})=>({playbackRates:mt,playbackRate:1,setPlaybackRate(t){let{media:n}=e();Me(n)&&(n.playbackRate=t)}}),attach({target:e,signal:t,set:n}){let{media:r}=e;if(!Me(r))return;let i=()=>n({playbackRate:r.playbackRate});i(),f(r,`ratechange`,i,{signal:t})}});function ht(e,t){return e.id||String(t)}function gt(e){return{...e.id!==void 0&&{id:e.id},...e.width!==void 0&&{width:e.width},...e.height!==void 0&&{height:e.height},...e.bitrate!==void 0&&{bitrate:e.bitrate},...e.frameRate!==void 0&&{frameRate:e.frameRate},...e.codec!==void 0&&{codec:e.codec},selected:e.selected}}function _t(e){return e.width&&e.height?Math.min(e.width,e.height):e.height??e.width}const vt=E({name:`quality`,state:({target:e})=>({videoRenditionList:[],activeVideoRendition:null,selectVideoRendition(t){let{media:n}=e();if(!Ie(n))return;if(t===`auto`){n.videoRenditions.selectedIndex=-1;return}let r=[...n.videoRenditions].findIndex((e,n)=>ht(e,n)===t);r!==-1&&(n.videoRenditions.selectedIndex=r)}}),attach({target:e,signal:t,set:n}){let{media:r}=e,i=null,a=null,o=()=>Ie(r)?r.videoRenditions:null,s=e=>{if(!e)return null;let t=[...e],n=t.find(e=>e.active);if(n)return n;if(!Re(r)||!r.videoWidth&&!r.videoHeight)return null;let i=_t({width:r.videoWidth||void 0,height:r.videoHeight||void 0}),a=t.filter(e=>_t(e)===i);return a.length===1?a[0]:null},c=(e=o())=>{let t=s(e);n({videoRenditionList:e?[...e].map(gt):[],activeVideoRendition:t?gt(t):null})},l=()=>{let e=o();if(e===i){c(e);return}a?.abort(),a=new AbortController,i=e,i&&(f(i,`addrendition`,()=>c(i),{signal:a.signal}),f(i,`removerendition`,()=>c(i),{signal:a.signal}),f(i,`change`,()=>c(i),{signal:a.signal}),f(i,`activechange`,()=>c(i),{signal:a.signal})),c(i)};l(),f(r,`loadstart`,l,{signal:t}),f(r,`resize`,()=>c(i),{signal:t}),t.addEventListener(`abort`,()=>a?.abort(),{once:!0})}}),J=E({name:`remotePlayback`,state:({target:e})=>({remotePlaybackState:`disconnected`,remotePlaybackAvailability:`unsupported`,async toggleRemotePlayback(){let{media:t,container:n}=e();return $e(t)?tt(t):(I(n,t)&&await L(t),await tt(t))}}),attach({target:e,signal:t,set:n}){let{media:r}=e;if(!ze(r))return;if(g(r)){let e=()=>{n({remotePlaybackState:r.webkitCurrentPlaybackTargetIsWireless?`connected`:`disconnected`})};f(r,`webkitplaybacktargetavailabilitychanged`,e=>{let{availability:t}=e;n({remotePlaybackAvailability:t===`available`?`available`:`unavailable`})},{signal:t}),f(r,`webkitcurrentplaybacktargetiswirelesschanged`,e,{signal:t}),e();return}let i=()=>n({remotePlaybackState:r.remote.state});i(),f(r.remote,`connect`,i,{signal:t}),f(r.remote,`connecting`,i,{signal:t}),f(r.remote,`disconnect`,i,{signal:t}),r.remote.watchAvailability(e=>{n({remotePlaybackAvailability:e?`available`:`unavailable`})}).catch(()=>{n({remotePlaybackAvailability:`unsupported`})}),t.addEventListener(`abort`,()=>{r.remote?.cancelWatchAvailability?.().catch(()=>{})})}}),Y=E({name:`source`,state:({target:e,signals:t})=>({source:null,canPlay:!1,loadSource(n){t.clear();let{media:r}=e();return k(r)?(r.src=n,r.load(),n):n}}),attach({target:e,signal:t,set:n}){let{media:r}=e;if(!k(r))return;let i=()=>n({source:r.currentSrc||r.src||null,canPlay:r.readyState>=HTMLMediaElement.HAVE_ENOUGH_DATA});i(),f(r,`canplay`,i,{signal:t}),f(r,`canplaythrough`,i,{signal:t}),f(r,`loadstart`,i,{signal:t}),f(r,`emptied`,i,{signal:t})}});function yt(e,t){return e.id||`track:${t}:${e.kind}:${e.language}:${e.label}`}function bt(e){return Array.from(e.textTracks).map((e,t)=>({id:yt(e,t),track:e})).filter(({track:e})=>m(e)).sort((e,t)=>e.track.kind>t.track.kind?1:e.track.kind<t.track.kind?-1:0)}function X(e,t){for(let{track:n}of e){let e=n===t?`showing`:`disabled`;n.mode!==e&&(n.mode=e)}}function xt(e,t){let n=i(t),r=a(t);n!==`en`&&!n.startsWith(`en-`)&&r.pop();for(let t of r){let n=e.find(({track:e})=>i(e.language)===t);if(n)return n;let r=e.find(({track:e})=>i(e.language).startsWith(`${t}-`));if(r)return r}}const Z=E({name:`textTrack`,state:({target:e})=>{let t=null;return{chaptersCues:[],thumbnailCues:[],thumbnailTrackSrc:null,textTrackList:[],subtitlesShowing:!1,toggleSubtitles(n){let{media:r}=e();if(!A(r))return!1;let i=bt(r);if(!i.length)return!1;let a=i.find(({track:e})=>e.mode===`showing`),o=n??!a;if(a&&(t=a.id),!o)return X(i,null),!1;let s=a??i.find(({id:e})=>e===t)??xt(i,globalThis.navigator?.language??``)??i[0];return t=s.id,X(i,s.track),!0},selectSubtitlesTrack(n){let{media:r}=e();if(!A(r))return;let i=bt(r);if(!i.length)return;if(n===`off`){let e=i.find(({track:e})=>e.mode===`showing`);e&&(t=e.id),X(i,null);return}let a=i.find(({id:e})=>e===n);a&&(t=a.id,X(i,a.track))}}},attach({target:e,signal:t,set:n}){let{media:r}=e;if(!A(r))return;let i=null,a=()=>{i?.abort(),i=new AbortController;let e=null,t=null,o=[],s=!1;for(let n=0;n<r.textTracks.length;n++){let i=r.textTracks[n];!e&&i.kind===`chapters`&&(e=i),!t&&i.kind===`metadata`&&i.label===`thumbnails`&&(t=i),o.push({id:yt(i,n),kind:i.kind,label:i.label,language:i.language,mode:i.mode}),m(i)&&i.mode===`showing`&&(s=!0)}let c=e?.cues?Array.from(e.cues):[],l=t?.cues?Array.from(t.cues):[],u=null;t&&(u=h(r,t)?.src??null);let d=Ue(r)&&r.querySelectorAll(`track`)||[],p=r instanceof HTMLElement&&r.shadowRoot?.querySelectorAll(`track`)||[];for(let e of[...d,...p])e.track?.cues?.length||f(e,`load`,a,{signal:i.signal});n({chaptersCues:c,thumbnailCues:l,thumbnailTrackSrc:u,textTrackList:o,subtitlesShowing:s})};a();let o=r.textTracks;o instanceof EventTarget&&(f(o,`addtrack`,a,{signal:t}),f(o,`removetrack`,a,{signal:t}),f(o,`change`,a,{signal:t})),f(r,`loadstart`,a,{signal:t}),t.addEventListener(`abort`,()=>i?.abort(),{once:!0})}}),St={seek:Symbol.for(`@videojs/seek`)},Q=E({name:`time`,state:({target:e,signals:t,set:n})=>({currentTime:0,duration:0,seeking:!1,async seek(r){let{media:i}=e(),a=t.supersede(St.seek);if(!O(i)||!k(i))return 0;if(!ke(i)&&!await C(i,`loadedmetadata`,{signal:a}).catch(()=>!1))return i.currentTime;let o=Math.max(0,Math.min(r,i.duration||1/0));return n({currentTime:o,seeking:!0}),i.currentTime=o,await C(i,`seeked`,{signal:a}).catch(p),i.currentTime}}),attach({target:e,signal:t,set:n,get:r}){let{media:i}=e;if(!O(i))return;let a=()=>{let{duration:e}=i;if(e===1/0&&Pe(i)){let{seekable:e}=i;return e.length>0?e.end(e.length-1):0}return Number.isFinite(e)?e:0},o=()=>n({currentTime:i.currentTime,duration:a(),seeking:i.seeking}),s=()=>{r().seeking||o()};o(),f(i,`timeupdate`,s,{signal:t}),f(i,`durationchange`,o,{signal:t}),f(i,`seeking`,o,{signal:t}),f(i,`seeked`,o,{signal:t}),f(i,`loadedmetadata`,o,{signal:t}),f(i,`emptied`,o,{signal:t}),f(i,`progress`,s,{signal:t})}}),$=E({name:`volume`,state:({target:e})=>({volume:1,muted:!1,volumeAvailability:`unavailable`,mutedAvailability:`unavailable`,setVolume(t){let{media:n}=e();if(!Ae(n))return 0;let r=Math.max(0,Math.min(1,t));return r>0&&n.muted&&(n.muted=!1),n.volume=r,n.volume},toggleMuted(){let{media:t}=e();return je(t)?Ae(t)?(t.muted||t.volume===0?(t.muted=!1,t.volume===0&&(t.volume=.25)):t.muted=!0,t.muted):(t.muted=!t.muted,t.muted):!1}}),attach({target:e,signal:t,set:n}){let{media:r}=e,i=Ae(r),a=je(r);if(!i&&!a)return;n({volumeAvailability:i?Ct():`unavailable`,mutedAvailability:a?`available`:`unavailable`});let o=()=>n({volume:i?r.volume:1,muted:a?r.muted:!1});o(),f(r,`volumechange`,o,{signal:t})}});function Ct(){let e=document.createElement(`video`);try{return e.volume=.5,e.volume===.5?`available`:`unsupported`}catch{return`unsupported`}}const wt=[K,q,vt,Ke,$,Q,Y,j,B,G,J,P,Z,F,W],Tt=[K,q,$,Q,Y,j,F,W],Et=[],Dt=[K,$,Q,Y,j,B,G,J,P,Z,F,dt,W];var Ot=class{#e;#t;#n;#r;#i=p;constructor(e,t,n){this.#e=e,this.#n=t,this.#t=n,e.addController(this)}get value(){return this.#t?(this.#r??=this.#t(this.#n.current),this.#r):this.#n.current}track(e){this.#n=e,this.#a()}hostConnected(){this.#a()}hostDisconnected(){this.#i(),this.#i=p,this.#r=void 0}#a(){if(this.#i(),!this.#t){this.#i=this.#n.subscribe(()=>this.#e.requestUpdate());return}let e=this.#t;this.#r=e(this.#n.current),this.#i=this.#n.subscribe(()=>{let t=e(this.#n.current);x(this.#r,t)||(this.#r=t,this.#e.requestUpdate())})}},kt=class{#e;#t;#n;constructor(e,t,n){this.#e=n??p,Te(t)?(this.#n=t,this.#t=null):(this.#n=null,this.#t=new o(e,{context:t,callback:e=>this.#e(e),subscribe:!1})),e.addController(this)}get value(){return this.#t?this.#t.value??null:this.#n}hostConnected(){this.#n&&this.#e(this.#n)}},At=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=n,this.#n=new kt(e,t,e=>this.#i(e)),e.addController(this)}get value(){let t=this.#n.value;if(e(t))throw Error(`Store not available`);return r(this.#t)?t:this.#r.value}hostConnected(){}#i(e){r(this.#t)||(this.#r?this.#r.track(e.$state):this.#r=new Ot(this.#e,e.$state,this.#t))}},jt=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=n,this.#n=new o(e,{context:t,callback:e=>this.#i(e),subscribe:!0}),e.addController(this)}get value(){let e=this.#n.value;if(e)return this.#t?this.#r?.value:e}get displayName(){return this.#t?.displayName}hostConnected(){let e=this.#n.value;e&&this.#i(e)}hostDisconnected(){this.#r=null}#i(e){!this.#r&&this.#t&&(this.#r=new At(this.#e,e,this.#t))}};function Mt(t){let n=Object.keys(t.config);return r=>{class i extends r{static{this.properties={...r.properties,...Object.fromEntries(n.map(e=>[e,{type:String,attribute:d(e)}]))}}#e=t.factory();#t=null;#n=null;#r=null;#i=null;#a=!1;#o=e=>{this.#r!==e&&(this.#r=e,this.#l.setValue({media:e,setMedia:this.#o}),this.#d())};#s=e=>{this.#i!==e&&(this.#i=e,this.#u.setValue({container:e,setContainer:this.#s}),this.#d())};#c=new u(this,{context:t.playerContext,initialValue:this.store});#l=new u(this,{context:t.mediaContext,initialValue:{media:this.#r,setMedia:this.#o}});#u=new u(this,{context:t.containerContext,initialValue:{container:this.#i,setContainer:this.#s}});get store(){return e(this.#e)&&(this.#e=t.factory()),this.#e}connectedCallback(){this.#p(),super.connectedCallback(),this.#c.setValue(this.store),this.#l.setValue({media:this.#r,setMedia:this.#o}),this.#u.setValue({container:this.#i,setContainer:this.#s}),this.#d(),this.#m()}disconnectedCallback(){super.disconnectedCallback(),this.#f()}destroyCallback(){this.#f(),this.#e?.destroy(),this.#e=null,super.destroyCallback()}willUpdate(e){super.willUpdate(e);for(let r of n)e.has(r)&&Oe(this.store,t.config[r],this[r])}#d(){let e=this.#e;if(!e)return;if(!this.#r){this.#f();return}let t={media:this.#r,container:this.#i},n=e.target?.media!==t.media,r=e.target?.container!==t.container;(n||r)&&(this.#f(),this.#n=e.attach(t))}#f(){this.#n?.(),this.#n=null}#p(){let e=this.store;if(this.#t!==e){for(let r of n)Oe(e,t.config[r],this[r]);this.#t=e}}#m(){this.#r||this.#a||(this.#a=!0,queueMicrotask(()=>{if(this.#a=!1,this.#r)return;let e=this.querySelector(`video, audio`);e&&this.#o(e)}))}}return i}}function Nt(e){let t=ue(...e.features),n=De(e.features);function r(){return Se()(t)}return{context:c,create:r,PlayerController:jt,ProviderMixin:Mt({playerContext:c,mediaContext:s,containerContext:l,factory:r,config:n})}}export{fe as A,j as C,Be as D,O as E,ie as M,se as N,E as O,Xe as S,Pe as T,W as _,Et as a,F as b,$ as c,Y as d,J as f,G as g,K as h,Tt as i,le as j,ye as k,Q as l,q as m,jt as n,Dt as o,vt as p,Ot as r,wt as s,Nt as t,Z as u,dt as v,Ke as w,P as x,B as y};
2
+ //# sourceMappingURL=create-player-hSdQMP5p.js.map