@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,53 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { PlayButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * PlayButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const PlayButtonBridge = createReactComponent(PlayButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface PlayButtonProps extends ReactElementProps<PlayButtonInstance, HTMLButtonElement> {
17
- asChild?: boolean;
18
- children?: React.ReactNode;
19
- ref?: React.Ref<HTMLButtonElement>;
20
- }
21
-
22
- /**
23
- * A button for toggling the playback state (play/pause) of the current media.
24
- *
25
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/play-button}
26
- * @example
27
- * ```tsx
28
- * const isPaused = useMediaState('paused');
29
- *
30
- * <PlayButton>
31
- * {isPaused ? <PlayIcon /> : <PauseIcon />}
32
- * </PlayButton>
33
- * ```
34
- */
35
- const PlayButton = React.forwardRef<HTMLButtonElement, PlayButtonProps>(
36
- ({ children, ...props }, forwardRef) => {
37
- return (
38
- <PlayButtonBridge {...(props as Omit<PlayButtonProps, '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
- </PlayButtonBridge>
48
- );
49
- },
50
- );
51
-
52
- PlayButton.displayName = 'PlayButton';
53
- export { PlayButton };
@@ -1,55 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { SeekButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * SeekButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const SeekButtonBridge = createReactComponent(SeekButtonInstance, {
13
- domEventsRegex: /^onMedia/,
14
- });
15
-
16
- export interface SeekButtonProps extends ReactElementProps<SeekButtonInstance, HTMLButtonElement> {
17
- asChild?: boolean;
18
- children?: React.ReactNode;
19
- ref?: React.Ref<HTMLButtonElement>;
20
- }
21
-
22
- /**
23
- * A button for seeking the current media playback forwards or backwards by a specified amount.
24
- *
25
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/seek-button}
26
- * @example
27
- * ```tsx
28
- * <SeekButton seconds={-10}>
29
- * <SeekBackwardIcon />
30
- * </SeekButton>
31
- *
32
- * <SeekButton seconds={10}>
33
- * <SeekForwardIcon />
34
- * </SeekButton>
35
- * ```
36
- */
37
- const SeekButton = React.forwardRef<HTMLButtonElement, SeekButtonProps>(
38
- ({ children, ...props }, forwardRef) => {
39
- return (
40
- <SeekButtonBridge {...(props as Omit<SeekButtonProps, '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
- </SeekButtonBridge>
50
- );
51
- },
52
- );
53
-
54
- SeekButton.displayName = 'SeekButton';
55
- export { SeekButton };
@@ -1,51 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { ToggleButtonInstance } from '../../primitives/instances';
6
- import { Primitive } from '../../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * ToggleButton
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const ToggleButtonBridge = createReactComponent(ToggleButtonInstance);
13
-
14
- export interface ToggleButtonProps
15
- extends ReactElementProps<ToggleButtonInstance, HTMLButtonElement> {
16
- asChild?: boolean;
17
- children?: React.ReactNode;
18
- ref?: React.Ref<HTMLButtonElement>;
19
- }
20
-
21
- /**
22
- * A toggle button is a two-state button that can be either off (not pressed) or on (pressed).
23
- *
24
- * @docs {@link https://www.vidstack.io/docs/player/components/buttons/toggle-button}
25
- * @example
26
- * ```tsx
27
- * <ToggleButton aria-label="...">
28
- * <OnIcon />
29
- * <OffIcon />
30
- * </ToggleButton>
31
- * ```
32
- */
33
- const ToggleButton = React.forwardRef<HTMLButtonElement, ToggleButtonProps>(
34
- ({ children, ...props }, forwardRef) => {
35
- return (
36
- <ToggleButtonBridge {...(props as Omit<ToggleButtonProps, 'ref'>)}>
37
- {(props) => (
38
- <Primitive.button
39
- {...props}
40
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
41
- >
42
- {children}
43
- </Primitive.button>
44
- )}
45
- </ToggleButtonBridge>
46
- );
47
- },
48
- );
49
-
50
- ToggleButton.displayName = 'ToggleButton';
51
- export { ToggleButton };
@@ -1,70 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import type { VTTCue } from 'media-captions';
4
-
5
- import { useMediaState } from '../../hooks/use-media-state';
6
- import { Primitive, type PrimitivePropsWithRef } from '../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * Caption
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- export interface RootProps extends PrimitivePropsWithRef<'div'> {
13
- children?: React.ReactNode;
14
- }
15
-
16
- const Root = React.forwardRef<HTMLElement, RootProps>(({ children, ...props }, forwardRef) => {
17
- return (
18
- <Primitive.div
19
- translate="yes"
20
- aria-live="off"
21
- aria-atomic="true"
22
- {...props}
23
- ref={forwardRef as React.Ref<any>}
24
- >
25
- {children}
26
- </Primitive.div>
27
- );
28
- });
29
-
30
- Root.displayName = 'Caption';
31
- export { Root };
32
-
33
- /* -------------------------------------------------------------------------------------------------
34
- * CaptionText
35
- * -----------------------------------------------------------------------------------------------*/
36
-
37
- export interface TextProps extends PrimitivePropsWithRef<'span'> {}
38
-
39
- const Text = React.forwardRef<HTMLElement, TextProps>((props, forwardRef) => {
40
- const textTrack = useMediaState('textTrack'),
41
- [activeCue, setActiveCue] = React.useState<VTTCue | undefined>();
42
-
43
- React.useEffect(() => {
44
- if (!textTrack) return;
45
-
46
- function onCueChange() {
47
- setActiveCue(textTrack?.activeCues[0]);
48
- }
49
-
50
- textTrack.addEventListener('cue-change', onCueChange);
51
- return () => {
52
- textTrack.removeEventListener('cue-change', onCueChange);
53
- setActiveCue(undefined);
54
- };
55
- }, [textTrack]);
56
-
57
- return (
58
- <Primitive.span
59
- {...props}
60
- data-part="cue"
61
- dangerouslySetInnerHTML={{
62
- __html: activeCue?.text || '',
63
- }}
64
- ref={forwardRef as React.Ref<any>}
65
- />
66
- );
67
- });
68
-
69
- Text.displayName = 'CaptionText';
70
- export { Text };
@@ -1,41 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { CaptionsInstance } from '../primitives/instances';
6
- import { Primitive } from '../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * Captions
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const CaptionsBridge = createReactComponent(CaptionsInstance);
13
-
14
- export interface CaptionsProps extends ReactElementProps<CaptionsInstance> {
15
- asChild?: boolean;
16
- children?: React.ReactNode;
17
- ref?: React.Ref<CaptionsInstance>;
18
- }
19
-
20
- /**
21
- * Renders and displays captions/subtitles. This will be an overlay for video and a simple
22
- * captions box for audio.
23
- *
24
- * @docs {@link https://www.vidstack.io/docs/player/components/display/captions}
25
- * @example
26
- * ```tsx
27
- * <Captions />
28
- * ```
29
- */
30
- const Captions = React.forwardRef<CaptionsInstance, CaptionsProps>(
31
- ({ children, ...props }, forwardRef) => {
32
- return (
33
- <CaptionsBridge {...props} ref={forwardRef}>
34
- {(props) => <Primitive.div {...props}>{children}</Primitive.div>}
35
- </CaptionsBridge>
36
- );
37
- },
38
- );
39
-
40
- Captions.displayName = 'Captions';
41
- export { Captions };
@@ -1,40 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { useChapterTitle } from '../../hooks/use-chapter-title';
4
- import { Primitive, type PrimitivePropsWithRef } from '../primitives/nodes';
5
-
6
- /* -------------------------------------------------------------------------------------------------
7
- * Chapter Title
8
- * -----------------------------------------------------------------------------------------------*/
9
-
10
- export interface ChapterTitleProps extends PrimitivePropsWithRef<'span'> {
11
- /**
12
- * Specify text to be displayed when no chapter title is available.
13
- */
14
- defaultText?: string;
15
- }
16
-
17
- /**
18
- * This component is used to load and display the current chapter title based on the text tracks
19
- * provided.
20
- *
21
- * @docs {@link https://www.vidstack.io/docs/player/components/display/chapter-title}
22
- * @example
23
- * ```tsx
24
- * <ChapterTitle />
25
- * ```
26
- */
27
- const ChapterTitle = React.forwardRef<HTMLElement, ChapterTitleProps>(
28
- ({ defaultText = '', children, ...props }, forwardRef) => {
29
- const $chapterTitle = useChapterTitle();
30
- return (
31
- <Primitive.span {...props} ref={forwardRef as React.Ref<any>}>
32
- {$chapterTitle || defaultText}
33
- {children}
34
- </Primitive.span>
35
- );
36
- },
37
- );
38
-
39
- ChapterTitle.displayName = 'ChapterTitle';
40
- export { ChapterTitle };
@@ -1,90 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { ControlsGroupInstance, ControlsInstance } from '../primitives/instances';
6
- import { Primitive } from '../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * Controls
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const ControlsBridge = createReactComponent(ControlsInstance);
13
-
14
- export interface RootProps extends ReactElementProps<ControlsInstance> {
15
- asChild?: boolean;
16
- children?: React.ReactNode;
17
- ref?: React.Ref<HTMLElement>;
18
- }
19
-
20
- /**
21
- * This component creates a container for control groups.
22
- *
23
- * @docs {@link https://www.vidstack.io/docs/player/components/media/controls}
24
- * @example
25
- * ```tsx
26
- * <Controls.Root>
27
- * <Controls.Group></Controls.Group>
28
- * <Controls.Group></Controls.Group>
29
- * <Controls.Root>
30
- * ```
31
- */
32
- const Root = React.forwardRef<HTMLElement, RootProps>(({ children, ...props }, forwardRef) => {
33
- return (
34
- <ControlsBridge {...(props as Omit<RootProps, 'ref'>)}>
35
- {(props) => (
36
- <Primitive.div
37
- {...props}
38
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
39
- >
40
- {children}
41
- </Primitive.div>
42
- )}
43
- </ControlsBridge>
44
- );
45
- });
46
-
47
- Root.displayName = 'Controls';
48
-
49
- /* -------------------------------------------------------------------------------------------------
50
- * ControlsGroup
51
- * -----------------------------------------------------------------------------------------------*/
52
-
53
- const ControlsGroupBridge = createReactComponent(ControlsGroupInstance);
54
-
55
- export interface GroupProps extends ReactElementProps<ControlsGroupInstance> {
56
- asChild?: boolean;
57
- children?: React.ReactNode;
58
- ref?: React.Ref<HTMLElement>;
59
- }
60
-
61
- /**
62
- * This component creates a container for media controls.
63
- *
64
- * @docs {@link https://www.vidstack.io/docs/player/components/media/controls#group}
65
- * @example
66
- * ```tsx
67
- * <Controls.Root>
68
- * <Controls.Group></Controls.Group>
69
- * <Controls.Group></Controls.Group>
70
- * <Controls.Root>
71
- * ```
72
- */
73
- const Group = React.forwardRef<HTMLElement, GroupProps>(({ children, ...props }, forwardRef) => {
74
- return (
75
- <ControlsGroupBridge {...(props as Omit<GroupProps, 'ref'>)}>
76
- {(props) => (
77
- <Primitive.div
78
- {...props}
79
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
80
- >
81
- {children}
82
- </Primitive.div>
83
- )}
84
- </ControlsGroupBridge>
85
- );
86
- });
87
-
88
- Group.displayName = 'ControlsGroup';
89
-
90
- export { Root, Group };
@@ -1,43 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
-
5
- import { GestureInstance } from '../primitives/instances';
6
- import { Primitive } from '../primitives/nodes';
7
-
8
- /* -------------------------------------------------------------------------------------------------
9
- * Gesture
10
- * -----------------------------------------------------------------------------------------------*/
11
-
12
- const GestureBridge = createReactComponent(GestureInstance, {
13
- events: ['onWillTrigger', 'onTrigger'],
14
- });
15
-
16
- export interface GestureProps extends ReactElementProps<GestureInstance> {
17
- asChild?: boolean;
18
- children?: React.ReactNode;
19
- ref?: React.Ref<GestureInstance>;
20
- }
21
-
22
- /**
23
- * This component enables actions to be performed on the media based on user gestures.
24
- *
25
- * @docs {@link https://www.vidstack.io/docs/player/components/media/gesture}
26
- * @example
27
- * ```tsx
28
- * <Gesture event="pointerup" action="toggle:paused" />
29
- * <Gesture event="dblpointerup" action="toggle:fullscreen" />
30
- * ```
31
- */
32
- const Gesture = React.forwardRef<GestureInstance, GestureProps>(
33
- ({ children, ...props }, forwardRef) => {
34
- return (
35
- <GestureBridge {...props} ref={forwardRef}>
36
- {(props) => <Primitive.div {...props}>{children}</Primitive.div>}
37
- </GestureBridge>
38
- );
39
- },
40
- );
41
-
42
- Gesture.displayName = 'Gesture';
43
- export { Gesture };
@@ -1,251 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { composeRefs, createReactComponent, type ReactElementProps } from 'maverick.js/react';
4
- import { isString } from 'maverick.js/std';
5
- import { createPortal } from 'react-dom';
6
-
7
- import { useMediaState } from '../../hooks/use-media-state';
8
- import {
9
- MenuButtonInstance,
10
- MenuInstance,
11
- MenuItemInstance,
12
- MenuItemsInstance,
13
- MenuPortalInstance,
14
- } from '../primitives/instances';
15
- import { Primitive } from '../primitives/nodes';
16
-
17
- /* -------------------------------------------------------------------------------------------------
18
- * Menu
19
- * -----------------------------------------------------------------------------------------------*/
20
-
21
- const MenuBridge = createReactComponent(MenuInstance, {
22
- events: ['onOpen', 'onClose'],
23
- domEventsRegex: /^onMedia/,
24
- });
25
-
26
- export interface RootProps extends ReactElementProps<MenuInstance> {
27
- asChild?: boolean;
28
- children: React.ReactNode;
29
- ref?: React.Ref<MenuInstance>;
30
- }
31
-
32
- /**
33
- * Root menu container used to hold and manage a menu button and menu items. This component is
34
- * used to display options in a floating panel. They can be nested to create submenus.
35
- *
36
- * @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
37
- * @example
38
- * ```tsx
39
- * <Menu.Root>
40
- * <Menu.Button></Menu.Button>
41
- * <Menu.Content placement="top end"></Menu.Content>
42
- * </Menu.Root>
43
- * ```
44
- */
45
- const Root = React.forwardRef<MenuInstance, RootProps>(({ children, ...props }, forwardRef) => {
46
- return (
47
- <MenuBridge {...props} ref={forwardRef}>
48
- {(props, instance) => (
49
- <Primitive.div
50
- {...props}
51
- style={{ display: !instance.isSubmenu ? 'contents' : undefined, ...props.style }}
52
- >
53
- {children}
54
- </Primitive.div>
55
- )}
56
- </MenuBridge>
57
- );
58
- });
59
-
60
- Root.displayName = 'Menu';
61
-
62
- /* -------------------------------------------------------------------------------------------------
63
- * MenuButton
64
- * -----------------------------------------------------------------------------------------------*/
65
-
66
- const ButtonBridge = createReactComponent(MenuButtonInstance, {
67
- events: ['onSelect'],
68
- });
69
-
70
- export interface ButtonProps extends ReactElementProps<MenuButtonInstance, HTMLButtonElement> {
71
- asChild?: boolean;
72
- children?: React.ReactNode;
73
- ref?: React.Ref<HTMLButtonElement>;
74
- }
75
-
76
- /**
77
- * A button that controls the opening and closing of a menu component. The button will become a
78
- * `menuitem` when used inside a submenu.
79
- *
80
- * @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
81
- * @example
82
- * ```tsx
83
- * <Menu.Root>
84
- * <Menu.Button></Menu.Button>
85
- * <Menu.Content placement="top end"></Menu.Content>
86
- * </Menu.Root>
87
- * ```
88
- */
89
- const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
90
- ({ children, ...props }, forwardRef) => {
91
- return (
92
- <ButtonBridge {...(props as Omit<ButtonProps, 'ref'>)}>
93
- {(props) => (
94
- <Primitive.button
95
- {...props}
96
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
97
- >
98
- {children}
99
- </Primitive.button>
100
- )}
101
- </ButtonBridge>
102
- );
103
- },
104
- );
105
-
106
- Button.displayName = 'MenuButton';
107
-
108
- /* -------------------------------------------------------------------------------------------------
109
- * Portal
110
- * -----------------------------------------------------------------------------------------------*/
111
-
112
- export interface PortalProps extends ReactElementProps<MenuPortalInstance> {
113
- asChild?: boolean;
114
- children?: React.ReactNode;
115
- ref?: React.Ref<HTMLElement>;
116
- }
117
-
118
- /**
119
- * Portals menu items into the given container.
120
- *
121
- * @docs {@link https://www.vidstack.io/docs/player/components/menu#portal}
122
- * @example
123
- * ```tsx
124
- * <Menu.Root>
125
- * <Menu.Button></Menu.Button>
126
- * <Menu.Portal>
127
- * <Menu.Content placement="top end"></Menu.Content>
128
- * </Menu.Portal>
129
- * </Menu.Root>
130
- * ```
131
- */
132
- const Portal = React.forwardRef<HTMLElement, PortalProps>(
133
- ({ container = null, disabled = false, children, ...props }, forwardRef) => {
134
- let fullscreen = useMediaState('fullscreen'),
135
- shouldPortal = disabled === 'fullscreen' ? !fullscreen : !disabled;
136
-
137
- const target = React.useMemo(() => {
138
- if (__SERVER__) return null;
139
- const node = isString(container) ? document.querySelector(container) : container;
140
- return node ?? document.body;
141
- }, [container]);
142
-
143
- return !target || !shouldPortal
144
- ? children
145
- : createPortal(
146
- <Primitive.div
147
- {...props}
148
- style={{ display: 'contents', ...props.style }}
149
- ref={forwardRef as React.Ref<any>}
150
- >
151
- {children}
152
- </Primitive.div>,
153
- target,
154
- );
155
- },
156
- );
157
-
158
- Portal.displayName = 'MenuPortal';
159
-
160
- /* -------------------------------------------------------------------------------------------------
161
- * MenuItems
162
- * -----------------------------------------------------------------------------------------------*/
163
-
164
- const ItemsBridge = createReactComponent(MenuItemsInstance);
165
-
166
- export interface ItemsProps extends ReactElementProps<MenuItemsInstance> {
167
- asChild?: boolean;
168
- children?: React.ReactNode;
169
- ref?: React.Ref<HTMLElement>;
170
- }
171
-
172
- /**
173
- * Used to group and display settings or arbitrary content in a floating panel.
174
- *
175
- * @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
176
- * @example
177
- * ```tsx
178
- * <Menu.Root>
179
- * <Menu.Button></Menu.Button>
180
- * <Menu.Items placement="top end"></Menu.Items>
181
- * </Menu.Root>
182
- * ```
183
- */
184
- const Items = React.forwardRef<HTMLElement, ItemsProps>(({ children, ...props }, forwardRef) => {
185
- return (
186
- <ItemsBridge {...(props as Omit<ItemsProps, 'ref'>)}>
187
- {(props) => (
188
- <Primitive.div
189
- {...props}
190
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
191
- >
192
- {children}
193
- </Primitive.div>
194
- )}
195
- </ItemsBridge>
196
- );
197
- });
198
-
199
- Items.displayName = 'MenuItems';
200
-
201
- /* -------------------------------------------------------------------------------------------------
202
- * MenuItem
203
- * -----------------------------------------------------------------------------------------------*/
204
-
205
- const ItemBridge = createReactComponent(MenuItemInstance);
206
-
207
- export interface ItemProps extends ReactElementProps<MenuItemInstance> {
208
- asChild?: boolean;
209
- children?: React.ReactNode;
210
- ref?: React.Ref<HTMLElement>;
211
- }
212
-
213
- /**
214
- * Represents a specific option or action, typically displayed as a text label or icon, which
215
- * users can select to access or perform a particular function or view related content.
216
- *
217
- * @docs {@link https://www.vidstack.io/docs/player/components/menu/menu}
218
- * @example
219
- * ```tsx
220
- * <Menu.Root>
221
- * <Menu.Button></Menu.Button>
222
- * <Menu.Content placement="top end">
223
- * <Menu.Item></Menu.Item>
224
- * </Menu.Content>
225
- * </Menu.Root>
226
- * ```
227
- */
228
- const Item = React.forwardRef<HTMLElement, ItemProps>(({ children, ...props }, forwardRef) => {
229
- return (
230
- <ItemBridge {...(props as Omit<ItemProps, 'ref'>)}>
231
- {(props) => (
232
- <Primitive.div
233
- {...props}
234
- ref={composeRefs(props.ref as React.Ref<any>, forwardRef as React.Ref<any>)}
235
- >
236
- {children}
237
- </Primitive.div>
238
- )}
239
- </ItemBridge>
240
- );
241
- });
242
-
243
- Item.displayName = 'MenuItem';
244
-
245
- export { Root, Button, Portal, Items, Items as Content, type ItemsProps as ContentProps, Item };
246
- export {
247
- Root as RadioGroup,
248
- Item as Radio,
249
- type RootProps as RadioGroupProps,
250
- type ItemProps as RadioProps,
251
- } from './radio-group';