@videojs/html 10.0.0-beta.22 → 10.0.0-beta.24

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 (1296) hide show
  1. package/README.md +6 -0
  2. package/cdn/{abort-C9UiBdVU.js → abort-0nUH9HXc.js} +1 -1
  3. package/cdn/{abort-C9UiBdVU.js.map → abort-0nUH9HXc.js.map} +1 -1
  4. package/cdn/{abort-DsTff8mS.js → abort-DQxwCs92.js} +1 -1
  5. package/cdn/{abort-DsTff8mS.js.map → abort-DQxwCs92.js.map} +1 -1
  6. package/cdn/audio-minimal-ui.dev.js +2 -4
  7. package/cdn/audio-minimal-ui.js +1 -1
  8. package/cdn/audio-minimal.dev.js +22 -20
  9. package/cdn/audio-minimal.dev.js.map +1 -1
  10. package/cdn/audio-minimal.js +1 -1
  11. package/cdn/audio-minimal.js.map +1 -1
  12. package/cdn/audio-ui.dev.js +2 -4
  13. package/cdn/audio-ui.js +1 -1
  14. package/cdn/audio.dev.js +22 -19
  15. package/cdn/audio.dev.js.map +1 -1
  16. package/cdn/audio.js +1 -1
  17. package/cdn/audio.js.map +1 -1
  18. package/cdn/background.dev.js +4 -4
  19. package/cdn/background.dev.js.map +1 -1
  20. package/cdn/background.js +1 -1
  21. package/cdn/background.js.map +1 -1
  22. package/cdn/base-CaXY3kMA.js +66 -0
  23. package/cdn/base-CaXY3kMA.js.map +1 -0
  24. package/cdn/base-JIGv_MlJ.js +2 -0
  25. package/cdn/base-JIGv_MlJ.js.map +1 -0
  26. package/cdn/compounds-CJ9NGNJr.js +8 -0
  27. package/cdn/compounds-CJ9NGNJr.js.map +1 -0
  28. package/cdn/{compounds-DD3MYkSc.js → compounds-DxdDY3jr.js} +2872 -537
  29. package/cdn/compounds-DxdDY3jr.js.map +1 -0
  30. package/cdn/create-player-B2W5yr5I.js +7 -0
  31. package/cdn/create-player-B2W5yr5I.js.map +1 -0
  32. package/cdn/{create-player-BKLw7l1a.js → create-player-_WED6HtK.js} +288 -183
  33. package/cdn/create-player-_WED6HtK.js.map +1 -0
  34. package/cdn/default-BtA2xVd7.js +33 -0
  35. package/cdn/default-BtA2xVd7.js.map +1 -0
  36. package/cdn/default-Ci15Ic2n.js +2 -0
  37. package/cdn/default-Ci15Ic2n.js.map +1 -0
  38. package/cdn/default-Ciudg7Lh.js +32 -0
  39. package/cdn/default-Ciudg7Lh.js.map +1 -0
  40. package/cdn/default-CmbctS5n.js +2 -0
  41. package/cdn/default-CmbctS5n.js.map +1 -0
  42. package/cdn/hls-CoCXCB8b.js +41 -0
  43. package/cdn/hls-CoCXCB8b.js.map +1 -0
  44. package/cdn/{hls-CcSAx_3I.js → hls-DjqAxSvY.js} +236 -21
  45. package/cdn/hls-DjqAxSvY.js.map +1 -0
  46. package/cdn/{hotkey-element-BONs_FyJ.js → hotkey-element-89VAnCrc.js} +47 -52
  47. package/cdn/hotkey-element-89VAnCrc.js.map +1 -0
  48. package/cdn/hotkey-element-CmUxzW-C.js +2 -0
  49. package/cdn/hotkey-element-CmUxzW-C.js.map +1 -0
  50. package/cdn/live-button-element-BMneBAzX.js +208 -0
  51. package/cdn/live-button-element-BMneBAzX.js.map +1 -0
  52. package/cdn/live-button-element-CPEl1qK3.js +2 -0
  53. package/cdn/live-button-element-CPEl1qK3.js.map +1 -0
  54. package/cdn/live-video-minimal.dev.d.ts +1 -0
  55. package/cdn/live-video-minimal.dev.js +193 -0
  56. package/cdn/live-video-minimal.dev.js.map +1 -0
  57. package/cdn/live-video-minimal.js +2 -0
  58. package/cdn/live-video-minimal.js.map +1 -0
  59. package/cdn/live-video.dev.d.ts +1 -0
  60. package/cdn/live-video.dev.js +194 -0
  61. package/cdn/live-video.dev.js.map +1 -0
  62. package/cdn/live-video.js +2 -0
  63. package/cdn/live-video.js.map +1 -0
  64. package/cdn/media/dash-video.dev.js +8 -7
  65. package/cdn/media/dash-video.dev.js.map +1 -1
  66. package/cdn/media/dash-video.js +6 -6
  67. package/cdn/media/dash-video.js.map +1 -1
  68. package/cdn/media/hls-video.dev.js +4 -4
  69. package/cdn/media/hls-video.js +1 -1
  70. package/cdn/media/hls-video.js.map +1 -1
  71. package/cdn/media/mux-audio.dev.js +8 -6
  72. package/cdn/media/mux-audio.dev.js.map +1 -1
  73. package/cdn/media/mux-audio.js +1 -1
  74. package/cdn/media/mux-audio.js.map +1 -1
  75. package/cdn/media/mux-video.dev.js +8 -6
  76. package/cdn/media/mux-video.dev.js.map +1 -1
  77. package/cdn/media/mux-video.js +1 -1
  78. package/cdn/media/mux-video.js.map +1 -1
  79. package/cdn/media/native-hls-video.dev.js +4 -4
  80. package/cdn/media/native-hls-video.js +1 -1
  81. package/cdn/media/native-hls-video.js.map +1 -1
  82. package/cdn/media/simple-hls-video.dev.js +3604 -2632
  83. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  84. package/cdn/media/simple-hls-video.js +7 -7
  85. package/cdn/media/simple-hls-video.js.map +1 -1
  86. package/cdn/media-attach-mixin-0gzahJxP.js +2 -0
  87. package/cdn/{media-attach-mixin-C2wz0Qbd.js.map → media-attach-mixin-0gzahJxP.js.map} +1 -1
  88. package/cdn/{media-attach-mixin-CYoNe7Sh.js → media-attach-mixin-C1KQy-y8.js} +2 -2
  89. package/cdn/{media-attach-mixin-CYoNe7Sh.js.map → media-attach-mixin-C1KQy-y8.js.map} +1 -1
  90. package/cdn/minimal-BGKTRgLy.js +2 -0
  91. package/cdn/minimal-BGKTRgLy.js.map +1 -0
  92. package/cdn/minimal-BY8ZmNCh.js +33 -0
  93. package/cdn/minimal-BY8ZmNCh.js.map +1 -0
  94. package/cdn/minimal-D-o7FGL2.js +2 -0
  95. package/cdn/minimal-D-o7FGL2.js.map +1 -0
  96. package/cdn/minimal-b3s_qClU.js +32 -0
  97. package/cdn/minimal-b3s_qClU.js.map +1 -0
  98. package/cdn/minimal-ui-B0PWg1gR.js +2 -0
  99. package/cdn/minimal-ui-B0PWg1gR.js.map +1 -0
  100. package/cdn/minimal-ui-B6AtFmJO.js +2 -0
  101. package/cdn/minimal-ui-B6AtFmJO.js.map +1 -0
  102. package/cdn/minimal-ui-BjQUqQ_m.js +26 -0
  103. package/cdn/minimal-ui-BjQUqQ_m.js.map +1 -0
  104. package/cdn/minimal-ui-C2NRTvWx.js +38 -0
  105. package/cdn/minimal-ui-C2NRTvWx.js.map +1 -0
  106. package/cdn/{mux-BgWl50KW.js → mux-CJn4lTbv.js} +10 -10
  107. package/cdn/mux-CJn4lTbv.js.map +1 -0
  108. package/cdn/{mux-BhHIeG3e.js → mux-wKbnuUQu.js} +55 -20
  109. package/cdn/mux-wKbnuUQu.js.map +1 -0
  110. package/cdn/native-hls-1-isweaY.js +2 -0
  111. package/cdn/native-hls-1-isweaY.js.map +1 -0
  112. package/cdn/native-hls-D4f2-E9D.js +371 -0
  113. package/cdn/native-hls-D4f2-E9D.js.map +1 -0
  114. package/cdn/playback-rate-button-element-Ck7CCs0t.js +2 -0
  115. package/cdn/playback-rate-button-element-Ck7CCs0t.js.map +1 -0
  116. package/cdn/playback-rate-button-element-DN78puhg.js +79 -0
  117. package/cdn/playback-rate-button-element-DN78puhg.js.map +1 -0
  118. package/cdn/player-9_6BPhTP.js +16 -0
  119. package/cdn/player-9_6BPhTP.js.map +1 -0
  120. package/cdn/player-C6DIXZpP.js +16 -0
  121. package/cdn/player-C6DIXZpP.js.map +1 -0
  122. package/cdn/{player-BVGWmIbQ.js → player-ClV0UtoS.js} +3 -3
  123. package/cdn/{player-BVGWmIbQ.js.map → player-ClV0UtoS.js.map} +1 -1
  124. package/cdn/player-D7lHFQo6.js +2 -0
  125. package/cdn/player-D7lHFQo6.js.map +1 -0
  126. package/cdn/player-DzqwkiTI.js +2 -0
  127. package/cdn/{player-ChdQN3H5.js.map → player-DzqwkiTI.js.map} +1 -1
  128. package/cdn/player-_4EjFnET.js +2 -0
  129. package/cdn/player-_4EjFnET.js.map +1 -0
  130. package/cdn/poster-element-DmfmTRCV.js +2 -0
  131. package/cdn/poster-element-DmfmTRCV.js.map +1 -0
  132. package/cdn/{player-DX5Ka0vt.js → poster-element-IdY3MYJj.js} +18 -25
  133. package/cdn/poster-element-IdY3MYJj.js.map +1 -0
  134. package/cdn/{context-0rI_P6jf.js → predicate-Dqd8wbW6.js} +26 -2
  135. package/cdn/predicate-Dqd8wbW6.js.map +1 -0
  136. package/cdn/{context-CEFisYD0.js → predicate-Dxl3IuYh.js} +2 -2
  137. package/cdn/predicate-Dxl3IuYh.js.map +1 -0
  138. package/cdn/seek-button-element-BkC8xrVR.js +394 -0
  139. package/cdn/seek-button-element-BkC8xrVR.js.map +1 -0
  140. package/cdn/seek-button-element-C0uAXebE.js +2 -0
  141. package/cdn/seek-button-element-C0uAXebE.js.map +1 -0
  142. package/cdn/{shallow-equal-xh6Wj-hj.js → shallow-equal-D-fthE54.js} +1 -1
  143. package/cdn/{shallow-equal-xh6Wj-hj.js.map → shallow-equal-D-fthE54.js.map} +1 -1
  144. package/cdn/{shallow-equal-Daj3-_LC.js → shallow-equal-DSpD9PMp.js} +1 -1
  145. package/cdn/{shallow-equal-Daj3-_LC.js.map → shallow-equal-DSpD9PMp.js.map} +1 -1
  146. package/cdn/skin-element-D0TDGWJH.js +2 -0
  147. package/cdn/skin-element-D0TDGWJH.js.map +1 -0
  148. package/cdn/skin-element-mgqcAutZ.js +55 -0
  149. package/cdn/skin-element-mgqcAutZ.js.map +1 -0
  150. package/cdn/types-B_4Es-UH.js +20 -0
  151. package/cdn/types-B_4Es-UH.js.map +1 -0
  152. package/cdn/types-DRezN4yy.js +2 -0
  153. package/cdn/types-DRezN4yy.js.map +1 -0
  154. package/cdn/ui-BH0azXYN.js +2 -0
  155. package/cdn/ui-BH0azXYN.js.map +1 -0
  156. package/cdn/ui-B_E6hb1k.js +33 -0
  157. package/cdn/ui-B_E6hb1k.js.map +1 -0
  158. package/cdn/ui-ByhUcpaY.js +2 -0
  159. package/cdn/ui-ByhUcpaY.js.map +1 -0
  160. package/cdn/ui-DG0AlJbU.js +42 -0
  161. package/cdn/ui-DG0AlJbU.js.map +1 -0
  162. package/cdn/{video-host-BtD61mpF.js → video-host-BU9t26fe.js} +29 -16
  163. package/cdn/{video-host-BtD61mpF.js.map → video-host-BU9t26fe.js.map} +1 -1
  164. package/cdn/{video-host-LeB1FKfO.js → video-host-CvYvXa8l.js} +10 -10
  165. package/cdn/{video-host-LeB1FKfO.js.map → video-host-CvYvXa8l.js.map} +1 -1
  166. package/cdn/video-minimal-ui.dev.js +2 -4
  167. package/cdn/video-minimal-ui.js +1 -1
  168. package/cdn/video-minimal.dev.js +83 -20
  169. package/cdn/video-minimal.dev.js.map +1 -1
  170. package/cdn/video-minimal.js +1 -1
  171. package/cdn/video-minimal.js.map +1 -1
  172. package/cdn/video-ui.dev.js +2 -4
  173. package/cdn/video-ui.js +1 -1
  174. package/cdn/video.dev.js +56 -17
  175. package/cdn/video.dev.js.map +1 -1
  176. package/cdn/video.js +1 -1
  177. package/cdn/video.js.map +1 -1
  178. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  179. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  180. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  181. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  182. package/dist/default/_virtual/inline-css_src/define/background/skin.js +1 -1
  183. package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -1
  184. package/dist/default/_virtual/inline-css_src/define/global.js +6 -0
  185. package/dist/default/_virtual/inline-css_src/define/global.js.map +1 -0
  186. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  187. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  188. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  189. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  190. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  191. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  192. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  193. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  194. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  195. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  196. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  197. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  198. package/dist/default/define/audio/minimal-skin.css +227 -108
  199. package/dist/default/define/audio/minimal-skin.js +1 -1
  200. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  201. package/dist/default/define/audio/minimal-skin.tailwind.js +3 -2
  202. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  203. package/dist/default/define/audio/minimal-ui.js +8 -3
  204. package/dist/default/define/audio/minimal-ui.js.map +1 -1
  205. package/dist/default/define/audio/skin.css +253 -108
  206. package/dist/default/define/audio/skin.js +1 -1
  207. package/dist/default/define/audio/skin.js.map +1 -1
  208. package/dist/default/define/audio/skin.tailwind.js +2 -1
  209. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  210. package/dist/default/define/audio/ui.js +10 -1
  211. package/dist/default/define/audio/ui.js.map +1 -1
  212. package/dist/default/define/background/skin.css +4 -2
  213. package/dist/default/define/background/skin.js +1 -1
  214. package/dist/{dev/define/base.css → default/define/global.css} +12 -8
  215. package/dist/default/define/live-audio/minimal-skin.css +897 -0
  216. package/dist/default/define/live-audio/minimal-skin.js +26 -0
  217. package/dist/default/define/live-audio/minimal-skin.js.map +1 -0
  218. package/dist/default/define/live-audio/minimal-skin.tailwind.js +29 -0
  219. package/dist/default/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  220. package/dist/default/define/live-audio/minimal-ui.js +26 -0
  221. package/dist/default/define/live-audio/minimal-ui.js.map +1 -0
  222. package/dist/default/define/live-audio/player.js +18 -0
  223. package/dist/default/define/live-audio/player.js.map +1 -0
  224. package/dist/default/define/live-audio/skin.css +939 -0
  225. package/dist/default/define/live-audio/skin.js +26 -0
  226. package/dist/default/define/live-audio/skin.js.map +1 -0
  227. package/dist/default/define/live-audio/skin.tailwind.js +28 -0
  228. package/dist/default/define/live-audio/skin.tailwind.js.map +1 -0
  229. package/dist/default/define/live-audio/ui.js +30 -0
  230. package/dist/default/define/live-audio/ui.js.map +1 -0
  231. package/dist/default/define/live-video/minimal-skin.css +1593 -0
  232. package/dist/default/define/live-video/minimal-skin.js +26 -0
  233. package/dist/default/define/live-video/minimal-skin.js.map +1 -0
  234. package/dist/default/define/live-video/minimal-skin.tailwind.js +31 -0
  235. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -0
  236. package/dist/default/define/live-video/minimal-ui.js +44 -0
  237. package/dist/default/define/live-video/minimal-ui.js.map +1 -0
  238. package/dist/default/define/live-video/player.js +18 -0
  239. package/dist/default/define/live-video/player.js.map +1 -0
  240. package/dist/default/define/live-video/skin.css +1595 -0
  241. package/dist/default/define/live-video/skin.js +26 -0
  242. package/dist/default/define/live-video/skin.js.map +1 -0
  243. package/dist/default/define/live-video/skin.tailwind.js +29 -0
  244. package/dist/default/define/live-video/skin.tailwind.js.map +1 -0
  245. package/dist/default/define/live-video/ui.js +44 -0
  246. package/dist/default/define/live-video/ui.js.map +1 -0
  247. package/dist/default/define/shared.css +4 -0
  248. package/dist/default/define/skin-element.js +3 -3
  249. package/dist/default/define/skin-element.js.map +1 -1
  250. package/dist/default/define/tailwind.css +66 -0
  251. package/dist/default/define/ui/compounds.js +43 -1
  252. package/dist/default/define/ui/compounds.js.map +1 -1
  253. package/dist/default/define/ui/menu.js +6 -0
  254. package/dist/default/define/ui/menu.js.map +1 -0
  255. package/dist/default/define/ui/playback-rate-menu.js +13 -0
  256. package/dist/default/define/ui/playback-rate-menu.js.map +1 -0
  257. package/dist/default/define/ui/seek-indicator-value.js +7 -0
  258. package/dist/default/define/ui/seek-indicator-value.js.map +1 -0
  259. package/dist/default/define/ui/seek-indicator.js +9 -0
  260. package/dist/default/define/ui/seek-indicator.js.map +1 -0
  261. package/dist/default/define/ui/status-announcer.js +7 -0
  262. package/dist/default/define/ui/status-announcer.js.map +1 -0
  263. package/dist/default/define/ui/status-indicator-value.js +7 -0
  264. package/dist/default/define/ui/status-indicator-value.js.map +1 -0
  265. package/dist/default/define/ui/status-indicator.js +9 -0
  266. package/dist/default/define/ui/status-indicator.js.map +1 -0
  267. package/dist/default/define/ui/volume-indicator-fill.js +7 -0
  268. package/dist/default/define/ui/volume-indicator-fill.js.map +1 -0
  269. package/dist/default/define/ui/volume-indicator-value.js +7 -0
  270. package/dist/default/define/ui/volume-indicator-value.js.map +1 -0
  271. package/dist/default/define/ui/volume-indicator.js +11 -0
  272. package/dist/default/define/ui/volume-indicator.js.map +1 -0
  273. package/dist/default/define/video/minimal-skin.css +571 -147
  274. package/dist/default/define/video/minimal-skin.js +1 -1
  275. package/dist/default/define/video/minimal-skin.js.map +1 -1
  276. package/dist/default/define/video/minimal-skin.tailwind.js +4 -2
  277. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  278. package/dist/default/define/video/minimal-ui.js +13 -3
  279. package/dist/default/define/video/minimal-ui.js.map +1 -1
  280. package/dist/default/define/video/skin.css +581 -145
  281. package/dist/default/define/video/skin.js +1 -1
  282. package/dist/default/define/video/skin.js.map +1 -1
  283. package/dist/default/define/video/skin.tailwind.js +3 -2
  284. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  285. package/dist/default/define/video/ui.js +11 -1
  286. package/dist/default/define/video/ui.js.map +1 -1
  287. package/dist/default/icons/default/index.js +19 -0
  288. package/dist/default/icons/dist/element/base.js +66 -0
  289. package/dist/default/icons/dist/element/base.js.map +1 -0
  290. package/dist/default/icons/dist/element/default/icons.js +25 -0
  291. package/dist/default/icons/dist/element/default/icons.js.map +1 -0
  292. package/dist/default/icons/dist/element/default/index.js +10 -0
  293. package/dist/default/icons/dist/element/default/index.js.map +1 -0
  294. package/dist/default/icons/dist/element/index.js +11 -0
  295. package/dist/default/icons/dist/element/index.js.map +1 -0
  296. package/dist/default/icons/dist/element/minimal/icons.js +25 -0
  297. package/dist/default/icons/dist/element/minimal/icons.js.map +1 -0
  298. package/dist/default/icons/dist/element/minimal/index.js +10 -0
  299. package/dist/default/icons/dist/element/minimal/index.js.map +1 -0
  300. package/dist/default/icons/dist/html/default/captions-off.js +6 -0
  301. package/dist/default/icons/dist/html/default/captions-off.js.map +1 -0
  302. package/dist/default/icons/dist/html/default/captions-on.js +6 -0
  303. package/dist/default/icons/dist/html/default/captions-on.js.map +1 -0
  304. package/dist/default/icons/dist/html/default/cast-enter.js +6 -0
  305. package/dist/default/icons/dist/html/default/cast-enter.js.map +1 -0
  306. package/dist/default/icons/dist/html/default/cast-exit.js +6 -0
  307. package/dist/default/icons/dist/html/default/cast-exit.js.map +1 -0
  308. package/dist/default/icons/dist/html/default/check.js +6 -0
  309. package/dist/default/icons/dist/html/default/check.js.map +1 -0
  310. package/dist/default/icons/dist/html/default/chevron.js +6 -0
  311. package/dist/default/icons/dist/html/default/chevron.js.map +1 -0
  312. package/dist/default/icons/dist/html/default/fullscreen-enter.js +6 -0
  313. package/dist/default/icons/dist/html/default/fullscreen-enter.js.map +1 -0
  314. package/dist/default/icons/dist/html/default/fullscreen-exit.js +6 -0
  315. package/dist/default/icons/dist/html/default/fullscreen-exit.js.map +1 -0
  316. package/dist/default/icons/dist/html/default/pause.js +6 -0
  317. package/dist/default/icons/dist/html/default/pause.js.map +1 -0
  318. package/dist/default/icons/dist/html/default/pip-enter.js +6 -0
  319. package/dist/default/icons/dist/html/default/pip-enter.js.map +1 -0
  320. package/dist/default/icons/dist/html/default/pip-exit.js +6 -0
  321. package/dist/default/icons/dist/html/default/pip-exit.js.map +1 -0
  322. package/dist/default/icons/dist/html/default/play.js +6 -0
  323. package/dist/default/icons/dist/html/default/play.js.map +1 -0
  324. package/dist/default/icons/dist/html/default/restart.js +6 -0
  325. package/dist/default/icons/dist/html/default/restart.js.map +1 -0
  326. package/dist/default/icons/dist/html/default/seek.js +6 -0
  327. package/dist/default/icons/dist/html/default/seek.js.map +1 -0
  328. package/dist/default/icons/dist/html/default/spinner.js +6 -0
  329. package/dist/default/icons/dist/html/default/spinner.js.map +1 -0
  330. package/dist/default/icons/dist/html/default/volume-high.js +6 -0
  331. package/dist/default/icons/dist/html/default/volume-high.js.map +1 -0
  332. package/dist/default/icons/dist/html/default/volume-low.js +6 -0
  333. package/dist/default/icons/dist/html/default/volume-low.js.map +1 -0
  334. package/dist/default/icons/dist/html/default/volume-off.js +6 -0
  335. package/dist/default/icons/dist/html/default/volume-off.js.map +1 -0
  336. package/dist/default/icons/dist/html/minimal/captions-off.js +6 -0
  337. package/dist/default/icons/dist/html/minimal/captions-off.js.map +1 -0
  338. package/dist/default/icons/dist/html/minimal/captions-on.js +6 -0
  339. package/dist/default/icons/dist/html/minimal/captions-on.js.map +1 -0
  340. package/dist/default/icons/dist/html/minimal/cast-enter.js +6 -0
  341. package/dist/default/icons/dist/html/minimal/cast-enter.js.map +1 -0
  342. package/dist/default/icons/dist/html/minimal/cast-exit.js +6 -0
  343. package/dist/default/icons/dist/html/minimal/cast-exit.js.map +1 -0
  344. package/dist/default/icons/dist/html/minimal/check.js +6 -0
  345. package/dist/default/icons/dist/html/minimal/check.js.map +1 -0
  346. package/dist/default/icons/dist/html/minimal/chevron.js +6 -0
  347. package/dist/default/icons/dist/html/minimal/chevron.js.map +1 -0
  348. package/dist/default/icons/dist/html/minimal/fullscreen-enter.js +6 -0
  349. package/dist/default/icons/dist/html/minimal/fullscreen-enter.js.map +1 -0
  350. package/dist/default/icons/dist/html/minimal/fullscreen-exit.js +6 -0
  351. package/dist/default/icons/dist/html/minimal/fullscreen-exit.js.map +1 -0
  352. package/dist/default/icons/dist/html/minimal/pause.js +6 -0
  353. package/dist/default/icons/dist/html/minimal/pause.js.map +1 -0
  354. package/dist/default/icons/dist/html/minimal/pip-enter.js +6 -0
  355. package/dist/default/icons/dist/html/minimal/pip-enter.js.map +1 -0
  356. package/dist/default/icons/dist/html/minimal/pip-exit.js +6 -0
  357. package/dist/default/icons/dist/html/minimal/pip-exit.js.map +1 -0
  358. package/dist/default/icons/dist/html/minimal/play.js +6 -0
  359. package/dist/default/icons/dist/html/minimal/play.js.map +1 -0
  360. package/dist/default/icons/dist/html/minimal/restart.js +6 -0
  361. package/dist/default/icons/dist/html/minimal/restart.js.map +1 -0
  362. package/dist/default/icons/dist/html/minimal/seek.js +6 -0
  363. package/dist/default/icons/dist/html/minimal/seek.js.map +1 -0
  364. package/dist/default/icons/dist/html/minimal/spinner.js +6 -0
  365. package/dist/default/icons/dist/html/minimal/spinner.js.map +1 -0
  366. package/dist/default/icons/dist/html/minimal/volume-high.js +6 -0
  367. package/dist/default/icons/dist/html/minimal/volume-high.js.map +1 -0
  368. package/dist/default/icons/dist/html/minimal/volume-low.js +6 -0
  369. package/dist/default/icons/dist/html/minimal/volume-low.js.map +1 -0
  370. package/dist/default/icons/dist/html/minimal/volume-off.js +6 -0
  371. package/dist/default/icons/dist/html/minimal/volume-off.js.map +1 -0
  372. package/dist/default/icons/dist/render/default/index.js +17 -15
  373. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  374. package/dist/default/icons/dist/render/minimal/index.js +17 -15
  375. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  376. package/dist/default/icons/element/default/index.js +1 -0
  377. package/dist/default/icons/element/index.js +1 -0
  378. package/dist/default/icons/element/minimal/index.js +1 -0
  379. package/dist/default/icons/index.js +19 -0
  380. package/dist/default/icons/minimal/index.js +19 -0
  381. package/dist/default/index.js +26 -1
  382. package/dist/default/media/mux-audio/index.js +4 -1
  383. package/dist/default/media/mux-audio/index.js.map +1 -1
  384. package/dist/default/media/mux-video/index.js +4 -1
  385. package/dist/default/media/mux-video/index.js.map +1 -1
  386. package/dist/default/player/context.js.map +1 -1
  387. package/dist/default/presets/live-audio.js +7 -0
  388. package/dist/default/presets/live-video.js +7 -0
  389. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +3 -2
  390. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  391. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  392. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  393. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -2
  394. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  395. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
  396. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  397. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -1
  398. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  399. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  400. package/dist/default/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  401. package/dist/default/skins/dist/default/default/tailwind/components/menu.js +12 -0
  402. package/dist/default/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  403. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  404. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  405. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +1 -1
  406. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
  407. package/dist/default/skins/dist/default/default/tailwind/components/reset.js +7 -0
  408. package/dist/default/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  409. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -1
  410. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  411. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +1 -1
  412. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  413. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +13 -4
  414. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  415. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +4 -2
  416. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  417. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  418. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  419. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +3 -2
  420. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  421. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
  422. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  423. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -1
  424. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  425. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  426. package/dist/default/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  427. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js +12 -0
  428. package/dist/default/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  429. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +1 -1
  430. package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -1
  431. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +1 -1
  432. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
  433. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  434. package/dist/default/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  435. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -1
  436. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  437. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +1 -1
  438. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  439. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  440. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  441. package/dist/default/store/provider-mixin.js +8 -3
  442. package/dist/default/store/provider-mixin.js.map +1 -1
  443. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  444. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  445. package/dist/default/ui/alert-dialog/alert-dialog-element.js +12 -6
  446. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  447. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  448. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  449. package/dist/default/ui/cast-button/cast-button-element.js +2 -2
  450. package/dist/default/ui/cast-button/cast-button-element.js.map +1 -1
  451. package/dist/default/ui/controls/controls-element.js +13 -1
  452. package/dist/default/ui/controls/controls-element.js.map +1 -1
  453. package/dist/default/ui/error-dialog/error-dialog-element.js +4 -1
  454. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -1
  455. package/dist/default/ui/gesture/gesture-element.js +12 -8
  456. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  457. package/dist/default/ui/hotkey/hotkey-element.js +11 -7
  458. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  459. package/dist/default/ui/input-indicators/input-indicator-element.js +110 -0
  460. package/dist/default/ui/input-indicators/input-indicator-element.js.map +1 -0
  461. package/dist/default/ui/input-indicators/live-indicator.js +32 -0
  462. package/dist/default/ui/input-indicators/live-indicator.js.map +1 -0
  463. package/dist/default/ui/live-button/live-button-element.js +97 -0
  464. package/dist/default/ui/live-button/live-button-element.js.map +1 -0
  465. package/dist/default/ui/media-button-element.js +4 -2
  466. package/dist/default/ui/media-button-element.js.map +1 -1
  467. package/dist/default/ui/menu/context.js +10 -0
  468. package/dist/default/ui/menu/context.js.map +1 -0
  469. package/dist/default/ui/menu/menu-back-element.js +57 -0
  470. package/dist/default/ui/menu/menu-back-element.js.map +1 -0
  471. package/dist/default/ui/menu/menu-checkbox-item-element.js +78 -0
  472. package/dist/default/ui/menu/menu-checkbox-item-element.js.map +1 -0
  473. package/dist/default/ui/menu/menu-element.js +285 -0
  474. package/dist/default/ui/menu/menu-element.js.map +1 -0
  475. package/dist/default/ui/menu/menu-group-element.js +35 -0
  476. package/dist/default/ui/menu/menu-group-element.js.map +1 -0
  477. package/dist/default/ui/menu/menu-item-element.js +96 -0
  478. package/dist/default/ui/menu/menu-item-element.js.map +1 -0
  479. package/dist/default/ui/menu/menu-item-indicator-element.js +34 -0
  480. package/dist/default/ui/menu/menu-item-indicator-element.js.map +1 -0
  481. package/dist/default/ui/menu/menu-label-element.js +20 -0
  482. package/dist/default/ui/menu/menu-label-element.js.map +1 -0
  483. package/dist/default/ui/menu/menu-radio-group-element.js +51 -0
  484. package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -0
  485. package/dist/default/ui/menu/menu-radio-item-element.js +84 -0
  486. package/dist/default/ui/menu/menu-radio-item-element.js.map +1 -0
  487. package/dist/default/ui/menu/menu-separator-element.js +24 -0
  488. package/dist/default/ui/menu/menu-separator-element.js.map +1 -0
  489. package/dist/default/ui/menu/menu-view-element.js +16 -0
  490. package/dist/default/ui/menu/menu-view-element.js.map +1 -0
  491. package/dist/default/ui/playback-rate-menu/playback-rate-menu-element.js +47 -0
  492. package/dist/default/ui/playback-rate-menu/playback-rate-menu-element.js.map +1 -0
  493. package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger-element.js +85 -0
  494. package/dist/default/ui/playback-rate-menu/playback-rate-menu-trigger-element.js.map +1 -0
  495. package/dist/default/ui/playback-rate-menu/playback-rate-options-element.js +113 -0
  496. package/dist/default/ui/playback-rate-menu/playback-rate-options-element.js.map +1 -0
  497. package/dist/default/ui/popover/popover-element.js +44 -16
  498. package/dist/default/ui/popover/popover-element.js.map +1 -1
  499. package/dist/default/ui/position-controller.js +11 -6
  500. package/dist/default/ui/position-controller.js.map +1 -1
  501. package/dist/default/ui/seek-indicator/seek-indicator-element.js +44 -0
  502. package/dist/default/ui/seek-indicator/seek-indicator-element.js.map +1 -0
  503. package/dist/default/ui/seek-indicator/seek-indicator-value-element.js +11 -0
  504. package/dist/default/ui/seek-indicator/seek-indicator-value-element.js.map +1 -0
  505. package/dist/default/ui/slider/slider-element.js +8 -4
  506. package/dist/default/ui/slider/slider-element.js.map +1 -1
  507. package/dist/default/ui/slider/slider-preview-element.js +9 -6
  508. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  509. package/dist/default/ui/slider/slider-value-element.js +5 -4
  510. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  511. package/dist/default/ui/status-announcer/status-announcer-element.js +70 -0
  512. package/dist/default/ui/status-announcer/status-announcer-element.js.map +1 -0
  513. package/dist/default/ui/status-indicator/status-indicator-element.js +53 -0
  514. package/dist/default/ui/status-indicator/status-indicator-element.js.map +1 -0
  515. package/dist/default/ui/status-indicator/status-indicator-value-element.js +11 -0
  516. package/dist/default/ui/status-indicator/status-indicator-value-element.js.map +1 -0
  517. package/dist/default/ui/thumbnail/thumbnail-element.js +10 -5
  518. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  519. package/dist/default/ui/time/time-element.js +8 -4
  520. package/dist/default/ui/time/time-element.js.map +1 -1
  521. package/dist/default/ui/time-slider/time-slider-element.js +12 -6
  522. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  523. package/dist/default/ui/tooltip/tooltip-element.js +43 -16
  524. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  525. package/dist/default/ui/tooltip/tooltip-group-element.js +7 -5
  526. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  527. package/dist/default/ui/volume-indicator/volume-indicator-element.js +46 -0
  528. package/dist/default/ui/volume-indicator/volume-indicator-element.js.map +1 -0
  529. package/dist/default/ui/volume-indicator/volume-indicator-fill-element.js +11 -0
  530. package/dist/default/ui/volume-indicator/volume-indicator-fill-element.js.map +1 -0
  531. package/dist/default/ui/volume-indicator/volume-indicator-value-element.js +11 -0
  532. package/dist/default/ui/volume-indicator/volume-indicator-value-element.js.map +1 -0
  533. package/dist/default/ui/volume-slider/volume-slider-element.js +10 -5
  534. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  535. package/dist/dev/_virtual/_rolldown/runtime.js +27 -0
  536. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  537. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  538. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  539. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  540. package/dist/dev/_virtual/inline-css_src/define/background/skin.js +1 -1
  541. package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -1
  542. package/dist/dev/_virtual/inline-css_src/define/global.js +6 -0
  543. package/dist/dev/_virtual/inline-css_src/define/global.js.map +1 -0
  544. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  545. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  546. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  547. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  548. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  549. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  550. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  551. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  552. package/dist/dev/_virtual/inline-css_src/define/shared.js +1 -1
  553. package/dist/dev/_virtual/inline-css_src/define/shared.js.map +1 -1
  554. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  555. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  556. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  557. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  558. package/dist/dev/define/audio/minimal-skin.css +227 -108
  559. package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
  560. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  561. package/dist/dev/define/audio/minimal-skin.js +18 -14
  562. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  563. package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
  564. package/dist/dev/define/audio/minimal-skin.tailwind.js +29 -23
  565. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  566. package/dist/dev/define/audio/minimal-ui.js +8 -3
  567. package/dist/dev/define/audio/minimal-ui.js.map +1 -1
  568. package/dist/dev/define/audio/player.d.ts +2 -2
  569. package/dist/dev/define/audio/skin.css +253 -108
  570. package/dist/dev/define/audio/skin.d.ts +2 -2
  571. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  572. package/dist/dev/define/audio/skin.js +18 -13
  573. package/dist/dev/define/audio/skin.js.map +1 -1
  574. package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
  575. package/dist/dev/define/audio/skin.tailwind.js +27 -21
  576. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  577. package/dist/dev/define/audio/ui.js +10 -1
  578. package/dist/dev/define/audio/ui.js.map +1 -1
  579. package/dist/dev/define/background/player.d.ts +2 -2
  580. package/dist/dev/define/background/skin.css +4 -2
  581. package/dist/dev/define/background/skin.d.ts.map +1 -1
  582. package/dist/dev/define/background/skin.js +1 -1
  583. package/dist/{default/define/base.css → dev/define/global.css} +12 -8
  584. package/dist/dev/define/live-audio/minimal-skin.css +897 -0
  585. package/dist/dev/define/live-audio/minimal-skin.d.ts +17 -0
  586. package/dist/dev/define/live-audio/minimal-skin.d.ts.map +1 -0
  587. package/dist/dev/define/live-audio/minimal-skin.js +78 -0
  588. package/dist/dev/define/live-audio/minimal-skin.js.map +1 -0
  589. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts +14 -0
  590. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  591. package/dist/dev/define/live-audio/minimal-skin.tailwind.js +81 -0
  592. package/dist/dev/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  593. package/dist/dev/define/live-audio/minimal-ui.d.ts +1 -0
  594. package/dist/dev/define/live-audio/minimal-ui.js +26 -0
  595. package/dist/dev/define/live-audio/minimal-ui.js.map +1 -0
  596. package/dist/dev/define/live-audio/player.d.ts +17 -0
  597. package/dist/dev/define/live-audio/player.d.ts.map +1 -0
  598. package/dist/dev/define/live-audio/player.js +18 -0
  599. package/dist/dev/define/live-audio/player.js.map +1 -0
  600. package/dist/dev/define/live-audio/skin.css +939 -0
  601. package/dist/dev/define/live-audio/skin.d.ts +17 -0
  602. package/dist/dev/define/live-audio/skin.d.ts.map +1 -0
  603. package/dist/dev/define/live-audio/skin.js +85 -0
  604. package/dist/dev/define/live-audio/skin.js.map +1 -0
  605. package/dist/dev/define/live-audio/skin.tailwind.d.ts +14 -0
  606. package/dist/dev/define/live-audio/skin.tailwind.d.ts.map +1 -0
  607. package/dist/dev/define/live-audio/skin.tailwind.js +80 -0
  608. package/dist/dev/define/live-audio/skin.tailwind.js.map +1 -0
  609. package/dist/dev/define/live-audio/ui.d.ts +1 -0
  610. package/dist/dev/define/live-audio/ui.js +30 -0
  611. package/dist/dev/define/live-audio/ui.js.map +1 -0
  612. package/dist/dev/define/live-video/minimal-skin.css +1593 -0
  613. package/dist/dev/define/live-video/minimal-skin.d.ts +17 -0
  614. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -0
  615. package/dist/dev/define/live-video/minimal-skin.js +160 -0
  616. package/dist/dev/define/live-video/minimal-skin.js.map +1 -0
  617. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts +14 -0
  618. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  619. package/dist/dev/define/live-video/minimal-skin.tailwind.js +161 -0
  620. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -0
  621. package/dist/dev/define/live-video/minimal-ui.d.ts +1 -0
  622. package/dist/dev/define/live-video/minimal-ui.js +44 -0
  623. package/dist/dev/define/live-video/minimal-ui.js.map +1 -0
  624. package/dist/dev/define/live-video/player.d.ts +17 -0
  625. package/dist/dev/define/live-video/player.d.ts.map +1 -0
  626. package/dist/dev/define/live-video/player.js +18 -0
  627. package/dist/dev/define/live-video/player.js.map +1 -0
  628. package/dist/dev/define/live-video/skin.css +1595 -0
  629. package/dist/dev/define/live-video/skin.d.ts +17 -0
  630. package/dist/dev/define/live-video/skin.d.ts.map +1 -0
  631. package/dist/dev/define/live-video/skin.js +161 -0
  632. package/dist/dev/define/live-video/skin.js.map +1 -0
  633. package/dist/dev/define/live-video/skin.tailwind.d.ts +14 -0
  634. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -0
  635. package/dist/dev/define/live-video/skin.tailwind.js +160 -0
  636. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -0
  637. package/dist/dev/define/live-video/ui.d.ts +1 -0
  638. package/dist/dev/define/live-video/ui.js +44 -0
  639. package/dist/dev/define/live-video/ui.js.map +1 -0
  640. package/dist/dev/define/shared.css +4 -0
  641. package/dist/dev/define/skin-element.d.ts +1 -1
  642. package/dist/dev/define/skin-element.d.ts.map +1 -1
  643. package/dist/dev/define/skin-element.js +3 -3
  644. package/dist/dev/define/skin-element.js.map +1 -1
  645. package/dist/dev/define/tailwind.css +66 -0
  646. package/dist/dev/define/ui/compounds.d.ts +3 -1
  647. package/dist/dev/define/ui/compounds.d.ts.map +1 -1
  648. package/dist/dev/define/ui/compounds.js +43 -1
  649. package/dist/dev/define/ui/compounds.js.map +1 -1
  650. package/dist/dev/define/ui/menu.d.ts +25 -0
  651. package/dist/dev/define/ui/menu.d.ts.map +1 -0
  652. package/dist/dev/define/ui/menu.js +6 -0
  653. package/dist/dev/define/ui/menu.js.map +1 -0
  654. package/dist/dev/define/ui/playback-rate-menu.d.ts +13 -0
  655. package/dist/dev/define/ui/playback-rate-menu.d.ts.map +1 -0
  656. package/dist/dev/define/ui/playback-rate-menu.js +13 -0
  657. package/dist/dev/define/ui/playback-rate-menu.js.map +1 -0
  658. package/dist/dev/define/ui/seek-indicator-value.d.ts +9 -0
  659. package/dist/dev/define/ui/seek-indicator-value.d.ts.map +1 -0
  660. package/dist/dev/define/ui/seek-indicator-value.js +7 -0
  661. package/dist/dev/define/ui/seek-indicator-value.js.map +1 -0
  662. package/dist/dev/define/ui/seek-indicator.d.ts +11 -0
  663. package/dist/dev/define/ui/seek-indicator.d.ts.map +1 -0
  664. package/dist/dev/define/ui/seek-indicator.js +9 -0
  665. package/dist/dev/define/ui/seek-indicator.js.map +1 -0
  666. package/dist/dev/define/ui/status-announcer.d.ts +9 -0
  667. package/dist/dev/define/ui/status-announcer.d.ts.map +1 -0
  668. package/dist/dev/define/ui/status-announcer.js +7 -0
  669. package/dist/dev/define/ui/status-announcer.js.map +1 -0
  670. package/dist/dev/define/ui/status-indicator-value.d.ts +9 -0
  671. package/dist/dev/define/ui/status-indicator-value.d.ts.map +1 -0
  672. package/dist/dev/define/ui/status-indicator-value.js +7 -0
  673. package/dist/dev/define/ui/status-indicator-value.js.map +1 -0
  674. package/dist/dev/define/ui/status-indicator.d.ts +11 -0
  675. package/dist/dev/define/ui/status-indicator.d.ts.map +1 -0
  676. package/dist/dev/define/ui/status-indicator.js +9 -0
  677. package/dist/dev/define/ui/status-indicator.js.map +1 -0
  678. package/dist/dev/define/ui/volume-indicator-fill.d.ts +9 -0
  679. package/dist/dev/define/ui/volume-indicator-fill.d.ts.map +1 -0
  680. package/dist/dev/define/ui/volume-indicator-fill.js +7 -0
  681. package/dist/dev/define/ui/volume-indicator-fill.js.map +1 -0
  682. package/dist/dev/define/ui/volume-indicator-value.d.ts +9 -0
  683. package/dist/dev/define/ui/volume-indicator-value.d.ts.map +1 -0
  684. package/dist/dev/define/ui/volume-indicator-value.js +7 -0
  685. package/dist/dev/define/ui/volume-indicator-value.js.map +1 -0
  686. package/dist/dev/define/ui/volume-indicator.d.ts +13 -0
  687. package/dist/dev/define/ui/volume-indicator.d.ts.map +1 -0
  688. package/dist/dev/define/ui/volume-indicator.js +11 -0
  689. package/dist/dev/define/ui/volume-indicator.js.map +1 -0
  690. package/dist/dev/define/video/minimal-skin.css +571 -147
  691. package/dist/dev/define/video/minimal-skin.d.ts +2 -2
  692. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  693. package/dist/dev/define/video/minimal-skin.js +79 -14
  694. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  695. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  696. package/dist/dev/define/video/minimal-skin.tailwind.js +93 -21
  697. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  698. package/dist/dev/define/video/minimal-ui.js +13 -3
  699. package/dist/dev/define/video/minimal-ui.js.map +1 -1
  700. package/dist/dev/define/video/player.d.ts +2 -2
  701. package/dist/dev/define/video/skin.css +581 -145
  702. package/dist/dev/define/video/skin.d.ts +2 -2
  703. package/dist/dev/define/video/skin.d.ts.map +1 -1
  704. package/dist/dev/define/video/skin.js +52 -11
  705. package/dist/dev/define/video/skin.js.map +1 -1
  706. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  707. package/dist/dev/define/video/skin.tailwind.js +89 -19
  708. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  709. package/dist/dev/define/video/ui.js +11 -1
  710. package/dist/dev/define/video/ui.js.map +1 -1
  711. package/dist/dev/icons/default/index.d.ts +2 -0
  712. package/dist/dev/icons/default/index.js +19 -0
  713. package/dist/dev/icons/element/default/index.d.ts +1 -0
  714. package/dist/dev/icons/element/default/index.js +1 -0
  715. package/dist/dev/icons/element/index.d.ts +1 -0
  716. package/dist/dev/icons/element/index.js +1 -0
  717. package/dist/dev/icons/element/minimal/index.d.ts +1 -0
  718. package/dist/dev/icons/element/minimal/index.js +1 -0
  719. package/dist/dev/icons/index.d.ts +2 -0
  720. package/dist/dev/icons/index.js +19 -0
  721. package/dist/dev/icons/minimal/index.d.ts +2 -0
  722. package/dist/dev/icons/minimal/index.js +19 -0
  723. package/dist/dev/index.d.ts +36 -3
  724. package/dist/dev/index.d.ts.map +1 -0
  725. package/dist/dev/index.js +26 -1
  726. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  727. package/dist/dev/media/container-element.d.ts +2 -2
  728. package/dist/dev/media/dash-video/index.d.ts +2 -2
  729. package/dist/dev/media/hls-video/index.d.ts +2 -2
  730. package/dist/dev/media/mux-audio/index.d.ts +2 -2
  731. package/dist/dev/media/mux-audio/index.js +4 -1
  732. package/dist/dev/media/mux-audio/index.js.map +1 -1
  733. package/dist/dev/media/mux-video/index.d.ts +2 -2
  734. package/dist/dev/media/mux-video/index.js +4 -1
  735. package/dist/dev/media/mux-video/index.js.map +1 -1
  736. package/dist/dev/media/native-hls-video/index.d.ts +2 -2
  737. package/dist/dev/media/simple-hls-video/index.d.ts +2 -2
  738. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/index.d.ts +2 -0
  739. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/context-request-event.d.ts +61 -0
  740. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/context-request-event.d.ts.map +1 -0
  741. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-consumer.d.ts +1 -0
  742. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-provider.d.ts +22 -0
  743. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/controllers/context-provider.d.ts.map +1 -0
  744. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/create-context.d.ts +19 -0
  745. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/create-context.d.ts.map +1 -0
  746. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/decorators/consume.d.ts +1 -0
  747. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/decorators/provide.d.ts +1 -0
  748. package/dist/dev/node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/development/lib/value-notifier.d.ts +1 -0
  749. package/dist/dev/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts +116 -0
  750. package/dist/dev/node_modules/.pnpm/@lit_reactive-element@2.1.2/node_modules/@lit/reactive-element/development/reactive-element.d.ts.map +1 -0
  751. package/dist/dev/packages/icons/dist/element/base.js +66 -0
  752. package/dist/dev/packages/icons/dist/element/base.js.map +1 -0
  753. package/dist/dev/packages/icons/dist/element/default/icons.js +25 -0
  754. package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -0
  755. package/dist/dev/packages/icons/dist/element/default/index.d.ts +1 -0
  756. package/dist/dev/packages/icons/dist/element/default/index.js +10 -0
  757. package/dist/dev/packages/icons/dist/element/default/index.js.map +1 -0
  758. package/dist/dev/packages/icons/dist/element/index.d.ts +1 -0
  759. package/dist/dev/packages/icons/dist/element/index.js +11 -0
  760. package/dist/dev/packages/icons/dist/element/index.js.map +1 -0
  761. package/dist/dev/packages/icons/dist/element/minimal/icons.js +25 -0
  762. package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -0
  763. package/dist/dev/packages/icons/dist/element/minimal/index.d.ts +1 -0
  764. package/dist/dev/packages/icons/dist/element/minimal/index.js +10 -0
  765. package/dist/dev/packages/icons/dist/element/minimal/index.js.map +1 -0
  766. package/dist/dev/packages/icons/dist/html/default/captions-off.js +6 -0
  767. package/dist/dev/packages/icons/dist/html/default/captions-off.js.map +1 -0
  768. package/dist/dev/packages/icons/dist/html/default/captions-on.js +6 -0
  769. package/dist/dev/packages/icons/dist/html/default/captions-on.js.map +1 -0
  770. package/dist/dev/packages/icons/dist/html/default/cast-enter.js +6 -0
  771. package/dist/dev/packages/icons/dist/html/default/cast-enter.js.map +1 -0
  772. package/dist/dev/packages/icons/dist/html/default/cast-exit.js +6 -0
  773. package/dist/dev/packages/icons/dist/html/default/cast-exit.js.map +1 -0
  774. package/dist/dev/packages/icons/dist/html/default/check.js +6 -0
  775. package/dist/dev/packages/icons/dist/html/default/check.js.map +1 -0
  776. package/dist/dev/packages/icons/dist/html/default/chevron.js +6 -0
  777. package/dist/dev/packages/icons/dist/html/default/chevron.js.map +1 -0
  778. package/dist/dev/packages/icons/dist/html/default/fullscreen-enter.js +6 -0
  779. package/dist/dev/packages/icons/dist/html/default/fullscreen-enter.js.map +1 -0
  780. package/dist/dev/packages/icons/dist/html/default/fullscreen-exit.js +6 -0
  781. package/dist/dev/packages/icons/dist/html/default/fullscreen-exit.js.map +1 -0
  782. package/dist/dev/packages/icons/dist/html/default/index.d.ts +23 -0
  783. package/dist/dev/packages/icons/dist/html/default/index.d.ts.map +1 -0
  784. package/dist/dev/packages/icons/dist/html/default/pause.js +6 -0
  785. package/dist/dev/packages/icons/dist/html/default/pause.js.map +1 -0
  786. package/dist/dev/packages/icons/dist/html/default/pip-enter.js +6 -0
  787. package/dist/dev/packages/icons/dist/html/default/pip-enter.js.map +1 -0
  788. package/dist/dev/packages/icons/dist/html/default/pip-exit.js +6 -0
  789. package/dist/dev/packages/icons/dist/html/default/pip-exit.js.map +1 -0
  790. package/dist/dev/packages/icons/dist/html/default/play.js +6 -0
  791. package/dist/dev/packages/icons/dist/html/default/play.js.map +1 -0
  792. package/dist/dev/packages/icons/dist/html/default/restart.js +6 -0
  793. package/dist/dev/packages/icons/dist/html/default/restart.js.map +1 -0
  794. package/dist/dev/packages/icons/dist/html/default/seek.js +6 -0
  795. package/dist/dev/packages/icons/dist/html/default/seek.js.map +1 -0
  796. package/dist/dev/packages/icons/dist/html/default/spinner.js +6 -0
  797. package/dist/dev/packages/icons/dist/html/default/spinner.js.map +1 -0
  798. package/dist/dev/packages/icons/dist/html/default/volume-high.js +6 -0
  799. package/dist/dev/packages/icons/dist/html/default/volume-high.js.map +1 -0
  800. package/dist/dev/packages/icons/dist/html/default/volume-low.js +6 -0
  801. package/dist/dev/packages/icons/dist/html/default/volume-low.js.map +1 -0
  802. package/dist/dev/packages/icons/dist/html/default/volume-off.js +6 -0
  803. package/dist/dev/packages/icons/dist/html/default/volume-off.js.map +1 -0
  804. package/dist/dev/packages/icons/dist/html/minimal/captions-off.js +6 -0
  805. package/dist/dev/packages/icons/dist/html/minimal/captions-off.js.map +1 -0
  806. package/dist/dev/packages/icons/dist/html/minimal/captions-on.js +6 -0
  807. package/dist/dev/packages/icons/dist/html/minimal/captions-on.js.map +1 -0
  808. package/dist/dev/packages/icons/dist/html/minimal/cast-enter.js +6 -0
  809. package/dist/dev/packages/icons/dist/html/minimal/cast-enter.js.map +1 -0
  810. package/dist/dev/packages/icons/dist/html/minimal/cast-exit.js +6 -0
  811. package/dist/dev/packages/icons/dist/html/minimal/cast-exit.js.map +1 -0
  812. package/dist/dev/packages/icons/dist/html/minimal/check.js +6 -0
  813. package/dist/dev/packages/icons/dist/html/minimal/check.js.map +1 -0
  814. package/dist/dev/packages/icons/dist/html/minimal/chevron.js +6 -0
  815. package/dist/dev/packages/icons/dist/html/minimal/chevron.js.map +1 -0
  816. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-enter.js +6 -0
  817. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-enter.js.map +1 -0
  818. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-exit.js +6 -0
  819. package/dist/dev/packages/icons/dist/html/minimal/fullscreen-exit.js.map +1 -0
  820. package/dist/dev/packages/icons/dist/html/minimal/index.d.ts +23 -0
  821. package/dist/dev/packages/icons/dist/html/minimal/index.d.ts.map +1 -0
  822. package/dist/dev/packages/icons/dist/html/minimal/pause.js +6 -0
  823. package/dist/dev/packages/icons/dist/html/minimal/pause.js.map +1 -0
  824. package/dist/dev/packages/icons/dist/html/minimal/pip-enter.js +6 -0
  825. package/dist/dev/packages/icons/dist/html/minimal/pip-enter.js.map +1 -0
  826. package/dist/dev/packages/icons/dist/html/minimal/pip-exit.js +6 -0
  827. package/dist/dev/packages/icons/dist/html/minimal/pip-exit.js.map +1 -0
  828. package/dist/dev/packages/icons/dist/html/minimal/play.js +6 -0
  829. package/dist/dev/packages/icons/dist/html/minimal/play.js.map +1 -0
  830. package/dist/dev/packages/icons/dist/html/minimal/restart.js +6 -0
  831. package/dist/dev/packages/icons/dist/html/minimal/restart.js.map +1 -0
  832. package/dist/dev/packages/icons/dist/html/minimal/seek.js +6 -0
  833. package/dist/dev/packages/icons/dist/html/minimal/seek.js.map +1 -0
  834. package/dist/dev/packages/icons/dist/html/minimal/spinner.js +6 -0
  835. package/dist/dev/packages/icons/dist/html/minimal/spinner.js.map +1 -0
  836. package/dist/dev/packages/icons/dist/html/minimal/volume-high.js +6 -0
  837. package/dist/dev/packages/icons/dist/html/minimal/volume-high.js.map +1 -0
  838. package/dist/dev/packages/icons/dist/html/minimal/volume-low.js +6 -0
  839. package/dist/dev/packages/icons/dist/html/minimal/volume-low.js.map +1 -0
  840. package/dist/dev/packages/icons/dist/html/minimal/volume-off.js +6 -0
  841. package/dist/dev/packages/icons/dist/html/minimal/volume-off.js.map +1 -0
  842. package/dist/dev/packages/icons/dist/render/default/index.js +32 -0
  843. package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -0
  844. package/dist/dev/packages/icons/dist/render/minimal/index.js +32 -0
  845. package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -0
  846. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/audio.tailwind.js +3 -2
  847. package/dist/dev/packages/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -0
  848. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/buffering.js +1 -1
  849. package/dist/dev/packages/skins/dist/default/default/tailwind/components/buffering.js.map +1 -0
  850. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  851. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +13 -0
  852. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -0
  853. package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js +7 -0
  854. package/dist/dev/packages/skins/dist/default/default/tailwind/components/controls.js.map +1 -0
  855. package/dist/dev/packages/skins/dist/default/default/tailwind/components/error.js.map +1 -0
  856. package/dist/dev/packages/skins/dist/default/default/tailwind/components/icon.js +9 -0
  857. package/dist/dev/packages/skins/dist/default/default/tailwind/components/icon.js.map +1 -0
  858. package/dist/dev/packages/skins/dist/default/default/tailwind/components/input-feedback.js +40 -0
  859. package/dist/dev/packages/skins/dist/default/default/tailwind/components/input-feedback.js.map +1 -0
  860. package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js +12 -0
  861. package/dist/dev/packages/skins/dist/default/default/tailwind/components/menu.js.map +1 -0
  862. package/dist/dev/packages/skins/dist/default/default/tailwind/components/overlay.js.map +1 -0
  863. package/dist/dev/packages/skins/dist/default/default/tailwind/components/playback-rate.js +6 -0
  864. package/dist/dev/packages/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -0
  865. package/dist/dev/packages/skins/dist/default/default/tailwind/components/popup.js.map +1 -0
  866. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  867. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/preview.js +1 -1
  868. package/dist/dev/packages/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  869. package/dist/dev/packages/skins/dist/default/default/tailwind/components/reset.js +7 -0
  870. package/dist/dev/packages/skins/dist/default/default/tailwind/components/reset.js.map +1 -0
  871. package/dist/dev/packages/skins/dist/default/default/tailwind/components/root.js +8 -0
  872. package/dist/dev/packages/skins/dist/default/default/tailwind/components/root.js.map +1 -0
  873. package/dist/dev/packages/skins/dist/default/default/tailwind/components/seek.js.map +1 -0
  874. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/slider.js +1 -1
  875. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -0
  876. package/dist/dev/packages/skins/dist/default/default/tailwind/components/surface.js.map +1 -0
  877. package/dist/dev/packages/skins/dist/default/default/tailwind/components/time.js.map +1 -0
  878. package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/video.tailwind.js +13 -4
  879. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -0
  880. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/audio.tailwind.js +4 -2
  881. package/dist/dev/packages/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -0
  882. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/buffering.js +1 -1
  883. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -0
  884. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -0
  885. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button.js +13 -0
  886. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/button.js.map +1 -0
  887. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js +7 -0
  888. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -0
  889. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  890. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/icon.js +9 -0
  891. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -0
  892. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/input-feedback.js +41 -0
  893. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/input-feedback.js.map +1 -0
  894. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js +12 -0
  895. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/menu.js.map +1 -0
  896. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -0
  897. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/playback-rate.js +6 -0
  898. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -0
  899. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -0
  900. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  901. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/preview.js +1 -1
  902. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  903. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/reset.js +7 -0
  904. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/reset.js.map +1 -0
  905. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/root.js +8 -0
  906. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/root.js.map +1 -0
  907. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -0
  908. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/slider.js +1 -1
  909. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -0
  910. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/time.js.map +1 -0
  911. package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/video.tailwind.js +6 -4
  912. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -0
  913. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  914. package/dist/dev/player/context.d.ts +3 -2
  915. package/dist/dev/player/context.d.ts.map +1 -1
  916. package/dist/dev/player/context.js.map +1 -1
  917. package/dist/dev/player/player-controller.d.ts +1 -1
  918. package/dist/dev/player/player-controller.d.ts.map +1 -1
  919. package/dist/dev/presets/live-audio.d.ts +7 -0
  920. package/dist/dev/presets/live-audio.js +7 -0
  921. package/dist/dev/presets/live-video.d.ts +7 -0
  922. package/dist/dev/presets/live-video.js +7 -0
  923. package/dist/dev/store/container-mixin.d.ts +1 -1
  924. package/dist/dev/store/provider-mixin.d.ts +1 -1
  925. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  926. package/dist/dev/store/provider-mixin.js +8 -3
  927. package/dist/dev/store/provider-mixin.js.map +1 -1
  928. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.d.ts.map +1 -1
  929. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  930. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  931. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.d.ts +2 -2
  932. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  933. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +12 -6
  934. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  935. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +2 -2
  936. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  937. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  938. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  939. package/dist/dev/ui/captions-button/captions-button-element.d.ts +4 -4
  940. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  941. package/dist/dev/ui/cast-button/cast-button-element.d.ts +6 -6
  942. package/dist/dev/ui/cast-button/cast-button-element.d.ts.map +1 -1
  943. package/dist/dev/ui/cast-button/cast-button-element.js +2 -2
  944. package/dist/dev/ui/cast-button/cast-button-element.js.map +1 -1
  945. package/dist/dev/ui/controls/controls-element.d.ts.map +1 -1
  946. package/dist/dev/ui/controls/controls-element.js +13 -1
  947. package/dist/dev/ui/controls/controls-element.js.map +1 -1
  948. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -1
  949. package/dist/dev/ui/error-dialog/error-dialog-element.js +4 -1
  950. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -1
  951. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +4 -4
  952. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  953. package/dist/dev/ui/gesture/gesture-element.js +12 -8
  954. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  955. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -1
  956. package/dist/dev/ui/hotkey/hotkey-element.js +11 -7
  957. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  958. package/dist/dev/ui/input-indicators/input-indicator-element.d.ts +37 -0
  959. package/dist/dev/ui/input-indicators/input-indicator-element.d.ts.map +1 -0
  960. package/dist/dev/ui/input-indicators/input-indicator-element.js +110 -0
  961. package/dist/dev/ui/input-indicators/input-indicator-element.js.map +1 -0
  962. package/dist/dev/ui/input-indicators/live-indicator.d.ts +18 -0
  963. package/dist/dev/ui/input-indicators/live-indicator.d.ts.map +1 -0
  964. package/dist/dev/ui/input-indicators/live-indicator.js +32 -0
  965. package/dist/dev/ui/input-indicators/live-indicator.js.map +1 -0
  966. package/dist/dev/ui/live-button/live-button-element.d.ts +38 -0
  967. package/dist/dev/ui/live-button/live-button-element.d.ts.map +1 -0
  968. package/dist/dev/ui/live-button/live-button-element.js +98 -0
  969. package/dist/dev/ui/live-button/live-button-element.js.map +1 -0
  970. package/dist/dev/ui/media-button-element.d.ts +1 -1
  971. package/dist/dev/ui/media-button-element.js +4 -2
  972. package/dist/dev/ui/media-button-element.js.map +1 -1
  973. package/dist/dev/ui/media-element.d.ts +2 -2
  974. package/dist/dev/ui/menu/context.d.ts +25 -0
  975. package/dist/dev/ui/menu/context.d.ts.map +1 -0
  976. package/dist/dev/ui/menu/context.js +10 -0
  977. package/dist/dev/ui/menu/context.js.map +1 -0
  978. package/dist/dev/ui/menu/menu-back-element.d.ts +20 -0
  979. package/dist/dev/ui/menu/menu-back-element.d.ts.map +1 -0
  980. package/dist/dev/ui/menu/menu-back-element.js +57 -0
  981. package/dist/dev/ui/menu/menu-back-element.js.map +1 -0
  982. package/dist/dev/ui/menu/menu-checkbox-item-element.d.ts +24 -0
  983. package/dist/dev/ui/menu/menu-checkbox-item-element.d.ts.map +1 -0
  984. package/dist/dev/ui/menu/menu-checkbox-item-element.js +78 -0
  985. package/dist/dev/ui/menu/menu-checkbox-item-element.js.map +1 -0
  986. package/dist/dev/ui/menu/menu-element.d.ts +52 -0
  987. package/dist/dev/ui/menu/menu-element.d.ts.map +1 -0
  988. package/dist/dev/ui/menu/menu-element.js +285 -0
  989. package/dist/dev/ui/menu/menu-element.js.map +1 -0
  990. package/dist/dev/ui/menu/menu-group-element.d.ts +18 -0
  991. package/dist/dev/ui/menu/menu-group-element.d.ts.map +1 -0
  992. package/dist/dev/ui/menu/menu-group-element.js +35 -0
  993. package/dist/dev/ui/menu/menu-group-element.js.map +1 -0
  994. package/dist/dev/ui/menu/menu-item-element.d.ts +25 -0
  995. package/dist/dev/ui/menu/menu-item-element.d.ts.map +1 -0
  996. package/dist/dev/ui/menu/menu-item-element.js +96 -0
  997. package/dist/dev/ui/menu/menu-item-element.js.map +1 -0
  998. package/dist/dev/ui/menu/menu-item-indicator-element.d.ts +22 -0
  999. package/dist/dev/ui/menu/menu-item-indicator-element.d.ts.map +1 -0
  1000. package/dist/dev/ui/menu/menu-item-indicator-element.js +34 -0
  1001. package/dist/dev/ui/menu/menu-item-indicator-element.js.map +1 -0
  1002. package/dist/dev/ui/menu/menu-label-element.d.ts +15 -0
  1003. package/dist/dev/ui/menu/menu-label-element.d.ts.map +1 -0
  1004. package/dist/dev/ui/menu/menu-label-element.js +20 -0
  1005. package/dist/dev/ui/menu/menu-label-element.js.map +1 -0
  1006. package/dist/dev/ui/menu/menu-radio-group-element.d.ts +22 -0
  1007. package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -0
  1008. package/dist/dev/ui/menu/menu-radio-group-element.js +51 -0
  1009. package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -0
  1010. package/dist/dev/ui/menu/menu-radio-item-element.d.ts +24 -0
  1011. package/dist/dev/ui/menu/menu-radio-item-element.d.ts.map +1 -0
  1012. package/dist/dev/ui/menu/menu-radio-item-element.js +84 -0
  1013. package/dist/dev/ui/menu/menu-radio-item-element.js.map +1 -0
  1014. package/dist/dev/ui/menu/menu-separator-element.d.ts +12 -0
  1015. package/dist/dev/ui/menu/menu-separator-element.d.ts.map +1 -0
  1016. package/dist/dev/ui/menu/menu-separator-element.js +24 -0
  1017. package/dist/dev/ui/menu/menu-separator-element.js.map +1 -0
  1018. package/dist/dev/ui/menu/menu-view-element.d.ts +11 -0
  1019. package/dist/dev/ui/menu/menu-view-element.d.ts.map +1 -0
  1020. package/dist/dev/ui/menu/menu-view-element.js +16 -0
  1021. package/dist/dev/ui/menu/menu-view-element.js.map +1 -0
  1022. package/dist/dev/ui/mute-button/mute-button-element.d.ts +4 -4
  1023. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  1024. package/dist/dev/ui/pip-button/pip-button-element.d.ts +4 -4
  1025. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  1026. package/dist/dev/ui/play-button/play-button-element.d.ts +5 -5
  1027. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  1028. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +3 -3
  1029. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  1030. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.d.ts +53 -0
  1031. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.d.ts.map +1 -0
  1032. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.js +48 -0
  1033. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-element.js.map +1 -0
  1034. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.d.ts +35 -0
  1035. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.d.ts.map +1 -0
  1036. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.js +86 -0
  1037. package/dist/dev/ui/playback-rate-menu/playback-rate-menu-trigger-element.js.map +1 -0
  1038. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.d.ts +31 -0
  1039. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.d.ts.map +1 -0
  1040. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.js +114 -0
  1041. package/dist/dev/ui/playback-rate-menu/playback-rate-options-element.js.map +1 -0
  1042. package/dist/dev/ui/popover/popover-element.d.ts +9 -3
  1043. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  1044. package/dist/dev/ui/popover/popover-element.js +44 -16
  1045. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  1046. package/dist/dev/ui/position-controller.js +11 -6
  1047. package/dist/dev/ui/position-controller.js.map +1 -1
  1048. package/dist/dev/ui/poster/poster-element.d.ts +4 -4
  1049. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  1050. package/dist/dev/ui/seek-button/seek-button-element.d.ts +4 -4
  1051. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  1052. package/dist/dev/ui/seek-indicator/seek-indicator-element.d.ts +25 -0
  1053. package/dist/dev/ui/seek-indicator/seek-indicator-element.d.ts.map +1 -0
  1054. package/dist/dev/ui/seek-indicator/seek-indicator-element.js +44 -0
  1055. package/dist/dev/ui/seek-indicator/seek-indicator-element.js.map +1 -0
  1056. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.d.ts +9 -0
  1057. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.d.ts.map +1 -0
  1058. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.js +11 -0
  1059. package/dist/dev/ui/seek-indicator/seek-indicator-value-element.js.map +1 -0
  1060. package/dist/dev/ui/slider/slider-element.d.ts +2 -2
  1061. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  1062. package/dist/dev/ui/slider/slider-element.js +8 -4
  1063. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  1064. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  1065. package/dist/dev/ui/slider/slider-preview-element.js +9 -6
  1066. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  1067. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -1
  1068. package/dist/dev/ui/slider/slider-value-element.js +5 -4
  1069. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  1070. package/dist/dev/ui/status-announcer/status-announcer-element.d.ts +23 -0
  1071. package/dist/dev/ui/status-announcer/status-announcer-element.d.ts.map +1 -0
  1072. package/dist/dev/ui/status-announcer/status-announcer-element.js +70 -0
  1073. package/dist/dev/ui/status-announcer/status-announcer-element.js.map +1 -0
  1074. package/dist/dev/ui/status-indicator/status-indicator-element.d.ts +29 -0
  1075. package/dist/dev/ui/status-indicator/status-indicator-element.d.ts.map +1 -0
  1076. package/dist/dev/ui/status-indicator/status-indicator-element.js +53 -0
  1077. package/dist/dev/ui/status-indicator/status-indicator-element.js.map +1 -0
  1078. package/dist/dev/ui/status-indicator/status-indicator-value-element.d.ts +9 -0
  1079. package/dist/dev/ui/status-indicator/status-indicator-value-element.d.ts.map +1 -0
  1080. package/dist/dev/ui/status-indicator/status-indicator-value-element.js +11 -0
  1081. package/dist/dev/ui/status-indicator/status-indicator-value-element.js.map +1 -0
  1082. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -1
  1083. package/dist/dev/ui/thumbnail/thumbnail-element.js +10 -5
  1084. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  1085. package/dist/dev/ui/time/time-element.d.ts +2 -2
  1086. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  1087. package/dist/dev/ui/time/time-element.js +8 -4
  1088. package/dist/dev/ui/time/time-element.js.map +1 -1
  1089. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  1090. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  1091. package/dist/dev/ui/time-slider/time-slider-element.js +12 -6
  1092. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  1093. package/dist/dev/ui/tooltip/tooltip-element.d.ts +9 -3
  1094. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  1095. package/dist/dev/ui/tooltip/tooltip-element.js +43 -16
  1096. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  1097. package/dist/dev/ui/tooltip/tooltip-group-element.d.ts.map +1 -1
  1098. package/dist/dev/ui/tooltip/tooltip-group-element.js +7 -5
  1099. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  1100. package/dist/dev/ui/volume-indicator/volume-indicator-element.d.ts +25 -0
  1101. package/dist/dev/ui/volume-indicator/volume-indicator-element.d.ts.map +1 -0
  1102. package/dist/dev/ui/volume-indicator/volume-indicator-element.js +46 -0
  1103. package/dist/dev/ui/volume-indicator/volume-indicator-element.js.map +1 -0
  1104. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.d.ts +9 -0
  1105. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.d.ts.map +1 -0
  1106. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.js +11 -0
  1107. package/dist/dev/ui/volume-indicator/volume-indicator-fill-element.js.map +1 -0
  1108. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.d.ts +9 -0
  1109. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.d.ts.map +1 -0
  1110. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.js +11 -0
  1111. package/dist/dev/ui/volume-indicator/volume-indicator-value-element.js.map +1 -0
  1112. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +2 -2
  1113. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  1114. package/dist/dev/ui/volume-slider/volume-slider-element.js +10 -5
  1115. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  1116. package/docs/README.md +7 -0
  1117. package/docs/concepts/accessibility.md +60 -0
  1118. package/docs/concepts/browser-support.md +37 -0
  1119. package/docs/concepts/features.md +129 -0
  1120. package/docs/concepts/overview.md +118 -0
  1121. package/docs/concepts/presets.md +207 -0
  1122. package/docs/concepts/skins.md +2006 -0
  1123. package/docs/concepts/ui-components.md +59 -0
  1124. package/docs/concepts/v10-roadmap.md +75 -0
  1125. package/docs/concepts/why-videojs.md +113 -0
  1126. package/docs/how-to/build-with-ai.md +39 -0
  1127. package/docs/how-to/build-your-own-component.md +217 -0
  1128. package/docs/how-to/customize-skins.md +5711 -0
  1129. package/docs/how-to/installation.md +172 -0
  1130. package/docs/llms.txt +88 -0
  1131. package/docs/reference/buffering-indicator.md +152 -0
  1132. package/docs/reference/captions-button.md +216 -0
  1133. package/docs/reference/container-mixin.md +69 -0
  1134. package/docs/reference/controls.md +248 -0
  1135. package/docs/reference/create-selector.md +59 -0
  1136. package/docs/reference/feature-buffer.md +52 -0
  1137. package/docs/reference/feature-controls.md +70 -0
  1138. package/docs/reference/feature-error.md +60 -0
  1139. package/docs/reference/feature-fullscreen.md +90 -0
  1140. package/docs/reference/feature-live.md +60 -0
  1141. package/docs/reference/feature-pip.md +90 -0
  1142. package/docs/reference/feature-playback-rate.md +70 -0
  1143. package/docs/reference/feature-playback.md +110 -0
  1144. package/docs/reference/feature-remote-playback.md +70 -0
  1145. package/docs/reference/feature-source.md +70 -0
  1146. package/docs/reference/feature-stream-type.md +46 -0
  1147. package/docs/reference/feature-text-tracks.md +100 -0
  1148. package/docs/reference/feature-time.md +80 -0
  1149. package/docs/reference/feature-volume.md +90 -0
  1150. package/docs/reference/fullscreen-button.md +229 -0
  1151. package/docs/reference/html-create-player.md +449 -0
  1152. package/docs/reference/media-attach-mixin.md +83 -0
  1153. package/docs/reference/mute-button.md +301 -0
  1154. package/docs/reference/pip-button.md +229 -0
  1155. package/docs/reference/play-button.md +251 -0
  1156. package/docs/reference/playback-rate-button.md +170 -0
  1157. package/docs/reference/player-container.md +126 -0
  1158. package/docs/reference/player-context.md +50 -0
  1159. package/docs/reference/player-controller.md +276 -0
  1160. package/docs/reference/player-provider.md +114 -0
  1161. package/docs/reference/popover.md +460 -0
  1162. package/docs/reference/poster.md +158 -0
  1163. package/docs/reference/provider-mixin.md +71 -0
  1164. package/docs/reference/seek-button.md +223 -0
  1165. package/docs/reference/slider.md +862 -0
  1166. package/docs/reference/snapshot-controller.md +208 -0
  1167. package/docs/reference/store-controller.md +180 -0
  1168. package/docs/reference/thumbnail.md +364 -0
  1169. package/docs/reference/time-slider.md +794 -0
  1170. package/docs/reference/time.md +488 -0
  1171. package/docs/reference/tooltip.md +547 -0
  1172. package/docs/reference/volume-slider.md +783 -0
  1173. package/package.json +46 -12
  1174. package/cdn/compounds-CCgS3IGo.js +0 -8
  1175. package/cdn/compounds-CCgS3IGo.js.map +0 -1
  1176. package/cdn/compounds-DD3MYkSc.js.map +0 -1
  1177. package/cdn/context-0rI_P6jf.js.map +0 -1
  1178. package/cdn/context-CEFisYD0.js.map +0 -1
  1179. package/cdn/create-player-B-PGzhq2.js +0 -7
  1180. package/cdn/create-player-B-PGzhq2.js.map +0 -1
  1181. package/cdn/create-player-BKLw7l1a.js.map +0 -1
  1182. package/cdn/default-Djy9PEXm.js +0 -2
  1183. package/cdn/default-Djy9PEXm.js.map +0 -1
  1184. package/cdn/default-YzaLyoYg.js +0 -30
  1185. package/cdn/default-YzaLyoYg.js.map +0 -1
  1186. package/cdn/hls-CcSAx_3I.js.map +0 -1
  1187. package/cdn/hls-Dl2v35sW.js +0 -41
  1188. package/cdn/hls-Dl2v35sW.js.map +0 -1
  1189. package/cdn/hotkey-element-BONs_FyJ.js.map +0 -1
  1190. package/cdn/hotkey-element-DWWkfH3A.js +0 -2
  1191. package/cdn/hotkey-element-DWWkfH3A.js.map +0 -1
  1192. package/cdn/media-attach-mixin-C2wz0Qbd.js +0 -2
  1193. package/cdn/minimal-AX_y2YBU.js +0 -30
  1194. package/cdn/minimal-AX_y2YBU.js.map +0 -1
  1195. package/cdn/minimal-Bc74CFqg.js +0 -2
  1196. package/cdn/minimal-Bc74CFqg.js.map +0 -1
  1197. package/cdn/minimal-ui-CE1sVxKB.js +0 -22
  1198. package/cdn/minimal-ui-CE1sVxKB.js.map +0 -1
  1199. package/cdn/minimal-ui-hC8-_9_F.js +0 -2
  1200. package/cdn/minimal-ui-hC8-_9_F.js.map +0 -1
  1201. package/cdn/minimal-ui-lnw8AjaS.js +0 -2
  1202. package/cdn/minimal-ui-lnw8AjaS.js.map +0 -1
  1203. package/cdn/minimal-ui-yKur3jyD.js +0 -29
  1204. package/cdn/minimal-ui-yKur3jyD.js.map +0 -1
  1205. package/cdn/mux-BgWl50KW.js.map +0 -1
  1206. package/cdn/mux-BhHIeG3e.js.map +0 -1
  1207. package/cdn/native-hls-lhip4tV9.js +0 -123
  1208. package/cdn/native-hls-lhip4tV9.js.map +0 -1
  1209. package/cdn/native-hls-odPBXxK7.js +0 -2
  1210. package/cdn/native-hls-odPBXxK7.js.map +0 -1
  1211. package/cdn/player-B7jISTmQ.js +0 -2
  1212. package/cdn/player-B7jISTmQ.js.map +0 -1
  1213. package/cdn/player-ChdQN3H5.js +0 -2
  1214. package/cdn/player-DX5Ka0vt.js.map +0 -1
  1215. package/cdn/skin-element-D3iVinGP.js +0 -55
  1216. package/cdn/skin-element-D3iVinGP.js.map +0 -1
  1217. package/cdn/skin-element-DM82PPxz.js +0 -2
  1218. package/cdn/skin-element-DM82PPxz.js.map +0 -1
  1219. package/cdn/ui-BGvi0TNr.js +0 -2
  1220. package/cdn/ui-BGvi0TNr.js.map +0 -1
  1221. package/cdn/ui-BN57BxYZ.js +0 -2
  1222. package/cdn/ui-BN57BxYZ.js.map +0 -1
  1223. package/cdn/ui-CKR6dVbQ.js +0 -25
  1224. package/cdn/ui-CKR6dVbQ.js.map +0 -1
  1225. package/cdn/ui-CZ4yl3t3.js +0 -32
  1226. package/cdn/ui-CZ4yl3t3.js.map +0 -1
  1227. package/dist/default/_virtual/inline-css_src/define/base.js +0 -6
  1228. package/dist/default/_virtual/inline-css_src/define/base.js.map +0 -1
  1229. package/dist/dev/_virtual/inline-css_src/define/base.js +0 -6
  1230. package/dist/dev/_virtual/inline-css_src/define/base.js.map +0 -1
  1231. package/dist/dev/icons/dist/render/default/index.js +0 -30
  1232. package/dist/dev/icons/dist/render/default/index.js.map +0 -1
  1233. package/dist/dev/icons/dist/render/minimal/index.js +0 -30
  1234. package/dist/dev/icons/dist/render/minimal/index.js.map +0 -1
  1235. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +0 -1
  1236. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +0 -1
  1237. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +0 -1
  1238. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +0 -12
  1239. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +0 -1
  1240. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +0 -7
  1241. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +0 -1
  1242. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +0 -1
  1243. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +0 -9
  1244. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +0 -1
  1245. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +0 -1
  1246. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +0 -6
  1247. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +0 -1
  1248. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +0 -1
  1249. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +0 -1
  1250. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +0 -1
  1251. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +0 -7
  1252. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +0 -1
  1253. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +0 -1
  1254. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +0 -1
  1255. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +0 -1
  1256. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +0 -1
  1257. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +0 -1
  1258. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +0 -1
  1259. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +0 -1
  1260. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +0 -1
  1261. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +0 -12
  1262. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +0 -1
  1263. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +0 -7
  1264. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +0 -1
  1265. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +0 -1
  1266. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +0 -9
  1267. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +0 -1
  1268. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +0 -1
  1269. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +0 -6
  1270. package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +0 -1
  1271. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +0 -1
  1272. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +0 -1
  1273. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +0 -1
  1274. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +0 -7
  1275. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +0 -1
  1276. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +0 -1
  1277. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +0 -1
  1278. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +0 -1
  1279. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +0 -1
  1280. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +0 -1
  1281. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/button-group.js +0 -0
  1282. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/error.js +0 -0
  1283. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/overlay.js +0 -0
  1284. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/popup.js +0 -0
  1285. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/poster.js +0 -0
  1286. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/seek.js +0 -0
  1287. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/surface.js +0 -0
  1288. /package/dist/dev/{skins → packages/skins}/dist/default/default/tailwind/components/time.js +0 -0
  1289. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/button-group.js +0 -0
  1290. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/error.js +0 -0
  1291. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/overlay.js +0 -0
  1292. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/popup.js +0 -0
  1293. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/poster.js +0 -0
  1294. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/seek.js +0 -0
  1295. /package/dist/dev/{skins → packages/skins}/dist/default/minimal/tailwind/components/time.js +0 -0
  1296. /package/dist/dev/{skins → packages/skins}/dist/default/shared/tailwind/icon-state.js +0 -0
@@ -0,0 +1,7 @@
1
+ import{t as e}from"./listen-DFX-0NbX.js";import{c as t,d as n,i as r,l as i,n as a,o,s,t as c}from"./predicate-Dxl3IuYh.js";import{t as l}from"./abort-0nUH9HXc.js";import{t as u}from"./shallow-equal-D-fthE54.js";function d(e){let t=e.composedPath();return t.length>0?t[0]:e.target}function f(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 p=[`button`,`input`,`select`,`textarea`,`a[href]`,`[role="button"]`,`[role="menu"]`,`[role="menuitem"]`,`[role="menuitemcheckbox"]`,`[role="menuitemradio"]`,`[role="slider"]`,`[data-interactive]`].join(`,`),m=[`textarea`,`select`,`input:not([type])`,...[`text`,`search`,`url`,`tel`,`email`,`password`,`number`].map(e=>`input[type="${e}"]`),`[contenteditable]:not([contenteditable="false"])`].join(`,`);function h(e){return e.matches(m)}function ee(e){let t=d(e);return t instanceof Element&&h(t)}function g(e){let t=d(e);return t instanceof Element?t.closest(p)!==null:!1}const te=new Set([` `,`Enter`]);function ne(e){if(!te.has(e.key))return!1;let t=d(e);return t instanceof Element&&t.matches(`button,a[href],[role="slider"],[role="button"]`)}function re(e,t){if(!(e instanceof HTMLElement))return null;for(let n of e.querySelectorAll(`track`))if(n.track===t)return n;return null}function ie(e,t){return e.textTracks?Array.from(e.textTracks).filter(t).sort(ae):[]}function ae(e,t){return e.kind>t.kind?1:e.kind<t.kind?-1:0}function oe(e){let t=[];for(let n=0;n<e.length;n++)t.push([e.start(n),e.end(n)]);return t}function se(e){class t extends e{#e=!1;#t=new Set;get destroyed(){return this.#e}destroy(){this.#e||(this.#e=!0,this.destroyCallback())}destroyCallback(){for(let e of this.#t)e.hostDestroyed?.()}addController(e){super.addController(e),this.#t.add(e)}removeController(e){super.removeController(e),this.#t.delete(e)}connectedCallback(){this.#e||super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),!this.#e&&!this.hasAttribute(`keep-alive`)&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.isConnected||this.destroy()})})}performUpdate(){this.#e||super.performUpdate()}}return t}const ce=new WeakMap,le=new Map;var ue=class extends HTMLElement{static{this.properties={}}static get observedAttributes(){return[..._(this).attrToProp.keys()]}#e;#t;#n;#r;constructor(){super(),this.#e=new Set,this.#t=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this.#r=new Promise(e=>this.enableUpdating=e);let{props:e}=_(this.constructor);for(let t of e.keys())Object.hasOwn(this,t)&&((this.#n??=new Map).set(t,this[t]),delete this[t]);this.requestUpdate()}enableUpdating(e){}addController(e){this.#e.add(e),this.isConnected&&e.hostConnected?.()}removeController(e){this.#e.delete(e)}connectedCallback(){this.enableUpdating(!0);for(let e of this.#e)e.hostConnected?.()}disconnectedCallback(){for(let e of this.#e)e.hostDisconnected?.()}attributeChangedCallback(e,t,n){if(t===n)return;let{props:r,attrToProp:i}=_(this.constructor),a=i.get(e);if(!a)return;let o=r.get(a);if(!o)return;let s=n;o.type===Boolean?s=n!==null:o.type===Number&&(s=n===null?null:Number(n)),this[a]=s}requestUpdate(e,t){e!==void 0&&this.#t.set(e,t),!this.isUpdatePending&&(this.#r=this.#i())}async#i(){this.isUpdatePending=!0;try{await this.#r}catch(e){Promise.reject(e)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated&&this.#n){for(let[e,t]of this.#n)this[e]=t;this.#n=void 0}let e=this.#t;this.willUpdate(e);for(let e of this.#e)e.hostUpdate?.();this.update(e),this.#t=new Map,this.isUpdatePending=!1;for(let e of this.#e)e.hostUpdated?.();this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}willUpdate(e){}update(e){}firstUpdated(e){}updated(e){}get updateComplete(){return this.#r}};function _(e){let t=ce.get(e);if(t)return t;let n=new Map,r=new Map;for(let[t,i]of Object.entries(e.properties))if(n.set(t,i),r.set(i.attribute??t,t),!Object.getOwnPropertyDescriptor(e.prototype,t)?.get){let n=le.get(t);n||(n=Symbol(t),le.set(t,n)),Object.defineProperty(e.prototype,t,{get(){return this[n]},set(e){let r=this[n];this[n]=e,Object.is(r,e)||this.requestUpdate(t,r)},configurable:!0,enumerable:!0})}let i={props:n,attrToProp:r};return ce.set(e,i),i}
2
+ /**
3
+ * @license
4
+ * Copyright 2021 Google LLC
5
+ * SPDX-License-Identifier: BSD-3-Clause
6
+ */var v=class{constructor(e,t,n,r){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(e,t)=>{this.unsubscribe&&(this.unsubscribe!==t&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=e,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(e,t)),this.unsubscribe=t},this.host=e,t.context!==void 0){let e=t;this.context=e.context,this.callback=e.callback,this.subscribe=e.subscribe??!1}else this.context=t,this.callback=n,this.subscribe=r??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&=(this.unsubscribe(),void 0)}dispatchRequest(){this.host.dispatchEvent(new n(this.context,this.host,this.t,this.subscribe))}},de=class{get value(){return this.o}set value(e){this.setValue(e)}setValue(e,t=!1){let n=t||!Object.is(e,this.o);this.o=e,n&&this.updateObservers()}constructor(e){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:t}]of this.subscriptions)e(this.o,t)},e!==void 0&&(this.value=e)}addCallback(e,t,n){if(!n)return void e(this.value);this.subscriptions.has(e)||this.subscriptions.set(e,{disposer:()=>{this.subscriptions.delete(e)},consumerHost:t});let{disposer:r}=this.subscriptions.get(e);e(this.value,r)}clearCallbacks(){this.subscriptions.clear()}},fe=class extends Event{constructor(e,t){super(`context-provider`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t}},y=class extends de{constructor(e,t,r){super(t.context===void 0?r:t.initialValue),this.onContextRequest=e=>{if(e.context!==this.context)return;let t=e.contextTarget??e.composedPath()[0];t!==this.host&&(e.stopPropagation(),this.addCallback(e.callback,t,e.subscribe))},this.onProviderRequest=e=>{if(e.context!==this.context||(e.contextTarget??e.composedPath()[0])===this.host)return;let t=new Set;for(let[e,{consumerHost:r}]of this.subscriptions)t.has(e)||(t.add(e),r.dispatchEvent(new n(this.context,r,e,!0)));e.stopPropagation()},this.host=e,t.context===void 0?this.context=t:this.context=t.context,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(`context-request`,this.onContextRequest),this.host.addEventListener(`context-provider`,this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new fe(this.context,this.host))}};function pe(e){return t=>{class n extends t{#e=null;#t=null;constructor(...t){super(...t),new v(this,{context:e.playerContext,callback:e=>{this.#e=e??null},subscribe:!0}),new v(this,{context:e.containerContext,callback:e=>{this.#t=e?.setContainer??null,this.isConnected&&this.#t?.(this)},subscribe:!0})}get store(){return this.#e}connectedCallback(){super.connectedCallback(),this.#t?.(this)}disconnectedCallback(){super.disconnectedCallback(),this.#t?.(null)}}return n}}var me=class extends se(ue){};const he=pe({playerContext:i,containerContext:s});var ge=class extends he(me){static{this.tagName=`media-container`}#e=null;connectedCallback(){super.connectedCallback(),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.#e=new AbortController,e(this,`pointerup`,this.#t,{signal:this.#e.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#e?.abort(),this.#e=null}#t=()=>{(!this.contains(document.activeElement)||document.activeElement===document.body)&&this.focus({preventScroll:!0})}},b=class{#e=new AbortController;#t=new Map;get base(){return this.#e.signal}clear(){for(let e of this.#t.values())e.abort();this.#t.clear()}reset(){this.clear(),this.#e.abort(),this.#e=new AbortController}supersede(e){this.#t.get(e)?.abort();let t=new AbortController;return this.#t.set(e,t),l([this.#e.signal,t.signal])}};function _e(...e){return{state:t=>{let n=e.map(e=>e.state(t));return Object.assign({},...n)},attach:t=>{for(let n of e)try{n.attach?.(t)}catch(e){t.reportError(e)}}}}var ve=class extends Error{code;cause;constructor(e,t){super(t?.message??e),this.name=`StoreError`,this.code=e,this.cause=t?.cause}};function x(){throw new ve(`NO_TARGET`)}function ye(){throw new ve(`DESTROYED`)}function be(){return e=>e}function S(...e){}let C=!1;function xe(){C||(C=!0,queueMicrotask(Se))}const w=new Set;function Se(){C=!1;for(let e of w)e.flush();w.clear()}const Ce=Object.prototype.hasOwnProperty;var we=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 in e){if(!Ce.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())}subscribe(e,t){let n=t?.signal;if(n?.aborted)return S;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,w.add(this),xe()}};function T(e){return new we(e)}const E=Symbol.for(`@videojs/store`);function Te(){return(e,t={})=>{let n=null,r=!1,i=new AbortController,o=new b,s;function c(){r&&ye(),n||x()}let l=e.state({target:()=>(c(),n),signals:o,get:()=>s.current,set:e=>s.patch(e)});s=T(l);let u={[E]:!0,get $state(){return s},get target(){return n},get destroyed(){return r},get state(){return s.current},attach:d,destroy:p,subscribe:m};for(let e of Object.keys(l))Object.defineProperty(u,e,{get:()=>s.current[e],enumerable:!0});try{t.onSetup?.({store:u,signal:i.signal})}catch(e){h(e)}return u;function d(i){r&&ye(),o.reset(),n=i;let a={target:i,signal:o.base,get:()=>s.current,set:e=>s.patch(e),reportError:h,store:{get state(){return s.current},subscribe:m}};try{e.attach?.(a)}catch(e){h(e)}try{t.onAttach?.({store:u,target:i,signal:o.base})}catch(e){h(e)}return f}function f(){a(n)||(o.reset(),n=null,s.patch(l))}function p(){r||(r=!0,f(),i.abort())}function m(e,t){return s.subscribe(e,t)}function h(e){t.onError?t.onError({store:u,error:e}):console.error(`[vjs-store]`,e)}}}function Ee(e){return r(e)&&E in e}const D=be();function De(e){return e.readyState>=1}function O(e){return r(e)&&`paused`in e&&`ended`in e&&c(e.pause)}function k(e){return r(e)&&`currentTime`in e&&`duration`in e&&`seeking`in e}function A(e){return r(e)&&`src`in e&&`currentSrc`in e&&`readyState`in e&&c(e.load)}function j(e){return r(e)&&`volume`in e&&`muted`in e}function Oe(e){return r(e)&&`playbackRate`in e}function M(e){return r(e)&&`buffered`in e&&`seekable`in e}function ke(e){return r(e)&&`error`in e}function Ae(e){return r(e)&&`textTracks`in e}function N(e){return r(e)&&`remote`in e&&r(e.remote)}function je(e){return r(e)&&`streamType`in e}function Me(e){return r(e)&&`liveEdgeStart`in e&&`targetLiveWindow`in e}function Ne(e){return r(e)&&`querySelectorAll`in e&&c(e.querySelectorAll)}const P=D({name:`buffer`,state:()=>({buffered:[],seekable:[]}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!M(i))return;let a=()=>r({buffered:oe(i.buffered),seekable:oe(i.seekable)});a(),e(i,`progress`,a,{signal:n}),e(i,`emptied`,a,{signal:n})}});function Pe(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 Fe=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)}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:t}=this.#r,n=0;e(this.#e,`pointerdown`,e=>{e.button===0&&(n=Date.now())},{signal:t}),e(this.#e,`pointerup`,e=>{if(e.button!==0||Date.now()-n>250||g(e))return;let t=e.pointerType,r=e.clientX,i=this.#e,a=this.#t,o={resolve:e=>Re(a,e,t,r,i)};for(let t of this.#n)t.handleUp(o,e)},{signal:t})}#o(){if(!(this.#t.length>0)){for(let e of this.#n)e.reset();this.#n.clear(),this.#r?.abort(),this.#r=null}}};const F=new WeakMap;function Ie(e){return F.get(e)}function Le(e){let t=F.get(e);return t||(t=new Fe(e),F.set(e,t)),t}function Re(e,t,n,r,i){let a=i.getBoundingClientRect(),o=ze(e,t,n),s=o.size>0?Pe(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 ze(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 I(e){let t=e;if(r(t.remote)&&`state`in t.remote&&`prompt`in t.remote)return t.remote}function L(e){return I(e)?.state===`connected`}function Be(e){return I(e)?.state===`connecting`}async function Ve(e){let t=I(e);if(!t)throw new DOMException(`Remote playback not supported`,`NotSupportedError`);return t.prompt()}const R=D({name:`controls`,state:({get:e,set:t})=>({userActive:!0,controlsVisible:!0,toggleControls(){let n=!e().userActive;return t({userActive:n,controlsVisible:n}),n}}),attach({target:t,signal:n,get:r,set:i}){let{media:o,container:s}=t;if(!O(o)||a(s))return;let c=e=>e||o.paused||L(o)||Be(o),l;function u(){clearTimeout(l),l=void 0}function d(){u(),l=setTimeout(p,2e3)}function f(){r().userActive||i({userActive:!0,controlsVisible:!0}),d()}function p(){u(),i({userActive:!1,controlsVisible:c(!1)})}i({toggleControls(){return r().controlsVisible?p():f(),r().controlsVisible}});let m=0;function h(){m=Date.now()}function ee(e){if(e.pointerType===`touch`&&Date.now()-m<250){if(Ie(s)?.bindings.some(e=>e.type===`tap`&&e.action===`toggleControls`&&(!e.pointer||e.pointer===`touch`)))return;let t=[o,s].includes(e.target);r().controlsVisible&&t?p():f()}else f()}let g=()=>{let{userActive:e}=r();i({controlsVisible:c(e)}),!o.paused&&e&&d()};if(e(s,`pointermove`,f,{signal:n}),e(s,`pointerdown`,h,{signal:n}),e(s,`pointerup`,ee,{signal:n}),e(s,`keyup`,f,{signal:n}),e(s,`focusin`,f,{signal:n}),e(s,`mouseleave`,p,{signal:n}),e(o,`play`,g,{signal:n}),e(o,`pause`,g,{signal:n}),e(o,`ended`,g,{signal:n}),N(o)){let t=()=>{let{userActive:e}=r();i({controlsVisible:c(e)})};e(o.remote,`connect`,t,{signal:n}),e(o.remote,`connecting`,t,{signal:n}),e(o.remote,`disconnect`,t,{signal:n})}n.addEventListener(`abort`,u,{once:!0}),d()}}),z=D({name:`error`,state:({set:e})=>({error:null,dismissError(){e({error:null})}}),attach({target:t,signal:n,set:r}){let{media:i}=t;ke(i)&&(e(i,`error`,()=>r({error:i.error}),{signal:n}),e(i,`emptied`,()=>r({error:null}),{signal:n}))}});function He(){let e=document;return e.fullscreenEnabled||e.webkitFullscreenEnabled?!0:c(document.createElement(`video`).webkitSetPresentationMode)}function Ue(){let e=document;return e.fullscreenElement??e.webkitFullscreenElement??null}function We(e){if(!(e instanceof Element))return!1;try{return e.matches(`:fullscreen`)}catch{return!1}}function B(e,t){if(t.webkitPresentationMode===`fullscreen`)return!0;let n=Ue();return n&&(n===e||n===t)||We(e)||We(t)?!0:t.isFullscreen??!1}async function Ge(e,t){let n=document;if(e&&(n.fullscreenEnabled||n.webkitFullscreenEnabled)){let t=e;if(c(t.requestFullscreen))return t.requestFullscreen();if(c(t.webkitRequestFullscreen))return t.webkitRequestFullscreen()}let r=t;if(c(r.webkitSetPresentationMode)){r.webkitSetPresentationMode(`fullscreen`);return}let i=t;if(c(i.requestFullscreen))return i.requestFullscreen()}async function V(e){let t=document,n=e;if(n.webkitPresentationMode===`fullscreen`&&c(n.webkitSetPresentationMode)){n.webkitSetPresentationMode(`inline`);return}if(c(t.exitFullscreen))return t.exitFullscreen();if(c(t.webkitExitFullscreen))return t.webkitExitFullscreen();let r=e;if(c(r.exitFullscreen))return r.exitFullscreen()}function Ke(){if(document.pictureInPictureEnabled){let e=/.*Version\/.*Safari\/.*/.test(navigator.userAgent),t=typeof matchMedia==`function`&&matchMedia(`(display-mode: standalone)`).matches;return!e||!t}return c(document.createElement(`video`).webkitSetPresentationMode)}function H(e){return e.webkitPresentationMode===`picture-in-picture`||document.pictureInPictureElement===e?!0:e.isPictureInPicture??!1}async function qe(e){let t=e;if(c(t.webkitSetPresentationMode)){t.webkitSetPresentationMode(`picture-in-picture`);return}let n=e;if(c(n.requestPictureInPicture))return n.requestPictureInPicture()}async function U(e){let t=e;if(t.webkitPresentationMode===`picture-in-picture`&&c(t.webkitSetPresentationMode)){t.webkitSetPresentationMode(`inline`);return}if(c(document.exitPictureInPicture))return document.exitPictureInPicture();let n=e;if(c(n.exitPictureInPicture))return n.exitPictureInPicture()}const W=D({name:`fullscreen`,state:({target:e})=>({fullscreen:!1,fullscreenAvailability:`unavailable`,async requestFullscreen(){let{media:t,container:n}=e();return H(t)&&await U(t),Ge(n,t)},async exitFullscreen(){let{media:t}=e();return V(t)},async toggleFullscreen(){let{media:t,container:n}=e();return B(n,t)?V(t):(H(t)&&await U(t),Ge(n,t))}}),attach({target:t,signal:n,set:r}){let{media:i,container:a}=t;r({fullscreenAvailability:He()?`available`:`unsupported`});let o=()=>r({fullscreen:B(a,i)});o(),e(document,`fullscreenchange`,o,{signal:n}),e(document,`webkitfullscreenchange`,o,{signal:n}),`webkitPresentationMode`in i&&e(i,`webkitpresentationmodechanged`,o,{signal:n})}}),G=D({name:`live`,state:()=>({liveEdgeStart:NaN,targetLiveWindow:NaN}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!Me(i))return;let a=()=>r({liveEdgeStart:i.liveEdgeStart,targetLiveWindow:i.targetLiveWindow});a(),e(i,`targetlivewindowchange`,a,{signal:n}),e(i,`streamtypechange`,a,{signal:n}),e(i,`loadedmetadata`,a,{signal:n}),e(i,`canplay`,a,{signal:n}),e(i,`progress`,a,{signal:n}),e(i,`durationchange`,a,{signal:n}),e(i,`timeupdate`,a,{signal:n}),e(i,`emptied`,a,{signal:n})}}),K=D({name:`pip`,state:({target:e})=>({pip:!1,pipAvailability:`unavailable`,async requestPictureInPicture(){let{media:t,container:n}=e();return B(n,t)&&await V(t),qe(t)},async exitPictureInPicture(){let{media:t}=e();return U(t)},async togglePictureInPicture(){let{media:t,container:n}=e();return H(t)?U(t):(B(n,t)&&await V(t),qe(t))}}),attach({target:t,signal:n,set:r}){let{media:i}=t;r({pipAvailability:Ke()?`available`:`unsupported`});let a=()=>r({pip:H(i)});a(),e(i,`enterpictureinpicture`,a,{signal:n}),e(i,`leavepictureinpicture`,a,{signal:n}),`webkitPresentationMode`in i&&e(i,`webkitpresentationmodechanged`,a,{signal:n})}}),q=D({name:`playback`,state:({target:e})=>({paused:!0,ended:!1,started:!1,waiting:!1,play(){return e().media.play()},pause(){let{media:t}=e();O(t)&&t.pause()},togglePaused(){let t=e().media;return O(t)?t.paused?(t.play(),!0):(t.pause(),!1):!1}}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!O(i)||!k(i)||!A(i))return;let a=()=>r({paused:i.paused,ended:i.ended,started:!i.paused||i.currentTime>0,waiting:i.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&!i.paused});a(),e(i,`emptied`,a,{signal:n}),e(i,`play`,a,{signal:n}),e(i,`pause`,a,{signal:n}),e(i,`ended`,a,{signal:n}),e(i,`playing`,a,{signal:n}),e(i,`waiting`,a,{signal:n}),e(i,`seeked`,a,{signal:n})}}),Je=[.2,.5,.7,1,1.2,1.5,1.7,2],J=D({name:`playbackRate`,state:({target:e})=>({playbackRates:Je,playbackRate:1,setPlaybackRate(t){let{media:n}=e();Oe(n)&&(n.playbackRate=t)}}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!Oe(i))return;let a=()=>r({playbackRate:i.playbackRate});a(),e(i,`ratechange`,a,{signal:n})}}),Y=D({name:`remotePlayback`,state:({target:e})=>({remotePlaybackState:`disconnected`,remotePlaybackAvailability:`unsupported`,async toggleRemotePlayback(){let{media:t,container:n}=e();return L(t)||B(n,t)&&await V(t),Ve(t)}}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!N(i))return;let a=()=>r({remotePlaybackState:i.remote.state});a(),e(i.remote,`connect`,a,{signal:n}),e(i.remote,`connecting`,a,{signal:n}),e(i.remote,`disconnect`,a,{signal:n}),i.remote.watchAvailability(e=>{r({remotePlaybackAvailability:e?`available`:`unavailable`})}).catch(()=>{r({remotePlaybackAvailability:`unsupported`})}),n.addEventListener(`abort`,()=>{i.remote?.cancelWatchAvailability().catch(()=>{})})}}),X=D({name:`source`,state:({target:e,signals:t})=>({source:null,canPlay:!1,loadSource(n){t.clear();let{media:r}=e();return A(r)?(r.src=n,r.load(),n):n}}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!A(i))return;let a=()=>r({source:i.currentSrc||i.src||null,canPlay:i.readyState>=HTMLMediaElement.HAVE_ENOUGH_DATA});a(),e(i,`canplay`,a,{signal:n}),e(i,`canplaythrough`,a,{signal:n}),e(i,`loadstart`,a,{signal:n}),e(i,`emptied`,a,{signal:n})}}),Z=D({name:`textTrack`,state:({target:e})=>({chaptersCues:[],thumbnailCues:[],thumbnailTrackSrc:null,textTrackList:[],subtitlesShowing:!1,toggleSubtitles(t){let{media:n}=e();if(!Ae(n))return!1;let r=ie(n,e=>e.kind===`subtitles`||e.kind===`captions`);if(!r.length)return!1;let i=r.some(e=>e.mode===`showing`),a=t??!i;for(let e of r)e.mode=a?`showing`:`disabled`;return a}}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!Ae(i))return;let a=null,o=()=>{a?.abort(),a=new AbortController;let t=null,n=null,s=[],c=!1;for(let e=0;e<i.textTracks.length;e++){let r=i.textTracks[e];!t&&r.kind===`chapters`&&(t=r),!n&&r.kind===`metadata`&&r.label===`thumbnails`&&(n=r),s.push({kind:r.kind,label:r.label,language:r.language,mode:r.mode}),(r.kind===`captions`||r.kind===`subtitles`)&&r.mode===`showing`&&(c=!0)}let l=t?.cues?Array.from(t.cues):[],u=n?.cues?Array.from(n.cues):[],d=null;n&&(d=re(i,n)?.src??null);let f=Ne(i)&&i.querySelectorAll(`track`)||[],p=i instanceof HTMLElement&&i.shadowRoot?.querySelectorAll(`track`)||[];for(let t of[...f,...p])t.track?.cues?.length||e(t,`load`,o,{signal:a.signal});r({chaptersCues:l,thumbnailCues:u,thumbnailTrackSrc:d,textTrackList:s,subtitlesShowing:c})};o();let s=i.textTracks;s instanceof EventTarget&&(e(s,`addtrack`,o,{signal:n}),e(s,`removetrack`,o,{signal:n}),e(s,`change`,o,{signal:n})),e(i,`loadstart`,o,{signal:n}),n.addEventListener(`abort`,()=>a?.abort(),{once:!0})}}),Ye={seek:Symbol.for(`@videojs/seek`)},Q=D({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(Ye.seek);if(!k(i)||!A(i))return 0;if(!De(i)&&!await f(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 f(i,`seeked`,{signal:a}).catch(S),i.currentTime}}),attach({target:t,signal:n,set:r,get:i}){let{media:a}=t;if(!k(a))return;let o=()=>{let{duration:e}=a;if(e===1/0&&M(a)){let{seekable:e}=a;return e.length>0?e.end(e.length-1):0}return Number.isFinite(e)?e:0},s=()=>r({currentTime:a.currentTime,duration:o(),seeking:a.seeking}),c=()=>{i().seeking||s()};s(),e(a,`timeupdate`,c,{signal:n}),e(a,`durationchange`,s,{signal:n}),e(a,`seeking`,s,{signal:n}),e(a,`seeked`,s,{signal:n}),e(a,`loadedmetadata`,s,{signal:n}),e(a,`emptied`,s,{signal:n}),e(a,`progress`,c,{signal:n})}}),$=D({name:`volume`,state:({target:e})=>({volume:1,muted:!1,volumeAvailability:`unavailable`,setVolume(t){let{media:n}=e();if(!j(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 j(t)?(t.muted||t.volume===0?(t.muted=!1,t.volume===0&&(t.volume=.25)):t.muted=!0,t.muted):!1}}),attach({target:t,signal:n,set:r}){let{media:i}=t;if(!j(i))return;r({volumeAvailability:Xe()});let a=()=>r({volume:i.volume,muted:i.muted});a(),e(i,`volumechange`,a,{signal:n})}});function Xe(){let e=document.createElement(`video`);try{return e.volume=.5,e.volume===.5?`available`:`unsupported`}catch{return`unsupported`}}const Ze=[q,J,$,Q,X,P,W,K,Y,R,Z,z],Qe=[q,J,$,Q,X,P,z],$e=[],et=[q,$,Q,X,P,W,K,Y,R,Z,z,G];function tt(){let e=null;return{open(t){e!==t&&(e?.close(`group-open`),e=t)},close(t){e===t&&(e=null)}}}var nt=class{#e;#t;#n;#r;#i=S;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=S,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);u(this.#r,t)||(this.#r=t,this.#e.requestUpdate())})}},rt=class{#e;#t;#n;constructor(e,t,n){this.#e=n??S,Ee(t)?(this.#n=t,this.#t=null):(this.#n=null,this.#t=new v(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)}},it=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=n,this.#n=new rt(e,t,e=>this.#i(e)),e.addController(this)}get value(){let e=this.#n.value;if(a(e))throw Error(`Store not available`);return o(this.#t)?e:this.#r.value}hostConnected(){}#i(e){o(this.#t)||(this.#r?this.#r.track(e.$state):this.#r=new nt(this.#e,e.$state,this.#t))}},at=class{#e;#t;#n;#r=null;constructor(e,t,n){this.#e=e,this.#t=n,this.#n=new v(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 it(this.#e,e,this.#t))}};function ot(e){return t=>{class n extends t{#e=e.factory();#t=null;#n=null;#r=null;#i=tt();#a=!1;#o=e=>{this.#n!==e&&(this.#n=e,this.#l.setValue({media:e,setMedia:this.#o}),this.#d())};#s=e=>{this.#r!==e&&(this.#r=e,this.#u.setValue({container:e,setContainer:this.#s,popupGroup:this.#i}),this.#d())};#c=new y(this,{context:e.playerContext,initialValue:this.store});#l=new y(this,{context:e.mediaContext,initialValue:{media:this.#n,setMedia:this.#o}});#u=new y(this,{context:e.containerContext,initialValue:{container:this.#r,setContainer:this.#s,popupGroup:this.#i}});get store(){return a(this.#e)&&(this.#e=e.factory()),this.#e}connectedCallback(){super.connectedCallback(),this.#c.setValue(this.store),this.#l.setValue({media:this.#n,setMedia:this.#o}),this.#u.setValue({container:this.#r,setContainer:this.#s,popupGroup:this.#i}),this.#d(),this.#p()}disconnectedCallback(){super.disconnectedCallback(),this.#f()}destroyCallback(){this.#f(),this.#e?.destroy(),this.#e=null,super.destroyCallback()}#d(){let e=this.#e;if(!e)return;if(!this.#n){this.#f();return}let t={media:this.#n,container:this.#r},n=e.target?.media!==t.media,r=e.target?.container!==t.container;(n||r)&&(this.#f(),this.#t=e.attach(t))}#f(){this.#t?.(),this.#t=null}#p(){this.#n||this.#a||(this.#a=!0,queueMicrotask(()=>{if(this.#a=!1,this.#n)return;let e=this.querySelector(`video, audio`);e&&this.#o(e)}))}}return n}}function st(e){let n=_e(...e.features);function r(){return Te()(n)}return{context:i,create:r,PlayerController:at,ProviderMixin:ot({playerContext:i,mediaContext:t,containerContext:s,factory:r}),ContainerMixin:pe({playerContext:i,containerContext:s})}}export{ge as A,k as C,S as D,T as E,ee as F,ne as I,y as M,v as N,x as O,ue as P,M as S,D as T,W as _,$e as a,Le as b,$ as c,X as d,Y as f,G as g,K as h,Qe as i,me as j,b as k,Q as l,q as m,at as n,et as o,J as p,nt as r,Ze as s,st as t,Z as u,z as v,je as w,P as x,R as y};
7
+ //# sourceMappingURL=create-player-B2W5yr5I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-player-B2W5yr5I.js","names":["#destroyed","#trackedControllers","#controllers","#changedProperties","#updatePromise","#instanceProperties","#enqueueUpdate","s","t","t","ContextConsumer","#contextStore","#setContainer","#disconnect","#onPointerUp","#base","#keys","#current","#markPending","#listeners","#pending","TAP_THRESHOLD","#target","#bindings","#subscribers","#recognizers","#connect","#maybeDisconnect","#disconnect","#host","#state","#selector","#cached","#subscribe","#unsubscribe","#onAvailable","#directStore","#consumer","ContextConsumer","#host","#selector","#accessor","#connect","#snapshot","#host","#selector","#consumer","ContextConsumer","#connect","#store","#media","#mediaProvider","#setMedia","#tryAttach","#container","#containerProvider","#setContainer","#popupGroup","ContextProvider","#store","#playerProvider","#queueFallbackDiscovery","#detachStore","#detach","#fallbackQueued"],"sources":["../../utils/dist/dom/event.js","../../utils/dist/dom/interactive.js","../../utils/dist/dom/text-track.js","../../utils/dist/dom/time-ranges.js","../../element/dist/default/destroy-mixin.js","../../element/dist/default/reactive-element.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/controllers/context-consumer.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/value-notifier.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/controllers/context-provider.js","../src/store/container-mixin.ts","../src/ui/media-element.ts","../src/media/container-element.ts","../../store/dist/default/core/abort-controller-registry.js","../../store/dist/default/core/combine.js","../../store/dist/default/core/errors.js","../../store/dist/default/core/slice.js","../../utils/dist/function/noop.js","../../store/dist/default/core/state.js","../../store/dist/default/core/store.js","../../core/dist/default/dom/feature.js","../../core/dist/default/dom/media/predicate.js","../../core/dist/default/dom/store/features/buffer.js","../../core/dist/default/dom/gesture/region.js","../../core/dist/default/dom/gesture/coordinator.js","../../core/dist/default/dom/presentation/remote-playback.js","../../core/dist/default/dom/store/features/controls.js","../../core/dist/default/dom/store/features/error.js","../../core/dist/default/dom/presentation/fullscreen.js","../../core/dist/default/dom/presentation/pip.js","../../core/dist/default/dom/store/features/fullscreen.js","../../core/dist/default/dom/store/features/live.js","../../core/dist/default/dom/store/features/pip.js","../../core/dist/default/dom/store/features/playback.js","../../core/dist/default/dom/store/features/playback-rate.js","../../core/dist/default/dom/store/features/remote-playback.js","../../core/dist/default/dom/store/features/source.js","../../core/dist/default/dom/store/features/text-track.js","../../core/dist/default/dom/store/signal-keys.js","../../core/dist/default/dom/store/features/time.js","../../core/dist/default/dom/store/features/volume.js","../../core/dist/default/dom/store/features/presets.js","../../core/dist/default/dom/ui/popover/popup-group.js","../../store/dist/default/html/controllers/snapshot-controller.js","../../store/dist/default/html/store-accessor.js","../../store/dist/default/html/controllers/store-controller.js","../src/player/player-controller.ts","../src/store/provider-mixin.ts","../src/player/create-player.ts"],"sourcesContent":["//#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 = 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/text-track.ts\n/** Find the `<track>` element that owns the given `TextTrack`. */\nfunction findTrackElement(media, track) {\n\tif (!(media instanceof HTMLElement)) return null;\n\tfor (const el of media.querySelectorAll(\"track\")) if (el.track === track) return el;\n\treturn null;\n}\nfunction getTextTrackList(media, filterPred) {\n\tif (!media.textTracks) return [];\n\treturn Array.from(media.textTracks).filter(filterPred).sort(sortByKind);\n}\nfunction sortByKind(a, b) {\n\treturn a.kind > b.kind ? 1 : a.kind < b.kind ? -1 : 0;\n}\n//#endregion\nexport { findTrackElement, getTextTrackList };\n\n//# sourceMappingURL=text-track.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","//#region src/destroy-mixin.ts\n/**\n* Mixin that adds a deferred destruction lifecycle to a `ReactiveElement`.\n*\n* On disconnect, schedules destruction after two animation frames.\n* If the element reconnects before the frames fire (e.g. DOM shuffling,\n* framework reconciliation), the `isConnected` check prevents destruction.\n*\n* The `keep-alive` attribute prevents automatic destruction entirely —\n* call `destroy()` manually when done.\n*\n* Subclasses override `destroyCallback()` (calling `super.destroyCallback()`)\n* to release heavy resources like stores or imperative APIs.\n*\n* Mirrors `addController`/`removeController` to track controllers\n* (needed because `ReactiveElement.#controllers` is hard-private),\n* calls `hostDestroyed()` on all tracked controllers in `destroyCallback`,\n* and guards `performUpdate()` so no updates run after destruction.\n*/\nfunction DestroyMixin(SuperClass) {\n\tclass DestroyableElement extends SuperClass {\n\t\t#destroyed = false;\n\t\t#trackedControllers = /* @__PURE__ */ new Set();\n\t\tget destroyed() {\n\t\t\treturn this.#destroyed;\n\t\t}\n\t\tdestroy() {\n\t\t\tif (this.#destroyed) return;\n\t\t\tthis.#destroyed = true;\n\t\t\tthis.destroyCallback();\n\t\t}\n\t\tdestroyCallback() {\n\t\t\tfor (const c of this.#trackedControllers) c.hostDestroyed?.();\n\t\t}\n\t\taddController(controller) {\n\t\t\tsuper.addController(controller);\n\t\t\tthis.#trackedControllers.add(controller);\n\t\t}\n\t\tremoveController(controller) {\n\t\t\tsuper.removeController(controller);\n\t\t\tthis.#trackedControllers.delete(controller);\n\t\t}\n\t\tconnectedCallback() {\n\t\t\tif (this.#destroyed) return;\n\t\t\tsuper.connectedCallback();\n\t\t}\n\t\tdisconnectedCallback() {\n\t\t\tsuper.disconnectedCallback();\n\t\t\tif (!this.#destroyed && !this.hasAttribute(\"keep-alive\")) requestAnimationFrame(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tif (!this.isConnected) this.destroy();\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\tperformUpdate() {\n\t\t\tif (this.#destroyed) return;\n\t\t\tsuper.performUpdate();\n\t\t}\n\t}\n\treturn DestroyableElement;\n}\n//#endregion\nexport { DestroyMixin };\n\n//# sourceMappingURL=destroy-mixin.js.map","//#region src/reactive-element.ts\nconst cache = /* @__PURE__ */ new WeakMap();\nconst propertyKeys = /* @__PURE__ */ new Map();\n/**\n* Lightweight reactive custom element base class.\n*\n* Drop-in subset of Lit's `ReactiveElement` — supports `static properties`,\n* attribute reflection, batched async updates, and reactive controllers.\n* No Shadow DOM, no `static styles`, no decorators.\n*\n* Updates are batched using the same Promise-based scheduling as Lit:\n* property changes enqueue a microtask, and the update is gated behind\n* `connectedCallback` so the first update only runs once the element\n* is in the document.\n*\n* Subclasses that extend another element with properties must spread them:\n*\n* @example\n* ```ts\n* class MyButton extends ReactiveElement {\n* static override properties = {\n* label: { type: String },\n* disabled: { type: Boolean },\n* };\n*\n* label = 'Click me';\n* disabled = false;\n*\n* protected override update(changed: PropertyValues): void {\n* super.update(changed);\n* this.textContent = this.label;\n* }\n* }\n*\n* // Inheritance — spread parent properties\n* class FancyButton extends MyButton {\n* static override properties = {\n* ...MyButton.properties,\n* variant: { type: String },\n* };\n*\n* variant = 'primary';\n* }\n* ```\n*/\nvar ReactiveElement = class extends HTMLElement {\n\tstatic {\n\t\tthis.properties = {};\n\t}\n\t/**\n\t* Returns a list of attributes corresponding to the registered properties.\n\t*/\n\tstatic get observedAttributes() {\n\t\treturn [...resolve(this).attrToProp.keys()];\n\t}\n\t#controllers;\n\t#changedProperties;\n\t#instanceProperties;\n\t/**\n\t* Promise that gates the first update until `connectedCallback`. Also\n\t* used to serialize updates — each `#enqueueUpdate` awaits the previous\n\t* `#updatePromise`, so property changes are batched and updates never\n\t* overlap. Matches Lit's scheduling model.\n\t*/\n\t#updatePromise;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.#controllers = /* @__PURE__ */ new Set();\n\t\tthis.#changedProperties = /* @__PURE__ */ new Map();\n\t\tthis.isUpdatePending = false;\n\t\tthis.hasUpdated = false;\n\t\tthis.#updatePromise = new Promise((res) => this.enableUpdating = res);\n\t\tconst { props } = resolve(this.constructor);\n\t\tfor (const name of props.keys()) if (Object.hasOwn(this, name)) {\n\t\t\t(this.#instanceProperties ??= /* @__PURE__ */ new Map()).set(name, this[name]);\n\t\t\tdelete this[name];\n\t\t}\n\t\tthis.requestUpdate();\n\t}\n\t/**\n\t* Note, this method should be considered final and not overridden. It is\n\t* overridden on the element instance with a function that triggers the\n\t* first update.\n\t*/\n\tenableUpdating(_requestedUpdate) {}\n\t/**\n\t* Registers a {@linkcode ReactiveController} to participate in the\n\t* element's reactive update cycle. The element automatically calls into\n\t* any registered controllers during its lifecycle callbacks.\n\t*\n\t* If the element is connected when `addController()` is called, the\n\t* controller's `hostConnected()` callback will be immediately called.\n\t*/\n\taddController(controller) {\n\t\tthis.#controllers.add(controller);\n\t\tif (this.isConnected) controller.hostConnected?.();\n\t}\n\t/** Removes a {@linkcode ReactiveController} from the element. */\n\tremoveController(controller) {\n\t\tthis.#controllers.delete(controller);\n\t}\n\t/**\n\t* On first connection, enables updating and notifies controllers.\n\t*/\n\tconnectedCallback() {\n\t\tthis.enableUpdating(true);\n\t\tfor (const c of this.#controllers) c.hostConnected?.();\n\t}\n\tdisconnectedCallback() {\n\t\tfor (const c of this.#controllers) c.hostDisconnected?.();\n\t}\n\t/**\n\t* Synchronizes property values when attributes change.\n\t*\n\t* Specifically, when an attribute is set, the corresponding property is\n\t* set. You should rarely need to implement this callback. If this method\n\t* is overridden, `super.attributeChangedCallback(name, _old, value)` must\n\t* be called.\n\t*/\n\tattributeChangedCallback(attr, oldValue, newValue) {\n\t\tif (oldValue === newValue) return;\n\t\tconst { props, attrToProp } = resolve(this.constructor);\n\t\tconst propName = attrToProp.get(attr);\n\t\tif (!propName) return;\n\t\tconst decl = props.get(propName);\n\t\tif (!decl) return;\n\t\tlet value = newValue;\n\t\tif (decl.type === Boolean) value = newValue !== null;\n\t\telse if (decl.type === Number) value = newValue === null ? null : Number(newValue);\n\t\tthis[propName] = value;\n\t}\n\t/**\n\t* Requests an update which is processed asynchronously. This should be\n\t* called when an element should update based on some state not triggered\n\t* by setting a reactive property. In this case, pass no arguments. It\n\t* should also be called when manually implementing a property setter. In\n\t* this case, pass the property `name` and `oldValue` to ensure that any\n\t* configured property options are honored.\n\t*/\n\trequestUpdate(name, oldValue) {\n\t\tif (name !== void 0) this.#changedProperties.set(name, oldValue);\n\t\tif (this.isUpdatePending) return;\n\t\tthis.#updatePromise = this.#enqueueUpdate();\n\t}\n\t/**\n\t* Sets up the element to asynchronously update. Awaits the previous\n\t* `#updatePromise` which both serializes updates and (on first update)\n\t* waits for `connectedCallback` to resolve the gate.\n\t*/\n\tasync #enqueueUpdate() {\n\t\tthis.isUpdatePending = true;\n\t\ttry {\n\t\t\tawait this.#updatePromise;\n\t\t} catch (e) {\n\t\t\tPromise.reject(e);\n\t\t}\n\t\tconst result = this.scheduleUpdate();\n\t\tif (result != null) await result;\n\t\treturn !this.isUpdatePending;\n\t}\n\t/**\n\t* Schedules an element update. You can override this method to change the\n\t* timing of updates by returning a Promise. The update will await the\n\t* returned Promise, and you should resolve the Promise to allow the update\n\t* to proceed. If this method is overridden, `super.scheduleUpdate()` must\n\t* be called.\n\t*\n\t* For instance, to schedule updates to occur just before the next frame:\n\t*\n\t* ```ts\n\t* override protected async scheduleUpdate(): Promise<unknown> {\n\t* await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n\t* super.scheduleUpdate();\n\t* }\n\t* ```\n\t*/\n\tscheduleUpdate() {\n\t\tthis.performUpdate();\n\t}\n\t/**\n\t* Performs an element update. Note, if an exception is thrown during the\n\t* update, `firstUpdated` and `updated` will not be called.\n\t*\n\t* Call `performUpdate()` to immediately process a pending update. This\n\t* should generally not be needed, but it can be done in rare cases when\n\t* you need to update synchronously.\n\t*/\n\tperformUpdate() {\n\t\tif (!this.isUpdatePending) return;\n\t\tif (!this.hasUpdated && this.#instanceProperties) {\n\t\t\tfor (const [name, value] of this.#instanceProperties) this[name] = value;\n\t\t\tthis.#instanceProperties = void 0;\n\t\t}\n\t\tconst changed = this.#changedProperties;\n\t\tthis.willUpdate(changed);\n\t\tfor (const c of this.#controllers) c.hostUpdate?.();\n\t\tthis.update(changed);\n\t\tthis.#changedProperties = /* @__PURE__ */ new Map();\n\t\tthis.isUpdatePending = false;\n\t\tfor (const c of this.#controllers) c.hostUpdated?.();\n\t\tif (!this.hasUpdated) {\n\t\t\tthis.hasUpdated = true;\n\t\t\tthis.firstUpdated(changed);\n\t\t}\n\t\tthis.updated(changed);\n\t}\n\t/**\n\t* Invoked before `update()` to compute values needed during the update.\n\t*\n\t* Implement `willUpdate` to compute property values that depend on other\n\t* properties and are used in the rest of the update process.\n\t*\n\t* ```ts\n\t* willUpdate(changed) {\n\t* if (changed.has('firstName') || changed.has('lastName')) {\n\t* this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n\t* }\n\t* }\n\t* ```\n\t*/\n\twillUpdate(_changed) {}\n\t/**\n\t* Updates the element. This method reflects property values to attributes\n\t* and can be overridden to render and keep updated element DOM. Setting\n\t* properties inside this method will *not* trigger another update.\n\t*/\n\tupdate(_changed) {}\n\t/**\n\t* Invoked when the element is first updated. Implement to perform one\n\t* time work on the element after update.\n\t*\n\t* Setting properties inside this method will trigger the element to\n\t* update again after this update cycle completes.\n\t*/\n\tfirstUpdated(_changed) {}\n\t/**\n\t* Invoked whenever the element is updated. Implement to perform\n\t* post-updating tasks via DOM APIs, for example, focusing an element.\n\t*\n\t* Setting properties inside this method will trigger the element to\n\t* update again after this update cycle completes.\n\t*/\n\tupdated(_changed) {}\n\t/**\n\t* Returns a Promise that resolves when the element has completed updating.\n\t* The Promise value is a boolean that is `true` if the element completed\n\t* the update without triggering another update. The Promise result is\n\t* `false` if a property was set inside `updated()`.\n\t*/\n\tget updateComplete() {\n\t\treturn this.#updatePromise;\n\t}\n};\n/**\n* Resolve `ctor.properties` into lookup Maps and install reactive accessors\n* on the prototype. Runs once per class, result is cached.\n*\n* Subclasses that need parent properties must spread them:\n* `static override properties = { ...Parent.properties, ... }`.\n*/\nfunction resolve(ctor) {\n\tconst existing = cache.get(ctor);\n\tif (existing) return existing;\n\tconst props = /* @__PURE__ */ new Map();\n\tconst attrToProp = /* @__PURE__ */ new Map();\n\tfor (const [name, decl] of Object.entries(ctor.properties)) {\n\t\tprops.set(name, decl);\n\t\tattrToProp.set(decl.attribute ?? name, name);\n\t\tif (!Object.getOwnPropertyDescriptor(ctor.prototype, name)?.get) {\n\t\t\tlet key = propertyKeys.get(name);\n\t\t\tif (!key) {\n\t\t\t\tkey = Symbol(name);\n\t\t\t\tpropertyKeys.set(name, key);\n\t\t\t}\n\t\t\tObject.defineProperty(ctor.prototype, name, {\n\t\t\t\tget() {\n\t\t\t\t\treturn this[key];\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\tconst old = this[key];\n\t\t\t\t\tthis[key] = value;\n\t\t\t\t\tif (!Object.is(old, value)) this.requestUpdate(name, old);\n\t\t\t\t},\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t}\n\t}\n\tconst meta = {\n\t\tprops,\n\t\tattrToProp\n\t};\n\tcache.set(ctor, meta);\n\treturn meta;\n}\n//#endregion\nexport { ReactiveElement };\n\n//# sourceMappingURL=reactive-element.js.map","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import type { MediaContainer, PlayerStore } from '@videojs/core/dom';\nimport { ContextConsumer } from '@videojs/element/context';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, PlayerContext } from '../player/context';\nimport type { PlayerConsumer, PlayerConsumerConstructor } from './types';\n\nexport interface ContainerMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n containerContext: ContainerContext;\n}\n\nexport type ContainerMixin<Store extends PlayerStore> = <Class extends MediaElementConstructor>(\n BaseClass: Class\n) => Class & PlayerConsumerConstructor<Store>;\n\n/**\n * Create a mixin that consumes player context and registers itself as the\n * container element with the provider via `containerContext`.\n *\n * @param config - Container configuration with player and container contexts.\n */\nexport function createContainerMixin<Store extends PlayerStore>(\n config: ContainerMixinConfig<Store>\n): ContainerMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerContainerElement extends BaseClass implements PlayerConsumer<Store>, MediaContainer {\n #contextStore: Store | null = null;\n #setContainer: ((container: MediaContainer | null) => void) | null = null;\n\n constructor(...args: any[]) {\n super(...args);\n\n new ContextConsumer(this, {\n context: config.playerContext,\n callback: (value) => {\n this.#contextStore = value ?? null;\n },\n subscribe: true,\n });\n\n new ContextConsumer(this, {\n context: config.containerContext,\n callback: (value) => {\n this.#setContainer = value?.setContainer ?? null;\n if (this.isConnected) this.#setContainer?.(this);\n },\n subscribe: true,\n });\n }\n\n get store(): Store | null {\n return this.#contextStore;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.#setContainer?.(this);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.#setContainer?.(null);\n }\n }\n\n return PlayerContainerElement;\n };\n}\n","import { DestroyMixin, ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/** Base class for interactive media UI elements. */\nexport class MediaElement extends DestroyMixin(ReactiveElement) {}\n\nexport interface MediaElementConstructor extends Constructor<MediaElement> {}\n","import { listen } from '@videojs/utils/dom';\n\nimport { containerContext, playerContext } from '../player/context';\nimport { createContainerMixin } from '../store/container-mixin';\nimport { MediaElement } from '../ui/media-element';\n\nconst ContainerMixin = createContainerMixin({ playerContext, containerContext });\n\nexport class MediaContainerElement extends ContainerMixin(MediaElement) {\n static readonly tagName = 'media-container';\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n // Make focusable so keyboard events reach hotkey listeners.\n if (!this.hasAttribute('tabindex')) {\n this.setAttribute('tabindex', '0');\n }\n\n this.#disconnect = new AbortController();\n listen(this, 'pointerup', this.#onPointerUp, { signal: this.#disconnect.signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n #onPointerUp = (): void => {\n // If nothing inside the container has focus, grab it so keyboard\n // events reach the hotkey coordinator's listener.\n if (!this.contains(document.activeElement) || document.activeElement === document.body) {\n this.focus({ preventScroll: true });\n }\n };\n}\n","import { anyAbortSignal } from \"@videojs/utils/events\";\n//#region src/core/abort-controller-registry.ts\nvar AbortControllerRegistry = class {\n\t#base = new AbortController();\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.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 = new AbortController();\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.signal, 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\treturn {\n\t\tstate: (ctx) => {\n\t\t\tconst states = slices.map((slice) => slice.state(ctx));\n\t\t\treturn Object.assign({}, ...states);\n\t\t},\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}\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","//#region src/function/noop.ts\nfunction noop(..._args) {}\n//#endregion\nexport { noop };\n\n//# sourceMappingURL=noop.js.map","import { 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 in 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\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\");\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 state;\n\t\tfunction validate() {\n\t\t\tif (destroyed) throwDestroyedError();\n\t\t\tif (!target) throwNoTargetError();\n\t\t}\n\t\tconst initialState = 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: () => state.current,\n\t\t\tset: (partial) => state.patch(partial)\n\t\t});\n\t\tstate = createState(initialState);\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(initialState)) Object.defineProperty(store, key, {\n\t\t\tget: () => state.current[key],\n\t\t\tenumerable: true\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 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: () => state.current,\n\t\t\t\tset: (partial) => state.patch(partial),\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\tstate.patch(initialState);\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 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\";\n//#region src/dom/feature.ts\nconst definePlayerFeature = defineSlice();\n//#endregion\nexport { definePlayerFeature };\n\n//# sourceMappingURL=feature.js.map","import { isFunction, isObject } from \"@videojs/utils/predicate\";\n//#region src/dom/media/predicate.ts\nfunction hasMetadata(media) {\n\treturn media.readyState >= 1;\n}\nfunction isMediaPauseCapable(value) {\n\treturn isObject(value) && \"paused\" in value && \"ended\" in value && isFunction(value.pause);\n}\nfunction isMediaSeekCapable(value) {\n\treturn isObject(value) && \"currentTime\" in value && \"duration\" in value && \"seeking\" in value;\n}\nfunction isMediaSourceCapable(value) {\n\treturn isObject(value) && \"src\" in value && \"currentSrc\" in value && \"readyState\" in value && isFunction(value.load);\n}\nfunction isMediaVolumeCapable(value) {\n\treturn isObject(value) && \"volume\" in value && \"muted\" in value;\n}\nfunction isMediaPlaybackRateCapable(value) {\n\treturn isObject(value) && \"playbackRate\" in value;\n}\nfunction isMediaBufferCapable(value) {\n\treturn isObject(value) && \"buffered\" in value && \"seekable\" in value;\n}\nfunction isMediaErrorCapable(value) {\n\treturn isObject(value) && \"error\" in value;\n}\nfunction isMediaTextTrackCapable(value) {\n\treturn isObject(value) && \"textTracks\" in value;\n}\nfunction isMediaRemotePlaybackCapable(value) {\n\treturn isObject(value) && \"remote\" in value && isObject(value.remote);\n}\nfunction isMediaStreamTypeCapable(value) {\n\treturn isObject(value) && \"streamType\" in value;\n}\nfunction isMediaLiveCapable(value) {\n\treturn isObject(value) && \"liveEdgeStart\" in value && \"targetLiveWindow\" in value;\n}\nfunction isQuerySelectorAllCapable(value) {\n\treturn isObject(value) && \"querySelectorAll\" in value && isFunction(value.querySelectorAll);\n}\n//#endregion\nexport { hasMetadata, isMediaBufferCapable, isMediaErrorCapable, isMediaLiveCapable, isMediaPauseCapable, isMediaPlaybackRateCapable, isMediaRemotePlaybackCapable, isMediaSeekCapable, isMediaSourceCapable, isMediaStreamTypeCapable, isMediaTextTrackCapable, isMediaVolumeCapable, isQuerySelectorAllCapable };\n\n//# sourceMappingURL=predicate.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { isMediaBufferCapable } from \"../../media/predicate.js\";\nimport { listen, serializeTimeRanges } from \"@videojs/utils/dom\";\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\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}\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 { isMediaPauseCapable, isMediaRemotePlaybackCapable } from \"../../media/predicate.js\";\nimport { findGestureCoordinator } from \"../../gesture/coordinator.js\";\nimport { isRemotePlaybackConnected, isRemotePlaybackConnecting } from \"../../presentation/remote-playback.js\";\nimport { isNull } from \"@videojs/utils/predicate\";\nimport { listen } from \"@videojs/utils/dom\";\n//#region src/dom/store/features/controls.ts\nconst IDLE_DELAY = 2e3;\nconst TAP_THRESHOLD = 250;\nconst controlsFeature = definePlayerFeature({\n\tname: \"controls\",\n\tstate: ({ get, set }) => ({\n\t\tuserActive: true,\n\t\tcontrolsVisible: true,\n\t\ttoggleControls() {\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}),\n\tattach({ target, signal, get, set }) {\n\t\tconst { media, container } = target;\n\t\tif (!isMediaPauseCapable(media) || isNull(container)) return;\n\t\tconst computeVisible = (userActive) => {\n\t\t\treturn userActive || media.paused || isRemotePlaybackConnected(media) || isRemotePlaybackConnecting(media);\n\t\t};\n\t\tlet idleTimer;\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\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\tset({ toggleControls() {\n\t\t\tif (get().controlsVisible) setInactive();\n\t\t\telse setActive();\n\t\t\treturn get().controlsVisible;\n\t\t} });\n\t\tlet pointerDownTime = 0;\n\t\tfunction onPointerDown() {\n\t\t\tpointerDownTime = Date.now();\n\t\t}\n\t\tfunction onPointerUp(event) {\n\t\t\tif (event.pointerType === \"touch\" && Date.now() - pointerDownTime < TAP_THRESHOLD) {\n\t\t\t\tif (findGestureCoordinator(container)?.bindings.some((b) => b.type === \"tap\" && b.action === \"toggleControls\" && (!b.pointer || b.pointer === \"touch\"))) 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\tlisten(container, \"pointermove\", setActive, { 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\", setActive, { signal });\n\t\tlisten(container, \"mouseleave\", setInactive, { 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\", clearIdle, { once: true });\n\t\tscheduleIdle();\n\t}\n});\n//#endregion\nexport { controlsFeature };\n\n//# sourceMappingURL=controls.js.map","import { definePlayerFeature } from \"../../feature.js\";\nimport { isMediaErrorCapable } from \"../../media/predicate.js\";\nimport { listen } from \"@videojs/utils/dom\";\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, isFullscreen, isFullscreenEnabled, requestFullscreen };\n\n//# sourceMappingURL=fullscreen.js.map","import { isFunction } from \"@videojs/utils/predicate\";\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}\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, 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 { isMediaLiveCapable } from \"../../media/predicate.js\";\nimport { listen } from \"@videojs/utils/dom\";\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* `HlsMedia` 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 { exitFullscreen, isFullscreen } from \"../../presentation/fullscreen.js\";\nimport { exitPictureInPicture, isPictureInPicture, 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() ? \"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 { isMediaPauseCapable, isMediaSeekCapable, isMediaSourceCapable } from \"../../media/predicate.js\";\nimport { listen } from \"@videojs/utils/dom\";\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 { isMediaPlaybackRateCapable } from \"../../media/predicate.js\";\nimport { listen } from \"@videojs/utils/dom\";\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 { isMediaRemotePlaybackCapable } from \"../../media/predicate.js\";\nimport { isRemotePlaybackConnected, requestRemotePlayback } from \"../../presentation/remote-playback.js\";\nimport { exitFullscreen, isFullscreen } from \"../../presentation/fullscreen.js\";\nimport { listen } from \"@videojs/utils/dom\";\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 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\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 { isMediaSourceCapable } from \"../../media/predicate.js\";\nimport { listen } from \"@videojs/utils/dom\";\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 { definePlayerFeature } from \"../../feature.js\";\nimport { isMediaTextTrackCapable, isQuerySelectorAllCapable } from \"../../media/predicate.js\";\nimport { findTrackElement, getTextTrackList, listen } from \"@videojs/utils/dom\";\n//#region src/dom/store/features/text-track.ts\nconst textTrackFeature = definePlayerFeature({\n\tname: \"textTrack\",\n\tstate: ({ target }) => ({\n\t\tchaptersCues: [],\n\t\tthumbnailCues: [],\n\t\tthumbnailTrackSrc: null,\n\t\ttextTrackList: [],\n\t\tsubtitlesShowing: false,\n\t\ttoggleSubtitles(forceShow) {\n\t\t\tconst { media } = target();\n\t\t\tif (!isMediaTextTrackCapable(media)) return false;\n\t\t\tconst subtitlesTracks = getTextTrackList(media, (track) => track.kind === \"subtitles\" || track.kind === \"captions\");\n\t\t\tif (!subtitlesTracks.length) return false;\n\t\t\tconst showing = subtitlesTracks.some((track) => track.mode === \"showing\");\n\t\t\tconst nextShowing = forceShow ?? !showing;\n\t\t\tfor (const track of subtitlesTracks) track.mode = nextShowing ? \"showing\" : \"disabled\";\n\t\t\treturn nextShowing;\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\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 ((track.kind === \"captions\" || track.kind === \"subtitles\") && 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 { hasMetadata, isMediaBufferCapable, isMediaSeekCapable, isMediaSourceCapable } from \"../../media/predicate.js\";\nimport { signalKeys } from \"../signal-keys.js\";\nimport { listen, onEvent } from \"@videojs/utils/dom\";\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 { isMediaVolumeCapable } from \"../../media/predicate.js\";\nimport { listen } from \"@videojs/utils/dom\";\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\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 (!isMediaVolumeCapable(media)) return false;\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\tif (!isMediaVolumeCapable(media)) return;\n\t\tset({ volumeAvailability: canSetVolume() });\n\t\tconst sync = () => set({\n\t\t\tvolume: media.volume,\n\t\t\tmuted: media.muted\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 { 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 { pipFeature } from \"./pip.js\";\nimport { playbackFeature } from \"./playback.js\";\nimport { playbackRateFeature } from \"./playback-rate.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\tvolumeFeature,\n\ttimeFeature,\n\tsourceFeature,\n\tbufferFeature,\n\tfullscreenFeature,\n\tpipFeature,\n\tremotePlaybackFeature,\n\tcontrolsFeature,\n\ttextTrackFeature,\n\terrorFeature\n];\nconst audioFeatures = [\n\tplaybackFeature,\n\tplaybackRateFeature,\n\tvolumeFeature,\n\ttimeFeature,\n\tsourceFeature,\n\tbufferFeature,\n\terrorFeature\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];\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];\n//#endregion\nexport { audioFeatures, backgroundFeatures, liveAudioFeatures, liveVideoFeatures, videoFeatures };\n\n//# sourceMappingURL=presets.js.map","//#region src/dom/ui/popover/popup-group.ts\nfunction createPopupGroup() {\n\tlet current = null;\n\treturn {\n\t\topen(member) {\n\t\t\tif (current === member) return;\n\t\t\tcurrent?.close(\"group-open\");\n\t\t\tcurrent = member;\n\t\t},\n\t\tclose(member) {\n\t\t\tif (current === member) current = null;\n\t\t}\n\t};\n}\n//#endregion\nexport { createPopupGroup };\n\n//# sourceMappingURL=popup-group.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 createPopupGroup,\n type Media,\n type MediaContainer,\n type PlayerStore,\n type PlayerTarget,\n} from '@videojs/core/dom';\nimport { ContextProvider } from '@videojs/element/context';\nimport { isNull } from '@videojs/utils/predicate';\nimport type { MediaElementConstructor } from '@/ui/media-element';\nimport type { ContainerContext, MediaContext, PlayerContext } from '../player/context';\nimport type { PlayerProvider, PlayerProviderConstructor } from './types';\n\nexport interface ProviderMixinConfig<Store extends PlayerStore> {\n playerContext: PlayerContext<Store>;\n mediaContext: MediaContext;\n containerContext: ContainerContext;\n factory: () => Store;\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 config - Provider configuration with contexts and store factory.\n */\nexport function createProviderMixin<Store extends PlayerStore>(\n config: ProviderMixinConfig<Store>\n): ProviderMixin<Store> {\n return <Class extends MediaElementConstructor>(BaseClass: Class) => {\n class PlayerProviderElement extends BaseClass implements PlayerProvider<Store> {\n #store: Store | null = config.factory();\n #detach: (() => void) | null = null;\n #media: Media | null = null;\n #container: MediaContainer | null = null;\n #popupGroup = createPopupGroup();\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 popupGroup: this.#popupGroup,\n });\n this.#tryAttach();\n };\n\n #playerProvider = new ContextProvider(this, {\n context: config.playerContext,\n initialValue: this.store,\n });\n\n #mediaProvider = new ContextProvider(this, {\n context: config.mediaContext,\n initialValue: { media: this.#media, setMedia: this.#setMedia },\n });\n\n #containerProvider = new ContextProvider(this, {\n context: config.containerContext,\n initialValue: {\n container: this.#container,\n setContainer: this.#setContainer,\n popupGroup: this.#popupGroup,\n },\n });\n\n get store(): Store {\n if (isNull(this.#store)) {\n this.#store = config.factory();\n }\n\n return this.#store;\n }\n\n override connectedCallback() {\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 popupGroup: this.#popupGroup,\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 #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 #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;\n };\n}\n","import type {\n AnyPlayerFeature,\n AudioFeatures,\n AudioPlayerStore,\n PlayerStore,\n PlayerTarget,\n VideoFeatures,\n VideoPlayerStore,\n} from '@videojs/core/dom';\nimport { combine, createStore } from '@videojs/store';\n\nimport { type ContainerMixin, createContainerMixin } from '../store/container-mixin';\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 /** Mixin that consumes player context and registers as the container element. */\n ContainerMixin: ContainerMixin<Store>;\n}\n\n/**\n * Creates a player factory with typed store, mixins, 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, ContainerMixin, 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<PlayerTarget, AnyPlayerFeature[]>(...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 });\n\n const ContainerMixin = createContainerMixin<PlayerStore>({\n playerContext,\n containerContext,\n });\n\n return {\n context: playerContext,\n create,\n PlayerController,\n ProviderMixin,\n ContainerMixin,\n };\n}\n"],"x_google_ignoreList":[6,7,8],"mappings":"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"}