@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,288 @@
1
+ import type { ScreenOrientationLockType } from '../..';
2
+ import type { MediaPlayer } from '../../components/player';
3
+ import { Logger } from '../../foundation/logger/controller';
4
+ import type { MediaFullscreenRequestTarget } from '../api/media-request-events';
5
+ /**
6
+ * A simple facade for dispatching media requests to the nearest media player element.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/player/core-concepts/state-management#updating}
9
+ *
10
+ */
11
+ export declare class MediaRemoteControl {
12
+ #private;
13
+ constructor(logger?: Logger | undefined);
14
+ /**
15
+ * Set the target from which to dispatch media requests events from. The events should bubble
16
+ * up from this target to the player element.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const button = document.querySelector('button');
21
+ * remote.setTarget(button);
22
+ * ```
23
+ */
24
+ setTarget(target: EventTarget | null): void;
25
+ /**
26
+ * Returns the current player element. This method will attempt to find the player by
27
+ * searching up from either the given `target` or default target set via `remote.setTarget`.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const player = remote.getPlayer();
32
+ * ```
33
+ */
34
+ getPlayer(target?: EventTarget | null): MediaPlayer | null;
35
+ /**
36
+ * Set the current player element so the remote can support toggle methods such as
37
+ * `togglePaused` as they rely on the current media state.
38
+ */
39
+ setPlayer(player: MediaPlayer | null): void;
40
+ /**
41
+ * Dispatch a request to start the media loading process. This will only work if the media
42
+ * player has been initialized with a custom loading strategy `load="custom">`.
43
+ *
44
+ * @docs {@link https://www.vidstack.io/docs/player/core-concepts/loading#load-strategies}
45
+ */
46
+ startLoading(trigger?: Event): void;
47
+ /**
48
+ * Dispatch a request to start the poster loading process. This will only work if the media
49
+ * player has been initialized with a custom poster loading strategy `posterLoad="custom">`.
50
+ *
51
+ * @docs {@link https://www.vidstack.io/docs/player/core-concepts/loading#load-strategies}
52
+ */
53
+ startLoadingPoster(trigger?: Event): void;
54
+ /**
55
+ * Dispatch a request to connect to AirPlay.
56
+ *
57
+ * @see {@link https://www.apple.com/au/airplay}
58
+ */
59
+ requestAirPlay(trigger?: Event): void;
60
+ /**
61
+ * Dispatch a request to connect to Google Cast.
62
+ *
63
+ * @see {@link https://developers.google.com/cast/docs/overview}
64
+ */
65
+ requestGoogleCast(trigger?: Event): void;
66
+ /**
67
+ * Dispatch a request to begin/resume media playback.
68
+ */
69
+ play(trigger?: Event): void;
70
+ /**
71
+ * Dispatch a request to pause media playback.
72
+ */
73
+ pause(trigger?: Event): void;
74
+ /**
75
+ * Dispatch a request to set the media volume to mute (0).
76
+ */
77
+ mute(trigger?: Event): void;
78
+ /**
79
+ * Dispatch a request to unmute the media volume and set it back to it's previous state.
80
+ */
81
+ unmute(trigger?: Event): void;
82
+ /**
83
+ * Dispatch a request to enter fullscreen.
84
+ *
85
+ * @docs {@link https://www.vidstack.io/docs/player/api/fullscreen#remote-control}
86
+ */
87
+ enterFullscreen(target?: MediaFullscreenRequestTarget, trigger?: Event): void;
88
+ /**
89
+ * Dispatch a request to exit fullscreen.
90
+ *
91
+ * @docs {@link https://www.vidstack.io/docs/player/api/fullscreen#remote-control}
92
+ */
93
+ exitFullscreen(target?: MediaFullscreenRequestTarget, trigger?: Event): void;
94
+ /**
95
+ * Dispatch a request to lock the screen orientation.
96
+ *
97
+ * @docs {@link https://www.vidstack.io/docs/player/screen-orientation#remote-control}
98
+ */
99
+ lockScreenOrientation(lockType: ScreenOrientationLockType, trigger?: Event): void;
100
+ /**
101
+ * Dispatch a request to unlock the screen orientation.
102
+ *
103
+ * @docs {@link https://www.vidstack.io/docs/player/api/screen-orientation#remote-control}
104
+ */
105
+ unlockScreenOrientation(trigger?: Event): void;
106
+ /**
107
+ * Dispatch a request to enter picture-in-picture mode.
108
+ *
109
+ * @docs {@link https://www.vidstack.io/docs/player/api/picture-in-picture#remote-control}
110
+ */
111
+ enterPictureInPicture(trigger?: Event): void;
112
+ /**
113
+ * Dispatch a request to exit picture-in-picture mode.
114
+ *
115
+ * @docs {@link https://www.vidstack.io/docs/player/api/picture-in-picture#remote-control}
116
+ */
117
+ exitPictureInPicture(trigger?: Event): void;
118
+ /**
119
+ * Notify the media player that a seeking process is happening and to seek to the given `time`.
120
+ */
121
+ seeking(time: number, trigger?: Event): void;
122
+ /**
123
+ * Notify the media player that a seeking operation has completed and to seek to the given `time`.
124
+ * This is generally called after a series of `remote.seeking()` calls.
125
+ */
126
+ seek(time: number, trigger?: Event): void;
127
+ seekToLiveEdge(trigger?: Event): void;
128
+ /**
129
+ * Dispatch a request to update the length of the media in seconds.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * remote.changeDuration(100); // 100 seconds
134
+ * ```
135
+ */
136
+ changeDuration(duration: number, trigger?: Event): void;
137
+ /**
138
+ * Dispatch a request to update the clip start time. This is the time at which media playback
139
+ * should start at.
140
+ *
141
+ * @example
142
+ * ```ts
143
+ * remote.changeClipStart(100); // start at 100 seconds
144
+ * ```
145
+ */
146
+ changeClipStart(startTime: number, trigger?: Event): void;
147
+ /**
148
+ * Dispatch a request to update the clip end time. This is the time at which media playback
149
+ * should end at.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * remote.changeClipEnd(100); // end at 100 seconds
154
+ * ```
155
+ */
156
+ changeClipEnd(endTime: number, trigger?: Event): void;
157
+ /**
158
+ * Dispatch a request to update the media volume to the given `volume` level which is a value
159
+ * between 0 and 1.
160
+ *
161
+ * @docs {@link https://www.vidstack.io/docs/player/api/audio-gain#remote-control}
162
+ * @example
163
+ * ```ts
164
+ * remote.changeVolume(0); // 0%
165
+ * remote.changeVolume(0.05); // 5%
166
+ * remote.changeVolume(0.5); // 50%
167
+ * remote.changeVolume(0.75); // 70%
168
+ * remote.changeVolume(1); // 100%
169
+ * ```
170
+ */
171
+ changeVolume(volume: number, trigger?: Event): void;
172
+ /**
173
+ * Dispatch a request to change the current audio track.
174
+ *
175
+ * @example
176
+ * ```ts
177
+ * remote.changeAudioTrack(1); // track at index 1
178
+ * ```
179
+ */
180
+ changeAudioTrack(index: number, trigger?: Event): void;
181
+ /**
182
+ * Dispatch a request to change the video quality. The special value `-1` represents auto quality
183
+ * selection.
184
+ *
185
+ * @example
186
+ * ```ts
187
+ * remote.changeQuality(-1); // auto
188
+ * remote.changeQuality(1); // quality at index 1
189
+ * ```
190
+ */
191
+ changeQuality(index: number, trigger?: Event): void;
192
+ /**
193
+ * Request auto quality selection.
194
+ */
195
+ requestAutoQuality(trigger?: Event): void;
196
+ /**
197
+ * Dispatch a request to change the mode of the text track at the given index.
198
+ *
199
+ * @example
200
+ * ```ts
201
+ * remote.changeTextTrackMode(1, 'showing'); // track at index 1
202
+ * ```
203
+ */
204
+ changeTextTrackMode(index: number, mode: TextTrackMode, trigger?: Event): void;
205
+ /**
206
+ * Dispatch a request to change the media playback rate.
207
+ *
208
+ * @example
209
+ * ```ts
210
+ * remote.changePlaybackRate(0.5); // Half the normal speed
211
+ * remote.changePlaybackRate(1); // Normal speed
212
+ * remote.changePlaybackRate(1.5); // 50% faster than normal
213
+ * remote.changePlaybackRate(2); // Double the normal speed
214
+ * ```
215
+ */
216
+ changePlaybackRate(rate: number, trigger?: Event): void;
217
+ /**
218
+ * Dispatch a request to change the media audio gain.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * remote.changeAudioGain(1); // Disable audio gain
223
+ * remote.changeAudioGain(1.5); // 50% louder
224
+ * remote.changeAudioGain(2); // 100% louder
225
+ * ```
226
+ */
227
+ changeAudioGain(gain: number, trigger?: Event): void;
228
+ /**
229
+ * Dispatch a request to resume idle tracking on controls.
230
+ */
231
+ resumeControls(trigger?: Event): void;
232
+ /**
233
+ * Dispatch a request to pause controls idle tracking. Pausing tracking will result in the
234
+ * controls being visible until `remote.resumeControls()` is called. This method
235
+ * is generally used when building custom controls and you'd like to prevent the UI from
236
+ * disappearing.
237
+ *
238
+ * @example
239
+ * ```ts
240
+ * // Prevent controls hiding while menu is being interacted with.
241
+ * function onSettingsOpen() {
242
+ * remote.pauseControls();
243
+ * }
244
+ *
245
+ * function onSettingsClose() {
246
+ * remote.resumeControls();
247
+ * }
248
+ * ```
249
+ */
250
+ pauseControls(trigger?: Event): void;
251
+ /**
252
+ * Dispatch a request to toggle the media playback state.
253
+ */
254
+ togglePaused(trigger?: Event): void;
255
+ /**
256
+ * Dispatch a request to toggle the controls visibility.
257
+ */
258
+ toggleControls(trigger?: Event): void;
259
+ /**
260
+ * Dispatch a request to toggle the media muted state.
261
+ */
262
+ toggleMuted(trigger?: Event): void;
263
+ /**
264
+ * Dispatch a request to toggle the media fullscreen state.
265
+ *
266
+ * @docs {@link https://www.vidstack.io/docs/player/api/fullscreen#remote-control}
267
+ */
268
+ toggleFullscreen(target?: MediaFullscreenRequestTarget, trigger?: Event): void;
269
+ /**
270
+ * Dispatch a request to toggle the media picture-in-picture mode.
271
+ *
272
+ * @docs {@link https://www.vidstack.io/docs/player/api/picture-in-picture#remote-control}
273
+ */
274
+ togglePictureInPicture(trigger?: Event): void;
275
+ /**
276
+ * Show captions.
277
+ */
278
+ showCaptions(trigger?: Event): void;
279
+ /**
280
+ * Turn captions off.
281
+ */
282
+ disableCaptions(trigger?: Event): void;
283
+ /**
284
+ * Dispatch a request to toggle the current captions mode.
285
+ */
286
+ toggleCaptions(trigger?: Event): void;
287
+ userPrefersLoopChange(prefersLoop: boolean, trigger?: Event): void;
288
+ }
@@ -0,0 +1,2 @@
1
+ import type { MediaEvents } from '../api/media-events';
2
+ export declare const TRACKED_EVENT: Set<keyof MediaEvents>;
@@ -0,0 +1,12 @@
1
+ export type TimeInterval = [start: number, end: number];
2
+ export declare class TimeRange implements TimeRanges {
3
+ #private;
4
+ get length(): number;
5
+ constructor(start?: number | TimeInterval[], end?: number);
6
+ start(index: number): number;
7
+ end(index: number): number;
8
+ }
9
+ export declare function getTimeRangesStart(range: TimeRanges): number | null;
10
+ export declare function getTimeRangesEnd(range: TimeRanges): number | null;
11
+ export declare function normalizeTimeIntervals(intervals: TimeInterval[]): TimeInterval[];
12
+ export declare function updateTimeIntervals(intervals: TimeInterval[], interval: TimeInterval, value: number): TimeInterval;
@@ -0,0 +1,32 @@
1
+ import { SelectList, type SelectListItem } from '../../../foundation/list/select-list';
2
+ import type { AudioTrackListEvents } from './events';
3
+ /**
4
+ * @see {@link https://vidstack.io/docs/player/api/audio-tracks}
5
+ */
6
+ export declare class AudioTrackList extends SelectList<AudioTrack, AudioTrackListEvents> {
7
+ }
8
+ /**
9
+ * @see {@link https://vidstack.io/docs/player/api/audio-tracks}
10
+ */
11
+ export interface AudioTrack extends SelectListItem {
12
+ /**
13
+ * A string which uniquely identifies the track within the media.
14
+ */
15
+ readonly id: string;
16
+ /**
17
+ * A human-readable label for the track, or an empty string if unknown.
18
+ */
19
+ readonly label: string;
20
+ /**
21
+ * A string specifying the audio track's primary language, or an empty string if unknown. The
22
+ * language is specified as a BCP 47 (RFC 5646) language code, such as "en-US" or "pt-BR".
23
+ */
24
+ readonly language: string;
25
+ /**
26
+ * A string specifying the category into which the track falls. For example, the main audio
27
+ * track would have a kind of "main".
28
+ *
29
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/AudioTrack/kind}
30
+ */
31
+ readonly kind: string;
32
+ }
@@ -0,0 +1,37 @@
1
+ import type { DOMEvent } from 'maverick.js/std';
2
+ import type { ListReadonlyChangeEvent } from '../../../foundation/list/list';
3
+ import type { AudioTrack, AudioTrackList } from './audio-tracks';
4
+ export interface AudioTrackListEvents {
5
+ add: AudioTrackAddEvent;
6
+ remove: AudioTrackRemoveEvent;
7
+ change: AudioTrackChangeEvent;
8
+ 'readonly-change': ListReadonlyChangeEvent;
9
+ }
10
+ export interface AudioTrackListEvent<T> extends DOMEvent<T> {
11
+ target: AudioTrackList;
12
+ }
13
+ /**
14
+ * Fired when an audio track has been added to the list.
15
+ *
16
+ * @detail newTrack
17
+ */
18
+ export interface AudioTrackAddEvent extends AudioTrackListEvent<AudioTrack> {
19
+ }
20
+ /**
21
+ * Fired when an audio track has been removed from the list.
22
+ *
23
+ * @detail removedTrack
24
+ */
25
+ export interface AudioTrackRemoveEvent extends AudioTrackListEvent<AudioTrack> {
26
+ }
27
+ /**
28
+ * Fired when the selected audio track has changed.
29
+ *
30
+ * @detail change
31
+ */
32
+ export interface AudioTrackChangeEvent extends AudioTrackListEvent<ChangeAudioTrackEventDetail> {
33
+ }
34
+ export interface ChangeAudioTrackEventDetail {
35
+ prev: AudioTrack | null;
36
+ current: AudioTrack;
37
+ }
@@ -0,0 +1,49 @@
1
+ import type { DOMEvent } from 'maverick.js/std';
2
+ import type { TextTrack } from './text-track';
3
+ export interface TextTrackEvents {
4
+ 'load-start': TextTrackLoadStartEvent;
5
+ load: TextTrackLoadEvent;
6
+ error: TextTrackErrorEvent;
7
+ 'add-cue': TextTrackAddCueEvent;
8
+ 'remove-cue': TextTrackRemoveCueEvent;
9
+ 'cue-change': TextTrackCueChangeEvent;
10
+ 'mode-change': TextTrackModeChangeEvent;
11
+ }
12
+ export interface TextTrackEvent<T> extends DOMEvent<T> {
13
+ target: TextTrack;
14
+ }
15
+ /**
16
+ * Fired when the text track begins the loading/parsing process.
17
+ */
18
+ export interface TextTrackLoadStartEvent extends TextTrackEvent<void> {
19
+ }
20
+ /**
21
+ * Fired when the text track has finished loading/parsing.
22
+ */
23
+ export interface TextTrackLoadEvent extends TextTrackEvent<void> {
24
+ }
25
+ /**
26
+ * Fired when loading or parsing the text track fails.
27
+ */
28
+ export interface TextTrackErrorEvent extends TextTrackEvent<Error> {
29
+ }
30
+ /**
31
+ * Fired when a cue is added to the text track.
32
+ */
33
+ export interface TextTrackAddCueEvent extends TextTrackEvent<VTTCue> {
34
+ }
35
+ /**
36
+ * Fired when a cue is removed from the text track.
37
+ */
38
+ export interface TextTrackRemoveCueEvent extends TextTrackEvent<VTTCue> {
39
+ }
40
+ /**
41
+ * Fired when the active cues for the current text track have changed.
42
+ */
43
+ export interface TextTrackCueChangeEvent extends TextTrackEvent<void> {
44
+ }
45
+ /**
46
+ * Fired when the text track mode (showing/hidden/disabled) has changed.
47
+ */
48
+ export interface TextTrackModeChangeEvent extends TextTrackEvent<TextTrack> {
49
+ }
@@ -0,0 +1,181 @@
1
+ import { EventsTarget } from 'maverick.js/std';
2
+ import type { TextTrack } from '../text-track';
3
+ import type { TextRenderer } from './text-renderer';
4
+ export declare class LibASSTextRenderer implements TextRenderer {
5
+ #private;
6
+ readonly loader: LibASSModuleLoader;
7
+ config?: LibASSConfig | undefined;
8
+ readonly priority = 1;
9
+ constructor(loader: LibASSModuleLoader, config?: LibASSConfig | undefined);
10
+ canRender(track: TextTrack, video: HTMLVideoElement | null): boolean;
11
+ attach(video: HTMLVideoElement | null): void;
12
+ changeTrack(track: TextTrack | null): void;
13
+ detach(): void;
14
+ }
15
+ export interface LibASSModuleLoader {
16
+ (): Promise<{
17
+ default: LibASSConstructor;
18
+ }>;
19
+ }
20
+ export interface LibASSConstructor {
21
+ new (config?: {
22
+ video: HTMLVideoElement;
23
+ canvas?: HTMLCanvasElement;
24
+ subUrl?: string;
25
+ } & LibASSConfig): LibASSInstance;
26
+ }
27
+ export interface LibASSInstance extends EventsTarget<LibASSInstanceEvents> {
28
+ _video: HTMLVideoElement;
29
+ _canvas: HTMLVideoElement | null;
30
+ setTrackByUrl(url: string): void;
31
+ setCurrentTime(time: number): void;
32
+ freeTrack(): void;
33
+ destroy(): void;
34
+ }
35
+ export interface LibASSInstanceEvents {
36
+ ready: LibASSReadyEvent;
37
+ error: LibASSErrorEvent;
38
+ }
39
+ export interface LibASSReadyEvent extends Event {
40
+ }
41
+ export interface LibASSErrorEvent extends ErrorEvent {
42
+ }
43
+ /**
44
+ * @see {@link https://github.com/ThaUnknown/jassub/tree/main#options}
45
+ */
46
+ export interface LibASSConfig {
47
+ /**
48
+ * Which image blending mode to use. WASM will perform better on lower end devices, JS will
49
+ * perform better if the device and browser supports hardware acceleration.
50
+ *
51
+ * @defaultValue "js"
52
+ */
53
+ blendMode?: 'js' | 'wasm';
54
+ /**
55
+ * Whether or not to use async rendering, which offloads the CPU by creating image bitmaps on
56
+ * the GPU.
57
+ *
58
+ * @defaultValue true
59
+ */
60
+ asyncRender?: boolean;
61
+ /**
62
+ * Whether or not to render things fully on the worker, greatly reduces CPU usage.
63
+ *
64
+ * @defaultValue true
65
+ */
66
+ offscreenRender?: boolean;
67
+ /**
68
+ * Whether or not to render subtitles as the video player renders frames, rather than predicting
69
+ * which frame the player is on using events.
70
+ *
71
+ * @defaultValue true
72
+ */
73
+ onDemandRender?: boolean;
74
+ /**
75
+ * Target FPS to render subtitles at. Ignored when onDemandRender is enabled.
76
+ *
77
+ * @defaultValue 24
78
+ */
79
+ targetFps?: number;
80
+ /**
81
+ * Subtitle time offset in seconds.
82
+ *
83
+ * @defaultValue 0
84
+ */
85
+ timeOffset?: number;
86
+ /**
87
+ * Whether or not to print debug information.
88
+ *
89
+ * @defaultValue false
90
+ */
91
+ debug?: boolean;
92
+ /**
93
+ * Scale down (< 1.0) the subtitles canvas to improve performance at the expense of quality, or
94
+ * scale it up (> 1.0).
95
+ *
96
+ * @defaultValue 1.0
97
+ */
98
+ prescaleFactor?: number;
99
+ /**
100
+ * The height in pixels beyond which the subtitles canvas won't be pre-scaled.
101
+ *
102
+ * @defaultValue 1080
103
+ */
104
+ prescaleHeightLimit?: number;
105
+ /**
106
+ * The maximum rendering height in pixels of the subtitles canvas. Beyond this subtitles will
107
+ * be up-scaled by the browser.
108
+ *
109
+ * @defaultValue 0
110
+ */
111
+ maxRenderHeight?: number;
112
+ /**
113
+ * Attempt to discard all animated tags. Enabling this may severely mangle complex subtitles
114
+ * and should only be considered as an last ditch effort of uncertain success for hardware
115
+ * otherwise incapable of displaying anything. Will not reliably work with manually edited or
116
+ * allocated events.
117
+ *
118
+ * @defaultValue false
119
+ */
120
+ dropAllAnimations?: boolean;
121
+ /**
122
+ * The URL of the worker.
123
+ *
124
+ * @defaultValue "jassub-worker.js"
125
+ */
126
+ workerUrl?: string;
127
+ /**
128
+ * The URL of the legacy worker. Only loaded if the browser doesn't support WASM.
129
+ *
130
+ * @defaultValue "jassub-worker-legacy.js"
131
+ */
132
+ legacyWorkerUrl?: string;
133
+ /**
134
+ * The URL of the subtitle file to play.
135
+ *
136
+ */
137
+ subUrl?: string;
138
+ /**
139
+ * The content of the subtitle file to play.
140
+ *
141
+ */
142
+ subContent?: string;
143
+ /**
144
+ * An array of links or `Uint8Array` to the fonts used in the subtitle. If `Uint8Array` is used
145
+ * the array is copied, not referenced. This forces all the fonts in this array to be loaded
146
+ * by the renderer, regardless of if they are used.
147
+ *
148
+ */
149
+ fonts?: string[] | Uint8Array[];
150
+ /**
151
+ * Object with all available fonts. Key is font family in lower case, value is link or
152
+ * `Uint8Array`. These fonts are selectively loaded if detected as used in the current
153
+ * subtitle track.
154
+ *
155
+ * @defaultValue {'liberation sans': './default.woff2'}}
156
+ */
157
+ availableFonts?: Record<string, string>;
158
+ /**
159
+ * The font family key of the fallback font in `availableFonts` to use if the other font
160
+ * for the style is missing special glyphs or unicode.
161
+ *
162
+ * @defaultValue "liberation sans"
163
+ */
164
+ fallbackFont?: string;
165
+ /**
166
+ * If the Local Font Access API is enabled `[chrome://flags/#font-access]`, the library will
167
+ * query for permissions to use local fonts and use them if any are missing. The permission can
168
+ * be queried beforehand using `navigator.permissions.request({ name: 'local-fonts' })`.
169
+ *
170
+ * @defaultValue true
171
+ */
172
+ useLocalFonts?: boolean;
173
+ /**
174
+ * libass bitmap cache memory limit in MiB (approximate).
175
+ */
176
+ libassMemoryLimit?: number;
177
+ /**
178
+ * libass glyph cache memory limit in MiB (approximate).
179
+ */
180
+ libassGlyphLimit?: number;
181
+ }
@@ -0,0 +1,13 @@
1
+ import type { TextTrack as VdsTextTrack } from '../text-track';
2
+ import type { TextRenderer } from './text-renderer';
3
+ export declare class NativeTextRenderer implements TextRenderer {
4
+ #private;
5
+ readonly priority = 0;
6
+ canRender(_: any, video: HTMLVideoElement | null): video is HTMLVideoElement;
7
+ attach(video: HTMLVideoElement | null): void;
8
+ addTrack(track: VdsTextTrack): void;
9
+ removeTrack(track: VdsTextTrack): void;
10
+ changeTrack(track: VdsTextTrack | null): void;
11
+ setDisplay(display: boolean): void;
12
+ detach(): void;
13
+ }
@@ -0,0 +1,17 @@
1
+ import type { MediaContext } from '../../../api/media-context';
2
+ import { TextTrack } from '../text-track';
3
+ export declare class TextRenderers {
4
+ #private;
5
+ constructor(media: MediaContext);
6
+ add(renderer: TextRenderer): void;
7
+ remove(renderer: TextRenderer): void;
8
+ /** @internal */
9
+ attachVideo(video: HTMLVideoElement | null): void;
10
+ }
11
+ export interface TextRenderer {
12
+ readonly priority: number;
13
+ canRender(track: TextTrack, video: HTMLVideoElement | null): boolean;
14
+ attach(video: HTMLVideoElement | null): any;
15
+ detach(): void;
16
+ changeTrack(track: TextTrack | null): void;
17
+ }
@@ -0,0 +1,11 @@
1
+ declare const CROSS_ORIGIN: unique symbol, READY_STATE: unique symbol, UPDATE_ACTIVE_CUES: unique symbol, CAN_LOAD: unique symbol, ON_MODE_CHANGE: unique symbol, NATIVE: unique symbol, NATIVE_HLS: unique symbol;
2
+ export declare const TextTrackSymbol: {
3
+ readonly crossOrigin: typeof CROSS_ORIGIN;
4
+ readonly readyState: typeof READY_STATE;
5
+ readonly updateActiveCues: typeof UPDATE_ACTIVE_CUES;
6
+ readonly canLoad: typeof CAN_LOAD;
7
+ readonly onModeChange: typeof ON_MODE_CHANGE;
8
+ readonly native: typeof NATIVE;
9
+ readonly nativeHLS: typeof NATIVE_HLS;
10
+ };
11
+ export {};