@hanifhan1f/vidstack-react 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 (284) hide show
  1. package/.templates/sandbox/document.css +27 -0
  2. package/.templates/sandbox/favicon-32x32.png +0 -0
  3. package/.templates/sandbox/index.html +21 -0
  4. package/.templates/sandbox/main.tsx +12 -0
  5. package/.templates/sandbox/player.css +39 -0
  6. package/.templates/sandbox/player.tsx +121 -0
  7. package/.templates/sandbox/tracks.ts +23 -0
  8. package/LICENSE +21 -0
  9. package/README.md +23 -0
  10. package/analyze.config.ts +7 -0
  11. package/build/build-icons.js +62 -0
  12. package/npm/analyze.json.d.ts +7 -0
  13. package/package.json +162 -0
  14. package/rollup.config.ts +256 -0
  15. package/src/components/announcer.tsx +47 -0
  16. package/src/components/layouts/default/audio-layout.tsx +231 -0
  17. package/src/components/layouts/default/context.ts +28 -0
  18. package/src/components/layouts/default/hooks.ts +13 -0
  19. package/src/components/layouts/default/icons.tsx +225 -0
  20. package/src/components/layouts/default/index.ts +11 -0
  21. package/src/components/layouts/default/media-layout.tsx +259 -0
  22. package/src/components/layouts/default/slots.tsx +98 -0
  23. package/src/components/layouts/default/ui/announcer.tsx +22 -0
  24. package/src/components/layouts/default/ui/buttons.tsx +301 -0
  25. package/src/components/layouts/default/ui/captions.tsx +16 -0
  26. package/src/components/layouts/default/ui/controls.tsx +12 -0
  27. package/src/components/layouts/default/ui/keyboard-display.tsx +132 -0
  28. package/src/components/layouts/default/ui/menus/accessibility-menu.tsx +100 -0
  29. package/src/components/layouts/default/ui/menus/audio-menu.tsx +167 -0
  30. package/src/components/layouts/default/ui/menus/captions-menu.tsx +61 -0
  31. package/src/components/layouts/default/ui/menus/chapters-menu.tsx +132 -0
  32. package/src/components/layouts/default/ui/menus/font-menu.tsx +331 -0
  33. package/src/components/layouts/default/ui/menus/items/menu-checkbox.tsx +72 -0
  34. package/src/components/layouts/default/ui/menus/items/menu-items.tsx +135 -0
  35. package/src/components/layouts/default/ui/menus/items/menu-slider.tsx +92 -0
  36. package/src/components/layouts/default/ui/menus/playback-menu.tsx +232 -0
  37. package/src/components/layouts/default/ui/menus/settings-menu.tsx +114 -0
  38. package/src/components/layouts/default/ui/menus/utils.ts +12 -0
  39. package/src/components/layouts/default/ui/sliders.tsx +136 -0
  40. package/src/components/layouts/default/ui/time.tsx +73 -0
  41. package/src/components/layouts/default/ui/title.tsx +24 -0
  42. package/src/components/layouts/default/ui/tooltip.tsx +27 -0
  43. package/src/components/layouts/default/ui.ts +8 -0
  44. package/src/components/layouts/default/video-layout.tsx +344 -0
  45. package/src/components/layouts/plyr/context.ts +26 -0
  46. package/src/components/layouts/plyr/icons/plyr-airplay.js +1 -0
  47. package/src/components/layouts/plyr/icons/plyr-captions-off.js +1 -0
  48. package/src/components/layouts/plyr/icons/plyr-captions-on.js +1 -0
  49. package/src/components/layouts/plyr/icons/plyr-download.js +1 -0
  50. package/src/components/layouts/plyr/icons/plyr-enter-fullscreen.js +1 -0
  51. package/src/components/layouts/plyr/icons/plyr-exit-fullscreen.js +1 -0
  52. package/src/components/layouts/plyr/icons/plyr-fast-forward.js +1 -0
  53. package/src/components/layouts/plyr/icons/plyr-muted.js +1 -0
  54. package/src/components/layouts/plyr/icons/plyr-pause.js +1 -0
  55. package/src/components/layouts/plyr/icons/plyr-pip.js +1 -0
  56. package/src/components/layouts/plyr/icons/plyr-play.js +1 -0
  57. package/src/components/layouts/plyr/icons/plyr-restart.js +1 -0
  58. package/src/components/layouts/plyr/icons/plyr-rewind.js +1 -0
  59. package/src/components/layouts/plyr/icons/plyr-settings.js +1 -0
  60. package/src/components/layouts/plyr/icons/plyr-volume.js +1 -0
  61. package/src/components/layouts/plyr/icons.tsx +71 -0
  62. package/src/components/layouts/plyr/index.ts +11 -0
  63. package/src/components/layouts/plyr/layout.tsx +1024 -0
  64. package/src/components/layouts/plyr/props.ts +104 -0
  65. package/src/components/layouts/plyr/slots.tsx +52 -0
  66. package/src/components/layouts/remotion-ui.ts +13 -0
  67. package/src/components/layouts/utils.ts +17 -0
  68. package/src/components/player-callbacks.ts +67 -0
  69. package/src/components/player.tsx +67 -0
  70. package/src/components/primitives/instances.ts +92 -0
  71. package/src/components/primitives/nodes.tsx +58 -0
  72. package/src/components/primitives/slot.tsx +132 -0
  73. package/src/components/provider.tsx +187 -0
  74. package/src/components/text-track.tsx +106 -0
  75. package/src/components/ui/buttons/airplay-button.tsx +53 -0
  76. package/src/components/ui/buttons/caption-button.tsx +55 -0
  77. package/src/components/ui/buttons/fullscreen-button.tsx +55 -0
  78. package/src/components/ui/buttons/google-cast-button.tsx +53 -0
  79. package/src/components/ui/buttons/live-button.tsx +56 -0
  80. package/src/components/ui/buttons/mute-button.tsx +60 -0
  81. package/src/components/ui/buttons/pip-button.tsx +54 -0
  82. package/src/components/ui/buttons/play-button.tsx +53 -0
  83. package/src/components/ui/buttons/seek-button.tsx +55 -0
  84. package/src/components/ui/buttons/toggle-button.tsx +51 -0
  85. package/src/components/ui/caption.tsx +70 -0
  86. package/src/components/ui/captions.tsx +41 -0
  87. package/src/components/ui/chapter-title.tsx +40 -0
  88. package/src/components/ui/controls.tsx +90 -0
  89. package/src/components/ui/gesture.tsx +43 -0
  90. package/src/components/ui/menu.tsx +251 -0
  91. package/src/components/ui/poster.tsx +101 -0
  92. package/src/components/ui/radio-group.tsx +88 -0
  93. package/src/components/ui/sliders/audio-gain-slider.tsx +55 -0
  94. package/src/components/ui/sliders/quality-slider.tsx +54 -0
  95. package/src/components/ui/sliders/slider-callbacks.ts +14 -0
  96. package/src/components/ui/sliders/slider-value.tsx +13 -0
  97. package/src/components/ui/sliders/slider.tsx +254 -0
  98. package/src/components/ui/sliders/speed-slider.tsx +54 -0
  99. package/src/components/ui/sliders/time-slider.tsx +379 -0
  100. package/src/components/ui/sliders/volume-slider.tsx +55 -0
  101. package/src/components/ui/spinner.tsx +105 -0
  102. package/src/components/ui/thumbnail.tsx +82 -0
  103. package/src/components/ui/time.tsx +77 -0
  104. package/src/components/ui/title.tsx +32 -0
  105. package/src/components/ui/tooltip.tsx +135 -0
  106. package/src/globals.d.ts +3 -0
  107. package/src/hooks/create-text-track.ts +22 -0
  108. package/src/hooks/options/use-audio-gain-options.ts +75 -0
  109. package/src/hooks/options/use-audio-options.ts +71 -0
  110. package/src/hooks/options/use-caption-options.ts +95 -0
  111. package/src/hooks/options/use-chapter-options.ts +97 -0
  112. package/src/hooks/options/use-playback-rate-options.ts +75 -0
  113. package/src/hooks/options/use-video-quality-options.ts +123 -0
  114. package/src/hooks/use-active-text-cues.ts +28 -0
  115. package/src/hooks/use-active-text-track.ts +19 -0
  116. package/src/hooks/use-chapter-title.ts +12 -0
  117. package/src/hooks/use-dom.ts +121 -0
  118. package/src/hooks/use-media-context.ts +6 -0
  119. package/src/hooks/use-media-player.ts +19 -0
  120. package/src/hooks/use-media-provider.ts +31 -0
  121. package/src/hooks/use-media-remote.ts +37 -0
  122. package/src/hooks/use-media-state.ts +58 -0
  123. package/src/hooks/use-signals.ts +24 -0
  124. package/src/hooks/use-slider-preview.ts +126 -0
  125. package/src/hooks/use-slider-state.ts +63 -0
  126. package/src/hooks/use-state.ts +47 -0
  127. package/src/hooks/use-text-cues.ts +33 -0
  128. package/src/hooks/use-thumbnails.ts +69 -0
  129. package/src/icon.ts +37 -0
  130. package/src/icons.ts +754 -0
  131. package/src/index.ts +181 -0
  132. package/src/providers/remotion/index.ts +10 -0
  133. package/src/providers/remotion/layout-engine.ts +123 -0
  134. package/src/providers/remotion/loader.ts +35 -0
  135. package/src/providers/remotion/playback-engine.ts +142 -0
  136. package/src/providers/remotion/provider.tsx +514 -0
  137. package/src/providers/remotion/type-check.ts +13 -0
  138. package/src/providers/remotion/types.ts +94 -0
  139. package/src/providers/remotion/ui/context.tsx +120 -0
  140. package/src/providers/remotion/ui/error-boundary.tsx +57 -0
  141. package/src/providers/remotion/ui/poster.tsx +33 -0
  142. package/src/providers/remotion/ui/slider-thumbnail.tsx +41 -0
  143. package/src/providers/remotion/ui/thumbnail.tsx +166 -0
  144. package/src/providers/remotion/validate.ts +220 -0
  145. package/src/source.ts +5 -0
  146. package/src/utils.ts +27 -0
  147. package/tsconfig.build.json +10 -0
  148. package/tsconfig.json +11 -0
  149. package/types/react/src/components/announcer.d.ts +16 -0
  150. package/types/react/src/components/layouts/default/audio-layout.d.ts +27 -0
  151. package/types/react/src/components/layouts/default/context.d.ts +14 -0
  152. package/types/react/src/components/layouts/default/hooks.d.ts +2 -0
  153. package/types/react/src/components/layouts/default/icons.d.ts +95 -0
  154. package/types/react/src/components/layouts/default/index.d.ts +5 -0
  155. package/types/react/src/components/layouts/default/media-layout.d.ts +133 -0
  156. package/types/react/src/components/layouts/default/slots.d.ts +22 -0
  157. package/types/react/src/components/layouts/default/ui/announcer.d.ts +6 -0
  158. package/types/react/src/components/layouts/default/ui/buttons.d.ts +54 -0
  159. package/types/react/src/components/layouts/default/ui/captions.d.ts +6 -0
  160. package/types/react/src/components/layouts/default/ui/controls.d.ts +6 -0
  161. package/types/react/src/components/layouts/default/ui/keyboard-display.d.ts +8 -0
  162. package/types/react/src/components/layouts/default/ui/menus/accessibility-menu.d.ts +10 -0
  163. package/types/react/src/components/layouts/default/ui/menus/audio-menu.d.ts +10 -0
  164. package/types/react/src/components/layouts/default/ui/menus/captions-menu.d.ts +10 -0
  165. package/types/react/src/components/layouts/default/ui/menus/chapters-menu.d.ts +7 -0
  166. package/types/react/src/components/layouts/default/ui/menus/font-menu.d.ts +6 -0
  167. package/types/react/src/components/layouts/default/ui/menus/items/menu-checkbox.d.ts +13 -0
  168. package/types/react/src/components/layouts/default/ui/menus/items/menu-items.d.ts +49 -0
  169. package/types/react/src/components/layouts/default/ui/menus/items/menu-slider.d.ts +26 -0
  170. package/types/react/src/components/layouts/default/ui/menus/playback-menu.d.ts +10 -0
  171. package/types/react/src/components/layouts/default/ui/menus/settings-menu.d.ts +15 -0
  172. package/types/react/src/components/layouts/default/ui/menus/utils.d.ts +1 -0
  173. package/types/react/src/components/layouts/default/ui/sliders.d.ts +24 -0
  174. package/types/react/src/components/layouts/default/ui/time.d.ts +30 -0
  175. package/types/react/src/components/layouts/default/ui/title.d.ts +6 -0
  176. package/types/react/src/components/layouts/default/ui/tooltip.d.ts +12 -0
  177. package/types/react/src/components/layouts/default/ui.d.ts +8 -0
  178. package/types/react/src/components/layouts/default/video-layout.d.ts +47 -0
  179. package/types/react/src/components/layouts/plyr/context.d.ts +12 -0
  180. package/types/react/src/components/layouts/plyr/icons/plyr-airplay.d.ts +2 -0
  181. package/types/react/src/components/layouts/plyr/icons/plyr-captions-off.d.ts +2 -0
  182. package/types/react/src/components/layouts/plyr/icons/plyr-captions-on.d.ts +2 -0
  183. package/types/react/src/components/layouts/plyr/icons/plyr-download.d.ts +2 -0
  184. package/types/react/src/components/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +2 -0
  185. package/types/react/src/components/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +2 -0
  186. package/types/react/src/components/layouts/plyr/icons/plyr-fast-forward.d.ts +2 -0
  187. package/types/react/src/components/layouts/plyr/icons/plyr-muted.d.ts +2 -0
  188. package/types/react/src/components/layouts/plyr/icons/plyr-pause.d.ts +2 -0
  189. package/types/react/src/components/layouts/plyr/icons/plyr-pip.d.ts +2 -0
  190. package/types/react/src/components/layouts/plyr/icons/plyr-play.d.ts +2 -0
  191. package/types/react/src/components/layouts/plyr/icons/plyr-restart.d.ts +2 -0
  192. package/types/react/src/components/layouts/plyr/icons/plyr-rewind.d.ts +2 -0
  193. package/types/react/src/components/layouts/plyr/icons/plyr-settings.d.ts +2 -0
  194. package/types/react/src/components/layouts/plyr/icons/plyr-volume.d.ts +2 -0
  195. package/types/react/src/components/layouts/plyr/icons.d.ts +25 -0
  196. package/types/react/src/components/layouts/plyr/index.d.ts +6 -0
  197. package/types/react/src/components/layouts/plyr/layout.d.ts +17 -0
  198. package/types/react/src/components/layouts/plyr/props.d.ts +71 -0
  199. package/types/react/src/components/layouts/plyr/slots.d.ts +9 -0
  200. package/types/react/src/components/layouts/remotion-ui.d.ts +3 -0
  201. package/types/react/src/components/layouts/utils.d.ts +1 -0
  202. package/types/react/src/components/player-callbacks.d.ts +6 -0
  203. package/types/react/src/components/player.d.ts +32 -0
  204. package/types/react/src/components/primitives/instances.d.ts +83 -0
  205. package/types/react/src/components/primitives/nodes.d.ts +15 -0
  206. package/types/react/src/components/primitives/slot.d.ts +11 -0
  207. package/types/react/src/components/provider.d.ts +26 -0
  208. package/types/react/src/components/text-track.d.ts +100 -0
  209. package/types/react/src/components/ui/buttons/airplay-button.d.ts +22 -0
  210. package/types/react/src/components/ui/buttons/caption-button.d.ts +24 -0
  211. package/types/react/src/components/ui/buttons/fullscreen-button.d.ts +24 -0
  212. package/types/react/src/components/ui/buttons/google-cast-button.d.ts +22 -0
  213. package/types/react/src/components/ui/buttons/live-button.d.ts +26 -0
  214. package/types/react/src/components/ui/buttons/mute-button.d.ts +30 -0
  215. package/types/react/src/components/ui/buttons/pip-button.d.ts +24 -0
  216. package/types/react/src/components/ui/buttons/play-button.d.ts +23 -0
  217. package/types/react/src/components/ui/buttons/seek-button.d.ts +25 -0
  218. package/types/react/src/components/ui/buttons/toggle-button.d.ts +22 -0
  219. package/types/react/src/components/ui/caption.d.ts +11 -0
  220. package/types/react/src/components/ui/captions.d.ts +20 -0
  221. package/types/react/src/components/ui/chapter-title.d.ts +20 -0
  222. package/types/react/src/components/ui/controls.d.ts +40 -0
  223. package/types/react/src/components/ui/gesture.d.ts +20 -0
  224. package/types/react/src/components/ui/menu.d.ts +102 -0
  225. package/types/react/src/components/ui/poster.d.ts +25 -0
  226. package/types/react/src/components/ui/radio-group.d.ts +39 -0
  227. package/types/react/src/components/ui/sliders/audio-gain-slider.d.ts +29 -0
  228. package/types/react/src/components/ui/sliders/quality-slider.d.ts +28 -0
  229. package/types/react/src/components/ui/sliders/slider-callbacks.d.ts +6 -0
  230. package/types/react/src/components/ui/sliders/slider-value.d.ts +9 -0
  231. package/types/react/src/components/ui/sliders/slider.d.ts +134 -0
  232. package/types/react/src/components/ui/sliders/speed-slider.d.ts +28 -0
  233. package/types/react/src/components/ui/sliders/time-slider.d.ts +124 -0
  234. package/types/react/src/components/ui/sliders/volume-slider.d.ts +29 -0
  235. package/types/react/src/components/ui/spinner.d.ts +31 -0
  236. package/types/react/src/components/ui/thumbnail.d.ts +26 -0
  237. package/types/react/src/components/ui/time.d.ts +20 -0
  238. package/types/react/src/components/ui/title.d.ts +15 -0
  239. package/types/react/src/components/ui/tooltip.d.ts +63 -0
  240. package/types/react/src/hooks/create-text-track.d.ts +7 -0
  241. package/types/react/src/hooks/options/use-audio-gain-options.d.ts +22 -0
  242. package/types/react/src/hooks/options/use-audio-options.d.ts +17 -0
  243. package/types/react/src/hooks/options/use-caption-options.d.ts +24 -0
  244. package/types/react/src/hooks/options/use-chapter-options.d.ts +18 -0
  245. package/types/react/src/hooks/options/use-playback-rate-options.d.ts +22 -0
  246. package/types/react/src/hooks/options/use-video-quality-options.d.ts +35 -0
  247. package/types/react/src/hooks/use-active-text-cues.d.ts +6 -0
  248. package/types/react/src/hooks/use-active-text-track.d.ts +5 -0
  249. package/types/react/src/hooks/use-chapter-title.d.ts +4 -0
  250. package/types/react/src/hooks/use-dom.d.ts +9 -0
  251. package/types/react/src/hooks/use-media-context.d.ts +1 -0
  252. package/types/react/src/hooks/use-media-player.d.ts +7 -0
  253. package/types/react/src/hooks/use-media-provider.d.ts +7 -0
  254. package/types/react/src/hooks/use-media-remote.d.ts +12 -0
  255. package/types/react/src/hooks/use-media-state.d.ts +15 -0
  256. package/types/react/src/hooks/use-signals.d.ts +5 -0
  257. package/types/react/src/hooks/use-slider-preview.d.ts +27 -0
  258. package/types/react/src/hooks/use-slider-state.d.ts +16 -0
  259. package/types/react/src/hooks/use-state.d.ts +18 -0
  260. package/types/react/src/hooks/use-text-cues.d.ts +6 -0
  261. package/types/react/src/hooks/use-thumbnails.d.ts +16 -0
  262. package/types/react/src/icon.d.ts +17 -0
  263. package/types/react/src/icons.d.ts +215 -0
  264. package/types/react/src/index.d.ts +78 -0
  265. package/types/react/src/providers/remotion/index.d.ts +7 -0
  266. package/types/react/src/providers/remotion/layout-engine.d.ts +8 -0
  267. package/types/react/src/providers/remotion/loader.d.ts +9 -0
  268. package/types/react/src/providers/remotion/playback-engine.d.ts +11 -0
  269. package/types/react/src/providers/remotion/provider.d.ts +26 -0
  270. package/types/react/src/providers/remotion/type-check.d.ts +6 -0
  271. package/types/react/src/providers/remotion/types.d.ts +91 -0
  272. package/types/react/src/providers/remotion/ui/context.d.ts +17 -0
  273. package/types/react/src/providers/remotion/ui/error-boundary.d.ts +21 -0
  274. package/types/react/src/providers/remotion/ui/poster.d.ts +18 -0
  275. package/types/react/src/providers/remotion/ui/slider-thumbnail.d.ts +17 -0
  276. package/types/react/src/providers/remotion/ui/thumbnail.d.ts +32 -0
  277. package/types/react/src/providers/remotion/validate.d.ts +12 -0
  278. package/types/react/src/source.d.ts +3 -0
  279. package/types/react/src/utils.d.ts +3 -0
  280. package/types/vidstack/src/core/api/src-types.d.ts +50 -0
  281. package/types/vidstack/src/utils/mime.d.ts +15 -0
  282. package/types/vidstack/src/utils/network.d.ts +17 -0
  283. package/types/vidstack/src/utils/support.d.ts +72 -0
  284. package/vite.config.ts +23 -0
@@ -0,0 +1,134 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import { SliderInstance, SliderPreviewInstance } from '../../primitives/instances';
4
+ import { type PrimitivePropsWithRef } from '../../primitives/nodes';
5
+ import { type SliderValueProps } from './slider-value';
6
+ export interface RootProps extends ReactElementProps<SliderInstance> {
7
+ asChild?: boolean;
8
+ children?: React.ReactNode;
9
+ ref?: React.Ref<SliderInstance>;
10
+ }
11
+ /**
12
+ * Versatile and user-friendly input control designed for seamless cross-browser compatibility and
13
+ * accessibility with ARIA support. It offers a smooth user experience for both mouse and touch
14
+ * interactions and is highly customizable in terms of styling. Users can effortlessly input numeric
15
+ * values within a specified range, defined by a minimum and maximum value.
16
+ *
17
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider}
18
+ * @example
19
+ * ```tsx
20
+ * <Slider.Root>
21
+ * <Slider.Track>
22
+ * <Slider.TrackFill />
23
+ * </Slider.Track>
24
+ * <Slider.Thumb />
25
+ * </Slider.Root>
26
+ * ```
27
+ */
28
+ declare const Root: React.ForwardRefExoticComponent<Omit<RootProps, "ref"> & React.RefAttributes<SliderInstance>>;
29
+ export interface ThumbProps extends PrimitivePropsWithRef<'div'> {
30
+ }
31
+ /**
32
+ * Purely visual element used to display a draggable handle to the user for adjusting the value
33
+ * on the slider component.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * <Slider.Root>
38
+ * <Slider.Thumb />
39
+ * </Slider.Root>
40
+ * ```
41
+ */
42
+ declare const Thumb: React.ForwardRefExoticComponent<Omit<ThumbProps, "ref"> & React.RefAttributes<HTMLElement>>;
43
+ export interface TrackProps extends PrimitivePropsWithRef<'div'> {
44
+ }
45
+ /**
46
+ * Visual element inside the slider that serves as a horizontal or vertical bar, providing a
47
+ * visual reference for the range or values that can be selected by moving the slider thumb along
48
+ * it. Users can interact with the slider by dragging the thumb along the track to set a specific
49
+ * value.
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <Slider.Root>
54
+ * <Slider.Track>
55
+ * <Slider.TrackFill />
56
+ * </Slider.Track>
57
+ * </Slider.Root>
58
+ * ```
59
+ */
60
+ declare const Track: React.ForwardRefExoticComponent<Omit<TrackProps, "ref"> & React.RefAttributes<HTMLElement>>;
61
+ export interface TrackFillProps extends PrimitivePropsWithRef<'div'> {
62
+ }
63
+ /**
64
+ * Portion of the slider track that is visually filled or highlighted to indicate the selected or
65
+ * currently chosen range or value. As the slider thumb is moved along the track, the track
66
+ * fill dynamically adjusts to visually represent the portion of the track that corresponds to the
67
+ * selected value or range, providing users with a clear visual indication of their selection.
68
+ *
69
+ * @example
70
+ * ```tsx
71
+ * <Slider.Root>
72
+ * <Slider.Track>
73
+ * <Slider.TrackFill />
74
+ * </Slider.Track>
75
+ * </Slider.Root>
76
+ * ```
77
+ */
78
+ declare const TrackFill: React.ForwardRefExoticComponent<Omit<TrackFillProps, "ref"> & React.RefAttributes<HTMLElement>>;
79
+ export interface PreviewProps extends ReactElementProps<SliderPreviewInstance> {
80
+ asChild?: boolean;
81
+ children?: React.ReactNode;
82
+ ref?: React.Ref<HTMLElement>;
83
+ }
84
+ /**
85
+ * Used to provide users with a real-time or interactive preview of the value or selection they
86
+ * are making as they move the slider thumb. This can include displaying the current pointer
87
+ * value numerically, or displaying a thumbnail over the time slider.
88
+ *
89
+ * @docs {@link https://www.vidstack.io/docs/player/components/slider#preview}
90
+ * @example
91
+ * ```tsx
92
+ * <Slider.Root>
93
+ * <Slider.Preview>
94
+ * <Slider.Value />
95
+ * </Slider.Preview>
96
+ * </Slider.Root>
97
+ * ```
98
+ */
99
+ declare const Preview: React.ForwardRefExoticComponent<Omit<PreviewProps, "ref"> & React.RefAttributes<HTMLElement>>;
100
+ export interface ValueProps extends SliderValueProps {
101
+ }
102
+ /**
103
+ * Displays the specific numeric representation of the current or pointer value of the slider.
104
+ * When a user interacts with a slider by moving its thumb along the track, the slider value
105
+ * changes accordingly.
106
+ *
107
+ * @docs {@link https://www.vidstack.io/docs/player/components/slider#preview}
108
+ * @example
109
+ * ```tsx
110
+ * <Slider.Root>
111
+ * <Slider.Preview>
112
+ * <Slider.Value />
113
+ * </Slider.Preview>
114
+ * </Slider.Root>
115
+ * ```
116
+ */
117
+ declare const Value: React.ForwardRefExoticComponent<Omit<ValueProps, "ref"> & React.RefAttributes<HTMLElement>>;
118
+ export interface StepsProps extends Omit<PrimitivePropsWithRef<'div'>, 'children'> {
119
+ children: (step: number) => React.ReactNode;
120
+ }
121
+ /**
122
+ * Visual markers that can be used to indicate value steps on the slider track.
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * <Slider.Root>
127
+ * <Slider.Steps className="steps">
128
+ * {(step) => <div className="step" key={String(step)}></div>}
129
+ * </Slider.Steps>
130
+ * </Slider.Root>
131
+ * ```
132
+ */
133
+ declare const Steps: React.ForwardRefExoticComponent<Omit<StepsProps, "ref"> & React.RefAttributes<HTMLElement>>;
134
+ export { Root, Thumb, Track, TrackFill, Preview, Value, Steps };
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import { SpeedSliderInstance } from '../../primitives/instances';
4
+ import { Value } from './slider';
5
+ export interface RootProps extends ReactElementProps<SpeedSliderInstance> {
6
+ asChild?: boolean;
7
+ children?: React.ReactNode;
8
+ ref?: React.Ref<SpeedSliderInstance>;
9
+ }
10
+ /**
11
+ * Versatile and user-friendly input playback rate control designed for seamless cross-browser and
12
+ * provider compatibility and accessibility with ARIA support. It offers a smooth user experience
13
+ * for both mouse and touch interactions and is highly customizable in terms of styling.
14
+ *
15
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/speed-slider}
16
+ * @example
17
+ * ```tsx
18
+ * <SpeedSlider.Root>
19
+ * <SpeedSlider.Track>
20
+ * <SpeedSlider.TrackFill />
21
+ * </SpeedSlider.Track>
22
+ * <SpeedSlider.Thumb />
23
+ * </SpeedSlider.Root>
24
+ * ```
25
+ */
26
+ declare const Root: React.ForwardRefExoticComponent<Omit<RootProps, "ref"> & React.RefAttributes<SpeedSliderInstance>>;
27
+ export * from './slider';
28
+ export { Root, Value };
@@ -0,0 +1,124 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import type { VTTCue } from 'media-captions';
4
+ import { SliderChaptersInstance, SliderThumbnailInstance, SliderVideoInstance, TimeSliderInstance } from '../../primitives/instances';
5
+ import { type PrimitivePropsWithRef } from '../../primitives/nodes';
6
+ import * as ThumbnailBase from '../thumbnail';
7
+ export interface RootProps extends ReactElementProps<TimeSliderInstance> {
8
+ asChild?: boolean;
9
+ children?: React.ReactNode;
10
+ ref?: React.Ref<TimeSliderInstance>;
11
+ }
12
+ /**
13
+ * Versatile and user-friendly input time control designed for seamless cross-browser and provider
14
+ * compatibility and accessibility with ARIA support. It offers a smooth user experience for both
15
+ * mouse and touch interactions and is highly customizable in terms of styling. Users can
16
+ * effortlessly change the current playback time within the range 0 to seekable end.
17
+ *
18
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/time-slider}
19
+ * @example
20
+ * ```tsx
21
+ * <TimeSlider.Root>
22
+ * <TimeSlider.Track>
23
+ * <TimeSlider.TrackFill />
24
+ * <TimeSlider.Progress />
25
+ * </TimeSlider.Track>
26
+ * <TimeSlider.Thumb />
27
+ * </TimeSlider.Root>
28
+ * ```
29
+ */
30
+ declare const Root: React.ForwardRefExoticComponent<Omit<RootProps, "ref"> & React.RefAttributes<TimeSliderInstance>>;
31
+ export interface ChaptersProps extends Omit<ReactElementProps<SliderChaptersInstance>, 'children'> {
32
+ children: (cues: VTTCue[], forwardRef: React.RefCallback<HTMLElement>) => React.ReactNode;
33
+ }
34
+ /**
35
+ * Used to create predefined sections within a time slider interface based on the currently
36
+ * active chapters text track.
37
+ *
38
+ * @docs {@link https://www.vidstack.io/docs/player/components/slider-chapters}
39
+ * @example
40
+ * ```tsx
41
+ * <TimeSlider.Root>
42
+ * <TimeSlider.Chapters>
43
+ * {(cues, forwardRef) =>
44
+ * cues.map((cue) => (
45
+ * <div key={cue.startTime} ref={forwardRef}>
46
+ * <TimeSlider.Track>
47
+ * <TimeSlider.TrackFill />
48
+ * <TimeSlider.Progress />
49
+ * </TimeSlider.Track>
50
+ * </div>
51
+ * ))}
52
+ * </TimeSlider.Chapters>
53
+ * </TimeSlider.Root>
54
+ * ```
55
+ */
56
+ declare const Chapters: React.ForwardRefExoticComponent<ChaptersProps & React.RefAttributes<HTMLDivElement>>;
57
+ export interface ChapterTitleProps extends PrimitivePropsWithRef<'div'> {
58
+ }
59
+ /**
60
+ * Used to display the active cue text based on the slider value and preview value.
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * <TimeSlider.Root>
65
+ * <TimeSlider.Preview>
66
+ * <TimeSlider.Chapter />
67
+ * </TimeSlider.Preview>
68
+ * </TimeSlider.Root>
69
+ * ```
70
+ */
71
+ declare const ChapterTitle: React.ForwardRefExoticComponent<Omit<ChapterTitleProps, "ref"> & React.RefAttributes<HTMLElement>>;
72
+ export interface ProgressProps extends PrimitivePropsWithRef<'div'> {
73
+ }
74
+ /**
75
+ * Visual element inside the slider that serves as a horizontal or vertical bar, providing a
76
+ * visual reference for the range of playback that has buffered/loaded.
77
+ *
78
+ * @example
79
+ * ```tsx
80
+ * <TimeSlider.Root>
81
+ * <TimeSlider.Track>
82
+ * <TimeSlider.Progress />
83
+ * </TimeSlider.Track>
84
+ * </TimeSlider.Root>
85
+ * ```
86
+ */
87
+ declare const Progress: React.ForwardRefExoticComponent<Omit<ProgressProps, "ref"> & React.RefAttributes<HTMLElement>>;
88
+ export interface ThumbnailProps extends ReactElementProps<SliderThumbnailInstance, HTMLElement> {
89
+ asChild?: boolean;
90
+ children?: React.ReactNode;
91
+ ref?: React.Ref<HTMLElement>;
92
+ }
93
+ export type ThumbnailImgProps = ThumbnailBase.ImgProps;
94
+ declare const Thumbnail: {
95
+ readonly Root: React.ForwardRefExoticComponent<Omit<ThumbnailProps, "ref"> & React.RefAttributes<HTMLElement>>;
96
+ readonly Img: React.ForwardRefExoticComponent<Omit<ThumbnailBase.ImgProps, "ref"> & React.RefAttributes<HTMLImageElement>>;
97
+ };
98
+ export interface VideoProps extends ReactElementProps<SliderVideoInstance, HTMLVideoElement> {
99
+ asChild?: boolean;
100
+ children?: React.ReactNode;
101
+ ref?: React.Ref<HTMLVideoElement>;
102
+ }
103
+ /**
104
+ * Used to load a low-resolution video to be displayed when the user is hovering over or dragging
105
+ * the time slider. The preview video will automatically be updated to be in-sync with the current
106
+ * preview position, so ensure it has the same length as the original media (i.e., same duration).
107
+ *
108
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-video}
109
+ * @example
110
+ * ```tsx
111
+ * <TimeSlider.Root>
112
+ * <TimeSlider.Preview>
113
+ * <TimeSlider.Video src="preview.mp4" />
114
+ * </TimeSlider.Preview>
115
+ * </TimeSlider.Root>
116
+ * ```
117
+ */
118
+ declare const Video: React.ForwardRefExoticComponent<Omit<VideoProps, "ref"> & React.RefAttributes<HTMLVideoElement>>;
119
+ export interface VideoProviderProps {
120
+ instance: SliderVideoInstance;
121
+ children?: React.ReactNode;
122
+ }
123
+ export * from './slider';
124
+ export { Root, Progress, Thumbnail, Video, Chapters, ChapterTitle };
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import { VolumeSliderInstance } from '../../primitives/instances';
4
+ import { Value } from './slider';
5
+ export interface RootProps extends ReactElementProps<VolumeSliderInstance> {
6
+ asChild?: boolean;
7
+ children?: React.ReactNode;
8
+ ref?: React.Ref<VolumeSliderInstance>;
9
+ }
10
+ /**
11
+ * Versatile and user-friendly input volume control designed for seamless cross-browser and provider
12
+ * compatibility and accessibility with ARIA support. It offers a smooth user experience for both
13
+ * mouse and touch interactions and is highly customizable in terms of styling. Users can
14
+ * effortlessly change the volume level within the range 0 (muted) to 100.
15
+ *
16
+ * @docs {@link https://www.vidstack.io/docs/player/components/sliders/volume-slider}
17
+ * @example
18
+ * ```tsx
19
+ * <VolumeSlider.Root>
20
+ * <VolumeSlider.Track>
21
+ * <VolumeSlider.TrackFill />
22
+ * </VolumeSlider.Track>
23
+ * <VolumeSlider.Thumb />
24
+ * </VolumeSlider.Root>
25
+ * ```
26
+ */
27
+ declare const Root: React.ForwardRefExoticComponent<Omit<RootProps, "ref"> & React.RefAttributes<VolumeSliderInstance>>;
28
+ export * from './slider';
29
+ export { Root, Value };
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ export interface RootProps extends React.PropsWithoutRef<React.SVGProps<SVGSVGElement>>, React.RefAttributes<SVGElement | SVGSVGElement> {
3
+ /**
4
+ * The horizontal (width) and vertical (height) length of the spinner.
5
+ *
6
+ * @defaultValue 96
7
+ */
8
+ size?: number;
9
+ }
10
+ /**
11
+ * @docs {@link https://www.vidstack.io/docs/player/components/display/buffering-indicator}
12
+ * @example
13
+ * ```html
14
+ * <Spinner.Root>
15
+ * <Spinner.Track />
16
+ * <Spinner.TrackFill />
17
+ * </Spinner>
18
+ * ```
19
+ */
20
+ declare const Root: React.ForwardRefExoticComponent<Omit<RootProps, "ref"> & React.RefAttributes<SVGSVGElement | SVGElement>>;
21
+ export interface TrackProps extends React.PropsWithoutRef<React.SVGProps<SVGCircleElement>>, React.RefAttributes<SVGCircleElement> {
22
+ }
23
+ declare const Track: React.ForwardRefExoticComponent<Omit<TrackProps, "ref"> & React.RefAttributes<SVGCircleElement>>;
24
+ export interface TrackFillProps extends React.PropsWithoutRef<React.SVGProps<SVGCircleElement>>, React.RefAttributes<SVGCircleElement> {
25
+ /**
26
+ * The percentage of the track that should be filled.
27
+ */
28
+ fillPercent?: number;
29
+ }
30
+ declare const TrackFill: React.ForwardRefExoticComponent<Omit<TrackFillProps, "ref"> & React.RefAttributes<SVGCircleElement>>;
31
+ export { Root, Track, TrackFill };
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import { ThumbnailInstance } from '../primitives/instances';
4
+ import { type PrimitivePropsWithRef } from '../primitives/nodes';
5
+ export interface RootProps extends ReactElementProps<ThumbnailInstance, HTMLElement> {
6
+ asChild?: boolean;
7
+ children?: React.ReactNode;
8
+ ref?: React.Ref<HTMLElement>;
9
+ }
10
+ /**
11
+ * Used to load and display a preview thumbnail at the given `time`.
12
+ *
13
+ * @docs {@link https://www.vidstack.io/docs/player/components/display/thumbnail}
14
+ * @example
15
+ * ```tsx
16
+ * <Thumbnail.Root src="thumbnails.vtt" time={10} >
17
+ * <Thumbnail.Img />
18
+ * </Thumbnail.Root>
19
+ * ```
20
+ */
21
+ declare const Root: React.ForwardRefExoticComponent<Omit<RootProps, "ref"> & React.RefAttributes<HTMLElement>>;
22
+ export interface ImgProps extends PrimitivePropsWithRef<'img'> {
23
+ children?: React.ReactNode;
24
+ }
25
+ declare const Img: React.ForwardRefExoticComponent<Omit<ImgProps, "ref"> & React.RefAttributes<HTMLImageElement>>;
26
+ export { Root, Img };
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import { TimeInstance } from '../primitives/instances';
4
+ export interface TimeProps extends ReactElementProps<TimeInstance> {
5
+ asChild?: boolean;
6
+ children?: React.ReactNode;
7
+ ref?: React.Ref<HTMLElement>;
8
+ }
9
+ /**
10
+ * Outputs a media duration (eg: `currentTime`, `duration`, `bufferedAmount`, etc.) value as time
11
+ * formatted text.
12
+ *
13
+ * @docs {@link https://www.vidstack.io/docs/player/components/display/time}
14
+ * @example
15
+ * ```tsx
16
+ * <Time type="current" />
17
+ * ```
18
+ */
19
+ declare const Time: React.ForwardRefExoticComponent<Omit<TimeProps, "ref"> & React.RefAttributes<HTMLElement>>;
20
+ export { Time };
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { type PrimitivePropsWithRef } from '../primitives/nodes';
3
+ export interface TitleProps extends PrimitivePropsWithRef<'span'> {
4
+ }
5
+ /**
6
+ * This component is used to load and display the current media title.
7
+ *
8
+ * @docs {@link https://www.vidstack.io/docs/player/components/display/title}
9
+ * @example
10
+ * ```tsx
11
+ * <Title />
12
+ * ```
13
+ */
14
+ declare const Title: React.ForwardRefExoticComponent<Omit<TitleProps, "ref"> & React.RefAttributes<HTMLElement>>;
15
+ export { Title };
@@ -0,0 +1,63 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps, type ReactProps } from 'maverick.js/react';
3
+ import { TooltipContentInstance, TooltipInstance, TooltipTriggerInstance } from '../primitives/instances';
4
+ export interface RootProps extends ReactProps<TooltipInstance> {
5
+ asChild?: boolean;
6
+ children: React.ReactNode;
7
+ }
8
+ /**
9
+ * A contextual text bubble that displays a description for an element that appears on pointer
10
+ * hover or keyboard focus.
11
+ *
12
+ * @docs {@link https://www.vidstack.io/docs/player/components/tooltip}
13
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tooltip_role}
14
+ * @example
15
+ * ```tsx
16
+ * <Tooltip.Root>
17
+ * <Tooltip.Trigger></Tooltip.Trigger>
18
+ * <Tooltip.Content></Tooltip.Content>
19
+ * </Tooltip.Root>
20
+ * ```
21
+ */
22
+ declare function Root({ children, ...props }: RootProps): React.JSX.Element;
23
+ declare namespace Root {
24
+ var displayName: string;
25
+ }
26
+ export interface TriggerProps extends ReactElementProps<TooltipTriggerInstance> {
27
+ asChild?: boolean;
28
+ children?: React.ReactNode;
29
+ ref?: React.Ref<HTMLButtonElement>;
30
+ }
31
+ /**
32
+ * Wraps the element that will trigger showing/hiding the tooltip on hover or keyboard focus. The
33
+ * tooltip content is positioned relative to this element.
34
+ *
35
+ * @docs {@link https://www.vidstack.io/docs/player/components/tooltip}
36
+ * @example
37
+ * ```tsx
38
+ * <Tooltip.Root>
39
+ * <Tooltip.Trigger></Tooltip.Trigger>
40
+ * <Tooltip.Content></Tooltip.Content>
41
+ * </Tooltip.Root>
42
+ * ```
43
+ */
44
+ declare const Trigger: React.ForwardRefExoticComponent<Omit<TriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
45
+ export interface ContentProps extends ReactElementProps<TooltipContentInstance> {
46
+ asChild?: boolean;
47
+ children?: React.ReactNode;
48
+ ref?: React.Ref<HTMLElement>;
49
+ }
50
+ /**
51
+ * This component contains the content that is visible when the tooltip trigger is interacted with.
52
+ *
53
+ * @docs {@link https://www.vidstack.io/docs/player/components/tooltip}
54
+ * @example
55
+ * ```tsx
56
+ * <Tooltip.Root>
57
+ * <Tooltip.Trigger></Tooltip.Trigger>
58
+ * <Tooltip.Content></Tooltip.Content>
59
+ * </Tooltip.Root>
60
+ * ```
61
+ */
62
+ declare const Content: React.ForwardRefExoticComponent<Omit<ContentProps, "ref"> & React.RefAttributes<HTMLElement>>;
63
+ export { Root, Trigger, Content };
@@ -0,0 +1,7 @@
1
+ import { TextTrack, type TextTrackInit } from 'vidstack';
2
+ /**
3
+ * Creates a new `TextTrack` object and adds it to the player.
4
+ *
5
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/create-text-track}
6
+ */
7
+ export declare function createTextTrack(init: TextTrackInit): TextTrack;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-audio-gain-options}
3
+ */
4
+ export declare function useAudioGainOptions({ gains, disabledLabel, }?: UseAudioGainOptions): AudioGainOptions;
5
+ export interface UseAudioGainOptions {
6
+ gains?: (number | {
7
+ label: string;
8
+ gain: number;
9
+ })[];
10
+ disabledLabel?: string | null;
11
+ }
12
+ export type AudioGainOptions = AudioGainOption[] & {
13
+ readonly disabled: boolean;
14
+ readonly selectedValue: string | undefined;
15
+ };
16
+ export interface AudioGainOption {
17
+ readonly label: string;
18
+ readonly value: string;
19
+ readonly gain: number;
20
+ readonly selected: boolean;
21
+ select(trigger?: Event): void;
22
+ }
@@ -0,0 +1,17 @@
1
+ import { type AudioTrack } from 'vidstack';
2
+ /**
3
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-audio-options}
4
+ */
5
+ export declare function useAudioOptions(): AudioOptions;
6
+ export type AudioOptions = AudioOption[] & {
7
+ readonly disabled: boolean;
8
+ readonly selectedTrack: AudioTrack | null;
9
+ readonly selectedValue: string | undefined;
10
+ };
11
+ export interface AudioOption {
12
+ readonly track: AudioTrack;
13
+ readonly label: string;
14
+ readonly value: string;
15
+ readonly selected: boolean;
16
+ select(trigger?: Event): void;
17
+ }
@@ -0,0 +1,24 @@
1
+ import { type TextTrack } from 'vidstack';
2
+ /**
3
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-caption-options}
4
+ */
5
+ export declare function useCaptionOptions({ off }?: UseCaptionOptions): CaptionOptions;
6
+ export interface UseCaptionOptions {
7
+ /**
8
+ * Whether an option should be included for turning off all captions. A string can be provided
9
+ * to specify the label.
10
+ */
11
+ off?: boolean | string;
12
+ }
13
+ export type CaptionOptions = CaptionOption[] & {
14
+ readonly disabled: boolean;
15
+ readonly selectedTrack: TextTrack | null;
16
+ readonly selectedValue: string;
17
+ };
18
+ export interface CaptionOption {
19
+ readonly track: TextTrack | null;
20
+ readonly label: string;
21
+ readonly value: string;
22
+ readonly selected: boolean;
23
+ select(trigger?: Event): void;
24
+ }
@@ -0,0 +1,18 @@
1
+ import type { VTTCue } from 'media-captions';
2
+ /**
3
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-chapter-options}
4
+ */
5
+ export declare function useChapterOptions(): ChapterOptions;
6
+ export type ChapterOptions = ChapterOption[] & {
7
+ readonly selectedValue: string | undefined;
8
+ };
9
+ export interface ChapterOption {
10
+ readonly cue: VTTCue;
11
+ readonly label: string;
12
+ readonly value: string;
13
+ readonly selected: boolean;
14
+ readonly startTimeText: string;
15
+ readonly durationText: string;
16
+ select(trigger?: Event): void;
17
+ setProgressVar(ref: HTMLElement | null): void;
18
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-playback-rate-options}
3
+ */
4
+ export declare function usePlaybackRateOptions({ rates, normalLabel, }?: UsePlaybackRateOptions): PlaybackRateOptions;
5
+ export interface UsePlaybackRateOptions {
6
+ rates?: (number | {
7
+ label: string;
8
+ rate: number;
9
+ })[];
10
+ normalLabel?: string | null;
11
+ }
12
+ export type PlaybackRateOptions = PlaybackRateOption[] & {
13
+ readonly disabled: boolean;
14
+ readonly selectedValue: string | undefined;
15
+ };
16
+ export interface PlaybackRateOption {
17
+ readonly label: string;
18
+ readonly value: string;
19
+ readonly rate: number;
20
+ readonly selected: boolean;
21
+ select(trigger?: Event): void;
22
+ }
@@ -0,0 +1,35 @@
1
+ import { type VideoQuality } from 'vidstack';
2
+ /**
3
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-video-quality-options}
4
+ */
5
+ export declare function useVideoQualityOptions({ auto, sort, }?: UseVideoQualityOptions): VideoQualityOptions;
6
+ export interface UseVideoQualityOptions {
7
+ /**
8
+ * Whether an auto option should be included. A string can be provided to specify the label.
9
+ */
10
+ auto?: boolean | string;
11
+ /**
12
+ * Specifies how the options should be sorted. The sorting algorithm looks at both the quality
13
+ * resolution and bitrate.
14
+ *
15
+ * - Ascending: 480p, 720p, 720p (higher bitrate), 1080p
16
+ * - Descending: 1080p, 720p (higher bitrate), 720p, 480p
17
+ *
18
+ * @default 'descending'
19
+ */
20
+ sort?: 'ascending' | 'descending';
21
+ }
22
+ export type VideoQualityOptions = VideoQualityOption[] & {
23
+ readonly disabled: boolean;
24
+ readonly selectedQuality: VideoQuality | null;
25
+ readonly selectedValue: string;
26
+ };
27
+ export interface VideoQualityOption {
28
+ readonly quality: VideoQuality | null;
29
+ readonly label: string;
30
+ readonly value: string;
31
+ readonly selected: boolean;
32
+ readonly autoSelected: boolean;
33
+ readonly bitrateText: string | null;
34
+ select(trigger?: Event): void;
35
+ }
@@ -0,0 +1,6 @@
1
+ import type { VTTCue } from 'media-captions';
2
+ import type { TextTrack } from 'vidstack';
3
+ /**
4
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-active-text-cues}
5
+ */
6
+ export declare function useActiveTextCues(track: TextTrack | null): VTTCue[];
@@ -0,0 +1,5 @@
1
+ import { type TextTrack } from 'vidstack';
2
+ /**
3
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-active-text-track}
4
+ */
5
+ export declare function useActiveTextTrack(kind: TextTrackKind | TextTrackKind[]): TextTrack | null;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @docs {@link https://www.vidstack.io/docs/player/api/hooks/use-chapter-title}
3
+ */
4
+ export declare function useChapterTitle(): string;
@@ -0,0 +1,9 @@
1
+ export declare function useClassName(el: HTMLElement | null, className?: string): void;
2
+ export declare function useResizeObserver(el: Element | null | undefined, callback: () => void): void;
3
+ export declare function useTransitionActive(el: Element | null): boolean;
4
+ export declare function useMouseEnter(el: Element | null): boolean;
5
+ export declare function useFocusIn(el: Element | null): boolean;
6
+ export declare function useActive(el: Element | null): boolean;
7
+ export declare function useRectCSSVars(root: Element | null, el: Element | null, prefix: string): void;
8
+ export declare function setRectCSSVars(root: Element, el: Element, prefix: string): void;
9
+ export declare function useColorSchemePreference(): "light" | "dark";
@@ -0,0 +1 @@
1
+ export declare function useMediaContext(): import("vidstack").MediaContext;