@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,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';