@hanifhan1f/vidstack 1.12.13 → 1.12.14

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 (949) hide show
  1. package/cdn/chunks/vidstack-2f5gzOW6.js +1 -0
  2. package/cdn/chunks/vidstack-BYgY9wmd.js +1 -0
  3. package/cdn/chunks/vidstack-BfBBPhXV.js +1 -0
  4. package/cdn/chunks/vidstack-Bjo5esRp.js +1 -0
  5. package/cdn/chunks/vidstack-BuL67v3q.js +1 -0
  6. package/cdn/chunks/vidstack-C0msPRTd.js +3 -0
  7. package/cdn/chunks/vidstack-CIjxJCz3.js +1 -0
  8. package/cdn/chunks/vidstack-C_AxqLKV.js +1 -0
  9. package/cdn/chunks/vidstack-CioT3Yw2.js +1 -0
  10. package/cdn/chunks/vidstack-CmpbA3Yd.js +16 -0
  11. package/cdn/chunks/vidstack-CrqkytHl.js +1 -0
  12. package/cdn/chunks/vidstack-D0M8R0ZU.js +1 -0
  13. package/cdn/chunks/vidstack-D40FSa5B.js +3 -0
  14. package/cdn/chunks/vidstack-DD2JwFVU.js +1 -0
  15. package/cdn/chunks/vidstack-DRH_1tFW.js +1 -0
  16. package/cdn/chunks/vidstack-DfDZuHNP.js +1 -0
  17. package/cdn/chunks/vidstack-DiNS2Vx5.js +1 -0
  18. package/cdn/chunks/vidstack-xjJ-ui_l.js +1 -0
  19. package/cdn/providers/vidstack-audio-2Dt_Ivbp.js +1 -0
  20. package/cdn/providers/vidstack-dash-CUtD4e6q.js +1 -0
  21. package/cdn/providers/vidstack-google-cast-BdORATUX.js +1 -0
  22. package/cdn/providers/vidstack-hls-R25Kb6DP.js +1 -0
  23. package/cdn/providers/vidstack-html-DaAUJYsD.js +1 -0
  24. package/cdn/providers/vidstack-video-Csvox7SO.js +1 -0
  25. package/cdn/providers/vidstack-vimeo-D4Z96kg2.js +1 -0
  26. package/cdn/providers/vidstack-youtube-DiND6h3s.js +1 -0
  27. package/cdn/vidstack.js +1 -0
  28. package/cdn/with-layouts/chunks/vidstack-2f5gzOW6.js +1 -0
  29. package/cdn/with-layouts/chunks/vidstack-BL_lNyW_.js +1 -0
  30. package/cdn/with-layouts/chunks/vidstack-BfBBPhXV.js +1 -0
  31. package/cdn/with-layouts/chunks/vidstack-BjOOdDcQ.js +1 -0
  32. package/cdn/with-layouts/chunks/vidstack-Bxv1Qnxe.js +1 -0
  33. package/cdn/with-layouts/chunks/vidstack-C5AP9wid.js +1 -0
  34. package/cdn/with-layouts/chunks/vidstack-CS2aNc61.js +1 -0
  35. package/cdn/with-layouts/chunks/vidstack-C_AxqLKV.js +1 -0
  36. package/cdn/with-layouts/chunks/vidstack-D-3_fAsK.js +1 -0
  37. package/cdn/with-layouts/chunks/vidstack-DKqYI_HJ.js +1 -0
  38. package/cdn/with-layouts/chunks/vidstack-DLVdcWrK.js +3 -0
  39. package/cdn/with-layouts/chunks/vidstack-DPO7J4-v.js +3 -0
  40. package/cdn/with-layouts/chunks/vidstack-DRH_1tFW.js +1 -0
  41. package/cdn/with-layouts/chunks/vidstack-DWjB11vV.js +1 -0
  42. package/cdn/with-layouts/chunks/vidstack-Dge3KT8k.js +1 -0
  43. package/cdn/with-layouts/chunks/vidstack-Dh2GOjra.js +1 -0
  44. package/cdn/with-layouts/chunks/vidstack-DiNS2Vx5.js +1 -0
  45. package/cdn/with-layouts/chunks/vidstack-QW5tTAS4.js +897 -0
  46. package/cdn/with-layouts/chunks/vidstack-Xe_d7ovA.js +1 -0
  47. package/cdn/with-layouts/chunks/vidstack-wt2OT4N7.js +1 -0
  48. package/cdn/with-layouts/providers/vidstack-audio-Bw1csc6N.js +1 -0
  49. package/cdn/with-layouts/providers/vidstack-dash-DHRMFG4Y.js +1 -0
  50. package/cdn/with-layouts/providers/vidstack-google-cast-BSYJYn-o.js +1 -0
  51. package/cdn/with-layouts/providers/vidstack-hls-DG1rTEqu.js +1 -0
  52. package/cdn/with-layouts/providers/vidstack-html-CoKFAYW5.js +1 -0
  53. package/cdn/with-layouts/providers/vidstack-video-CIxFJ9Z1.js +1 -0
  54. package/cdn/with-layouts/providers/vidstack-vimeo-CNLKOGMa.js +1 -0
  55. package/cdn/with-layouts/providers/vidstack-youtube-D1e-LE-8.js +1 -0
  56. package/cdn/with-layouts/vidstack.js +1 -0
  57. package/dev/chunks/vidstack-03oQOdB7.js +58 -0
  58. package/dev/chunks/vidstack-0Of4tJ8D.js +224 -0
  59. package/dev/chunks/vidstack-BJsZjPkB.js +204 -0
  60. package/dev/chunks/vidstack-BQSA-Rux.js +56 -0
  61. package/{src/core/quality/utils.ts → dev/chunks/vidstack-BTM4ERc7.js} +5 -7
  62. package/dev/chunks/vidstack-BXSB7eI9.js +58 -0
  63. package/dev/chunks/vidstack-BaGbgcvz.js +107 -0
  64. package/{src/core/time-ranges.ts → dev/chunks/vidstack-Becy7l6h.js} +22 -61
  65. package/dev/chunks/vidstack-Bf6x4gWe.js +29 -0
  66. package/dev/chunks/vidstack-BjxlZzGu.js +11 -0
  67. package/dev/chunks/vidstack-Blfm1k-4.js +1520 -0
  68. package/dev/chunks/vidstack-Bpr4fI4n.js +7 -0
  69. package/dev/chunks/vidstack-Bs54kFSz.js +66 -0
  70. package/dev/chunks/vidstack-Bur7I7Vy.js +57 -0
  71. package/dev/chunks/vidstack-C0SWkbs7.js +254 -0
  72. package/dev/chunks/vidstack-C1PwJD_4.js +1635 -0
  73. package/dev/chunks/vidstack-C4aPQ7hZ.js +1482 -0
  74. package/dev/chunks/vidstack-C6OqdJO7.js +114 -0
  75. package/dev/chunks/vidstack-C_rvOKWp.js +33 -0
  76. package/dev/chunks/vidstack-CaudO1jl.js +109 -0
  77. package/dev/chunks/vidstack-Cax7aAP-.js +66 -0
  78. package/dev/chunks/vidstack-CcQdBWil.js +58 -0
  79. package/dev/chunks/vidstack-CwTj4H1w.js +18 -0
  80. package/dev/chunks/vidstack-DAOcbKGP.js +254 -0
  81. package/dev/chunks/vidstack-DKaohJzR.js +5181 -0
  82. package/dev/chunks/vidstack-DXxIKXmd.js +50 -0
  83. package/dev/chunks/vidstack-DXzRuMtJ.js +107 -0
  84. package/dev/chunks/vidstack-Db1-Hg_U.js +297 -0
  85. package/dev/chunks/vidstack-DbBJlz7I.js +10 -0
  86. package/dev/chunks/vidstack-Dihypf8P.js +11 -0
  87. package/dev/chunks/vidstack-Dm1xEU9Q.js +34 -0
  88. package/dev/chunks/vidstack-Dv_LIPFu.js +14 -0
  89. package/{src/foundation/observers/raf-loop.ts → dev/chunks/vidstack-DwyWIZjv.js} +8 -11
  90. package/dev/chunks/vidstack-EoLRQZbs.js +2986 -0
  91. package/dev/chunks/vidstack-FKkY62Dr.js +104 -0
  92. package/dev/chunks/vidstack-krOAtKMi.js +32 -0
  93. package/dev/define/plyr-layout.js +52 -0
  94. package/dev/define/templates/plyr-layout.js +571 -0
  95. package/dev/define/templates/vidstack-audio-layout.js +168 -0
  96. package/dev/define/templates/vidstack-video-layout.js +446 -0
  97. package/dev/define/vidstack-icons.js +1 -0
  98. package/dev/define/vidstack-player-default-layout.js +22 -0
  99. package/dev/define/vidstack-player-layouts.js +26 -0
  100. package/dev/define/vidstack-player-ui.js +71 -0
  101. package/dev/define/vidstack-player.js +19 -0
  102. package/dev/global/plyr.js +502 -0
  103. package/dev/global/vidstack-player.js +129 -0
  104. package/dev/providers/vidstack-audio.js +35 -0
  105. package/dev/providers/vidstack-dash.js +516 -0
  106. package/dev/providers/vidstack-google-cast.js +474 -0
  107. package/dev/providers/vidstack-hls.js +408 -0
  108. package/dev/providers/vidstack-html.js +567 -0
  109. package/dev/providers/vidstack-video.js +207 -0
  110. package/dev/providers/vidstack-vimeo.js +554 -0
  111. package/dev/providers/vidstack-youtube.js +286 -0
  112. package/dev/vidstack-elements.js +37 -0
  113. package/dev/vidstack.js +92 -0
  114. package/elements.d.ts +1433 -0
  115. package/global/player.d.ts +52 -0
  116. package/{types/global → global}/plyr.d.ts +32 -33
  117. package/icons.d.ts +1 -0
  118. package/index.d.ts +402 -0
  119. package/package.json +3 -87
  120. package/plugins.d.ts +19 -0
  121. package/plugins.js +13 -0
  122. package/prod/chunks/vidstack-9_r3lWNO.js +45 -0
  123. package/prod/chunks/vidstack-B01xzxC4.js +7 -0
  124. package/prod/chunks/vidstack-BDIzK77F.js +107 -0
  125. package/prod/chunks/vidstack-BHqGlnGz.js +1482 -0
  126. package/prod/chunks/vidstack-BNpgCJJ1.js +1588 -0
  127. package/prod/chunks/vidstack-BP49Gz0m.js +58 -0
  128. package/prod/chunks/vidstack-BRZe2BNi.js +107 -0
  129. package/prod/chunks/vidstack-BTM4ERc7.js +11 -0
  130. package/prod/chunks/vidstack-BaaRY-9x.js +201 -0
  131. package/prod/chunks/vidstack-BdFYWy6h.js +26 -0
  132. package/prod/chunks/vidstack-BpLd9ASW.js +246 -0
  133. package/prod/chunks/vidstack-C05ipjAK.js +1520 -0
  134. package/prod/chunks/vidstack-C9vIqaYT.js +10 -0
  135. package/prod/chunks/vidstack-CA4tDJdF.js +33 -0
  136. package/prod/chunks/vidstack-COLU-zPZ.js +57 -0
  137. package/prod/chunks/vidstack-CwTj4H1w.js +18 -0
  138. package/prod/chunks/vidstack-D5EzK014.js +14 -0
  139. package/prod/chunks/vidstack-D7hJcnN-.js +297 -0
  140. package/prod/chunks/vidstack-DB9WDRL5.js +248 -0
  141. package/prod/chunks/vidstack-DESBVLFp.js +104 -0
  142. package/prod/chunks/vidstack-DXxIKXmd.js +50 -0
  143. package/prod/chunks/vidstack-DcMkaIHJ.js +2976 -0
  144. package/prod/chunks/vidstack-Dihypf8P.js +11 -0
  145. package/prod/chunks/vidstack-Dm1xEU9Q.js +34 -0
  146. package/prod/chunks/vidstack-DwenML7x.js +4771 -0
  147. package/prod/chunks/vidstack-Fem0yF3c.js +77 -0
  148. package/prod/chunks/vidstack-IDWYvfna.js +58 -0
  149. package/prod/chunks/vidstack-MbEMbVfP.js +109 -0
  150. package/prod/chunks/vidstack-Oq65llxr.js +29 -0
  151. package/prod/chunks/vidstack-SnIdjCkV.js +58 -0
  152. package/prod/chunks/vidstack-V1jwkH0s.js +66 -0
  153. package/prod/chunks/vidstack-bdt7uOlN.js +114 -0
  154. package/prod/chunks/vidstack-krOAtKMi.js +32 -0
  155. package/prod/chunks/vidstack-mxJIo4Sg.js +56 -0
  156. package/prod/chunks/vidstack-tt3O1zL6.js +11 -0
  157. package/prod/chunks/vidstack-zfCm-GM5.js +205 -0
  158. package/prod/define/plyr-layout.js +52 -0
  159. package/prod/define/templates/plyr-layout.js +571 -0
  160. package/prod/define/templates/vidstack-audio-layout.js +168 -0
  161. package/prod/define/templates/vidstack-video-layout.js +446 -0
  162. package/prod/define/vidstack-icons.js +1 -0
  163. package/prod/define/vidstack-player-default-layout.js +22 -0
  164. package/prod/define/vidstack-player-layouts.js +26 -0
  165. package/prod/define/vidstack-player-ui.js +71 -0
  166. package/prod/define/vidstack-player.js +19 -0
  167. package/prod/global/plyr.js +494 -0
  168. package/prod/global/vidstack-player.js +129 -0
  169. package/prod/providers/vidstack-audio.js +35 -0
  170. package/prod/providers/vidstack-dash.js +501 -0
  171. package/prod/providers/vidstack-google-cast.js +468 -0
  172. package/prod/providers/vidstack-hls.js +393 -0
  173. package/prod/providers/vidstack-html.js +555 -0
  174. package/prod/providers/vidstack-video.js +204 -0
  175. package/prod/providers/vidstack-vimeo.js +548 -0
  176. package/prod/providers/vidstack-youtube.js +286 -0
  177. package/prod/vidstack-elements.js +37 -0
  178. package/prod/vidstack.js +159 -0
  179. package/server/chunks/vidstack-B4CWj0Hp.js +381 -0
  180. package/server/chunks/vidstack-B8LynzY5.js +1564 -0
  181. package/server/chunks/vidstack-BGgfNYAH.js +141 -0
  182. package/server/chunks/vidstack-BGmwlunt.js +3035 -0
  183. package/server/chunks/vidstack-BOTZD4tC.js +18 -0
  184. package/server/chunks/vidstack-C19bj3Wq.js +307 -0
  185. package/server/chunks/vidstack-CFTkUXGK.js +295 -0
  186. package/server/chunks/vidstack-CQMB7Msg.js +1502 -0
  187. package/server/chunks/vidstack-CdBfecZT.js +205 -0
  188. package/server/chunks/vidstack-Cv_Art04.js +4635 -0
  189. package/server/chunks/vidstack-CwTj4H1w.js +18 -0
  190. package/server/chunks/vidstack-DXxIKXmd.js +50 -0
  191. package/server/chunks/vidstack-DbvCOsqU.js +107 -0
  192. package/server/chunks/vidstack-DgHfFDiw.js +1962 -0
  193. package/server/chunks/vidstack-Dm1xEU9Q.js +34 -0
  194. package/server/chunks/vidstack-DnkB7eGO.js +207 -0
  195. package/server/chunks/vidstack-DsnTqzpL.js +29 -0
  196. package/{src/elements/define/layouts/plyr/ui.ts → server/chunks/vidstack-FHGkN5xj.js} +144 -235
  197. package/server/chunks/vidstack-P_QDjYIl.js +56 -0
  198. package/server/chunks/vidstack-f5-aflD2.js +104 -0
  199. package/server/chunks/vidstack-krOAtKMi.js +32 -0
  200. package/server/define/plyr-layout.js +16 -0
  201. package/server/define/vidstack-icons.js +1 -0
  202. package/server/define/vidstack-player-default-layout.js +13 -0
  203. package/server/define/vidstack-player-layouts.js +16 -0
  204. package/server/define/vidstack-player-ui.js +11 -0
  205. package/server/define/vidstack-player.js +6 -0
  206. package/server/global/plyr.js +322 -0
  207. package/server/global/vidstack-player.js +58 -0
  208. package/server/vidstack-elements.js +46 -0
  209. package/server/vidstack.js +148 -0
  210. package/types/vidstack-BOvzfZjK.d.ts +1269 -0
  211. package/types/vidstack-DYLKXUvI.d.ts +7479 -0
  212. package/.templates/sandbox/favicon-32x32.png +0 -0
  213. package/.templates/sandbox/index.html +0 -42
  214. package/.templates/sandbox/main.ts +0 -137
  215. package/.templates/sandbox/styles.css +0 -68
  216. package/analyze.config.ts +0 -133
  217. package/build/build-styles.js +0 -33
  218. package/build/rollup-decorators.ts +0 -102
  219. package/build/rollup-minify.js +0 -20
  220. package/build/rollup-ts.js +0 -57
  221. package/rollup.config.ts +0 -442
  222. package/src/components/aria/announcer.ts +0 -181
  223. package/src/components/layouts/default/audio-layout.ts +0 -20
  224. package/src/components/layouts/default/context.ts +0 -15
  225. package/src/components/layouts/default/default-layout.ts +0 -67
  226. package/src/components/layouts/default/props.ts +0 -143
  227. package/src/components/layouts/default/translations.ts +0 -70
  228. package/src/components/layouts/default/video-layout.ts +0 -20
  229. package/src/components/layouts/plyr/context.ts +0 -13
  230. package/src/components/layouts/plyr/plyr-layout.ts +0 -90
  231. package/src/components/layouts/plyr/props.ts +0 -114
  232. package/src/components/layouts/plyr/translations.ts +0 -53
  233. package/src/components/player.ts +0 -758
  234. package/src/components/provider/provider.ts +0 -184
  235. package/src/components/provider/source-select.ts +0 -378
  236. package/src/components/provider/tracks.ts +0 -37
  237. package/src/components/ui/buttons/airplay-button.ts +0 -74
  238. package/src/components/ui/buttons/caption-button.ts +0 -68
  239. package/src/components/ui/buttons/fullscreen-button.ts +0 -90
  240. package/src/components/ui/buttons/google-cast-button.ts +0 -75
  241. package/src/components/ui/buttons/live-button.ts +0 -76
  242. package/src/components/ui/buttons/mute-button.ts +0 -69
  243. package/src/components/ui/buttons/pip-button.ts +0 -71
  244. package/src/components/ui/buttons/play-button.ts +0 -62
  245. package/src/components/ui/buttons/seek-button.ts +0 -92
  246. package/src/components/ui/buttons/toggle-button-controller.ts +0 -92
  247. package/src/components/ui/buttons/toggle-button.ts +0 -49
  248. package/src/components/ui/captions/captions-renderer.ts +0 -63
  249. package/src/components/ui/captions/captions.ts +0 -227
  250. package/src/components/ui/controls-group.ts +0 -13
  251. package/src/components/ui/controls.ts +0 -101
  252. package/src/components/ui/gesture.ts +0 -252
  253. package/src/components/ui/menu/menu-button.ts +0 -95
  254. package/src/components/ui/menu/menu-context.ts +0 -27
  255. package/src/components/ui/menu/menu-focus-controller.ts +0 -205
  256. package/src/components/ui/menu/menu-item.ts +0 -9
  257. package/src/components/ui/menu/menu-items.ts +0 -129
  258. package/src/components/ui/menu/menu-portal.ts +0 -105
  259. package/src/components/ui/menu/menu.ts +0 -612
  260. package/src/components/ui/menu/radio/radio-controller.ts +0 -18
  261. package/src/components/ui/menu/radio/radio-group-controller.ts +0 -81
  262. package/src/components/ui/menu/radio/radio-group.ts +0 -78
  263. package/src/components/ui/menu/radio/radio.ts +0 -151
  264. package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +0 -116
  265. package/src/components/ui/menu/radio-groups/audio-radio-group.ts +0 -121
  266. package/src/components/ui/menu/radio-groups/captions-radio-group.ts +0 -153
  267. package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +0 -211
  268. package/src/components/ui/menu/radio-groups/quality-radio-group.ts +0 -181
  269. package/src/components/ui/menu/radio-groups/speed-radio-group.ts +0 -112
  270. package/src/components/ui/popper/popper.ts +0 -103
  271. package/src/components/ui/poster.ts +0 -187
  272. package/src/components/ui/sliders/audio-gain-slider.ts +0 -150
  273. package/src/components/ui/sliders/quality-slider.ts +0 -148
  274. package/src/components/ui/sliders/slider/api/cssvars.ts +0 -10
  275. package/src/components/ui/sliders/slider/api/events.ts +0 -65
  276. package/src/components/ui/sliders/slider/api/state.ts +0 -101
  277. package/src/components/ui/sliders/slider/events-controller.ts +0 -383
  278. package/src/components/ui/sliders/slider/format.ts +0 -12
  279. package/src/components/ui/sliders/slider/slider-context.ts +0 -18
  280. package/src/components/ui/sliders/slider/slider-controller.ts +0 -211
  281. package/src/components/ui/sliders/slider/slider.ts +0 -94
  282. package/src/components/ui/sliders/slider/types.ts +0 -1
  283. package/src/components/ui/sliders/slider/utils.ts +0 -14
  284. package/src/components/ui/sliders/slider-preview.ts +0 -131
  285. package/src/components/ui/sliders/slider-thumbnail.ts +0 -28
  286. package/src/components/ui/sliders/slider-value.ts +0 -122
  287. package/src/components/ui/sliders/slider-video.ts +0 -198
  288. package/src/components/ui/sliders/speed-slider.ts +0 -147
  289. package/src/components/ui/sliders/time-slider/slider-chapters.ts +0 -444
  290. package/src/components/ui/sliders/time-slider/time-slider.ts +0 -319
  291. package/src/components/ui/sliders/volume-slider.ts +0 -145
  292. package/src/components/ui/thumbnails/thumbnail-loader.ts +0 -324
  293. package/src/components/ui/thumbnails/thumbnail.ts +0 -244
  294. package/src/components/ui/time.ts +0 -191
  295. package/src/components/ui/tooltip/tooltip-content.ts +0 -105
  296. package/src/components/ui/tooltip/tooltip-context.ts +0 -13
  297. package/src/components/ui/tooltip/tooltip-trigger.ts +0 -49
  298. package/src/components/ui/tooltip/tooltip.ts +0 -127
  299. package/src/core/api/media-attrs.ts +0 -35
  300. package/src/core/api/media-context.ts +0 -52
  301. package/src/core/api/media-events.ts +0 -601
  302. package/src/core/api/media-request-events.ts +0 -323
  303. package/src/core/api/player-controller.ts +0 -10
  304. package/src/core/api/player-events.ts +0 -49
  305. package/src/core/api/player-props.ts +0 -233
  306. package/src/core/api/player-state.ts +0 -940
  307. package/src/core/api/src-types.ts +0 -97
  308. package/src/core/api/types.ts +0 -69
  309. package/src/core/controls.ts +0 -251
  310. package/src/core/font/font-options.ts +0 -106
  311. package/src/core/font/font-vars.ts +0 -107
  312. package/src/core/keyboard/aria-shortcuts.ts +0 -42
  313. package/src/core/keyboard/controller.ts +0 -302
  314. package/src/core/keyboard/types.ts +0 -40
  315. package/src/core/quality/events.ts +0 -48
  316. package/src/core/quality/symbols.ts +0 -8
  317. package/src/core/quality/video-quality.ts +0 -86
  318. package/src/core/state/media-events-logger.ts +0 -67
  319. package/src/core/state/media-load-controller.ts +0 -40
  320. package/src/core/state/media-player-delegate.ts +0 -170
  321. package/src/core/state/media-request-manager.ts +0 -952
  322. package/src/core/state/media-state-manager.ts +0 -1077
  323. package/src/core/state/media-state-sync.ts +0 -162
  324. package/src/core/state/media-storage.ts +0 -196
  325. package/src/core/state/navigator-media-session.ts +0 -62
  326. package/src/core/state/remote-control.ts +0 -584
  327. package/src/core/state/tracked-media-events.ts +0 -22
  328. package/src/core/tracks/audio/audio-tracks.ts +0 -33
  329. package/src/core/tracks/audio/events.ts +0 -41
  330. package/src/core/tracks/text/events.ts +0 -52
  331. package/src/core/tracks/text/render/libass-text-renderer.ts +0 -246
  332. package/src/core/tracks/text/render/native-text-renderer.ts +0 -106
  333. package/src/core/tracks/text/render/text-renderer.ts +0 -134
  334. package/src/core/tracks/text/symbols.ts +0 -17
  335. package/src/core/tracks/text/text-track.test.ts +0 -407
  336. package/src/core/tracks/text/text-track.ts +0 -413
  337. package/src/core/tracks/text/text-tracks.ts +0 -210
  338. package/src/core/tracks/text/utils.ts +0 -85
  339. package/src/elements/bundles/cdn/player.core.ts +0 -6
  340. package/src/elements/bundles/cdn/player.ts +0 -8
  341. package/src/elements/bundles/cdn/plyr.ts +0 -6
  342. package/src/elements/bundles/cdn-legacy/player-with-default.ts +0 -4
  343. package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +0 -4
  344. package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +0 -3
  345. package/src/elements/bundles/cdn-legacy/player.ts +0 -3
  346. package/src/elements/bundles/icons.ts +0 -3
  347. package/src/elements/bundles/player-layouts/default.ts +0 -7
  348. package/src/elements/bundles/player-layouts/index.ts +0 -9
  349. package/src/elements/bundles/player-layouts/plyr.ts +0 -65
  350. package/src/elements/bundles/player-ui.ts +0 -108
  351. package/src/elements/bundles/player.ts +0 -7
  352. package/src/elements/define/announcer-element.ts +0 -20
  353. package/src/elements/define/buttons/airplay-button-element.ts +0 -21
  354. package/src/elements/define/buttons/caption-button-element.ts +0 -22
  355. package/src/elements/define/buttons/fullscreen-button-element.ts +0 -22
  356. package/src/elements/define/buttons/google-cast-button-element.ts +0 -21
  357. package/src/elements/define/buttons/live-button-element.ts +0 -22
  358. package/src/elements/define/buttons/mute-button-element.ts +0 -23
  359. package/src/elements/define/buttons/pip-button-element.ts +0 -22
  360. package/src/elements/define/buttons/play-button-element.ts +0 -23
  361. package/src/elements/define/buttons/seek-button-element.ts +0 -26
  362. package/src/elements/define/buttons/toggle-button-element.ts +0 -21
  363. package/src/elements/define/captions-element.ts +0 -20
  364. package/src/elements/define/chapter-title-element.ts +0 -54
  365. package/src/elements/define/controls-element.ts +0 -26
  366. package/src/elements/define/controls-group-element.ts +0 -26
  367. package/src/elements/define/gesture-element.ts +0 -24
  368. package/src/elements/define/layouts/default/audio-layout-element.ts +0 -137
  369. package/src/elements/define/layouts/default/audio-layout.ts +0 -113
  370. package/src/elements/define/layouts/default/icons-loader.ts +0 -17
  371. package/src/elements/define/layouts/default/icons.ts +0 -86
  372. package/src/elements/define/layouts/default/slots.ts +0 -12
  373. package/src/elements/define/layouts/default/ui/announcer.ts +0 -14
  374. package/src/elements/define/layouts/default/ui/buttons.ts +0 -291
  375. package/src/elements/define/layouts/default/ui/captions.ts +0 -14
  376. package/src/elements/define/layouts/default/ui/controls.ts +0 -5
  377. package/src/elements/define/layouts/default/ui/keyboard-display.ts +0 -114
  378. package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +0 -79
  379. package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +0 -135
  380. package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +0 -114
  381. package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +0 -117
  382. package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +0 -133
  383. package/src/elements/define/layouts/default/ui/menu/font-menu.ts +0 -253
  384. package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +0 -67
  385. package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +0 -108
  386. package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +0 -59
  387. package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +0 -56
  388. package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +0 -183
  389. package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +0 -98
  390. package/src/elements/define/layouts/default/ui/slider.ts +0 -112
  391. package/src/elements/define/layouts/default/ui/time.ts +0 -41
  392. package/src/elements/define/layouts/default/ui/title.ts +0 -25
  393. package/src/elements/define/layouts/default/ui/utils.ts +0 -10
  394. package/src/elements/define/layouts/default/video-layout-element.ts +0 -125
  395. package/src/elements/define/layouts/default/video-layout.ts +0 -353
  396. package/src/elements/define/layouts/icons/icons-loader.ts +0 -47
  397. package/src/elements/define/layouts/icons/layout-icons-loader.ts +0 -24
  398. package/src/elements/define/layouts/layout-element.ts +0 -78
  399. package/src/elements/define/layouts/layout-name.ts +0 -15
  400. package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +0 -1
  401. package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +0 -1
  402. package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +0 -1
  403. package/src/elements/define/layouts/plyr/icons/plyr-download.js +0 -1
  404. package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
  405. package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
  406. package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +0 -1
  407. package/src/elements/define/layouts/plyr/icons/plyr-muted.js +0 -1
  408. package/src/elements/define/layouts/plyr/icons/plyr-pause.js +0 -1
  409. package/src/elements/define/layouts/plyr/icons/plyr-pip.js +0 -1
  410. package/src/elements/define/layouts/plyr/icons/plyr-play.js +0 -1
  411. package/src/elements/define/layouts/plyr/icons/plyr-restart.js +0 -1
  412. package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +0 -1
  413. package/src/elements/define/layouts/plyr/icons/plyr-settings.js +0 -1
  414. package/src/elements/define/layouts/plyr/icons/plyr-volume.js +0 -1
  415. package/src/elements/define/layouts/plyr/icons-loader.ts +0 -21
  416. package/src/elements/define/layouts/plyr/icons.ts +0 -34
  417. package/src/elements/define/layouts/plyr/plyr-layout-element.ts +0 -67
  418. package/src/elements/define/layouts/slot-manager.ts +0 -61
  419. package/src/elements/define/layouts/slot-observer.ts +0 -70
  420. package/src/elements/define/menus/_template.ts +0 -47
  421. package/src/elements/define/menus/audio-gain-group-element.ts +0 -37
  422. package/src/elements/define/menus/audio-radio-group-element.ts +0 -37
  423. package/src/elements/define/menus/captions-radio-group-element.ts +0 -37
  424. package/src/elements/define/menus/chapters-radio-group-element.ts +0 -68
  425. package/src/elements/define/menus/menu-button-element.ts +0 -27
  426. package/src/elements/define/menus/menu-element.ts +0 -28
  427. package/src/elements/define/menus/menu-item-element.ts +0 -24
  428. package/src/elements/define/menus/menu-items-element.ts +0 -27
  429. package/src/elements/define/menus/menu-portal-element.ts +0 -35
  430. package/src/elements/define/menus/quality-radio-group-element.ts +0 -51
  431. package/src/elements/define/menus/radio-element.ts +0 -24
  432. package/src/elements/define/menus/radio-group-element.ts +0 -24
  433. package/src/elements/define/menus/speed-radio-group-element.ts +0 -37
  434. package/src/elements/define/player-element.ts +0 -33
  435. package/src/elements/define/poster-element.ts +0 -53
  436. package/src/elements/define/provider-cast-display.ts +0 -36
  437. package/src/elements/define/provider-element.ts +0 -158
  438. package/src/elements/define/sliders/audio-gain-slider-element.ts +0 -34
  439. package/src/elements/define/sliders/quality-slider-element.ts +0 -34
  440. package/src/elements/define/sliders/slider-chapters-element.ts +0 -53
  441. package/src/elements/define/sliders/slider-element.ts +0 -25
  442. package/src/elements/define/sliders/slider-preview-element.ts +0 -16
  443. package/src/elements/define/sliders/slider-steps-element.ts +0 -50
  444. package/src/elements/define/sliders/slider-thumbnail-element.ts +0 -48
  445. package/src/elements/define/sliders/slider-value-element.ts +0 -49
  446. package/src/elements/define/sliders/slider-video-element.ts +0 -59
  447. package/src/elements/define/sliders/speed-slider-element.ts +0 -34
  448. package/src/elements/define/sliders/time-slider-element.ts +0 -34
  449. package/src/elements/define/sliders/volume-slider-element.ts +0 -34
  450. package/src/elements/define/spinner-element.ts +0 -96
  451. package/src/elements/define/thumbnail-element.ts +0 -63
  452. package/src/elements/define/time-element.ts +0 -32
  453. package/src/elements/define/title-element.ts +0 -38
  454. package/src/elements/define/tooltips/tooltip-content-element.ts +0 -28
  455. package/src/elements/define/tooltips/tooltip-element.ts +0 -28
  456. package/src/elements/define/tooltips/tooltip-trigger-element.ts +0 -32
  457. package/src/elements/icon.ts +0 -30
  458. package/src/elements/index.ts +0 -71
  459. package/src/elements/lit/directives/signal.ts +0 -80
  460. package/src/elements/lit/html.ts +0 -11
  461. package/src/elements/lit/lit-element.ts +0 -23
  462. package/src/elements/state-controller.ts +0 -48
  463. package/src/exports/components.ts +0 -79
  464. package/src/exports/core.ts +0 -41
  465. package/src/exports/events.ts +0 -46
  466. package/src/exports/font.ts +0 -3
  467. package/src/exports/foundation.ts +0 -8
  468. package/src/exports/maverick.ts +0 -9
  469. package/src/exports/providers.ts +0 -42
  470. package/src/exports/utils.ts +0 -18
  471. package/src/foundation/fullscreen/controller.ts +0 -128
  472. package/src/foundation/fullscreen/events.ts +0 -26
  473. package/src/foundation/list/list.ts +0 -127
  474. package/src/foundation/list/select-list.ts +0 -86
  475. package/src/foundation/list/symbols.ts +0 -22
  476. package/src/foundation/logger/colors.ts +0 -33
  477. package/src/foundation/logger/controller.ts +0 -71
  478. package/src/foundation/logger/events.ts +0 -29
  479. package/src/foundation/logger/grouped-log.ts +0 -44
  480. package/src/foundation/logger/log-level.ts +0 -17
  481. package/src/foundation/logger/log-printer.ts +0 -119
  482. package/src/foundation/logger/ms.ts +0 -31
  483. package/src/foundation/observers/focus-visible.ts +0 -74
  484. package/src/foundation/observers/intersection-observer.ts +0 -60
  485. package/src/foundation/observers/page-visibility.ts +0 -105
  486. package/src/foundation/orientation/controller.ts +0 -139
  487. package/src/foundation/orientation/events.ts +0 -20
  488. package/src/foundation/orientation/types.ts +0 -96
  489. package/src/foundation/queue/queue.ts +0 -41
  490. package/src/foundation/queue/request-queue.test.ts +0 -139
  491. package/src/foundation/queue/request-queue.ts +0 -94
  492. package/src/global/layouts/default.ts +0 -28
  493. package/src/global/layouts/loader.ts +0 -5
  494. package/src/global/layouts/plyr.ts +0 -24
  495. package/src/global/player.ts +0 -144
  496. package/src/global/plyr.ts +0 -917
  497. package/src/globals.d.ts +0 -11
  498. package/src/index.ts +0 -10
  499. package/src/plugins.ts +0 -369
  500. package/src/providers/audio/loader.ts +0 -45
  501. package/src/providers/audio/provider.ts +0 -50
  502. package/src/providers/dash/dash.ts +0 -417
  503. package/src/providers/dash/events.ts +0 -585
  504. package/src/providers/dash/lib-loader.ts +0 -202
  505. package/src/providers/dash/loader.ts +0 -33
  506. package/src/providers/dash/provider.ts +0 -135
  507. package/src/providers/dash/types.ts +0 -21
  508. package/src/providers/embed/EmbedProvider.ts +0 -84
  509. package/src/providers/google-cast/events.ts +0 -53
  510. package/src/providers/google-cast/loader.ts +0 -174
  511. package/src/providers/google-cast/media-info.ts +0 -49
  512. package/src/providers/google-cast/provider.ts +0 -483
  513. package/src/providers/google-cast/tracks.ts +0 -170
  514. package/src/providers/google-cast/types.ts +0 -3
  515. package/src/providers/google-cast/utils.ts +0 -112
  516. package/src/providers/hls/events.ts +0 -472
  517. package/src/providers/hls/hls.ts +0 -290
  518. package/src/providers/hls/lib-loader.ts +0 -178
  519. package/src/providers/hls/loader.ts +0 -33
  520. package/src/providers/hls/provider.ts +0 -137
  521. package/src/providers/hls/types.ts +0 -10
  522. package/src/providers/html/audio/audio-context.ts +0 -60
  523. package/src/providers/html/audio/audio-gain.ts +0 -100
  524. package/src/providers/html/html/342/200/223media-events.ts +0 -338
  525. package/src/providers/html/native-audio-tracks.ts +0 -91
  526. package/src/providers/html/provider.ts +0 -141
  527. package/src/providers/html/remote-playback.ts +0 -94
  528. package/src/providers/type-check.ts +0 -61
  529. package/src/providers/types.ts +0 -95
  530. package/src/providers/video/loader.ts +0 -45
  531. package/src/providers/video/native-hls-text-tracks.ts +0 -69
  532. package/src/providers/video/picture-in-picture.ts +0 -54
  533. package/src/providers/video/presentation/events.ts +0 -12
  534. package/src/providers/video/presentation/video-presentation.ts +0 -110
  535. package/src/providers/video/provider.ts +0 -91
  536. package/src/providers/vimeo/embed/command.ts +0 -118
  537. package/src/providers/vimeo/embed/event.ts +0 -124
  538. package/src/providers/vimeo/embed/message.ts +0 -9
  539. package/src/providers/vimeo/embed/misc.ts +0 -57
  540. package/src/providers/vimeo/embed/params.ts +0 -168
  541. package/src/providers/vimeo/loader.ts +0 -61
  542. package/src/providers/vimeo/provider.ts +0 -730
  543. package/src/providers/vimeo/utils.ts +0 -53
  544. package/src/providers/youtube/embed/command.ts +0 -21
  545. package/src/providers/youtube/embed/event.ts +0 -1
  546. package/src/providers/youtube/embed/message.ts +0 -54
  547. package/src/providers/youtube/embed/params.ts +0 -238
  548. package/src/providers/youtube/embed/quality.ts +0 -35
  549. package/src/providers/youtube/embed/state.ts +0 -13
  550. package/src/providers/youtube/loader.ts +0 -61
  551. package/src/providers/youtube/provider.ts +0 -403
  552. package/src/providers/youtube/utils.ts +0 -45
  553. package/src/tailwind.test.ts +0 -413
  554. package/src/test-utils/index.ts +0 -22
  555. package/src/test-utils/setup.ts +0 -3
  556. package/src/utils/aria.ts +0 -14
  557. package/src/utils/array.ts +0 -3
  558. package/src/utils/color.ts +0 -5
  559. package/src/utils/dom.ts +0 -458
  560. package/src/utils/error.ts +0 -11
  561. package/src/utils/language.ts +0 -16
  562. package/src/utils/manifest.ts +0 -61
  563. package/src/utils/mime.ts +0 -101
  564. package/src/utils/network.ts +0 -118
  565. package/src/utils/number.ts +0 -25
  566. package/src/utils/promise.ts +0 -12
  567. package/src/utils/scroll.ts +0 -19
  568. package/src/utils/support.ts +0 -163
  569. package/src/utils/time.test.ts +0 -111
  570. package/src/utils/time.ts +0 -123
  571. package/tsconfig.build.json +0 -9
  572. package/tsconfig.json +0 -11
  573. package/types/components/aria/announcer.d.ts +0 -27
  574. package/types/components/layouts/default/audio-layout.d.ts +0 -15
  575. package/types/components/layouts/default/context.d.ts +0 -9
  576. package/types/components/layouts/default/default-layout.d.ts +0 -10
  577. package/types/components/layouts/default/props.d.ts +0 -125
  578. package/types/components/layouts/default/translations.d.ts +0 -6
  579. package/types/components/layouts/default/video-layout.d.ts +0 -15
  580. package/types/components/layouts/plyr/context.d.ts +0 -7
  581. package/types/components/layouts/plyr/plyr-layout.d.ts +0 -9
  582. package/types/components/layouts/plyr/props.d.ts +0 -68
  583. package/types/components/layouts/plyr/translations.d.ts +0 -6
  584. package/types/components/player.d.ts +0 -214
  585. package/types/components/provider/provider.d.ts +0 -24
  586. package/types/components/provider/source-select.d.ts +0 -10
  587. package/types/components/provider/tracks.d.ts +0 -7
  588. package/types/components/ui/buttons/airplay-button.d.ts +0 -23
  589. package/types/components/ui/buttons/caption-button.d.ts +0 -21
  590. package/types/components/ui/buttons/fullscreen-button.d.ts +0 -28
  591. package/types/components/ui/buttons/google-cast-button.d.ts +0 -23
  592. package/types/components/ui/buttons/live-button.d.ts +0 -30
  593. package/types/components/ui/buttons/mute-button.d.ts +0 -21
  594. package/types/components/ui/buttons/pip-button.d.ts +0 -22
  595. package/types/components/ui/buttons/play-button.d.ts +0 -21
  596. package/types/components/ui/buttons/seek-button.d.ts +0 -32
  597. package/types/components/ui/buttons/toggle-button-controller.d.ts +0 -20
  598. package/types/components/ui/buttons/toggle-button.d.ts +0 -29
  599. package/types/components/ui/captions/captions-renderer.d.ts +0 -12
  600. package/types/components/ui/captions/captions.d.ts +0 -22
  601. package/types/components/ui/controls-group.d.ts +0 -9
  602. package/types/components/ui/controls.d.ts +0 -38
  603. package/types/components/ui/gesture.d.ts +0 -64
  604. package/types/components/ui/menu/menu-button.d.ts +0 -37
  605. package/types/components/ui/menu/menu-context.d.ts +0 -23
  606. package/types/components/ui/menu/menu-focus-controller.d.ts +0 -14
  607. package/types/components/ui/menu/menu-item.d.ts +0 -9
  608. package/types/components/ui/menu/menu-items.d.ts +0 -44
  609. package/types/components/ui/menu/menu-portal.d.ts +0 -31
  610. package/types/components/ui/menu/menu.d.ts +0 -66
  611. package/types/components/ui/menu/radio/radio-controller.d.ts +0 -14
  612. package/types/components/ui/menu/radio/radio-group-controller.d.ts +0 -11
  613. package/types/components/ui/menu/radio/radio-group.d.ts +0 -40
  614. package/types/components/ui/menu/radio/radio.d.ts +0 -50
  615. package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +0 -36
  616. package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +0 -37
  617. package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +0 -38
  618. package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +0 -46
  619. package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +0 -48
  620. package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +0 -36
  621. package/types/components/ui/popper/popper.d.ts +0 -15
  622. package/types/components/ui/poster.d.ts +0 -47
  623. package/types/components/ui/sliders/audio-gain-slider.d.ts +0 -43
  624. package/types/components/ui/sliders/quality-slider.d.ts +0 -34
  625. package/types/components/ui/sliders/slider/api/cssvars.d.ts +0 -10
  626. package/types/components/ui/sliders/slider/api/events.d.ts +0 -57
  627. package/types/components/ui/sliders/slider/api/state.d.ts +0 -68
  628. package/types/components/ui/sliders/slider/events-controller.d.ts +0 -23
  629. package/types/components/ui/sliders/slider/format.d.ts +0 -8
  630. package/types/components/ui/sliders/slider/slider-context.d.ts +0 -13
  631. package/types/components/ui/sliders/slider/slider-controller.d.ts +0 -59
  632. package/types/components/ui/sliders/slider/slider.d.ts +0 -39
  633. package/types/components/ui/sliders/slider/types.d.ts +0 -1
  634. package/types/components/ui/sliders/slider/utils.d.ts +0 -2
  635. package/types/components/ui/sliders/slider-preview.d.ts +0 -34
  636. package/types/components/ui/sliders/slider-thumbnail.d.ts +0 -16
  637. package/types/components/ui/sliders/slider-value.d.ts +0 -59
  638. package/types/components/ui/sliders/slider-video.d.ts +0 -73
  639. package/types/components/ui/sliders/speed-slider.d.ts +0 -42
  640. package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +0 -36
  641. package/types/components/ui/sliders/time-slider/time-slider.d.ts +0 -56
  642. package/types/components/ui/sliders/volume-slider.d.ts +0 -35
  643. package/types/components/ui/thumbnails/thumbnail-loader.d.ts +0 -47
  644. package/types/components/ui/thumbnails/thumbnail.d.ts +0 -50
  645. package/types/components/ui/time.d.ts +0 -62
  646. package/types/components/ui/tooltip/tooltip-content.d.ts +0 -39
  647. package/types/components/ui/tooltip/tooltip-context.d.ts +0 -11
  648. package/types/components/ui/tooltip/tooltip-trigger.d.ts +0 -14
  649. package/types/components/ui/tooltip/tooltip.d.ts +0 -23
  650. package/types/core/api/media-attrs.d.ts +0 -3
  651. package/types/core/api/media-context.d.ts +0 -37
  652. package/types/core/api/media-events.d.ts +0 -581
  653. package/types/core/api/media-request-events.d.ts +0 -319
  654. package/types/core/api/player-controller.d.ts +0 -6
  655. package/types/core/api/player-events.d.ts +0 -38
  656. package/types/core/api/player-props.d.ts +0 -163
  657. package/types/core/api/player-state.d.ts +0 -656
  658. package/types/core/api/src-types.d.ts +0 -50
  659. package/types/core/api/types.d.ts +0 -54
  660. package/types/core/controls.d.ts +0 -43
  661. package/types/core/font/font-options.d.ts +0 -42
  662. package/types/core/font/font-vars.d.ts +0 -1
  663. package/types/core/keyboard/aria-shortcuts.d.ts +0 -6
  664. package/types/core/keyboard/controller.d.ts +0 -9
  665. package/types/core/keyboard/types.d.ts +0 -33
  666. package/types/core/quality/events.d.ts +0 -43
  667. package/types/core/quality/symbols.d.ts +0 -6
  668. package/types/core/quality/utils.d.ts +0 -2
  669. package/types/core/quality/video-quality.d.ts +0 -52
  670. package/types/core/state/media-events-logger.d.ts +0 -7
  671. package/types/core/state/media-load-controller.d.ts +0 -6
  672. package/types/core/state/media-player-delegate.d.ts +0 -13
  673. package/types/core/state/media-request-manager.d.ts +0 -71
  674. package/types/core/state/media-state-manager.d.ts +0 -59
  675. package/types/core/state/media-state-sync.d.ts +0 -8
  676. package/types/core/state/media-storage.d.ts +0 -74
  677. package/types/core/state/navigator-media-session.d.ts +0 -5
  678. package/types/core/state/remote-control.d.ts +0 -288
  679. package/types/core/state/tracked-media-events.d.ts +0 -2
  680. package/types/core/time-ranges.d.ts +0 -12
  681. package/types/core/tracks/audio/audio-tracks.d.ts +0 -32
  682. package/types/core/tracks/audio/events.d.ts +0 -37
  683. package/types/core/tracks/text/events.d.ts +0 -49
  684. package/types/core/tracks/text/render/libass-text-renderer.d.ts +0 -181
  685. package/types/core/tracks/text/render/native-text-renderer.d.ts +0 -13
  686. package/types/core/tracks/text/render/text-renderer.d.ts +0 -17
  687. package/types/core/tracks/text/symbols.d.ts +0 -11
  688. package/types/core/tracks/text/text-track.d.ts +0 -137
  689. package/types/core/tracks/text/text-tracks.d.ts +0 -55
  690. package/types/core/tracks/text/utils.d.ts +0 -8
  691. package/types/elements/bundles/cdn/player.core.d.ts +0 -5
  692. package/types/elements/bundles/cdn/player.d.ts +0 -7
  693. package/types/elements/bundles/cdn/plyr.d.ts +0 -5
  694. package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +0 -4
  695. package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +0 -4
  696. package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +0 -3
  697. package/types/elements/bundles/cdn-legacy/player.d.ts +0 -3
  698. package/types/elements/bundles/icons.d.ts +0 -2
  699. package/types/elements/bundles/player-layouts/default.d.ts +0 -1
  700. package/types/elements/bundles/player-layouts/index.d.ts +0 -1
  701. package/types/elements/bundles/player-layouts/plyr.d.ts +0 -1
  702. package/types/elements/bundles/player-ui.d.ts +0 -1
  703. package/types/elements/bundles/player.d.ts +0 -1
  704. package/types/elements/define/announcer-element.d.ts +0 -18
  705. package/types/elements/define/buttons/airplay-button-element.d.ts +0 -19
  706. package/types/elements/define/buttons/caption-button-element.d.ts +0 -20
  707. package/types/elements/define/buttons/fullscreen-button-element.d.ts +0 -20
  708. package/types/elements/define/buttons/google-cast-button-element.d.ts +0 -19
  709. package/types/elements/define/buttons/live-button-element.d.ts +0 -20
  710. package/types/elements/define/buttons/mute-button-element.d.ts +0 -21
  711. package/types/elements/define/buttons/pip-button-element.d.ts +0 -20
  712. package/types/elements/define/buttons/play-button-element.d.ts +0 -21
  713. package/types/elements/define/buttons/seek-button-element.d.ts +0 -24
  714. package/types/elements/define/buttons/toggle-button-element.d.ts +0 -19
  715. package/types/elements/define/captions-element.d.ts +0 -18
  716. package/types/elements/define/chapter-title-element.d.ts +0 -30
  717. package/types/elements/define/controls-element.d.ts +0 -24
  718. package/types/elements/define/controls-group-element.d.ts +0 -24
  719. package/types/elements/define/gesture-element.d.ts +0 -22
  720. package/types/elements/define/layouts/default/audio-layout-element.d.ts +0 -29
  721. package/types/elements/define/layouts/default/audio-layout.d.ts +0 -1
  722. package/types/elements/define/layouts/default/icons-loader.d.ts +0 -5
  723. package/types/elements/define/layouts/default/icons.d.ts +0 -52
  724. package/types/elements/define/layouts/default/slots.d.ts +0 -2
  725. package/types/elements/define/layouts/default/ui/announcer.d.ts +0 -1
  726. package/types/elements/define/layouts/default/ui/buttons.d.ts +0 -31
  727. package/types/elements/define/layouts/default/ui/captions.d.ts +0 -1
  728. package/types/elements/define/layouts/default/ui/controls.d.ts +0 -1
  729. package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +0 -1
  730. package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +0 -1
  731. package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +0 -1
  732. package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +0 -1
  733. package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +0 -8
  734. package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +0 -8
  735. package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +0 -1
  736. package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +0 -8
  737. package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +0 -26
  738. package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +0 -3
  739. package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +0 -4
  740. package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +0 -1
  741. package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +0 -8
  742. package/types/elements/define/layouts/default/ui/slider.d.ts +0 -10
  743. package/types/elements/define/layouts/default/ui/time.d.ts +0 -3
  744. package/types/elements/define/layouts/default/ui/title.d.ts +0 -2
  745. package/types/elements/define/layouts/default/ui/utils.d.ts +0 -3
  746. package/types/elements/define/layouts/default/video-layout-element.d.ts +0 -29
  747. package/types/elements/define/layouts/default/video-layout.d.ts +0 -5
  748. package/types/elements/define/layouts/icons/icons-loader.d.ts +0 -11
  749. package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +0 -4
  750. package/types/elements/define/layouts/layout-element.d.ts +0 -38
  751. package/types/elements/define/layouts/layout-name.d.ts +0 -2
  752. package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
  753. package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
  754. package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
  755. package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +0 -2
  756. package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
  757. package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
  758. package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
  759. package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +0 -2
  760. package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +0 -2
  761. package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +0 -2
  762. package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +0 -2
  763. package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +0 -2
  764. package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
  765. package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +0 -2
  766. package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +0 -2
  767. package/types/elements/define/layouts/plyr/icons-loader.d.ts +0 -5
  768. package/types/elements/define/layouts/plyr/icons.d.ts +0 -18
  769. package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +0 -26
  770. package/types/elements/define/layouts/plyr/ui.d.ts +0 -3
  771. package/types/elements/define/layouts/slot-manager.d.ts +0 -7
  772. package/types/elements/define/layouts/slot-observer.d.ts +0 -12
  773. package/types/elements/define/menus/_template.d.ts +0 -7
  774. package/types/elements/define/menus/audio-gain-group-element.d.ts +0 -31
  775. package/types/elements/define/menus/audio-radio-group-element.d.ts +0 -31
  776. package/types/elements/define/menus/captions-radio-group-element.d.ts +0 -31
  777. package/types/elements/define/menus/chapters-radio-group-element.d.ts +0 -36
  778. package/types/elements/define/menus/menu-button-element.d.ts +0 -25
  779. package/types/elements/define/menus/menu-element.d.ts +0 -26
  780. package/types/elements/define/menus/menu-item-element.d.ts +0 -22
  781. package/types/elements/define/menus/menu-items-element.d.ts +0 -25
  782. package/types/elements/define/menus/menu-portal-element.d.ts +0 -25
  783. package/types/elements/define/menus/quality-radio-group-element.d.ts +0 -33
  784. package/types/elements/define/menus/radio-element.d.ts +0 -22
  785. package/types/elements/define/menus/radio-group-element.d.ts +0 -22
  786. package/types/elements/define/menus/speed-radio-group-element.d.ts +0 -31
  787. package/types/elements/define/player-element.d.ts +0 -24
  788. package/types/elements/define/poster-element.d.ts +0 -25
  789. package/types/elements/define/provider-cast-display.d.ts +0 -2
  790. package/types/elements/define/provider-element.d.ts +0 -25
  791. package/types/elements/define/sliders/audio-gain-slider-element.d.ts +0 -32
  792. package/types/elements/define/sliders/quality-slider-element.d.ts +0 -32
  793. package/types/elements/define/sliders/slider-chapters-element.d.ts +0 -31
  794. package/types/elements/define/sliders/slider-element.d.ts +0 -23
  795. package/types/elements/define/sliders/slider-preview-element.d.ts +0 -14
  796. package/types/elements/define/sliders/slider-steps-element.d.ts +0 -28
  797. package/types/elements/define/sliders/slider-thumbnail-element.d.ts +0 -26
  798. package/types/elements/define/sliders/slider-value-element.d.ts +0 -37
  799. package/types/elements/define/sliders/slider-video-element.d.ts +0 -25
  800. package/types/elements/define/sliders/speed-slider-element.d.ts +0 -32
  801. package/types/elements/define/sliders/time-slider-element.d.ts +0 -32
  802. package/types/elements/define/sliders/volume-slider-element.d.ts +0 -32
  803. package/types/elements/define/spinner-element.d.ts +0 -50
  804. package/types/elements/define/thumbnail-element.d.ts +0 -29
  805. package/types/elements/define/time-element.d.ts +0 -24
  806. package/types/elements/define/title-element.d.ts +0 -23
  807. package/types/elements/define/tooltips/tooltip-content-element.d.ts +0 -26
  808. package/types/elements/define/tooltips/tooltip-element.d.ts +0 -26
  809. package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +0 -27
  810. package/types/elements/icon.d.ts +0 -10
  811. package/types/elements/index.d.ts +0 -56
  812. package/types/elements/lit/directives/signal.d.ts +0 -1
  813. package/types/elements/lit/html.d.ts +0 -4
  814. package/types/elements/lit/lit-element.d.ts +0 -8
  815. package/types/elements/state-controller.d.ts +0 -5
  816. package/types/exports/components.d.ts +0 -59
  817. package/types/exports/core.d.ts +0 -26
  818. package/types/exports/events.d.ts +0 -32
  819. package/types/exports/font.d.ts +0 -2
  820. package/types/exports/foundation.d.ts +0 -8
  821. package/types/exports/maverick.d.ts +0 -1
  822. package/types/exports/providers.d.ts +0 -22
  823. package/types/exports/utils.d.ts +0 -4
  824. package/types/foundation/fullscreen/controller.d.ts +0 -39
  825. package/types/foundation/fullscreen/events.d.ts +0 -25
  826. package/types/foundation/list/list.d.ts +0 -64
  827. package/types/foundation/list/select-list.d.ts +0 -30
  828. package/types/foundation/list/symbols.d.ts +0 -14
  829. package/types/foundation/logger/colors.d.ts +0 -5
  830. package/types/foundation/logger/controller.d.ts +0 -20
  831. package/types/foundation/logger/events.d.ts +0 -26
  832. package/types/foundation/logger/grouped-log.d.ts +0 -22
  833. package/types/foundation/logger/log-level.d.ts +0 -15
  834. package/types/foundation/logger/log-printer.d.ts +0 -11
  835. package/types/foundation/logger/ms.d.ts +0 -4
  836. package/types/foundation/observers/focus-visible.d.ts +0 -7
  837. package/types/foundation/observers/intersection-observer.d.ts +0 -36
  838. package/types/foundation/observers/page-visibility.d.ts +0 -37
  839. package/types/foundation/observers/raf-loop.d.ts +0 -6
  840. package/types/foundation/orientation/controller.d.ts +0 -62
  841. package/types/foundation/orientation/events.d.ts +0 -16
  842. package/types/foundation/orientation/types.d.ts +0 -85
  843. package/types/foundation/queue/queue.d.ts +0 -24
  844. package/types/foundation/queue/request-queue.d.ts +0 -42
  845. package/types/global/layouts/default.d.ts +0 -9
  846. package/types/global/layouts/loader.d.ts +0 -5
  847. package/types/global/layouts/plyr.d.ts +0 -9
  848. package/types/global/player.d.ts +0 -26
  849. package/types/index.d.ts +0 -6
  850. package/types/plugins.d.ts +0 -11
  851. package/types/providers/audio/loader.d.ts +0 -12
  852. package/types/providers/audio/provider.d.ts +0 -29
  853. package/types/providers/dash/dash.d.ts +0 -15
  854. package/types/providers/dash/events.d.ts +0 -570
  855. package/types/providers/dash/lib-loader.d.ts +0 -6
  856. package/types/providers/dash/loader.d.ts +0 -10
  857. package/types/providers/dash/provider.d.ts +0 -62
  858. package/types/providers/dash/types.d.ts +0 -13
  859. package/types/providers/embed/EmbedProvider.d.ts +0 -18
  860. package/types/providers/google-cast/events.d.ts +0 -36
  861. package/types/providers/google-cast/loader.d.ts +0 -18
  862. package/types/providers/google-cast/media-info.d.ts +0 -11
  863. package/types/providers/google-cast/provider.d.ts +0 -48
  864. package/types/providers/google-cast/tracks.d.ts +0 -10
  865. package/types/providers/google-cast/types.d.ts +0 -3
  866. package/types/providers/google-cast/utils.d.ts +0 -34
  867. package/types/providers/hls/events.d.ts +0 -463
  868. package/types/providers/hls/hls.d.ts +0 -14
  869. package/types/providers/hls/lib-loader.d.ts +0 -6
  870. package/types/providers/hls/loader.d.ts +0 -10
  871. package/types/providers/hls/provider.d.ts +0 -64
  872. package/types/providers/hls/types.d.ts +0 -9
  873. package/types/providers/html/audio/audio-context.d.ts +0 -6
  874. package/types/providers/html/audio/audio-gain.d.ts +0 -10
  875. package/types/providers/html/html/342/200/223media-events.d.ts +0 -6
  876. package/types/providers/html/native-audio-tracks.d.ts +0 -6
  877. package/types/providers/html/provider.d.ts +0 -34
  878. package/types/providers/html/remote-playback.d.ts +0 -18
  879. package/types/providers/type-check.d.ts +0 -28
  880. package/types/providers/types.d.ts +0 -95
  881. package/types/providers/video/loader.d.ts +0 -12
  882. package/types/providers/video/native-hls-text-tracks.d.ts +0 -9
  883. package/types/providers/video/picture-in-picture.d.ts +0 -16
  884. package/types/providers/video/presentation/events.d.ts +0 -11
  885. package/types/providers/video/presentation/video-presentation.d.ts +0 -30
  886. package/types/providers/video/provider.d.ts +0 -34
  887. package/types/providers/vimeo/embed/command.d.ts +0 -81
  888. package/types/providers/vimeo/embed/event.d.ts +0 -58
  889. package/types/providers/vimeo/embed/message.d.ts +0 -8
  890. package/types/providers/vimeo/embed/misc.d.ts +0 -52
  891. package/types/providers/vimeo/embed/params.d.ts +0 -148
  892. package/types/providers/vimeo/loader.d.ts +0 -14
  893. package/types/providers/vimeo/provider.d.ts +0 -61
  894. package/types/providers/vimeo/utils.d.ts +0 -6
  895. package/types/providers/youtube/embed/command.d.ts +0 -13
  896. package/types/providers/youtube/embed/event.d.ts +0 -1
  897. package/types/providers/youtube/embed/message.d.ts +0 -50
  898. package/types/providers/youtube/embed/params.d.ts +0 -218
  899. package/types/providers/youtube/embed/quality.d.ts +0 -2
  900. package/types/providers/youtube/embed/state.d.ts +0 -12
  901. package/types/providers/youtube/loader.d.ts +0 -14
  902. package/types/providers/youtube/provider.d.ts +0 -61
  903. package/types/providers/youtube/utils.d.ts +0 -2
  904. package/types/utils/aria.d.ts +0 -4
  905. package/types/utils/array.d.ts +0 -1
  906. package/types/utils/color.d.ts +0 -1
  907. package/types/utils/dom.d.ts +0 -41
  908. package/types/utils/error.d.ts +0 -2
  909. package/types/utils/language.d.ts +0 -8
  910. package/types/utils/manifest.d.ts +0 -3
  911. package/types/utils/mime.d.ts +0 -15
  912. package/types/utils/network.d.ts +0 -17
  913. package/types/utils/number.d.ts +0 -17
  914. package/types/utils/promise.d.ts +0 -1
  915. package/types/utils/scroll.d.ts +0 -5
  916. package/types/utils/support.d.ts +0 -72
  917. package/types/utils/time.d.ts +0 -57
  918. package/vite.config.ts +0 -61
  919. /package/{npm/analyze.json.d.ts → analyze.json.d.ts} +0 -0
  920. /package/{npm/bundle.d.ts → bundle.d.ts} +0 -0
  921. /package/{npm/dom.d.ts → dom.d.ts} +0 -0
  922. /package/{npm/empty.vtt → empty.vtt} +0 -0
  923. /package/{npm/google-cast.d.ts → google-cast.d.ts} +0 -0
  924. /package/{npm/player → player}/index.d.ts +0 -0
  925. /package/{npm/player → player}/layouts/default.d.ts +0 -0
  926. /package/{npm/player → player}/layouts/index.d.ts +0 -0
  927. /package/{npm/player → player}/layouts/plyr.d.ts +0 -0
  928. /package/{styles/player → player/styles}/base.css +0 -0
  929. /package/{styles/player → player/styles}/default/buffering.css +0 -0
  930. /package/{styles/player → player/styles}/default/buttons.css +0 -0
  931. /package/{styles/player → player/styles}/default/captions.css +0 -0
  932. /package/{styles/player → player/styles}/default/chapter-title.css +0 -0
  933. /package/{styles/player → player/styles}/default/controls.css +0 -0
  934. /package/{styles/player → player/styles}/default/gestures.css +0 -0
  935. /package/{styles/player → player/styles}/default/icons.css +0 -0
  936. /package/{styles/player → player/styles}/default/keyboard.css +0 -0
  937. /package/{styles/player → player/styles}/default/layouts/audio.css +0 -0
  938. /package/{styles/player → player/styles}/default/layouts/video.css +0 -0
  939. /package/{styles/player → player/styles}/default/menus.css +0 -0
  940. /package/{styles/player → player/styles}/default/poster.css +0 -0
  941. /package/{styles/player → player/styles}/default/sliders.css +0 -0
  942. /package/{styles/player → player/styles}/default/theme.css +0 -0
  943. /package/{styles/player → player/styles}/default/thumbnail.css +0 -0
  944. /package/{styles/player → player/styles}/default/time.css +0 -0
  945. /package/{styles/player → player/styles}/default/tooltips.css +0 -0
  946. /package/{styles/player → player/styles}/plyr/theme.css +0 -0
  947. /package/{npm/player → player}/ui.d.ts +0 -0
  948. /package/{npm/tailwind.cjs → tailwind.cjs} +0 -0
  949. /package/{npm/tailwind.d.cts → tailwind.d.cts} +0 -0
@@ -1,940 +0,0 @@
1
- import fscreen from 'fscreen';
2
- import { State, tick, type Store } from 'maverick.js';
3
- import { isNumber } from 'maverick.js/std';
4
-
5
- import type { LogLevel } from '../../foundation/logger/log-level';
6
- import type { MediaProviderLoader } from '../../providers/types';
7
- import { canOrientScreen, IS_IPHONE } from '../../utils/support';
8
- import type { VideoQuality } from '../quality/video-quality';
9
- import { getTimeRangesEnd, getTimeRangesStart, TimeRange } from '../time-ranges';
10
- import type { AudioTrack } from '../tracks/audio/audio-tracks';
11
- import { isTrackCaptionKind, type TextTrack } from '../tracks/text/text-track';
12
- import type { Src } from './src-types';
13
- import type {
14
- MediaCrossOrigin,
15
- MediaErrorDetail,
16
- MediaStreamType,
17
- MediaType,
18
- MediaViewType,
19
- RemotePlaybackInfo,
20
- RemotePlaybackType,
21
- } from './types';
22
-
23
- export interface MediaPlayerState extends MediaState {}
24
-
25
- export const mediaState = new State<MediaState>({
26
- artist: '',
27
- artwork: null,
28
- audioTrack: null,
29
- audioTracks: [],
30
- autoPlay: false,
31
- autoPlayError: null,
32
- audioGain: null,
33
- buffered: new TimeRange(),
34
- canLoad: false,
35
- canLoadPoster: false,
36
- canFullscreen: false,
37
- canOrientScreen: canOrientScreen(),
38
- canPictureInPicture: false,
39
- canPlay: false,
40
- clipStartTime: 0,
41
- clipEndTime: 0,
42
- controls: false,
43
- get iOSControls() {
44
- return (
45
- IS_IPHONE &&
46
- this.mediaType === 'video' &&
47
- (!this.playsInline || (!fscreen.fullscreenEnabled && this.fullscreen))
48
- );
49
- },
50
- get nativeControls() {
51
- return this.controls || this.iOSControls;
52
- },
53
- controlsVisible: false,
54
- get controlsHidden() {
55
- return !this.controlsVisible;
56
- },
57
- crossOrigin: null,
58
- ended: false,
59
- error: null,
60
- fullscreen: false,
61
- get loop() {
62
- return this.providedLoop || this.userPrefersLoop;
63
- },
64
- logLevel: __DEV__ ? 'warn' : 'silent',
65
- mediaType: 'unknown',
66
- muted: false,
67
- paused: true,
68
- played: new TimeRange(),
69
- playing: false,
70
- playsInline: false,
71
- pictureInPicture: false,
72
- preload: 'metadata',
73
- playbackRate: 1,
74
- qualities: [],
75
- quality: null,
76
- autoQuality: false,
77
- canSetQuality: true,
78
- canSetPlaybackRate: true,
79
- canSetVolume: false,
80
- canSetAudioGain: false,
81
- seekable: new TimeRange(),
82
- seeking: false,
83
- source: { src: '', type: '' },
84
- sources: [],
85
- started: false,
86
- textTracks: [],
87
- textTrack: null,
88
- get hasCaptions() {
89
- return this.textTracks.filter(isTrackCaptionKind).length > 0;
90
- },
91
- volume: 1,
92
- waiting: false,
93
- realCurrentTime: 0,
94
- get currentTime() {
95
- return this.ended
96
- ? this.duration
97
- : this.clipStartTime > 0
98
- ? Math.max(0, Math.min(this.realCurrentTime - this.clipStartTime, this.duration))
99
- : this.realCurrentTime;
100
- },
101
- providedDuration: -1,
102
- intrinsicDuration: 0,
103
- get duration() {
104
- return this.seekableWindow;
105
- },
106
- get title() {
107
- return this.providedTitle || this.inferredTitle;
108
- },
109
- get poster() {
110
- return this.providedPoster || this.inferredPoster;
111
- },
112
- get viewType() {
113
- return this.providedViewType !== 'unknown' ? this.providedViewType : this.inferredViewType;
114
- },
115
- get streamType() {
116
- return this.providedStreamType !== 'unknown'
117
- ? this.providedStreamType
118
- : this.inferredStreamType;
119
- },
120
- get currentSrc() {
121
- return this.source;
122
- },
123
- get bufferedStart() {
124
- const start = getTimeRangesStart(this.buffered) ?? 0;
125
- return Math.max(start, this.clipStartTime);
126
- },
127
- get bufferedEnd() {
128
- const end = getTimeRangesEnd(this.buffered) ?? 0;
129
- return Math.min(this.seekableEnd, Math.max(0, end - this.clipStartTime));
130
- },
131
- get bufferedWindow() {
132
- return Math.max(0, this.bufferedEnd - this.bufferedStart);
133
- },
134
- get seekableStart() {
135
- if (this.isLiveDVR && this.liveDVRWindow > 0) {
136
- return Math.max(0, this.seekableEnd - this.liveDVRWindow);
137
- }
138
-
139
- const start = getTimeRangesStart(this.seekable) ?? 0;
140
- return Math.max(start, this.clipStartTime);
141
- },
142
- get seekableEnd() {
143
- if (this.providedDuration > 0) return this.providedDuration;
144
-
145
- const end =
146
- this.liveSyncPosition > 0
147
- ? this.liveSyncPosition
148
- : this.canPlay
149
- ? (getTimeRangesEnd(this.seekable) ?? Infinity)
150
- : 0;
151
-
152
- return this.clipEndTime > 0 ? Math.min(this.clipEndTime, end) : end;
153
- },
154
- get seekableWindow() {
155
- const window = this.seekableEnd - this.seekableStart;
156
- return !isNaN(window) ? Math.max(0, window) : Infinity;
157
- },
158
-
159
- // ~~ remote playback ~~
160
- canAirPlay: false,
161
- canGoogleCast: false,
162
- remotePlaybackState: 'disconnected',
163
- remotePlaybackType: 'none',
164
- remotePlaybackLoader: null,
165
- remotePlaybackInfo: null,
166
- get isAirPlayConnected() {
167
- return this.remotePlaybackType === 'airplay' && this.remotePlaybackState === 'connected';
168
- },
169
- get isGoogleCastConnected() {
170
- return this.remotePlaybackType === 'google-cast' && this.remotePlaybackState === 'connected';
171
- },
172
-
173
- // ~~ responsive design ~~
174
- pointer: 'fine',
175
- orientation: 'landscape',
176
- width: 0,
177
- height: 0,
178
- mediaWidth: 0,
179
- mediaHeight: 0,
180
- lastKeyboardAction: null,
181
-
182
- // ~~ user props ~~
183
- userBehindLiveEdge: false,
184
-
185
- // ~~ live props ~~
186
- liveEdgeTolerance: 10,
187
- minLiveDVRWindow: 60,
188
- get canSeek() {
189
- return (
190
- /unknown|on-demand|:dvr/.test(this.streamType) &&
191
- Number.isFinite(this.duration) &&
192
- (!this.isLiveDVR || this.duration >= this.liveDVRWindow)
193
- );
194
- },
195
- get live() {
196
- return this.streamType.includes('live') || !Number.isFinite(this.duration);
197
- },
198
- get liveEdgeStart() {
199
- return this.live && Number.isFinite(this.seekableEnd)
200
- ? Math.max(0, this.seekableEnd - this.liveEdgeTolerance)
201
- : 0;
202
- },
203
- get liveEdge() {
204
- return (
205
- this.live &&
206
- (!this.canSeek || (!this.userBehindLiveEdge && this.currentTime >= this.liveEdgeStart))
207
- );
208
- },
209
- get liveEdgeWindow() {
210
- return this.live && Number.isFinite(this.seekableEnd)
211
- ? this.seekableEnd - this.liveEdgeStart
212
- : 0;
213
- },
214
- get isLiveDVR() {
215
- return /:dvr/.test(this.streamType);
216
- },
217
- get liveDVRWindow() {
218
- return Math.max(this.inferredLiveDVRWindow, this.minLiveDVRWindow);
219
- },
220
-
221
- // ~~ internal props ~~
222
- autoPlaying: false,
223
- providedTitle: '',
224
- inferredTitle: '',
225
- providedLoop: false,
226
- userPrefersLoop: false,
227
- providedPoster: '',
228
- inferredPoster: '',
229
- inferredViewType: 'unknown',
230
- providedViewType: 'unknown',
231
- providedStreamType: 'unknown',
232
- inferredStreamType: 'unknown',
233
- liveSyncPosition: null,
234
- inferredLiveDVRWindow: 0,
235
- savedState: null,
236
- });
237
-
238
- const RESET_ON_SRC_QUALITY_CHANGE = new Set<keyof MediaState>([
239
- 'autoPlayError',
240
- 'autoPlaying',
241
- 'buffered',
242
- 'canPlay',
243
- 'error',
244
- 'paused',
245
- 'played',
246
- 'playing',
247
- 'seekable',
248
- 'seeking',
249
- 'waiting',
250
- ]);
251
-
252
- const RESET_ON_SRC_CHANGE = new Set<keyof MediaState>([
253
- ...RESET_ON_SRC_QUALITY_CHANGE,
254
- 'ended',
255
- 'inferredPoster',
256
- 'inferredStreamType',
257
- 'inferredTitle',
258
- 'intrinsicDuration',
259
- 'inferredLiveDVRWindow',
260
- 'liveSyncPosition',
261
- 'realCurrentTime',
262
- 'savedState',
263
- 'started',
264
- 'userBehindLiveEdge',
265
- ]);
266
-
267
- /**
268
- * Resets all media state and leaves general player state intact.
269
- */
270
- export function softResetMediaState($media: MediaStore, isSourceQualityChange = false) {
271
- const filter = isSourceQualityChange ? RESET_ON_SRC_QUALITY_CHANGE : RESET_ON_SRC_CHANGE;
272
- mediaState.reset($media, (prop) => filter.has(prop));
273
- tick();
274
- }
275
-
276
- export interface MediaStore extends Store<MediaState> {}
277
-
278
- export interface PlayerStore extends MediaStore {}
279
-
280
- export interface MediaState {
281
- /**
282
- * Whether playback should automatically begin as soon as enough media is available to do so
283
- * without interruption.
284
- *
285
- * Sites which automatically play audio (or videos with an audio track) can be an unpleasant
286
- * experience for users, so it should be avoided when possible. If you must offer auto-play
287
- * functionality, you should make it opt-in (requiring a user to specifically enable it).
288
- *
289
- * However, auto-play can be useful when creating media elements whose source will be set at a
290
- * later time, under user control.
291
- *
292
- * @defaultValue false
293
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/autoplay}
294
- */
295
- autoPlay: boolean;
296
- /**
297
- * Set to an error when auto-play has failed to begin playback. This can be used to determine
298
- * when to show a recovery UI in the event auto-play fails.
299
- *
300
- * @defaultValue null
301
- */
302
- autoPlayError: { muted: boolean; error: Error } | null;
303
- /**
304
- * Returns a `TimeRanges` object that indicates the ranges of the media source that the
305
- * browser has buffered (if any) at the moment the buffered property is accessed. This is usually
306
- * contiguous but if the user jumps about while media is buffering, it may contain holes.
307
- *
308
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
309
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
310
- * @defaultValue TimeRanges
311
- */
312
- buffered: TimeRanges;
313
- /**
314
- * The earliest time in seconds for which media has been buffered (i.e., downloaded by the
315
- * browser).
316
- *
317
- * @defaultValue 0
318
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
319
- */
320
- readonly bufferedStart: number;
321
- /**
322
- * The latest time in seconds for which media has been buffered (i.e., downloaded by the
323
- * browser).
324
- *
325
- * @defaultValue 0
326
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
327
- */
328
- readonly bufferedEnd: number;
329
- /**
330
- * The length of the buffered window in seconds from `bufferedStart` to `bufferedEnd`.
331
- */
332
- readonly bufferedWindow: number;
333
- /**
334
- * A `double` indicating the total playback length of the media in seconds. If no media data is
335
- * available, the returned value is `0`. If the media is of indefinite length (such as
336
- * streamed live media, a WebRTC call's media, or similar), the value is `+Infinity`.
337
- *
338
- * @defaultValue 0
339
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/duration}
340
- */
341
- readonly duration: number;
342
- /**
343
- * Whether Apple AirPlay is available for casting and playing media on another device such as a
344
- * TV.
345
- */
346
- canAirPlay: boolean;
347
- /**
348
- * Whether Google Cast is available for casting and playing media on another device such as a TV.
349
- */
350
- canGoogleCast: boolean;
351
- /**
352
- * The current remote playback state when using AirPlay or Google Cast.
353
- */
354
- remotePlaybackState: RemotePlaybackState;
355
- /**
356
- * The type of remote playback that is currently connecting or connected.
357
- */
358
- remotePlaybackType: RemotePlaybackType;
359
- /**
360
- * An active remote playback loader such as the `GoogleCastLoader`.
361
- */
362
- remotePlaybackLoader: MediaProviderLoader | null;
363
- /**
364
- * Information about the current remote playback.
365
- */
366
- remotePlaybackInfo: RemotePlaybackInfo | null;
367
- /**
368
- * Whether AirPlay is connected.
369
- */
370
- readonly isAirPlayConnected: boolean;
371
- /**
372
- * Whether Google Cast is connected.
373
- */
374
- readonly isGoogleCastConnected: boolean;
375
- /**
376
- * Whether the native browser Fullscreen API is available, or the current provider can
377
- * toggle fullscreen mode. This does not mean that the operation is guaranteed to be successful,
378
- * only that it can be attempted.
379
- *
380
- * @defaultValue false
381
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
382
- */
383
- canFullscreen: boolean;
384
- /**
385
- * Whether the native Screen Orientation API and required methods (lock/unlock) are available.
386
- *
387
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API}
388
- */
389
- canOrientScreen: boolean;
390
- /**
391
- * Whether picture-in-picture mode is supported by the current media provider.
392
- *
393
- * @defaultValue false
394
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
395
- */
396
- canPictureInPicture: boolean;
397
- /**
398
- * Whether media is allowed to begin loading. This depends on the `load` player prop.
399
- *
400
- * @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
401
- */
402
- canLoad: boolean;
403
- /**
404
- * Whether the media poster is allowed to begin loading. This depends on the `posterLoad`
405
- * player prop.
406
- *
407
- * @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
408
- */
409
- canLoadPoster: boolean;
410
- /**
411
- * Whether the user agent can play the media, but estimates that **not enough** data has been
412
- * loaded to play the media up to its end without having to stop for further buffering of
413
- * content.
414
- *
415
- * @defaultValue false
416
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canplay_event}
417
- */
418
- canPlay: boolean;
419
- /**
420
- * Whether seeking operations are possible on the current stream. This generally false for
421
- * live streams that are loaded natively.
422
- *
423
- * @defaultValue true
424
- */
425
- readonly canSeek: boolean;
426
- /**
427
- * Limit playback to only play _after_ a certain time. Playback will begin from this time.
428
- *
429
- * @defaultValue 0
430
- */
431
- clipStartTime: number;
432
- /**
433
- * Limit playback to only play _before_ a certain time. Playback will end at this time.
434
- *
435
- * @defaultValue 0
436
- */
437
- clipEndTime: number;
438
- /**
439
- * Indicates whether a user interface should be shown for controlling the resource. Set this to
440
- * `false` when you want to provide your own custom controls, and `true` if you want the current
441
- * provider to supply its own default controls. Depending on the provider, changing this prop
442
- * may cause the player to completely reset.
443
- *
444
- * @defaultValue false
445
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controls}
446
- */
447
- controls: boolean;
448
- /**
449
- * Whether iOS Safari video controls are visible. This will be true if `playsinline` is not set
450
- * or in fullscreen due to lack of a Fullscreen API.
451
- */
452
- readonly iOSControls: boolean;
453
- /**
454
- * Whether native controls should be shown due to the `controls` state or `iOSControls` state.
455
- */
456
- readonly nativeControls: boolean;
457
- /**
458
- * Defines how the media element handles cross-origin requests, thereby enabling the
459
- * configuration of the CORS requests for the element's fetched data.
460
- *
461
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
462
- */
463
- crossOrigin: MediaCrossOrigin | null;
464
- /**
465
- * The URL of the current poster. Defaults to `''` if no media/poster has been given or
466
- * loaded.
467
- *
468
- * @defaultValue ''
469
- */
470
- readonly poster: string;
471
- /**
472
- * A `double` indicating the current playback time in seconds. Defaults to `0` if the media has
473
- * not started to play and has not seeked. Setting this value seeks the media to the new
474
- * time. The value can be set to a minimum of `0` and maximum of the total length of the
475
- * media (indicated by the duration prop).
476
- *
477
- * @defaultValue 0
478
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime}
479
- */
480
- readonly currentTime: number;
481
- /**
482
- * Whether media playback has reached the end. In other words it'll be true
483
- * if `currentTime === duration`.
484
- *
485
- * @defaultValue false
486
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/ended}
487
- */
488
- ended: boolean;
489
- /**
490
- * Contains the most recent media error or undefined if there's been none. You can listen for
491
- * `error` event updates and examine this object to debug further.
492
- *
493
- * @defaultValue null
494
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error}
495
- */
496
- error: MediaErrorDetail | null;
497
- /**
498
- * Whether the player is currently in fullscreen mode.
499
- *
500
- * @defaultValue false
501
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
502
- */
503
- fullscreen: boolean;
504
- /**
505
- * Whether the controls are visible. By default, controls will be hidden when media playback
506
- * is progressing (playing) without any detected user activity for a set period of time
507
- * (default is 2.5s).
508
- *
509
- * @defaultValue false
510
- */
511
- controlsVisible: boolean;
512
- /**
513
- * Whether controls are hidden.
514
- */
515
- readonly controlsHidden: boolean;
516
- /**
517
- * Whether the user has intentionally seeked behind the live edge. The user must've seeked
518
- * roughly 2 or more seconds behind during a live stream for this to be considered true.
519
- *
520
- * @defaultValue false
521
- */
522
- userBehindLiveEdge: boolean;
523
- /**
524
- * Whether media should automatically start playing from the beginning (replay) every time
525
- * it ends.
526
- *
527
- * @defaultValue false
528
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/loop}
529
- */
530
- readonly loop: boolean;
531
- /**
532
- * The current log level. Values in order of priority are: `silent`, `error`, `warn`, `info`,
533
- * and `debug`.
534
- */
535
- logLevel: LogLevel;
536
- /**
537
- * Whether the current media stream is live (i.e., being broadcast right now).
538
- */
539
- live: boolean;
540
- /**
541
- * The number of seconds that `currentTime` can be behind `liveEdgeStart` and still be considered
542
- * at the edge. The default value is 10, meaning the user can be up to 10 seconds behind the
543
- * live edge start and still be considered live.
544
- *
545
- * @defaultValue 10
546
- */
547
- liveEdgeTolerance: number;
548
- /**
549
- * The minimum seekable length in seconds before seeking operations are permitted on live streams.
550
- *
551
- * @defaultValue 60
552
- */
553
- minLiveDVRWindow: number;
554
- /**
555
- * The inferred length of the live DVR window.
556
- */
557
- readonly liveDVRWindow: number;
558
- /**
559
- * Whether the live stream has Digital Video Recording (DVR) enabled.
560
- */
561
- readonly isLiveDVR: boolean;
562
- /**
563
- * Whether the current stream is at the live edge. This is true if:
564
- *
565
- * 1. The player is _not_ in a paused state.
566
- * 2. The user has _not_ intentionally seeked behind live edge start.
567
- * 3. The `currentTime` is greater or equal than `liveEdgeStart`.
568
- *
569
- * This value will default to `false` for non-live streams.
570
- *
571
- * @defaultValue false
572
- */
573
- readonly liveEdge: boolean;
574
- /**
575
- * This is the starting edge of the live stream.
576
- *
577
- * A delay is applied in `hls.js` that's specified by the `liveSyncDurationCount` which is
578
- * expressed as a multiple of `EXT-X-TARGETDURATION` (default value is safely set to 3). If
579
- * set to `m`, playback will start from the fragment at `n-m`, where `n` is the last fragment
580
- * of the live playlist. Decreasing this value is likely to cause playback stalls.
581
- *
582
- * The `seekableEnd` value is used as the live edge start in native playback engines.
583
- *
584
- * @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#hlslivesyncposition}
585
- * @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#livesyncdurationcount}
586
- * @see {@link https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md}
587
- */
588
- readonly liveEdgeStart: number;
589
- /**
590
- * The length of the live edge window in seconds starting from `liveEdgeStart` and ending at
591
- * `seekableEnd`. If the `duration` of the stream is `Infinity` or the stream is non-live then
592
- * this value will default to 0.
593
- */
594
- readonly liveEdgeWindow: number;
595
- /**
596
- * The type of media that is currently active, whether it's audio or video. Defaults
597
- * to `unknown` when no media has been loaded or the type cannot be determined.
598
- *
599
- * @defaultValue 'unknown'
600
- */
601
- mediaType: MediaType;
602
- /**
603
- * Whether the audio is muted or not.
604
- *
605
- * @defaultValue false
606
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/muted}
607
- */
608
- muted: boolean;
609
- /**
610
- * Whether playback should be paused. Defaults to `true` if no media has loaded or playback has
611
- * not started. Setting this to `false` will begin/resume playback.
612
- *
613
- * @defaultValue true
614
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/paused}
615
- */
616
- paused: boolean;
617
- /**
618
- * Contains the ranges of the media source that the browser has played, if any.
619
- *
620
- * @defaultValue TimeRanges
621
- */
622
- played: TimeRanges;
623
- /**
624
- * Whether media is actively playing back. Defaults to `false` if no media has
625
- * loaded or playback has not started.
626
- *
627
- * @defaultValue false
628
- */
629
- playing: boolean;
630
- /**
631
- * Whether the video is to be played "inline", that is within the element's playback area. Note
632
- * that setting this to `false` does not imply that the video will always be played in fullscreen.
633
- * Depending on the provider, changing this prop may cause the player to completely reset.
634
- *
635
- * @defaultValue false
636
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-playsinline}
637
- */
638
- playsInline: boolean;
639
- /**
640
- * Sets the rate at which the media is being played back. This is used to implement user
641
- * controls for fast forward, slow motion, and so forth. The normal playback rate is multiplied
642
- * by this value to obtain the current rate, so a value of 1.0 indicates normal speed.
643
- *
644
- * Examples:
645
- *
646
- * - `0.5` = slow down to 50% of the normal speed
647
- * - `1.5` = speed up normal speed by 50%
648
- * - `2` = double the normal speed
649
- *
650
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate}
651
- */
652
- playbackRate: number;
653
- /**
654
- * Whether the player is currently in picture-in-picture mode.
655
- *
656
- * @defaultValue false
657
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
658
- */
659
- pictureInPicture: boolean;
660
- /**
661
- * Configures the preload setting of the underlying media provider once it can load (see
662
- * `loading` property).
663
- *
664
- * The `preload` attribute provides a hint to the browser about what the author thinks will
665
- * lead to the best user experience with regards to what content is loaded before the video is
666
- * played. The recommended default is `metadata`.
667
- *
668
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-preload}
669
- */
670
- preload: 'none' | 'metadata' | 'auto';
671
- /**
672
- * Whether auto quality selection is active.
673
- */
674
- autoQuality: boolean;
675
- /**
676
- * The list of available video qualities/renditions. This will be empty if quality information
677
- * is not provided by the current media provider.
678
- */
679
- qualities: VideoQuality[];
680
- /**
681
- * The current playback quality. This will be `null` if quality information is not provided
682
- * by the current media provider.
683
- */
684
- quality: VideoQuality | null;
685
- /**
686
- * The list of available audio tracks. This will be empty if audio track information is not
687
- * provided by the current media provider.
688
- */
689
- audioTracks: AudioTrack[];
690
- /**
691
- * The current audio track. This will be `null` if audio track information is not provided by
692
- * the current media provider.
693
- */
694
- audioTrack: AudioTrack | null;
695
- /**
696
- * The current audio gain. This will be `null` if audio gain is not supported or is not set.
697
- */
698
- audioGain: number | null;
699
- /**
700
- * Whether the current video quality list is read-only, meaning quality selections can only
701
- * be set internally by the media provider. This will only be `false` when working with particular
702
- * third-party embeds such as YouTube.
703
- */
704
- canSetQuality: boolean;
705
- /**
706
- * Whether the current playback rate can be set. This will only be `false` when working with
707
- * particular third-party embeds such as Vimeo (only available to pro/business accounts).
708
- */
709
- canSetPlaybackRate: boolean;
710
- /**
711
- * Whether the current volume can be changed. This depends on the current provider and browser
712
- * environment. It will generally be `false` on mobile devices as it's set by system controls.
713
- */
714
- canSetVolume: boolean;
715
- /**
716
- * Whether the current audio gain can be changed. This depends on the current provider and browser
717
- * environment. It generally depends on browser's Web Audio API support.
718
- *
719
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API}
720
- */
721
- canSetAudioGain: boolean;
722
- /**
723
- * Contains the time ranges that the user is able to seek to, if any. This tells us which parts
724
- * of the media can be played without delay; this is irrespective of whether that part has
725
- * been downloaded or not.
726
- *
727
- * Some parts of the media may be seekable but not buffered if byte-range
728
- * requests are enabled on the server. Byte range requests allow parts of the media file to
729
- * be delivered from the server and so can be ready to play almost immediately — thus they are
730
- * seekable.
731
- *
732
- * @defaultValue TimeRanges
733
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
734
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
735
- */
736
- seekable: TimeRanges;
737
- /**
738
- * Contains the earliest time in seconds at which media can be seeked to. Generally this is
739
- * zero, but for live streams it may start at a non-zero value.
740
- *
741
- * @defaultValue 0
742
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
743
- */
744
- readonly seekableStart: number;
745
- /**
746
- * The latest time in seconds at which media can be seeked to. This will default to `Infinity`
747
- * if no seekable range is found. If byte-range requests are enabled on the server this should
748
- * be equal to the media duration - note for live streams duration is a moving target.
749
- *
750
- * @defaultValue Infinity
751
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
752
- */
753
- readonly seekableEnd: number;
754
- /**
755
- * The length of the seekable window in seconds starting from `seekableStart` and ending at
756
- * `seekableEnd`.
757
- *
758
- * @defaultValue 0
759
- */
760
- readonly seekableWindow: number;
761
- /**
762
- * Whether media is actively seeking to a new playback position.
763
- *
764
- * @defaultValue false
765
- */
766
- seeking: boolean;
767
- /**
768
- * The URL and optionally type of the current media resource/s to be considered for playback.
769
- * Use `source` to get the currently loaded resource.
770
- *
771
- * @defaultValue []
772
- */
773
- sources: Src[];
774
- /**
775
- * The chosen media resource. Defaults to `{ src: '', type: '' }` if no media has been loaded.
776
- *
777
- * @defaultValue { src: '', type: '' }
778
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentSrc}
779
- */
780
- source: Src;
781
- /** Alias for `source`. */
782
- currentSrc: Src;
783
- /**
784
- * Whether media playback has started. In other words it will be true if `currentTime > 0`.
785
- *
786
- * @defaultValue false
787
- */
788
- started: boolean;
789
- /**
790
- * The current media stream type. This value helps determine what type of UI should be
791
- * displayed and whether seeking operations are permitted during live streams. If seeking
792
- * is permitted, set this value to `live:dvr` or `ll-live:dvr`.
793
- */
794
- streamType: MediaStreamType;
795
- /**
796
- * The title of the current media.
797
- */
798
- readonly title: string;
799
- /**
800
- * The artist or channel name for which this content belongs to. This can be used in your
801
- * layout and it will be included in the Media Session API.
802
- */
803
- artist: string;
804
- /**
805
- * Images to be included in the Media Session API.
806
- */
807
- artwork: MediaImage[] | null;
808
- /**
809
- * The list of all available text tracks.
810
- */
811
- textTracks: TextTrack[];
812
- /**
813
- * The current captions/subtitles text track that is showing.
814
- */
815
- textTrack: TextTrack | null;
816
- /**
817
- * Whether there are any captions or subtitles available.
818
- */
819
- readonly hasCaptions: boolean;
820
- /**
821
- * The type of player view that should be used (i.e., audio or video). By default this is set
822
- * to `video`.
823
- *
824
- * @defaultValue 'unknown'
825
- */
826
- viewType: MediaViewType;
827
- /**
828
- * An `int` between `0` (silent) and `1` (loudest) indicating the audio volume. Defaults to `1`.
829
- *
830
- * @defaultValue 1
831
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volume}
832
- */
833
- volume: number;
834
- /**
835
- * Whether playback has temporarily stopped because of a lack of temporary data.
836
- *
837
- * @defaultValue false
838
- */
839
- waiting: boolean;
840
-
841
- // !!! Responsive Design !!!
842
-
843
- /**
844
- * The user's pointing device type.
845
- *
846
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer}
847
- */
848
- pointer: 'fine' | 'coarse';
849
- /**
850
- * The current screen orientation.
851
- */
852
- orientation: 'portrait' | 'landscape';
853
- /**
854
- * The width of the media player container in pixels.
855
- */
856
- width: number;
857
- /**
858
- * The height of the media player container in pixels.
859
- */
860
- height: number;
861
- /**
862
- * The width of the media provider in pixels.
863
- */
864
- mediaWidth: number;
865
- /**
866
- * The height of the media in provider pixels.
867
- */
868
- mediaHeight: number;
869
- /**
870
- * The last keyboard shortcut that was triggered.
871
- */
872
- lastKeyboardAction: {
873
- action: string;
874
- event: KeyboardEvent;
875
- } | null;
876
-
877
- // !!! INTERNALS !!!
878
-
879
- /** @internal */
880
- autoPlaying: boolean;
881
- /** @internal */
882
- providedTitle: string;
883
- /** @internal */
884
- inferredTitle: string;
885
- /** @internal */
886
- providedLoop: boolean;
887
- /** @internal */
888
- userPrefersLoop: boolean;
889
- /** @internal - Unclipped current time. */
890
- realCurrentTime: number;
891
- /** @internal */
892
- providedPoster: string;
893
- /** @internal */
894
- intrinsicDuration: number;
895
- /** @internal */
896
- providedDuration: number;
897
- /** @internal */
898
- inferredPoster: string;
899
- /** @internal */
900
- inferredViewType: MediaViewType;
901
- /** @internal */
902
- providedViewType: MediaViewType;
903
- /** @internal */
904
- providedStreamType: MediaStreamType;
905
- /** @internal */
906
- inferredStreamType: MediaStreamType;
907
- inferredLiveDVRWindow: number;
908
- /** @internal */
909
- liveSyncPosition: number | null;
910
- /** @internal */
911
- savedState: { paused?: boolean; currentTime?: number } | null;
912
- }
913
-
914
- export interface MediaPlayerQuery {
915
- (state: MediaPlayerState): boolean;
916
- }
917
-
918
- export function boundTime(time: number, store: MediaStore) {
919
- const clippedTime = time + store.clipStartTime(),
920
- isStart = Math.floor(time) === Math.floor(store.seekableStart()),
921
- isEnd = Math.floor(clippedTime) === Math.floor(store.seekableEnd());
922
-
923
- if (isStart) {
924
- return store.seekableStart();
925
- }
926
-
927
- if (isEnd) {
928
- return store.seekableEnd();
929
- }
930
-
931
- if (
932
- store.isLiveDVR() &&
933
- store.liveDVRWindow() > 0 &&
934
- clippedTime < store.seekableEnd() - store.liveDVRWindow()
935
- ) {
936
- return store.bufferedStart();
937
- }
938
-
939
- return Math.min(Math.max(store.seekableStart() + 0.1, clippedTime), store.seekableEnd() - 0.1);
940
- }