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

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 (436) hide show
  1. package/cdn/{abort-C9UiBdVU.js → abort-0nUH9HXc.js} +1 -1
  2. package/cdn/{abort-C9UiBdVU.js.map → abort-0nUH9HXc.js.map} +1 -1
  3. package/cdn/{abort-DsTff8mS.js → abort-DQxwCs92.js} +1 -1
  4. package/cdn/{abort-DsTff8mS.js.map → abort-DQxwCs92.js.map} +1 -1
  5. package/cdn/audio-minimal-ui.dev.js +1 -4
  6. package/cdn/audio-minimal-ui.js +1 -1
  7. package/cdn/audio-minimal.dev.js +5 -7
  8. package/cdn/audio-minimal.dev.js.map +1 -1
  9. package/cdn/audio-minimal.js +1 -1
  10. package/cdn/audio-minimal.js.map +1 -1
  11. package/cdn/audio-ui.dev.js +1 -4
  12. package/cdn/audio-ui.js +1 -1
  13. package/cdn/audio.dev.js +4 -6
  14. package/cdn/audio.dev.js.map +1 -1
  15. package/cdn/audio.js +1 -1
  16. package/cdn/audio.js.map +1 -1
  17. package/cdn/background.dev.js +3 -3
  18. package/cdn/background.js +1 -1
  19. package/cdn/background.js.map +1 -1
  20. package/cdn/{compounds-DD3MYkSc.js → compounds-BHHGcL_P.js} +146 -64
  21. package/cdn/compounds-BHHGcL_P.js.map +1 -0
  22. package/cdn/compounds-DJyzXLOB.js +8 -0
  23. package/cdn/compounds-DJyzXLOB.js.map +1 -0
  24. package/cdn/{create-player-BKLw7l1a.js → create-player-B-gVAMdr.js} +200 -175
  25. package/cdn/create-player-B-gVAMdr.js.map +1 -0
  26. package/cdn/create-player-C5ui1T2i.js +7 -0
  27. package/cdn/create-player-C5ui1T2i.js.map +1 -0
  28. package/cdn/hls-DEP0AzDp.js +41 -0
  29. package/cdn/hls-DEP0AzDp.js.map +1 -0
  30. package/cdn/{hls-CcSAx_3I.js → hls-DR-Xxpxv.js} +161 -21
  31. package/cdn/hls-DR-Xxpxv.js.map +1 -0
  32. package/cdn/hotkey-element-BvI78DTc.js +2 -0
  33. package/cdn/{hotkey-element-DWWkfH3A.js.map → hotkey-element-BvI78DTc.js.map} +1 -1
  34. package/cdn/{hotkey-element-BONs_FyJ.js → hotkey-element-oEdY8YLl.js} +24 -18
  35. package/cdn/{hotkey-element-BONs_FyJ.js.map → hotkey-element-oEdY8YLl.js.map} +1 -1
  36. package/cdn/live-video-minimal.dev.d.ts +1 -0
  37. package/cdn/live-video-minimal.dev.js +115 -0
  38. package/cdn/live-video-minimal.dev.js.map +1 -0
  39. package/cdn/live-video-minimal.js +2 -0
  40. package/cdn/live-video-minimal.js.map +1 -0
  41. package/cdn/live-video.dev.d.ts +1 -0
  42. package/cdn/live-video.dev.js +130 -0
  43. package/cdn/live-video.dev.js.map +1 -0
  44. package/cdn/live-video.js +2 -0
  45. package/cdn/live-video.js.map +1 -0
  46. package/cdn/media/dash-video.dev.js +8 -7
  47. package/cdn/media/dash-video.dev.js.map +1 -1
  48. package/cdn/media/dash-video.js +6 -6
  49. package/cdn/media/dash-video.js.map +1 -1
  50. package/cdn/media/hls-video.dev.js +4 -4
  51. package/cdn/media/hls-video.js +1 -1
  52. package/cdn/media/hls-video.js.map +1 -1
  53. package/cdn/media/mux-audio.dev.js +8 -6
  54. package/cdn/media/mux-audio.dev.js.map +1 -1
  55. package/cdn/media/mux-audio.js +1 -1
  56. package/cdn/media/mux-audio.js.map +1 -1
  57. package/cdn/media/mux-video.dev.js +8 -6
  58. package/cdn/media/mux-video.dev.js.map +1 -1
  59. package/cdn/media/mux-video.js +1 -1
  60. package/cdn/media/mux-video.js.map +1 -1
  61. package/cdn/media/native-hls-video.dev.js +4 -4
  62. package/cdn/media/native-hls-video.js +1 -1
  63. package/cdn/media/native-hls-video.js.map +1 -1
  64. package/cdn/media/simple-hls-video.dev.js +11 -5
  65. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  66. package/cdn/media/simple-hls-video.js +6 -6
  67. package/cdn/media/simple-hls-video.js.map +1 -1
  68. package/cdn/media-attach-mixin-DuquRhAk.js +2 -0
  69. package/cdn/{media-attach-mixin-C2wz0Qbd.js.map → media-attach-mixin-DuquRhAk.js.map} +1 -1
  70. package/cdn/{media-attach-mixin-CYoNe7Sh.js → media-attach-mixin-pV8deGiO.js} +2 -2
  71. package/cdn/{media-attach-mixin-CYoNe7Sh.js.map → media-attach-mixin-pV8deGiO.js.map} +1 -1
  72. package/cdn/{minimal-AX_y2YBU.js → minimal-CciG7Fsu.js} +1 -1
  73. package/cdn/{minimal-AX_y2YBU.js.map → minimal-CciG7Fsu.js.map} +1 -1
  74. package/cdn/{minimal-Bc74CFqg.js → minimal-DSLrhnDm.js} +1 -1
  75. package/cdn/{minimal-Bc74CFqg.js.map → minimal-DSLrhnDm.js.map} +1 -1
  76. package/cdn/{minimal-ui-yKur3jyD.js → minimal-ui-Bx-_SggT.js} +5 -5
  77. package/cdn/{minimal-ui-yKur3jyD.js.map → minimal-ui-Bx-_SggT.js.map} +1 -1
  78. package/cdn/minimal-ui-CFO4ssL8.js +2 -0
  79. package/cdn/{minimal-ui-hC8-_9_F.js.map → minimal-ui-CFO4ssL8.js.map} +1 -1
  80. package/cdn/minimal-ui-D6Pvbx1R.js +2 -0
  81. package/cdn/{minimal-ui-lnw8AjaS.js.map → minimal-ui-D6Pvbx1R.js.map} +1 -1
  82. package/cdn/{minimal-ui-CE1sVxKB.js → minimal-ui-Dl-8ZL53.js} +5 -5
  83. package/cdn/{minimal-ui-CE1sVxKB.js.map → minimal-ui-Dl-8ZL53.js.map} +1 -1
  84. package/cdn/{mux-BhHIeG3e.js → mux-D5M5HL6A.js} +55 -20
  85. package/cdn/mux-D5M5HL6A.js.map +1 -0
  86. package/cdn/{mux-BgWl50KW.js → mux-DH3Kxyot.js} +10 -10
  87. package/cdn/mux-DH3Kxyot.js.map +1 -0
  88. package/cdn/native-hls-DN_aWn2z.js +2 -0
  89. package/cdn/native-hls-DN_aWn2z.js.map +1 -0
  90. package/cdn/native-hls-ak4v9DN6.js +371 -0
  91. package/cdn/native-hls-ak4v9DN6.js.map +1 -0
  92. package/cdn/player-BKKCelEs.js +2 -0
  93. package/cdn/player-BKKCelEs.js.map +1 -0
  94. package/cdn/{player-DX5Ka0vt.js → player-C_6YjMl7.js} +16 -12
  95. package/cdn/player-C_6YjMl7.js.map +1 -0
  96. package/cdn/player-CtegNw3g.js +2 -0
  97. package/cdn/{player-ChdQN3H5.js.map → player-CtegNw3g.js.map} +1 -1
  98. package/cdn/{player-BVGWmIbQ.js → player-D468sScc.js} +3 -3
  99. package/cdn/{player-BVGWmIbQ.js.map → player-D468sScc.js.map} +1 -1
  100. package/cdn/{context-0rI_P6jf.js → predicate-BOcV_HDG.js} +23 -2
  101. package/cdn/predicate-BOcV_HDG.js.map +1 -0
  102. package/cdn/{context-CEFisYD0.js → predicate-Cad5WV4q.js} +2 -2
  103. package/cdn/predicate-Cad5WV4q.js.map +1 -0
  104. package/cdn/{shallow-equal-xh6Wj-hj.js → shallow-equal-D-fthE54.js} +1 -1
  105. package/cdn/{shallow-equal-xh6Wj-hj.js.map → shallow-equal-D-fthE54.js.map} +1 -1
  106. package/cdn/{shallow-equal-Daj3-_LC.js → shallow-equal-DSpD9PMp.js} +1 -1
  107. package/cdn/{shallow-equal-Daj3-_LC.js.map → shallow-equal-DSpD9PMp.js.map} +1 -1
  108. package/cdn/{skin-element-D3iVinGP.js → skin-element-BcbrkgGs.js} +2 -2
  109. package/cdn/{skin-element-D3iVinGP.js.map → skin-element-BcbrkgGs.js.map} +1 -1
  110. package/cdn/{skin-element-DM82PPxz.js → skin-element-DesLkJKs.js} +2 -2
  111. package/cdn/{skin-element-DM82PPxz.js.map → skin-element-DesLkJKs.js.map} +1 -1
  112. package/cdn/types-B_4Es-UH.js +20 -0
  113. package/cdn/types-B_4Es-UH.js.map +1 -0
  114. package/cdn/types-DRezN4yy.js +2 -0
  115. package/cdn/types-DRezN4yy.js.map +1 -0
  116. package/cdn/{ui-CZ4yl3t3.js → ui-CzxKbsyb.js} +6 -6
  117. package/cdn/{ui-CZ4yl3t3.js.map → ui-CzxKbsyb.js.map} +1 -1
  118. package/cdn/ui-D6DV-Emw.js +2 -0
  119. package/cdn/{ui-BGvi0TNr.js.map → ui-D6DV-Emw.js.map} +1 -1
  120. package/cdn/ui-Dw-n2AMs.js +2 -0
  121. package/cdn/{ui-BN57BxYZ.js.map → ui-Dw-n2AMs.js.map} +1 -1
  122. package/cdn/{ui-CKR6dVbQ.js → ui-S_eLj4ur.js} +6 -6
  123. package/cdn/{ui-CKR6dVbQ.js.map → ui-S_eLj4ur.js.map} +1 -1
  124. package/cdn/{video-host-BtD61mpF.js → video-host-BR_2vUZH.js} +29 -16
  125. package/cdn/{video-host-BtD61mpF.js.map → video-host-BR_2vUZH.js.map} +1 -1
  126. package/cdn/{video-host-LeB1FKfO.js → video-host-Bkh2OyyP.js} +10 -10
  127. package/cdn/{video-host-LeB1FKfO.js.map → video-host-Bkh2OyyP.js.map} +1 -1
  128. package/cdn/video-minimal-ui.dev.js +1 -4
  129. package/cdn/video-minimal-ui.js +1 -1
  130. package/cdn/video-minimal.dev.js +5 -7
  131. package/cdn/video-minimal.dev.js.map +1 -1
  132. package/cdn/video-minimal.js +1 -1
  133. package/cdn/video-minimal.js.map +1 -1
  134. package/cdn/video-ui.dev.js +1 -4
  135. package/cdn/video-ui.js +1 -1
  136. package/cdn/video.dev.js +4 -6
  137. package/cdn/video.dev.js.map +1 -1
  138. package/cdn/video.js +1 -1
  139. package/cdn/video.js.map +1 -1
  140. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  141. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  142. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  143. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  144. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  145. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  146. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  147. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  148. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  149. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  150. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  151. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  152. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  153. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  154. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  155. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  156. package/dist/default/define/audio/minimal-skin.css +2 -1
  157. package/dist/default/define/audio/skin.css +2 -1
  158. package/dist/default/define/background/skin.js +1 -1
  159. package/dist/default/define/live-audio/minimal-skin.css +779 -0
  160. package/dist/default/define/live-audio/minimal-skin.js +26 -0
  161. package/dist/default/define/live-audio/minimal-skin.js.map +1 -0
  162. package/dist/default/define/live-audio/minimal-skin.tailwind.js +29 -0
  163. package/dist/default/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  164. package/dist/default/define/live-audio/skin.css +795 -0
  165. package/dist/default/define/live-audio/skin.js +26 -0
  166. package/dist/default/define/live-audio/skin.js.map +1 -0
  167. package/dist/default/define/live-audio/skin.tailwind.js +28 -0
  168. package/dist/default/define/live-audio/skin.tailwind.js.map +1 -0
  169. package/dist/default/define/live-video/minimal-skin.css +1170 -0
  170. package/dist/default/define/live-video/minimal-skin.js +26 -0
  171. package/dist/default/define/live-video/minimal-skin.js.map +1 -0
  172. package/dist/default/define/live-video/minimal-skin.tailwind.js +30 -0
  173. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -0
  174. package/dist/default/define/live-video/skin.css +1160 -0
  175. package/dist/default/define/live-video/skin.js +26 -0
  176. package/dist/default/define/live-video/skin.js.map +1 -0
  177. package/dist/default/define/live-video/skin.tailwind.js +29 -0
  178. package/dist/default/define/live-video/skin.tailwind.js.map +1 -0
  179. package/dist/default/define/skin-element.js +1 -1
  180. package/dist/default/define/video/minimal-skin.css +2 -1
  181. package/dist/default/define/video/skin.css +2 -1
  182. package/dist/default/index.js +2 -1
  183. package/dist/default/media/mux-audio/index.js +4 -1
  184. package/dist/default/media/mux-audio/index.js.map +1 -1
  185. package/dist/default/media/mux-video/index.js +4 -1
  186. package/dist/default/media/mux-video/index.js.map +1 -1
  187. package/dist/default/presets/live-audio.js +6 -0
  188. package/dist/default/presets/live-video.js +6 -0
  189. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  190. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  191. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  192. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  193. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  194. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  195. package/dist/default/ui/alert-dialog/alert-dialog-element.js +12 -6
  196. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  197. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  198. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  199. package/dist/default/ui/cast-button/cast-button-element.js +2 -2
  200. package/dist/default/ui/cast-button/cast-button-element.js.map +1 -1
  201. package/dist/default/ui/error-dialog/error-dialog-element.js +4 -1
  202. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -1
  203. package/dist/default/ui/gesture/gesture-element.js +10 -7
  204. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  205. package/dist/default/ui/hotkey/hotkey-element.js +10 -7
  206. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  207. package/dist/default/ui/media-button-element.js +4 -2
  208. package/dist/default/ui/media-button-element.js.map +1 -1
  209. package/dist/default/ui/popover/popover-element.js +14 -7
  210. package/dist/default/ui/popover/popover-element.js.map +1 -1
  211. package/dist/default/ui/slider/slider-element.js +8 -4
  212. package/dist/default/ui/slider/slider-element.js.map +1 -1
  213. package/dist/default/ui/slider/slider-preview-element.js +9 -6
  214. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  215. package/dist/default/ui/slider/slider-value-element.js +5 -4
  216. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  217. package/dist/default/ui/thumbnail/thumbnail-element.js +10 -5
  218. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  219. package/dist/default/ui/time/time-element.js +8 -4
  220. package/dist/default/ui/time/time-element.js.map +1 -1
  221. package/dist/default/ui/time-slider/time-slider-element.js +12 -6
  222. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  223. package/dist/default/ui/tooltip/tooltip-element.js +16 -8
  224. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  225. package/dist/default/ui/tooltip/tooltip-group-element.js +7 -5
  226. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  227. package/dist/default/ui/volume-slider/volume-slider-element.js +10 -5
  228. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  229. package/dist/dev/_virtual/_rolldown/runtime.js +27 -0
  230. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  231. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  232. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  233. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  234. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  235. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  236. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  237. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  238. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  239. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  240. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  241. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  242. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  243. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  244. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  245. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  246. package/dist/dev/define/audio/minimal-skin.css +2 -1
  247. package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
  248. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  249. package/dist/dev/define/audio/player.d.ts +2 -2
  250. package/dist/dev/define/audio/skin.css +2 -1
  251. package/dist/dev/define/audio/skin.d.ts +2 -2
  252. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  253. package/dist/dev/define/background/player.d.ts +2 -2
  254. package/dist/dev/define/background/skin.d.ts.map +1 -1
  255. package/dist/dev/define/background/skin.js +1 -1
  256. package/dist/dev/define/live-audio/minimal-skin.css +779 -0
  257. package/dist/dev/define/live-audio/minimal-skin.d.ts +17 -0
  258. package/dist/dev/define/live-audio/minimal-skin.d.ts.map +1 -0
  259. package/dist/dev/define/live-audio/minimal-skin.js +76 -0
  260. package/dist/dev/define/live-audio/minimal-skin.js.map +1 -0
  261. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts +14 -0
  262. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  263. package/dist/dev/define/live-audio/minimal-skin.tailwind.js +79 -0
  264. package/dist/dev/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  265. package/dist/dev/define/live-audio/skin.css +795 -0
  266. package/dist/dev/define/live-audio/skin.d.ts +17 -0
  267. package/dist/dev/define/live-audio/skin.d.ts.map +1 -0
  268. package/dist/dev/define/live-audio/skin.js +83 -0
  269. package/dist/dev/define/live-audio/skin.js.map +1 -0
  270. package/dist/dev/define/live-audio/skin.tailwind.d.ts +14 -0
  271. package/dist/dev/define/live-audio/skin.tailwind.d.ts.map +1 -0
  272. package/dist/dev/define/live-audio/skin.tailwind.js +78 -0
  273. package/dist/dev/define/live-audio/skin.tailwind.js.map +1 -0
  274. package/dist/dev/define/live-video/minimal-skin.css +1170 -0
  275. package/dist/dev/define/live-video/minimal-skin.d.ts +17 -0
  276. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -0
  277. package/dist/dev/define/live-video/minimal-skin.js +112 -0
  278. package/dist/dev/define/live-video/minimal-skin.js.map +1 -0
  279. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts +14 -0
  280. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  281. package/dist/dev/define/live-video/minimal-skin.tailwind.js +110 -0
  282. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -0
  283. package/dist/dev/define/live-video/skin.css +1160 -0
  284. package/dist/dev/define/live-video/skin.d.ts +17 -0
  285. package/dist/dev/define/live-video/skin.d.ts.map +1 -0
  286. package/dist/dev/define/live-video/skin.js +127 -0
  287. package/dist/dev/define/live-video/skin.js.map +1 -0
  288. package/dist/dev/define/live-video/skin.tailwind.d.ts +14 -0
  289. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -0
  290. package/dist/dev/define/live-video/skin.tailwind.js +111 -0
  291. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -0
  292. package/dist/dev/define/skin-element.d.ts +1 -1
  293. package/dist/dev/define/skin-element.d.ts.map +1 -1
  294. package/dist/dev/define/skin-element.js +1 -1
  295. package/dist/dev/define/video/minimal-skin.css +2 -1
  296. package/dist/dev/define/video/minimal-skin.d.ts +2 -2
  297. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  298. package/dist/dev/define/video/player.d.ts +2 -2
  299. package/dist/dev/define/video/skin.css +2 -1
  300. package/dist/dev/define/video/skin.d.ts +2 -2
  301. package/dist/dev/define/video/skin.d.ts.map +1 -1
  302. package/dist/dev/index.d.ts +12 -3
  303. package/dist/dev/index.d.ts.map +1 -0
  304. package/dist/dev/index.js +2 -1
  305. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  306. package/dist/dev/media/container-element.d.ts +2 -2
  307. package/dist/dev/media/dash-video/index.d.ts +2 -2
  308. package/dist/dev/media/hls-video/index.d.ts +2 -2
  309. package/dist/dev/media/mux-audio/index.d.ts +2 -2
  310. package/dist/dev/media/mux-audio/index.js +4 -1
  311. package/dist/dev/media/mux-audio/index.js.map +1 -1
  312. package/dist/dev/media/mux-video/index.d.ts +2 -2
  313. package/dist/dev/media/mux-video/index.js +4 -1
  314. package/dist/dev/media/mux-video/index.js.map +1 -1
  315. package/dist/dev/media/native-hls-video/index.d.ts +2 -2
  316. package/dist/dev/media/simple-hls-video/index.d.ts +2 -2
  317. package/dist/dev/player/context.d.ts +1 -1
  318. package/dist/dev/player/player-controller.d.ts +1 -1
  319. package/dist/dev/player/player-controller.d.ts.map +1 -1
  320. package/dist/dev/presets/live-audio.d.ts +6 -0
  321. package/dist/dev/presets/live-audio.js +6 -0
  322. package/dist/dev/presets/live-video.d.ts +6 -0
  323. package/dist/dev/presets/live-video.js +6 -0
  324. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  325. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  326. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  327. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  328. package/dist/dev/store/container-mixin.d.ts +1 -1
  329. package/dist/dev/store/provider-mixin.d.ts +1 -1
  330. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.d.ts.map +1 -1
  331. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  332. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  333. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.d.ts +2 -2
  334. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  335. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +12 -6
  336. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  337. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +2 -2
  338. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  339. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  340. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  341. package/dist/dev/ui/captions-button/captions-button-element.d.ts +4 -4
  342. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  343. package/dist/dev/ui/cast-button/cast-button-element.d.ts +6 -6
  344. package/dist/dev/ui/cast-button/cast-button-element.d.ts.map +1 -1
  345. package/dist/dev/ui/cast-button/cast-button-element.js +2 -2
  346. package/dist/dev/ui/cast-button/cast-button-element.js.map +1 -1
  347. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -1
  348. package/dist/dev/ui/error-dialog/error-dialog-element.js +4 -1
  349. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -1
  350. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +4 -4
  351. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  352. package/dist/dev/ui/gesture/gesture-element.js +10 -7
  353. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  354. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -1
  355. package/dist/dev/ui/hotkey/hotkey-element.js +10 -7
  356. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  357. package/dist/dev/ui/media-button-element.d.ts +1 -1
  358. package/dist/dev/ui/media-button-element.js +4 -2
  359. package/dist/dev/ui/media-button-element.js.map +1 -1
  360. package/dist/dev/ui/media-element.d.ts +2 -2
  361. package/dist/dev/ui/mute-button/mute-button-element.d.ts +4 -4
  362. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  363. package/dist/dev/ui/pip-button/pip-button-element.d.ts +4 -4
  364. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  365. package/dist/dev/ui/play-button/play-button-element.d.ts +5 -5
  366. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  367. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +3 -3
  368. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  369. package/dist/dev/ui/popover/popover-element.d.ts +3 -3
  370. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  371. package/dist/dev/ui/popover/popover-element.js +14 -7
  372. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  373. package/dist/dev/ui/poster/poster-element.d.ts +4 -4
  374. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  375. package/dist/dev/ui/seek-button/seek-button-element.d.ts +4 -4
  376. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  377. package/dist/dev/ui/slider/slider-element.d.ts +2 -2
  378. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  379. package/dist/dev/ui/slider/slider-element.js +8 -4
  380. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  381. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  382. package/dist/dev/ui/slider/slider-preview-element.js +9 -6
  383. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  384. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -1
  385. package/dist/dev/ui/slider/slider-value-element.js +5 -4
  386. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  387. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -1
  388. package/dist/dev/ui/thumbnail/thumbnail-element.js +10 -5
  389. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  390. package/dist/dev/ui/time/time-element.d.ts +2 -2
  391. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  392. package/dist/dev/ui/time/time-element.js +8 -4
  393. package/dist/dev/ui/time/time-element.js.map +1 -1
  394. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  395. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  396. package/dist/dev/ui/time-slider/time-slider-element.js +12 -6
  397. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  398. package/dist/dev/ui/tooltip/tooltip-element.d.ts +3 -3
  399. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  400. package/dist/dev/ui/tooltip/tooltip-element.js +16 -8
  401. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  402. package/dist/dev/ui/tooltip/tooltip-group-element.d.ts.map +1 -1
  403. package/dist/dev/ui/tooltip/tooltip-group-element.js +7 -5
  404. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  405. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +2 -2
  406. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  407. package/dist/dev/ui/volume-slider/volume-slider-element.js +10 -5
  408. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  409. package/package.json +31 -10
  410. package/cdn/compounds-CCgS3IGo.js +0 -8
  411. package/cdn/compounds-CCgS3IGo.js.map +0 -1
  412. package/cdn/compounds-DD3MYkSc.js.map +0 -1
  413. package/cdn/context-0rI_P6jf.js.map +0 -1
  414. package/cdn/context-CEFisYD0.js.map +0 -1
  415. package/cdn/create-player-B-PGzhq2.js +0 -7
  416. package/cdn/create-player-B-PGzhq2.js.map +0 -1
  417. package/cdn/create-player-BKLw7l1a.js.map +0 -1
  418. package/cdn/hls-CcSAx_3I.js.map +0 -1
  419. package/cdn/hls-Dl2v35sW.js +0 -41
  420. package/cdn/hls-Dl2v35sW.js.map +0 -1
  421. package/cdn/hotkey-element-DWWkfH3A.js +0 -2
  422. package/cdn/media-attach-mixin-C2wz0Qbd.js +0 -2
  423. package/cdn/minimal-ui-hC8-_9_F.js +0 -2
  424. package/cdn/minimal-ui-lnw8AjaS.js +0 -2
  425. package/cdn/mux-BgWl50KW.js.map +0 -1
  426. package/cdn/mux-BhHIeG3e.js.map +0 -1
  427. package/cdn/native-hls-lhip4tV9.js +0 -123
  428. package/cdn/native-hls-lhip4tV9.js.map +0 -1
  429. package/cdn/native-hls-odPBXxK7.js +0 -2
  430. package/cdn/native-hls-odPBXxK7.js.map +0 -1
  431. package/cdn/player-B7jISTmQ.js +0 -2
  432. package/cdn/player-B7jISTmQ.js.map +0 -1
  433. package/cdn/player-ChdQN3H5.js +0 -2
  434. package/cdn/player-DX5Ka0vt.js.map +0 -1
  435. package/cdn/ui-BGvi0TNr.js +0 -2
  436. package/cdn/ui-BN57BxYZ.js +0 -2
@@ -1,7 +1,7 @@
1
1
  import { t as listen } from "./listen-CJT7C4kM.js";
2
- import { a as ContextRequestEvent, n as mediaContext, r as playerContext, t as containerContext } from "./context-0rI_P6jf.js";
3
- import { t as anyAbortSignal } from "./abort-DsTff8mS.js";
4
- import { t as shallowEqual } from "./shallow-equal-Daj3-_LC.js";
2
+ import { a as isUndefined, c as playerContext, i as isObject, n as isNull, o as containerContext, s as mediaContext, t as isFunction, u as ContextRequestEvent } from "./predicate-BOcV_HDG.js";
3
+ import { t as anyAbortSignal } from "./abort-DQxwCs92.js";
4
+ import { t as shallowEqual } from "./shallow-equal-DSpD9PMp.js";
5
5
 
6
6
  //#region ../utils/dist/dom/event.js
7
7
  /** Resolve the deepest event target, preferring composedPath for shadow DOM. */
@@ -219,8 +219,8 @@ var ReactiveElement = class extends HTMLElement {
219
219
  static get observedAttributes() {
220
220
  return [...resolve(this).attrToProp.keys()];
221
221
  }
222
- #controllers = /* @__PURE__ */ new Set();
223
- #changedProperties = /* @__PURE__ */ new Map();
222
+ #controllers;
223
+ #changedProperties;
224
224
  #instanceProperties;
225
225
  /**
226
226
  * Promise that gates the first update until `connectedCallback`. Also
@@ -231,6 +231,8 @@ var ReactiveElement = class extends HTMLElement {
231
231
  #updatePromise;
232
232
  constructor() {
233
233
  super();
234
+ this.#controllers = /* @__PURE__ */ new Set();
235
+ this.#changedProperties = /* @__PURE__ */ new Map();
234
236
  this.isUpdatePending = false;
235
237
  this.hasUpdated = false;
236
238
  this.#updatePromise = new Promise((res) => this.enableUpdating = res);
@@ -734,27 +736,6 @@ var MediaContainerElement = class extends ContainerMixin(MediaElement) {
734
736
  };
735
737
  };
736
738
 
737
- //#endregion
738
- //#region ../utils/dist/predicate/predicate.js
739
- function isNumber(value) {
740
- return typeof value === "number";
741
- }
742
- function isFunction(value) {
743
- return typeof value === "function";
744
- }
745
- function isNull(value) {
746
- return value === null;
747
- }
748
- function isUndefined(value) {
749
- return typeof value === "undefined";
750
- }
751
- /**
752
- * Check if a value is an object, excluding null.
753
- */
754
- function isObject(value) {
755
- return value !== null && typeof value === "object";
756
- }
757
-
758
739
  //#endregion
759
740
  //#region ../store/dist/dev/core/abort-controller-registry.js
760
741
  var AbortControllerRegistry = class {
@@ -1064,6 +1045,12 @@ function isMediaTextTrackCapable(value) {
1064
1045
  function isMediaRemotePlaybackCapable(value) {
1065
1046
  return isObject(value) && "remote" in value && isObject(value.remote);
1066
1047
  }
1048
+ function isMediaStreamTypeCapable(value) {
1049
+ return isObject(value) && "streamType" in value;
1050
+ }
1051
+ function isMediaLiveCapable(value) {
1052
+ return isObject(value) && "liveEdgeStart" in value && "targetLiveWindow" in value;
1053
+ }
1067
1054
  function isQuerySelectorAllCapable(value) {
1068
1055
  return isObject(value) && "querySelectorAll" in value && isFunction(value.querySelectorAll);
1069
1056
  }
@@ -1089,112 +1076,6 @@ const bufferFeature = definePlayerFeature({
1089
1076
  }
1090
1077
  });
1091
1078
 
1092
- //#endregion
1093
- //#region ../core/dist/dev/dom/presentation/cast.js
1094
- function resolveRemote(media) {
1095
- const target = media;
1096
- if (isObject(target.remote) && "state" in target.remote && "prompt" in target.remote) return target.remote;
1097
- }
1098
- function isCastConnected(media) {
1099
- return resolveRemote(media)?.state === "connected";
1100
- }
1101
- function isCastConnecting(media) {
1102
- return resolveRemote(media)?.state === "connecting";
1103
- }
1104
- async function requestCast(media) {
1105
- const remote = resolveRemote(media);
1106
- if (!remote) throw new DOMException("Remote playback not supported", "NotSupportedError");
1107
- return remote.prompt();
1108
- }
1109
-
1110
- //#endregion
1111
- //#region ../core/dist/dev/dom/presentation/fullscreen.js
1112
- function isFullscreenEnabled() {
1113
- const doc = document;
1114
- if (doc.fullscreenEnabled || doc.webkitFullscreenEnabled) return true;
1115
- return isFunction(document.createElement("video").webkitEnterFullscreen);
1116
- }
1117
- function getFullscreenElement() {
1118
- const doc = document;
1119
- return doc.fullscreenElement ?? doc.webkitFullscreenElement ?? null;
1120
- }
1121
- function isFullscreenElement(container, media) {
1122
- if (media instanceof HTMLMediaElement) {
1123
- const video = media;
1124
- if (video.webkitDisplayingFullscreen && video.webkitPresentationMode === "fullscreen") return true;
1125
- }
1126
- const target = container ?? media;
1127
- if (getFullscreenElement() === target) return true;
1128
- if (target instanceof Element) try {
1129
- return target.matches(":fullscreen");
1130
- } catch {
1131
- return false;
1132
- }
1133
- return false;
1134
- }
1135
- async function requestFullscreen(container, media) {
1136
- const doc = document;
1137
- if (container && (doc.fullscreenEnabled || doc.webkitFullscreenEnabled)) {
1138
- const el = container;
1139
- if (isFunction(el.requestFullscreen)) return el.requestFullscreen();
1140
- if (isFunction(el.webkitRequestFullscreen)) return el.webkitRequestFullscreen();
1141
- }
1142
- if (media instanceof HTMLMediaElement) {
1143
- const video = media;
1144
- if (isFunction(video.webkitEnterFullscreen)) {
1145
- video.webkitEnterFullscreen();
1146
- return;
1147
- }
1148
- if (isFunction(media.requestFullscreen)) return media.requestFullscreen();
1149
- }
1150
- throw new DOMException("Fullscreen not supported", "NotSupportedError");
1151
- }
1152
- async function exitFullscreen(media) {
1153
- const doc = document;
1154
- if (media instanceof HTMLMediaElement) {
1155
- const video = media;
1156
- if (isFunction(video.webkitExitFullscreen) && video.webkitDisplayingFullscreen) {
1157
- video.webkitExitFullscreen();
1158
- return;
1159
- }
1160
- }
1161
- if (isFunction(doc.exitFullscreen)) return doc.exitFullscreen();
1162
- if (isFunction(doc.webkitExitFullscreen)) return doc.webkitExitFullscreen();
1163
- }
1164
-
1165
- //#endregion
1166
- //#region ../core/dist/dev/dom/store/features/cast.js
1167
- const castFeature = definePlayerFeature({
1168
- name: "cast",
1169
- state: ({ target }) => ({
1170
- castState: "disconnected",
1171
- castAvailability: "unavailable",
1172
- async toggleCast() {
1173
- const { media, container } = target();
1174
- if (isCastConnected(media)) return requestCast(media);
1175
- if (isFullscreenElement(container, media)) await exitFullscreen();
1176
- return requestCast(media);
1177
- }
1178
- }),
1179
- attach({ target, signal, set }) {
1180
- const { media } = target;
1181
- if (!isMediaRemotePlaybackCapable(media)) return;
1182
- const syncState = () => set({ castState: media.remote.state });
1183
- syncState();
1184
- listen(media.remote, "connect", syncState, { signal });
1185
- listen(media.remote, "connecting", syncState, { signal });
1186
- listen(media.remote, "disconnect", syncState, { signal });
1187
- media.remote.watchAvailability((available) => {
1188
- set({ castAvailability: available ? "available" : "unavailable" });
1189
- }).catch(() => {
1190
- set({ castAvailability: "unsupported" });
1191
- });
1192
- signal.addEventListener("abort", () => {
1193
- media.remote?.cancelWatchAvailability().catch(() => {});
1194
- });
1195
- }
1196
- });
1197
-
1198
1079
  //#endregion
1199
1080
  //#region ../core/dist/dev/dom/gesture/region.js
1200
1081
  /**
@@ -1326,6 +1207,24 @@ function getActiveRegions(bindings, type, pointerType) {
1326
1207
  return regions;
1327
1208
  }
1328
1209
 
1210
+ //#endregion
1211
+ //#region ../core/dist/dev/dom/presentation/remote-playback.js
1212
+ function resolveRemote(media) {
1213
+ const target = media;
1214
+ if (isObject(target.remote) && "state" in target.remote && "prompt" in target.remote) return target.remote;
1215
+ }
1216
+ function isRemotePlaybackConnected(media) {
1217
+ return resolveRemote(media)?.state === "connected";
1218
+ }
1219
+ function isRemotePlaybackConnecting(media) {
1220
+ return resolveRemote(media)?.state === "connecting";
1221
+ }
1222
+ async function requestRemotePlayback(media) {
1223
+ const remote = resolveRemote(media);
1224
+ if (!remote) throw new DOMException("Remote playback not supported", "NotSupportedError");
1225
+ return remote.prompt();
1226
+ }
1227
+
1329
1228
  //#endregion
1330
1229
  //#region ../core/dist/dev/dom/store/features/controls.js
1331
1230
  const IDLE_DELAY = 2e3;
@@ -1351,7 +1250,7 @@ const controlsFeature = definePlayerFeature({
1351
1250
  return;
1352
1251
  }
1353
1252
  const computeVisible = (userActive) => {
1354
- return userActive || media.paused || isCastConnected(media) || isCastConnecting(media);
1253
+ return userActive || media.paused || isRemotePlaybackConnected(media) || isRemotePlaybackConnecting(media);
1355
1254
  };
1356
1255
  let idleTimer;
1357
1256
  function clearIdle() {
@@ -1441,11 +1340,61 @@ const errorFeature = definePlayerFeature({
1441
1340
  });
1442
1341
 
1443
1342
  //#endregion
1444
- //#region ../core/dist/dev/dom/presentation/pip.js
1445
- function resolveMediaTarget(media) {
1446
- const target = media.target;
1447
- return target instanceof HTMLMediaElement ? target : media;
1343
+ //#region ../core/dist/dev/dom/presentation/fullscreen.js
1344
+ function isFullscreenEnabled() {
1345
+ const doc = document;
1346
+ if (doc.fullscreenEnabled || doc.webkitFullscreenEnabled) return true;
1347
+ return isFunction(document.createElement("video").webkitSetPresentationMode);
1448
1348
  }
1349
+ function getFullscreenElement() {
1350
+ const doc = document;
1351
+ return doc.fullscreenElement ?? doc.webkitFullscreenElement ?? null;
1352
+ }
1353
+ function matchesFullscreen(element) {
1354
+ if (!(element instanceof Element)) return false;
1355
+ try {
1356
+ return element.matches(":fullscreen");
1357
+ } catch {
1358
+ return false;
1359
+ }
1360
+ }
1361
+ function isFullscreen(container, media) {
1362
+ if (media.webkitPresentationMode === "fullscreen") return true;
1363
+ const fullscreenElement = getFullscreenElement();
1364
+ if (fullscreenElement && (fullscreenElement === container || fullscreenElement === media)) return true;
1365
+ if (matchesFullscreen(container) || matchesFullscreen(media)) return true;
1366
+ return media.isFullscreen ?? false;
1367
+ }
1368
+ async function requestFullscreen(container, media) {
1369
+ const doc = document;
1370
+ if (container && (doc.fullscreenEnabled || doc.webkitFullscreenEnabled)) {
1371
+ const el = container;
1372
+ if (isFunction(el.requestFullscreen)) return el.requestFullscreen();
1373
+ if (isFunction(el.webkitRequestFullscreen)) return el.webkitRequestFullscreen();
1374
+ }
1375
+ const webkitVideo = media;
1376
+ if (isFunction(webkitVideo.webkitSetPresentationMode)) {
1377
+ webkitVideo.webkitSetPresentationMode("fullscreen");
1378
+ return;
1379
+ }
1380
+ const video = media;
1381
+ if (isFunction(video.requestFullscreen)) return video.requestFullscreen();
1382
+ }
1383
+ async function exitFullscreen(media) {
1384
+ const doc = document;
1385
+ const webkitVideo = media;
1386
+ if (webkitVideo.webkitPresentationMode === "fullscreen" && isFunction(webkitVideo.webkitSetPresentationMode)) {
1387
+ webkitVideo.webkitSetPresentationMode("inline");
1388
+ return;
1389
+ }
1390
+ if (isFunction(doc.exitFullscreen)) return doc.exitFullscreen();
1391
+ if (isFunction(doc.webkitExitFullscreen)) return doc.webkitExitFullscreen();
1392
+ const video = media;
1393
+ if (isFunction(video.exitFullscreen)) return video.exitFullscreen();
1394
+ }
1395
+
1396
+ //#endregion
1397
+ //#region ../core/dist/dev/dom/presentation/pip.js
1449
1398
  function isPictureInPictureEnabled() {
1450
1399
  if (document.pictureInPictureEnabled) {
1451
1400
  const isSafari = /.*Version\/.*Safari\/.*/.test(navigator.userAgent);
@@ -1454,38 +1403,29 @@ function isPictureInPictureEnabled() {
1454
1403
  }
1455
1404
  return isFunction(document.createElement("video").webkitSetPresentationMode);
1456
1405
  }
1457
- function isPictureInPictureElement(media) {
1458
- const target = resolveMediaTarget(media);
1459
- if (document.pictureInPictureElement === target) return true;
1460
- if (target instanceof HTMLVideoElement) return target.webkitPresentationMode === "picture-in-picture";
1461
- return false;
1406
+ function isPictureInPicture(media) {
1407
+ if (media.webkitPresentationMode === "picture-in-picture") return true;
1408
+ if (document.pictureInPictureElement === media) return true;
1409
+ return media.isPictureInPicture ?? false;
1462
1410
  }
1463
1411
  async function requestPictureInPicture(media) {
1464
- const target = resolveMediaTarget(media);
1465
- if (!(target instanceof HTMLVideoElement)) throw new DOMException("Picture-in-Picture not supported", "NotSupportedError");
1466
- const video = target;
1467
- if (isFunction(video.webkitSetPresentationMode)) {
1468
- video.webkitSetPresentationMode("picture-in-picture");
1469
- return;
1470
- }
1471
- if (isFunction(video.requestPictureInPicture)) {
1472
- await video.requestPictureInPicture();
1412
+ const webkitVideo = media;
1413
+ if (isFunction(webkitVideo.webkitSetPresentationMode)) {
1414
+ webkitVideo.webkitSetPresentationMode("picture-in-picture");
1473
1415
  return;
1474
1416
  }
1475
- throw new DOMException("Picture-in-Picture not supported", "NotSupportedError");
1417
+ const video = media;
1418
+ if (isFunction(video.requestPictureInPicture)) return video.requestPictureInPicture();
1476
1419
  }
1477
1420
  async function exitPictureInPicture(media) {
1478
- if (media) {
1479
- const target = resolveMediaTarget(media);
1480
- if (target instanceof HTMLVideoElement) {
1481
- const video = target;
1482
- if (isFunction(video.webkitSetPresentationMode) && video.webkitPresentationMode === "picture-in-picture") {
1483
- video.webkitSetPresentationMode("inline");
1484
- return;
1485
- }
1486
- }
1421
+ const webkitVideo = media;
1422
+ if (webkitVideo.webkitPresentationMode === "picture-in-picture" && isFunction(webkitVideo.webkitSetPresentationMode)) {
1423
+ webkitVideo.webkitSetPresentationMode("inline");
1424
+ return;
1487
1425
  }
1488
1426
  if (isFunction(document.exitPictureInPicture)) return document.exitPictureInPicture();
1427
+ const video = media;
1428
+ if (isFunction(video.exitPictureInPicture)) return video.exitPictureInPicture();
1489
1429
  }
1490
1430
 
1491
1431
  //#endregion
@@ -1497,7 +1437,7 @@ const fullscreenFeature = definePlayerFeature({
1497
1437
  fullscreenAvailability: "unavailable",
1498
1438
  async requestFullscreen() {
1499
1439
  const { media, container } = target();
1500
- if (isPictureInPictureElement(media)) await exitPictureInPicture(media);
1440
+ if (isPictureInPicture(media)) await exitPictureInPicture(media);
1501
1441
  return requestFullscreen(container, media);
1502
1442
  },
1503
1443
  async exitFullscreen() {
@@ -1506,15 +1446,15 @@ const fullscreenFeature = definePlayerFeature({
1506
1446
  },
1507
1447
  async toggleFullscreen() {
1508
1448
  const { media, container } = target();
1509
- if (isFullscreenElement(container, media)) return exitFullscreen(media);
1510
- if (isPictureInPictureElement(media)) await exitPictureInPicture(media);
1449
+ if (isFullscreen(container, media)) return exitFullscreen(media);
1450
+ if (isPictureInPicture(media)) await exitPictureInPicture(media);
1511
1451
  return requestFullscreen(container, media);
1512
1452
  }
1513
1453
  }),
1514
1454
  attach({ target, signal, set }) {
1515
1455
  const { media, container } = target;
1516
1456
  set({ fullscreenAvailability: isFullscreenEnabled() ? "available" : "unsupported" });
1517
- const sync = () => set({ fullscreen: isFullscreenElement(container, media) });
1457
+ const sync = () => set({ fullscreen: isFullscreen(container, media) });
1518
1458
  sync();
1519
1459
  listen(document, "fullscreenchange", sync, { signal });
1520
1460
  listen(document, "webkitfullscreenchange", sync, { signal });
@@ -1522,6 +1462,49 @@ const fullscreenFeature = definePlayerFeature({
1522
1462
  }
1523
1463
  });
1524
1464
 
1465
+ //#endregion
1466
+ //#region ../core/dist/dev/dom/store/features/live.js
1467
+ /**
1468
+ * Player feature exposing `liveEdgeStart` and `targetLiveWindow` in store
1469
+ * state for media that implements `MediaLiveCapability` (currently
1470
+ * `HlsMedia` and its delegates).
1471
+ *
1472
+ * - `liveEdgeStart` — presentation time marking the start of the Live Edge
1473
+ * Window. Playing at the live edge when `currentTime >= liveEdgeStart`.
1474
+ * `NaN` when the stream isn't live or the value is unknown.
1475
+ * - `targetLiveWindow` — `0` for standard latency live, `Infinity` for DVR,
1476
+ * `NaN` for on-demand or unknown.
1477
+ *
1478
+ * Included by the {@link liveVideoFeatures} and {@link liveAudioFeatures}
1479
+ * presets; apps can also compose it into a custom preset.
1480
+ *
1481
+ * @see https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md
1482
+ */
1483
+ const liveFeature = definePlayerFeature({
1484
+ name: "live",
1485
+ state: () => ({
1486
+ liveEdgeStart: NaN,
1487
+ targetLiveWindow: NaN
1488
+ }),
1489
+ attach({ target, signal, set }) {
1490
+ const { media } = target;
1491
+ if (!isMediaLiveCapable(media)) return;
1492
+ const sync = () => set({
1493
+ liveEdgeStart: media.liveEdgeStart,
1494
+ targetLiveWindow: media.targetLiveWindow
1495
+ });
1496
+ sync();
1497
+ listen(media, "targetlivewindowchange", sync, { signal });
1498
+ listen(media, "streamtypechange", sync, { signal });
1499
+ listen(media, "loadedmetadata", sync, { signal });
1500
+ listen(media, "canplay", sync, { signal });
1501
+ listen(media, "progress", sync, { signal });
1502
+ listen(media, "durationchange", sync, { signal });
1503
+ listen(media, "timeupdate", sync, { signal });
1504
+ listen(media, "emptied", sync, { signal });
1505
+ }
1506
+ });
1507
+
1525
1508
  //#endregion
1526
1509
  //#region ../core/dist/dev/dom/store/features/pip.js
1527
1510
  const pipFeature = definePlayerFeature({
@@ -1531,7 +1514,7 @@ const pipFeature = definePlayerFeature({
1531
1514
  pipAvailability: "unavailable",
1532
1515
  async requestPictureInPicture() {
1533
1516
  const { media, container } = target();
1534
- if (isFullscreenElement(container, media)) await exitFullscreen();
1517
+ if (isFullscreen(container, media)) await exitFullscreen(media);
1535
1518
  return requestPictureInPicture(media);
1536
1519
  },
1537
1520
  async exitPictureInPicture() {
@@ -1540,15 +1523,15 @@ const pipFeature = definePlayerFeature({
1540
1523
  },
1541
1524
  async togglePictureInPicture() {
1542
1525
  const { media, container } = target();
1543
- if (isPictureInPictureElement(media)) return exitPictureInPicture(media);
1544
- if (isFullscreenElement(container, media)) await exitFullscreen();
1526
+ if (isPictureInPicture(media)) return exitPictureInPicture(media);
1527
+ if (isFullscreen(container, media)) await exitFullscreen(media);
1545
1528
  return requestPictureInPicture(media);
1546
1529
  }
1547
1530
  }),
1548
1531
  attach({ target, signal, set }) {
1549
1532
  const { media } = target;
1550
1533
  set({ pipAvailability: isPictureInPictureEnabled() ? "available" : "unsupported" });
1551
- const sync = () => set({ pip: isPictureInPictureElement(media) });
1534
+ const sync = () => set({ pip: isPictureInPicture(media) });
1552
1535
  sync();
1553
1536
  listen(media, "enterpictureinpicture", sync, { signal });
1554
1537
  listen(media, "leavepictureinpicture", sync, { signal });
@@ -1634,6 +1617,39 @@ const playbackRateFeature = definePlayerFeature({
1634
1617
  }
1635
1618
  });
1636
1619
 
1620
+ //#endregion
1621
+ //#region ../core/dist/dev/dom/store/features/remote-playback.js
1622
+ const remotePlaybackFeature = definePlayerFeature({
1623
+ name: "remotePlayback",
1624
+ state: ({ target }) => ({
1625
+ remotePlaybackState: "disconnected",
1626
+ remotePlaybackAvailability: "unavailable",
1627
+ async toggleRemotePlayback() {
1628
+ const { media, container } = target();
1629
+ if (isRemotePlaybackConnected(media)) return requestRemotePlayback(media);
1630
+ if (isFullscreen(container, media)) await exitFullscreen(media);
1631
+ return requestRemotePlayback(media);
1632
+ }
1633
+ }),
1634
+ attach({ target, signal, set }) {
1635
+ const { media } = target;
1636
+ if (!isMediaRemotePlaybackCapable(media)) return;
1637
+ const syncState = () => set({ remotePlaybackState: media.remote.state });
1638
+ syncState();
1639
+ listen(media.remote, "connect", syncState, { signal });
1640
+ listen(media.remote, "connecting", syncState, { signal });
1641
+ listen(media.remote, "disconnect", syncState, { signal });
1642
+ media.remote.watchAvailability((available) => {
1643
+ set({ remotePlaybackAvailability: available ? "available" : "unavailable" });
1644
+ }).catch(() => {
1645
+ set({ remotePlaybackAvailability: "unsupported" });
1646
+ });
1647
+ signal.addEventListener("abort", () => {
1648
+ media.remote?.cancelWatchAvailability().catch(() => {});
1649
+ });
1650
+ }
1651
+ });
1652
+
1637
1653
  //#endregion
1638
1654
  //#region ../core/dist/dev/dom/store/features/source.js
1639
1655
  const sourceFeature = definePlayerFeature({
@@ -1767,22 +1783,31 @@ const timeFeature = definePlayerFeature({
1767
1783
  attach({ target, signal, set, get }) {
1768
1784
  const { media } = target;
1769
1785
  if (!isMediaSeekCapable(media)) return;
1786
+ const resolveDuration = () => {
1787
+ const { duration } = media;
1788
+ if (duration === Number.POSITIVE_INFINITY && isMediaBufferCapable(media)) {
1789
+ const { seekable } = media;
1790
+ return seekable.length > 0 ? seekable.end(seekable.length - 1) : 0;
1791
+ }
1792
+ return Number.isFinite(duration) ? duration : 0;
1793
+ };
1770
1794
  const sync = () => set({
1771
1795
  currentTime: media.currentTime,
1772
- duration: Number.isFinite(media.duration) ? media.duration : 0,
1796
+ duration: resolveDuration(),
1773
1797
  seeking: media.seeking
1774
1798
  });
1775
- const onTimeUpdate = () => {
1799
+ const syncUnlessSeeking = () => {
1776
1800
  if (get().seeking) return;
1777
1801
  sync();
1778
1802
  };
1779
1803
  sync();
1780
- listen(media, "timeupdate", onTimeUpdate, { signal });
1804
+ listen(media, "timeupdate", syncUnlessSeeking, { signal });
1781
1805
  listen(media, "durationchange", sync, { signal });
1782
1806
  listen(media, "seeking", sync, { signal });
1783
1807
  listen(media, "seeked", sync, { signal });
1784
1808
  listen(media, "loadedmetadata", sync, { signal });
1785
1809
  listen(media, "emptied", sync, { signal });
1810
+ listen(media, "progress", syncUnlessSeeking, { signal });
1786
1811
  }
1787
1812
  });
1788
1813
 
@@ -1848,7 +1873,7 @@ const videoFeatures = [
1848
1873
  bufferFeature,
1849
1874
  fullscreenFeature,
1850
1875
  pipFeature,
1851
- castFeature,
1876
+ remotePlaybackFeature,
1852
1877
  controlsFeature,
1853
1878
  textTrackFeature,
1854
1879
  errorFeature
@@ -2242,5 +2267,5 @@ function createPlayer(config) {
2242
2267
  }
2243
2268
 
2244
2269
  //#endregion
2245
- export { ContextProvider as A, AbortControllerRegistry as C, isUndefined as D, isNumber as E, ReactiveElement as M, isEditableTarget as N, MediaContainerElement as O, isInteractiveActivation as P, throwNoTargetError as S, isNull as T, getGestureCoordinator as _, backgroundFeatures as a, createState as b, timeFeature as c, playbackRateFeature as d, playbackFeature as f, controlsFeature as g, errorFeature as h, audioFeatures as i, ContextConsumer as j, MediaElement as k, textTrackFeature as l, fullscreenFeature as m, PlayerController as n, videoFeatures as o, pipFeature as p, SnapshotController as r, volumeFeature as s, createPlayer as t, sourceFeature as u, castFeature as v, isFunction as w, noop as x, bufferFeature as y };
2246
- //# sourceMappingURL=create-player-BKLw7l1a.js.map
2270
+ export { MediaElement as A, isMediaStreamTypeCapable as C, throwNoTargetError as D, noop as E, isInteractiveActivation as F, ContextConsumer as M, ReactiveElement as N, AbortControllerRegistry as O, isEditableTarget as P, isMediaSeekCapable as S, createState as T, errorFeature as _, backgroundFeatures as a, bufferFeature as b, timeFeature as c, remotePlaybackFeature as d, playbackRateFeature as f, fullscreenFeature as g, liveFeature as h, audioFeatures as i, ContextProvider as j, MediaContainerElement as k, textTrackFeature as l, pipFeature as m, PlayerController as n, videoFeatures as o, playbackFeature as p, SnapshotController as r, volumeFeature as s, createPlayer as t, sourceFeature as u, controlsFeature as v, definePlayerFeature as w, isMediaBufferCapable as x, getGestureCoordinator as y };
2271
+ //# sourceMappingURL=create-player-B-gVAMdr.js.map