@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,16 @@
1
+ import * as React from 'react';
2
+ import { type ReactElementProps } from 'maverick.js/react';
3
+ import { MediaAnnouncerInstance } from './primitives/instances';
4
+ export interface MediaAnnouncerProps extends ReactElementProps<MediaAnnouncerInstance> {
5
+ ref?: React.Ref<HTMLElement>;
6
+ }
7
+ /**
8
+ *
9
+ * @docs {@link https://www.vidstack.io/docs/player/components/display/announcer}
10
+ * @example
11
+ * ```tsx
12
+ * <MediaAnnouncer />
13
+ * ```
14
+ */
15
+ declare const MediaAnnouncer: React.ForwardRefExoticComponent<Omit<MediaAnnouncerProps, "ref"> & React.RefAttributes<HTMLElement>>;
16
+ export { MediaAnnouncer };
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { type DefaultLayoutProps } from './media-layout';
3
+ import { type DefaultAudioLayoutSlots } from './slots';
4
+ export interface DefaultAudioLayoutProps extends DefaultLayoutProps<DefaultAudioLayoutSlots> {
5
+ }
6
+ /**
7
+ * The audio layout is our production-ready UI that's displayed when the media view type is set to
8
+ * 'audio'. It includes support for audio tracks, slider chapters, captions, live streams
9
+ * and more out of the box.
10
+ *
11
+ * @attr data-match - Whether this layout is being used.
12
+ * @attr data-sm - The small layout is active
13
+ * @attr data-lg - The large layout is active.
14
+ * @attr data-size - The active layout size (sm or lg).
15
+ * @example
16
+ * ```tsx
17
+ * <MediaPlayer src="audio.mp3">
18
+ * <MediaProvider />
19
+ * <DefaultAudioLayout icons={defaultLayoutIcons} />
20
+ * </MediaPlayer>
21
+ * ```
22
+ */
23
+ declare function DefaultAudioLayout(props: DefaultAudioLayoutProps): React.JSX.Element;
24
+ declare namespace DefaultAudioLayout {
25
+ var displayName: string;
26
+ }
27
+ export { DefaultAudioLayout };
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import type { ReadSignal, WriteSignal } from 'maverick.js';
3
+ import type { DefaultLayoutProps } from './media-layout';
4
+ export declare const DefaultLayoutContext: React.Context<DefaultLayoutContext>;
5
+ interface DefaultLayoutContext extends DefaultLayoutProps {
6
+ layoutEl: ReadSignal<HTMLElement | null>;
7
+ isSmallLayout: boolean;
8
+ userPrefersAnnouncements: WriteSignal<boolean>;
9
+ userPrefersKeyboardAnimations: WriteSignal<boolean>;
10
+ }
11
+ export declare function useDefaultLayoutContext(): DefaultLayoutContext;
12
+ export declare function useDefaultLayoutWord(word: string): any;
13
+ export declare function i18n(translations: any, word: string): any;
14
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { DefaultLayoutProps } from './media-layout';
2
+ export declare function useColorSchemeClass(colorScheme: DefaultLayoutProps['colorScheme']): "light" | "dark" | null | undefined;
@@ -0,0 +1,95 @@
1
+ import * as React from 'react';
2
+ export declare const defaultLayoutIcons: DefaultLayoutIcons;
3
+ export interface DefaultLayoutIconProps extends React.PropsWithoutRef<React.SVGProps<SVGSVGElement>> {
4
+ }
5
+ export interface DefaultLayoutIcon {
6
+ (props: DefaultLayoutIconProps): React.ReactNode;
7
+ }
8
+ export interface DefaultAirPlayButtonIcons {
9
+ Default: DefaultLayoutIcon;
10
+ Connecting?: DefaultLayoutIcon;
11
+ Connected?: DefaultLayoutIcon;
12
+ }
13
+ export interface DefaultGoogleCastButtonIcons {
14
+ Default: DefaultLayoutIcon;
15
+ Connecting?: DefaultLayoutIcon;
16
+ Connected?: DefaultLayoutIcon;
17
+ }
18
+ export interface DefaultPlayButtonIcons {
19
+ Play: DefaultLayoutIcon;
20
+ Pause: DefaultLayoutIcon;
21
+ Replay: DefaultLayoutIcon;
22
+ }
23
+ export interface DefaultMuteButtonIcons {
24
+ Mute: DefaultLayoutIcon;
25
+ VolumeLow: DefaultLayoutIcon;
26
+ VolumeHigh: DefaultLayoutIcon;
27
+ }
28
+ export interface DefaultCaptionButtonIcons {
29
+ On: DefaultLayoutIcon;
30
+ Off: DefaultLayoutIcon;
31
+ }
32
+ export interface DefaultPIPButtonIcons {
33
+ Enter: DefaultLayoutIcon;
34
+ Exit: DefaultLayoutIcon;
35
+ }
36
+ export interface DefaultFullscreenButtonIcons {
37
+ Enter: DefaultLayoutIcon;
38
+ Exit: DefaultLayoutIcon;
39
+ }
40
+ export interface DefaultSeekButtonIcons {
41
+ Backward: DefaultLayoutIcon;
42
+ Forward: DefaultLayoutIcon;
43
+ }
44
+ export interface DefaultDownloadButtonIcons {
45
+ Default: DefaultLayoutIcon;
46
+ }
47
+ export interface DefaultMenuIcons {
48
+ Accessibility: DefaultLayoutIcon;
49
+ ArrowLeft: DefaultLayoutIcon;
50
+ ArrowRight: DefaultLayoutIcon;
51
+ Audio: DefaultLayoutIcon;
52
+ AudioBoostUp: DefaultLayoutIcon;
53
+ AudioBoostDown: DefaultLayoutIcon;
54
+ Chapters: DefaultLayoutIcon;
55
+ Captions: DefaultLayoutIcon;
56
+ Playback: DefaultLayoutIcon;
57
+ Settings: DefaultLayoutIcon;
58
+ SpeedUp: DefaultLayoutIcon;
59
+ SpeedDown: DefaultLayoutIcon;
60
+ QualityUp: DefaultLayoutIcon;
61
+ QualityDown: DefaultLayoutIcon;
62
+ FontSizeUp: DefaultLayoutIcon;
63
+ FontSizeDown: DefaultLayoutIcon;
64
+ OpacityUp: DefaultLayoutIcon;
65
+ OpacityDown: DefaultLayoutIcon;
66
+ RadioCheck: DefaultLayoutIcon;
67
+ }
68
+ export interface DefaultKeyboardDisplayIcons {
69
+ Play: DefaultLayoutIcon;
70
+ Pause: DefaultLayoutIcon;
71
+ Mute: DefaultLayoutIcon;
72
+ VolumeUp: DefaultLayoutIcon;
73
+ VolumeDown: DefaultLayoutIcon;
74
+ EnterFullscreen: DefaultLayoutIcon;
75
+ ExitFullscreen: DefaultLayoutIcon;
76
+ EnterPiP: DefaultLayoutIcon;
77
+ ExitPiP: DefaultLayoutIcon;
78
+ CaptionsOn: DefaultLayoutIcon;
79
+ CaptionsOff: DefaultLayoutIcon;
80
+ SeekForward: DefaultLayoutIcon;
81
+ SeekBackward: DefaultLayoutIcon;
82
+ }
83
+ export interface DefaultLayoutIcons {
84
+ AirPlayButton: DefaultAirPlayButtonIcons;
85
+ GoogleCastButton: DefaultGoogleCastButtonIcons;
86
+ PlayButton: DefaultPlayButtonIcons;
87
+ MuteButton: DefaultMuteButtonIcons;
88
+ CaptionButton: DefaultCaptionButtonIcons;
89
+ PIPButton: DefaultPIPButtonIcons;
90
+ FullscreenButton: DefaultFullscreenButtonIcons;
91
+ SeekButton: DefaultSeekButtonIcons;
92
+ DownloadButton?: DefaultDownloadButtonIcons;
93
+ Menu: DefaultMenuIcons;
94
+ KeyboardDisplay?: Partial<DefaultKeyboardDisplayIcons>;
95
+ }
@@ -0,0 +1,5 @@
1
+ export type { DefaultLayoutSlots, DefaultAudioLayoutSlots, DefaultVideoLayoutSlots, DefaultLayoutSlotName, DefaultLayoutMenuSlotName, } from './slots';
2
+ export type { DefaultLayoutTranslations, DefaultLayoutWord } from 'vidstack';
3
+ export type { DefaultLayoutProps } from './media-layout';
4
+ export * from './context';
5
+ export * from './ui';
@@ -0,0 +1,133 @@
1
+ import * as React from 'react';
2
+ import { type DefaultLayoutTranslations, type FileDownloadInfo, type MediaPlayerQuery, type MediaStreamType, type ThumbnailSrc } from 'vidstack';
3
+ import type { PrimitivePropsWithRef } from '../../primitives/nodes';
4
+ import type { DefaultLayoutIcons } from './icons';
5
+ export interface DefaultLayoutProps<Slots = unknown> extends PrimitivePropsWithRef<'div'> {
6
+ children?: React.ReactNode;
7
+ /**
8
+ * The icons to be rendered and displayed inside the layout.
9
+ */
10
+ icons: DefaultLayoutIcons;
11
+ /**
12
+ * Whether light or dark color theme should be active. Defaults to user operating system
13
+ * preference.
14
+ *
15
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme}
16
+ */
17
+ colorScheme?: 'light' | 'dark' | 'system' | 'default';
18
+ /**
19
+ * Sets the download URL and filename for the download button.
20
+ */
21
+ download?: FileDownloadInfo;
22
+ /**
23
+ * Specifies the number of milliseconds to wait before tooltips are visible after interacting
24
+ * with a control.
25
+ *
26
+ * @defaultValue 700
27
+ */
28
+ showTooltipDelay?: number;
29
+ /**
30
+ * Specifies the number of milliseconds to wait before menus are visible after opening them.
31
+ *
32
+ * @defaultValue 0
33
+ */
34
+ showMenuDelay?: number;
35
+ /**
36
+ * Whether the bitrate should be hidden in the settings quality menu next to each option.
37
+ *
38
+ * @defaultValue false
39
+ */
40
+ hideQualityBitrate?: boolean;
41
+ /**
42
+ * Determines when the small (e.g., mobile) UI should be displayed.
43
+ *
44
+ * @defaultValue `({ width, height }) => width < 576 || height < 380`
45
+ */
46
+ smallLayoutWhen?: boolean | MediaPlayerQuery;
47
+ /**
48
+ * The thumbnails resource.
49
+ *
50
+ * @see {@link https://www.vidstack.io/docs/wc/player/core-concepts/loading#thumbnails}
51
+ */
52
+ thumbnails?: ThumbnailSrc;
53
+ /**
54
+ * Translation map from english to your desired language for words used throughout the layout.
55
+ */
56
+ translations?: Partial<DefaultLayoutTranslations> | null;
57
+ /**
58
+ * A document query selector string or `HTMLElement` to mount menus inside.
59
+ *
60
+ * @defaultValue `document.body`
61
+ */
62
+ menuContainer?: string | HTMLElement | null;
63
+ /**
64
+ * Specifies whether menu buttons should be placed in the top or bottom controls group. This
65
+ * only applies to the large video layout.
66
+ */
67
+ menuGroup?: 'top' | 'bottom';
68
+ /**
69
+ * Disable audio boost slider in the settings menu.
70
+ */
71
+ noAudioGain?: boolean;
72
+ /**
73
+ * The audio gain options to be displayed in the settings menu.
74
+ */
75
+ audioGains?: number[] | {
76
+ min: number;
77
+ max: number;
78
+ step: number;
79
+ };
80
+ /**
81
+ * Whether modal menus should be disabled when the small layout is active. A modal menu is
82
+ * a floating panel that floats up from the bottom of the screen (outside of the player). It's
83
+ * enabled by default as it provides a better user experience for touch devices.
84
+ */
85
+ noModal?: boolean;
86
+ /**
87
+ * Whether to disable scrubbing by touch swiping left or right on the player canvas.
88
+ */
89
+ noScrubGesture?: boolean;
90
+ /**
91
+ * The minimum width of the slider to start displaying slider chapters when available.
92
+ */
93
+ sliderChaptersMinWidth?: number;
94
+ /**
95
+ * Whether the time slider should be disabled.
96
+ */
97
+ disableTimeSlider?: boolean;
98
+ /**
99
+ * Whether all gestures such as press to play or seek should not be active.
100
+ */
101
+ noGestures?: boolean;
102
+ /**
103
+ * Whether keyboard actions should not be displayed.
104
+ */
105
+ noKeyboardAnimations?: boolean;
106
+ /**
107
+ * The playback rate options to be displayed in the settings menu.
108
+ */
109
+ playbackRates?: number[] | {
110
+ min: number;
111
+ max: number;
112
+ step: number;
113
+ };
114
+ /**
115
+ * The number of seconds to seek forward or backward when pressing the seek button or using
116
+ * keyboard shortcuts.
117
+ */
118
+ seekStep?: number;
119
+ /**
120
+ * Provide additional content to be inserted in specific positions.
121
+ */
122
+ slots?: Slots;
123
+ }
124
+ export interface CreateDefaultMediaLayout {
125
+ type: 'audio' | 'video';
126
+ smLayoutWhen: MediaPlayerQuery;
127
+ renderLayout: (props: {
128
+ streamType: MediaStreamType;
129
+ isLoadLayout: boolean;
130
+ isSmallLayout: boolean;
131
+ }) => React.ReactNode;
132
+ }
133
+ export declare function createDefaultMediaLayout({ type, smLayoutWhen, renderLayout, }: CreateDefaultMediaLayout): React.ForwardRefExoticComponent<Omit<DefaultLayoutProps<unknown>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ export type SlotPositions<Name extends string> = `before${Capitalize<Name>}` | Name | `after${Capitalize<Name>}`;
3
+ export type Slots<Names extends string> = {
4
+ [slotName in SlotPositions<Names>]?: React.ReactNode;
5
+ };
6
+ export type DefaultLayoutSlotName = 'bufferingIndicator' | 'captionButton' | 'captions' | 'title' | 'chapterTitle' | 'currentTime' | 'timeDivider' | 'endTime' | 'fullscreenButton' | 'liveButton' | 'livePlayButton' | 'muteButton' | 'pipButton' | 'airPlayButton' | 'googleCastButton' | 'downloadButton' | 'playButton' | 'loadButton' | 'seekBackwardButton' | 'seekForwardButton' | 'startDuration' | 'timeSlider' | 'volumeSlider' | 'topControlsGroupStart' | 'topControlsGroupCenter' | 'topControlsGroupEnd' | 'centerControlsGroupStart' | 'centerControlsGroupCenter' | 'centerControlsGroupEnd' | DefaultLayoutMenuSlotName;
7
+ export type DefaultLayoutMenuSlotName = 'chaptersMenu' | 'settingsMenu'
8
+ /** @deprecated - use `settingsMenuItemsStart` */
9
+ | 'settingsMenuStartItems'
10
+ /** @deprecated - use `settingsMenuItemsEnd` */
11
+ | 'settingsMenuEndItems' | 'settingsMenuItemsStart' | 'settingsMenuItemsEnd' | 'playbackMenuItemsStart' | 'playbackMenuItemsEnd' | 'playbackMenuLoop' | 'accessibilityMenuItemsStart' | 'accessibilityMenuItemsEnd' | 'audioMenuItemsStart' | 'audioMenuItemsEnd' | 'captionsMenuItemsStart' | 'captionsMenuItemsEnd';
12
+ export interface DefaultLayoutSlots extends Slots<DefaultLayoutSlotName> {
13
+ }
14
+ export interface DefaultAudioLayoutSlots extends DefaultLayoutSlots {
15
+ }
16
+ export interface DefaultVideoLayoutSlots extends DefaultLayoutSlots {
17
+ smallLayout?: DefaultLayoutSlots;
18
+ largeLayout?: DefaultLayoutSlots;
19
+ }
20
+ export declare function useDefaultAudioLayoutSlots(): DefaultAudioLayoutSlots | undefined;
21
+ export declare function useDefaultVideoLayoutSlots(): DefaultVideoLayoutSlots | undefined;
22
+ export declare function slot<T>(slots: T | undefined, name: keyof T, defaultValue: React.ReactNode): React.ReactNode;
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare function DefaultAnnouncer(): React.JSX.Element | null;
3
+ declare namespace DefaultAnnouncer {
4
+ var displayName: string;
5
+ }
6
+ export { DefaultAnnouncer };
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ import * as Tooltip from '../../../ui/tooltip';
3
+ interface DefaultMediaButtonProps {
4
+ tooltip: Tooltip.ContentProps['placement'];
5
+ }
6
+ declare function DefaultPlayButton({ tooltip }: DefaultMediaButtonProps): React.JSX.Element;
7
+ declare namespace DefaultPlayButton {
8
+ var displayName: string;
9
+ }
10
+ export { DefaultPlayButton };
11
+ declare const DefaultMuteButton: React.ForwardRefExoticComponent<DefaultMediaButtonProps & React.RefAttributes<HTMLButtonElement>>;
12
+ export { DefaultMuteButton };
13
+ declare function DefaultCaptionButton({ tooltip }: DefaultMediaButtonProps): React.JSX.Element;
14
+ declare namespace DefaultCaptionButton {
15
+ var displayName: string;
16
+ }
17
+ export { DefaultCaptionButton };
18
+ declare function DefaultPIPButton({ tooltip }: DefaultMediaButtonProps): React.JSX.Element;
19
+ declare namespace DefaultPIPButton {
20
+ var displayName: string;
21
+ }
22
+ export { DefaultPIPButton };
23
+ declare function DefaultFullscreenButton({ tooltip }: DefaultMediaButtonProps): React.JSX.Element;
24
+ declare namespace DefaultFullscreenButton {
25
+ var displayName: string;
26
+ }
27
+ export { DefaultFullscreenButton };
28
+ declare function DefaultSeekButton({ backward, tooltip, }: DefaultMediaButtonProps & {
29
+ backward?: boolean;
30
+ }): React.JSX.Element;
31
+ declare namespace DefaultSeekButton {
32
+ var displayName: string;
33
+ }
34
+ export { DefaultSeekButton };
35
+ declare function DefaultAirPlayButton({ tooltip }: DefaultMediaButtonProps): React.JSX.Element;
36
+ declare namespace DefaultAirPlayButton {
37
+ var displayName: string;
38
+ }
39
+ export { DefaultAirPlayButton };
40
+ declare function DefaultGoogleCastButton({ tooltip }: DefaultMediaButtonProps): React.JSX.Element;
41
+ declare namespace DefaultGoogleCastButton {
42
+ var displayName: string;
43
+ }
44
+ export { DefaultGoogleCastButton };
45
+ declare function DefaultLiveButton(): React.JSX.Element | null;
46
+ declare namespace DefaultLiveButton {
47
+ var displayName: string;
48
+ }
49
+ export { DefaultLiveButton };
50
+ declare function DefaultDownloadButton(): React.JSX.Element | null;
51
+ declare namespace DefaultDownloadButton {
52
+ var displayName: string;
53
+ }
54
+ export { DefaultDownloadButton };
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare function DefaultCaptions(): React.JSX.Element;
3
+ declare namespace DefaultCaptions {
4
+ var displayName: string;
5
+ }
6
+ export { DefaultCaptions };
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare function DefaultControlsSpacer(): React.JSX.Element;
3
+ declare namespace DefaultControlsSpacer {
4
+ var displayName: string;
5
+ }
6
+ export { DefaultControlsSpacer };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { type PrimitivePropsWithRef } from '../../../primitives/nodes';
3
+ import type { DefaultKeyboardDisplayIcons } from '../icons';
4
+ export interface DefaultKeyboardDisplayProps extends Omit<PrimitivePropsWithRef<'div'>, 'disabled'> {
5
+ icons: Partial<DefaultKeyboardDisplayIcons>;
6
+ }
7
+ declare const DefaultKeyboardDisplay: React.ForwardRefExoticComponent<Omit<DefaultKeyboardDisplayProps, "ref"> & React.RefAttributes<HTMLElement>>;
8
+ export { DefaultKeyboardDisplay };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { type DefaultLayoutMenuSlotName, type Slots } from '../../slots';
3
+ interface DefaultAccessibilityMenuProps {
4
+ slots?: Slots<DefaultLayoutMenuSlotName>;
5
+ }
6
+ declare function DefaultAccessibilityMenu({ slots }: DefaultAccessibilityMenuProps): React.JSX.Element;
7
+ declare namespace DefaultAccessibilityMenu {
8
+ var displayName: string;
9
+ }
10
+ export { DefaultAccessibilityMenu };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { type DefaultLayoutMenuSlotName, type Slots } from '../../slots';
3
+ interface DefaultAudioMenuProps {
4
+ slots?: Slots<DefaultLayoutMenuSlotName>;
5
+ }
6
+ declare function DefaultAudioMenu({ slots }: DefaultAudioMenuProps): React.JSX.Element | null;
7
+ declare namespace DefaultAudioMenu {
8
+ var displayName: string;
9
+ }
10
+ export { DefaultAudioMenu };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { type DefaultLayoutMenuSlotName, type Slots } from '../../slots';
3
+ interface DefaultCaptionMenuProps {
4
+ slots?: Slots<DefaultLayoutMenuSlotName>;
5
+ }
6
+ declare function DefaultCaptionMenu({ slots }: DefaultCaptionMenuProps): React.JSX.Element | null;
7
+ declare namespace DefaultCaptionMenu {
8
+ var displayName: string;
9
+ }
10
+ export { DefaultCaptionMenu };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import type { DefaultMediaMenuProps } from './settings-menu';
3
+ declare function DefaultChaptersMenu({ tooltip, placement, portalClass }: DefaultMediaMenuProps): React.JSX.Element | null;
4
+ declare namespace DefaultChaptersMenu {
5
+ var displayName: string;
6
+ }
7
+ export { DefaultChaptersMenu };
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare function DefaultFontMenu(): React.JSX.Element | null;
3
+ declare namespace DefaultFontMenu {
4
+ var displayName: string;
5
+ }
6
+ export { DefaultFontMenu };
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ export interface DefaultMenuCheckboxProps {
3
+ label: string;
4
+ checked?: boolean;
5
+ storageKey?: string;
6
+ defaultChecked?: boolean;
7
+ onChange?(checked: boolean, trigger?: Event): void;
8
+ }
9
+ declare function DefaultMenuCheckbox({ label, checked, storageKey, defaultChecked, onChange, }: DefaultMenuCheckboxProps): React.JSX.Element;
10
+ declare namespace DefaultMenuCheckbox {
11
+ var displayName: string;
12
+ }
13
+ export { DefaultMenuCheckbox };
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+ import type { DefaultLayoutIcon } from '../../../icons';
3
+ export interface DefaultMenuSectionProps {
4
+ label?: string;
5
+ value?: string;
6
+ children: React.ReactNode;
7
+ }
8
+ declare function DefaultMenuSection({ label, value, children }: DefaultMenuSectionProps): React.JSX.Element;
9
+ declare namespace DefaultMenuSection {
10
+ var displayName: string;
11
+ }
12
+ export { DefaultMenuSection };
13
+ export interface DefaultMenuButtonProps {
14
+ label: string;
15
+ hint?: string;
16
+ disabled?: boolean;
17
+ Icon?: DefaultLayoutIcon;
18
+ }
19
+ declare function DefaultMenuButton({ label, hint, Icon, disabled }: DefaultMenuButtonProps): React.JSX.Element;
20
+ declare namespace DefaultMenuButton {
21
+ var displayName: string;
22
+ }
23
+ export { DefaultMenuButton };
24
+ export interface DefaultMenuItemProps {
25
+ label: string;
26
+ children: React.ReactNode;
27
+ }
28
+ declare function DefaultMenuItem({ label, children }: DefaultMenuItemProps): React.JSX.Element;
29
+ declare namespace DefaultMenuItem {
30
+ var displayName: string;
31
+ }
32
+ export { DefaultMenuItem };
33
+ export interface DefaultMenuRadioGroupProps {
34
+ value: string;
35
+ options: {
36
+ label: string;
37
+ value: string;
38
+ }[];
39
+ onChange?(newValue: string): void;
40
+ }
41
+ declare function DefaultMenuRadioGroup({ value, options, onChange }: DefaultMenuRadioGroupProps): React.JSX.Element;
42
+ declare namespace DefaultMenuRadioGroup {
43
+ var displayName: string;
44
+ }
45
+ export { DefaultMenuRadioGroup };
46
+ export declare function createRadioOptions(entries: string[] | Record<string, string>): {
47
+ label: string;
48
+ value: string;
49
+ }[];
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import type { DefaultLayoutIcon } from '../../../icons';
3
+ export interface DefaultMenuSliderItemProps {
4
+ label?: string;
5
+ value?: string;
6
+ UpIcon?: DefaultLayoutIcon;
7
+ DownIcon?: DefaultLayoutIcon;
8
+ children: React.ReactNode;
9
+ isMin: boolean;
10
+ isMax: boolean;
11
+ }
12
+ declare function DefaultMenuSliderItem({ label, value, UpIcon, DownIcon, children, isMin, isMax, }: DefaultMenuSliderItemProps): React.JSX.Element;
13
+ declare namespace DefaultMenuSliderItem {
14
+ var displayName: string;
15
+ }
16
+ export { DefaultMenuSliderItem };
17
+ declare function DefaultSliderParts(): React.JSX.Element;
18
+ declare namespace DefaultSliderParts {
19
+ var displayName: string;
20
+ }
21
+ export { DefaultSliderParts };
22
+ declare function DefaultSliderSteps(): React.JSX.Element;
23
+ declare namespace DefaultSliderSteps {
24
+ var displayName: string;
25
+ }
26
+ export { DefaultSliderSteps };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { type DefaultLayoutMenuSlotName, type Slots } from '../../slots';
3
+ interface DefaultPlaybackMenuProps {
4
+ slots?: Slots<DefaultLayoutMenuSlotName>;
5
+ }
6
+ declare function DefaultPlaybackMenu({ slots }: DefaultPlaybackMenuProps): React.JSX.Element;
7
+ declare namespace DefaultPlaybackMenu {
8
+ var displayName: string;
9
+ }
10
+ export { DefaultPlaybackMenu };
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import * as Menu from '../../../../ui/menu';
3
+ import type * as Tooltip from '../../../../ui/tooltip';
4
+ import { type DefaultLayoutMenuSlotName, type Slots } from '../../slots';
5
+ export interface DefaultMediaMenuProps {
6
+ tooltip: Tooltip.ContentProps['placement'];
7
+ placement: Menu.ContentProps['placement'];
8
+ portalClass?: string;
9
+ slots?: Slots<DefaultLayoutMenuSlotName>;
10
+ }
11
+ declare function DefaultSettingsMenu({ tooltip, placement, portalClass, slots, }: DefaultMediaMenuProps): React.JSX.Element;
12
+ declare namespace DefaultSettingsMenu {
13
+ var displayName: string;
14
+ }
15
+ export { DefaultSettingsMenu };
@@ -0,0 +1 @@
1
+ export declare function useParentDialogEl(): HTMLDialogElement | null | undefined;
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import type { SliderOrientation, TooltipPlacement } from 'vidstack';
3
+ import * as VolumeSlider from '../../../ui/sliders/volume-slider';
4
+ import { type DefaultLayoutSlots } from '../slots';
5
+ export interface DefaultVolumePopupProps {
6
+ slots?: DefaultLayoutSlots;
7
+ tooltip: TooltipPlacement;
8
+ orientation: SliderOrientation;
9
+ }
10
+ declare function DefaultVolumePopup({ tooltip, orientation, slots }: DefaultVolumePopupProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
11
+ declare namespace DefaultVolumePopup {
12
+ var displayName: string;
13
+ }
14
+ export { DefaultVolumePopup };
15
+ declare function DefaultVolumeSlider(props: VolumeSlider.RootProps): React.JSX.Element;
16
+ declare namespace DefaultVolumeSlider {
17
+ var displayName: string;
18
+ }
19
+ export { DefaultVolumeSlider };
20
+ declare function DefaultTimeSlider(): React.JSX.Element;
21
+ declare namespace DefaultTimeSlider {
22
+ var displayName: string;
23
+ }
24
+ export { DefaultTimeSlider };
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ interface DefaultTimeGroupSlots {
3
+ currentTime?: React.ReactNode;
4
+ timeDivider?: React.ReactNode;
5
+ endTime?: React.ReactNode;
6
+ }
7
+ declare function DefaultTimeGroup({ slots }: {
8
+ slots?: DefaultTimeGroupSlots;
9
+ }): React.JSX.Element | null;
10
+ declare namespace DefaultTimeGroup {
11
+ var displayName: string;
12
+ }
13
+ export { DefaultTimeGroup };
14
+ interface DefaultTimeInfoSlots extends DefaultTimeGroupSlots {
15
+ liveButton?: React.ReactNode;
16
+ }
17
+ declare function DefaultTimeInfo({ slots }: {
18
+ slots?: DefaultTimeInfoSlots;
19
+ }): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
20
+ declare namespace DefaultTimeInfo {
21
+ var displayName: string;
22
+ }
23
+ export { DefaultTimeInfo };
24
+ declare function DefaultTimeInvert({ slots }: {
25
+ slots?: DefaultTimeInfoSlots;
26
+ }): React.ReactNode;
27
+ declare namespace DefaultTimeInvert {
28
+ var displayName: string;
29
+ }
30
+ export { DefaultTimeInvert };
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ declare function DefaultTitle(): React.JSX.Element;
3
+ declare namespace DefaultTitle {
4
+ var displayName: string;
5
+ }
6
+ export { DefaultTitle };