@videojs/html 10.0.0-beta.21 → 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 (498) 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 +5 -7
  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-CM_NP-ej.js → compounds-BHHGcL_P.js} +148 -63
  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-Bi6WUwDZ.js → create-player-B-gVAMdr.js} +183 -94
  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/default-Djy9PEXm.js +2 -0
  29. package/cdn/default-Djy9PEXm.js.map +1 -0
  30. package/cdn/{default-XHZAb7gP.js → default-YzaLyoYg.js} +3 -1
  31. package/cdn/default-YzaLyoYg.js.map +1 -0
  32. package/cdn/hls-DEP0AzDp.js +41 -0
  33. package/cdn/hls-DEP0AzDp.js.map +1 -0
  34. package/cdn/{hls-BotloEPN.js → hls-DR-Xxpxv.js} +163 -23
  35. package/cdn/hls-DR-Xxpxv.js.map +1 -0
  36. package/cdn/hotkey-element-BvI78DTc.js +2 -0
  37. package/cdn/{hotkey-element-DRGCbVj9.js.map → hotkey-element-BvI78DTc.js.map} +1 -1
  38. package/cdn/{hotkey-element-317kwVH5.js → hotkey-element-oEdY8YLl.js} +24 -18
  39. package/cdn/{hotkey-element-317kwVH5.js.map → hotkey-element-oEdY8YLl.js.map} +1 -1
  40. package/cdn/live-video-minimal.dev.d.ts +1 -0
  41. package/cdn/live-video-minimal.dev.js +115 -0
  42. package/cdn/live-video-minimal.dev.js.map +1 -0
  43. package/cdn/live-video-minimal.js +2 -0
  44. package/cdn/live-video-minimal.js.map +1 -0
  45. package/cdn/live-video.dev.d.ts +1 -0
  46. package/cdn/live-video.dev.js +130 -0
  47. package/cdn/live-video.dev.js.map +1 -0
  48. package/cdn/live-video.js +2 -0
  49. package/cdn/live-video.js.map +1 -0
  50. package/cdn/media/dash-video.dev.js +8 -7
  51. package/cdn/media/dash-video.dev.js.map +1 -1
  52. package/cdn/media/dash-video.js +6 -6
  53. package/cdn/media/dash-video.js.map +1 -1
  54. package/cdn/media/hls-video.dev.js +4 -4
  55. package/cdn/media/hls-video.js +1 -1
  56. package/cdn/media/hls-video.js.map +1 -1
  57. package/cdn/media/mux-audio.dev.js +8 -6
  58. package/cdn/media/mux-audio.dev.js.map +1 -1
  59. package/cdn/media/mux-audio.js +1 -1
  60. package/cdn/media/mux-audio.js.map +1 -1
  61. package/cdn/media/mux-video.dev.js +8 -6
  62. package/cdn/media/mux-video.dev.js.map +1 -1
  63. package/cdn/media/mux-video.js +1 -1
  64. package/cdn/media/mux-video.js.map +1 -1
  65. package/cdn/media/native-hls-video.dev.js +4 -4
  66. package/cdn/media/native-hls-video.js +1 -1
  67. package/cdn/media/native-hls-video.js.map +1 -1
  68. package/cdn/media/simple-hls-video.dev.js +11 -5
  69. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  70. package/cdn/media/simple-hls-video.js +6 -6
  71. package/cdn/media/simple-hls-video.js.map +1 -1
  72. package/cdn/media-attach-mixin-DuquRhAk.js +2 -0
  73. package/cdn/{media-attach-mixin-C2wz0Qbd.js.map → media-attach-mixin-DuquRhAk.js.map} +1 -1
  74. package/cdn/{media-attach-mixin-CYoNe7Sh.js → media-attach-mixin-pV8deGiO.js} +2 -2
  75. package/cdn/{media-attach-mixin-CYoNe7Sh.js.map → media-attach-mixin-pV8deGiO.js.map} +1 -1
  76. package/cdn/{minimal-BnDnlwbj.js → minimal-CciG7Fsu.js} +3 -1
  77. package/cdn/minimal-CciG7Fsu.js.map +1 -0
  78. package/cdn/minimal-DSLrhnDm.js +2 -0
  79. package/cdn/minimal-DSLrhnDm.js.map +1 -0
  80. package/cdn/{minimal-ui-cy2oEbFm.js → minimal-ui-Bx-_SggT.js} +6 -5
  81. package/cdn/minimal-ui-Bx-_SggT.js.map +1 -0
  82. package/cdn/minimal-ui-CFO4ssL8.js +2 -0
  83. package/cdn/{minimal-ui-CroDYUGf.js.map → minimal-ui-CFO4ssL8.js.map} +1 -1
  84. package/cdn/minimal-ui-D6Pvbx1R.js +2 -0
  85. package/cdn/minimal-ui-D6Pvbx1R.js.map +1 -0
  86. package/cdn/{minimal-ui-DhxN21v5.js → minimal-ui-Dl-8ZL53.js} +5 -5
  87. package/cdn/{minimal-ui-DhxN21v5.js.map → minimal-ui-Dl-8ZL53.js.map} +1 -1
  88. package/cdn/{mux-B5K6kOzg.js → mux-D5M5HL6A.js} +753 -7
  89. package/cdn/mux-D5M5HL6A.js.map +1 -0
  90. package/cdn/mux-DH3Kxyot.js +27 -0
  91. package/cdn/mux-DH3Kxyot.js.map +1 -0
  92. package/cdn/native-hls-DN_aWn2z.js +2 -0
  93. package/cdn/native-hls-DN_aWn2z.js.map +1 -0
  94. package/cdn/native-hls-ak4v9DN6.js +371 -0
  95. package/cdn/native-hls-ak4v9DN6.js.map +1 -0
  96. package/cdn/player-BKKCelEs.js +2 -0
  97. package/cdn/player-BKKCelEs.js.map +1 -0
  98. package/cdn/{player-CatrGW7l.js → player-C_6YjMl7.js} +93 -8
  99. package/cdn/player-C_6YjMl7.js.map +1 -0
  100. package/cdn/player-CtegNw3g.js +2 -0
  101. package/cdn/{player-BK35-ndY.js.map → player-CtegNw3g.js.map} +1 -1
  102. package/cdn/{player-xstFHOgW.js → player-D468sScc.js} +3 -3
  103. package/cdn/{player-xstFHOgW.js.map → player-D468sScc.js.map} +1 -1
  104. package/cdn/{context-0rI_P6jf.js → predicate-BOcV_HDG.js} +23 -2
  105. package/cdn/predicate-BOcV_HDG.js.map +1 -0
  106. package/cdn/{context-CEFisYD0.js → predicate-Cad5WV4q.js} +2 -2
  107. package/cdn/predicate-Cad5WV4q.js.map +1 -0
  108. package/cdn/{shallow-equal-xh6Wj-hj.js → shallow-equal-D-fthE54.js} +1 -1
  109. package/cdn/{shallow-equal-xh6Wj-hj.js.map → shallow-equal-D-fthE54.js.map} +1 -1
  110. package/cdn/{shallow-equal-Daj3-_LC.js → shallow-equal-DSpD9PMp.js} +1 -1
  111. package/cdn/{shallow-equal-Daj3-_LC.js.map → shallow-equal-DSpD9PMp.js.map} +1 -1
  112. package/cdn/{skin-element-CDUkmCtS.js → skin-element-BcbrkgGs.js} +2 -2
  113. package/cdn/{skin-element-CDUkmCtS.js.map → skin-element-BcbrkgGs.js.map} +1 -1
  114. package/cdn/{skin-element-BGP23sop.js → skin-element-DesLkJKs.js} +2 -2
  115. package/cdn/{skin-element-BGP23sop.js.map → skin-element-DesLkJKs.js.map} +1 -1
  116. package/cdn/types-B_4Es-UH.js +20 -0
  117. package/cdn/types-B_4Es-UH.js.map +1 -0
  118. package/cdn/types-DRezN4yy.js +2 -0
  119. package/cdn/types-DRezN4yy.js.map +1 -0
  120. package/cdn/{ui-Em9rF9Ah.js → ui-CzxKbsyb.js} +7 -6
  121. package/cdn/ui-CzxKbsyb.js.map +1 -0
  122. package/cdn/ui-D6DV-Emw.js +2 -0
  123. package/cdn/{ui-QHwo6iyo.js.map → ui-D6DV-Emw.js.map} +1 -1
  124. package/cdn/ui-Dw-n2AMs.js +2 -0
  125. package/cdn/ui-Dw-n2AMs.js.map +1 -0
  126. package/cdn/{ui-AFHQtrqa.js → ui-S_eLj4ur.js} +6 -6
  127. package/cdn/{ui-AFHQtrqa.js.map → ui-S_eLj4ur.js.map} +1 -1
  128. package/cdn/{video-host-ycP7ckxU.js → video-host-BR_2vUZH.js} +82 -39
  129. package/cdn/video-host-BR_2vUZH.js.map +1 -0
  130. package/cdn/video-host-Bkh2OyyP.js +47 -0
  131. package/cdn/video-host-Bkh2OyyP.js.map +1 -0
  132. package/cdn/video-minimal-ui.dev.js +1 -4
  133. package/cdn/video-minimal-ui.js +1 -1
  134. package/cdn/video-minimal.dev.js +11 -7
  135. package/cdn/video-minimal.dev.js.map +1 -1
  136. package/cdn/video-minimal.js +1 -1
  137. package/cdn/video-minimal.js.map +1 -1
  138. package/cdn/video-ui.dev.js +1 -4
  139. package/cdn/video-ui.js +1 -1
  140. package/cdn/video.dev.js +11 -7
  141. package/cdn/video.dev.js.map +1 -1
  142. package/cdn/video.js +1 -1
  143. package/cdn/video.js.map +1 -1
  144. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  145. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  146. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  147. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  148. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  149. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  150. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  151. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  152. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  153. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  154. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  155. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  156. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  157. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  158. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  159. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  160. package/dist/default/define/audio/minimal-skin.css +2 -1
  161. package/dist/default/define/audio/skin.css +2 -1
  162. package/dist/default/define/background/skin.js +1 -1
  163. package/dist/default/define/live-audio/minimal-skin.css +779 -0
  164. package/dist/default/define/live-audio/minimal-skin.js +26 -0
  165. package/dist/default/define/live-audio/minimal-skin.js.map +1 -0
  166. package/dist/default/define/live-audio/minimal-skin.tailwind.js +29 -0
  167. package/dist/default/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  168. package/dist/default/define/live-audio/skin.css +795 -0
  169. package/dist/default/define/live-audio/skin.js +26 -0
  170. package/dist/default/define/live-audio/skin.js.map +1 -0
  171. package/dist/default/define/live-audio/skin.tailwind.js +28 -0
  172. package/dist/default/define/live-audio/skin.tailwind.js.map +1 -0
  173. package/dist/default/define/live-video/minimal-skin.css +1170 -0
  174. package/dist/default/define/live-video/minimal-skin.js +26 -0
  175. package/dist/default/define/live-video/minimal-skin.js.map +1 -0
  176. package/dist/default/define/live-video/minimal-skin.tailwind.js +30 -0
  177. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -0
  178. package/dist/default/define/live-video/skin.css +1160 -0
  179. package/dist/default/define/live-video/skin.js +26 -0
  180. package/dist/default/define/live-video/skin.js.map +1 -0
  181. package/dist/default/define/live-video/skin.tailwind.js +29 -0
  182. package/dist/default/define/live-video/skin.tailwind.js.map +1 -0
  183. package/dist/default/define/skin-element.js +1 -1
  184. package/dist/default/define/ui/cast-button.js +7 -0
  185. package/dist/default/define/ui/cast-button.js.map +1 -0
  186. package/dist/default/define/video/minimal-skin.css +8 -1
  187. package/dist/default/define/video/minimal-skin.js +1 -1
  188. package/dist/default/define/video/minimal-skin.js.map +1 -1
  189. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  190. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  191. package/dist/default/define/video/minimal-ui.js +2 -0
  192. package/dist/default/define/video/minimal-ui.js.map +1 -1
  193. package/dist/default/define/video/skin.css +8 -1
  194. package/dist/default/define/video/skin.js +1 -1
  195. package/dist/default/define/video/skin.js.map +1 -1
  196. package/dist/default/define/video/skin.tailwind.js +1 -1
  197. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  198. package/dist/default/define/video/ui.js +2 -0
  199. package/dist/default/define/video/ui.js.map +1 -1
  200. package/dist/default/icons/dist/render/default/index.js +2 -0
  201. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  202. package/dist/default/icons/dist/render/minimal/index.js +2 -0
  203. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  204. package/dist/default/index.js +3 -1
  205. package/dist/default/media/mux-audio/index.js +4 -1
  206. package/dist/default/media/mux-audio/index.js.map +1 -1
  207. package/dist/default/media/mux-video/index.js +4 -1
  208. package/dist/default/media/mux-video/index.js.map +1 -1
  209. package/dist/default/presets/live-audio.js +6 -0
  210. package/dist/default/presets/live-video.js +6 -0
  211. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  212. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  213. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  214. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  215. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  216. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  217. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  218. package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  219. package/dist/default/ui/alert-dialog/alert-dialog-element.js +12 -6
  220. package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  221. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  222. package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  223. package/dist/default/ui/cast-button/cast-button-element.js +24 -0
  224. package/dist/default/ui/cast-button/cast-button-element.js.map +1 -0
  225. package/dist/default/ui/error-dialog/error-dialog-element.js +4 -1
  226. package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -1
  227. package/dist/default/ui/gesture/gesture-element.js +10 -7
  228. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  229. package/dist/default/ui/hotkey/hotkey-element.js +10 -7
  230. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  231. package/dist/default/ui/media-button-element.js +4 -2
  232. package/dist/default/ui/media-button-element.js.map +1 -1
  233. package/dist/default/ui/popover/popover-element.js +14 -7
  234. package/dist/default/ui/popover/popover-element.js.map +1 -1
  235. package/dist/default/ui/slider/slider-element.js +8 -4
  236. package/dist/default/ui/slider/slider-element.js.map +1 -1
  237. package/dist/default/ui/slider/slider-preview-element.js +9 -6
  238. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  239. package/dist/default/ui/slider/slider-value-element.js +5 -4
  240. package/dist/default/ui/slider/slider-value-element.js.map +1 -1
  241. package/dist/default/ui/thumbnail/thumbnail-element.js +10 -5
  242. package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
  243. package/dist/default/ui/time/time-element.js +8 -4
  244. package/dist/default/ui/time/time-element.js.map +1 -1
  245. package/dist/default/ui/time-slider/time-slider-element.js +12 -6
  246. package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
  247. package/dist/default/ui/tooltip/tooltip-element.js +16 -8
  248. package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
  249. package/dist/default/ui/tooltip/tooltip-group-element.js +7 -5
  250. package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
  251. package/dist/default/ui/volume-slider/volume-slider-element.js +10 -5
  252. package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
  253. package/dist/dev/_virtual/_rolldown/runtime.js +27 -0
  254. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  255. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  256. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  257. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  258. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +6 -0
  259. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -0
  260. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +6 -0
  261. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -0
  262. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +6 -0
  263. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -0
  264. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +6 -0
  265. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -0
  266. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  267. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  268. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  269. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  270. package/dist/dev/define/audio/minimal-skin.css +2 -1
  271. package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
  272. package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
  273. package/dist/dev/define/audio/player.d.ts +2 -2
  274. package/dist/dev/define/audio/skin.css +2 -1
  275. package/dist/dev/define/audio/skin.d.ts +2 -2
  276. package/dist/dev/define/audio/skin.d.ts.map +1 -1
  277. package/dist/dev/define/background/player.d.ts +2 -2
  278. package/dist/dev/define/background/skin.d.ts.map +1 -1
  279. package/dist/dev/define/background/skin.js +1 -1
  280. package/dist/dev/define/live-audio/minimal-skin.css +779 -0
  281. package/dist/dev/define/live-audio/minimal-skin.d.ts +17 -0
  282. package/dist/dev/define/live-audio/minimal-skin.d.ts.map +1 -0
  283. package/dist/dev/define/live-audio/minimal-skin.js +76 -0
  284. package/dist/dev/define/live-audio/minimal-skin.js.map +1 -0
  285. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts +14 -0
  286. package/dist/dev/define/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  287. package/dist/dev/define/live-audio/minimal-skin.tailwind.js +79 -0
  288. package/dist/dev/define/live-audio/minimal-skin.tailwind.js.map +1 -0
  289. package/dist/dev/define/live-audio/skin.css +795 -0
  290. package/dist/dev/define/live-audio/skin.d.ts +17 -0
  291. package/dist/dev/define/live-audio/skin.d.ts.map +1 -0
  292. package/dist/dev/define/live-audio/skin.js +83 -0
  293. package/dist/dev/define/live-audio/skin.js.map +1 -0
  294. package/dist/dev/define/live-audio/skin.tailwind.d.ts +14 -0
  295. package/dist/dev/define/live-audio/skin.tailwind.d.ts.map +1 -0
  296. package/dist/dev/define/live-audio/skin.tailwind.js +78 -0
  297. package/dist/dev/define/live-audio/skin.tailwind.js.map +1 -0
  298. package/dist/dev/define/live-video/minimal-skin.css +1170 -0
  299. package/dist/dev/define/live-video/minimal-skin.d.ts +17 -0
  300. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -0
  301. package/dist/dev/define/live-video/minimal-skin.js +112 -0
  302. package/dist/dev/define/live-video/minimal-skin.js.map +1 -0
  303. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts +14 -0
  304. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  305. package/dist/dev/define/live-video/minimal-skin.tailwind.js +110 -0
  306. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -0
  307. package/dist/dev/define/live-video/skin.css +1160 -0
  308. package/dist/dev/define/live-video/skin.d.ts +17 -0
  309. package/dist/dev/define/live-video/skin.d.ts.map +1 -0
  310. package/dist/dev/define/live-video/skin.js +127 -0
  311. package/dist/dev/define/live-video/skin.js.map +1 -0
  312. package/dist/dev/define/live-video/skin.tailwind.d.ts +14 -0
  313. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -0
  314. package/dist/dev/define/live-video/skin.tailwind.js +111 -0
  315. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -0
  316. package/dist/dev/define/skin-element.d.ts +1 -1
  317. package/dist/dev/define/skin-element.d.ts.map +1 -1
  318. package/dist/dev/define/skin-element.js +1 -1
  319. package/dist/dev/define/ui/cast-button.d.ts +9 -0
  320. package/dist/dev/define/ui/cast-button.d.ts.map +1 -0
  321. package/dist/dev/define/ui/cast-button.js +7 -0
  322. package/dist/dev/define/ui/cast-button.js.map +1 -0
  323. package/dist/dev/define/video/minimal-skin.css +8 -1
  324. package/dist/dev/define/video/minimal-skin.d.ts +2 -2
  325. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  326. package/dist/dev/define/video/minimal-skin.js +6 -0
  327. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  328. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  329. package/dist/dev/define/video/minimal-skin.tailwind.js +5 -0
  330. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  331. package/dist/dev/define/video/minimal-ui.js +2 -0
  332. package/dist/dev/define/video/minimal-ui.js.map +1 -1
  333. package/dist/dev/define/video/player.d.ts +2 -2
  334. package/dist/dev/define/video/skin.css +8 -1
  335. package/dist/dev/define/video/skin.d.ts +2 -2
  336. package/dist/dev/define/video/skin.d.ts.map +1 -1
  337. package/dist/dev/define/video/skin.js +6 -0
  338. package/dist/dev/define/video/skin.js.map +1 -1
  339. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  340. package/dist/dev/define/video/skin.tailwind.js +5 -0
  341. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  342. package/dist/dev/define/video/ui.js +2 -0
  343. package/dist/dev/define/video/ui.js.map +1 -1
  344. package/dist/dev/icons/dist/render/default/index.js +2 -0
  345. package/dist/dev/icons/dist/render/default/index.js.map +1 -1
  346. package/dist/dev/icons/dist/render/minimal/index.js +2 -0
  347. package/dist/dev/icons/dist/render/minimal/index.js.map +1 -1
  348. package/dist/dev/index.d.ts +13 -3
  349. package/dist/dev/index.d.ts.map +1 -0
  350. package/dist/dev/index.js +3 -1
  351. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  352. package/dist/dev/media/container-element.d.ts +2 -2
  353. package/dist/dev/media/dash-video/index.d.ts +2 -2
  354. package/dist/dev/media/hls-video/index.d.ts +2 -2
  355. package/dist/dev/media/mux-audio/index.d.ts +2 -2
  356. package/dist/dev/media/mux-audio/index.js +4 -1
  357. package/dist/dev/media/mux-audio/index.js.map +1 -1
  358. package/dist/dev/media/mux-video/index.d.ts +2 -2
  359. package/dist/dev/media/mux-video/index.js +4 -1
  360. package/dist/dev/media/mux-video/index.js.map +1 -1
  361. package/dist/dev/media/native-hls-video/index.d.ts +2 -2
  362. package/dist/dev/media/simple-hls-video/index.d.ts +2 -2
  363. package/dist/dev/player/context.d.ts +1 -1
  364. package/dist/dev/player/player-controller.d.ts +1 -1
  365. package/dist/dev/player/player-controller.d.ts.map +1 -1
  366. package/dist/dev/presets/live-audio.d.ts +6 -0
  367. package/dist/dev/presets/live-audio.js +6 -0
  368. package/dist/dev/presets/live-video.d.ts +6 -0
  369. package/dist/dev/presets/live-video.js +6 -0
  370. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  371. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  372. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  373. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  374. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +5 -0
  375. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  376. package/dist/dev/store/container-mixin.d.ts +1 -1
  377. package/dist/dev/store/provider-mixin.d.ts +1 -1
  378. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.d.ts.map +1 -1
  379. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +7 -5
  380. package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
  381. package/dist/dev/ui/alert-dialog/alert-dialog-description-element.d.ts +2 -2
  382. package/dist/dev/ui/alert-dialog/alert-dialog-element.d.ts.map +1 -1
  383. package/dist/dev/ui/alert-dialog/alert-dialog-element.js +12 -6
  384. package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
  385. package/dist/dev/ui/alert-dialog/alert-dialog-title-element.d.ts +2 -2
  386. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.d.ts.map +1 -1
  387. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +6 -3
  388. package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
  389. package/dist/dev/ui/captions-button/captions-button-element.d.ts +4 -4
  390. package/dist/dev/ui/captions-button/captions-button-element.d.ts.map +1 -1
  391. package/dist/dev/ui/cast-button/cast-button-element.d.ts +19 -0
  392. package/dist/dev/ui/cast-button/cast-button-element.d.ts.map +1 -0
  393. package/dist/dev/ui/cast-button/cast-button-element.js +24 -0
  394. package/dist/dev/ui/cast-button/cast-button-element.js.map +1 -0
  395. package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -1
  396. package/dist/dev/ui/error-dialog/error-dialog-element.js +4 -1
  397. package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -1
  398. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +4 -4
  399. package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
  400. package/dist/dev/ui/gesture/gesture-element.js +10 -7
  401. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  402. package/dist/dev/ui/hotkey/aria-key-shortcuts-controller.d.ts.map +1 -1
  403. package/dist/dev/ui/hotkey/hotkey-element.js +10 -7
  404. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  405. package/dist/dev/ui/media-button-element.d.ts +1 -1
  406. package/dist/dev/ui/media-button-element.js +4 -2
  407. package/dist/dev/ui/media-button-element.js.map +1 -1
  408. package/dist/dev/ui/media-element.d.ts +2 -2
  409. package/dist/dev/ui/mute-button/mute-button-element.d.ts +4 -4
  410. package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
  411. package/dist/dev/ui/pip-button/pip-button-element.d.ts +4 -4
  412. package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
  413. package/dist/dev/ui/play-button/play-button-element.d.ts +5 -5
  414. package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
  415. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +3 -3
  416. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  417. package/dist/dev/ui/popover/popover-element.d.ts +3 -3
  418. package/dist/dev/ui/popover/popover-element.d.ts.map +1 -1
  419. package/dist/dev/ui/popover/popover-element.js +14 -7
  420. package/dist/dev/ui/popover/popover-element.js.map +1 -1
  421. package/dist/dev/ui/poster/poster-element.d.ts +4 -4
  422. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  423. package/dist/dev/ui/seek-button/seek-button-element.d.ts +4 -4
  424. package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
  425. package/dist/dev/ui/slider/slider-element.d.ts +2 -2
  426. package/dist/dev/ui/slider/slider-element.d.ts.map +1 -1
  427. package/dist/dev/ui/slider/slider-element.js +8 -4
  428. package/dist/dev/ui/slider/slider-element.js.map +1 -1
  429. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  430. package/dist/dev/ui/slider/slider-preview-element.js +9 -6
  431. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  432. package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -1
  433. package/dist/dev/ui/slider/slider-value-element.js +5 -4
  434. package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
  435. package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -1
  436. package/dist/dev/ui/thumbnail/thumbnail-element.js +10 -5
  437. package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
  438. package/dist/dev/ui/time/time-element.d.ts +2 -2
  439. package/dist/dev/ui/time/time-element.d.ts.map +1 -1
  440. package/dist/dev/ui/time/time-element.js +8 -4
  441. package/dist/dev/ui/time/time-element.js.map +1 -1
  442. package/dist/dev/ui/time-slider/time-slider-element.d.ts +2 -2
  443. package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -1
  444. package/dist/dev/ui/time-slider/time-slider-element.js +12 -6
  445. package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
  446. package/dist/dev/ui/tooltip/tooltip-element.d.ts +3 -3
  447. package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
  448. package/dist/dev/ui/tooltip/tooltip-element.js +16 -8
  449. package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
  450. package/dist/dev/ui/tooltip/tooltip-group-element.d.ts.map +1 -1
  451. package/dist/dev/ui/tooltip/tooltip-group-element.js +7 -5
  452. package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
  453. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +2 -2
  454. package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
  455. package/dist/dev/ui/volume-slider/volume-slider-element.js +10 -5
  456. package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
  457. package/package.json +31 -10
  458. package/cdn/compounds-CM_NP-ej.js.map +0 -1
  459. package/cdn/compounds-Vvz-YfXP.js +0 -8
  460. package/cdn/compounds-Vvz-YfXP.js.map +0 -1
  461. package/cdn/context-0rI_P6jf.js.map +0 -1
  462. package/cdn/context-CEFisYD0.js.map +0 -1
  463. package/cdn/create-player-Bi6WUwDZ.js.map +0 -1
  464. package/cdn/create-player-CKuX8YI5.js +0 -7
  465. package/cdn/create-player-CKuX8YI5.js.map +0 -1
  466. package/cdn/default-C8KsZ0zK.js +0 -2
  467. package/cdn/default-C8KsZ0zK.js.map +0 -1
  468. package/cdn/default-XHZAb7gP.js.map +0 -1
  469. package/cdn/hls-BotloEPN.js.map +0 -1
  470. package/cdn/hls-CBpGTZXU.js +0 -41
  471. package/cdn/hls-CBpGTZXU.js.map +0 -1
  472. package/cdn/hotkey-element-DRGCbVj9.js +0 -2
  473. package/cdn/media-attach-mixin-C2wz0Qbd.js +0 -2
  474. package/cdn/minimal-BnDnlwbj.js.map +0 -1
  475. package/cdn/minimal-CqBxBoLe.js +0 -2
  476. package/cdn/minimal-CqBxBoLe.js.map +0 -1
  477. package/cdn/minimal-ui-C_G24FML.js +0 -2
  478. package/cdn/minimal-ui-C_G24FML.js.map +0 -1
  479. package/cdn/minimal-ui-CroDYUGf.js +0 -2
  480. package/cdn/minimal-ui-cy2oEbFm.js.map +0 -1
  481. package/cdn/mux-B5K6kOzg.js.map +0 -1
  482. package/cdn/mux-DJhfbcCw.js +0 -25
  483. package/cdn/mux-DJhfbcCw.js.map +0 -1
  484. package/cdn/native-hls-CU2F7L5C.js +0 -123
  485. package/cdn/native-hls-CU2F7L5C.js.map +0 -1
  486. package/cdn/native-hls-DKcYYWRt.js +0 -2
  487. package/cdn/native-hls-DKcYYWRt.js.map +0 -1
  488. package/cdn/player-BK35-ndY.js +0 -2
  489. package/cdn/player-C7ajkBi4.js +0 -2
  490. package/cdn/player-C7ajkBi4.js.map +0 -1
  491. package/cdn/player-CatrGW7l.js.map +0 -1
  492. package/cdn/ui-B7vt9mp-.js +0 -2
  493. package/cdn/ui-B7vt9mp-.js.map +0 -1
  494. package/cdn/ui-Em9rF9Ah.js.map +0 -1
  495. package/cdn/ui-QHwo6iyo.js +0 -2
  496. package/cdn/video-host-CPRJVRi3.js +0 -47
  497. package/cdn/video-host-CPRJVRi3.js.map +0 -1
  498. package/cdn/video-host-ycP7ckxU.js.map +0 -1
@@ -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. */
@@ -31,7 +31,7 @@ function onEvent(target, type, options) {
31
31
 
32
32
  //#endregion
33
33
  //#region ../utils/dist/dom/interactive.js
34
- const INTERACTIVE_SELECTOR = "button,input,select,textarea,a[href],[role=\"slider\"],[role=\"button\"]";
34
+ const INTERACTIVE_SELECTOR = "button,input,select,textarea,a[href],[role=\"slider\"],[role=\"button\"],[data-interactive]";
35
35
  const EDITABLE_SELECTOR = [
36
36
  "textarea",
37
37
  "select",
@@ -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 {
@@ -1061,6 +1042,15 @@ function isMediaErrorCapable(value) {
1061
1042
  function isMediaTextTrackCapable(value) {
1062
1043
  return isObject(value) && "textTracks" in value;
1063
1044
  }
1045
+ function isMediaRemotePlaybackCapable(value) {
1046
+ return isObject(value) && "remote" in value && isObject(value.remote);
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
+ }
1064
1054
  function isQuerySelectorAllCapable(value) {
1065
1055
  return isObject(value) && "querySelectorAll" in value && isFunction(value.querySelectorAll);
1066
1056
  }
@@ -1217,6 +1207,24 @@ function getActiveRegions(bindings, type, pointerType) {
1217
1207
  return regions;
1218
1208
  }
1219
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
+
1220
1228
  //#endregion
1221
1229
  //#region ../core/dist/dev/dom/store/features/controls.js
1222
1230
  const IDLE_DELAY = 2e3;
@@ -1242,7 +1250,7 @@ const controlsFeature = definePlayerFeature({
1242
1250
  return;
1243
1251
  }
1244
1252
  const computeVisible = (userActive) => {
1245
- return userActive || media.paused;
1253
+ return userActive || media.paused || isRemotePlaybackConnected(media) || isRemotePlaybackConnecting(media);
1246
1254
  };
1247
1255
  let idleTimer;
1248
1256
  function clearIdle() {
@@ -1298,6 +1306,15 @@ const controlsFeature = definePlayerFeature({
1298
1306
  listen(media, "play", onPlaybackChange, { signal });
1299
1307
  listen(media, "pause", onPlaybackChange, { signal });
1300
1308
  listen(media, "ended", onPlaybackChange, { signal });
1309
+ if (isMediaRemotePlaybackCapable(media)) {
1310
+ const onCastChange = () => {
1311
+ const { userActive } = get();
1312
+ set({ controlsVisible: computeVisible(userActive) });
1313
+ };
1314
+ listen(media.remote, "connect", onCastChange, { signal });
1315
+ listen(media.remote, "connecting", onCastChange, { signal });
1316
+ listen(media.remote, "disconnect", onCastChange, { signal });
1317
+ }
1301
1318
  signal.addEventListener("abort", clearIdle, { once: true });
1302
1319
  scheduleIdle();
1303
1320
  }
@@ -1327,25 +1344,26 @@ const errorFeature = definePlayerFeature({
1327
1344
  function isFullscreenEnabled() {
1328
1345
  const doc = document;
1329
1346
  if (doc.fullscreenEnabled || doc.webkitFullscreenEnabled) return true;
1330
- return isFunction(document.createElement("video").webkitEnterFullscreen);
1347
+ return isFunction(document.createElement("video").webkitSetPresentationMode);
1331
1348
  }
1332
1349
  function getFullscreenElement() {
1333
1350
  const doc = document;
1334
1351
  return doc.fullscreenElement ?? doc.webkitFullscreenElement ?? null;
1335
1352
  }
1336
- function isFullscreenElement(container, media) {
1337
- if (media instanceof HTMLMediaElement) {
1338
- const video = media;
1339
- if (video.webkitDisplayingFullscreen && video.webkitPresentationMode === "fullscreen") return true;
1340
- }
1341
- const target = container ?? media;
1342
- if (getFullscreenElement() === target) return true;
1343
- if (target instanceof Element) try {
1344
- return target.matches(":fullscreen");
1353
+ function matchesFullscreen(element) {
1354
+ if (!(element instanceof Element)) return false;
1355
+ try {
1356
+ return element.matches(":fullscreen");
1345
1357
  } catch {
1346
1358
  return false;
1347
1359
  }
1348
- return false;
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;
1349
1367
  }
1350
1368
  async function requestFullscreen(container, media) {
1351
1369
  const doc = document;
@@ -1354,35 +1372,29 @@ async function requestFullscreen(container, media) {
1354
1372
  if (isFunction(el.requestFullscreen)) return el.requestFullscreen();
1355
1373
  if (isFunction(el.webkitRequestFullscreen)) return el.webkitRequestFullscreen();
1356
1374
  }
1357
- if (media instanceof HTMLMediaElement) {
1358
- const video = media;
1359
- if (isFunction(video.webkitEnterFullscreen)) {
1360
- video.webkitEnterFullscreen();
1361
- return;
1362
- }
1363
- if (isFunction(media.requestFullscreen)) return media.requestFullscreen();
1375
+ const webkitVideo = media;
1376
+ if (isFunction(webkitVideo.webkitSetPresentationMode)) {
1377
+ webkitVideo.webkitSetPresentationMode("fullscreen");
1378
+ return;
1364
1379
  }
1365
- throw new DOMException("Fullscreen not supported", "NotSupportedError");
1380
+ const video = media;
1381
+ if (isFunction(video.requestFullscreen)) return video.requestFullscreen();
1366
1382
  }
1367
1383
  async function exitFullscreen(media) {
1368
1384
  const doc = document;
1369
- if (media instanceof HTMLMediaElement) {
1370
- const video = media;
1371
- if (isFunction(video.webkitExitFullscreen) && video.webkitDisplayingFullscreen) {
1372
- video.webkitExitFullscreen();
1373
- return;
1374
- }
1385
+ const webkitVideo = media;
1386
+ if (webkitVideo.webkitPresentationMode === "fullscreen" && isFunction(webkitVideo.webkitSetPresentationMode)) {
1387
+ webkitVideo.webkitSetPresentationMode("inline");
1388
+ return;
1375
1389
  }
1376
1390
  if (isFunction(doc.exitFullscreen)) return doc.exitFullscreen();
1377
1391
  if (isFunction(doc.webkitExitFullscreen)) return doc.webkitExitFullscreen();
1392
+ const video = media;
1393
+ if (isFunction(video.exitFullscreen)) return video.exitFullscreen();
1378
1394
  }
1379
1395
 
1380
1396
  //#endregion
1381
1397
  //#region ../core/dist/dev/dom/presentation/pip.js
1382
- function resolveMediaTarget(media) {
1383
- const target = media.target;
1384
- return target instanceof HTMLMediaElement ? target : media;
1385
- }
1386
1398
  function isPictureInPictureEnabled() {
1387
1399
  if (document.pictureInPictureEnabled) {
1388
1400
  const isSafari = /.*Version\/.*Safari\/.*/.test(navigator.userAgent);
@@ -1391,38 +1403,29 @@ function isPictureInPictureEnabled() {
1391
1403
  }
1392
1404
  return isFunction(document.createElement("video").webkitSetPresentationMode);
1393
1405
  }
1394
- function isPictureInPictureElement(media) {
1395
- const target = resolveMediaTarget(media);
1396
- if (document.pictureInPictureElement === target) return true;
1397
- if (target instanceof HTMLVideoElement) return target.webkitPresentationMode === "picture-in-picture";
1398
- 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;
1399
1410
  }
1400
1411
  async function requestPictureInPicture(media) {
1401
- const target = resolveMediaTarget(media);
1402
- if (!(target instanceof HTMLVideoElement)) throw new DOMException("Picture-in-Picture not supported", "NotSupportedError");
1403
- const video = target;
1404
- if (isFunction(video.webkitSetPresentationMode)) {
1405
- video.webkitSetPresentationMode("picture-in-picture");
1412
+ const webkitVideo = media;
1413
+ if (isFunction(webkitVideo.webkitSetPresentationMode)) {
1414
+ webkitVideo.webkitSetPresentationMode("picture-in-picture");
1406
1415
  return;
1407
1416
  }
1408
- if (isFunction(video.requestPictureInPicture)) {
1409
- await video.requestPictureInPicture();
1410
- return;
1411
- }
1412
- throw new DOMException("Picture-in-Picture not supported", "NotSupportedError");
1417
+ const video = media;
1418
+ if (isFunction(video.requestPictureInPicture)) return video.requestPictureInPicture();
1413
1419
  }
1414
1420
  async function exitPictureInPicture(media) {
1415
- if (media) {
1416
- const target = resolveMediaTarget(media);
1417
- if (target instanceof HTMLVideoElement) {
1418
- const video = target;
1419
- if (isFunction(video.webkitSetPresentationMode) && video.webkitPresentationMode === "picture-in-picture") {
1420
- video.webkitSetPresentationMode("inline");
1421
- return;
1422
- }
1423
- }
1421
+ const webkitVideo = media;
1422
+ if (webkitVideo.webkitPresentationMode === "picture-in-picture" && isFunction(webkitVideo.webkitSetPresentationMode)) {
1423
+ webkitVideo.webkitSetPresentationMode("inline");
1424
+ return;
1424
1425
  }
1425
1426
  if (isFunction(document.exitPictureInPicture)) return document.exitPictureInPicture();
1427
+ const video = media;
1428
+ if (isFunction(video.exitPictureInPicture)) return video.exitPictureInPicture();
1426
1429
  }
1427
1430
 
1428
1431
  //#endregion
@@ -1434,7 +1437,7 @@ const fullscreenFeature = definePlayerFeature({
1434
1437
  fullscreenAvailability: "unavailable",
1435
1438
  async requestFullscreen() {
1436
1439
  const { media, container } = target();
1437
- if (isPictureInPictureElement(media)) await exitPictureInPicture(media);
1440
+ if (isPictureInPicture(media)) await exitPictureInPicture(media);
1438
1441
  return requestFullscreen(container, media);
1439
1442
  },
1440
1443
  async exitFullscreen() {
@@ -1443,15 +1446,15 @@ const fullscreenFeature = definePlayerFeature({
1443
1446
  },
1444
1447
  async toggleFullscreen() {
1445
1448
  const { media, container } = target();
1446
- if (isFullscreenElement(container, media)) return exitFullscreen(media);
1447
- if (isPictureInPictureElement(media)) await exitPictureInPicture(media);
1449
+ if (isFullscreen(container, media)) return exitFullscreen(media);
1450
+ if (isPictureInPicture(media)) await exitPictureInPicture(media);
1448
1451
  return requestFullscreen(container, media);
1449
1452
  }
1450
1453
  }),
1451
1454
  attach({ target, signal, set }) {
1452
1455
  const { media, container } = target;
1453
1456
  set({ fullscreenAvailability: isFullscreenEnabled() ? "available" : "unsupported" });
1454
- const sync = () => set({ fullscreen: isFullscreenElement(container, media) });
1457
+ const sync = () => set({ fullscreen: isFullscreen(container, media) });
1455
1458
  sync();
1456
1459
  listen(document, "fullscreenchange", sync, { signal });
1457
1460
  listen(document, "webkitfullscreenchange", sync, { signal });
@@ -1459,6 +1462,49 @@ const fullscreenFeature = definePlayerFeature({
1459
1462
  }
1460
1463
  });
1461
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
+
1462
1508
  //#endregion
1463
1509
  //#region ../core/dist/dev/dom/store/features/pip.js
1464
1510
  const pipFeature = definePlayerFeature({
@@ -1468,7 +1514,7 @@ const pipFeature = definePlayerFeature({
1468
1514
  pipAvailability: "unavailable",
1469
1515
  async requestPictureInPicture() {
1470
1516
  const { media, container } = target();
1471
- if (isFullscreenElement(container, media)) await exitFullscreen();
1517
+ if (isFullscreen(container, media)) await exitFullscreen(media);
1472
1518
  return requestPictureInPicture(media);
1473
1519
  },
1474
1520
  async exitPictureInPicture() {
@@ -1477,15 +1523,15 @@ const pipFeature = definePlayerFeature({
1477
1523
  },
1478
1524
  async togglePictureInPicture() {
1479
1525
  const { media, container } = target();
1480
- if (isPictureInPictureElement(media)) return exitPictureInPicture(media);
1481
- if (isFullscreenElement(container, media)) await exitFullscreen();
1526
+ if (isPictureInPicture(media)) return exitPictureInPicture(media);
1527
+ if (isFullscreen(container, media)) await exitFullscreen(media);
1482
1528
  return requestPictureInPicture(media);
1483
1529
  }
1484
1530
  }),
1485
1531
  attach({ target, signal, set }) {
1486
1532
  const { media } = target;
1487
1533
  set({ pipAvailability: isPictureInPictureEnabled() ? "available" : "unsupported" });
1488
- const sync = () => set({ pip: isPictureInPictureElement(media) });
1534
+ const sync = () => set({ pip: isPictureInPicture(media) });
1489
1535
  sync();
1490
1536
  listen(media, "enterpictureinpicture", sync, { signal });
1491
1537
  listen(media, "leavepictureinpicture", sync, { signal });
@@ -1571,6 +1617,39 @@ const playbackRateFeature = definePlayerFeature({
1571
1617
  }
1572
1618
  });
1573
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
+
1574
1653
  //#endregion
1575
1654
  //#region ../core/dist/dev/dom/store/features/source.js
1576
1655
  const sourceFeature = definePlayerFeature({
@@ -1704,22 +1783,31 @@ const timeFeature = definePlayerFeature({
1704
1783
  attach({ target, signal, set, get }) {
1705
1784
  const { media } = target;
1706
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
+ };
1707
1794
  const sync = () => set({
1708
1795
  currentTime: media.currentTime,
1709
- duration: Number.isFinite(media.duration) ? media.duration : 0,
1796
+ duration: resolveDuration(),
1710
1797
  seeking: media.seeking
1711
1798
  });
1712
- const onTimeUpdate = () => {
1799
+ const syncUnlessSeeking = () => {
1713
1800
  if (get().seeking) return;
1714
1801
  sync();
1715
1802
  };
1716
1803
  sync();
1717
- listen(media, "timeupdate", onTimeUpdate, { signal });
1804
+ listen(media, "timeupdate", syncUnlessSeeking, { signal });
1718
1805
  listen(media, "durationchange", sync, { signal });
1719
1806
  listen(media, "seeking", sync, { signal });
1720
1807
  listen(media, "seeked", sync, { signal });
1721
1808
  listen(media, "loadedmetadata", sync, { signal });
1722
1809
  listen(media, "emptied", sync, { signal });
1810
+ listen(media, "progress", syncUnlessSeeking, { signal });
1723
1811
  }
1724
1812
  });
1725
1813
 
@@ -1785,6 +1873,7 @@ const videoFeatures = [
1785
1873
  bufferFeature,
1786
1874
  fullscreenFeature,
1787
1875
  pipFeature,
1876
+ remotePlaybackFeature,
1788
1877
  controlsFeature,
1789
1878
  textTrackFeature,
1790
1879
  errorFeature
@@ -2178,5 +2267,5 @@ function createPlayer(config) {
2178
2267
  }
2179
2268
 
2180
2269
  //#endregion
2181
- export { ContextConsumer as A, isFunction as C, MediaContainerElement as D, isUndefined as E, isEditableTarget as M, isInteractiveActivation as N, MediaElement as O, AbortControllerRegistry as S, isNumber as T, getGestureCoordinator as _, backgroundFeatures as a, noop as b, timeFeature as c, playbackRateFeature as d, playbackFeature as f, controlsFeature as g, errorFeature as h, audioFeatures as i, ReactiveElement as j, ContextProvider 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, bufferFeature as v, isNull as w, throwNoTargetError as x, createState as y };
2182
- //# sourceMappingURL=create-player-Bi6WUwDZ.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