@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,187 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import {
4
- createReactComponent,
5
- useSignal,
6
- useStateContext,
7
- type ReactElementProps,
8
- } from 'maverick.js/react';
9
- import { isString } from 'maverick.js/std';
10
- import { mediaState, type MediaProviderLoader } from 'vidstack';
11
-
12
- import { useMediaContext } from '../hooks/use-media-context';
13
- import { Icon } from '../icon';
14
- import { isRemotionProvider } from '../providers/remotion/type-check';
15
- import { MediaProviderInstance } from './primitives/instances';
16
-
17
- /* -------------------------------------------------------------------------------------------------
18
- * MediaProvider
19
- * -----------------------------------------------------------------------------------------------*/
20
-
21
- const MediaProviderBridge = createReactComponent(MediaProviderInstance);
22
-
23
- export interface MediaProviderProps
24
- extends Omit<ReactElementProps<MediaProviderInstance>, 'loaders'> {
25
- loaders?: Array<{ new (): MediaProviderLoader }>;
26
- iframeProps?: React.IframeHTMLAttributes<HTMLIFrameElement>;
27
- mediaProps?: React.HTMLAttributes<HTMLMediaElement>;
28
- children?: React.ReactNode;
29
- ref?: React.Ref<MediaProviderInstance>;
30
- }
31
-
32
- /**
33
- * Renders the current provider at this component location.
34
- *
35
- * @docs {@link https://www.vidstack.io/docs/player/components/media/provider}
36
- * @example
37
- * ```tsx
38
- * <MediaPlayer src="...">
39
- * <MediaProvider />
40
- * </MediaPlayer>
41
- * ```
42
- */
43
- const MediaProvider = React.forwardRef<MediaProviderInstance, MediaProviderProps>(
44
- ({ loaders = [], children, iframeProps, mediaProps, ...props }, forwardRef) => {
45
- const reactLoaders = React.useMemo(() => loaders.map((Loader) => new Loader()), loaders);
46
-
47
- return (
48
- <MediaProviderBridge {...props} loaders={reactLoaders} ref={forwardRef}>
49
- {(props, instance) => (
50
- <div {...props}>
51
- <MediaOutlet provider={instance} mediaProps={mediaProps} iframeProps={iframeProps} />
52
- {children}
53
- </div>
54
- )}
55
- </MediaProviderBridge>
56
- );
57
- },
58
- );
59
-
60
- MediaProvider.displayName = 'MediaProvider';
61
- export { MediaProvider };
62
-
63
- /* -------------------------------------------------------------------------------------------------
64
- * MediaOutlet
65
- * -----------------------------------------------------------------------------------------------*/
66
-
67
- interface MediaOutletProps {
68
- provider: MediaProviderInstance;
69
- mediaProps?: React.HTMLAttributes<HTMLMediaElement>;
70
- iframeProps?: React.IframeHTMLAttributes<HTMLIFrameElement>;
71
- }
72
-
73
- function MediaOutlet({ provider, mediaProps, iframeProps }: MediaOutletProps) {
74
- const { sources, crossOrigin, poster, remotePlaybackInfo, nativeControls, viewType } =
75
- useStateContext(mediaState),
76
- { loader } = provider.$state,
77
- { $provider: $$provider, $providerSetup: $$providerSetup } = useMediaContext(),
78
- $sources = useSignal(sources),
79
- $nativeControls = useSignal(nativeControls),
80
- $crossOrigin = useSignal(crossOrigin),
81
- $poster = useSignal(poster),
82
- $loader = useSignal(loader),
83
- $provider = useSignal($$provider),
84
- $providerSetup = useSignal($$providerSetup),
85
- $remoteInfo = useSignal(remotePlaybackInfo),
86
- $mediaType = $loader?.mediaType(),
87
- $viewType = useSignal(viewType),
88
- isAudioView = $viewType === 'audio',
89
- isYouTubeEmbed = $loader?.name === 'youtube',
90
- isVimeoEmbed = $loader?.name === 'vimeo',
91
- isEmbed = isYouTubeEmbed || isVimeoEmbed,
92
- isRemotion = $loader?.name === 'remotion',
93
- isGoogleCast = $loader?.name === 'google-cast',
94
- [googleCastIconPaths, setGoogleCastIconPaths] = React.useState(''),
95
- [hasMounted, setHasMounted] = React.useState(false);
96
-
97
- React.useEffect(() => {
98
- if (!isGoogleCast || googleCastIconPaths) return;
99
- import('media-icons/dist/icons/chromecast.js').then((mod) => {
100
- setGoogleCastIconPaths(mod.default);
101
- });
102
- }, [isGoogleCast]);
103
-
104
- React.useLayoutEffect(() => {
105
- setHasMounted(true);
106
- }, []);
107
-
108
- if (isGoogleCast) {
109
- return (
110
- <div
111
- className="vds-google-cast"
112
- ref={(el) => {
113
- provider.load(el);
114
- }}
115
- >
116
- <Icon paths={googleCastIconPaths} />
117
- {$remoteInfo?.deviceName ? (
118
- <span className="vds-google-cast-info">
119
- Google Cast on{' '}
120
- <span className="vds-google-cast-device-name">{$remoteInfo.deviceName}</span>
121
- </span>
122
- ) : null}
123
- </div>
124
- );
125
- }
126
-
127
- if (isRemotion) {
128
- return (
129
- <div data-remotion-canvas>
130
- <div
131
- data-remotion-container
132
- ref={(el) => {
133
- provider.load(el);
134
- }}
135
- >
136
- {isRemotionProvider($provider) && $providerSetup
137
- ? React.createElement($provider.render)
138
- : null}
139
- </div>
140
- </div>
141
- );
142
- }
143
-
144
- return isEmbed
145
- ? React.createElement(
146
- React.Fragment,
147
- null,
148
- React.createElement('iframe', {
149
- ...iframeProps,
150
- className:
151
- (iframeProps?.className ? `${iframeProps.className} ` : '') + isYouTubeEmbed
152
- ? 'vds-youtube'
153
- : 'vds-vimeo',
154
- suppressHydrationWarning: true,
155
- tabIndex: !$nativeControls ? -1 : undefined,
156
- 'aria-hidden': 'true',
157
- 'data-no-controls': !$nativeControls ? '' : undefined,
158
- ref(el: HTMLElement) {
159
- provider.load(el);
160
- },
161
- }),
162
- !$nativeControls && !isAudioView
163
- ? React.createElement('div', { className: 'vds-blocker' })
164
- : null,
165
- )
166
- : $mediaType
167
- ? React.createElement($mediaType === 'audio' ? 'audio' : 'video', {
168
- ...mediaProps,
169
- controls: $nativeControls ? true : null,
170
- crossOrigin: typeof $crossOrigin === 'boolean' ? '' : $crossOrigin,
171
- poster: $mediaType === 'video' && $nativeControls && $poster ? $poster : null,
172
- suppressHydrationWarning: true,
173
- children: !hasMounted
174
- ? $sources.map(({ src, type }) =>
175
- isString(src) ? (
176
- <source src={src} type={type !== '?' ? type : undefined} key={src} />
177
- ) : null,
178
- )
179
- : null,
180
- ref(el: HTMLMediaElement) {
181
- provider.load(el);
182
- },
183
- })
184
- : null;
185
- }
186
-
187
- MediaOutlet.displayName = 'MediaOutlet';
@@ -1,106 +0,0 @@
1
- import type { CaptionsFileFormat, CaptionsParserFactory } from 'media-captions';
2
- import type { VTTContent } from 'vidstack';
3
-
4
- import { createTextTrack } from '../hooks/create-text-track';
5
-
6
- /**
7
- * Creates a new `TextTrack` object and adds it to the player.
8
- *
9
- * @see {@link https://www.vidstack.io/docs/player/api/text-tracks}
10
- * @example
11
- * ```tsx
12
- * <MediaPlayer>
13
- * <MediaProvider>
14
- * <Track
15
- * src="english.vtt"
16
- * kind="subtitles"
17
- * label="English"
18
- * lang="en-US"
19
- * default
20
- * />
21
- * </MediaProvider>
22
- * </MediaPlayer>
23
- * ```
24
- */
25
- function Track({ lang, ...props }: TrackProps) {
26
- createTextTrack({ language: lang, ...props });
27
- return null;
28
- }
29
-
30
- export interface TrackProps {
31
- /**
32
- * A unique identifier.
33
- *
34
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TextTrack/id}
35
- */
36
- readonly id?: string;
37
- /**
38
- * URL of the text track resource. This attribute must be specified and its URL value must have
39
- * the same origin as the document — unless the <audio> or <video> parent element of the track
40
- * element has a `crossorigin` attribute.
41
- */
42
- readonly src?: string;
43
- /**
44
- * Used to directly pass in text track file contents.
45
- */
46
- readonly content?: string | VTTContent;
47
- /**
48
- * The captions file format to be parsed or a custom parser factory (functions that returns a
49
- * captions parser). Supported types include: 'vtt', 'srt', 'ssa', 'ass', and 'json'.
50
- *
51
- * @defaultValue 'vtt'
52
- */
53
- readonly type?: 'json' | CaptionsFileFormat | CaptionsParserFactory;
54
- /**
55
- * The text encoding type to be used when decoding data bytes to text.
56
- *
57
- * @defaultValue 'utf-8'
58
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Encoding_API/Encodings}
59
- *
60
- */
61
- readonly encoding?: string;
62
- /**
63
- * Indicates that the track should be enabled unless the user's preferences indicate that
64
- * another track is more appropriate. This may only be used on one track element per media
65
- * element.
66
- *
67
- * @defaultValue false
68
- */
69
- readonly default?: boolean;
70
- /**
71
- * The kind of text track this object represents. This decides how the track will be handled
72
- * by the player.
73
- *
74
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TextTrack/kind}
75
- */
76
- readonly kind: TextTrackKind;
77
- /**
78
- * A human-readable label for the text track. This will be displayed to the user.
79
- *
80
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TextTrack/label}
81
- */
82
- readonly label?: string;
83
- /**
84
- * A string containing a language identifier. For example, `"en-US"` for United States English
85
- * or `"pt-BR"` for Brazilian Portuguese.
86
- *
87
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TextTrack/language}
88
- * @see {@link https://datatracker.ietf.org/doc/html/rfc5646}
89
- */
90
- readonly language?: string;
91
- /**
92
- * A string containing a language identifier. For example, `"en-US"` for United States English
93
- * or `"pt-BR"` for Brazilian Portuguese. This is a short alias for `language`.
94
- *
95
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/TextTrack/language}
96
- * @see {@link https://datatracker.ietf.org/doc/html/rfc5646}
97
- */
98
- readonly lang?: TrackProps['language'];
99
- /**
100
- * React list key.
101
- */
102
- readonly key?: string;
103
- }
104
-
105
- Track.displayName = 'Track';
106
- export { Track };
@@ -1,53 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { AirPlayButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * AirPlayButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const AirPlayButtonBridge = createReactComponent(AirPlayButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface AirPlayButtonProps
17
- extends ReactElementProps<AirPlayButtonInstance, HTMLButtonElement> {
18
- asChild?: boolean;
19
- children?: React.ReactNode;
20
- ref?: React.Ref<HTMLButtonElement>;
21
- }
22
-
23
- /**
24
- * A button for requesting to connect to Apple AirPlay.
25
- *
26
- * @see {@link https://www.apple.com/au/airplay}
27
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/airplay-button}
28
- * @example
29
- * ```tsx
30
- * <AirPlayButton>
31
- * <AirPlayIcon />
32
- * </AirPlayButton>
33
- * ```
34
- */
35
- const AirPlayButton = React.forwardRef<HTMLButtonElement, AirPlayButtonProps>(
36
- ({ children, ...props }, forwardRef) => {
37
- return (
38
- <AirPlayButtonBridge {...(props as Omit<AirPlayButtonProps, 'ref'>)}>
39
- {(props) => (
40
- <Primitive.button
41
- {...props}
42
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
43
- >
44
- {children}
45
- </Primitive.button>
46
- )}
47
- </AirPlayButtonBridge>
48
- );
49
- },
50
- );
51
-
52
- AirPlayButton.displayName = 'AirPlayButton';
53
- export { AirPlayButton };
@@ -1,55 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { CaptionButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * CaptionButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const CaptionButtonBridge = createReactComponent(CaptionButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface CaptionButtonProps
17
- extends ReactElementProps<CaptionButtonInstance, HTMLButtonElement> {
18
- asChild?: boolean;
19
- children?: React.ReactNode;
20
- ref?: React.Ref<HTMLButtonElement>;
21
- }
22
-
23
- /**
24
- * A button for toggling the showing state of the captions.
25
- *
26
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/caption-button}
27
- * @example
28
- * ```tsx
29
- * const track = useMediaState('textTrack'),
30
- * isOn = track && isTrackCaptionKind(track);
31
- *
32
- * <CaptionButton>
33
- * {isOn ? <OnIcon /> : <OffIcon />}
34
- * </CaptionButton>
35
- * ```
36
- */
37
- const CaptionButton = React.forwardRef<HTMLButtonElement, CaptionButtonProps>(
38
- ({ children, ...props }, forwardRef) => {
39
- return (
40
- <CaptionButtonBridge {...(props as Omit<CaptionButtonProps, 'ref'>)}>
41
- {(props) => (
42
- <Primitive.button
43
- {...props}
44
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
45
- >
46
- {children}
47
- </Primitive.button>
48
- )}
49
- </CaptionButtonBridge>
50
- );
51
- },
52
- );
53
-
54
- CaptionButton.displayName = 'CaptionButton';
55
- export { CaptionButton };
@@ -1,55 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { FullscreenButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * FullscreenButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const FullscreenButtonBridge = createReactComponent(FullscreenButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface FullscreenButtonProps
17
- extends ReactElementProps<FullscreenButtonInstance, HTMLButtonElement> {
18
- asChild?: boolean;
19
- children?: React.ReactNode;
20
- ref?: React.Ref<HTMLButtonElement>;
21
- }
22
-
23
- /**
24
- * A button for toggling the fullscreen mode of the player.
25
- *
26
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/fullscreen-button}
27
- * @see {@link https://www.vidstack.io/docs/player/api/fullscreen}
28
- * @example
29
- * ```tsx
30
- * const isActive = useMediaState('fullscreen');
31
- *
32
- * <FullscreenButton>
33
- * {!isActive ? <EnterIcon /> : <ExitIcon />}
34
- * </FullscreenButton>
35
- * ```
36
- */
37
- const FullscreenButton = React.forwardRef<HTMLButtonElement, FullscreenButtonProps>(
38
- ({ children, ...props }, forwardRef) => {
39
- return (
40
- <FullscreenButtonBridge {...(props as Omit<FullscreenButtonProps, 'ref'>)}>
41
- {(props) => (
42
- <Primitive.button
43
- {...props}
44
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
45
- >
46
- {children}
47
- </Primitive.button>
48
- )}
49
- </FullscreenButtonBridge>
50
- );
51
- },
52
- );
53
-
54
- FullscreenButton.displayName = 'FullscreenButton';
55
- export { FullscreenButton };
@@ -1,53 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { GoogleCastButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * GoogleCastButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const GoogleCastButtonBridge = createReactComponent(GoogleCastButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface GoogleCastButtonProps
17
- extends ReactElementProps<GoogleCastButtonInstance, HTMLButtonElement> {
18
- asChild?: boolean;
19
- children?: React.ReactNode;
20
- ref?: React.Ref<HTMLButtonElement>;
21
- }
22
-
23
- /**
24
- * A button for requesting Google Cast.
25
- *
26
- * @see {@link https://developers.google.com/cast/docs/overview}
27
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/google-cast-button}
28
- * @example
29
- * ```tsx
30
- * <GoogleCastButton>
31
- * <ChromecastIcon />
32
- * </GoogleCastButton>
33
- * ```
34
- */
35
- const GoogleCastButton = React.forwardRef<HTMLButtonElement, GoogleCastButtonProps>(
36
- ({ children, ...props }, forwardRef) => {
37
- return (
38
- <GoogleCastButtonBridge {...(props as Omit<GoogleCastButtonProps, 'ref'>)}>
39
- {(props) => (
40
- <Primitive.button
41
- {...props}
42
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
43
- >
44
- {children}
45
- </Primitive.button>
46
- )}
47
- </GoogleCastButtonBridge>
48
- );
49
- },
50
- );
51
-
52
- GoogleCastButton.displayName = 'GoogleCastButton';
53
- export { GoogleCastButton };
@@ -1,56 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { LiveButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * LiveButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const LiveButtonBridge = createReactComponent(LiveButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface LiveButtonProps extends ReactElementProps<LiveButtonInstance, HTMLButtonElement> {
17
- asChild?: boolean;
18
- children?: React.ReactNode;
19
- ref?: React.Ref<HTMLButtonElement>;
20
- }
21
-
22
- /**
23
- * This component displays the current live status of the stream. This includes whether it's
24
- * live, at the live edge, or not live. In addition, this component is a button during live streams
25
- * and will skip ahead to the live edge when pressed.
26
- *
27
- * 🚨 This component will have `aria-hidden="true"` applied when the current stream is _not_
28
- * live.
29
- *
30
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/live-button}
31
- * @example
32
- * ```tsx
33
- * <LiveButton>
34
- * <LiveIcon />
35
- * </LiveButton>
36
- * ```
37
- */
38
- const LiveButton = React.forwardRef<HTMLButtonElement, LiveButtonProps>(
39
- ({ children, ...props }, forwardRef) => {
40
- return (
41
- <LiveButtonBridge {...(props as Omit<LiveButtonProps, 'ref'>)}>
42
- {(props) => (
43
- <Primitive.button
44
- {...props}
45
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
46
- >
47
- {children}
48
- </Primitive.button>
49
- )}
50
- </LiveButtonBridge>
51
- );
52
- },
53
- );
54
-
55
- LiveButton.displayName = 'LiveButton';
56
- export { LiveButton };
@@ -1,60 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { MuteButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * MuteButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const MuteButtonBridge = createReactComponent(MuteButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface MuteButtonProps extends ReactElementProps<MuteButtonInstance, HTMLButtonElement> {
17
- asChild?: boolean;
18
- children?: React.ReactNode;
19
- ref?: React.Ref<HTMLButtonElement>;
20
- }
21
-
22
- /**
23
- * A button for toggling the muted state of the player.
24
- *
25
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/mute-button}
26
- * @example
27
- * ```tsx
28
- * const volume = useMediaState('volume'),
29
- * isMuted = useMediaState('muted');
30
- *
31
- * <MuteButton>
32
- * {isMuted || volume == 0 ? (
33
- * <MuteIcon />
34
- * ) : volume < 0.5 ? (
35
- * <VolumeLowIcon />
36
- * ) : (
37
- * <VolumeHighIcon />
38
- * )}
39
- * </MuteButton>
40
- * ```
41
- */
42
- const MuteButton = React.forwardRef<HTMLButtonElement, MuteButtonProps>(
43
- ({ children, ...props }, forwardRef) => {
44
- return (
45
- <MuteButtonBridge {...(props as Omit<MuteButtonProps, 'ref'>)}>
46
- {(props) => (
47
- <Primitive.button
48
- {...props}
49
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
50
- >
51
- {children}
52
- </Primitive.button>
53
- )}
54
- </MuteButtonBridge>
55
- );
56
- },
57
- );
58
-
59
- MuteButton.displayName = 'MuteButton';
60
- export { MuteButton };
@@ -1,54 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { PIPButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * PIPButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const PIPButtonBridge = createReactComponent(PIPButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface PIPButtonProps extends ReactElementProps<PIPButtonInstance, HTMLButtonElement> {
17
- asChild?: boolean;
18
- children?: React.ReactNode;
19
- ref?: React.Ref<HTMLButtonElement>;
20
- }
21
-
22
- /**
23
- * A button for toggling the picture-in-picture (PIP) mode of the player.
24
- *
25
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/pip-button}
26
- * @see {@link https://www.vidstack.io/docs/player/api/picture-in-picture}
27
- * @example
28
- * ```tsx
29
- * const isActive = useMediaState('pictureInPicture');
30
- *
31
- * <PIPButton>
32
- * {!isActive ? <EnterIcon /> : <ExitIcon />}
33
- * </PIPButton>
34
- * ```
35
- */
36
- const PIPButton = React.forwardRef<HTMLButtonElement, PIPButtonProps>(
37
- ({ children, ...props }, forwardRef) => {
38
- return (
39
- <PIPButtonBridge {...(props as Omit<PIPButtonProps, 'ref'>)}>
40
- {(props) => (
41
- <Primitive.button
42
- {...props}
43
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
44
- >
45
- {children}
46
- </Primitive.button>
47
- )}
48
- </PIPButtonBridge>
49
- );
50
- },
51
- );
52
-
53
- PIPButton.displayName = 'PIPButton';
54
- export { PIPButton };