@hanifhan1f/vidstack-react 1.12.13 → 1.12.14

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 (389) 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/player/vidstack-default-components.js +14 -0
  21. package/dev/player/vidstack-default-icons.js +88 -0
  22. package/dev/player/vidstack-default-layout.js +14 -0
  23. package/dev/player/vidstack-plyr-icons.js +62 -0
  24. package/dev/player/vidstack-plyr-layout.js +636 -0
  25. package/dev/player/vidstack-remotion.js +345 -0
  26. package/dev/vidstack.js +587 -0
  27. package/dom.d.ts +91 -0
  28. package/google-cast.d.ts +1422 -0
  29. package/icons.d.ts +5 -0
  30. package/index.d.ts +8 -0
  31. package/package.json +9 -60
  32. package/player/layouts/default.d.ts +11392 -0
  33. package/player/layouts/plyr.d.ts +5 -0
  34. package/player/remotion.d.ts +5 -0
  35. package/player/styles/base.css +153 -0
  36. package/player/styles/default/buffering.css +55 -0
  37. package/player/styles/default/buttons.css +175 -0
  38. package/player/styles/default/captions.css +181 -0
  39. package/player/styles/default/chapter-title.css +26 -0
  40. package/player/styles/default/controls.css +56 -0
  41. package/player/styles/default/gestures.css +19 -0
  42. package/player/styles/default/icons.css +6 -0
  43. package/player/styles/default/keyboard.css +148 -0
  44. package/player/styles/default/layouts/audio.css +417 -0
  45. package/player/styles/default/layouts/video.css +1082 -0
  46. package/player/styles/default/menus.css +959 -0
  47. package/player/styles/default/poster.css +52 -0
  48. package/player/styles/default/sliders.css +391 -0
  49. package/player/styles/default/theme.css +2461 -0
  50. package/player/styles/default/thumbnail.css +40 -0
  51. package/player/styles/default/time.css +45 -0
  52. package/player/styles/default/tooltips.css +141 -0
  53. package/player/styles/plyr/theme.css +1237 -0
  54. package/prod/chunks/vidstack-0Foyib2F.js +34 -0
  55. package/prod/chunks/vidstack-BbPEqH3g.js +11196 -0
  56. package/prod/chunks/vidstack-Bh7M8kL6.js +663 -0
  57. package/prod/chunks/vidstack-BlPINAXN.js +189 -0
  58. package/prod/chunks/vidstack-C5Rzkyfp.js +375 -0
  59. package/prod/chunks/vidstack-CBF7iUqu.js +22 -0
  60. package/prod/chunks/vidstack-CZNlvfmV.js +288 -0
  61. package/prod/chunks/vidstack-CZgUA94N.js +1979 -0
  62. package/prod/chunks/vidstack-D0XCUWbp.js +159 -0
  63. package/prod/chunks/vidstack-DTyDOhwS.js +504 -0
  64. package/prod/chunks/vidstack-DhC5F6c8.js +470 -0
  65. package/prod/chunks/vidstack-Dm1xEU9Q.js +36 -0
  66. package/prod/chunks/vidstack-Ma9rwtR0.js +386 -0
  67. package/prod/chunks/vidstack-WsodkLQg.js +1371 -0
  68. package/prod/chunks/vidstack-jIPoNqhj.js +545 -0
  69. package/prod/chunks/vidstack-krOAtKMi.js +34 -0
  70. package/prod/chunks/vidstack-vqp2QaHR.js +9 -0
  71. package/prod/chunks/vidstack-xo_SmgiV.js +84 -0
  72. package/prod/chunks/vidstack-xvxeRtaN.js +61 -0
  73. package/prod/player/vidstack-default-components.js +14 -0
  74. package/prod/player/vidstack-default-icons.js +88 -0
  75. package/prod/player/vidstack-default-layout.js +14 -0
  76. package/prod/player/vidstack-plyr-icons.js +62 -0
  77. package/prod/player/vidstack-plyr-layout.js +636 -0
  78. package/prod/player/vidstack-remotion.js +335 -0
  79. package/prod/vidstack-icons.js +435 -0
  80. package/prod/vidstack.js +648 -0
  81. package/server/chunks/vidstack-2zMSe4ym.js +1371 -0
  82. package/server/chunks/vidstack-BtqWstSj.js +375 -0
  83. package/server/chunks/vidstack-C-HdFsZi.js +84 -0
  84. package/server/chunks/vidstack-C4iWXMC-.js +545 -0
  85. package/server/chunks/vidstack-C5zFBMwg.js +386 -0
  86. package/server/chunks/vidstack-CBF7iUqu.js +22 -0
  87. package/server/chunks/vidstack-CEh38XpD.js +288 -0
  88. package/server/chunks/vidstack-CkMAeO-e.js +34 -0
  89. package/server/chunks/vidstack-Cm0qnRvu.js +11196 -0
  90. package/server/chunks/vidstack-CoGzBr_V.js +663 -0
  91. package/server/chunks/vidstack-CyFwkPiu.js +470 -0
  92. package/server/chunks/vidstack-D-hQD1eE.js +9 -0
  93. package/server/chunks/vidstack-D_bWd66h.js +2023 -0
  94. package/server/chunks/vidstack-Dm1xEU9Q.js +36 -0
  95. package/server/chunks/vidstack-DtQSvsQr.js +189 -0
  96. package/server/chunks/vidstack-jlaBqZq5.js +61 -0
  97. package/server/chunks/vidstack-krOAtKMi.js +34 -0
  98. package/server/chunks/vidstack-rWs25cS9.js +159 -0
  99. package/server/chunks/vidstack-uyCXITen.js +504 -0
  100. package/server/player/vidstack-default-components.js +14 -0
  101. package/server/player/vidstack-default-icons.js +88 -0
  102. package/server/player/vidstack-default-layout.js +14 -0
  103. package/server/player/vidstack-plyr-icons.js +62 -0
  104. package/server/player/vidstack-plyr-layout.js +636 -0
  105. package/server/player/vidstack-remotion.js +335 -0
  106. package/server/vidstack.js +648 -0
  107. package/tailwind.cjs +101 -0
  108. package/tailwind.d.cts +15 -0
  109. package/.templates/sandbox/document.css +0 -27
  110. package/.templates/sandbox/favicon-32x32.png +0 -0
  111. package/.templates/sandbox/index.html +0 -21
  112. package/.templates/sandbox/main.tsx +0 -12
  113. package/.templates/sandbox/player.css +0 -39
  114. package/.templates/sandbox/player.tsx +0 -121
  115. package/.templates/sandbox/tracks.ts +0 -23
  116. package/analyze.config.ts +0 -7
  117. package/build/build-icons.js +0 -62
  118. package/rollup.config.ts +0 -256
  119. package/src/components/announcer.tsx +0 -47
  120. package/src/components/layouts/default/audio-layout.tsx +0 -231
  121. package/src/components/layouts/default/context.ts +0 -28
  122. package/src/components/layouts/default/hooks.ts +0 -13
  123. package/src/components/layouts/default/icons.tsx +0 -225
  124. package/src/components/layouts/default/index.ts +0 -11
  125. package/src/components/layouts/default/media-layout.tsx +0 -259
  126. package/src/components/layouts/default/slots.tsx +0 -98
  127. package/src/components/layouts/default/ui/announcer.tsx +0 -22
  128. package/src/components/layouts/default/ui/buttons.tsx +0 -301
  129. package/src/components/layouts/default/ui/captions.tsx +0 -16
  130. package/src/components/layouts/default/ui/controls.tsx +0 -12
  131. package/src/components/layouts/default/ui/keyboard-display.tsx +0 -132
  132. package/src/components/layouts/default/ui/menus/accessibility-menu.tsx +0 -100
  133. package/src/components/layouts/default/ui/menus/audio-menu.tsx +0 -167
  134. package/src/components/layouts/default/ui/menus/captions-menu.tsx +0 -61
  135. package/src/components/layouts/default/ui/menus/chapters-menu.tsx +0 -132
  136. package/src/components/layouts/default/ui/menus/font-menu.tsx +0 -331
  137. package/src/components/layouts/default/ui/menus/items/menu-checkbox.tsx +0 -72
  138. package/src/components/layouts/default/ui/menus/items/menu-items.tsx +0 -135
  139. package/src/components/layouts/default/ui/menus/items/menu-slider.tsx +0 -92
  140. package/src/components/layouts/default/ui/menus/playback-menu.tsx +0 -232
  141. package/src/components/layouts/default/ui/menus/settings-menu.tsx +0 -114
  142. package/src/components/layouts/default/ui/menus/utils.ts +0 -12
  143. package/src/components/layouts/default/ui/sliders.tsx +0 -136
  144. package/src/components/layouts/default/ui/time.tsx +0 -73
  145. package/src/components/layouts/default/ui/title.tsx +0 -24
  146. package/src/components/layouts/default/ui/tooltip.tsx +0 -27
  147. package/src/components/layouts/default/ui.ts +0 -8
  148. package/src/components/layouts/default/video-layout.tsx +0 -344
  149. package/src/components/layouts/plyr/context.ts +0 -26
  150. package/src/components/layouts/plyr/icons/plyr-airplay.js +0 -1
  151. package/src/components/layouts/plyr/icons/plyr-captions-off.js +0 -1
  152. package/src/components/layouts/plyr/icons/plyr-captions-on.js +0 -1
  153. package/src/components/layouts/plyr/icons/plyr-download.js +0 -1
  154. package/src/components/layouts/plyr/icons/plyr-enter-fullscreen.js +0 -1
  155. package/src/components/layouts/plyr/icons/plyr-exit-fullscreen.js +0 -1
  156. package/src/components/layouts/plyr/icons/plyr-fast-forward.js +0 -1
  157. package/src/components/layouts/plyr/icons/plyr-muted.js +0 -1
  158. package/src/components/layouts/plyr/icons/plyr-pause.js +0 -1
  159. package/src/components/layouts/plyr/icons/plyr-pip.js +0 -1
  160. package/src/components/layouts/plyr/icons/plyr-play.js +0 -1
  161. package/src/components/layouts/plyr/icons/plyr-restart.js +0 -1
  162. package/src/components/layouts/plyr/icons/plyr-rewind.js +0 -1
  163. package/src/components/layouts/plyr/icons/plyr-settings.js +0 -1
  164. package/src/components/layouts/plyr/icons/plyr-volume.js +0 -1
  165. package/src/components/layouts/plyr/icons.tsx +0 -71
  166. package/src/components/layouts/plyr/index.ts +0 -11
  167. package/src/components/layouts/plyr/layout.tsx +0 -1024
  168. package/src/components/layouts/plyr/props.ts +0 -104
  169. package/src/components/layouts/plyr/slots.tsx +0 -52
  170. package/src/components/layouts/remotion-ui.ts +0 -13
  171. package/src/components/layouts/utils.ts +0 -17
  172. package/src/components/player-callbacks.ts +0 -67
  173. package/src/components/player.tsx +0 -67
  174. package/src/components/primitives/instances.ts +0 -92
  175. package/src/components/primitives/nodes.tsx +0 -58
  176. package/src/components/primitives/slot.tsx +0 -132
  177. package/src/components/provider.tsx +0 -187
  178. package/src/components/text-track.tsx +0 -106
  179. package/src/components/ui/buttons/airplay-button.tsx +0 -53
  180. package/src/components/ui/buttons/caption-button.tsx +0 -55
  181. package/src/components/ui/buttons/fullscreen-button.tsx +0 -55
  182. package/src/components/ui/buttons/google-cast-button.tsx +0 -53
  183. package/src/components/ui/buttons/live-button.tsx +0 -56
  184. package/src/components/ui/buttons/mute-button.tsx +0 -60
  185. package/src/components/ui/buttons/pip-button.tsx +0 -54
  186. package/src/components/ui/buttons/play-button.tsx +0 -53
  187. package/src/components/ui/buttons/seek-button.tsx +0 -55
  188. package/src/components/ui/buttons/toggle-button.tsx +0 -51
  189. package/src/components/ui/caption.tsx +0 -70
  190. package/src/components/ui/captions.tsx +0 -41
  191. package/src/components/ui/chapter-title.tsx +0 -40
  192. package/src/components/ui/controls.tsx +0 -90
  193. package/src/components/ui/gesture.tsx +0 -43
  194. package/src/components/ui/menu.tsx +0 -251
  195. package/src/components/ui/poster.tsx +0 -101
  196. package/src/components/ui/radio-group.tsx +0 -88
  197. package/src/components/ui/sliders/audio-gain-slider.tsx +0 -55
  198. package/src/components/ui/sliders/quality-slider.tsx +0 -54
  199. package/src/components/ui/sliders/slider-callbacks.ts +0 -14
  200. package/src/components/ui/sliders/slider-value.tsx +0 -13
  201. package/src/components/ui/sliders/slider.tsx +0 -254
  202. package/src/components/ui/sliders/speed-slider.tsx +0 -54
  203. package/src/components/ui/sliders/time-slider.tsx +0 -379
  204. package/src/components/ui/sliders/volume-slider.tsx +0 -55
  205. package/src/components/ui/spinner.tsx +0 -105
  206. package/src/components/ui/thumbnail.tsx +0 -82
  207. package/src/components/ui/time.tsx +0 -77
  208. package/src/components/ui/title.tsx +0 -32
  209. package/src/components/ui/tooltip.tsx +0 -135
  210. package/src/globals.d.ts +0 -3
  211. package/src/hooks/create-text-track.ts +0 -22
  212. package/src/hooks/options/use-audio-gain-options.ts +0 -75
  213. package/src/hooks/options/use-audio-options.ts +0 -71
  214. package/src/hooks/options/use-caption-options.ts +0 -95
  215. package/src/hooks/options/use-chapter-options.ts +0 -97
  216. package/src/hooks/options/use-playback-rate-options.ts +0 -75
  217. package/src/hooks/options/use-video-quality-options.ts +0 -123
  218. package/src/hooks/use-active-text-cues.ts +0 -28
  219. package/src/hooks/use-active-text-track.ts +0 -19
  220. package/src/hooks/use-chapter-title.ts +0 -12
  221. package/src/hooks/use-dom.ts +0 -121
  222. package/src/hooks/use-media-context.ts +0 -6
  223. package/src/hooks/use-media-player.ts +0 -19
  224. package/src/hooks/use-media-provider.ts +0 -31
  225. package/src/hooks/use-media-remote.ts +0 -37
  226. package/src/hooks/use-media-state.ts +0 -58
  227. package/src/hooks/use-signals.ts +0 -24
  228. package/src/hooks/use-slider-preview.ts +0 -126
  229. package/src/hooks/use-slider-state.ts +0 -63
  230. package/src/hooks/use-state.ts +0 -47
  231. package/src/hooks/use-text-cues.ts +0 -33
  232. package/src/hooks/use-thumbnails.ts +0 -69
  233. package/src/icon.ts +0 -37
  234. package/src/icons.ts +0 -754
  235. package/src/index.ts +0 -181
  236. package/src/providers/remotion/index.ts +0 -10
  237. package/src/providers/remotion/layout-engine.ts +0 -123
  238. package/src/providers/remotion/loader.ts +0 -35
  239. package/src/providers/remotion/playback-engine.ts +0 -142
  240. package/src/providers/remotion/provider.tsx +0 -514
  241. package/src/providers/remotion/type-check.ts +0 -13
  242. package/src/providers/remotion/types.ts +0 -94
  243. package/src/providers/remotion/ui/context.tsx +0 -120
  244. package/src/providers/remotion/ui/error-boundary.tsx +0 -57
  245. package/src/providers/remotion/ui/poster.tsx +0 -33
  246. package/src/providers/remotion/ui/slider-thumbnail.tsx +0 -41
  247. package/src/providers/remotion/ui/thumbnail.tsx +0 -166
  248. package/src/providers/remotion/validate.ts +0 -220
  249. package/src/source.ts +0 -5
  250. package/src/utils.ts +0 -27
  251. package/tsconfig.build.json +0 -10
  252. package/tsconfig.json +0 -11
  253. package/types/react/src/components/announcer.d.ts +0 -16
  254. package/types/react/src/components/layouts/default/audio-layout.d.ts +0 -27
  255. package/types/react/src/components/layouts/default/context.d.ts +0 -14
  256. package/types/react/src/components/layouts/default/hooks.d.ts +0 -2
  257. package/types/react/src/components/layouts/default/icons.d.ts +0 -95
  258. package/types/react/src/components/layouts/default/index.d.ts +0 -5
  259. package/types/react/src/components/layouts/default/media-layout.d.ts +0 -133
  260. package/types/react/src/components/layouts/default/slots.d.ts +0 -22
  261. package/types/react/src/components/layouts/default/ui/announcer.d.ts +0 -6
  262. package/types/react/src/components/layouts/default/ui/buttons.d.ts +0 -54
  263. package/types/react/src/components/layouts/default/ui/captions.d.ts +0 -6
  264. package/types/react/src/components/layouts/default/ui/controls.d.ts +0 -6
  265. package/types/react/src/components/layouts/default/ui/keyboard-display.d.ts +0 -8
  266. package/types/react/src/components/layouts/default/ui/menus/accessibility-menu.d.ts +0 -10
  267. package/types/react/src/components/layouts/default/ui/menus/audio-menu.d.ts +0 -10
  268. package/types/react/src/components/layouts/default/ui/menus/captions-menu.d.ts +0 -10
  269. package/types/react/src/components/layouts/default/ui/menus/chapters-menu.d.ts +0 -7
  270. package/types/react/src/components/layouts/default/ui/menus/font-menu.d.ts +0 -6
  271. package/types/react/src/components/layouts/default/ui/menus/items/menu-checkbox.d.ts +0 -13
  272. package/types/react/src/components/layouts/default/ui/menus/items/menu-items.d.ts +0 -49
  273. package/types/react/src/components/layouts/default/ui/menus/items/menu-slider.d.ts +0 -26
  274. package/types/react/src/components/layouts/default/ui/menus/playback-menu.d.ts +0 -10
  275. package/types/react/src/components/layouts/default/ui/menus/settings-menu.d.ts +0 -15
  276. package/types/react/src/components/layouts/default/ui/menus/utils.d.ts +0 -1
  277. package/types/react/src/components/layouts/default/ui/sliders.d.ts +0 -24
  278. package/types/react/src/components/layouts/default/ui/time.d.ts +0 -30
  279. package/types/react/src/components/layouts/default/ui/title.d.ts +0 -6
  280. package/types/react/src/components/layouts/default/ui/tooltip.d.ts +0 -12
  281. package/types/react/src/components/layouts/default/ui.d.ts +0 -8
  282. package/types/react/src/components/layouts/default/video-layout.d.ts +0 -47
  283. package/types/react/src/components/layouts/plyr/context.d.ts +0 -12
  284. package/types/react/src/components/layouts/plyr/icons/plyr-airplay.d.ts +0 -2
  285. package/types/react/src/components/layouts/plyr/icons/plyr-captions-off.d.ts +0 -2
  286. package/types/react/src/components/layouts/plyr/icons/plyr-captions-on.d.ts +0 -2
  287. package/types/react/src/components/layouts/plyr/icons/plyr-download.d.ts +0 -2
  288. package/types/react/src/components/layouts/plyr/icons/plyr-enter-fullscreen.d.ts +0 -2
  289. package/types/react/src/components/layouts/plyr/icons/plyr-exit-fullscreen.d.ts +0 -2
  290. package/types/react/src/components/layouts/plyr/icons/plyr-fast-forward.d.ts +0 -2
  291. package/types/react/src/components/layouts/plyr/icons/plyr-muted.d.ts +0 -2
  292. package/types/react/src/components/layouts/plyr/icons/plyr-pause.d.ts +0 -2
  293. package/types/react/src/components/layouts/plyr/icons/plyr-pip.d.ts +0 -2
  294. package/types/react/src/components/layouts/plyr/icons/plyr-play.d.ts +0 -2
  295. package/types/react/src/components/layouts/plyr/icons/plyr-restart.d.ts +0 -2
  296. package/types/react/src/components/layouts/plyr/icons/plyr-rewind.d.ts +0 -2
  297. package/types/react/src/components/layouts/plyr/icons/plyr-settings.d.ts +0 -2
  298. package/types/react/src/components/layouts/plyr/icons/plyr-volume.d.ts +0 -2
  299. package/types/react/src/components/layouts/plyr/icons.d.ts +0 -25
  300. package/types/react/src/components/layouts/plyr/index.d.ts +0 -6
  301. package/types/react/src/components/layouts/plyr/layout.d.ts +0 -17
  302. package/types/react/src/components/layouts/plyr/props.d.ts +0 -71
  303. package/types/react/src/components/layouts/plyr/slots.d.ts +0 -9
  304. package/types/react/src/components/layouts/remotion-ui.d.ts +0 -3
  305. package/types/react/src/components/layouts/utils.d.ts +0 -1
  306. package/types/react/src/components/player-callbacks.d.ts +0 -6
  307. package/types/react/src/components/player.d.ts +0 -32
  308. package/types/react/src/components/primitives/instances.d.ts +0 -83
  309. package/types/react/src/components/primitives/nodes.d.ts +0 -15
  310. package/types/react/src/components/primitives/slot.d.ts +0 -11
  311. package/types/react/src/components/provider.d.ts +0 -26
  312. package/types/react/src/components/text-track.d.ts +0 -100
  313. package/types/react/src/components/ui/buttons/airplay-button.d.ts +0 -22
  314. package/types/react/src/components/ui/buttons/caption-button.d.ts +0 -24
  315. package/types/react/src/components/ui/buttons/fullscreen-button.d.ts +0 -24
  316. package/types/react/src/components/ui/buttons/google-cast-button.d.ts +0 -22
  317. package/types/react/src/components/ui/buttons/live-button.d.ts +0 -26
  318. package/types/react/src/components/ui/buttons/mute-button.d.ts +0 -30
  319. package/types/react/src/components/ui/buttons/pip-button.d.ts +0 -24
  320. package/types/react/src/components/ui/buttons/play-button.d.ts +0 -23
  321. package/types/react/src/components/ui/buttons/seek-button.d.ts +0 -25
  322. package/types/react/src/components/ui/buttons/toggle-button.d.ts +0 -22
  323. package/types/react/src/components/ui/caption.d.ts +0 -11
  324. package/types/react/src/components/ui/captions.d.ts +0 -20
  325. package/types/react/src/components/ui/chapter-title.d.ts +0 -20
  326. package/types/react/src/components/ui/controls.d.ts +0 -40
  327. package/types/react/src/components/ui/gesture.d.ts +0 -20
  328. package/types/react/src/components/ui/menu.d.ts +0 -102
  329. package/types/react/src/components/ui/poster.d.ts +0 -25
  330. package/types/react/src/components/ui/radio-group.d.ts +0 -39
  331. package/types/react/src/components/ui/sliders/audio-gain-slider.d.ts +0 -29
  332. package/types/react/src/components/ui/sliders/quality-slider.d.ts +0 -28
  333. package/types/react/src/components/ui/sliders/slider-callbacks.d.ts +0 -6
  334. package/types/react/src/components/ui/sliders/slider-value.d.ts +0 -9
  335. package/types/react/src/components/ui/sliders/slider.d.ts +0 -134
  336. package/types/react/src/components/ui/sliders/speed-slider.d.ts +0 -28
  337. package/types/react/src/components/ui/sliders/time-slider.d.ts +0 -124
  338. package/types/react/src/components/ui/sliders/volume-slider.d.ts +0 -29
  339. package/types/react/src/components/ui/spinner.d.ts +0 -31
  340. package/types/react/src/components/ui/thumbnail.d.ts +0 -26
  341. package/types/react/src/components/ui/time.d.ts +0 -20
  342. package/types/react/src/components/ui/title.d.ts +0 -15
  343. package/types/react/src/components/ui/tooltip.d.ts +0 -63
  344. package/types/react/src/hooks/create-text-track.d.ts +0 -7
  345. package/types/react/src/hooks/options/use-audio-gain-options.d.ts +0 -22
  346. package/types/react/src/hooks/options/use-audio-options.d.ts +0 -17
  347. package/types/react/src/hooks/options/use-caption-options.d.ts +0 -24
  348. package/types/react/src/hooks/options/use-chapter-options.d.ts +0 -18
  349. package/types/react/src/hooks/options/use-playback-rate-options.d.ts +0 -22
  350. package/types/react/src/hooks/options/use-video-quality-options.d.ts +0 -35
  351. package/types/react/src/hooks/use-active-text-cues.d.ts +0 -6
  352. package/types/react/src/hooks/use-active-text-track.d.ts +0 -5
  353. package/types/react/src/hooks/use-chapter-title.d.ts +0 -4
  354. package/types/react/src/hooks/use-dom.d.ts +0 -9
  355. package/types/react/src/hooks/use-media-context.d.ts +0 -1
  356. package/types/react/src/hooks/use-media-player.d.ts +0 -7
  357. package/types/react/src/hooks/use-media-provider.d.ts +0 -7
  358. package/types/react/src/hooks/use-media-remote.d.ts +0 -12
  359. package/types/react/src/hooks/use-media-state.d.ts +0 -15
  360. package/types/react/src/hooks/use-signals.d.ts +0 -5
  361. package/types/react/src/hooks/use-slider-preview.d.ts +0 -27
  362. package/types/react/src/hooks/use-slider-state.d.ts +0 -16
  363. package/types/react/src/hooks/use-state.d.ts +0 -18
  364. package/types/react/src/hooks/use-text-cues.d.ts +0 -6
  365. package/types/react/src/hooks/use-thumbnails.d.ts +0 -16
  366. package/types/react/src/icon.d.ts +0 -17
  367. package/types/react/src/icons.d.ts +0 -215
  368. package/types/react/src/index.d.ts +0 -78
  369. package/types/react/src/providers/remotion/index.d.ts +0 -7
  370. package/types/react/src/providers/remotion/layout-engine.d.ts +0 -8
  371. package/types/react/src/providers/remotion/loader.d.ts +0 -9
  372. package/types/react/src/providers/remotion/playback-engine.d.ts +0 -11
  373. package/types/react/src/providers/remotion/provider.d.ts +0 -26
  374. package/types/react/src/providers/remotion/type-check.d.ts +0 -6
  375. package/types/react/src/providers/remotion/types.d.ts +0 -91
  376. package/types/react/src/providers/remotion/ui/context.d.ts +0 -17
  377. package/types/react/src/providers/remotion/ui/error-boundary.d.ts +0 -21
  378. package/types/react/src/providers/remotion/ui/poster.d.ts +0 -18
  379. package/types/react/src/providers/remotion/ui/slider-thumbnail.d.ts +0 -17
  380. package/types/react/src/providers/remotion/ui/thumbnail.d.ts +0 -32
  381. package/types/react/src/providers/remotion/validate.d.ts +0 -12
  382. package/types/react/src/source.d.ts +0 -3
  383. package/types/react/src/utils.d.ts +0 -3
  384. package/types/vidstack/src/core/api/src-types.d.ts +0 -50
  385. package/types/vidstack/src/utils/mime.d.ts +0 -15
  386. package/types/vidstack/src/utils/network.d.ts +0 -17
  387. package/types/vidstack/src/utils/support.d.ts +0 -72
  388. package/vite.config.ts +0 -23
  389. /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 };