@hanifhan1f/vidstack-react 1.12.13 → 1.12.15

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 (392) hide show
  1. package/dev/chunks/vidstack-B-FM4-oZ.js +668 -0
  2. package/dev/chunks/vidstack-B92UncBI.js +61 -0
  3. package/dev/chunks/vidstack-BDiAEW1N.js +11691 -0
  4. package/dev/chunks/vidstack-BZIhWvGa.js +1371 -0
  5. package/dev/chunks/vidstack-Bfi_jCvb.js +476 -0
  6. package/dev/chunks/vidstack-CBF7iUqu.js +22 -0
  7. package/dev/chunks/vidstack-CFZ0rYJz.js +34 -0
  8. package/dev/chunks/vidstack-CM82l-7o.js +551 -0
  9. package/dev/chunks/vidstack-CvWDiSTs.js +84 -0
  10. package/dev/chunks/vidstack-CzU-uC5f.js +189 -0
  11. package/dev/chunks/vidstack-D-hQD1eE.js +9 -0
  12. package/dev/chunks/vidstack-D6_9yy0x.js +643 -0
  13. package/dev/chunks/vidstack-DJQOTrl6.js +180 -0
  14. package/dev/chunks/vidstack-DNbKNc4R.js +288 -0
  15. package/dev/chunks/vidstack-D_bWd66h.js +2023 -0
  16. package/dev/chunks/vidstack-Dm1xEU9Q.js +36 -0
  17. package/dev/chunks/vidstack-f6WXkmfP.js +375 -0
  18. package/dev/chunks/vidstack-krOAtKMi.js +34 -0
  19. package/dev/chunks/vidstack-lYFZKRUc.js +401 -0
  20. package/dev/chunks/vidstack-vz-aZSfo.js +1497 -0
  21. package/dev/player/vidstack-default-components.js +14 -0
  22. package/dev/player/vidstack-default-icons.js +88 -0
  23. package/dev/player/vidstack-default-layout.js +14 -0
  24. package/dev/player/vidstack-plyr-icons.js +62 -0
  25. package/dev/player/vidstack-plyr-layout.js +636 -0
  26. package/dev/player/vidstack-remotion.js +345 -0
  27. package/dev/vidstack.js +587 -0
  28. package/dom.d.ts +91 -0
  29. package/google-cast.d.ts +1422 -0
  30. package/icons.d.ts +5 -0
  31. package/index.d.ts +8 -0
  32. package/package.json +9 -60
  33. package/player/layouts/default.d.ts +11392 -0
  34. package/player/layouts/plyr.d.ts +5 -0
  35. package/player/remotion.d.ts +5 -0
  36. package/player/styles/base.css +153 -0
  37. package/player/styles/default/buffering.css +55 -0
  38. package/player/styles/default/buttons.css +175 -0
  39. package/player/styles/default/captions.css +181 -0
  40. package/player/styles/default/chapter-title.css +26 -0
  41. package/player/styles/default/controls.css +56 -0
  42. package/player/styles/default/gestures.css +19 -0
  43. package/player/styles/default/icons.css +6 -0
  44. package/player/styles/default/keyboard.css +148 -0
  45. package/player/styles/default/layouts/audio.css +417 -0
  46. package/player/styles/default/layouts/video.css +1082 -0
  47. package/player/styles/default/menus.css +959 -0
  48. package/player/styles/default/poster.css +52 -0
  49. package/player/styles/default/sliders.css +391 -0
  50. package/player/styles/default/theme.css +2461 -0
  51. package/player/styles/default/thumbnail.css +40 -0
  52. package/player/styles/default/time.css +45 -0
  53. package/player/styles/default/tooltips.css +141 -0
  54. package/player/styles/plyr/theme.css +1237 -0
  55. package/prod/chunks/vidstack-0Foyib2F.js +34 -0
  56. package/prod/chunks/vidstack-BbPEqH3g.js +11196 -0
  57. package/prod/chunks/vidstack-Bh7M8kL6.js +663 -0
  58. package/prod/chunks/vidstack-BlPINAXN.js +189 -0
  59. package/prod/chunks/vidstack-C5Rzkyfp.js +375 -0
  60. package/prod/chunks/vidstack-CBF7iUqu.js +22 -0
  61. package/prod/chunks/vidstack-CZNlvfmV.js +288 -0
  62. package/prod/chunks/vidstack-CZgUA94N.js +1979 -0
  63. package/prod/chunks/vidstack-Ce0Qn3e1.js +1497 -0
  64. package/prod/chunks/vidstack-D0XCUWbp.js +159 -0
  65. package/prod/chunks/vidstack-DTyDOhwS.js +504 -0
  66. package/prod/chunks/vidstack-DhC5F6c8.js +470 -0
  67. package/prod/chunks/vidstack-Dm1xEU9Q.js +36 -0
  68. package/prod/chunks/vidstack-Ma9rwtR0.js +386 -0
  69. package/prod/chunks/vidstack-WsodkLQg.js +1371 -0
  70. package/prod/chunks/vidstack-jIPoNqhj.js +545 -0
  71. package/prod/chunks/vidstack-krOAtKMi.js +34 -0
  72. package/prod/chunks/vidstack-vqp2QaHR.js +9 -0
  73. package/prod/chunks/vidstack-xo_SmgiV.js +84 -0
  74. package/prod/chunks/vidstack-xvxeRtaN.js +61 -0
  75. package/prod/player/vidstack-default-components.js +14 -0
  76. package/prod/player/vidstack-default-icons.js +88 -0
  77. package/prod/player/vidstack-default-layout.js +14 -0
  78. package/prod/player/vidstack-plyr-icons.js +62 -0
  79. package/prod/player/vidstack-plyr-layout.js +636 -0
  80. package/prod/player/vidstack-remotion.js +335 -0
  81. package/prod/vidstack-icons.js +435 -0
  82. package/prod/vidstack.js +648 -0
  83. package/server/chunks/vidstack-2zMSe4ym.js +1371 -0
  84. package/server/chunks/vidstack-BtqWstSj.js +375 -0
  85. package/server/chunks/vidstack-C-HdFsZi.js +84 -0
  86. package/server/chunks/vidstack-C4iWXMC-.js +545 -0
  87. package/server/chunks/vidstack-C5zFBMwg.js +386 -0
  88. package/server/chunks/vidstack-CBF7iUqu.js +22 -0
  89. package/server/chunks/vidstack-CEh38XpD.js +288 -0
  90. package/server/chunks/vidstack-CWR0J8Qz.js +1497 -0
  91. package/server/chunks/vidstack-CkMAeO-e.js +34 -0
  92. package/server/chunks/vidstack-Cm0qnRvu.js +11196 -0
  93. package/server/chunks/vidstack-CoGzBr_V.js +663 -0
  94. package/server/chunks/vidstack-CyFwkPiu.js +470 -0
  95. package/server/chunks/vidstack-D-hQD1eE.js +9 -0
  96. package/server/chunks/vidstack-D_bWd66h.js +2023 -0
  97. package/server/chunks/vidstack-Dm1xEU9Q.js +36 -0
  98. package/server/chunks/vidstack-DtQSvsQr.js +189 -0
  99. package/server/chunks/vidstack-jlaBqZq5.js +61 -0
  100. package/server/chunks/vidstack-krOAtKMi.js +34 -0
  101. package/server/chunks/vidstack-rWs25cS9.js +159 -0
  102. package/server/chunks/vidstack-uyCXITen.js +504 -0
  103. package/server/player/vidstack-default-components.js +14 -0
  104. package/server/player/vidstack-default-icons.js +88 -0
  105. package/server/player/vidstack-default-layout.js +14 -0
  106. package/server/player/vidstack-plyr-icons.js +62 -0
  107. package/server/player/vidstack-plyr-layout.js +636 -0
  108. package/server/player/vidstack-remotion.js +335 -0
  109. package/server/vidstack.js +648 -0
  110. package/tailwind.cjs +101 -0
  111. package/tailwind.d.cts +15 -0
  112. package/.templates/sandbox/document.css +0 -27
  113. package/.templates/sandbox/favicon-32x32.png +0 -0
  114. package/.templates/sandbox/index.html +0 -21
  115. package/.templates/sandbox/main.tsx +0 -12
  116. package/.templates/sandbox/player.css +0 -39
  117. package/.templates/sandbox/player.tsx +0 -121
  118. package/.templates/sandbox/tracks.ts +0 -23
  119. package/analyze.config.ts +0 -7
  120. package/build/build-icons.js +0 -62
  121. package/rollup.config.ts +0 -256
  122. package/src/components/announcer.tsx +0 -47
  123. package/src/components/layouts/default/audio-layout.tsx +0 -231
  124. package/src/components/layouts/default/context.ts +0 -28
  125. package/src/components/layouts/default/hooks.ts +0 -13
  126. package/src/components/layouts/default/icons.tsx +0 -225
  127. package/src/components/layouts/default/index.ts +0 -11
  128. package/src/components/layouts/default/media-layout.tsx +0 -259
  129. package/src/components/layouts/default/slots.tsx +0 -98
  130. package/src/components/layouts/default/ui/announcer.tsx +0 -22
  131. package/src/components/layouts/default/ui/buttons.tsx +0 -301
  132. package/src/components/layouts/default/ui/captions.tsx +0 -16
  133. package/src/components/layouts/default/ui/controls.tsx +0 -12
  134. package/src/components/layouts/default/ui/keyboard-display.tsx +0 -132
  135. package/src/components/layouts/default/ui/menus/accessibility-menu.tsx +0 -100
  136. package/src/components/layouts/default/ui/menus/audio-menu.tsx +0 -167
  137. package/src/components/layouts/default/ui/menus/captions-menu.tsx +0 -61
  138. package/src/components/layouts/default/ui/menus/chapters-menu.tsx +0 -132
  139. package/src/components/layouts/default/ui/menus/font-menu.tsx +0 -331
  140. package/src/components/layouts/default/ui/menus/items/menu-checkbox.tsx +0 -72
  141. package/src/components/layouts/default/ui/menus/items/menu-items.tsx +0 -135
  142. package/src/components/layouts/default/ui/menus/items/menu-slider.tsx +0 -92
  143. package/src/components/layouts/default/ui/menus/playback-menu.tsx +0 -232
  144. package/src/components/layouts/default/ui/menus/settings-menu.tsx +0 -114
  145. package/src/components/layouts/default/ui/menus/utils.ts +0 -12
  146. package/src/components/layouts/default/ui/sliders.tsx +0 -136
  147. package/src/components/layouts/default/ui/time.tsx +0 -73
  148. package/src/components/layouts/default/ui/title.tsx +0 -24
  149. package/src/components/layouts/default/ui/tooltip.tsx +0 -27
  150. package/src/components/layouts/default/ui.ts +0 -8
  151. package/src/components/layouts/default/video-layout.tsx +0 -344
  152. package/src/components/layouts/plyr/context.ts +0 -26
  153. package/src/components/layouts/plyr/icons/plyr-airplay.js +0 -1
  154. package/src/components/layouts/plyr/icons/plyr-captions-off.js +0 -1
  155. package/src/components/layouts/plyr/icons/plyr-captions-on.js +0 -1
  156. package/src/components/layouts/plyr/icons/plyr-download.js +0 -1
  157. package/src/components/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
  158. package/src/components/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
  159. package/src/components/layouts/plyr/icons/plyr-fast-forward.js +0 -1
  160. package/src/components/layouts/plyr/icons/plyr-muted.js +0 -1
  161. package/src/components/layouts/plyr/icons/plyr-pause.js +0 -1
  162. package/src/components/layouts/plyr/icons/plyr-pip.js +0 -1
  163. package/src/components/layouts/plyr/icons/plyr-play.js +0 -1
  164. package/src/components/layouts/plyr/icons/plyr-restart.js +0 -1
  165. package/src/components/layouts/plyr/icons/plyr-rewind.js +0 -1
  166. package/src/components/layouts/plyr/icons/plyr-settings.js +0 -1
  167. package/src/components/layouts/plyr/icons/plyr-volume.js +0 -1
  168. package/src/components/layouts/plyr/icons.tsx +0 -71
  169. package/src/components/layouts/plyr/index.ts +0 -11
  170. package/src/components/layouts/plyr/layout.tsx +0 -1024
  171. package/src/components/layouts/plyr/props.ts +0 -104
  172. package/src/components/layouts/plyr/slots.tsx +0 -52
  173. package/src/components/layouts/remotion-ui.ts +0 -13
  174. package/src/components/layouts/utils.ts +0 -17
  175. package/src/components/player-callbacks.ts +0 -67
  176. package/src/components/player.tsx +0 -67
  177. package/src/components/primitives/instances.ts +0 -92
  178. package/src/components/primitives/nodes.tsx +0 -58
  179. package/src/components/primitives/slot.tsx +0 -132
  180. package/src/components/provider.tsx +0 -187
  181. package/src/components/text-track.tsx +0 -106
  182. package/src/components/ui/buttons/airplay-button.tsx +0 -53
  183. package/src/components/ui/buttons/caption-button.tsx +0 -55
  184. package/src/components/ui/buttons/fullscreen-button.tsx +0 -55
  185. package/src/components/ui/buttons/google-cast-button.tsx +0 -53
  186. package/src/components/ui/buttons/live-button.tsx +0 -56
  187. package/src/components/ui/buttons/mute-button.tsx +0 -60
  188. package/src/components/ui/buttons/pip-button.tsx +0 -54
  189. package/src/components/ui/buttons/play-button.tsx +0 -53
  190. package/src/components/ui/buttons/seek-button.tsx +0 -55
  191. package/src/components/ui/buttons/toggle-button.tsx +0 -51
  192. package/src/components/ui/caption.tsx +0 -70
  193. package/src/components/ui/captions.tsx +0 -41
  194. package/src/components/ui/chapter-title.tsx +0 -40
  195. package/src/components/ui/controls.tsx +0 -90
  196. package/src/components/ui/gesture.tsx +0 -43
  197. package/src/components/ui/menu.tsx +0 -251
  198. package/src/components/ui/poster.tsx +0 -101
  199. package/src/components/ui/radio-group.tsx +0 -88
  200. package/src/components/ui/sliders/audio-gain-slider.tsx +0 -55
  201. package/src/components/ui/sliders/quality-slider.tsx +0 -54
  202. package/src/components/ui/sliders/slider-callbacks.ts +0 -14
  203. package/src/components/ui/sliders/slider-value.tsx +0 -13
  204. package/src/components/ui/sliders/slider.tsx +0 -254
  205. package/src/components/ui/sliders/speed-slider.tsx +0 -54
  206. package/src/components/ui/sliders/time-slider.tsx +0 -379
  207. package/src/components/ui/sliders/volume-slider.tsx +0 -55
  208. package/src/components/ui/spinner.tsx +0 -105
  209. package/src/components/ui/thumbnail.tsx +0 -82
  210. package/src/components/ui/time.tsx +0 -77
  211. package/src/components/ui/title.tsx +0 -32
  212. package/src/components/ui/tooltip.tsx +0 -135
  213. package/src/globals.d.ts +0 -3
  214. package/src/hooks/create-text-track.ts +0 -22
  215. package/src/hooks/options/use-audio-gain-options.ts +0 -75
  216. package/src/hooks/options/use-audio-options.ts +0 -71
  217. package/src/hooks/options/use-caption-options.ts +0 -95
  218. package/src/hooks/options/use-chapter-options.ts +0 -97
  219. package/src/hooks/options/use-playback-rate-options.ts +0 -75
  220. package/src/hooks/options/use-video-quality-options.ts +0 -123
  221. package/src/hooks/use-active-text-cues.ts +0 -28
  222. package/src/hooks/use-active-text-track.ts +0 -19
  223. package/src/hooks/use-chapter-title.ts +0 -12
  224. package/src/hooks/use-dom.ts +0 -121
  225. package/src/hooks/use-media-context.ts +0 -6
  226. package/src/hooks/use-media-player.ts +0 -19
  227. package/src/hooks/use-media-provider.ts +0 -31
  228. package/src/hooks/use-media-remote.ts +0 -37
  229. package/src/hooks/use-media-state.ts +0 -58
  230. package/src/hooks/use-signals.ts +0 -24
  231. package/src/hooks/use-slider-preview.ts +0 -126
  232. package/src/hooks/use-slider-state.ts +0 -63
  233. package/src/hooks/use-state.ts +0 -47
  234. package/src/hooks/use-text-cues.ts +0 -33
  235. package/src/hooks/use-thumbnails.ts +0 -69
  236. package/src/icon.ts +0 -37
  237. package/src/icons.ts +0 -754
  238. package/src/index.ts +0 -181
  239. package/src/providers/remotion/index.ts +0 -10
  240. package/src/providers/remotion/layout-engine.ts +0 -123
  241. package/src/providers/remotion/loader.ts +0 -35
  242. package/src/providers/remotion/playback-engine.ts +0 -142
  243. package/src/providers/remotion/provider.tsx +0 -514
  244. package/src/providers/remotion/type-check.ts +0 -13
  245. package/src/providers/remotion/types.ts +0 -94
  246. package/src/providers/remotion/ui/context.tsx +0 -120
  247. package/src/providers/remotion/ui/error-boundary.tsx +0 -57
  248. package/src/providers/remotion/ui/poster.tsx +0 -33
  249. package/src/providers/remotion/ui/slider-thumbnail.tsx +0 -41
  250. package/src/providers/remotion/ui/thumbnail.tsx +0 -166
  251. package/src/providers/remotion/validate.ts +0 -220
  252. package/src/source.ts +0 -5
  253. package/src/utils.ts +0 -27
  254. package/tsconfig.build.json +0 -10
  255. package/tsconfig.json +0 -11
  256. package/types/react/src/components/announcer.d.ts +0 -16
  257. package/types/react/src/components/layouts/default/audio-layout.d.ts +0 -27
  258. package/types/react/src/components/layouts/default/context.d.ts +0 -14
  259. package/types/react/src/components/layouts/default/hooks.d.ts +0 -2
  260. package/types/react/src/components/layouts/default/icons.d.ts +0 -95
  261. package/types/react/src/components/layouts/default/index.d.ts +0 -5
  262. package/types/react/src/components/layouts/default/media-layout.d.ts +0 -133
  263. package/types/react/src/components/layouts/default/slots.d.ts +0 -22
  264. package/types/react/src/components/layouts/default/ui/announcer.d.ts +0 -6
  265. package/types/react/src/components/layouts/default/ui/buttons.d.ts +0 -54
  266. package/types/react/src/components/layouts/default/ui/captions.d.ts +0 -6
  267. package/types/react/src/components/layouts/default/ui/controls.d.ts +0 -6
  268. package/types/react/src/components/layouts/default/ui/keyboard-display.d.ts +0 -8
  269. package/types/react/src/components/layouts/default/ui/menus/accessibility-menu.d.ts +0 -10
  270. package/types/react/src/components/layouts/default/ui/menus/audio-menu.d.ts +0 -10
  271. package/types/react/src/components/layouts/default/ui/menus/captions-menu.d.ts +0 -10
  272. package/types/react/src/components/layouts/default/ui/menus/chapters-menu.d.ts +0 -7
  273. package/types/react/src/components/layouts/default/ui/menus/font-menu.d.ts +0 -6
  274. package/types/react/src/components/layouts/default/ui/menus/items/menu-checkbox.d.ts +0 -13
  275. package/types/react/src/components/layouts/default/ui/menus/items/menu-items.d.ts +0 -49
  276. package/types/react/src/components/layouts/default/ui/menus/items/menu-slider.d.ts +0 -26
  277. package/types/react/src/components/layouts/default/ui/menus/playback-menu.d.ts +0 -10
  278. package/types/react/src/components/layouts/default/ui/menus/settings-menu.d.ts +0 -15
  279. package/types/react/src/components/layouts/default/ui/menus/utils.d.ts +0 -1
  280. package/types/react/src/components/layouts/default/ui/sliders.d.ts +0 -24
  281. package/types/react/src/components/layouts/default/ui/time.d.ts +0 -30
  282. package/types/react/src/components/layouts/default/ui/title.d.ts +0 -6
  283. package/types/react/src/components/layouts/default/ui/tooltip.d.ts +0 -12
  284. package/types/react/src/components/layouts/default/ui.d.ts +0 -8
  285. package/types/react/src/components/layouts/default/video-layout.d.ts +0 -47
  286. package/types/react/src/components/layouts/plyr/context.d.ts +0 -12
  287. package/types/react/src/components/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
  288. package/types/react/src/components/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
  289. package/types/react/src/components/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
  290. package/types/react/src/components/layouts/plyr/icons/plyr-download.d.ts +0 -2
  291. package/types/react/src/components/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
  292. package/types/react/src/components/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
  293. package/types/react/src/components/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
  294. package/types/react/src/components/layouts/plyr/icons/plyr-muted.d.ts +0 -2
  295. package/types/react/src/components/layouts/plyr/icons/plyr-pause.d.ts +0 -2
  296. package/types/react/src/components/layouts/plyr/icons/plyr-pip.d.ts +0 -2
  297. package/types/react/src/components/layouts/plyr/icons/plyr-play.d.ts +0 -2
  298. package/types/react/src/components/layouts/plyr/icons/plyr-restart.d.ts +0 -2
  299. package/types/react/src/components/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
  300. package/types/react/src/components/layouts/plyr/icons/plyr-settings.d.ts +0 -2
  301. package/types/react/src/components/layouts/plyr/icons/plyr-volume.d.ts +0 -2
  302. package/types/react/src/components/layouts/plyr/icons.d.ts +0 -25
  303. package/types/react/src/components/layouts/plyr/index.d.ts +0 -6
  304. package/types/react/src/components/layouts/plyr/layout.d.ts +0 -17
  305. package/types/react/src/components/layouts/plyr/props.d.ts +0 -71
  306. package/types/react/src/components/layouts/plyr/slots.d.ts +0 -9
  307. package/types/react/src/components/layouts/remotion-ui.d.ts +0 -3
  308. package/types/react/src/components/layouts/utils.d.ts +0 -1
  309. package/types/react/src/components/player-callbacks.d.ts +0 -6
  310. package/types/react/src/components/player.d.ts +0 -32
  311. package/types/react/src/components/primitives/instances.d.ts +0 -83
  312. package/types/react/src/components/primitives/nodes.d.ts +0 -15
  313. package/types/react/src/components/primitives/slot.d.ts +0 -11
  314. package/types/react/src/components/provider.d.ts +0 -26
  315. package/types/react/src/components/text-track.d.ts +0 -100
  316. package/types/react/src/components/ui/buttons/airplay-button.d.ts +0 -22
  317. package/types/react/src/components/ui/buttons/caption-button.d.ts +0 -24
  318. package/types/react/src/components/ui/buttons/fullscreen-button.d.ts +0 -24
  319. package/types/react/src/components/ui/buttons/google-cast-button.d.ts +0 -22
  320. package/types/react/src/components/ui/buttons/live-button.d.ts +0 -26
  321. package/types/react/src/components/ui/buttons/mute-button.d.ts +0 -30
  322. package/types/react/src/components/ui/buttons/pip-button.d.ts +0 -24
  323. package/types/react/src/components/ui/buttons/play-button.d.ts +0 -23
  324. package/types/react/src/components/ui/buttons/seek-button.d.ts +0 -25
  325. package/types/react/src/components/ui/buttons/toggle-button.d.ts +0 -22
  326. package/types/react/src/components/ui/caption.d.ts +0 -11
  327. package/types/react/src/components/ui/captions.d.ts +0 -20
  328. package/types/react/src/components/ui/chapter-title.d.ts +0 -20
  329. package/types/react/src/components/ui/controls.d.ts +0 -40
  330. package/types/react/src/components/ui/gesture.d.ts +0 -20
  331. package/types/react/src/components/ui/menu.d.ts +0 -102
  332. package/types/react/src/components/ui/poster.d.ts +0 -25
  333. package/types/react/src/components/ui/radio-group.d.ts +0 -39
  334. package/types/react/src/components/ui/sliders/audio-gain-slider.d.ts +0 -29
  335. package/types/react/src/components/ui/sliders/quality-slider.d.ts +0 -28
  336. package/types/react/src/components/ui/sliders/slider-callbacks.d.ts +0 -6
  337. package/types/react/src/components/ui/sliders/slider-value.d.ts +0 -9
  338. package/types/react/src/components/ui/sliders/slider.d.ts +0 -134
  339. package/types/react/src/components/ui/sliders/speed-slider.d.ts +0 -28
  340. package/types/react/src/components/ui/sliders/time-slider.d.ts +0 -124
  341. package/types/react/src/components/ui/sliders/volume-slider.d.ts +0 -29
  342. package/types/react/src/components/ui/spinner.d.ts +0 -31
  343. package/types/react/src/components/ui/thumbnail.d.ts +0 -26
  344. package/types/react/src/components/ui/time.d.ts +0 -20
  345. package/types/react/src/components/ui/title.d.ts +0 -15
  346. package/types/react/src/components/ui/tooltip.d.ts +0 -63
  347. package/types/react/src/hooks/create-text-track.d.ts +0 -7
  348. package/types/react/src/hooks/options/use-audio-gain-options.d.ts +0 -22
  349. package/types/react/src/hooks/options/use-audio-options.d.ts +0 -17
  350. package/types/react/src/hooks/options/use-caption-options.d.ts +0 -24
  351. package/types/react/src/hooks/options/use-chapter-options.d.ts +0 -18
  352. package/types/react/src/hooks/options/use-playback-rate-options.d.ts +0 -22
  353. package/types/react/src/hooks/options/use-video-quality-options.d.ts +0 -35
  354. package/types/react/src/hooks/use-active-text-cues.d.ts +0 -6
  355. package/types/react/src/hooks/use-active-text-track.d.ts +0 -5
  356. package/types/react/src/hooks/use-chapter-title.d.ts +0 -4
  357. package/types/react/src/hooks/use-dom.d.ts +0 -9
  358. package/types/react/src/hooks/use-media-context.d.ts +0 -1
  359. package/types/react/src/hooks/use-media-player.d.ts +0 -7
  360. package/types/react/src/hooks/use-media-provider.d.ts +0 -7
  361. package/types/react/src/hooks/use-media-remote.d.ts +0 -12
  362. package/types/react/src/hooks/use-media-state.d.ts +0 -15
  363. package/types/react/src/hooks/use-signals.d.ts +0 -5
  364. package/types/react/src/hooks/use-slider-preview.d.ts +0 -27
  365. package/types/react/src/hooks/use-slider-state.d.ts +0 -16
  366. package/types/react/src/hooks/use-state.d.ts +0 -18
  367. package/types/react/src/hooks/use-text-cues.d.ts +0 -6
  368. package/types/react/src/hooks/use-thumbnails.d.ts +0 -16
  369. package/types/react/src/icon.d.ts +0 -17
  370. package/types/react/src/icons.d.ts +0 -215
  371. package/types/react/src/index.d.ts +0 -78
  372. package/types/react/src/providers/remotion/index.d.ts +0 -7
  373. package/types/react/src/providers/remotion/layout-engine.d.ts +0 -8
  374. package/types/react/src/providers/remotion/loader.d.ts +0 -9
  375. package/types/react/src/providers/remotion/playback-engine.d.ts +0 -11
  376. package/types/react/src/providers/remotion/provider.d.ts +0 -26
  377. package/types/react/src/providers/remotion/type-check.d.ts +0 -6
  378. package/types/react/src/providers/remotion/types.d.ts +0 -91
  379. package/types/react/src/providers/remotion/ui/context.d.ts +0 -17
  380. package/types/react/src/providers/remotion/ui/error-boundary.d.ts +0 -21
  381. package/types/react/src/providers/remotion/ui/poster.d.ts +0 -18
  382. package/types/react/src/providers/remotion/ui/slider-thumbnail.d.ts +0 -17
  383. package/types/react/src/providers/remotion/ui/thumbnail.d.ts +0 -32
  384. package/types/react/src/providers/remotion/validate.d.ts +0 -12
  385. package/types/react/src/source.d.ts +0 -3
  386. package/types/react/src/utils.d.ts +0 -3
  387. package/types/vidstack/src/core/api/src-types.d.ts +0 -50
  388. package/types/vidstack/src/utils/mime.d.ts +0 -15
  389. package/types/vidstack/src/utils/network.d.ts +0 -17
  390. package/types/vidstack/src/utils/support.d.ts +0 -72
  391. package/vite.config.ts +0 -23
  392. /package/{npm/analyze.json.d.ts → analyze.json.d.ts} +0 -0
@@ -1,379 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { effect, signal, type WriteSignal } from 'maverick.js';
4
- import {
5
- composeRefs,
6
- createReactComponent,
7
- useSignal,
8
- useStateContext,
9
- type ReactElementProps,
10
- } from 'maverick.js/react';
11
- import type { VTTCue } from 'media-captions';
12
- import { mediaState } from 'vidstack';
13
-
14
- import { createVTTCue } from '../../../utils';
15
- import {
16
- SliderChaptersInstance,
17
- SliderThumbnailInstance,
18
- SliderVideoInstance,
19
- TimeSliderInstance,
20
- } from '../../primitives/instances';
21
- import { Primitive, type PrimitivePropsWithRef } from '../../primitives/nodes';
22
- import * as ThumbnailBase from '../thumbnail';
23
- import { sliderCallbacks } from './slider-callbacks';
24
-
25
- /* -------------------------------------------------------------------------------------------------
26
- * TimeSliderContext
27
- * -----------------------------------------------------------------------------------------------*/
28
-
29
- const TimeSliderContext = React.createContext<TimeSliderContext>({
30
- $chapters: signal<SliderChaptersInstance | null>(null),
31
- });
32
-
33
- interface TimeSliderContext {
34
- $chapters: WriteSignal<SliderChaptersInstance | null>;
35
- }
36
-
37
- TimeSliderContext.displayName = 'TimeSliderContext';
38
-
39
- /* -------------------------------------------------------------------------------------------------
40
- * TimeSlider
41
- * -----------------------------------------------------------------------------------------------*/
42
-
43
- const TimeSliderBridge = createReactComponent(TimeSliderInstance, {
44
- events: sliderCallbacks,
45
- domEventsRegex: /^onMedia/,
46
- });
47
-
48
- export interface RootProps extends ReactElementProps<TimeSliderInstance> {
49
- asChild?: boolean;
50
- children?: React.ReactNode;
51
- ref?: React.Ref<TimeSliderInstance>;
52
- }
53
-
54
- /**
55
- * Versatile and user-friendly input time control designed for seamless cross-browser and provider
56
- * compatibility and accessibility with ARIA support. It offers a smooth user experience for both
57
- * mouse and touch interactions and is highly customizable in terms of styling. Users can
58
- * effortlessly change the current playback time within the range 0 to seekable end.
59
- *
60
- * @docs {@link https://www.vidstack.io/docs/player/components/sliders/time-slider}
61
- * @example
62
- * ```tsx
63
- * <TimeSlider.Root>
64
- * <TimeSlider.Track>
65
- * <TimeSlider.TrackFill />
66
- * <TimeSlider.Progress />
67
- * </TimeSlider.Track>
68
- * <TimeSlider.Thumb />
69
- * </TimeSlider.Root>
70
- * ```
71
- */
72
- const Root = React.forwardRef<TimeSliderInstance, RootProps>(
73
- ({ children, ...props }, forwardRef) => {
74
- const $chapters = React.useMemo(() => signal<SliderChaptersInstance | null>(null), []);
75
- return (
76
- <TimeSliderContext.Provider value={{ $chapters }}>
77
- <TimeSliderBridge {...props} ref={forwardRef}>
78
- {(props) => <Primitive.div {...props}>{children}</Primitive.div>}
79
- </TimeSliderBridge>
80
- </TimeSliderContext.Provider>
81
- );
82
- },
83
- );
84
-
85
- Root.displayName = 'TimeSlider';
86
-
87
- /* -------------------------------------------------------------------------------------------------
88
- * SliderChapters
89
- * -----------------------------------------------------------------------------------------------*/
90
-
91
- const SliderChaptersBridge = createReactComponent(SliderChaptersInstance);
92
-
93
- export interface ChaptersProps extends Omit<ReactElementProps<SliderChaptersInstance>, 'children'> {
94
- children: (cues: VTTCue[], forwardRef: React.RefCallback<HTMLElement>) => React.ReactNode;
95
- }
96
-
97
- /**
98
- * Used to create predefined sections within a time slider interface based on the currently
99
- * active chapters text track.
100
- *
101
- * @docs {@link https://www.vidstack.io/docs/player/components/slider-chapters}
102
- * @example
103
- * ```tsx
104
- * <TimeSlider.Root>
105
- * <TimeSlider.Chapters>
106
- * {(cues, forwardRef) =>
107
- * cues.map((cue) => (
108
- * <div key={cue.startTime} ref={forwardRef}>
109
- * <TimeSlider.Track>
110
- * <TimeSlider.TrackFill />
111
- * <TimeSlider.Progress />
112
- * </TimeSlider.Track>
113
- * </div>
114
- * ))}
115
- * </TimeSlider.Chapters>
116
- * </TimeSlider.Root>
117
- * ```
118
- */
119
- const Chapters = React.forwardRef<HTMLDivElement, ChaptersProps>(
120
- ({ children, ...props }, forwardRef) => {
121
- return (
122
- <SliderChaptersBridge {...props}>
123
- {(props, instance) => (
124
- <Primitive.div
125
- {...props}
126
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
127
- >
128
- <ChapterTracks instance={instance}>{children}</ChapterTracks>
129
- </Primitive.div>
130
- )}
131
- </SliderChaptersBridge>
132
- );
133
- },
134
- );
135
-
136
- Chapters.displayName = 'SliderChapters';
137
-
138
- interface ChapterTracksProps {
139
- instance: SliderChaptersInstance;
140
- children: ChaptersProps['children'];
141
- }
142
-
143
- function ChapterTracks({ instance, children }: ChapterTracksProps) {
144
- const $cues = useSignal(() => instance.cues, instance),
145
- refs = React.useRef<HTMLElement[]>([]),
146
- emptyCue = React.useRef<VTTCue>(null!),
147
- { $chapters } = React.useContext(TimeSliderContext);
148
-
149
- if (!emptyCue.current) {
150
- emptyCue.current = createVTTCue();
151
- }
152
-
153
- React.useEffect(() => {
154
- $chapters.set(instance);
155
- return () => void $chapters.set(null);
156
- }, [instance]);
157
-
158
- React.useEffect(() => {
159
- instance.setRefs(refs.current);
160
- }, [$cues]);
161
-
162
- return children($cues.length ? $cues : [emptyCue.current], (el) => {
163
- if (!el) {
164
- refs.current.length = 0;
165
- return;
166
- }
167
-
168
- refs.current.push(el);
169
- });
170
- }
171
-
172
- ChapterTracks.displayName = 'SliderChapterTracks';
173
-
174
- /* -------------------------------------------------------------------------------------------------
175
- * SliderChapterTitle
176
- * -----------------------------------------------------------------------------------------------*/
177
-
178
- export interface ChapterTitleProps extends PrimitivePropsWithRef<'div'> {}
179
-
180
- /**
181
- * Used to display the active cue text based on the slider value and preview value.
182
- *
183
- * @example
184
- * ```tsx
185
- * <TimeSlider.Root>
186
- * <TimeSlider.Preview>
187
- * <TimeSlider.Chapter />
188
- * </TimeSlider.Preview>
189
- * </TimeSlider.Root>
190
- * ```
191
- */
192
- const ChapterTitle = React.forwardRef<HTMLElement, ChapterTitleProps>(
193
- ({ children, ...props }, forwardRef) => {
194
- const { $chapters } = React.useContext(TimeSliderContext)!,
195
- [title, setTitle] = React.useState<string>();
196
-
197
- React.useEffect(() => {
198
- return effect(() => {
199
- const chapters = $chapters(),
200
- cue = chapters?.activePointerCue || chapters?.activeCue;
201
- setTitle(cue?.text || '');
202
- });
203
- }, []);
204
-
205
- return (
206
- <Primitive.div {...props} ref={forwardRef as React.Ref<any>}>
207
- {title}
208
- {children}
209
- </Primitive.div>
210
- );
211
- },
212
- );
213
-
214
- ChapterTitle.displayName = 'SliderChapterTitle';
215
-
216
- /* -------------------------------------------------------------------------------------------------
217
- * SliderProgress
218
- * -----------------------------------------------------------------------------------------------*/
219
-
220
- export interface ProgressProps extends PrimitivePropsWithRef<'div'> {}
221
-
222
- /**
223
- * Visual element inside the slider that serves as a horizontal or vertical bar, providing a
224
- * visual reference for the range of playback that has buffered/loaded.
225
- *
226
- * @example
227
- * ```tsx
228
- * <TimeSlider.Root>
229
- * <TimeSlider.Track>
230
- * <TimeSlider.Progress />
231
- * </TimeSlider.Track>
232
- * </TimeSlider.Root>
233
- * ```
234
- */
235
- const Progress = React.forwardRef<HTMLElement, ProgressProps>((props, forwardRef) => (
236
- <Primitive.div {...props} ref={forwardRef as React.Ref<any>} />
237
- ));
238
-
239
- Progress.displayName = 'SliderProgress';
240
-
241
- /* -------------------------------------------------------------------------------------------------
242
- * SliderThumbnail
243
- * -----------------------------------------------------------------------------------------------*/
244
-
245
- const SliderThumbnailBridge = createReactComponent(SliderThumbnailInstance);
246
-
247
- export interface ThumbnailProps extends ReactElementProps<SliderThumbnailInstance, HTMLElement> {
248
- asChild?: boolean;
249
- children?: React.ReactNode;
250
- ref?: React.Ref<HTMLElement>;
251
- }
252
-
253
- export type ThumbnailImgProps = ThumbnailBase.ImgProps;
254
-
255
- /**
256
- * Used to display preview thumbnails when the user is hovering or dragging the time slider.
257
- * The time ranges in the WebVTT file will automatically be matched based on the current slider
258
- * pointer position.
259
- *
260
- * @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-thumbnail}
261
- *
262
- * @example
263
- * ```tsx
264
- * <TimeSlider.Root>
265
- * <TimeSlider.Preview>
266
- * <TimeSlider.Thumbnail.Root src="thumbnails.vtt">
267
- * <TimeSlider.Thumbnail.Img />
268
- * </TimeSlider.Thumbnail.Root>
269
- * </TimeSlider.Preview>
270
- * </TimeSlider.Root>
271
- * ```
272
- */
273
- const ThumbnailRoot = React.forwardRef<HTMLElement, ThumbnailProps>(
274
- ({ children, ...props }, forwardRef) => {
275
- return (
276
- <SliderThumbnailBridge {...(props as Omit<ThumbnailProps, 'ref'>)}>
277
- {(props) => (
278
- <Primitive.div {...props} ref={composeRefs(props.ref as React.Ref<any>, forwardRef)}>
279
- {children}
280
- </Primitive.div>
281
- )}
282
- </SliderThumbnailBridge>
283
- );
284
- },
285
- );
286
-
287
- ThumbnailRoot.displayName = 'SliderThumbnail';
288
-
289
- const Thumbnail = {
290
- Root: ThumbnailRoot,
291
- Img: ThumbnailBase.Img,
292
- } as const;
293
-
294
- /* -------------------------------------------------------------------------------------------------
295
- * SliderVideo
296
- * -----------------------------------------------------------------------------------------------*/
297
-
298
- const VideoBridge = createReactComponent(SliderVideoInstance, {
299
- events: ['onCanPlay', 'onError'],
300
- });
301
-
302
- export interface VideoProps extends ReactElementProps<SliderVideoInstance, HTMLVideoElement> {
303
- asChild?: boolean;
304
- children?: React.ReactNode;
305
- ref?: React.Ref<HTMLVideoElement>;
306
- }
307
-
308
- /**
309
- * Used to load a low-resolution video to be displayed when the user is hovering over or dragging
310
- * the time slider. The preview video will automatically be updated to be in-sync with the current
311
- * preview position, so ensure it has the same length as the original media (i.e., same duration).
312
- *
313
- * @docs {@link https://www.vidstack.io/docs/player/components/sliders/slider-video}
314
- * @example
315
- * ```tsx
316
- * <TimeSlider.Root>
317
- * <TimeSlider.Preview>
318
- * <TimeSlider.Video src="preview.mp4" />
319
- * </TimeSlider.Preview>
320
- * </TimeSlider.Root>
321
- * ```
322
- */
323
- const Video = React.forwardRef<HTMLVideoElement, VideoProps>(
324
- ({ children, ...props }, forwardRef) => {
325
- return (
326
- <VideoBridge {...(props as Omit<VideoProps, 'ref'>)}>
327
- {(props, instance) => (
328
- <VideoProvider
329
- {...props}
330
- instance={instance}
331
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef)}
332
- >
333
- {children}
334
- </VideoProvider>
335
- )}
336
- </VideoBridge>
337
- );
338
- },
339
- );
340
-
341
- Video.displayName = 'SliderVideo';
342
-
343
- /* -------------------------------------------------------------------------------------------------
344
- * SliderVideoProvider
345
- * -----------------------------------------------------------------------------------------------*/
346
-
347
- export interface VideoProviderProps {
348
- instance: SliderVideoInstance;
349
- children?: React.ReactNode;
350
- }
351
-
352
- const VideoProvider = React.forwardRef<HTMLVideoElement, VideoProviderProps>(
353
- ({ instance, children, ...props }, forwardRef) => {
354
- const { canLoad } = useStateContext(mediaState),
355
- { src, video, crossOrigin } = instance.$state,
356
- $src = useSignal(src),
357
- $canLoad = useSignal(canLoad),
358
- $crossOrigin = useSignal(crossOrigin);
359
- return (
360
- <Primitive.video
361
- style={{ maxWidth: 'unset' }}
362
- {...props}
363
- src={$src || undefined}
364
- muted
365
- playsInline
366
- preload={$canLoad ? 'auto' : 'none'}
367
- crossOrigin={$crossOrigin || undefined}
368
- ref={composeRefs(video.set as any, forwardRef)}
369
- >
370
- {children}
371
- </Primitive.video>
372
- );
373
- },
374
- );
375
-
376
- VideoProvider.displayName = 'SliderVideoProvider';
377
-
378
- export * from './slider';
379
- export { Root, Progress, Thumbnail, Video, Chapters, ChapterTitle };
@@ -1,55 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { VolumeSliderInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
- import { Value } from './slider';
8
- import { sliderCallbacks } from './slider-callbacks';
9
-
10
- /* -------------------------------------------------------------------------------------------------
11
- * VolumeSlider
12
- * -----------------------------------------------------------------------------------------------*/
13
-
14
- const VolumeSliderBridge = createReactComponent(VolumeSliderInstance, {
15
- events: sliderCallbacks,
16
- domEventsRegex: /^onMedia/,
17
- });
18
-
19
- export interface RootProps extends ReactElementProps<VolumeSliderInstance> {
20
- asChild?: boolean;
21
- children?: React.ReactNode;
22
- ref?: React.Ref<VolumeSliderInstance>;
23
- }
24
-
25
- /**
26
- * Versatile and user-friendly input volume control designed for seamless cross-browser and provider
27
- * compatibility and accessibility with ARIA support. It offers a smooth user experience for both
28
- * mouse and touch interactions and is highly customizable in terms of styling. Users can
29
- * effortlessly change the volume level within the range 0 (muted) to 100.
30
- *
31
- * @docs {@link https://www.vidstack.io/docs/player/components/sliders/volume-slider}
32
- * @example
33
- * ```tsx
34
- * <VolumeSlider.Root>
35
- * <VolumeSlider.Track>
36
- * <VolumeSlider.TrackFill />
37
- * </VolumeSlider.Track>
38
- * <VolumeSlider.Thumb />
39
- * </VolumeSlider.Root>
40
- * ```
41
- */
42
- const Root = React.forwardRef<VolumeSliderInstance, RootProps>(
43
- ({ children, ...props }, forwardRef) => {
44
- return (
45
- <VolumeSliderBridge {...props} ref={forwardRef}>
46
- {(props) => <Primitive.div {...props}>{children}</Primitive.div>}
47
- </VolumeSliderBridge>
48
- );
49
- },
50
- );
51
-
52
- Root.displayName = 'VolumeSlider';
53
-
54
- export * from './slider';
55
- export { Root, Value };
@@ -1,105 +0,0 @@
1
- import * as React from 'react';
2
-
3
- /* -------------------------------------------------------------------------------------------------
4
- * Spinner
5
- * -----------------------------------------------------------------------------------------------*/
6
-
7
- export interface RootProps
8
- extends React.PropsWithoutRef<React.SVGProps<SVGSVGElement>>,
9
- React.RefAttributes<SVGElement | SVGSVGElement> {
10
- /**
11
- * The horizontal (width) and vertical (height) length of the spinner.
12
- *
13
- * @defaultValue 96
14
- */
15
- size?: number;
16
- }
17
-
18
- /**
19
- * @docs {@link https://www.vidstack.io/docs/player/components/display/buffering-indicator}
20
- * @example
21
- * ```html
22
- * <Spinner.Root>
23
- * <Spinner.Track />
24
- * <Spinner.TrackFill />
25
- * </Spinner>
26
- * ```
27
- */
28
- const Root = React.forwardRef<SVGElement | SVGSVGElement, RootProps>(
29
- ({ size = 96, children, ...props }: RootProps, forwardRef) => {
30
- return (
31
- <svg
32
- width={size}
33
- height={size}
34
- fill="none"
35
- viewBox="0 0 120 120"
36
- aria-hidden="true"
37
- data-part="root"
38
- {...props}
39
- ref={forwardRef as React.Ref<any>}
40
- >
41
- {children}
42
- </svg>
43
- );
44
- },
45
- );
46
-
47
- /* -------------------------------------------------------------------------------------------------
48
- * Track
49
- * -----------------------------------------------------------------------------------------------*/
50
-
51
- export interface TrackProps
52
- extends React.PropsWithoutRef<React.SVGProps<SVGCircleElement>>,
53
- React.RefAttributes<SVGCircleElement> {}
54
-
55
- const Track = React.forwardRef<SVGCircleElement, TrackProps>(
56
- ({ width = 8, children, ...props }, ref) => (
57
- <circle
58
- cx="60"
59
- cy="60"
60
- r="54"
61
- stroke="currentColor"
62
- strokeWidth={width}
63
- data-part="track"
64
- {...props}
65
- ref={ref}
66
- >
67
- {children}
68
- </circle>
69
- ),
70
- );
71
-
72
- /* -------------------------------------------------------------------------------------------------
73
- * TrackFill
74
- * -----------------------------------------------------------------------------------------------*/
75
-
76
- export interface TrackFillProps
77
- extends React.PropsWithoutRef<React.SVGProps<SVGCircleElement>>,
78
- React.RefAttributes<SVGCircleElement> {
79
- /**
80
- * The percentage of the track that should be filled.
81
- */
82
- fillPercent?: number;
83
- }
84
-
85
- const TrackFill = React.forwardRef<SVGCircleElement, TrackFillProps>(
86
- ({ width = 8, fillPercent = 50, children, ...props }, ref) => (
87
- <circle
88
- cx="60"
89
- cy="60"
90
- r="54"
91
- stroke="currentColor"
92
- pathLength="100"
93
- strokeWidth={width}
94
- strokeDasharray={100}
95
- strokeDashoffset={100 - fillPercent}
96
- data-part="track-fill"
97
- {...props}
98
- ref={ref}
99
- >
100
- {children}
101
- </circle>
102
- ),
103
- );
104
-
105
- export { Root, Track, TrackFill };
@@ -1,82 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import type { WriteSignal } from 'maverick.js';
4
- import {
5
- composeRefs,
6
- createReactComponent,
7
- useSignal,
8
- useStateContext,
9
- type ReactElementProps,
10
- } from 'maverick.js/react';
11
- import { mediaState } from 'vidstack';
12
-
13
- import { ThumbnailInstance } from '../primitives/instances';
14
- import { Primitive, type PrimitivePropsWithRef } from '../primitives/nodes';
15
-
16
- /* -------------------------------------------------------------------------------------------------
17
- * Thumbnail
18
- * -----------------------------------------------------------------------------------------------*/
19
-
20
- const ThumbnailBridge = createReactComponent(ThumbnailInstance);
21
-
22
- export interface RootProps extends ReactElementProps<ThumbnailInstance, HTMLElement> {
23
- asChild?: boolean;
24
- children?: React.ReactNode;
25
- ref?: React.Ref<HTMLElement>;
26
- }
27
-
28
- /**
29
- * Used to load and display a preview thumbnail at the given `time`.
30
- *
31
- * @docs {@link https://www.vidstack.io/docs/player/components/display/thumbnail}
32
- * @example
33
- * ```tsx
34
- * <Thumbnail.Root src="thumbnails.vtt" time={10} >
35
- * <Thumbnail.Img />
36
- * </Thumbnail.Root>
37
- * ```
38
- */
39
- const Root = React.forwardRef<HTMLElement, RootProps>(({ children, ...props }, forwardRef) => {
40
- return (
41
- <ThumbnailBridge {...(props as Omit<RootProps, 'ref'>)}>
42
- {(props) => (
43
- <Primitive.div
44
- {...props}
45
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
46
- >
47
- {children}
48
- </Primitive.div>
49
- )}
50
- </ThumbnailBridge>
51
- );
52
- });
53
-
54
- Root.displayName = 'Thumbnail';
55
-
56
- /* -------------------------------------------------------------------------------------------------
57
- * ThumbnailImg
58
- * -----------------------------------------------------------------------------------------------*/
59
-
60
- export interface ImgProps extends PrimitivePropsWithRef<'img'> {
61
- children?: React.ReactNode;
62
- }
63
-
64
- const Img = React.forwardRef<HTMLImageElement, ImgProps>(({ children, ...props }, forwardRef) => {
65
- const { src, img, crossOrigin } = useStateContext(ThumbnailInstance.state),
66
- $src = useSignal(src),
67
- $crossOrigin = useSignal(crossOrigin);
68
- return (
69
- <Primitive.img
70
- crossOrigin={$crossOrigin as '' | undefined}
71
- {...props}
72
- src={$src || undefined}
73
- ref={composeRefs((img as any).set, forwardRef)}
74
- >
75
- {children}
76
- </Primitive.img>
77
- );
78
- });
79
-
80
- Img.displayName = 'ThumbnailImg';
81
-
82
- export { Root, Img };
@@ -1,77 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import {
4
- composeRefs,
5
- createReactComponent,
6
- useSignal,
7
- type ReactElementProps,
8
- } from 'maverick.js/react';
9
-
10
- import { TimeInstance } from '../primitives/instances';
11
- import { Primitive } from '../primitives/nodes';
12
-
13
- /* -------------------------------------------------------------------------------------------------
14
- * Time
15
- * -----------------------------------------------------------------------------------------------*/
16
-
17
- const TimeBridge = createReactComponent(TimeInstance);
18
-
19
- export interface TimeProps extends ReactElementProps<TimeInstance> {
20
- asChild?: boolean;
21
- children?: React.ReactNode;
22
- ref?: React.Ref<HTMLElement>;
23
- }
24
-
25
- /**
26
- * Outputs a media duration (eg: `currentTime`, `duration`, `bufferedAmount`, etc.) value as time
27
- * formatted text.
28
- *
29
- * @docs {@link https://www.vidstack.io/docs/player/components/display/time}
30
- * @example
31
- * ```tsx
32
- * <Time type="current" />
33
- * ```
34
- */
35
- const Time = React.forwardRef<HTMLElement, TimeProps>(({ children, ...props }, forwardRef) => {
36
- return (
37
- <TimeBridge {...(props as Omit<TimeProps, 'ref'>)}>
38
- {(props, instance) => (
39
- <TimeText
40
- {...props}
41
- instance={instance}
42
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
43
- >
44
- {children}
45
- </TimeText>
46
- )}
47
- </TimeBridge>
48
- );
49
- });
50
-
51
- Time.displayName = 'Time';
52
- export { Time };
53
-
54
- /* -------------------------------------------------------------------------------------------------
55
- * TimeText
56
- * -----------------------------------------------------------------------------------------------*/
57
-
58
- interface TimeTextProps extends Record<string, any> {
59
- instance: TimeInstance;
60
- children?: React.ReactNode;
61
- ref?: React.Ref<HTMLElement>;
62
- }
63
-
64
- const TimeText = React.forwardRef<HTMLElement, TimeTextProps>(
65
- ({ instance, children, ...props }, forwardRef) => {
66
- const { timeText } = instance.$state,
67
- $timeText = useSignal(timeText);
68
- return (
69
- <Primitive.div {...props} ref={forwardRef as React.Ref<any>}>
70
- {$timeText}
71
- {children}
72
- </Primitive.div>
73
- );
74
- },
75
- );
76
-
77
- TimeText.displayName = 'TimeText';