@hanifhan1f/vidstack 1.12.13

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 (746) hide show
  1. package/.templates/sandbox/favicon-32x32.png +0 -0
  2. package/.templates/sandbox/index.html +42 -0
  3. package/.templates/sandbox/main.ts +137 -0
  4. package/.templates/sandbox/styles.css +68 -0
  5. package/LICENSE +21 -0
  6. package/README.md +22 -0
  7. package/analyze.config.ts +133 -0
  8. package/build/build-styles.js +33 -0
  9. package/build/rollup-decorators.ts +102 -0
  10. package/build/rollup-minify.js +20 -0
  11. package/build/rollup-ts.js +57 -0
  12. package/npm/analyze.json.d.ts +8 -0
  13. package/npm/bundle.d.ts +1 -0
  14. package/npm/dom.d.ts +91 -0
  15. package/npm/empty.vtt +1 -0
  16. package/npm/google-cast.d.ts +1422 -0
  17. package/npm/player/index.d.ts +3 -0
  18. package/npm/player/layouts/default.d.ts +3 -0
  19. package/npm/player/layouts/index.d.ts +3 -0
  20. package/npm/player/layouts/plyr.d.ts +3 -0
  21. package/npm/player/ui.d.ts +3 -0
  22. package/npm/tailwind.cjs +101 -0
  23. package/npm/tailwind.d.cts +15 -0
  24. package/package.json +283 -0
  25. package/rollup.config.ts +442 -0
  26. package/src/components/aria/announcer.ts +181 -0
  27. package/src/components/layouts/default/audio-layout.ts +20 -0
  28. package/src/components/layouts/default/context.ts +15 -0
  29. package/src/components/layouts/default/default-layout.ts +67 -0
  30. package/src/components/layouts/default/props.ts +143 -0
  31. package/src/components/layouts/default/translations.ts +70 -0
  32. package/src/components/layouts/default/video-layout.ts +20 -0
  33. package/src/components/layouts/plyr/context.ts +13 -0
  34. package/src/components/layouts/plyr/plyr-layout.ts +90 -0
  35. package/src/components/layouts/plyr/props.ts +114 -0
  36. package/src/components/layouts/plyr/translations.ts +53 -0
  37. package/src/components/player.ts +758 -0
  38. package/src/components/provider/provider.ts +184 -0
  39. package/src/components/provider/source-select.ts +378 -0
  40. package/src/components/provider/tracks.ts +37 -0
  41. package/src/components/ui/buttons/airplay-button.ts +74 -0
  42. package/src/components/ui/buttons/caption-button.ts +68 -0
  43. package/src/components/ui/buttons/fullscreen-button.ts +90 -0
  44. package/src/components/ui/buttons/google-cast-button.ts +75 -0
  45. package/src/components/ui/buttons/live-button.ts +76 -0
  46. package/src/components/ui/buttons/mute-button.ts +69 -0
  47. package/src/components/ui/buttons/pip-button.ts +71 -0
  48. package/src/components/ui/buttons/play-button.ts +62 -0
  49. package/src/components/ui/buttons/seek-button.ts +92 -0
  50. package/src/components/ui/buttons/toggle-button-controller.ts +92 -0
  51. package/src/components/ui/buttons/toggle-button.ts +49 -0
  52. package/src/components/ui/captions/captions-renderer.ts +63 -0
  53. package/src/components/ui/captions/captions.ts +227 -0
  54. package/src/components/ui/controls-group.ts +13 -0
  55. package/src/components/ui/controls.ts +101 -0
  56. package/src/components/ui/gesture.ts +252 -0
  57. package/src/components/ui/menu/menu-button.ts +95 -0
  58. package/src/components/ui/menu/menu-context.ts +27 -0
  59. package/src/components/ui/menu/menu-focus-controller.ts +205 -0
  60. package/src/components/ui/menu/menu-item.ts +9 -0
  61. package/src/components/ui/menu/menu-items.ts +129 -0
  62. package/src/components/ui/menu/menu-portal.ts +105 -0
  63. package/src/components/ui/menu/menu.ts +612 -0
  64. package/src/components/ui/menu/radio/radio-controller.ts +18 -0
  65. package/src/components/ui/menu/radio/radio-group-controller.ts +81 -0
  66. package/src/components/ui/menu/radio/radio-group.ts +78 -0
  67. package/src/components/ui/menu/radio/radio.ts +151 -0
  68. package/src/components/ui/menu/radio-groups/audio-gain-radio-group.ts +116 -0
  69. package/src/components/ui/menu/radio-groups/audio-radio-group.ts +121 -0
  70. package/src/components/ui/menu/radio-groups/captions-radio-group.ts +153 -0
  71. package/src/components/ui/menu/radio-groups/chapters-radio-group.ts +211 -0
  72. package/src/components/ui/menu/radio-groups/quality-radio-group.ts +181 -0
  73. package/src/components/ui/menu/radio-groups/speed-radio-group.ts +112 -0
  74. package/src/components/ui/popper/popper.ts +103 -0
  75. package/src/components/ui/poster.ts +187 -0
  76. package/src/components/ui/sliders/audio-gain-slider.ts +150 -0
  77. package/src/components/ui/sliders/quality-slider.ts +148 -0
  78. package/src/components/ui/sliders/slider/api/cssvars.ts +10 -0
  79. package/src/components/ui/sliders/slider/api/events.ts +65 -0
  80. package/src/components/ui/sliders/slider/api/state.ts +101 -0
  81. package/src/components/ui/sliders/slider/events-controller.ts +383 -0
  82. package/src/components/ui/sliders/slider/format.ts +12 -0
  83. package/src/components/ui/sliders/slider/slider-context.ts +18 -0
  84. package/src/components/ui/sliders/slider/slider-controller.ts +211 -0
  85. package/src/components/ui/sliders/slider/slider.ts +94 -0
  86. package/src/components/ui/sliders/slider/types.ts +1 -0
  87. package/src/components/ui/sliders/slider/utils.ts +14 -0
  88. package/src/components/ui/sliders/slider-preview.ts +131 -0
  89. package/src/components/ui/sliders/slider-thumbnail.ts +28 -0
  90. package/src/components/ui/sliders/slider-value.ts +122 -0
  91. package/src/components/ui/sliders/slider-video.ts +198 -0
  92. package/src/components/ui/sliders/speed-slider.ts +147 -0
  93. package/src/components/ui/sliders/time-slider/slider-chapters.ts +444 -0
  94. package/src/components/ui/sliders/time-slider/time-slider.ts +319 -0
  95. package/src/components/ui/sliders/volume-slider.ts +145 -0
  96. package/src/components/ui/thumbnails/thumbnail-loader.ts +324 -0
  97. package/src/components/ui/thumbnails/thumbnail.ts +244 -0
  98. package/src/components/ui/time.ts +191 -0
  99. package/src/components/ui/tooltip/tooltip-content.ts +105 -0
  100. package/src/components/ui/tooltip/tooltip-context.ts +13 -0
  101. package/src/components/ui/tooltip/tooltip-trigger.ts +49 -0
  102. package/src/components/ui/tooltip/tooltip.ts +127 -0
  103. package/src/core/api/media-attrs.ts +35 -0
  104. package/src/core/api/media-context.ts +52 -0
  105. package/src/core/api/media-events.ts +601 -0
  106. package/src/core/api/media-request-events.ts +323 -0
  107. package/src/core/api/player-controller.ts +10 -0
  108. package/src/core/api/player-events.ts +49 -0
  109. package/src/core/api/player-props.ts +233 -0
  110. package/src/core/api/player-state.ts +940 -0
  111. package/src/core/api/src-types.ts +97 -0
  112. package/src/core/api/types.ts +69 -0
  113. package/src/core/controls.ts +251 -0
  114. package/src/core/font/font-options.ts +106 -0
  115. package/src/core/font/font-vars.ts +107 -0
  116. package/src/core/keyboard/aria-shortcuts.ts +42 -0
  117. package/src/core/keyboard/controller.ts +302 -0
  118. package/src/core/keyboard/types.ts +40 -0
  119. package/src/core/quality/events.ts +48 -0
  120. package/src/core/quality/symbols.ts +8 -0
  121. package/src/core/quality/utils.ts +13 -0
  122. package/src/core/quality/video-quality.ts +86 -0
  123. package/src/core/state/media-events-logger.ts +67 -0
  124. package/src/core/state/media-load-controller.ts +40 -0
  125. package/src/core/state/media-player-delegate.ts +170 -0
  126. package/src/core/state/media-request-manager.ts +952 -0
  127. package/src/core/state/media-state-manager.ts +1077 -0
  128. package/src/core/state/media-state-sync.ts +162 -0
  129. package/src/core/state/media-storage.ts +196 -0
  130. package/src/core/state/navigator-media-session.ts +62 -0
  131. package/src/core/state/remote-control.ts +584 -0
  132. package/src/core/state/tracked-media-events.ts +22 -0
  133. package/src/core/time-ranges.ts +130 -0
  134. package/src/core/tracks/audio/audio-tracks.ts +33 -0
  135. package/src/core/tracks/audio/events.ts +41 -0
  136. package/src/core/tracks/text/events.ts +52 -0
  137. package/src/core/tracks/text/render/libass-text-renderer.ts +246 -0
  138. package/src/core/tracks/text/render/native-text-renderer.ts +106 -0
  139. package/src/core/tracks/text/render/text-renderer.ts +134 -0
  140. package/src/core/tracks/text/symbols.ts +17 -0
  141. package/src/core/tracks/text/text-track.test.ts +407 -0
  142. package/src/core/tracks/text/text-track.ts +413 -0
  143. package/src/core/tracks/text/text-tracks.ts +210 -0
  144. package/src/core/tracks/text/utils.ts +85 -0
  145. package/src/elements/bundles/cdn/player.core.ts +6 -0
  146. package/src/elements/bundles/cdn/player.ts +8 -0
  147. package/src/elements/bundles/cdn/plyr.ts +6 -0
  148. package/src/elements/bundles/cdn-legacy/player-with-default.ts +4 -0
  149. package/src/elements/bundles/cdn-legacy/player-with-layouts.ts +4 -0
  150. package/src/elements/bundles/cdn-legacy/player-with-plyr.ts +3 -0
  151. package/src/elements/bundles/cdn-legacy/player.ts +3 -0
  152. package/src/elements/bundles/icons.ts +3 -0
  153. package/src/elements/bundles/player-layouts/default.ts +7 -0
  154. package/src/elements/bundles/player-layouts/index.ts +9 -0
  155. package/src/elements/bundles/player-layouts/plyr.ts +65 -0
  156. package/src/elements/bundles/player-ui.ts +108 -0
  157. package/src/elements/bundles/player.ts +7 -0
  158. package/src/elements/define/announcer-element.ts +20 -0
  159. package/src/elements/define/buttons/airplay-button-element.ts +21 -0
  160. package/src/elements/define/buttons/caption-button-element.ts +22 -0
  161. package/src/elements/define/buttons/fullscreen-button-element.ts +22 -0
  162. package/src/elements/define/buttons/google-cast-button-element.ts +21 -0
  163. package/src/elements/define/buttons/live-button-element.ts +22 -0
  164. package/src/elements/define/buttons/mute-button-element.ts +23 -0
  165. package/src/elements/define/buttons/pip-button-element.ts +22 -0
  166. package/src/elements/define/buttons/play-button-element.ts +23 -0
  167. package/src/elements/define/buttons/seek-button-element.ts +26 -0
  168. package/src/elements/define/buttons/toggle-button-element.ts +21 -0
  169. package/src/elements/define/captions-element.ts +20 -0
  170. package/src/elements/define/chapter-title-element.ts +54 -0
  171. package/src/elements/define/controls-element.ts +26 -0
  172. package/src/elements/define/controls-group-element.ts +26 -0
  173. package/src/elements/define/gesture-element.ts +24 -0
  174. package/src/elements/define/layouts/default/audio-layout-element.ts +137 -0
  175. package/src/elements/define/layouts/default/audio-layout.ts +113 -0
  176. package/src/elements/define/layouts/default/icons-loader.ts +17 -0
  177. package/src/elements/define/layouts/default/icons.ts +86 -0
  178. package/src/elements/define/layouts/default/slots.ts +12 -0
  179. package/src/elements/define/layouts/default/ui/announcer.ts +14 -0
  180. package/src/elements/define/layouts/default/ui/buttons.ts +291 -0
  181. package/src/elements/define/layouts/default/ui/captions.ts +14 -0
  182. package/src/elements/define/layouts/default/ui/controls.ts +5 -0
  183. package/src/elements/define/layouts/default/ui/keyboard-display.ts +114 -0
  184. package/src/elements/define/layouts/default/ui/menu/accessibility-menu.ts +79 -0
  185. package/src/elements/define/layouts/default/ui/menu/audio-menu.ts +135 -0
  186. package/src/elements/define/layouts/default/ui/menu/captions-menu.ts +114 -0
  187. package/src/elements/define/layouts/default/ui/menu/chapters-menu.ts +117 -0
  188. package/src/elements/define/layouts/default/ui/menu/episodes-menu.ts +133 -0
  189. package/src/elements/define/layouts/default/ui/menu/font-menu.ts +253 -0
  190. package/src/elements/define/layouts/default/ui/menu/items/menu-checkbox.ts +67 -0
  191. package/src/elements/define/layouts/default/ui/menu/items/menu-items.ts +108 -0
  192. package/src/elements/define/layouts/default/ui/menu/items/menu-slider.ts +59 -0
  193. package/src/elements/define/layouts/default/ui/menu/menu-portal.ts +56 -0
  194. package/src/elements/define/layouts/default/ui/menu/playback-menu.ts +183 -0
  195. package/src/elements/define/layouts/default/ui/menu/settings-menu.ts +98 -0
  196. package/src/elements/define/layouts/default/ui/slider.ts +112 -0
  197. package/src/elements/define/layouts/default/ui/time.ts +41 -0
  198. package/src/elements/define/layouts/default/ui/title.ts +25 -0
  199. package/src/elements/define/layouts/default/ui/utils.ts +10 -0
  200. package/src/elements/define/layouts/default/video-layout-element.ts +125 -0
  201. package/src/elements/define/layouts/default/video-layout.ts +353 -0
  202. package/src/elements/define/layouts/icons/icons-loader.ts +47 -0
  203. package/src/elements/define/layouts/icons/layout-icons-loader.ts +24 -0
  204. package/src/elements/define/layouts/layout-element.ts +78 -0
  205. package/src/elements/define/layouts/layout-name.ts +15 -0
  206. package/src/elements/define/layouts/plyr/icons/plyr-airplay.js +1 -0
  207. package/src/elements/define/layouts/plyr/icons/plyr-captions-off.js +1 -0
  208. package/src/elements/define/layouts/plyr/icons/plyr-captions-on.js +1 -0
  209. package/src/elements/define/layouts/plyr/icons/plyr-download.js +1 -0
  210. package/src/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.js +1 -0
  211. package/src/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.js +1 -0
  212. package/src/elements/define/layouts/plyr/icons/plyr-fast-forward.js +1 -0
  213. package/src/elements/define/layouts/plyr/icons/plyr-muted.js +1 -0
  214. package/src/elements/define/layouts/plyr/icons/plyr-pause.js +1 -0
  215. package/src/elements/define/layouts/plyr/icons/plyr-pip.js +1 -0
  216. package/src/elements/define/layouts/plyr/icons/plyr-play.js +1 -0
  217. package/src/elements/define/layouts/plyr/icons/plyr-restart.js +1 -0
  218. package/src/elements/define/layouts/plyr/icons/plyr-rewind.js +1 -0
  219. package/src/elements/define/layouts/plyr/icons/plyr-settings.js +1 -0
  220. package/src/elements/define/layouts/plyr/icons/plyr-volume.js +1 -0
  221. package/src/elements/define/layouts/plyr/icons-loader.ts +21 -0
  222. package/src/elements/define/layouts/plyr/icons.ts +34 -0
  223. package/src/elements/define/layouts/plyr/plyr-layout-element.ts +67 -0
  224. package/src/elements/define/layouts/plyr/ui.ts +657 -0
  225. package/src/elements/define/layouts/slot-manager.ts +61 -0
  226. package/src/elements/define/layouts/slot-observer.ts +70 -0
  227. package/src/elements/define/menus/_template.ts +47 -0
  228. package/src/elements/define/menus/audio-gain-group-element.ts +37 -0
  229. package/src/elements/define/menus/audio-radio-group-element.ts +37 -0
  230. package/src/elements/define/menus/captions-radio-group-element.ts +37 -0
  231. package/src/elements/define/menus/chapters-radio-group-element.ts +68 -0
  232. package/src/elements/define/menus/menu-button-element.ts +27 -0
  233. package/src/elements/define/menus/menu-element.ts +28 -0
  234. package/src/elements/define/menus/menu-item-element.ts +24 -0
  235. package/src/elements/define/menus/menu-items-element.ts +27 -0
  236. package/src/elements/define/menus/menu-portal-element.ts +35 -0
  237. package/src/elements/define/menus/quality-radio-group-element.ts +51 -0
  238. package/src/elements/define/menus/radio-element.ts +24 -0
  239. package/src/elements/define/menus/radio-group-element.ts +24 -0
  240. package/src/elements/define/menus/speed-radio-group-element.ts +37 -0
  241. package/src/elements/define/player-element.ts +33 -0
  242. package/src/elements/define/poster-element.ts +53 -0
  243. package/src/elements/define/provider-cast-display.ts +36 -0
  244. package/src/elements/define/provider-element.ts +158 -0
  245. package/src/elements/define/sliders/audio-gain-slider-element.ts +34 -0
  246. package/src/elements/define/sliders/quality-slider-element.ts +34 -0
  247. package/src/elements/define/sliders/slider-chapters-element.ts +53 -0
  248. package/src/elements/define/sliders/slider-element.ts +25 -0
  249. package/src/elements/define/sliders/slider-preview-element.ts +16 -0
  250. package/src/elements/define/sliders/slider-steps-element.ts +50 -0
  251. package/src/elements/define/sliders/slider-thumbnail-element.ts +48 -0
  252. package/src/elements/define/sliders/slider-value-element.ts +49 -0
  253. package/src/elements/define/sliders/slider-video-element.ts +59 -0
  254. package/src/elements/define/sliders/speed-slider-element.ts +34 -0
  255. package/src/elements/define/sliders/time-slider-element.ts +34 -0
  256. package/src/elements/define/sliders/volume-slider-element.ts +34 -0
  257. package/src/elements/define/spinner-element.ts +96 -0
  258. package/src/elements/define/thumbnail-element.ts +63 -0
  259. package/src/elements/define/time-element.ts +32 -0
  260. package/src/elements/define/title-element.ts +38 -0
  261. package/src/elements/define/tooltips/tooltip-content-element.ts +28 -0
  262. package/src/elements/define/tooltips/tooltip-element.ts +28 -0
  263. package/src/elements/define/tooltips/tooltip-trigger-element.ts +32 -0
  264. package/src/elements/icon.ts +30 -0
  265. package/src/elements/index.ts +71 -0
  266. package/src/elements/lit/directives/signal.ts +80 -0
  267. package/src/elements/lit/html.ts +11 -0
  268. package/src/elements/lit/lit-element.ts +23 -0
  269. package/src/elements/state-controller.ts +48 -0
  270. package/src/exports/components.ts +79 -0
  271. package/src/exports/core.ts +41 -0
  272. package/src/exports/events.ts +46 -0
  273. package/src/exports/font.ts +3 -0
  274. package/src/exports/foundation.ts +8 -0
  275. package/src/exports/maverick.ts +9 -0
  276. package/src/exports/providers.ts +42 -0
  277. package/src/exports/utils.ts +18 -0
  278. package/src/foundation/fullscreen/controller.ts +128 -0
  279. package/src/foundation/fullscreen/events.ts +26 -0
  280. package/src/foundation/list/list.ts +127 -0
  281. package/src/foundation/list/select-list.ts +86 -0
  282. package/src/foundation/list/symbols.ts +22 -0
  283. package/src/foundation/logger/colors.ts +33 -0
  284. package/src/foundation/logger/controller.ts +71 -0
  285. package/src/foundation/logger/events.ts +29 -0
  286. package/src/foundation/logger/grouped-log.ts +44 -0
  287. package/src/foundation/logger/log-level.ts +17 -0
  288. package/src/foundation/logger/log-printer.ts +119 -0
  289. package/src/foundation/logger/ms.ts +31 -0
  290. package/src/foundation/observers/focus-visible.ts +74 -0
  291. package/src/foundation/observers/intersection-observer.ts +60 -0
  292. package/src/foundation/observers/page-visibility.ts +105 -0
  293. package/src/foundation/observers/raf-loop.ts +29 -0
  294. package/src/foundation/orientation/controller.ts +139 -0
  295. package/src/foundation/orientation/events.ts +20 -0
  296. package/src/foundation/orientation/types.ts +96 -0
  297. package/src/foundation/queue/queue.ts +41 -0
  298. package/src/foundation/queue/request-queue.test.ts +139 -0
  299. package/src/foundation/queue/request-queue.ts +94 -0
  300. package/src/global/layouts/default.ts +28 -0
  301. package/src/global/layouts/loader.ts +5 -0
  302. package/src/global/layouts/plyr.ts +24 -0
  303. package/src/global/player.ts +144 -0
  304. package/src/global/plyr.ts +917 -0
  305. package/src/globals.d.ts +11 -0
  306. package/src/index.ts +10 -0
  307. package/src/plugins.ts +369 -0
  308. package/src/providers/audio/loader.ts +45 -0
  309. package/src/providers/audio/provider.ts +50 -0
  310. package/src/providers/dash/dash.ts +417 -0
  311. package/src/providers/dash/events.ts +585 -0
  312. package/src/providers/dash/lib-loader.ts +202 -0
  313. package/src/providers/dash/loader.ts +33 -0
  314. package/src/providers/dash/provider.ts +135 -0
  315. package/src/providers/dash/types.ts +21 -0
  316. package/src/providers/embed/EmbedProvider.ts +84 -0
  317. package/src/providers/google-cast/events.ts +53 -0
  318. package/src/providers/google-cast/loader.ts +174 -0
  319. package/src/providers/google-cast/media-info.ts +49 -0
  320. package/src/providers/google-cast/provider.ts +483 -0
  321. package/src/providers/google-cast/tracks.ts +170 -0
  322. package/src/providers/google-cast/types.ts +3 -0
  323. package/src/providers/google-cast/utils.ts +112 -0
  324. package/src/providers/hls/events.ts +472 -0
  325. package/src/providers/hls/hls.ts +290 -0
  326. package/src/providers/hls/lib-loader.ts +178 -0
  327. package/src/providers/hls/loader.ts +33 -0
  328. package/src/providers/hls/provider.ts +137 -0
  329. package/src/providers/hls/types.ts +10 -0
  330. package/src/providers/html/audio/audio-context.ts +60 -0
  331. package/src/providers/html/audio/audio-gain.ts +100 -0
  332. package/src/providers/html/html/342/200/223media-events.ts +338 -0
  333. package/src/providers/html/native-audio-tracks.ts +91 -0
  334. package/src/providers/html/provider.ts +141 -0
  335. package/src/providers/html/remote-playback.ts +94 -0
  336. package/src/providers/type-check.ts +61 -0
  337. package/src/providers/types.ts +95 -0
  338. package/src/providers/video/loader.ts +45 -0
  339. package/src/providers/video/native-hls-text-tracks.ts +69 -0
  340. package/src/providers/video/picture-in-picture.ts +54 -0
  341. package/src/providers/video/presentation/events.ts +12 -0
  342. package/src/providers/video/presentation/video-presentation.ts +110 -0
  343. package/src/providers/video/provider.ts +91 -0
  344. package/src/providers/vimeo/embed/command.ts +118 -0
  345. package/src/providers/vimeo/embed/event.ts +124 -0
  346. package/src/providers/vimeo/embed/message.ts +9 -0
  347. package/src/providers/vimeo/embed/misc.ts +57 -0
  348. package/src/providers/vimeo/embed/params.ts +168 -0
  349. package/src/providers/vimeo/loader.ts +61 -0
  350. package/src/providers/vimeo/provider.ts +730 -0
  351. package/src/providers/vimeo/utils.ts +53 -0
  352. package/src/providers/youtube/embed/command.ts +21 -0
  353. package/src/providers/youtube/embed/event.ts +1 -0
  354. package/src/providers/youtube/embed/message.ts +54 -0
  355. package/src/providers/youtube/embed/params.ts +238 -0
  356. package/src/providers/youtube/embed/quality.ts +35 -0
  357. package/src/providers/youtube/embed/state.ts +13 -0
  358. package/src/providers/youtube/loader.ts +61 -0
  359. package/src/providers/youtube/provider.ts +403 -0
  360. package/src/providers/youtube/utils.ts +45 -0
  361. package/src/tailwind.test.ts +413 -0
  362. package/src/test-utils/index.ts +22 -0
  363. package/src/test-utils/setup.ts +3 -0
  364. package/src/utils/aria.ts +14 -0
  365. package/src/utils/array.ts +3 -0
  366. package/src/utils/color.ts +5 -0
  367. package/src/utils/dom.ts +458 -0
  368. package/src/utils/error.ts +11 -0
  369. package/src/utils/language.ts +16 -0
  370. package/src/utils/manifest.ts +61 -0
  371. package/src/utils/mime.ts +101 -0
  372. package/src/utils/network.ts +118 -0
  373. package/src/utils/number.ts +25 -0
  374. package/src/utils/promise.ts +12 -0
  375. package/src/utils/scroll.ts +19 -0
  376. package/src/utils/support.ts +163 -0
  377. package/src/utils/time.test.ts +111 -0
  378. package/src/utils/time.ts +123 -0
  379. package/styles/player/base.css +153 -0
  380. package/styles/player/default/buffering.css +55 -0
  381. package/styles/player/default/buttons.css +175 -0
  382. package/styles/player/default/captions.css +181 -0
  383. package/styles/player/default/chapter-title.css +26 -0
  384. package/styles/player/default/controls.css +56 -0
  385. package/styles/player/default/gestures.css +19 -0
  386. package/styles/player/default/icons.css +6 -0
  387. package/styles/player/default/keyboard.css +148 -0
  388. package/styles/player/default/layouts/audio.css +417 -0
  389. package/styles/player/default/layouts/video.css +1082 -0
  390. package/styles/player/default/menus.css +959 -0
  391. package/styles/player/default/poster.css +52 -0
  392. package/styles/player/default/sliders.css +391 -0
  393. package/styles/player/default/theme.css +2461 -0
  394. package/styles/player/default/thumbnail.css +40 -0
  395. package/styles/player/default/time.css +45 -0
  396. package/styles/player/default/tooltips.css +141 -0
  397. package/styles/player/plyr/theme.css +1237 -0
  398. package/tsconfig.build.json +9 -0
  399. package/tsconfig.json +11 -0
  400. package/types/components/aria/announcer.d.ts +27 -0
  401. package/types/components/layouts/default/audio-layout.d.ts +15 -0
  402. package/types/components/layouts/default/context.d.ts +9 -0
  403. package/types/components/layouts/default/default-layout.d.ts +10 -0
  404. package/types/components/layouts/default/props.d.ts +125 -0
  405. package/types/components/layouts/default/translations.d.ts +6 -0
  406. package/types/components/layouts/default/video-layout.d.ts +15 -0
  407. package/types/components/layouts/plyr/context.d.ts +7 -0
  408. package/types/components/layouts/plyr/plyr-layout.d.ts +9 -0
  409. package/types/components/layouts/plyr/props.d.ts +68 -0
  410. package/types/components/layouts/plyr/translations.d.ts +6 -0
  411. package/types/components/player.d.ts +214 -0
  412. package/types/components/provider/provider.d.ts +24 -0
  413. package/types/components/provider/source-select.d.ts +10 -0
  414. package/types/components/provider/tracks.d.ts +7 -0
  415. package/types/components/ui/buttons/airplay-button.d.ts +23 -0
  416. package/types/components/ui/buttons/caption-button.d.ts +21 -0
  417. package/types/components/ui/buttons/fullscreen-button.d.ts +28 -0
  418. package/types/components/ui/buttons/google-cast-button.d.ts +23 -0
  419. package/types/components/ui/buttons/live-button.d.ts +30 -0
  420. package/types/components/ui/buttons/mute-button.d.ts +21 -0
  421. package/types/components/ui/buttons/pip-button.d.ts +22 -0
  422. package/types/components/ui/buttons/play-button.d.ts +21 -0
  423. package/types/components/ui/buttons/seek-button.d.ts +32 -0
  424. package/types/components/ui/buttons/toggle-button-controller.d.ts +20 -0
  425. package/types/components/ui/buttons/toggle-button.d.ts +29 -0
  426. package/types/components/ui/captions/captions-renderer.d.ts +12 -0
  427. package/types/components/ui/captions/captions.d.ts +22 -0
  428. package/types/components/ui/controls-group.d.ts +9 -0
  429. package/types/components/ui/controls.d.ts +38 -0
  430. package/types/components/ui/gesture.d.ts +64 -0
  431. package/types/components/ui/menu/menu-button.d.ts +37 -0
  432. package/types/components/ui/menu/menu-context.d.ts +23 -0
  433. package/types/components/ui/menu/menu-focus-controller.d.ts +14 -0
  434. package/types/components/ui/menu/menu-item.d.ts +9 -0
  435. package/types/components/ui/menu/menu-items.d.ts +44 -0
  436. package/types/components/ui/menu/menu-portal.d.ts +31 -0
  437. package/types/components/ui/menu/menu.d.ts +66 -0
  438. package/types/components/ui/menu/radio/radio-controller.d.ts +14 -0
  439. package/types/components/ui/menu/radio/radio-group-controller.d.ts +11 -0
  440. package/types/components/ui/menu/radio/radio-group.d.ts +40 -0
  441. package/types/components/ui/menu/radio/radio.d.ts +50 -0
  442. package/types/components/ui/menu/radio-groups/audio-gain-radio-group.d.ts +36 -0
  443. package/types/components/ui/menu/radio-groups/audio-radio-group.d.ts +37 -0
  444. package/types/components/ui/menu/radio-groups/captions-radio-group.d.ts +38 -0
  445. package/types/components/ui/menu/radio-groups/chapters-radio-group.d.ts +46 -0
  446. package/types/components/ui/menu/radio-groups/quality-radio-group.d.ts +48 -0
  447. package/types/components/ui/menu/radio-groups/speed-radio-group.d.ts +36 -0
  448. package/types/components/ui/popper/popper.d.ts +15 -0
  449. package/types/components/ui/poster.d.ts +47 -0
  450. package/types/components/ui/sliders/audio-gain-slider.d.ts +43 -0
  451. package/types/components/ui/sliders/quality-slider.d.ts +34 -0
  452. package/types/components/ui/sliders/slider/api/cssvars.d.ts +10 -0
  453. package/types/components/ui/sliders/slider/api/events.d.ts +57 -0
  454. package/types/components/ui/sliders/slider/api/state.d.ts +68 -0
  455. package/types/components/ui/sliders/slider/events-controller.d.ts +23 -0
  456. package/types/components/ui/sliders/slider/format.d.ts +8 -0
  457. package/types/components/ui/sliders/slider/slider-context.d.ts +13 -0
  458. package/types/components/ui/sliders/slider/slider-controller.d.ts +59 -0
  459. package/types/components/ui/sliders/slider/slider.d.ts +39 -0
  460. package/types/components/ui/sliders/slider/types.d.ts +1 -0
  461. package/types/components/ui/sliders/slider/utils.d.ts +2 -0
  462. package/types/components/ui/sliders/slider-preview.d.ts +34 -0
  463. package/types/components/ui/sliders/slider-thumbnail.d.ts +16 -0
  464. package/types/components/ui/sliders/slider-value.d.ts +59 -0
  465. package/types/components/ui/sliders/slider-video.d.ts +73 -0
  466. package/types/components/ui/sliders/speed-slider.d.ts +42 -0
  467. package/types/components/ui/sliders/time-slider/slider-chapters.d.ts +36 -0
  468. package/types/components/ui/sliders/time-slider/time-slider.d.ts +56 -0
  469. package/types/components/ui/sliders/volume-slider.d.ts +35 -0
  470. package/types/components/ui/thumbnails/thumbnail-loader.d.ts +47 -0
  471. package/types/components/ui/thumbnails/thumbnail.d.ts +50 -0
  472. package/types/components/ui/time.d.ts +62 -0
  473. package/types/components/ui/tooltip/tooltip-content.d.ts +39 -0
  474. package/types/components/ui/tooltip/tooltip-context.d.ts +11 -0
  475. package/types/components/ui/tooltip/tooltip-trigger.d.ts +14 -0
  476. package/types/components/ui/tooltip/tooltip.d.ts +23 -0
  477. package/types/core/api/media-attrs.d.ts +3 -0
  478. package/types/core/api/media-context.d.ts +37 -0
  479. package/types/core/api/media-events.d.ts +581 -0
  480. package/types/core/api/media-request-events.d.ts +319 -0
  481. package/types/core/api/player-controller.d.ts +6 -0
  482. package/types/core/api/player-events.d.ts +38 -0
  483. package/types/core/api/player-props.d.ts +163 -0
  484. package/types/core/api/player-state.d.ts +656 -0
  485. package/types/core/api/src-types.d.ts +50 -0
  486. package/types/core/api/types.d.ts +54 -0
  487. package/types/core/controls.d.ts +43 -0
  488. package/types/core/font/font-options.d.ts +42 -0
  489. package/types/core/font/font-vars.d.ts +1 -0
  490. package/types/core/keyboard/aria-shortcuts.d.ts +6 -0
  491. package/types/core/keyboard/controller.d.ts +9 -0
  492. package/types/core/keyboard/types.d.ts +33 -0
  493. package/types/core/quality/events.d.ts +43 -0
  494. package/types/core/quality/symbols.d.ts +6 -0
  495. package/types/core/quality/utils.d.ts +2 -0
  496. package/types/core/quality/video-quality.d.ts +52 -0
  497. package/types/core/state/media-events-logger.d.ts +7 -0
  498. package/types/core/state/media-load-controller.d.ts +6 -0
  499. package/types/core/state/media-player-delegate.d.ts +13 -0
  500. package/types/core/state/media-request-manager.d.ts +71 -0
  501. package/types/core/state/media-state-manager.d.ts +59 -0
  502. package/types/core/state/media-state-sync.d.ts +8 -0
  503. package/types/core/state/media-storage.d.ts +74 -0
  504. package/types/core/state/navigator-media-session.d.ts +5 -0
  505. package/types/core/state/remote-control.d.ts +288 -0
  506. package/types/core/state/tracked-media-events.d.ts +2 -0
  507. package/types/core/time-ranges.d.ts +12 -0
  508. package/types/core/tracks/audio/audio-tracks.d.ts +32 -0
  509. package/types/core/tracks/audio/events.d.ts +37 -0
  510. package/types/core/tracks/text/events.d.ts +49 -0
  511. package/types/core/tracks/text/render/libass-text-renderer.d.ts +181 -0
  512. package/types/core/tracks/text/render/native-text-renderer.d.ts +13 -0
  513. package/types/core/tracks/text/render/text-renderer.d.ts +17 -0
  514. package/types/core/tracks/text/symbols.d.ts +11 -0
  515. package/types/core/tracks/text/text-track.d.ts +137 -0
  516. package/types/core/tracks/text/text-tracks.d.ts +55 -0
  517. package/types/core/tracks/text/utils.d.ts +8 -0
  518. package/types/elements/bundles/cdn/player.core.d.ts +5 -0
  519. package/types/elements/bundles/cdn/player.d.ts +7 -0
  520. package/types/elements/bundles/cdn/plyr.d.ts +5 -0
  521. package/types/elements/bundles/cdn-legacy/player-with-default.d.ts +4 -0
  522. package/types/elements/bundles/cdn-legacy/player-with-layouts.d.ts +4 -0
  523. package/types/elements/bundles/cdn-legacy/player-with-plyr.d.ts +3 -0
  524. package/types/elements/bundles/cdn-legacy/player.d.ts +3 -0
  525. package/types/elements/bundles/icons.d.ts +2 -0
  526. package/types/elements/bundles/player-layouts/default.d.ts +1 -0
  527. package/types/elements/bundles/player-layouts/index.d.ts +1 -0
  528. package/types/elements/bundles/player-layouts/plyr.d.ts +1 -0
  529. package/types/elements/bundles/player-ui.d.ts +1 -0
  530. package/types/elements/bundles/player.d.ts +1 -0
  531. package/types/elements/define/announcer-element.d.ts +18 -0
  532. package/types/elements/define/buttons/airplay-button-element.d.ts +19 -0
  533. package/types/elements/define/buttons/caption-button-element.d.ts +20 -0
  534. package/types/elements/define/buttons/fullscreen-button-element.d.ts +20 -0
  535. package/types/elements/define/buttons/google-cast-button-element.d.ts +19 -0
  536. package/types/elements/define/buttons/live-button-element.d.ts +20 -0
  537. package/types/elements/define/buttons/mute-button-element.d.ts +21 -0
  538. package/types/elements/define/buttons/pip-button-element.d.ts +20 -0
  539. package/types/elements/define/buttons/play-button-element.d.ts +21 -0
  540. package/types/elements/define/buttons/seek-button-element.d.ts +24 -0
  541. package/types/elements/define/buttons/toggle-button-element.d.ts +19 -0
  542. package/types/elements/define/captions-element.d.ts +18 -0
  543. package/types/elements/define/chapter-title-element.d.ts +30 -0
  544. package/types/elements/define/controls-element.d.ts +24 -0
  545. package/types/elements/define/controls-group-element.d.ts +24 -0
  546. package/types/elements/define/gesture-element.d.ts +22 -0
  547. package/types/elements/define/layouts/default/audio-layout-element.d.ts +29 -0
  548. package/types/elements/define/layouts/default/audio-layout.d.ts +1 -0
  549. package/types/elements/define/layouts/default/icons-loader.d.ts +5 -0
  550. package/types/elements/define/layouts/default/icons.d.ts +52 -0
  551. package/types/elements/define/layouts/default/slots.d.ts +2 -0
  552. package/types/elements/define/layouts/default/ui/announcer.d.ts +1 -0
  553. package/types/elements/define/layouts/default/ui/buttons.d.ts +31 -0
  554. package/types/elements/define/layouts/default/ui/captions.d.ts +1 -0
  555. package/types/elements/define/layouts/default/ui/controls.d.ts +1 -0
  556. package/types/elements/define/layouts/default/ui/keyboard-display.d.ts +1 -0
  557. package/types/elements/define/layouts/default/ui/menu/accessibility-menu.d.ts +1 -0
  558. package/types/elements/define/layouts/default/ui/menu/audio-menu.d.ts +1 -0
  559. package/types/elements/define/layouts/default/ui/menu/captions-menu.d.ts +1 -0
  560. package/types/elements/define/layouts/default/ui/menu/chapters-menu.d.ts +8 -0
  561. package/types/elements/define/layouts/default/ui/menu/episodes-menu.d.ts +8 -0
  562. package/types/elements/define/layouts/default/ui/menu/font-menu.d.ts +1 -0
  563. package/types/elements/define/layouts/default/ui/menu/items/menu-checkbox.d.ts +8 -0
  564. package/types/elements/define/layouts/default/ui/menu/items/menu-items.d.ts +26 -0
  565. package/types/elements/define/layouts/default/ui/menu/items/menu-slider.d.ts +3 -0
  566. package/types/elements/define/layouts/default/ui/menu/menu-portal.d.ts +4 -0
  567. package/types/elements/define/layouts/default/ui/menu/playback-menu.d.ts +1 -0
  568. package/types/elements/define/layouts/default/ui/menu/settings-menu.d.ts +8 -0
  569. package/types/elements/define/layouts/default/ui/slider.d.ts +10 -0
  570. package/types/elements/define/layouts/default/ui/time.d.ts +3 -0
  571. package/types/elements/define/layouts/default/ui/title.d.ts +2 -0
  572. package/types/elements/define/layouts/default/ui/utils.d.ts +3 -0
  573. package/types/elements/define/layouts/default/video-layout-element.d.ts +29 -0
  574. package/types/elements/define/layouts/default/video-layout.d.ts +5 -0
  575. package/types/elements/define/layouts/icons/icons-loader.d.ts +11 -0
  576. package/types/elements/define/layouts/icons/layout-icons-loader.d.ts +4 -0
  577. package/types/elements/define/layouts/layout-element.d.ts +38 -0
  578. package/types/elements/define/layouts/layout-name.d.ts +2 -0
  579. package/types/elements/define/layouts/plyr/icons/plyr-airplay.d.ts +2 -0
  580. package/types/elements/define/layouts/plyr/icons/plyr-captions-off.d.ts +2 -0
  581. package/types/elements/define/layouts/plyr/icons/plyr-captions-on.d.ts +2 -0
  582. package/types/elements/define/layouts/plyr/icons/plyr-download.d.ts +2 -0
  583. package/types/elements/define/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +2 -0
  584. package/types/elements/define/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +2 -0
  585. package/types/elements/define/layouts/plyr/icons/plyr-fast-forward.d.ts +2 -0
  586. package/types/elements/define/layouts/plyr/icons/plyr-muted.d.ts +2 -0
  587. package/types/elements/define/layouts/plyr/icons/plyr-pause.d.ts +2 -0
  588. package/types/elements/define/layouts/plyr/icons/plyr-pip.d.ts +2 -0
  589. package/types/elements/define/layouts/plyr/icons/plyr-play.d.ts +2 -0
  590. package/types/elements/define/layouts/plyr/icons/plyr-restart.d.ts +2 -0
  591. package/types/elements/define/layouts/plyr/icons/plyr-rewind.d.ts +2 -0
  592. package/types/elements/define/layouts/plyr/icons/plyr-settings.d.ts +2 -0
  593. package/types/elements/define/layouts/plyr/icons/plyr-volume.d.ts +2 -0
  594. package/types/elements/define/layouts/plyr/icons-loader.d.ts +5 -0
  595. package/types/elements/define/layouts/plyr/icons.d.ts +18 -0
  596. package/types/elements/define/layouts/plyr/plyr-layout-element.d.ts +26 -0
  597. package/types/elements/define/layouts/plyr/ui.d.ts +3 -0
  598. package/types/elements/define/layouts/slot-manager.d.ts +7 -0
  599. package/types/elements/define/layouts/slot-observer.d.ts +12 -0
  600. package/types/elements/define/menus/_template.d.ts +7 -0
  601. package/types/elements/define/menus/audio-gain-group-element.d.ts +31 -0
  602. package/types/elements/define/menus/audio-radio-group-element.d.ts +31 -0
  603. package/types/elements/define/menus/captions-radio-group-element.d.ts +31 -0
  604. package/types/elements/define/menus/chapters-radio-group-element.d.ts +36 -0
  605. package/types/elements/define/menus/menu-button-element.d.ts +25 -0
  606. package/types/elements/define/menus/menu-element.d.ts +26 -0
  607. package/types/elements/define/menus/menu-item-element.d.ts +22 -0
  608. package/types/elements/define/menus/menu-items-element.d.ts +25 -0
  609. package/types/elements/define/menus/menu-portal-element.d.ts +25 -0
  610. package/types/elements/define/menus/quality-radio-group-element.d.ts +33 -0
  611. package/types/elements/define/menus/radio-element.d.ts +22 -0
  612. package/types/elements/define/menus/radio-group-element.d.ts +22 -0
  613. package/types/elements/define/menus/speed-radio-group-element.d.ts +31 -0
  614. package/types/elements/define/player-element.d.ts +24 -0
  615. package/types/elements/define/poster-element.d.ts +25 -0
  616. package/types/elements/define/provider-cast-display.d.ts +2 -0
  617. package/types/elements/define/provider-element.d.ts +25 -0
  618. package/types/elements/define/sliders/audio-gain-slider-element.d.ts +32 -0
  619. package/types/elements/define/sliders/quality-slider-element.d.ts +32 -0
  620. package/types/elements/define/sliders/slider-chapters-element.d.ts +31 -0
  621. package/types/elements/define/sliders/slider-element.d.ts +23 -0
  622. package/types/elements/define/sliders/slider-preview-element.d.ts +14 -0
  623. package/types/elements/define/sliders/slider-steps-element.d.ts +28 -0
  624. package/types/elements/define/sliders/slider-thumbnail-element.d.ts +26 -0
  625. package/types/elements/define/sliders/slider-value-element.d.ts +37 -0
  626. package/types/elements/define/sliders/slider-video-element.d.ts +25 -0
  627. package/types/elements/define/sliders/speed-slider-element.d.ts +32 -0
  628. package/types/elements/define/sliders/time-slider-element.d.ts +32 -0
  629. package/types/elements/define/sliders/volume-slider-element.d.ts +32 -0
  630. package/types/elements/define/spinner-element.d.ts +50 -0
  631. package/types/elements/define/thumbnail-element.d.ts +29 -0
  632. package/types/elements/define/time-element.d.ts +24 -0
  633. package/types/elements/define/title-element.d.ts +23 -0
  634. package/types/elements/define/tooltips/tooltip-content-element.d.ts +26 -0
  635. package/types/elements/define/tooltips/tooltip-element.d.ts +26 -0
  636. package/types/elements/define/tooltips/tooltip-trigger-element.d.ts +27 -0
  637. package/types/elements/icon.d.ts +10 -0
  638. package/types/elements/index.d.ts +56 -0
  639. package/types/elements/lit/directives/signal.d.ts +1 -0
  640. package/types/elements/lit/html.d.ts +4 -0
  641. package/types/elements/lit/lit-element.d.ts +8 -0
  642. package/types/elements/state-controller.d.ts +5 -0
  643. package/types/exports/components.d.ts +59 -0
  644. package/types/exports/core.d.ts +26 -0
  645. package/types/exports/events.d.ts +32 -0
  646. package/types/exports/font.d.ts +2 -0
  647. package/types/exports/foundation.d.ts +8 -0
  648. package/types/exports/maverick.d.ts +1 -0
  649. package/types/exports/providers.d.ts +22 -0
  650. package/types/exports/utils.d.ts +4 -0
  651. package/types/foundation/fullscreen/controller.d.ts +39 -0
  652. package/types/foundation/fullscreen/events.d.ts +25 -0
  653. package/types/foundation/list/list.d.ts +64 -0
  654. package/types/foundation/list/select-list.d.ts +30 -0
  655. package/types/foundation/list/symbols.d.ts +14 -0
  656. package/types/foundation/logger/colors.d.ts +5 -0
  657. package/types/foundation/logger/controller.d.ts +20 -0
  658. package/types/foundation/logger/events.d.ts +26 -0
  659. package/types/foundation/logger/grouped-log.d.ts +22 -0
  660. package/types/foundation/logger/log-level.d.ts +15 -0
  661. package/types/foundation/logger/log-printer.d.ts +11 -0
  662. package/types/foundation/logger/ms.d.ts +4 -0
  663. package/types/foundation/observers/focus-visible.d.ts +7 -0
  664. package/types/foundation/observers/intersection-observer.d.ts +36 -0
  665. package/types/foundation/observers/page-visibility.d.ts +37 -0
  666. package/types/foundation/observers/raf-loop.d.ts +6 -0
  667. package/types/foundation/orientation/controller.d.ts +62 -0
  668. package/types/foundation/orientation/events.d.ts +16 -0
  669. package/types/foundation/orientation/types.d.ts +85 -0
  670. package/types/foundation/queue/queue.d.ts +24 -0
  671. package/types/foundation/queue/request-queue.d.ts +42 -0
  672. package/types/global/layouts/default.d.ts +9 -0
  673. package/types/global/layouts/loader.d.ts +5 -0
  674. package/types/global/layouts/plyr.d.ts +9 -0
  675. package/types/global/player.d.ts +26 -0
  676. package/types/global/plyr.d.ts +344 -0
  677. package/types/index.d.ts +6 -0
  678. package/types/plugins.d.ts +11 -0
  679. package/types/providers/audio/loader.d.ts +12 -0
  680. package/types/providers/audio/provider.d.ts +29 -0
  681. package/types/providers/dash/dash.d.ts +15 -0
  682. package/types/providers/dash/events.d.ts +570 -0
  683. package/types/providers/dash/lib-loader.d.ts +6 -0
  684. package/types/providers/dash/loader.d.ts +10 -0
  685. package/types/providers/dash/provider.d.ts +62 -0
  686. package/types/providers/dash/types.d.ts +13 -0
  687. package/types/providers/embed/EmbedProvider.d.ts +18 -0
  688. package/types/providers/google-cast/events.d.ts +36 -0
  689. package/types/providers/google-cast/loader.d.ts +18 -0
  690. package/types/providers/google-cast/media-info.d.ts +11 -0
  691. package/types/providers/google-cast/provider.d.ts +48 -0
  692. package/types/providers/google-cast/tracks.d.ts +10 -0
  693. package/types/providers/google-cast/types.d.ts +3 -0
  694. package/types/providers/google-cast/utils.d.ts +34 -0
  695. package/types/providers/hls/events.d.ts +463 -0
  696. package/types/providers/hls/hls.d.ts +14 -0
  697. package/types/providers/hls/lib-loader.d.ts +6 -0
  698. package/types/providers/hls/loader.d.ts +10 -0
  699. package/types/providers/hls/provider.d.ts +64 -0
  700. package/types/providers/hls/types.d.ts +9 -0
  701. package/types/providers/html/audio/audio-context.d.ts +6 -0
  702. package/types/providers/html/audio/audio-gain.d.ts +10 -0
  703. package/types/providers/html/html/342/200/223media-events.d.ts +6 -0
  704. package/types/providers/html/native-audio-tracks.d.ts +6 -0
  705. package/types/providers/html/provider.d.ts +34 -0
  706. package/types/providers/html/remote-playback.d.ts +18 -0
  707. package/types/providers/type-check.d.ts +28 -0
  708. package/types/providers/types.d.ts +95 -0
  709. package/types/providers/video/loader.d.ts +12 -0
  710. package/types/providers/video/native-hls-text-tracks.d.ts +9 -0
  711. package/types/providers/video/picture-in-picture.d.ts +16 -0
  712. package/types/providers/video/presentation/events.d.ts +11 -0
  713. package/types/providers/video/presentation/video-presentation.d.ts +30 -0
  714. package/types/providers/video/provider.d.ts +34 -0
  715. package/types/providers/vimeo/embed/command.d.ts +81 -0
  716. package/types/providers/vimeo/embed/event.d.ts +58 -0
  717. package/types/providers/vimeo/embed/message.d.ts +8 -0
  718. package/types/providers/vimeo/embed/misc.d.ts +52 -0
  719. package/types/providers/vimeo/embed/params.d.ts +148 -0
  720. package/types/providers/vimeo/loader.d.ts +14 -0
  721. package/types/providers/vimeo/provider.d.ts +61 -0
  722. package/types/providers/vimeo/utils.d.ts +6 -0
  723. package/types/providers/youtube/embed/command.d.ts +13 -0
  724. package/types/providers/youtube/embed/event.d.ts +1 -0
  725. package/types/providers/youtube/embed/message.d.ts +50 -0
  726. package/types/providers/youtube/embed/params.d.ts +218 -0
  727. package/types/providers/youtube/embed/quality.d.ts +2 -0
  728. package/types/providers/youtube/embed/state.d.ts +12 -0
  729. package/types/providers/youtube/loader.d.ts +14 -0
  730. package/types/providers/youtube/provider.d.ts +61 -0
  731. package/types/providers/youtube/utils.d.ts +2 -0
  732. package/types/utils/aria.d.ts +4 -0
  733. package/types/utils/array.d.ts +1 -0
  734. package/types/utils/color.d.ts +1 -0
  735. package/types/utils/dom.d.ts +41 -0
  736. package/types/utils/error.d.ts +2 -0
  737. package/types/utils/language.d.ts +8 -0
  738. package/types/utils/manifest.d.ts +3 -0
  739. package/types/utils/mime.d.ts +15 -0
  740. package/types/utils/network.d.ts +17 -0
  741. package/types/utils/number.d.ts +17 -0
  742. package/types/utils/promise.d.ts +1 -0
  743. package/types/utils/scroll.d.ts +5 -0
  744. package/types/utils/support.d.ts +72 -0
  745. package/types/utils/time.d.ts +57 -0
  746. package/vite.config.ts +61 -0
@@ -0,0 +1,656 @@
1
+ import { State, type Store } from 'maverick.js';
2
+ import type { LogLevel } from '../../foundation/logger/log-level';
3
+ import type { MediaProviderLoader } from '../../providers/types';
4
+ import type { VideoQuality } from '../quality/video-quality';
5
+ import type { AudioTrack } from '../tracks/audio/audio-tracks';
6
+ import { type TextTrack } from '../tracks/text/text-track';
7
+ import type { Src } from './src-types';
8
+ import type { MediaCrossOrigin, MediaErrorDetail, MediaStreamType, MediaType, MediaViewType, RemotePlaybackInfo, RemotePlaybackType } from './types';
9
+ export interface MediaPlayerState extends MediaState {
10
+ }
11
+ export declare const mediaState: State<MediaState>;
12
+ /**
13
+ * Resets all media state and leaves general player state intact.
14
+ */
15
+ export declare function softResetMediaState($media: MediaStore, isSourceQualityChange?: boolean): void;
16
+ export interface MediaStore extends Store<MediaState> {
17
+ }
18
+ export interface PlayerStore extends MediaStore {
19
+ }
20
+ export interface MediaState {
21
+ /**
22
+ * Whether playback should automatically begin as soon as enough media is available to do so
23
+ * without interruption.
24
+ *
25
+ * Sites which automatically play audio (or videos with an audio track) can be an unpleasant
26
+ * experience for users, so it should be avoided when possible. If you must offer auto-play
27
+ * functionality, you should make it opt-in (requiring a user to specifically enable it).
28
+ *
29
+ * However, auto-play can be useful when creating media elements whose source will be set at a
30
+ * later time, under user control.
31
+ *
32
+ * @defaultValue false
33
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/autoplay}
34
+ */
35
+ autoPlay: boolean;
36
+ /**
37
+ * Set to an error when auto-play has failed to begin playback. This can be used to determine
38
+ * when to show a recovery UI in the event auto-play fails.
39
+ *
40
+ * @defaultValue null
41
+ */
42
+ autoPlayError: {
43
+ muted: boolean;
44
+ error: Error;
45
+ } | null;
46
+ /**
47
+ * Returns a `TimeRanges` object that indicates the ranges of the media source that the
48
+ * browser has buffered (if any) at the moment the buffered property is accessed. This is usually
49
+ * contiguous but if the user jumps about while media is buffering, it may contain holes.
50
+ *
51
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
52
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
53
+ * @defaultValue TimeRanges
54
+ */
55
+ buffered: TimeRanges;
56
+ /**
57
+ * The earliest time in seconds for which media has been buffered (i.e., downloaded by the
58
+ * browser).
59
+ *
60
+ * @defaultValue 0
61
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
62
+ */
63
+ readonly bufferedStart: number;
64
+ /**
65
+ * The latest time in seconds for which media has been buffered (i.e., downloaded by the
66
+ * browser).
67
+ *
68
+ * @defaultValue 0
69
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered}
70
+ */
71
+ readonly bufferedEnd: number;
72
+ /**
73
+ * The length of the buffered window in seconds from `bufferedStart` to `bufferedEnd`.
74
+ */
75
+ readonly bufferedWindow: number;
76
+ /**
77
+ * A `double` indicating the total playback length of the media in seconds. If no media data is
78
+ * available, the returned value is `0`. If the media is of indefinite length (such as
79
+ * streamed live media, a WebRTC call's media, or similar), the value is `+Infinity`.
80
+ *
81
+ * @defaultValue 0
82
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/duration}
83
+ */
84
+ readonly duration: number;
85
+ /**
86
+ * Whether Apple AirPlay is available for casting and playing media on another device such as a
87
+ * TV.
88
+ */
89
+ canAirPlay: boolean;
90
+ /**
91
+ * Whether Google Cast is available for casting and playing media on another device such as a TV.
92
+ */
93
+ canGoogleCast: boolean;
94
+ /**
95
+ * The current remote playback state when using AirPlay or Google Cast.
96
+ */
97
+ remotePlaybackState: RemotePlaybackState;
98
+ /**
99
+ * The type of remote playback that is currently connecting or connected.
100
+ */
101
+ remotePlaybackType: RemotePlaybackType;
102
+ /**
103
+ * An active remote playback loader such as the `GoogleCastLoader`.
104
+ */
105
+ remotePlaybackLoader: MediaProviderLoader | null;
106
+ /**
107
+ * Information about the current remote playback.
108
+ */
109
+ remotePlaybackInfo: RemotePlaybackInfo | null;
110
+ /**
111
+ * Whether AirPlay is connected.
112
+ */
113
+ readonly isAirPlayConnected: boolean;
114
+ /**
115
+ * Whether Google Cast is connected.
116
+ */
117
+ readonly isGoogleCastConnected: boolean;
118
+ /**
119
+ * Whether the native browser Fullscreen API is available, or the current provider can
120
+ * toggle fullscreen mode. This does not mean that the operation is guaranteed to be successful,
121
+ * only that it can be attempted.
122
+ *
123
+ * @defaultValue false
124
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
125
+ */
126
+ canFullscreen: boolean;
127
+ /**
128
+ * Whether the native Screen Orientation API and required methods (lock/unlock) are available.
129
+ *
130
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API}
131
+ */
132
+ canOrientScreen: boolean;
133
+ /**
134
+ * Whether picture-in-picture mode is supported by the current media provider.
135
+ *
136
+ * @defaultValue false
137
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
138
+ */
139
+ canPictureInPicture: boolean;
140
+ /**
141
+ * Whether media is allowed to begin loading. This depends on the `load` player prop.
142
+ *
143
+ * @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
144
+ */
145
+ canLoad: boolean;
146
+ /**
147
+ * Whether the media poster is allowed to begin loading. This depends on the `posterLoad`
148
+ * player prop.
149
+ *
150
+ * @see {@link https://vidstack.io/docs/player/core-concepts/loading#load-strategies}
151
+ */
152
+ canLoadPoster: boolean;
153
+ /**
154
+ * Whether the user agent can play the media, but estimates that **not enough** data has been
155
+ * loaded to play the media up to its end without having to stop for further buffering of
156
+ * content.
157
+ *
158
+ * @defaultValue false
159
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canplay_event}
160
+ */
161
+ canPlay: boolean;
162
+ /**
163
+ * Whether seeking operations are possible on the current stream. This generally false for
164
+ * live streams that are loaded natively.
165
+ *
166
+ * @defaultValue true
167
+ */
168
+ readonly canSeek: boolean;
169
+ /**
170
+ * Limit playback to only play _after_ a certain time. Playback will begin from this time.
171
+ *
172
+ * @defaultValue 0
173
+ */
174
+ clipStartTime: number;
175
+ /**
176
+ * Limit playback to only play _before_ a certain time. Playback will end at this time.
177
+ *
178
+ * @defaultValue 0
179
+ */
180
+ clipEndTime: number;
181
+ /**
182
+ * Indicates whether a user interface should be shown for controlling the resource. Set this to
183
+ * `false` when you want to provide your own custom controls, and `true` if you want the current
184
+ * provider to supply its own default controls. Depending on the provider, changing this prop
185
+ * may cause the player to completely reset.
186
+ *
187
+ * @defaultValue false
188
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controls}
189
+ */
190
+ controls: boolean;
191
+ /**
192
+ * Whether iOS Safari video controls are visible. This will be true if `playsinline` is not set
193
+ * or in fullscreen due to lack of a Fullscreen API.
194
+ */
195
+ readonly iOSControls: boolean;
196
+ /**
197
+ * Whether native controls should be shown due to the `controls` state or `iOSControls` state.
198
+ */
199
+ readonly nativeControls: boolean;
200
+ /**
201
+ * Defines how the media element handles cross-origin requests, thereby enabling the
202
+ * configuration of the CORS requests for the element's fetched data.
203
+ *
204
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
205
+ */
206
+ crossOrigin: MediaCrossOrigin | null;
207
+ /**
208
+ * The URL of the current poster. Defaults to `''` if no media/poster has been given or
209
+ * loaded.
210
+ *
211
+ * @defaultValue ''
212
+ */
213
+ readonly poster: string;
214
+ /**
215
+ * A `double` indicating the current playback time in seconds. Defaults to `0` if the media has
216
+ * not started to play and has not seeked. Setting this value seeks the media to the new
217
+ * time. The value can be set to a minimum of `0` and maximum of the total length of the
218
+ * media (indicated by the duration prop).
219
+ *
220
+ * @defaultValue 0
221
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime}
222
+ */
223
+ readonly currentTime: number;
224
+ /**
225
+ * Whether media playback has reached the end. In other words it'll be true
226
+ * if `currentTime === duration`.
227
+ *
228
+ * @defaultValue false
229
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/ended}
230
+ */
231
+ ended: boolean;
232
+ /**
233
+ * Contains the most recent media error or undefined if there's been none. You can listen for
234
+ * `error` event updates and examine this object to debug further.
235
+ *
236
+ * @defaultValue null
237
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error}
238
+ */
239
+ error: MediaErrorDetail | null;
240
+ /**
241
+ * Whether the player is currently in fullscreen mode.
242
+ *
243
+ * @defaultValue false
244
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API}
245
+ */
246
+ fullscreen: boolean;
247
+ /**
248
+ * Whether the controls are visible. By default, controls will be hidden when media playback
249
+ * is progressing (playing) without any detected user activity for a set period of time
250
+ * (default is 2.5s).
251
+ *
252
+ * @defaultValue false
253
+ */
254
+ controlsVisible: boolean;
255
+ /**
256
+ * Whether controls are hidden.
257
+ */
258
+ readonly controlsHidden: boolean;
259
+ /**
260
+ * Whether the user has intentionally seeked behind the live edge. The user must've seeked
261
+ * roughly 2 or more seconds behind during a live stream for this to be considered true.
262
+ *
263
+ * @defaultValue false
264
+ */
265
+ userBehindLiveEdge: boolean;
266
+ /**
267
+ * Whether media should automatically start playing from the beginning (replay) every time
268
+ * it ends.
269
+ *
270
+ * @defaultValue false
271
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/loop}
272
+ */
273
+ readonly loop: boolean;
274
+ /**
275
+ * The current log level. Values in order of priority are: `silent`, `error`, `warn`, `info`,
276
+ * and `debug`.
277
+ */
278
+ logLevel: LogLevel;
279
+ /**
280
+ * Whether the current media stream is live (i.e., being broadcast right now).
281
+ */
282
+ live: boolean;
283
+ /**
284
+ * The number of seconds that `currentTime` can be behind `liveEdgeStart` and still be considered
285
+ * at the edge. The default value is 10, meaning the user can be up to 10 seconds behind the
286
+ * live edge start and still be considered live.
287
+ *
288
+ * @defaultValue 10
289
+ */
290
+ liveEdgeTolerance: number;
291
+ /**
292
+ * The minimum seekable length in seconds before seeking operations are permitted on live streams.
293
+ *
294
+ * @defaultValue 60
295
+ */
296
+ minLiveDVRWindow: number;
297
+ /**
298
+ * The inferred length of the live DVR window.
299
+ */
300
+ readonly liveDVRWindow: number;
301
+ /**
302
+ * Whether the live stream has Digital Video Recording (DVR) enabled.
303
+ */
304
+ readonly isLiveDVR: boolean;
305
+ /**
306
+ * Whether the current stream is at the live edge. This is true if:
307
+ *
308
+ * 1. The player is _not_ in a paused state.
309
+ * 2. The user has _not_ intentionally seeked behind live edge start.
310
+ * 3. The `currentTime` is greater or equal than `liveEdgeStart`.
311
+ *
312
+ * This value will default to `false` for non-live streams.
313
+ *
314
+ * @defaultValue false
315
+ */
316
+ readonly liveEdge: boolean;
317
+ /**
318
+ * This is the starting edge of the live stream.
319
+ *
320
+ * A delay is applied in `hls.js` that's specified by the `liveSyncDurationCount` which is
321
+ * expressed as a multiple of `EXT-X-TARGETDURATION` (default value is safely set to 3). If
322
+ * set to `m`, playback will start from the fragment at `n-m`, where `n` is the last fragment
323
+ * of the live playlist. Decreasing this value is likely to cause playback stalls.
324
+ *
325
+ * The `seekableEnd` value is used as the live edge start in native playback engines.
326
+ *
327
+ * @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#hlslivesyncposition}
328
+ * @see {@link https://github.com/video-dev/hls.js/blob/master/docs/API.md#livesyncdurationcount}
329
+ * @see {@link https://github.com/video-dev/media-ui-extensions/blob/main/proposals/0007-live-edge.md}
330
+ */
331
+ readonly liveEdgeStart: number;
332
+ /**
333
+ * The length of the live edge window in seconds starting from `liveEdgeStart` and ending at
334
+ * `seekableEnd`. If the `duration` of the stream is `Infinity` or the stream is non-live then
335
+ * this value will default to 0.
336
+ */
337
+ readonly liveEdgeWindow: number;
338
+ /**
339
+ * The type of media that is currently active, whether it's audio or video. Defaults
340
+ * to `unknown` when no media has been loaded or the type cannot be determined.
341
+ *
342
+ * @defaultValue 'unknown'
343
+ */
344
+ mediaType: MediaType;
345
+ /**
346
+ * Whether the audio is muted or not.
347
+ *
348
+ * @defaultValue false
349
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/muted}
350
+ */
351
+ muted: boolean;
352
+ /**
353
+ * Whether playback should be paused. Defaults to `true` if no media has loaded or playback has
354
+ * not started. Setting this to `false` will begin/resume playback.
355
+ *
356
+ * @defaultValue true
357
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/paused}
358
+ */
359
+ paused: boolean;
360
+ /**
361
+ * Contains the ranges of the media source that the browser has played, if any.
362
+ *
363
+ * @defaultValue TimeRanges
364
+ */
365
+ played: TimeRanges;
366
+ /**
367
+ * Whether media is actively playing back. Defaults to `false` if no media has
368
+ * loaded or playback has not started.
369
+ *
370
+ * @defaultValue false
371
+ */
372
+ playing: boolean;
373
+ /**
374
+ * Whether the video is to be played "inline", that is within the element's playback area. Note
375
+ * that setting this to `false` does not imply that the video will always be played in fullscreen.
376
+ * Depending on the provider, changing this prop may cause the player to completely reset.
377
+ *
378
+ * @defaultValue false
379
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-playsinline}
380
+ */
381
+ playsInline: boolean;
382
+ /**
383
+ * Sets the rate at which the media is being played back. This is used to implement user
384
+ * controls for fast forward, slow motion, and so forth. The normal playback rate is multiplied
385
+ * by this value to obtain the current rate, so a value of 1.0 indicates normal speed.
386
+ *
387
+ * Examples:
388
+ *
389
+ * - `0.5` = slow down to 50% of the normal speed
390
+ * - `1.5` = speed up normal speed by 50%
391
+ * - `2` = double the normal speed
392
+ *
393
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/playbackRate}
394
+ */
395
+ playbackRate: number;
396
+ /**
397
+ * Whether the player is currently in picture-in-picture mode.
398
+ *
399
+ * @defaultValue false
400
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API}
401
+ */
402
+ pictureInPicture: boolean;
403
+ /**
404
+ * Configures the preload setting of the underlying media provider once it can load (see
405
+ * `loading` property).
406
+ *
407
+ * The `preload` attribute provides a hint to the browser about what the author thinks will
408
+ * lead to the best user experience with regards to what content is loaded before the video is
409
+ * played. The recommended default is `metadata`.
410
+ *
411
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-preload}
412
+ */
413
+ preload: 'none' | 'metadata' | 'auto';
414
+ /**
415
+ * Whether auto quality selection is active.
416
+ */
417
+ autoQuality: boolean;
418
+ /**
419
+ * The list of available video qualities/renditions. This will be empty if quality information
420
+ * is not provided by the current media provider.
421
+ */
422
+ qualities: VideoQuality[];
423
+ /**
424
+ * The current playback quality. This will be `null` if quality information is not provided
425
+ * by the current media provider.
426
+ */
427
+ quality: VideoQuality | null;
428
+ /**
429
+ * The list of available audio tracks. This will be empty if audio track information is not
430
+ * provided by the current media provider.
431
+ */
432
+ audioTracks: AudioTrack[];
433
+ /**
434
+ * The current audio track. This will be `null` if audio track information is not provided by
435
+ * the current media provider.
436
+ */
437
+ audioTrack: AudioTrack | null;
438
+ /**
439
+ * The current audio gain. This will be `null` if audio gain is not supported or is not set.
440
+ */
441
+ audioGain: number | null;
442
+ /**
443
+ * Whether the current video quality list is read-only, meaning quality selections can only
444
+ * be set internally by the media provider. This will only be `false` when working with particular
445
+ * third-party embeds such as YouTube.
446
+ */
447
+ canSetQuality: boolean;
448
+ /**
449
+ * Whether the current playback rate can be set. This will only be `false` when working with
450
+ * particular third-party embeds such as Vimeo (only available to pro/business accounts).
451
+ */
452
+ canSetPlaybackRate: boolean;
453
+ /**
454
+ * Whether the current volume can be changed. This depends on the current provider and browser
455
+ * environment. It will generally be `false` on mobile devices as it's set by system controls.
456
+ */
457
+ canSetVolume: boolean;
458
+ /**
459
+ * Whether the current audio gain can be changed. This depends on the current provider and browser
460
+ * environment. It generally depends on browser's Web Audio API support.
461
+ *
462
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API}
463
+ */
464
+ canSetAudioGain: boolean;
465
+ /**
466
+ * Contains the time ranges that the user is able to seek to, if any. This tells us which parts
467
+ * of the media can be played without delay; this is irrespective of whether that part has
468
+ * been downloaded or not.
469
+ *
470
+ * Some parts of the media may be seekable but not buffered if byte-range
471
+ * requests are enabled on the server. Byte range requests allow parts of the media file to
472
+ * be delivered from the server and so can be ready to play almost immediately — thus they are
473
+ * seekable.
474
+ *
475
+ * @defaultValue TimeRanges
476
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges}
477
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
478
+ */
479
+ seekable: TimeRanges;
480
+ /**
481
+ * Contains the earliest time in seconds at which media can be seeked to. Generally this is
482
+ * zero, but for live streams it may start at a non-zero value.
483
+ *
484
+ * @defaultValue 0
485
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
486
+ */
487
+ readonly seekableStart: number;
488
+ /**
489
+ * The latest time in seconds at which media can be seeked to. This will default to `Infinity`
490
+ * if no seekable range is found. If byte-range requests are enabled on the server this should
491
+ * be equal to the media duration - note for live streams duration is a moving target.
492
+ *
493
+ * @defaultValue Infinity
494
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/seekable}
495
+ */
496
+ readonly seekableEnd: number;
497
+ /**
498
+ * The length of the seekable window in seconds starting from `seekableStart` and ending at
499
+ * `seekableEnd`.
500
+ *
501
+ * @defaultValue 0
502
+ */
503
+ readonly seekableWindow: number;
504
+ /**
505
+ * Whether media is actively seeking to a new playback position.
506
+ *
507
+ * @defaultValue false
508
+ */
509
+ seeking: boolean;
510
+ /**
511
+ * The URL and optionally type of the current media resource/s to be considered for playback.
512
+ * Use `source` to get the currently loaded resource.
513
+ *
514
+ * @defaultValue []
515
+ */
516
+ sources: Src[];
517
+ /**
518
+ * The chosen media resource. Defaults to `{ src: '', type: '' }` if no media has been loaded.
519
+ *
520
+ * @defaultValue { src: '', type: '' }
521
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentSrc}
522
+ */
523
+ source: Src;
524
+ /** Alias for `source`. */
525
+ currentSrc: Src;
526
+ /**
527
+ * Whether media playback has started. In other words it will be true if `currentTime > 0`.
528
+ *
529
+ * @defaultValue false
530
+ */
531
+ started: boolean;
532
+ /**
533
+ * The current media stream type. This value helps determine what type of UI should be
534
+ * displayed and whether seeking operations are permitted during live streams. If seeking
535
+ * is permitted, set this value to `live:dvr` or `ll-live:dvr`.
536
+ */
537
+ streamType: MediaStreamType;
538
+ /**
539
+ * The title of the current media.
540
+ */
541
+ readonly title: string;
542
+ /**
543
+ * The artist or channel name for which this content belongs to. This can be used in your
544
+ * layout and it will be included in the Media Session API.
545
+ */
546
+ artist: string;
547
+ /**
548
+ * Images to be included in the Media Session API.
549
+ */
550
+ artwork: MediaImage[] | null;
551
+ /**
552
+ * The list of all available text tracks.
553
+ */
554
+ textTracks: TextTrack[];
555
+ /**
556
+ * The current captions/subtitles text track that is showing.
557
+ */
558
+ textTrack: TextTrack | null;
559
+ /**
560
+ * Whether there are any captions or subtitles available.
561
+ */
562
+ readonly hasCaptions: boolean;
563
+ /**
564
+ * The type of player view that should be used (i.e., audio or video). By default this is set
565
+ * to `video`.
566
+ *
567
+ * @defaultValue 'unknown'
568
+ */
569
+ viewType: MediaViewType;
570
+ /**
571
+ * An `int` between `0` (silent) and `1` (loudest) indicating the audio volume. Defaults to `1`.
572
+ *
573
+ * @defaultValue 1
574
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volume}
575
+ */
576
+ volume: number;
577
+ /**
578
+ * Whether playback has temporarily stopped because of a lack of temporary data.
579
+ *
580
+ * @defaultValue false
581
+ */
582
+ waiting: boolean;
583
+ /**
584
+ * The user's pointing device type.
585
+ *
586
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/pointer}
587
+ */
588
+ pointer: 'fine' | 'coarse';
589
+ /**
590
+ * The current screen orientation.
591
+ */
592
+ orientation: 'portrait' | 'landscape';
593
+ /**
594
+ * The width of the media player container in pixels.
595
+ */
596
+ width: number;
597
+ /**
598
+ * The height of the media player container in pixels.
599
+ */
600
+ height: number;
601
+ /**
602
+ * The width of the media provider in pixels.
603
+ */
604
+ mediaWidth: number;
605
+ /**
606
+ * The height of the media in provider pixels.
607
+ */
608
+ mediaHeight: number;
609
+ /**
610
+ * The last keyboard shortcut that was triggered.
611
+ */
612
+ lastKeyboardAction: {
613
+ action: string;
614
+ event: KeyboardEvent;
615
+ } | null;
616
+ /** @internal */
617
+ autoPlaying: boolean;
618
+ /** @internal */
619
+ providedTitle: string;
620
+ /** @internal */
621
+ inferredTitle: string;
622
+ /** @internal */
623
+ providedLoop: boolean;
624
+ /** @internal */
625
+ userPrefersLoop: boolean;
626
+ /** @internal - Unclipped current time. */
627
+ realCurrentTime: number;
628
+ /** @internal */
629
+ providedPoster: string;
630
+ /** @internal */
631
+ intrinsicDuration: number;
632
+ /** @internal */
633
+ providedDuration: number;
634
+ /** @internal */
635
+ inferredPoster: string;
636
+ /** @internal */
637
+ inferredViewType: MediaViewType;
638
+ /** @internal */
639
+ providedViewType: MediaViewType;
640
+ /** @internal */
641
+ providedStreamType: MediaStreamType;
642
+ /** @internal */
643
+ inferredStreamType: MediaStreamType;
644
+ inferredLiveDVRWindow: number;
645
+ /** @internal */
646
+ liveSyncPosition: number | null;
647
+ /** @internal */
648
+ savedState: {
649
+ paused?: boolean;
650
+ currentTime?: number;
651
+ } | null;
652
+ }
653
+ export interface MediaPlayerQuery {
654
+ (state: MediaPlayerState): boolean;
655
+ }
656
+ export declare function boundTime(time: number, store: MediaStore): number;