@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,40 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ /**
4
+ * A radio group consists of options where only one of them can be checked. Each option is
5
+ * provided as a radio (i.e., a selectable element).
6
+ *
7
+ * @docs {@link https://www.vidstack.io/docs/player/components/menu/radio-group}
8
+ */
9
+ export declare class RadioGroup extends Component<RadioGroupProps, {}, RadioGroupEvents> {
10
+ #private;
11
+ static props: RadioGroupProps;
12
+ /**
13
+ * A list of radio values that belong this group.
14
+ */
15
+ get values(): string[];
16
+ /**
17
+ * The radio value that is checked in this group.
18
+ */
19
+ get value(): string;
20
+ set value(newValue: string);
21
+ constructor();
22
+ protected onSetup(): void;
23
+ }
24
+ export interface RadioGroupProps {
25
+ /**
26
+ * The value of the radio that is checked in this group.
27
+ */
28
+ value: string;
29
+ }
30
+ export interface RadioGroupEvents {
31
+ change: RadioGroupChangeEvent;
32
+ }
33
+ /**
34
+ * Fired when the checked radio changes.
35
+ *
36
+ * @detail value
37
+ */
38
+ export interface RadioGroupChangeEvent extends DOMEvent<string> {
39
+ target: RadioGroup;
40
+ }
@@ -0,0 +1,50 @@
1
+ import { Component, type ReadSignal } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ /**
4
+ * A radio represents a option that a user can select inside of a radio group. Only one radio
5
+ * can be checked in a group.
6
+ *
7
+ * @attr data-checked - Whether radio is checked.
8
+ * @attr data-focus - Whether radio is being keyboard focused.
9
+ * @attr data-hocus - Whether radio is being keyboard focused or hovered over.
10
+ * @docs {@link https://www.vidstack.io/docs/player/components/menu/radio}
11
+ */
12
+ export declare class Radio extends Component<RadioProps, {}, RadioEvents> {
13
+ #private;
14
+ static props: RadioProps;
15
+ /**
16
+ * Whether this radio is currently checked.
17
+ */
18
+ get checked(): boolean;
19
+ constructor();
20
+ protected onSetup(): void;
21
+ protected onAttach(el: HTMLElement): void;
22
+ protected onConnect(el: HTMLElement): void;
23
+ }
24
+ export interface RadioProps {
25
+ /** The radio value. */
26
+ value: string;
27
+ }
28
+ export interface RadioEvents {
29
+ change: RadioChangeEvent;
30
+ select: RadioSelectEvent;
31
+ }
32
+ /**
33
+ * Fired when the radio's checked value changes.
34
+ *
35
+ * @detail isSelected
36
+ */
37
+ export interface RadioChangeEvent extends DOMEvent<boolean> {
38
+ target: Radio;
39
+ }
40
+ /**
41
+ * Fired when the radio is pressed via mouse, touch, or, keyboard. This will not fire if the radio
42
+ * is programmatically selected.
43
+ */
44
+ export interface RadioSelectEvent extends DOMEvent<void> {
45
+ target: Radio;
46
+ }
47
+ export interface RadioOption {
48
+ label: string | ReadSignal<string>;
49
+ value: string;
50
+ }
@@ -0,0 +1,36 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ import type { RadioOption } from '../radio/radio';
4
+ export declare const DEFAULT_AUDIO_GAINS: number[];
5
+ /**
6
+ * This component manages audio gain radios.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/wc/player/components/menu/audio-gain-radio-group}
9
+ */
10
+ export declare class AudioGainRadioGroup extends Component<AudioGainRadioGroupProps, {}, AudioGainRadioGroupEvents> {
11
+ #private;
12
+ static props: AudioGainRadioGroupProps;
13
+ get value(): string;
14
+ get disabled(): boolean;
15
+ constructor();
16
+ protected onSetup(): void;
17
+ protected onConnect(el: HTMLElement): void;
18
+ getOptions(): RadioOption[];
19
+ }
20
+ export interface AudioGainRadioGroupProps {
21
+ /** The audio gain options to be displayed. */
22
+ gains: number[];
23
+ /** The text to display for disabled audio gain (i.e., audio gain is 1.0). */
24
+ normalLabel: string;
25
+ }
26
+ export interface AudioGainRadioGroupEvents {
27
+ change: AudioGainRadioGroupChangeEvent;
28
+ }
29
+ /**
30
+ * Fired when the checked radio changes.
31
+ *
32
+ * @detail gain
33
+ */
34
+ export interface AudioGainRadioGroupChangeEvent extends DOMEvent<number> {
35
+ target: AudioGainRadioGroup;
36
+ }
@@ -0,0 +1,37 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ import type { AudioTrack } from '../../../../core/tracks/audio/audio-tracks';
4
+ import type { RadioOption } from '../radio/radio';
5
+ /**
6
+ * This component manages audio track radios.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/wc/player/components/menu/audio-radio-group}
9
+ */
10
+ export declare class AudioRadioGroup extends Component<AudioRadioGroupProps, {}, AudioRadioGroupEvents> {
11
+ #private;
12
+ static props: AudioRadioGroupProps;
13
+ get value(): string;
14
+ get disabled(): boolean;
15
+ constructor();
16
+ protected onSetup(): void;
17
+ protected onConnect(el: HTMLElement): void;
18
+ getOptions(): AudioRadioOption[];
19
+ }
20
+ export interface AudioRadioGroupProps {
21
+ /** The text to display when the are no audio tracks. */
22
+ emptyLabel: string;
23
+ }
24
+ export interface AudioRadioGroupEvents {
25
+ change: AudioRadioGroupChangeEvent;
26
+ }
27
+ export interface AudioRadioOption extends RadioOption {
28
+ track: AudioTrack;
29
+ }
30
+ /**
31
+ * Fired when the checked radio changes.
32
+ *
33
+ * @detail track
34
+ */
35
+ export interface AudioRadioGroupChangeEvent extends DOMEvent<AudioTrack> {
36
+ target: AudioRadioGroup;
37
+ }
@@ -0,0 +1,38 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ import { TextTrack } from '../../../../core/tracks/text/text-track';
4
+ import type { RadioOption } from '../radio/radio';
5
+ /**
6
+ * This component manages caption/subtitle track radio options.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/wc/player/components/menu/captions-radio-group}
9
+ */
10
+ export declare class CaptionsRadioGroup extends Component<CaptionsRadioGroupProps, {}, CaptionsRadioGroupEvents> {
11
+ #private;
12
+ static props: CaptionsRadioGroupProps;
13
+ get value(): string;
14
+ get disabled(): boolean;
15
+ constructor();
16
+ protected onSetup(): void;
17
+ protected onConnect(el: HTMLElement): void;
18
+ getOptions(): CaptionsRadioOption[];
19
+ }
20
+ export interface CaptionsRadioGroupProps {
21
+ /** The text to display when the captions are turned off. */
22
+ offLabel: string;
23
+ }
24
+ export interface CaptionsRadioGroupEvents {
25
+ change: CaptionsRadioGroupChangeEvent;
26
+ }
27
+ export interface CaptionsRadioOption extends RadioOption {
28
+ track?: TextTrack;
29
+ }
30
+ /**
31
+ * Fired when the checked radio changes. The event detail will be `null` when no track is selected
32
+ * or captions are turned off.
33
+ *
34
+ * @detail track
35
+ */
36
+ export interface CaptionsRadioGroupChangeEvent extends DOMEvent<TextTrack | null> {
37
+ target: CaptionsRadioGroup;
38
+ }
@@ -0,0 +1,46 @@
1
+ import { Component } from 'maverick.js';
2
+ import { DOMEvent } from 'maverick.js/std';
3
+ import type { VTTCue } from 'media-captions';
4
+ import type { ThumbnailSrc } from '../../thumbnails/thumbnail-loader';
5
+ import type { RadioOption } from '../radio/radio';
6
+ /**
7
+ * This component manages media chapters inside of a radio group.
8
+ *
9
+ * @attr data-thumbnails - Whether thumbnails are available.
10
+ * @docs {@link https://www.vidstack.io/docs/wc/player/components/menu/chapters-radio-group}
11
+ */
12
+ export declare class ChaptersRadioGroup extends Component<ChapterRadioGroupProps, {}, ChaptersRadioGroupEvents> {
13
+ #private;
14
+ static props: ChapterRadioGroupProps;
15
+ get value(): string;
16
+ get disabled(): boolean;
17
+ constructor();
18
+ protected onSetup(): void;
19
+ protected onAttach(el: HTMLElement): void;
20
+ getOptions(): ChaptersRadioOption[];
21
+ protected onConnect(el: HTMLElement): void;
22
+ }
23
+ export interface ChapterRadioGroupProps {
24
+ /**
25
+ * The thumbnails resource.
26
+ *
27
+ * @see {@link https://www.vidstack.io/docs/player/core-concepts/loading#thumbnails}
28
+ */
29
+ thumbnails: ThumbnailSrc;
30
+ }
31
+ export interface ChaptersRadioGroupEvents {
32
+ change: ChaptersRadioGroupChangeEvent;
33
+ }
34
+ /**
35
+ * Fired when the checked radio changes.
36
+ *
37
+ * @detail cue
38
+ */
39
+ export interface ChaptersRadioGroupChangeEvent extends DOMEvent<VTTCue> {
40
+ target: ChaptersRadioGroup;
41
+ }
42
+ export interface ChaptersRadioOption extends RadioOption {
43
+ cue: VTTCue;
44
+ startTime: string;
45
+ duration: string;
46
+ }
@@ -0,0 +1,48 @@
1
+ import { Component, type ReadSignal } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ import type { VideoQuality } from '../../../../core/quality/video-quality';
4
+ import type { RadioOption } from '../radio/radio';
5
+ /**
6
+ * This component manages video quality radios.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/wc/player/components/menu/quality-radio-group}
9
+ */
10
+ export declare class QualityRadioGroup extends Component<QualityRadioGroupProps, {}, QualityRadioGroupEvents> {
11
+ #private;
12
+ static props: QualityRadioGroupProps;
13
+ get value(): string;
14
+ get disabled(): boolean;
15
+ constructor();
16
+ protected onSetup(): void;
17
+ protected onConnect(el: HTMLElement): void;
18
+ getOptions(): QualityRadioOption[];
19
+ }
20
+ export interface QualityRadioGroupProps {
21
+ /** The text to display for the auto quality radio option. */
22
+ autoLabel: string;
23
+ /** Whether the bitrate should _not_ be displayed next to each quality radio option. */
24
+ hideBitrate: boolean;
25
+ /**
26
+ * Specifies how the options should be sorted. The sorting algorithm looks at both the quality
27
+ * resolution and bitrate.
28
+ *
29
+ * - Ascending: 480p, 720p, 720p (higher bitrate), 1080p
30
+ * - Descending: 1080p, 720p (higher bitrate), 720p, 480p
31
+ */
32
+ sort: 'ascending' | 'descending';
33
+ }
34
+ export interface QualityRadioOption extends RadioOption {
35
+ quality?: VideoQuality;
36
+ bitrate?: ReadSignal<string | null>;
37
+ }
38
+ export interface QualityRadioGroupEvents {
39
+ change: QualityRadioGroupChangeEvent;
40
+ }
41
+ /**
42
+ * Fired when the checked radio changes.
43
+ *
44
+ * @detail quality
45
+ */
46
+ export interface QualityRadioGroupChangeEvent extends DOMEvent<'auto' | VideoQuality> {
47
+ target: QualityRadioGroup;
48
+ }
@@ -0,0 +1,36 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { DOMEvent } from 'maverick.js/std';
3
+ import type { RadioOption } from '../radio/radio';
4
+ export declare const DEFAULT_PLAYBACK_RATES: number[];
5
+ /**
6
+ * This component manages playback rate radios.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/wc/player/components/menu/speed-radio-group}
9
+ */
10
+ export declare class SpeedRadioGroup extends Component<SpeedRadioGroupProps, {}, SpeedRadioGroupEvents> {
11
+ #private;
12
+ static props: SpeedRadioGroupProps;
13
+ get value(): string;
14
+ get disabled(): boolean;
15
+ constructor();
16
+ protected onSetup(): void;
17
+ protected onConnect(el: HTMLElement): void;
18
+ getOptions(): RadioOption[];
19
+ }
20
+ export interface SpeedRadioGroupProps {
21
+ /** The playback rate options to be displayed. */
22
+ rates: number[];
23
+ /** The text to display for normal speed (i.e., playback rate of 1). */
24
+ normalLabel: string;
25
+ }
26
+ export interface SpeedRadioGroupEvents {
27
+ change: SpeedRadioGroupChangeEvent;
28
+ }
29
+ /**
30
+ * Fired when the checked radio changes.
31
+ *
32
+ * @detail speed
33
+ */
34
+ export interface SpeedRadioGroupChangeEvent extends DOMEvent<number> {
35
+ target: SpeedRadioGroup;
36
+ }
@@ -0,0 +1,15 @@
1
+ import { ViewController, type ReadSignal } from 'maverick.js';
2
+ export interface PopperDelegate {
3
+ showDelay?: ReadSignal<number>;
4
+ trigger: ReadSignal<HTMLElement | null>;
5
+ content: ReadSignal<HTMLElement | null>;
6
+ listen(trigger: HTMLElement, show: (trigger?: Event) => void, hide: (trigger?: Event) => void): void;
7
+ onChange(isShowing: boolean, trigger?: Event): void;
8
+ }
9
+ export declare class Popper extends ViewController {
10
+ #private;
11
+ constructor(delegate: PopperDelegate);
12
+ protected onDestroy(): void;
13
+ show(trigger?: Event): void;
14
+ hide(trigger?: Event): void;
15
+ }
@@ -0,0 +1,47 @@
1
+ import { Component, State } from 'maverick.js';
2
+ import type { MediaCrossOrigin } from '../../core/api/types';
3
+ export interface PosterProps {
4
+ /**
5
+ * The URL of the poster image resource.
6
+ */
7
+ src: string | null;
8
+ /**
9
+ * ♿ **ARIA:** Provides alternative information for a poster image if a user for some reason
10
+ * cannot view it.
11
+ */
12
+ alt: string | null;
13
+ /**
14
+ * Defines how the img handles cross-origin requests, thereby enabling the
15
+ * configuration of the CORS requests for the element's fetched data.
16
+ *
17
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin}
18
+ */
19
+ crossOrigin: true | MediaCrossOrigin | null;
20
+ }
21
+ export interface PosterState {
22
+ img: HTMLImageElement | null;
23
+ src: string | null;
24
+ alt: string | null;
25
+ crossOrigin: MediaCrossOrigin | null;
26
+ loading: boolean;
27
+ error: ErrorEvent | null;
28
+ hidden: boolean;
29
+ }
30
+ /**
31
+ * Loads and displays the current media poster image. By default, the media provider's
32
+ * loading strategy is respected meaning the poster won't load until the media can.
33
+ *
34
+ * @attr data-visible - Whether poster image should be shown.
35
+ * @attr data-loading - Whether poster image is loading.
36
+ * @attr data-error - Whether an error occurred loading poster.
37
+ * @attr data-hidden - Whether poster has no src or has failed to load.
38
+ * @docs {@link https://www.vidstack.io/docs/player/components/media/poster}
39
+ */
40
+ export declare class Poster extends Component<PosterProps, PosterState> {
41
+ #private;
42
+ static props: PosterProps;
43
+ static state: State<PosterState>;
44
+ protected onSetup(): void;
45
+ protected onAttach(el: HTMLElement): void;
46
+ protected onConnect(el: HTMLElement): void;
47
+ }
@@ -0,0 +1,43 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { MediaRequestEvents } from '../../../core/api/media-request-events';
3
+ import type { SliderCSSVars } from './slider/api/cssvars';
4
+ import type { SliderEvents } from './slider/api/events';
5
+ import { type SliderState } from './slider/api/state';
6
+ import { type SliderControllerProps } from './slider/slider-controller';
7
+ /**
8
+ * Versatile and user-friendly audio boost control designed for seamless cross-browser and provider
9
+ * compatibility and accessibility with ARIA support. It offers a smooth user experience for both
10
+ * mouse and touch interactions and is highly customizable in terms of styling. Users can
11
+ * effortlessly change the audio gain within the range 0 to 100.
12
+ *
13
+ * @attr data-dragging - Whether slider thumb is being dragged.
14
+ * @attr data-pointing - Whether user's pointing device is over slider.
15
+ * @attr data-active - Whether slider is being interacted with.
16
+ * @attr data-focus - Whether slider is being keyboard focused.
17
+ * @attr data-hocus - Whether slider is being keyboard focused or hovered over.
18
+ * @attr data-supported - Whether audio gain is supported.
19
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/audio-gain-slider}
20
+ */
21
+ export declare class AudioGainSlider extends Component<AudioGainSliderProps, AudioGainSliderState, AudioGainSliderEvents, AudioGainSliderCSSVars> {
22
+ #private;
23
+ static props: AudioGainSliderProps;
24
+ static state: import("maverick.js").State<SliderState>;
25
+ protected onSetup(): void;
26
+ protected onAttach(el: HTMLElement): void;
27
+ }
28
+ export interface AudioGainSliderProps extends SliderControllerProps {
29
+ /**
30
+ * The minimum audio gain boost represented as a percentage.
31
+ */
32
+ min: number;
33
+ /**
34
+ * The minimum audio gain boost represented as a percentage.
35
+ */
36
+ max: number;
37
+ }
38
+ export interface AudioGainSliderState extends SliderState {
39
+ }
40
+ export interface AudioGainSliderEvents extends SliderEvents, Pick<MediaRequestEvents, 'media-audio-gain-change-request'> {
41
+ }
42
+ export interface AudioGainSliderCSSVars extends SliderCSSVars {
43
+ }
@@ -0,0 +1,34 @@
1
+ import { Component } from 'maverick.js';
2
+ import type { MediaRequestEvents } from '../../../core/api/media-request-events';
3
+ import type { SliderCSSVars } from './slider/api/cssvars';
4
+ import type { SliderEvents } from './slider/api/events';
5
+ import { type SliderState } from './slider/api/state';
6
+ import { type SliderControllerProps } from './slider/slider-controller';
7
+ /**
8
+ * Versatile and user-friendly input video quality control designed for seamless cross-browser and
9
+ * provider compatibility and accessibility with ARIA support. It offers a smooth user experience
10
+ * for both mouse and touch interactions and is highly customizable in terms of styling.
11
+ *
12
+ * @attr data-dragging - Whether slider thumb is being dragged.
13
+ * @attr data-pointing - Whether user's pointing device is over slider.
14
+ * @attr data-active - Whether slider is being interacted with.
15
+ * @attr data-focus - Whether slider is being keyboard focused.
16
+ * @attr data-hocus - Whether slider is being keyboard focused or hovered over.
17
+ * @attr data-supported - Whether setting video quality is supported.
18
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/quality-slider}
19
+ */
20
+ export declare class QualitySlider extends Component<QualitySliderProps, QualitySliderState, QualitySliderEvents, QualitySliderCSSVars> {
21
+ #private;
22
+ static props: QualitySliderProps;
23
+ static state: import("maverick.js").State<SliderState>;
24
+ protected onSetup(): void;
25
+ protected onAttach(el: HTMLElement): void;
26
+ }
27
+ export interface QualitySliderProps extends SliderControllerProps {
28
+ }
29
+ export interface QualitySliderState extends SliderState {
30
+ }
31
+ export interface QualitySliderEvents extends SliderEvents, Pick<MediaRequestEvents, 'media-quality-change-request'> {
32
+ }
33
+ export interface QualitySliderCSSVars extends SliderCSSVars {
34
+ }
@@ -0,0 +1,10 @@
1
+ export interface SliderCSSVars {
2
+ /**
3
+ * The fill rate expressed as a percentage.
4
+ */
5
+ readonly 'slider-fill': string;
6
+ /**
7
+ * The pointer rate expressed as a percentage.
8
+ */
9
+ readonly 'slider-pointer': string;
10
+ }
@@ -0,0 +1,57 @@
1
+ import type { DOMEvent } from 'maverick.js/std';
2
+ import type { Slider } from '../slider';
3
+ export interface SliderEvents {
4
+ 'drag-start': SliderDragStartEvent;
5
+ 'drag-end': SliderDragEndEvent;
6
+ 'value-change': SliderValueChangeEvent;
7
+ 'drag-value-change': SliderDragValueChangeEvent;
8
+ 'pointer-value-change': SliderPointerValueChangeEvent;
9
+ }
10
+ export interface SliderEvent<Detail = unknown> extends DOMEvent<Detail> {
11
+ target: Slider;
12
+ }
13
+ /**
14
+ * Fired when the user begins interacting with the slider and dragging the thumb. The event
15
+ * detail contains the current value the drag is starting at.
16
+ *
17
+ * @detail value
18
+ */
19
+ export interface SliderDragStartEvent extends SliderEvent<number> {
20
+ readonly trigger: PointerEvent | KeyboardEvent;
21
+ }
22
+ /**
23
+ * Fired when the user stops dragging the slider thumb. The event detail contains the value
24
+ * the drag is ending at.
25
+ *
26
+ * @detail value
27
+ */
28
+ export interface SliderDragEndEvent extends SliderEvent<number> {
29
+ readonly trigger: PointerEvent | KeyboardEvent;
30
+ }
31
+ /**
32
+ * Fired when the slider value changes. The event detail contains the current value.
33
+ *
34
+ * @detail value
35
+ */
36
+ export interface SliderValueChangeEvent extends SliderEvent<number> {
37
+ readonly trigger: PointerEvent | KeyboardEvent | undefined;
38
+ }
39
+ /**
40
+ * Fired when the slider drag value changes. The drag value indicates the last slider value that
41
+ * the user has dragged to. The event detail contains the value.
42
+ *
43
+ * @detail value
44
+ */
45
+ export interface SliderDragValueChangeEvent extends SliderEvent<number> {
46
+ readonly trigger: PointerEvent | KeyboardEvent;
47
+ }
48
+ /**
49
+ * Fired when the device pointer is inside the slider region and it's position changes. The
50
+ * event detail contains the preview value. Do note, this includes touch, mouse, and keyboard
51
+ * devices.
52
+ *
53
+ * @detail pointerValue
54
+ */
55
+ export interface SliderPointerValueChangeEvent extends SliderEvent<number> {
56
+ readonly trigger: PointerEvent | KeyboardEvent;
57
+ }
@@ -0,0 +1,68 @@
1
+ import { State, type Store } from 'maverick.js';
2
+ export declare const sliderState: State<SliderState>;
3
+ export interface SliderStore extends Store<SliderState> {
4
+ }
5
+ export interface SliderState {
6
+ /**
7
+ * The current slider value.
8
+ */
9
+ value: number;
10
+ /**
11
+ * The value at which the device pointer is pointing to inside the slider.
12
+ */
13
+ pointerValue: number;
14
+ /**
15
+ * The minimum slider value.
16
+ */
17
+ min: number;
18
+ /**
19
+ * The maximum slider value.
20
+ */
21
+ max: number;
22
+ /**
23
+ * The granularity that the slider value must adhere to.
24
+ */
25
+ step: number;
26
+ /**
27
+ * Whether the slider has keyboard focus.
28
+ */
29
+ focused: boolean;
30
+ /**
31
+ * Whether the slider thumb is currently being dragged.
32
+ */
33
+ dragging: boolean;
34
+ /**
35
+ * Whether a device pointer is within the slider bounds.
36
+ */
37
+ pointing: boolean;
38
+ /** Whether the slider is not visible. */
39
+ hidden: boolean;
40
+ /**
41
+ * Whether the slider is being interacted with via keyboard or pointer device.
42
+ */
43
+ readonly active: boolean;
44
+ /**
45
+ * The current value to range ratio.
46
+ *
47
+ * @signal
48
+ * @example
49
+ * `min` = 0
50
+ * `max` = 10
51
+ * `value` = 5
52
+ * `range` = 10 (max - min)
53
+ * `fillRate` = 0.5 (result)
54
+ */
55
+ readonly fillRate: number;
56
+ /**
57
+ * The fill rate expressed as a percentage (`fillRate * 100`).
58
+ */
59
+ readonly fillPercent: number;
60
+ /**
61
+ * The pointer value to range ratio.
62
+ */
63
+ readonly pointerRate: number;
64
+ /**
65
+ * The pointer rate expressed as a percentage (`pointerRate * 100`).
66
+ */
67
+ readonly pointerPercent: number;
68
+ }
@@ -0,0 +1,23 @@
1
+ import { ViewController, type ReadSignal } from 'maverick.js';
2
+ import type { MediaContext } from '../../../../core/api/media-context';
3
+ import type { SliderDragEndEvent, SliderDragStartEvent, SliderDragValueChangeEvent, SliderEvents, SliderValueChangeEvent } from './api/events';
4
+ import type { SliderState } from './api/state';
5
+ import type { SliderControllerProps } from './slider-controller';
6
+ export interface SliderEventDelegate {
7
+ swipeGesture?: ReadSignal<boolean>;
8
+ isDisabled(): boolean;
9
+ getValue?(): number;
10
+ getStep(): number;
11
+ getKeyStep(): number;
12
+ roundValue(value: number): number;
13
+ onValueChange?(event: SliderValueChangeEvent): unknown;
14
+ onDragStart?(event: SliderDragStartEvent): unknown;
15
+ onDragEnd?(event: SliderDragEndEvent): unknown;
16
+ onDragValueChange?(event: SliderDragValueChangeEvent): unknown;
17
+ }
18
+ export declare class SliderEventsController extends ViewController<SliderControllerProps, SliderState, SliderEvents> {
19
+ #private;
20
+ constructor(delegate: SliderEventDelegate, media: MediaContext);
21
+ protected onSetup(): void;
22
+ protected onConnect(el: HTMLElement): void;
23
+ }
@@ -0,0 +1,8 @@
1
+ import type { FormatTimeOptions } from '../../../../utils/time';
2
+ export declare const sliderValueFormatContext: import("maverick.js").Context<SliderValueFormat>;
3
+ export interface SliderValueFormat {
4
+ default?: 'value' | 'percent' | 'time';
5
+ value?(value: number): string | number;
6
+ percent?(percent: number, decimalPlaces: number): string | number;
7
+ time?(value: number, options?: FormatTimeOptions): string;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { type ReadSignal, type WriteSignal } from 'maverick.js';
2
+ import type { SliderOrientation } from './types';
3
+ export interface SliderContext {
4
+ disabled: ReadSignal<boolean>;
5
+ orientation: ReadSignal<SliderOrientation>;
6
+ preview: WriteSignal<HTMLElement | null>;
7
+ }
8
+ export declare const sliderContext: import("maverick.js").Context<SliderContext>;
9
+ export interface SliderObserverContext {
10
+ onDragStart?(): void;
11
+ onDragEnd?(): void;
12
+ }
13
+ export declare const sliderObserverContext: import("maverick.js").Context<SliderObserverContext>;