@videojs/react 10.0.0-beta.2 → 10.0.0-beta.21

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 (777) hide show
  1. package/dist/default/_virtual/_rolldown/runtime.js +6 -11
  2. package/dist/default/icons/dist/react/default/captions-off.js +1 -3
  3. package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
  4. package/dist/default/icons/dist/react/default/captions-on.js +1 -3
  5. package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
  6. package/dist/default/icons/dist/react/default/fullscreen-enter.js +1 -3
  7. package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  8. package/dist/default/icons/dist/react/default/fullscreen-exit.js +1 -3
  9. package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  10. package/dist/default/icons/dist/react/default/pause.js +1 -3
  11. package/dist/default/icons/dist/react/default/pause.js.map +1 -1
  12. package/dist/default/icons/dist/react/default/pip-enter.js +32 -0
  13. package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -0
  14. package/dist/default/icons/dist/react/default/pip-exit.js +32 -0
  15. package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -0
  16. package/dist/default/icons/dist/react/default/play.js +1 -3
  17. package/dist/default/icons/dist/react/default/play.js.map +1 -1
  18. package/dist/default/icons/dist/react/default/restart.js +1 -3
  19. package/dist/default/icons/dist/react/default/restart.js.map +1 -1
  20. package/dist/default/icons/dist/react/default/seek.js +1 -3
  21. package/dist/default/icons/dist/react/default/seek.js.map +1 -1
  22. package/dist/default/icons/dist/react/default/spinner.js +1 -3
  23. package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
  24. package/dist/default/icons/dist/react/default/volume-high.js +1 -3
  25. package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
  26. package/dist/default/icons/dist/react/default/volume-low.js +1 -3
  27. package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
  28. package/dist/default/icons/dist/react/default/volume-off.js +1 -3
  29. package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
  30. package/dist/default/icons/dist/react/minimal/captions-off.js +1 -3
  31. package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
  32. package/dist/default/icons/dist/react/minimal/captions-on.js +1 -3
  33. package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
  34. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +1 -3
  35. package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  36. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +1 -3
  37. package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  38. package/dist/default/icons/dist/react/minimal/pause.js +1 -3
  39. package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
  40. package/dist/default/icons/dist/react/minimal/pip-enter.js +36 -0
  41. package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -0
  42. package/dist/default/icons/dist/react/minimal/pip-exit.js +36 -0
  43. package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -0
  44. package/dist/default/icons/dist/react/minimal/play.js +1 -3
  45. package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
  46. package/dist/default/icons/dist/react/minimal/restart.js +1 -3
  47. package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
  48. package/dist/default/icons/dist/react/minimal/seek.js +1 -3
  49. package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
  50. package/dist/default/icons/dist/react/minimal/spinner.js +1 -3
  51. package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
  52. package/dist/default/icons/dist/react/minimal/volume-high.js +1 -3
  53. package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
  54. package/dist/default/icons/dist/react/minimal/volume-low.js +1 -3
  55. package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
  56. package/dist/default/icons/dist/react/minimal/volume-off.js +1 -3
  57. package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
  58. package/dist/default/index.js +25 -14
  59. package/dist/default/media/audio.js +5 -10
  60. package/dist/default/media/audio.js.map +1 -1
  61. package/dist/default/media/background-video/index.js +4 -6
  62. package/dist/default/media/background-video/index.js.map +1 -1
  63. package/dist/default/media/dash-video/index.js +21 -0
  64. package/dist/default/media/dash-video/index.js.map +1 -0
  65. package/dist/default/media/hls-video/index.js +8 -13
  66. package/dist/default/media/hls-video/index.js.map +1 -1
  67. package/dist/default/media/mux-audio/index.js +20 -0
  68. package/dist/default/media/mux-audio/index.js.map +1 -0
  69. package/dist/default/media/mux-video/index.js +21 -0
  70. package/dist/default/media/mux-video/index.js.map +1 -0
  71. package/dist/default/media/native-hls-video/index.js +21 -0
  72. package/dist/default/media/native-hls-video/index.js.map +1 -0
  73. package/dist/default/media/simple-hls-video/index.js +8 -12
  74. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  75. package/dist/default/media/video.js +5 -10
  76. package/dist/default/media/video.js.map +1 -1
  77. package/dist/default/player/context.js +27 -15
  78. package/dist/default/player/context.js.map +1 -1
  79. package/dist/default/player/create-player.js +18 -6
  80. package/dist/default/player/create-player.js.map +1 -1
  81. package/dist/default/presets/audio/index.js +1 -2
  82. package/dist/default/presets/audio/minimal-skin.css +293 -194
  83. package/dist/default/presets/audio/minimal-skin.js +144 -123
  84. package/dist/default/presets/audio/minimal-skin.js.map +1 -1
  85. package/dist/default/presets/audio/minimal-skin.tailwind.js +156 -137
  86. package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
  87. package/dist/default/presets/audio/skin.css +276 -186
  88. package/dist/default/presets/audio/skin.js +218 -126
  89. package/dist/default/presets/audio/skin.js.map +1 -1
  90. package/dist/default/presets/audio/skin.tailwind.js +166 -141
  91. package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
  92. package/dist/default/presets/background/index.js +1 -2
  93. package/dist/default/presets/background/skin.js +1 -2
  94. package/dist/default/presets/background/skin.js.map +1 -1
  95. package/dist/default/presets/video/index.js +1 -2
  96. package/dist/default/presets/video/minimal-skin.css +587 -340
  97. package/dist/default/presets/video/minimal-skin.js +139 -123
  98. package/dist/default/presets/video/minimal-skin.js.map +1 -1
  99. package/dist/default/presets/video/minimal-skin.tailwind.js +149 -138
  100. package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
  101. package/dist/default/presets/video/skin.css +555 -323
  102. package/dist/default/presets/video/skin.js +299 -171
  103. package/dist/default/presets/video/skin.js.map +1 -1
  104. package/dist/default/presets/video/skin.tailwind.js +204 -186
  105. package/dist/default/presets/video/skin.tailwind.js.map +1 -1
  106. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +17 -32
  107. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  108. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  109. package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  110. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  111. package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  112. package/dist/default/skins/dist/default/default/tailwind/components/button.js +5 -5
  113. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  114. package/dist/default/skins/dist/default/default/tailwind/components/controls.js +2 -3
  115. package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  116. package/dist/default/skins/dist/default/default/tailwind/components/error.js +4 -5
  117. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  118. package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -2
  119. package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  120. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  121. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  122. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  123. package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  124. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +5 -6
  125. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  126. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +15 -0
  127. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  128. package/dist/default/skins/dist/default/default/tailwind/components/preview.js +12 -0
  129. package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  130. package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -3
  131. package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  132. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +2 -3
  133. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  134. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +2 -3
  135. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  136. package/dist/default/skins/dist/default/default/tailwind/components/surface.js +2 -3
  137. package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  138. package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
  139. package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  140. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +41 -25
  141. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  142. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +18 -27
  143. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  144. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  145. package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  146. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  147. package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  148. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +5 -5
  149. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  150. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  151. package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  152. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +4 -5
  153. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  154. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  155. package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  156. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  157. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  158. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +5 -5
  159. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  160. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +15 -0
  161. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  162. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +13 -0
  163. package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  164. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  165. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  166. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +2 -3
  167. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  168. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  169. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  170. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  171. package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  172. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +44 -23
  173. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  174. package/dist/{dev/skins/dist/default/default/tailwind/components → default/skins/dist/default/shared/tailwind}/icon-state.js +7 -2
  175. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  176. package/dist/default/ui/alert-dialog/alert-dialog-close.js +2 -4
  177. package/dist/default/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  178. package/dist/default/ui/alert-dialog/alert-dialog-description.js +2 -4
  179. package/dist/default/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  180. package/dist/default/ui/alert-dialog/alert-dialog-popup.js +2 -4
  181. package/dist/default/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  182. package/dist/default/ui/alert-dialog/alert-dialog-root.js +5 -7
  183. package/dist/default/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  184. package/dist/default/ui/alert-dialog/alert-dialog-title.js +2 -4
  185. package/dist/default/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  186. package/dist/default/ui/alert-dialog/context.js +2 -4
  187. package/dist/default/ui/alert-dialog/context.js.map +1 -1
  188. package/dist/default/ui/alert-dialog/index.js +1 -2
  189. package/dist/default/ui/alert-dialog/index.parts.js +1 -2
  190. package/dist/default/ui/buffering-indicator/buffering-indicator.js +4 -4
  191. package/dist/default/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  192. package/dist/default/ui/buffering-indicator/index.js +1 -2
  193. package/dist/default/ui/captions-button/captions-button.js +4 -5
  194. package/dist/default/ui/captions-button/captions-button.js.map +1 -1
  195. package/dist/default/ui/captions-button/index.js +1 -2
  196. package/dist/default/ui/controls/context.js +2 -4
  197. package/dist/default/ui/controls/context.js.map +1 -1
  198. package/dist/default/ui/controls/controls-group.js +2 -4
  199. package/dist/default/ui/controls/controls-group.js.map +1 -1
  200. package/dist/default/ui/controls/controls-root.js +2 -4
  201. package/dist/default/ui/controls/controls-root.js.map +1 -1
  202. package/dist/default/ui/controls/index.js +1 -2
  203. package/dist/default/ui/controls/index.parts.js +1 -2
  204. package/dist/default/ui/create-context-part.js +2 -4
  205. package/dist/default/ui/create-context-part.js.map +1 -1
  206. package/dist/default/ui/create-media-button.js +22 -10
  207. package/dist/default/ui/create-media-button.js.map +1 -1
  208. package/dist/default/ui/error-dialog/context.js +14 -0
  209. package/dist/default/ui/error-dialog/context.js.map +1 -0
  210. package/dist/default/ui/error-dialog/error-dialog-description.js +28 -0
  211. package/dist/default/ui/error-dialog/error-dialog-description.js.map +1 -0
  212. package/dist/default/ui/error-dialog/error-dialog-root.js +57 -0
  213. package/dist/default/ui/error-dialog/error-dialog-root.js.map +1 -0
  214. package/dist/default/ui/error-dialog/index.js +3 -0
  215. package/dist/default/ui/error-dialog/index.parts.js +18 -0
  216. package/dist/default/ui/error-dialog/index.parts.js.map +1 -0
  217. package/dist/default/ui/fullscreen-button/fullscreen-button.js +4 -5
  218. package/dist/default/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  219. package/dist/default/ui/fullscreen-button/index.js +1 -2
  220. package/dist/default/ui/gesture/media-gesture.js +42 -0
  221. package/dist/default/ui/gesture/media-gesture.js.map +1 -0
  222. package/dist/default/ui/gesture/use-doubletap-gesture.js +29 -0
  223. package/dist/default/ui/gesture/use-doubletap-gesture.js.map +1 -0
  224. package/dist/default/ui/gesture/use-tap-gesture.js +29 -0
  225. package/dist/default/ui/gesture/use-tap-gesture.js.map +1 -0
  226. package/dist/default/ui/hooks/use-button.js +2 -4
  227. package/dist/default/ui/hooks/use-button.js.map +1 -1
  228. package/dist/default/ui/hooks/use-slider.js +4 -6
  229. package/dist/default/ui/hooks/use-slider.js.map +1 -1
  230. package/dist/default/ui/hotkey/media-hotkey.js +41 -0
  231. package/dist/default/ui/hotkey/media-hotkey.js.map +1 -0
  232. package/dist/default/ui/hotkey/use-aria-key-shortcuts.js +16 -0
  233. package/dist/default/ui/hotkey/use-aria-key-shortcuts.js.map +1 -0
  234. package/dist/default/ui/hotkey/use-hotkey.js +32 -0
  235. package/dist/default/ui/hotkey/use-hotkey.js.map +1 -0
  236. package/dist/default/ui/mute-button/index.js +1 -2
  237. package/dist/default/ui/mute-button/mute-button.js +4 -5
  238. package/dist/default/ui/mute-button/mute-button.js.map +1 -1
  239. package/dist/default/ui/pip-button/index.js +1 -2
  240. package/dist/default/ui/pip-button/pip-button.js +4 -5
  241. package/dist/default/ui/pip-button/pip-button.js.map +1 -1
  242. package/dist/default/ui/play-button/index.js +1 -2
  243. package/dist/default/ui/play-button/play-button.js +4 -5
  244. package/dist/default/ui/play-button/play-button.js.map +1 -1
  245. package/dist/default/ui/playback-rate-button/index.js +1 -2
  246. package/dist/default/ui/playback-rate-button/playback-rate-button.js +2 -4
  247. package/dist/default/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  248. package/dist/default/ui/popover/context.js +2 -4
  249. package/dist/default/ui/popover/context.js.map +1 -1
  250. package/dist/default/ui/popover/index.js +1 -2
  251. package/dist/default/ui/popover/index.parts.js +1 -2
  252. package/dist/default/ui/popover/popover-arrow.js +2 -4
  253. package/dist/default/ui/popover/popover-arrow.js.map +1 -1
  254. package/dist/default/ui/popover/popover-popup.js +13 -6
  255. package/dist/default/ui/popover/popover-popup.js.map +1 -1
  256. package/dist/default/ui/popover/popover-root.js +4 -6
  257. package/dist/default/ui/popover/popover-root.js.map +1 -1
  258. package/dist/default/ui/popover/popover-trigger.js +2 -4
  259. package/dist/default/ui/popover/popover-trigger.js.map +1 -1
  260. package/dist/default/ui/poster/index.js +1 -2
  261. package/dist/default/ui/poster/poster.js +2 -4
  262. package/dist/default/ui/poster/poster.js.map +1 -1
  263. package/dist/default/ui/seek-button/index.js +1 -2
  264. package/dist/default/ui/seek-button/seek-button.js +2 -4
  265. package/dist/default/ui/seek-button/seek-button.js.map +1 -1
  266. package/dist/default/ui/slider/context.js +2 -4
  267. package/dist/default/ui/slider/context.js.map +1 -1
  268. package/dist/default/ui/slider/index.js +1 -2
  269. package/dist/default/ui/slider/index.parts.js +1 -2
  270. package/dist/default/ui/slider/slider-buffer.js +2 -4
  271. package/dist/default/ui/slider/slider-buffer.js.map +1 -1
  272. package/dist/default/ui/slider/slider-fill.js +2 -4
  273. package/dist/default/ui/slider/slider-fill.js.map +1 -1
  274. package/dist/default/ui/slider/slider-preview.js +2 -4
  275. package/dist/default/ui/slider/slider-preview.js.map +1 -1
  276. package/dist/default/ui/slider/slider-root.js +2 -4
  277. package/dist/default/ui/slider/slider-root.js.map +1 -1
  278. package/dist/default/ui/slider/slider-thumb.js +2 -4
  279. package/dist/default/ui/slider/slider-thumb.js.map +1 -1
  280. package/dist/default/ui/slider/slider-thumbnail.js +2 -4
  281. package/dist/default/ui/slider/slider-thumbnail.js.map +1 -1
  282. package/dist/default/ui/slider/slider-track.js +2 -4
  283. package/dist/default/ui/slider/slider-track.js.map +1 -1
  284. package/dist/default/ui/slider/slider-value.js +2 -4
  285. package/dist/default/ui/slider/slider-value.js.map +1 -1
  286. package/dist/default/ui/thumbnail/index.js +2 -0
  287. package/dist/default/ui/thumbnail/thumbnail.js +3 -6
  288. package/dist/default/ui/thumbnail/thumbnail.js.map +1 -1
  289. package/dist/default/ui/time/index.js +1 -2
  290. package/dist/default/ui/time/index.parts.js +1 -2
  291. package/dist/default/ui/time/time-group.js +2 -4
  292. package/dist/default/ui/time/time-group.js.map +1 -1
  293. package/dist/default/ui/time/time-separator.js +2 -4
  294. package/dist/default/ui/time/time-separator.js.map +1 -1
  295. package/dist/default/ui/time/time-value.js +2 -4
  296. package/dist/default/ui/time/time-value.js.map +1 -1
  297. package/dist/default/ui/time-slider/index.js +1 -2
  298. package/dist/default/ui/time-slider/index.parts.js +1 -2
  299. package/dist/default/ui/time-slider/time-slider-root.js +6 -8
  300. package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
  301. package/dist/default/ui/tooltip/context.js +6 -5
  302. package/dist/default/ui/tooltip/context.js.map +1 -1
  303. package/dist/default/ui/tooltip/group-context.js +2 -4
  304. package/dist/default/ui/tooltip/group-context.js.map +1 -1
  305. package/dist/default/ui/tooltip/index.js +2 -3
  306. package/dist/default/ui/tooltip/index.parts.js +1 -2
  307. package/dist/default/ui/tooltip/tooltip-arrow.js +2 -4
  308. package/dist/default/ui/tooltip/tooltip-arrow.js.map +1 -1
  309. package/dist/default/ui/tooltip/tooltip-popup.js +15 -7
  310. package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
  311. package/dist/default/ui/tooltip/tooltip-provider.js +2 -4
  312. package/dist/default/ui/tooltip/tooltip-provider.js.map +1 -1
  313. package/dist/default/ui/tooltip/tooltip-root.js +9 -7
  314. package/dist/default/ui/tooltip/tooltip-root.js.map +1 -1
  315. package/dist/default/ui/tooltip/tooltip-trigger.js +4 -9
  316. package/dist/default/ui/tooltip/tooltip-trigger.js.map +1 -1
  317. package/dist/default/ui/volume-slider/index.js +1 -2
  318. package/dist/default/ui/volume-slider/index.parts.js +1 -2
  319. package/dist/default/ui/volume-slider/volume-slider-root.js +36 -20
  320. package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
  321. package/dist/default/utils/attach-media-element.js +1 -1
  322. package/dist/default/utils/media-props.js +14 -6
  323. package/dist/default/utils/media-props.js.map +1 -1
  324. package/dist/default/utils/merge-props.js +2 -3
  325. package/dist/default/utils/merge-props.js.map +1 -1
  326. package/dist/default/utils/use-composed-refs.js +2 -4
  327. package/dist/default/utils/use-composed-refs.js.map +1 -1
  328. package/dist/default/utils/use-destroy.js +14 -8
  329. package/dist/default/utils/use-destroy.js.map +1 -1
  330. package/dist/default/utils/use-force-render.js +2 -4
  331. package/dist/default/utils/use-force-render.js.map +1 -1
  332. package/dist/default/utils/use-latest-ref.js +2 -4
  333. package/dist/default/utils/use-latest-ref.js.map +1 -1
  334. package/dist/default/utils/use-media-instance.js +22 -0
  335. package/dist/default/utils/use-media-instance.js.map +1 -0
  336. package/dist/default/utils/use-render.js +7 -5
  337. package/dist/default/utils/use-render.js.map +1 -1
  338. package/dist/default/utils/use-safe-id.js +3 -5
  339. package/dist/default/utils/use-safe-id.js.map +1 -1
  340. package/dist/dev/_virtual/_rolldown/runtime.js +6 -11
  341. package/dist/dev/icons/dist/react/default/captions-off.js +1 -3
  342. package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
  343. package/dist/dev/icons/dist/react/default/captions-on.js +1 -3
  344. package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
  345. package/dist/dev/icons/dist/react/default/fullscreen-enter.js +1 -3
  346. package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
  347. package/dist/dev/icons/dist/react/default/fullscreen-exit.js +1 -3
  348. package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
  349. package/dist/dev/icons/dist/react/default/pause.js +1 -3
  350. package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
  351. package/dist/dev/icons/dist/react/default/pip-enter.js +32 -0
  352. package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -0
  353. package/dist/dev/icons/dist/react/default/pip-exit.js +32 -0
  354. package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -0
  355. package/dist/dev/icons/dist/react/default/play.js +1 -3
  356. package/dist/dev/icons/dist/react/default/play.js.map +1 -1
  357. package/dist/dev/icons/dist/react/default/restart.js +1 -3
  358. package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
  359. package/dist/dev/icons/dist/react/default/seek.js +1 -3
  360. package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
  361. package/dist/dev/icons/dist/react/default/spinner.js +1 -3
  362. package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
  363. package/dist/dev/icons/dist/react/default/volume-high.js +1 -3
  364. package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
  365. package/dist/dev/icons/dist/react/default/volume-low.js +1 -3
  366. package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
  367. package/dist/dev/icons/dist/react/default/volume-off.js +1 -3
  368. package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
  369. package/dist/dev/icons/dist/react/minimal/captions-off.js +1 -3
  370. package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
  371. package/dist/dev/icons/dist/react/minimal/captions-on.js +1 -3
  372. package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
  373. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +1 -3
  374. package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
  375. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +1 -3
  376. package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
  377. package/dist/dev/icons/dist/react/minimal/pause.js +1 -3
  378. package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
  379. package/dist/dev/icons/dist/react/minimal/pip-enter.js +36 -0
  380. package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -0
  381. package/dist/dev/icons/dist/react/minimal/pip-exit.js +36 -0
  382. package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -0
  383. package/dist/dev/icons/dist/react/minimal/play.js +1 -3
  384. package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
  385. package/dist/dev/icons/dist/react/minimal/restart.js +1 -3
  386. package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
  387. package/dist/dev/icons/dist/react/minimal/seek.js +1 -3
  388. package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
  389. package/dist/dev/icons/dist/react/minimal/spinner.js +1 -3
  390. package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
  391. package/dist/dev/icons/dist/react/minimal/volume-high.js +1 -3
  392. package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
  393. package/dist/dev/icons/dist/react/minimal/volume-low.js +1 -3
  394. package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
  395. package/dist/dev/icons/dist/react/minimal/volume-off.js +1 -3
  396. package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
  397. package/dist/dev/index.d.ts +22 -8
  398. package/dist/dev/index.js +25 -14
  399. package/dist/dev/media/audio.d.ts.map +1 -1
  400. package/dist/dev/media/audio.js +5 -10
  401. package/dist/dev/media/audio.js.map +1 -1
  402. package/dist/dev/media/background-video/index.js +4 -6
  403. package/dist/dev/media/background-video/index.js.map +1 -1
  404. package/dist/dev/media/dash-video/index.d.ts +16 -0
  405. package/dist/dev/media/dash-video/index.d.ts.map +1 -0
  406. package/dist/dev/media/dash-video/index.js +21 -0
  407. package/dist/dev/media/dash-video/index.js.map +1 -0
  408. package/dist/dev/media/hls-video/index.d.ts +8 -3
  409. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  410. package/dist/dev/media/hls-video/index.js +8 -13
  411. package/dist/dev/media/hls-video/index.js.map +1 -1
  412. package/dist/dev/media/mux-audio/index.d.ts +13 -0
  413. package/dist/dev/media/mux-audio/index.d.ts.map +1 -0
  414. package/dist/dev/media/mux-audio/index.js +20 -0
  415. package/dist/dev/media/mux-audio/index.js.map +1 -0
  416. package/dist/dev/media/mux-video/index.d.ts +16 -0
  417. package/dist/dev/media/mux-video/index.d.ts.map +1 -0
  418. package/dist/dev/media/mux-video/index.js +21 -0
  419. package/dist/dev/media/mux-video/index.js.map +1 -0
  420. package/dist/dev/media/native-hls-video/index.d.ts +16 -0
  421. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -0
  422. package/dist/dev/media/native-hls-video/index.js +21 -0
  423. package/dist/dev/media/native-hls-video/index.js.map +1 -0
  424. package/dist/dev/media/simple-hls-video/index.d.ts +4 -1
  425. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  426. package/dist/dev/media/simple-hls-video/index.js +8 -12
  427. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  428. package/dist/dev/media/video.d.ts.map +1 -1
  429. package/dist/dev/media/video.js +5 -10
  430. package/dist/dev/media/video.js.map +1 -1
  431. package/dist/dev/player/context.d.ts +24 -7
  432. package/dist/dev/player/context.d.ts.map +1 -1
  433. package/dist/dev/player/context.js +27 -15
  434. package/dist/dev/player/context.js.map +1 -1
  435. package/dist/dev/player/create-player.js +18 -6
  436. package/dist/dev/player/create-player.js.map +1 -1
  437. package/dist/dev/presets/audio/index.js +1 -2
  438. package/dist/dev/presets/audio/minimal-skin.css +293 -194
  439. package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
  440. package/dist/dev/presets/audio/minimal-skin.js +144 -123
  441. package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
  442. package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
  443. package/dist/dev/presets/audio/minimal-skin.tailwind.js +156 -137
  444. package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
  445. package/dist/dev/presets/audio/skin.css +276 -186
  446. package/dist/dev/presets/audio/skin.d.ts.map +1 -1
  447. package/dist/dev/presets/audio/skin.js +218 -126
  448. package/dist/dev/presets/audio/skin.js.map +1 -1
  449. package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
  450. package/dist/dev/presets/audio/skin.tailwind.js +166 -141
  451. package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
  452. package/dist/dev/presets/background/index.js +1 -2
  453. package/dist/dev/presets/background/skin.js +1 -2
  454. package/dist/dev/presets/background/skin.js.map +1 -1
  455. package/dist/dev/presets/types.d.ts +6 -1
  456. package/dist/dev/presets/types.d.ts.map +1 -1
  457. package/dist/dev/presets/video/index.js +1 -2
  458. package/dist/dev/presets/video/minimal-skin.css +587 -340
  459. package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
  460. package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
  461. package/dist/dev/presets/video/minimal-skin.js +139 -123
  462. package/dist/dev/presets/video/minimal-skin.js.map +1 -1
  463. package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
  464. package/dist/dev/presets/video/minimal-skin.tailwind.js +149 -138
  465. package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
  466. package/dist/dev/presets/video/skin.css +555 -323
  467. package/dist/dev/presets/video/skin.d.ts +2 -2
  468. package/dist/dev/presets/video/skin.d.ts.map +1 -1
  469. package/dist/dev/presets/video/skin.js +299 -171
  470. package/dist/dev/presets/video/skin.js.map +1 -1
  471. package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
  472. package/dist/dev/presets/video/skin.tailwind.js +204 -186
  473. package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
  474. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +17 -32
  475. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  476. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
  477. package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
  478. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +7 -0
  479. package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
  480. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +5 -5
  481. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  482. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +2 -3
  483. package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
  484. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +4 -5
  485. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  486. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -2
  487. package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
  488. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +2 -3
  489. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  490. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
  491. package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
  492. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +5 -6
  493. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  494. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +15 -0
  495. package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
  496. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +12 -0
  497. package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -0
  498. package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -3
  499. package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
  500. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +2 -3
  501. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  502. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +2 -3
  503. package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  504. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +2 -3
  505. package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
  506. package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
  507. package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
  508. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +41 -25
  509. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  510. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +18 -27
  511. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  512. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
  513. package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
  514. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
  515. package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
  516. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +5 -5
  517. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  518. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
  519. package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
  520. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +4 -5
  521. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
  522. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
  523. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
  524. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
  525. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  526. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +5 -5
  527. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  528. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +15 -0
  529. package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
  530. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +13 -0
  531. package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -0
  532. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -3
  533. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  534. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +2 -3
  535. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  536. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
  537. package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  538. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +5 -6
  539. package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
  540. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +44 -23
  541. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  542. package/dist/{default/skins/dist/default/default/tailwind/components → dev/skins/dist/default/shared/tailwind}/icon-state.js +7 -2
  543. package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -0
  544. package/dist/dev/ui/alert-dialog/alert-dialog-close.js +2 -4
  545. package/dist/dev/ui/alert-dialog/alert-dialog-close.js.map +1 -1
  546. package/dist/dev/ui/alert-dialog/alert-dialog-description.js +2 -4
  547. package/dist/dev/ui/alert-dialog/alert-dialog-description.js.map +1 -1
  548. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js +2 -4
  549. package/dist/dev/ui/alert-dialog/alert-dialog-popup.js.map +1 -1
  550. package/dist/dev/ui/alert-dialog/alert-dialog-root.js +5 -7
  551. package/dist/dev/ui/alert-dialog/alert-dialog-root.js.map +1 -1
  552. package/dist/dev/ui/alert-dialog/alert-dialog-title.js +2 -4
  553. package/dist/dev/ui/alert-dialog/alert-dialog-title.js.map +1 -1
  554. package/dist/dev/ui/alert-dialog/context.js +2 -4
  555. package/dist/dev/ui/alert-dialog/context.js.map +1 -1
  556. package/dist/dev/ui/alert-dialog/index.js +1 -2
  557. package/dist/dev/ui/alert-dialog/index.parts.js +1 -2
  558. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  559. package/dist/dev/ui/buffering-indicator/buffering-indicator.js +4 -4
  560. package/dist/dev/ui/buffering-indicator/buffering-indicator.js.map +1 -1
  561. package/dist/dev/ui/buffering-indicator/index.js +1 -2
  562. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  563. package/dist/dev/ui/captions-button/captions-button.js +4 -5
  564. package/dist/dev/ui/captions-button/captions-button.js.map +1 -1
  565. package/dist/dev/ui/captions-button/index.js +1 -2
  566. package/dist/dev/ui/controls/context.js +2 -4
  567. package/dist/dev/ui/controls/context.js.map +1 -1
  568. package/dist/dev/ui/controls/controls-group.js +2 -4
  569. package/dist/dev/ui/controls/controls-group.js.map +1 -1
  570. package/dist/dev/ui/controls/controls-root.js +2 -4
  571. package/dist/dev/ui/controls/controls-root.js.map +1 -1
  572. package/dist/dev/ui/controls/index.js +1 -2
  573. package/dist/dev/ui/controls/index.parts.js +1 -2
  574. package/dist/dev/ui/create-context-part.js +2 -4
  575. package/dist/dev/ui/create-context-part.js.map +1 -1
  576. package/dist/dev/ui/create-media-button.js +22 -10
  577. package/dist/dev/ui/create-media-button.js.map +1 -1
  578. package/dist/dev/ui/error-dialog/context.d.ts +10 -0
  579. package/dist/dev/ui/error-dialog/context.d.ts.map +1 -0
  580. package/dist/dev/ui/error-dialog/context.js +14 -0
  581. package/dist/dev/ui/error-dialog/context.js.map +1 -0
  582. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +14 -0
  583. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -0
  584. package/dist/dev/ui/error-dialog/error-dialog-description.js +28 -0
  585. package/dist/dev/ui/error-dialog/error-dialog-description.js.map +1 -0
  586. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts +15 -0
  587. package/dist/dev/ui/error-dialog/error-dialog-root.d.ts.map +1 -0
  588. package/dist/dev/ui/error-dialog/error-dialog-root.js +57 -0
  589. package/dist/dev/ui/error-dialog/error-dialog-root.js.map +1 -0
  590. package/dist/dev/ui/error-dialog/index.d.ts +3 -0
  591. package/dist/dev/ui/error-dialog/index.js +3 -0
  592. package/dist/dev/ui/error-dialog/index.parts.d.ts +13 -0
  593. package/dist/dev/ui/error-dialog/index.parts.d.ts.map +1 -0
  594. package/dist/dev/ui/error-dialog/index.parts.js +18 -0
  595. package/dist/dev/ui/error-dialog/index.parts.js.map +1 -0
  596. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  597. package/dist/dev/ui/fullscreen-button/fullscreen-button.js +4 -5
  598. package/dist/dev/ui/fullscreen-button/fullscreen-button.js.map +1 -1
  599. package/dist/dev/ui/fullscreen-button/index.js +1 -2
  600. package/dist/dev/ui/gesture/media-gesture.d.ts +23 -0
  601. package/dist/dev/ui/gesture/media-gesture.d.ts.map +1 -0
  602. package/dist/dev/ui/gesture/media-gesture.js +42 -0
  603. package/dist/dev/ui/gesture/media-gesture.js.map +1 -0
  604. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts +14 -0
  605. package/dist/dev/ui/gesture/use-doubletap-gesture.d.ts.map +1 -0
  606. package/dist/dev/ui/gesture/use-doubletap-gesture.js +29 -0
  607. package/dist/dev/ui/gesture/use-doubletap-gesture.js.map +1 -0
  608. package/dist/dev/ui/gesture/use-tap-gesture.d.ts +14 -0
  609. package/dist/dev/ui/gesture/use-tap-gesture.d.ts.map +1 -0
  610. package/dist/dev/ui/gesture/use-tap-gesture.js +29 -0
  611. package/dist/dev/ui/gesture/use-tap-gesture.js.map +1 -0
  612. package/dist/dev/ui/hooks/use-button.js +2 -4
  613. package/dist/dev/ui/hooks/use-button.js.map +1 -1
  614. package/dist/dev/ui/hooks/use-slider.d.ts +1 -1
  615. package/dist/dev/ui/hooks/use-slider.js +4 -6
  616. package/dist/dev/ui/hooks/use-slider.js.map +1 -1
  617. package/dist/dev/ui/hotkey/media-hotkey.d.ts +21 -0
  618. package/dist/dev/ui/hotkey/media-hotkey.d.ts.map +1 -0
  619. package/dist/dev/ui/hotkey/media-hotkey.js +41 -0
  620. package/dist/dev/ui/hotkey/media-hotkey.js.map +1 -0
  621. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts +5 -0
  622. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.d.ts.map +1 -0
  623. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js +16 -0
  624. package/dist/dev/ui/hotkey/use-aria-key-shortcuts.js.map +1 -0
  625. package/dist/dev/ui/hotkey/use-hotkey.d.ts +12 -0
  626. package/dist/dev/ui/hotkey/use-hotkey.d.ts.map +1 -0
  627. package/dist/dev/ui/hotkey/use-hotkey.js +32 -0
  628. package/dist/dev/ui/hotkey/use-hotkey.js.map +1 -0
  629. package/dist/dev/ui/mute-button/index.js +1 -2
  630. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  631. package/dist/dev/ui/mute-button/mute-button.js +4 -5
  632. package/dist/dev/ui/mute-button/mute-button.js.map +1 -1
  633. package/dist/dev/ui/pip-button/index.js +1 -2
  634. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  635. package/dist/dev/ui/pip-button/pip-button.js +4 -5
  636. package/dist/dev/ui/pip-button/pip-button.js.map +1 -1
  637. package/dist/dev/ui/play-button/index.js +1 -2
  638. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  639. package/dist/dev/ui/play-button/play-button.js +4 -5
  640. package/dist/dev/ui/play-button/play-button.js.map +1 -1
  641. package/dist/dev/ui/playback-rate-button/index.js +1 -2
  642. package/dist/dev/ui/playback-rate-button/playback-rate-button.js +2 -4
  643. package/dist/dev/ui/playback-rate-button/playback-rate-button.js.map +1 -1
  644. package/dist/dev/ui/popover/context.js +2 -4
  645. package/dist/dev/ui/popover/context.js.map +1 -1
  646. package/dist/dev/ui/popover/index.js +1 -2
  647. package/dist/dev/ui/popover/index.parts.js +1 -2
  648. package/dist/dev/ui/popover/popover-arrow.js +2 -4
  649. package/dist/dev/ui/popover/popover-arrow.js.map +1 -1
  650. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  651. package/dist/dev/ui/popover/popover-popup.js +13 -6
  652. package/dist/dev/ui/popover/popover-popup.js.map +1 -1
  653. package/dist/dev/ui/popover/popover-root.js +4 -6
  654. package/dist/dev/ui/popover/popover-root.js.map +1 -1
  655. package/dist/dev/ui/popover/popover-trigger.js +2 -4
  656. package/dist/dev/ui/popover/popover-trigger.js.map +1 -1
  657. package/dist/dev/ui/poster/index.js +1 -2
  658. package/dist/dev/ui/poster/poster.js +2 -4
  659. package/dist/dev/ui/poster/poster.js.map +1 -1
  660. package/dist/dev/ui/seek-button/index.js +1 -2
  661. package/dist/dev/ui/seek-button/seek-button.js +2 -4
  662. package/dist/dev/ui/seek-button/seek-button.js.map +1 -1
  663. package/dist/dev/ui/slider/context.js +2 -4
  664. package/dist/dev/ui/slider/context.js.map +1 -1
  665. package/dist/dev/ui/slider/index.js +1 -2
  666. package/dist/dev/ui/slider/index.parts.js +1 -2
  667. package/dist/dev/ui/slider/slider-buffer.js +2 -4
  668. package/dist/dev/ui/slider/slider-buffer.js.map +1 -1
  669. package/dist/dev/ui/slider/slider-fill.js +2 -4
  670. package/dist/dev/ui/slider/slider-fill.js.map +1 -1
  671. package/dist/dev/ui/slider/slider-preview.js +2 -4
  672. package/dist/dev/ui/slider/slider-preview.js.map +1 -1
  673. package/dist/dev/ui/slider/slider-root.js +2 -4
  674. package/dist/dev/ui/slider/slider-root.js.map +1 -1
  675. package/dist/dev/ui/slider/slider-thumb.js +2 -4
  676. package/dist/dev/ui/slider/slider-thumb.js.map +1 -1
  677. package/dist/dev/ui/slider/slider-thumbnail.js +2 -4
  678. package/dist/dev/ui/slider/slider-thumbnail.js.map +1 -1
  679. package/dist/dev/ui/slider/slider-track.js +2 -4
  680. package/dist/dev/ui/slider/slider-track.js.map +1 -1
  681. package/dist/dev/ui/slider/slider-value.js +2 -4
  682. package/dist/dev/ui/slider/slider-value.js.map +1 -1
  683. package/dist/dev/ui/thumbnail/index.d.ts +2 -0
  684. package/dist/dev/ui/thumbnail/index.js +2 -0
  685. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  686. package/dist/dev/ui/thumbnail/thumbnail.js +3 -6
  687. package/dist/dev/ui/thumbnail/thumbnail.js.map +1 -1
  688. package/dist/dev/ui/time/index.js +1 -2
  689. package/dist/dev/ui/time/index.parts.js +1 -2
  690. package/dist/dev/ui/time/time-group.js +2 -4
  691. package/dist/dev/ui/time/time-group.js.map +1 -1
  692. package/dist/dev/ui/time/time-separator.js +2 -4
  693. package/dist/dev/ui/time/time-separator.js.map +1 -1
  694. package/dist/dev/ui/time/time-value.js +2 -4
  695. package/dist/dev/ui/time/time-value.js.map +1 -1
  696. package/dist/dev/ui/time-slider/index.js +1 -2
  697. package/dist/dev/ui/time-slider/index.parts.js +1 -2
  698. package/dist/dev/ui/time-slider/time-slider-root.js +6 -8
  699. package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
  700. package/dist/dev/ui/tooltip/context.d.ts +4 -1
  701. package/dist/dev/ui/tooltip/context.d.ts.map +1 -1
  702. package/dist/dev/ui/tooltip/context.js +6 -5
  703. package/dist/dev/ui/tooltip/context.js.map +1 -1
  704. package/dist/dev/ui/tooltip/group-context.js +2 -4
  705. package/dist/dev/ui/tooltip/group-context.js.map +1 -1
  706. package/dist/dev/ui/tooltip/index.d.ts +2 -2
  707. package/dist/dev/ui/tooltip/index.js +2 -3
  708. package/dist/dev/ui/tooltip/index.parts.js +1 -2
  709. package/dist/dev/ui/tooltip/tooltip-arrow.js +2 -4
  710. package/dist/dev/ui/tooltip/tooltip-arrow.js.map +1 -1
  711. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  712. package/dist/dev/ui/tooltip/tooltip-popup.js +15 -7
  713. package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
  714. package/dist/dev/ui/tooltip/tooltip-provider.js +2 -4
  715. package/dist/dev/ui/tooltip/tooltip-provider.js.map +1 -1
  716. package/dist/dev/ui/tooltip/tooltip-root.d.ts.map +1 -1
  717. package/dist/dev/ui/tooltip/tooltip-root.js +9 -7
  718. package/dist/dev/ui/tooltip/tooltip-root.js.map +1 -1
  719. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  720. package/dist/dev/ui/tooltip/tooltip-trigger.js +4 -9
  721. package/dist/dev/ui/tooltip/tooltip-trigger.js.map +1 -1
  722. package/dist/dev/ui/volume-slider/index.js +1 -2
  723. package/dist/dev/ui/volume-slider/index.parts.js +1 -2
  724. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  725. package/dist/dev/ui/volume-slider/volume-slider-root.js +36 -20
  726. package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
  727. package/dist/dev/utils/attach-media-element.d.ts +9 -0
  728. package/dist/dev/utils/attach-media-element.d.ts.map +1 -0
  729. package/dist/dev/utils/attach-media-element.js +1 -1
  730. package/dist/dev/utils/media-props.d.ts +8 -0
  731. package/dist/dev/utils/media-props.d.ts.map +1 -0
  732. package/dist/dev/utils/media-props.js +14 -6
  733. package/dist/dev/utils/media-props.js.map +1 -1
  734. package/dist/dev/utils/merge-props.js +2 -3
  735. package/dist/dev/utils/merge-props.js.map +1 -1
  736. package/dist/dev/utils/use-composed-refs.d.ts +29 -0
  737. package/dist/dev/utils/use-composed-refs.d.ts.map +1 -0
  738. package/dist/dev/utils/use-composed-refs.js +2 -4
  739. package/dist/dev/utils/use-composed-refs.js.map +1 -1
  740. package/dist/dev/utils/use-destroy.d.ts +22 -0
  741. package/dist/dev/utils/use-destroy.d.ts.map +1 -0
  742. package/dist/dev/utils/use-destroy.js +14 -8
  743. package/dist/dev/utils/use-destroy.js.map +1 -1
  744. package/dist/dev/utils/use-force-render.js +2 -4
  745. package/dist/dev/utils/use-force-render.js.map +1 -1
  746. package/dist/dev/utils/use-latest-ref.d.ts +18 -0
  747. package/dist/dev/utils/use-latest-ref.d.ts.map +1 -0
  748. package/dist/dev/utils/use-latest-ref.js +2 -4
  749. package/dist/dev/utils/use-latest-ref.js.map +1 -1
  750. package/dist/dev/utils/use-media-instance.d.ts +16 -0
  751. package/dist/dev/utils/use-media-instance.d.ts.map +1 -0
  752. package/dist/dev/utils/use-media-instance.js +22 -0
  753. package/dist/dev/utils/use-media-instance.js.map +1 -0
  754. package/dist/dev/utils/use-render.d.ts.map +1 -1
  755. package/dist/dev/utils/use-render.js +7 -5
  756. package/dist/dev/utils/use-render.js.map +1 -1
  757. package/dist/dev/utils/use-safe-id.js +3 -5
  758. package/dist/dev/utils/use-safe-id.js.map +1 -1
  759. package/package.json +15 -15
  760. package/dist/default/icons/dist/react/default/pip.js +0 -27
  761. package/dist/default/icons/dist/react/default/pip.js.map +0 -1
  762. package/dist/default/icons/dist/react/minimal/pip.js +0 -27
  763. package/dist/default/icons/dist/react/minimal/pip.js.map +0 -1
  764. package/dist/default/presets/video/error-dialog.js +0 -51
  765. package/dist/default/presets/video/error-dialog.js.map +0 -1
  766. package/dist/default/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  767. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  768. package/dist/default/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
  769. package/dist/dev/icons/dist/react/default/pip.js +0 -27
  770. package/dist/dev/icons/dist/react/default/pip.js.map +0 -1
  771. package/dist/dev/icons/dist/react/minimal/pip.js +0 -27
  772. package/dist/dev/icons/dist/react/minimal/pip.js.map +0 -1
  773. package/dist/dev/presets/video/error-dialog.js +0 -51
  774. package/dist/dev/presets/video/error-dialog.js.map +0 -1
  775. package/dist/dev/skins/dist/default/default/tailwind/components/icon-state.js.map +0 -1
  776. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js +0 -29
  777. package/dist/dev/skins/dist/default/minimal/tailwind/components/icon-state.js.map +0 -1
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { createContext, useContext } from "react";
4
-
5
3
  //#region src/ui/controls/context.tsx
6
4
  const ControlsContext = createContext(null);
7
5
  const ControlsContextProvider = ControlsContext.Provider;
@@ -10,7 +8,7 @@ function useControlsContext() {
10
8
  if (!ctx) throw new Error("Controls compound components must be used within a Controls.Root");
11
9
  return ctx;
12
10
  }
13
-
14
11
  //#endregion
15
12
  export { ControlsContextProvider, useControlsContext };
13
+
16
14
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.tsx"],"sourcesContent":["'use client';\n\nimport type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst ControlsContext = createContext<ControlsContextValue | null>(null);\n\nexport const ControlsContextProvider = ControlsContext.Provider;\n\nexport function useControlsContext(): ControlsContextValue {\n const ctx = useContext(ControlsContext);\n if (!ctx) throw new Error('Controls compound components must be used within a Controls.Root');\n return ctx;\n}\n"],"mappings":";;;;;AAUA,MAAM,kBAAkB,cAA2C,KAAK;AAExE,MAAa,0BAA0B,gBAAgB;AAEvD,SAAgB,qBAA2C;CACzD,MAAM,MAAM,WAAW,gBAAgB;AACvC,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,mEAAmE;AAC7F,QAAO"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/controls/context.tsx"],"sourcesContent":["'use client';\n\nimport type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst ControlsContext = createContext<ControlsContextValue | null>(null);\n\nexport const ControlsContextProvider = ControlsContext.Provider;\n\nexport function useControlsContext(): ControlsContextValue {\n const ctx = useContext(ControlsContext);\n if (!ctx) throw new Error('Controls compound components must be used within a Controls.Root');\n return ctx;\n}\n"],"mappings":";;;AAUA,MAAM,kBAAkB,cAA2C,KAAK;AAExE,MAAa,0BAA0B,gBAAgB;AAEvD,SAAgB,qBAA2C;CACzD,MAAM,MAAM,WAAW,gBAAgB;AACvC,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,mEAAmE;AAC7F,QAAO"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { renderElement } from "../../utils/use-render.js";
4
3
  import { useControlsContext } from "./context.js";
5
4
  import { forwardRef } from "react";
6
-
7
5
  //#region src/ui/controls/controls-group.tsx
8
6
  /** Layout group for related controls; sets `role="group"` when labeled. */
9
7
  const ControlsGroup = forwardRef(function ControlsGroup(componentProps, forwardedRef) {
@@ -24,7 +22,7 @@ const ControlsGroup = forwardRef(function ControlsGroup(componentProps, forwarde
24
22
  }, elementProps]
25
23
  });
26
24
  });
27
-
28
25
  //#endregion
29
26
  export { ControlsGroup };
27
+
30
28
  //# sourceMappingURL=controls-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-group.js","names":[],"sources":["../../../../src/ui/controls/controls-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ControlsCore } from '@videojs/core';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsGroupProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Layout group for related controls; sets `role=\"group\"` when labeled. */\nexport const ControlsGroup = forwardRef(function ControlsGroup(\n componentProps: ControlsGroupProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const { state, stateAttrMap } = useControlsContext();\n const role = elementProps['aria-label'] || elementProps['aria-labelledby'] ? 'group' : undefined;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role, children }, elementProps],\n }\n );\n});\n\nexport namespace ControlsGroup {\n export type Props = ControlsGroupProps;\n}\n"],"mappings":";;;;;;;;AAeA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,EAAE,OAAO,iBAAiB,oBAAoB;CACpD,MAAM,OAAO,aAAa,iBAAiB,aAAa,qBAAqB,UAAU;AAEvF,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA;EACA,KAAK,CAAC,aAAa;EACnB,OAAO,CAAC;GAAE;GAAM;GAAU,EAAE,aAAa;EAC1C,CACF;EACD"}
1
+ {"version":3,"file":"controls-group.js","names":[],"sources":["../../../../src/ui/controls/controls-group.tsx"],"sourcesContent":["'use client';\n\nimport type { ControlsCore } from '@videojs/core';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useControlsContext } from './context';\n\nexport interface ControlsGroupProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Layout group for related controls; sets `role=\"group\"` when labeled. */\nexport const ControlsGroup = forwardRef(function ControlsGroup(\n componentProps: ControlsGroupProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const { state, stateAttrMap } = useControlsContext();\n const role = elementProps['aria-label'] || elementProps['aria-labelledby'] ? 'group' : undefined;\n\n return renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: [forwardedRef],\n props: [{ role, children }, elementProps],\n }\n );\n});\n\nexport namespace ControlsGroup {\n export type Props = ControlsGroupProps;\n}\n"],"mappings":";;;;;;AAeA,MAAa,gBAAgB,WAAW,SAAS,cAC/C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,EAAE,OAAO,iBAAiB,oBAAoB;CACpD,MAAM,OAAO,aAAa,iBAAiB,aAAa,qBAAqB,UAAU,KAAA;AAEvF,QAAO,cACL,OACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA;EACA,KAAK,CAAC,aAAa;EACnB,OAAO,CAAC;GAAE;GAAM;GAAU,EAAE,aAAa;EAC1C,CACF;EACD"}
@@ -1,5 +1,4 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { usePlayer } from "../../player/context.js";
4
3
  import { renderElement } from "../../utils/use-render.js";
5
4
  import { ControlsContextProvider } from "./context.js";
@@ -7,7 +6,6 @@ import { logMissingFeature, selectControls } from "@videojs/core/dom";
7
6
  import { forwardRef, useState } from "react";
8
7
  import { jsx } from "react/jsx-runtime";
9
8
  import { ControlsCore, ControlsDataAttrs } from "@videojs/core";
10
-
11
9
  //#region src/ui/controls/controls-root.tsx
12
10
  /** Root container for player controls state and rendered control content. */
13
11
  const ControlsRoot = forwardRef(function ControlsRoot(componentProps, forwardedRef) {
@@ -37,7 +35,7 @@ const ControlsRoot = forwardRef(function ControlsRoot(componentProps, forwardedR
37
35
  })
38
36
  });
39
37
  });
40
-
41
38
  //#endregion
42
39
  export { ControlsRoot };
40
+
43
41
  //# sourceMappingURL=controls-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controls-root.js","names":[],"sources":["../../../../src/ui/controls/controls-root.tsx"],"sourcesContent":["'use client';\n\nimport { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { ControlsContextProvider } from './context';\n\nexport interface ControlsRootProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Root container for player controls state and rendered control content. */\nexport const ControlsRoot = forwardRef(function ControlsRoot(\n componentProps: ControlsRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const controls = usePlayer(selectControls);\n\n const [core] = useState(() => new ControlsCore());\n\n if (!controls) {\n if (__DEV__) logMissingFeature('Controls.Root', 'controls');\n return null;\n }\n\n core.setMedia(controls);\n const state = core.getState();\n\n return (\n <ControlsContextProvider value={{ state, stateAttrMap: ControlsDataAttrs }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ControlsDataAttrs,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n )}\n </ControlsContextProvider>\n );\n});\n\nexport namespace ControlsRoot {\n export type Props = ControlsRootProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAa,eAAe,WAAW,SAAS,aAC9C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,WAAW,UAAU,eAAe;CAE1C,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;AAEjD,KAAI,CAAC,UAAU;AACA,oBAAkB,iBAAiB,WAAW;AAC3D,SAAO;;AAGT,MAAK,SAAS,SAAS;CACvB,MAAM,QAAQ,KAAK,UAAU;AAE7B,QACE,oBAAC;EAAwB,OAAO;GAAE;GAAO,cAAc;GAAmB;YACvE,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,aAAa;GACnB,OAAO,CAAC,EAAE,UAAU,EAAE,aAAa;GACpC,CACF;GACuB;EAE5B"}
1
+ {"version":3,"file":"controls-root.js","names":[],"sources":["../../../../src/ui/controls/controls-root.tsx"],"sourcesContent":["'use client';\n\nimport { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { ForwardedRef, ReactNode } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { ControlsContextProvider } from './context';\n\nexport interface ControlsRootProps extends UIComponentProps<'div', ControlsCore.State> {\n children?: ReactNode | undefined;\n}\n\n/** Root container for player controls state and rendered control content. */\nexport const ControlsRoot = forwardRef(function ControlsRoot(\n componentProps: ControlsRootProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const { render, className, style, children, ...elementProps } = componentProps;\n\n const controls = usePlayer(selectControls);\n\n const [core] = useState(() => new ControlsCore());\n\n if (!controls) {\n if (__DEV__) logMissingFeature('Controls.Root', 'controls');\n return null;\n }\n\n core.setMedia(controls);\n const state = core.getState();\n\n return (\n <ControlsContextProvider value={{ state, stateAttrMap: ControlsDataAttrs }}>\n {renderElement(\n 'div',\n { render, className, style },\n {\n state,\n stateAttrMap: ControlsDataAttrs,\n ref: [forwardedRef],\n props: [{ children }, elementProps],\n }\n )}\n </ControlsContextProvider>\n );\n});\n\nexport namespace ControlsRoot {\n export type Props = ControlsRootProps;\n export type State = ControlsCore.State;\n}\n"],"mappings":";;;;;;;;;;AAiBA,MAAa,eAAe,WAAW,SAAS,aAC9C,gBACA,cACA;CACA,MAAM,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,iBAAiB;CAEhE,MAAM,WAAW,UAAU,eAAe;CAE1C,MAAM,CAAC,QAAQ,eAAe,IAAI,cAAc,CAAC;AAEjD,KAAI,CAAC,UAAU;AACA,oBAAkB,iBAAiB,WAAW;AAC3D,SAAO;;AAGT,MAAK,SAAS,SAAS;CACvB,MAAM,QAAQ,KAAK,UAAU;AAE7B,QACE,oBAAC,yBAAD;EAAyB,OAAO;GAAE;GAAO,cAAc;GAAmB;YACvE,cACC,OACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA,cAAc;GACd,KAAK,CAAC,aAAa;GACnB,OAAO,CAAC,EAAE,UAAU,EAAE,aAAa;GACpC,CACF;EACuB,CAAA;EAE5B"}
@@ -1,3 +1,2 @@
1
1
  import { index_parts_exports } from "./index.parts.js";
2
-
3
- export { index_parts_exports as Controls };
2
+ export { index_parts_exports as Controls };
@@ -1,13 +1,12 @@
1
1
  import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { ControlsGroup } from "./controls-group.js";
3
3
  import { ControlsRoot } from "./controls-root.js";
4
-
5
4
  //#region src/ui/controls/index.parts.ts
6
5
  var index_parts_exports = /* @__PURE__ */ __exportAll({
7
6
  Group: () => ControlsGroup,
8
7
  Root: () => ControlsRoot
9
8
  });
10
-
11
9
  //#endregion
12
10
  export { index_parts_exports };
11
+
13
12
  //# sourceMappingURL=index.parts.js.map
@@ -1,8 +1,6 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { renderElement } from "../utils/use-render.js";
4
3
  import { forwardRef } from "react";
5
-
6
4
  //#region src/ui/create-context-part.tsx
7
5
  function createContextPart(config) {
8
6
  const { displayName, tag, useContext, staticProps, getProps } = config;
@@ -28,7 +26,7 @@ function createContextPart(config) {
28
26
  Component.displayName = displayName;
29
27
  return Component;
30
28
  }
31
-
32
29
  //#endregion
33
30
  export { createContextPart };
31
+
34
32
  //# sourceMappingURL=create-context-part.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-context-part.js","names":[],"sources":["../../../src/ui/create-context-part.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap } from '@videojs/core';\nimport type { ForwardRefExoticComponent } from 'react';\nimport { forwardRef } from 'react';\nimport type { UIComponentProps } from '@/utils/types';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\n\ninterface ContextPartConfig<Props extends object, State extends object> {\n displayName: string;\n tag: keyof React.JSX.IntrinsicElements;\n useContext: () => { state: State; stateAttrMap: StateAttrMap<State> };\n staticProps?: Partial<Props>;\n /** Derive props from state on each render (e.g. `id` from a state field). */\n getProps?: (state: State) => Record<string, unknown>;\n}\n\nexport function createContextPart<Props extends UIComponentProps<any, any>, State extends object>(\n config: ContextPartConfig<Props, State>\n): ForwardRefExoticComponent<Props> {\n const { displayName, tag, useContext, staticProps, getProps } = config;\n\n const Component = forwardRef<HTMLElement, Props>(function ContextPart(componentProps, forwardedRef) {\n const { render, className, style, ...elementProps } = componentProps;\n const context = useContext();\n const dynamicProps = getProps?.(context.state);\n\n return renderElement(tag, { render, className, style } as renderElementFn.ComponentProps<State>, {\n state: context.state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [staticProps, dynamicProps, elementProps].filter(Boolean),\n });\n });\n\n Component.displayName = displayName;\n\n return Component as ForwardRefExoticComponent<Props>;\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,kBACd,QACkC;CAClC,MAAM,EAAE,aAAa,KAAK,YAAY,aAAa,aAAa;CAEhE,MAAM,YAAY,WAA+B,SAAS,YAAY,gBAAgB,cAAc;EAClG,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;EACtD,MAAM,UAAU,YAAY;EAC5B,MAAM,eAAe,WAAW,QAAQ,MAAM;AAE9C,SAAO,cAAc,KAAK;GAAE;GAAQ;GAAW;GAAO,EAA2C;GAC/F,OAAO,QAAQ;GACf,cAAc,QAAQ;GACtB,KAAK;GACL,OAAO;IAAC;IAAa;IAAc;IAAa,CAAC,OAAO,QAAQ;GACjE,CAAC;GACF;AAEF,WAAU,cAAc;AAExB,QAAO"}
1
+ {"version":3,"file":"create-context-part.js","names":[],"sources":["../../../src/ui/create-context-part.tsx"],"sourcesContent":["'use client';\n\nimport type { StateAttrMap } from '@videojs/core';\nimport type { ForwardRefExoticComponent } from 'react';\nimport { forwardRef } from 'react';\nimport type { UIComponentProps } from '@/utils/types';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\n\ninterface ContextPartConfig<Props extends object, State extends object> {\n displayName: string;\n tag: keyof React.JSX.IntrinsicElements;\n useContext: () => { state: State; stateAttrMap: StateAttrMap<State> };\n staticProps?: Partial<Props>;\n /** Derive props from state on each render (e.g. `id` from a state field). */\n getProps?: (state: State) => Record<string, unknown>;\n}\n\nexport function createContextPart<Props extends UIComponentProps<any, any>, State extends object>(\n config: ContextPartConfig<Props, State>\n): ForwardRefExoticComponent<Props> {\n const { displayName, tag, useContext, staticProps, getProps } = config;\n\n const Component = forwardRef<HTMLElement, Props>(function ContextPart(componentProps, forwardedRef) {\n const { render, className, style, ...elementProps } = componentProps;\n const context = useContext();\n const dynamicProps = getProps?.(context.state);\n\n return renderElement(tag, { render, className, style } as renderElementFn.ComponentProps<State>, {\n state: context.state,\n stateAttrMap: context.stateAttrMap,\n ref: forwardedRef,\n props: [staticProps, dynamicProps, elementProps].filter(Boolean),\n });\n });\n\n Component.displayName = displayName;\n\n return Component as ForwardRefExoticComponent<Props>;\n}\n"],"mappings":";;;;AAkBA,SAAgB,kBACd,QACkC;CAClC,MAAM,EAAE,aAAa,KAAK,YAAY,aAAa,aAAa;CAEhE,MAAM,YAAY,WAA+B,SAAS,YAAY,gBAAgB,cAAc;EAClG,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,iBAAiB;EACtD,MAAM,UAAU,YAAY;EAC5B,MAAM,eAAe,WAAW,QAAQ,MAAM;AAE9C,SAAO,cAAc,KAAK;GAAE;GAAQ;GAAW;GAAO,EAA2C;GAC/F,OAAO,QAAQ;GACf,cAAc,QAAQ;GACtB,KAAK;GACL,OAAO;IAAC;IAAa;IAAc;IAAa,CAAC,OAAO,QAAQ;GACjE,CAAC;GACF;AAEF,WAAU,cAAc;AAExB,QAAO"}
@@ -1,15 +1,15 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { usePlayer } from "../player/context.js";
4
3
  import { renderElement } from "../utils/use-render.js";
5
4
  import { useButton } from "./hooks/use-button.js";
5
+ import { useAriaKeyShortcuts } from "./hotkey/use-aria-key-shortcuts.js";
6
+ import { useOptionalTooltipContext } from "./tooltip/context.js";
6
7
  import { logMissingFeature } from "@videojs/core/dom";
7
- import { forwardRef, useState } from "react";
8
-
8
+ import { forwardRef, useLayoutEffect, useState } from "react";
9
9
  //#region src/ui/create-media-button.tsx
10
10
  /** Creates a media button React component from a core class and config. */
11
11
  function createMediaButton(config) {
12
- const { displayName, core: CoreClass, stateAttrMap, selector, action } = config;
12
+ const { displayName, core: CoreClass, stateAttrMap, selector, action, hotkeyAction } = config;
13
13
  const corePropKeys = new Set(Object.keys(CoreClass.defaultProps));
14
14
  const Component = forwardRef(function MediaButton(componentProps, forwardedRef) {
15
15
  const { render, className, style, ...rest } = componentProps;
@@ -17,7 +17,9 @@ function createMediaButton(config) {
17
17
  const elementProps = {};
18
18
  for (const key of Object.keys(rest)) if (corePropKeys.has(key)) coreProps[key] = rest[key];
19
19
  else elementProps[key] = rest[key];
20
+ const tooltipCtx = useOptionalTooltipContext();
20
21
  const feature = usePlayer(selector);
22
+ const shortcuts = useAriaKeyShortcuts(hotkeyAction);
21
23
  const [core] = useState(() => new CoreClass());
22
24
  core.setProps(coreProps);
23
25
  const { getButtonProps, buttonRef } = useButton({
@@ -25,12 +27,22 @@ function createMediaButton(config) {
25
27
  onActivate: () => action(core, feature),
26
28
  isDisabled: () => !!coreProps.disabled || !feature
27
29
  });
28
- if (!feature) {
30
+ if (feature) core.setMedia(feature);
31
+ const state = feature ? core.getState() : null;
32
+ const label = state ? core.getLabel(state) : void 0;
33
+ useLayoutEffect(() => {
34
+ if (!tooltipCtx) return;
35
+ tooltipCtx.setContent(label);
36
+ return () => tooltipCtx.setContent(void 0);
37
+ }, [tooltipCtx, label]);
38
+ if (!feature || !state) {
29
39
  logMissingFeature(displayName, selector.displayName ?? displayName);
30
40
  return null;
31
41
  }
32
- core.setMedia(feature);
33
- const state = core.getState();
42
+ const attrs = {
43
+ ...core.getAttrs(state),
44
+ "aria-keyshortcuts": shortcuts
45
+ };
34
46
  return renderElement("button", {
35
47
  render,
36
48
  className,
@@ -40,7 +52,7 @@ function createMediaButton(config) {
40
52
  stateAttrMap,
41
53
  ref: [forwardedRef, buttonRef],
42
54
  props: [
43
- core.getAttrs(state),
55
+ attrs,
44
56
  elementProps,
45
57
  getButtonProps()
46
58
  ]
@@ -49,7 +61,7 @@ function createMediaButton(config) {
49
61
  Component.displayName = displayName;
50
62
  return Component;
51
63
  }
52
-
53
64
  //#endregion
54
65
  export { createMediaButton };
66
+
55
67
  //# sourceMappingURL=create-media-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-media-button.js","names":[],"sources":["../../../src/ui/create-media-button.tsx"],"sourcesContent":["'use client';\n\nimport type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport type { Selector } from '@videojs/store';\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useState } from 'react';\n\nimport { usePlayer } from '../player/context';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\nimport { useButton } from './hooks/use-button';\n\ninterface MediaButtonConfig<Core extends Required<MediaUIComponent>> {\n displayName: string;\n core: { new (): Core; defaultProps: Record<string, unknown> };\n stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n selector: Selector<object, InferMediaState<Core> | undefined>;\n action: (core: Core, state: InferMediaState<Core>) => void;\n}\n\n/** Creates a media button React component from a core class and config. */\nexport function createMediaButton<Core extends Required<MediaUIComponent>, Props extends object>(\n config: MediaButtonConfig<Core>\n): ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>> {\n const { displayName, core: CoreClass, stateAttrMap, selector, action } = config;\n\n // Props that exist in the core's defaultProps are routed to setProps; the rest go to the DOM element.\n const corePropKeys = new Set(Object.keys(CoreClass.defaultProps));\n\n const Component = forwardRef(function MediaButton(\n componentProps: Record<string, unknown>,\n forwardedRef: ForwardedRef<HTMLButtonElement>\n ) {\n const { render, className, style, ...rest } = componentProps;\n\n const coreProps: Record<string, unknown> = {};\n const elementProps: Record<string, unknown> = {};\n\n for (const key of Object.keys(rest)) {\n if (corePropKeys.has(key)) {\n coreProps[key] = rest[key];\n } else {\n elementProps[key] = rest[key];\n }\n }\n\n const feature = usePlayer(selector);\n\n const [core] = useState(() => new CoreClass());\n core.setProps(coreProps);\n\n const { getButtonProps, buttonRef } = useButton({\n displayName,\n onActivate: () => action(core, feature!),\n isDisabled: () => !!coreProps.disabled || !feature,\n });\n\n if (!feature) {\n if (__DEV__) logMissingFeature(displayName, selector.displayName ?? displayName);\n return null;\n }\n\n type State = InferComponentState<Core>;\n\n core.setMedia(feature);\n const state = core.getState() as State;\n\n return renderElement(\n 'button',\n { render, className, style } as renderElementFn.ComponentProps<InferComponentState<Core>>,\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, buttonRef],\n props: [core.getAttrs(state), elementProps, getButtonProps()],\n }\n );\n });\n\n Component.displayName = displayName;\n\n return Component as unknown as ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>>;\n}\n"],"mappings":";;;;;;;;;;AAsBA,SAAgB,kBACd,QACqE;CACrE,MAAM,EAAE,aAAa,MAAM,WAAW,cAAc,UAAU,WAAW;CAGzE,MAAM,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,aAAa,CAAC;CAEjE,MAAM,YAAY,WAAW,SAAS,YACpC,gBACA,cACA;EACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,SAAS;EAE9C,MAAM,YAAqC,EAAE;EAC7C,MAAM,eAAwC,EAAE;AAEhD,OAAK,MAAM,OAAO,OAAO,KAAK,KAAK,CACjC,KAAI,aAAa,IAAI,IAAI,CACvB,WAAU,OAAO,KAAK;MAEtB,cAAa,OAAO,KAAK;EAI7B,MAAM,UAAU,UAAU,SAAS;EAEnC,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;AAC9C,OAAK,SAAS,UAAU;EAExB,MAAM,EAAE,gBAAgB,cAAc,UAAU;GAC9C;GACA,kBAAkB,OAAO,MAAM,QAAS;GACxC,kBAAkB,CAAC,CAAC,UAAU,YAAY,CAAC;GAC5C,CAAC;AAEF,MAAI,CAAC,SAAS;AACC,qBAAkB,aAAa,SAAS,eAAe,YAAY;AAChF,UAAO;;AAKT,OAAK,SAAS,QAAQ;EACtB,MAAM,QAAQ,KAAK,UAAU;AAE7B,SAAO,cACL,UACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA;GACA,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO;IAAC,KAAK,SAAS,MAAM;IAAE;IAAc,gBAAgB;IAAC;GAC9D,CACF;GACD;AAEF,WAAU,cAAc;AAExB,QAAO"}
1
+ {"version":3,"file":"create-media-button.js","names":[],"sources":["../../../src/ui/create-media-button.tsx"],"sourcesContent":["'use client';\n\nimport type { InferComponentState, InferMediaState, MediaButtonComponent, StateAttrMap } from '@videojs/core';\nimport { logMissingFeature } from '@videojs/core/dom';\nimport type { Selector } from '@videojs/store';\nimport type { ForwardedRef, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport { forwardRef, useLayoutEffect, useState } from 'react';\n\nimport { usePlayer } from '../player/context';\nimport type { renderElement as renderElementFn } from '../utils/use-render';\nimport { renderElement } from '../utils/use-render';\nimport { useButton } from './hooks/use-button';\nimport { useAriaKeyShortcuts } from './hotkey/use-aria-key-shortcuts';\nimport { useOptionalTooltipContext } from './tooltip/context';\n\ninterface MediaButtonConfig<Core extends Required<MediaButtonComponent>> {\n displayName: string;\n core: { new (): Core; defaultProps: Record<string, unknown> };\n stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n selector: Selector<object, InferMediaState<Core> | undefined>;\n action: (core: Core, state: InferMediaState<Core>) => void;\n hotkeyAction?: string;\n}\n\n/** Creates a media button React component from a core class and config. */\nexport function createMediaButton<Core extends Required<MediaButtonComponent>, Props extends object>(\n config: MediaButtonConfig<Core>\n): ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>> {\n const { displayName, core: CoreClass, stateAttrMap, selector, action, hotkeyAction } = config;\n\n // Props that exist in the core's defaultProps are routed to setProps; the rest go to the DOM element.\n const corePropKeys = new Set(Object.keys(CoreClass.defaultProps));\n\n const Component = forwardRef(function MediaButton(\n componentProps: Record<string, unknown>,\n forwardedRef: ForwardedRef<HTMLButtonElement>\n ) {\n const { render, className, style, ...rest } = componentProps;\n\n const coreProps: Record<string, unknown> = {};\n const elementProps: Record<string, unknown> = {};\n\n for (const key of Object.keys(rest)) {\n if (corePropKeys.has(key)) {\n coreProps[key] = rest[key];\n } else {\n elementProps[key] = rest[key];\n }\n }\n\n const tooltipCtx = useOptionalTooltipContext();\n const feature = usePlayer(selector);\n const shortcuts = useAriaKeyShortcuts(hotkeyAction);\n\n const [core] = useState(() => new CoreClass());\n core.setProps(coreProps);\n\n const { getButtonProps, buttonRef } = useButton({\n displayName,\n onActivate: () => action(core, feature!),\n isDisabled: () => !!coreProps.disabled || !feature,\n });\n\n // Derive state and label before the hooks boundary so the\n // useLayoutEffect below (called unconditionally) can reference them.\n type State = InferComponentState<Core>;\n if (feature) core.setMedia(feature);\n const state = feature ? (core.getState() as State) : null;\n const label = state ? core.getLabel(state) : undefined;\n\n // Forward label to tooltip popup content when inside a Tooltip.Root.\n useLayoutEffect(() => {\n if (!tooltipCtx) return;\n tooltipCtx.setContent(label);\n return () => tooltipCtx.setContent(undefined);\n }, [tooltipCtx, label]);\n\n if (!feature || !state) {\n if (__DEV__) logMissingFeature(displayName, selector.displayName ?? displayName);\n return null;\n }\n\n const attrs = { ...core.getAttrs(state), 'aria-keyshortcuts': shortcuts };\n\n return renderElement(\n 'button',\n { render, className, style } as renderElementFn.ComponentProps<InferComponentState<Core>>,\n {\n state,\n stateAttrMap,\n ref: [forwardedRef, buttonRef],\n props: [attrs, elementProps, getButtonProps()],\n }\n );\n });\n\n Component.displayName = displayName;\n\n return Component as unknown as ForwardRefExoticComponent<Props & RefAttributes<HTMLButtonElement>>;\n}\n"],"mappings":";;;;;;;;;;AAyBA,SAAgB,kBACd,QACqE;CACrE,MAAM,EAAE,aAAa,MAAM,WAAW,cAAc,UAAU,QAAQ,iBAAiB;CAGvF,MAAM,eAAe,IAAI,IAAI,OAAO,KAAK,UAAU,aAAa,CAAC;CAEjE,MAAM,YAAY,WAAW,SAAS,YACpC,gBACA,cACA;EACA,MAAM,EAAE,QAAQ,WAAW,OAAO,GAAG,SAAS;EAE9C,MAAM,YAAqC,EAAE;EAC7C,MAAM,eAAwC,EAAE;AAEhD,OAAK,MAAM,OAAO,OAAO,KAAK,KAAK,CACjC,KAAI,aAAa,IAAI,IAAI,CACvB,WAAU,OAAO,KAAK;MAEtB,cAAa,OAAO,KAAK;EAI7B,MAAM,aAAa,2BAA2B;EAC9C,MAAM,UAAU,UAAU,SAAS;EACnC,MAAM,YAAY,oBAAoB,aAAa;EAEnD,MAAM,CAAC,QAAQ,eAAe,IAAI,WAAW,CAAC;AAC9C,OAAK,SAAS,UAAU;EAExB,MAAM,EAAE,gBAAgB,cAAc,UAAU;GAC9C;GACA,kBAAkB,OAAO,MAAM,QAAS;GACxC,kBAAkB,CAAC,CAAC,UAAU,YAAY,CAAC;GAC5C,CAAC;AAKF,MAAI,QAAS,MAAK,SAAS,QAAQ;EACnC,MAAM,QAAQ,UAAW,KAAK,UAAU,GAAa;EACrD,MAAM,QAAQ,QAAQ,KAAK,SAAS,MAAM,GAAG,KAAA;AAG7C,wBAAsB;AACpB,OAAI,CAAC,WAAY;AACjB,cAAW,WAAW,MAAM;AAC5B,gBAAa,WAAW,WAAW,KAAA,EAAU;KAC5C,CAAC,YAAY,MAAM,CAAC;AAEvB,MAAI,CAAC,WAAW,CAAC,OAAO;AACT,qBAAkB,aAAa,SAAS,eAAe,YAAY;AAChF,UAAO;;EAGT,MAAM,QAAQ;GAAE,GAAG,KAAK,SAAS,MAAM;GAAE,qBAAqB;GAAW;AAEzE,SAAO,cACL,UACA;GAAE;GAAQ;GAAW;GAAO,EAC5B;GACE;GACA;GACA,KAAK,CAAC,cAAc,UAAU;GAC9B,OAAO;IAAC;IAAO;IAAc,gBAAgB;IAAC;GAC/C,CACF;GACD;AAEF,WAAU,cAAc;AAExB,QAAO"}
@@ -0,0 +1,10 @@
1
+ import { MediaError } from "@videojs/core";
2
+
3
+ //#region src/ui/error-dialog/context.d.ts
4
+ interface ErrorDialogContextValue {
5
+ lastError: MediaError | null;
6
+ }
7
+ declare function useErrorDialogContext(): ErrorDialogContextValue;
8
+ //#endregion
9
+ export { ErrorDialogContextValue, useErrorDialogContext };
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"mappings":";;;UAKiB,uBAAA;EACf,SAAA,EAAW,UAAA;AAAA;AAAA,iBAOG,qBAAA,CAAA,GAAyB,uBAAA"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { createContext, useContext } from "react";
3
+ //#region src/ui/error-dialog/context.tsx
4
+ const ErrorDialogContext = createContext(null);
5
+ const ErrorDialogContextProvider = ErrorDialogContext.Provider;
6
+ function useErrorDialogContext() {
7
+ const ctx = useContext(ErrorDialogContext);
8
+ if (!ctx) throw new Error("ErrorDialog compound components must be used within an ErrorDialog.Root");
9
+ return ctx;
10
+ }
11
+ //#endregion
12
+ export { ErrorDialogContextProvider, useErrorDialogContext };
13
+
14
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/error-dialog/context.tsx"],"sourcesContent":["'use client';\n\nimport type { MediaError } from '@videojs/core';\nimport { createContext, useContext } from 'react';\n\nexport interface ErrorDialogContextValue {\n lastError: MediaError | null;\n}\n\nconst ErrorDialogContext = createContext<ErrorDialogContextValue | null>(null);\n\nexport const ErrorDialogContextProvider = ErrorDialogContext.Provider;\n\nexport function useErrorDialogContext(): ErrorDialogContextValue {\n const ctx = useContext(ErrorDialogContext);\n if (!ctx) throw new Error('ErrorDialog compound components must be used within an ErrorDialog.Root');\n return ctx;\n}\n"],"mappings":";;;AASA,MAAM,qBAAqB,cAA8C,KAAK;AAE9E,MAAa,6BAA6B,mBAAmB;AAE7D,SAAgB,wBAAiD;CAC/D,MAAM,MAAM,WAAW,mBAAmB;AAC1C,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM,0EAA0E;AACpG,QAAO"}
@@ -0,0 +1,14 @@
1
+ import { UIComponentProps } from "../../utils/types.js";
2
+ import * as react from "react";
3
+ import { AlertDialogCore } from "@videojs/core";
4
+
5
+ //#region src/ui/error-dialog/error-dialog-description.d.ts
6
+ interface ErrorDialogDescriptionProps extends UIComponentProps<'p', AlertDialogCore.State> {}
7
+ declare const ErrorDialogDescription: react.ForwardRefExoticComponent<Omit<ErrorDialogDescriptionProps, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
8
+ declare namespace ErrorDialogDescription {
9
+ type Props = ErrorDialogDescriptionProps;
10
+ type State = AlertDialogCore.State;
11
+ }
12
+ //#endregion
13
+ export { ErrorDialogDescription, ErrorDialogDescriptionProps };
14
+ //# sourceMappingURL=error-dialog-description.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-dialog-description.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-description.tsx"],"mappings":";;;;;UAYiB,2BAAA,SAAoC,gBAAA,MAAsB,eAAA,CAAgB,KAAA;AAAA,cAE9E,sBAAA,EAAsB,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,2BAAA,WAAA,KAAA,CAAA,aAAA,CAAA,oBAAA;AAAA,kBAqBlB,sBAAA;EAAA,KACH,KAAA,GAAQ,2BAAA;EAAA,KACR,KAAA,GAAQ,eAAA,CAAgB,KAAA;AAAA"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { useAlertDialogContext } from "../alert-dialog/context.js";
3
+ import { renderElement } from "../../utils/use-render.js";
4
+ import { useErrorDialogContext } from "./context.js";
5
+ import { forwardRef } from "react";
6
+ //#region src/ui/error-dialog/error-dialog-description.tsx
7
+ const FALLBACK_MESSAGE = "An error occurred. Please try again.";
8
+ const ErrorDialogDescription = forwardRef(function ErrorDialogDescription({ render, className, style, children, ...elementProps }, forwardedRef) {
9
+ const { state, stateAttrMap } = useAlertDialogContext();
10
+ const { lastError } = useErrorDialogContext();
11
+ return renderElement("p", {
12
+ render,
13
+ className,
14
+ style
15
+ }, {
16
+ state,
17
+ stateAttrMap,
18
+ ref: forwardedRef,
19
+ props: [{
20
+ id: state.descriptionId,
21
+ children: children ?? lastError?.message ?? FALLBACK_MESSAGE
22
+ }, elementProps]
23
+ });
24
+ });
25
+ //#endregion
26
+ export { ErrorDialogDescription };
27
+
28
+ //# sourceMappingURL=error-dialog-description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-dialog-description.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-description.tsx"],"sourcesContent":["'use client';\n\nimport type { AlertDialogCore } from '@videojs/core';\nimport { forwardRef } from 'react';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { renderElement } from '../../utils/use-render';\nimport { useAlertDialogContext } from '../alert-dialog/context';\nimport { useErrorDialogContext } from './context';\n\nconst FALLBACK_MESSAGE = 'An error occurred. Please try again.';\n\nexport interface ErrorDialogDescriptionProps extends UIComponentProps<'p', AlertDialogCore.State> {}\n\nexport const ErrorDialogDescription = forwardRef<HTMLParagraphElement, ErrorDialogDescriptionProps>(\n function ErrorDialogDescription({ render, className, style, children, ...elementProps }, forwardedRef) {\n const { state, stateAttrMap } = useAlertDialogContext();\n const { lastError } = useErrorDialogContext();\n\n return renderElement(\n 'p',\n { render, className, style },\n {\n state,\n stateAttrMap,\n ref: forwardedRef,\n props: [\n { id: state.descriptionId, children: children ?? lastError?.message ?? FALLBACK_MESSAGE },\n elementProps,\n ],\n }\n );\n }\n);\n\nexport namespace ErrorDialogDescription {\n export type Props = ErrorDialogDescriptionProps;\n export type State = AlertDialogCore.State;\n}\n"],"mappings":";;;;;;AAUA,MAAM,mBAAmB;AAIzB,MAAa,yBAAyB,WACpC,SAAS,uBAAuB,EAAE,QAAQ,WAAW,OAAO,UAAU,GAAG,gBAAgB,cAAc;CACrG,MAAM,EAAE,OAAO,iBAAiB,uBAAuB;CACvD,MAAM,EAAE,cAAc,uBAAuB;AAE7C,QAAO,cACL,KACA;EAAE;EAAQ;EAAW;EAAO,EAC5B;EACE;EACA;EACA,KAAK;EACL,OAAO,CACL;GAAE,IAAI,MAAM;GAAe,UAAU,YAAY,WAAW,WAAW;GAAkB,EACzF,aACD;EACF,CACF;EAEJ"}
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from "react";
2
+
3
+ //#region src/ui/error-dialog/error-dialog-root.d.ts
4
+ interface ErrorDialogRootProps {
5
+ children?: ReactNode;
6
+ }
7
+ declare function ErrorDialogRoot({
8
+ children
9
+ }: ErrorDialogRootProps): ReactNode;
10
+ declare namespace ErrorDialogRoot {
11
+ type Props = ErrorDialogRootProps;
12
+ }
13
+ //#endregion
14
+ export { ErrorDialogRoot, ErrorDialogRootProps };
15
+ //# sourceMappingURL=error-dialog-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-dialog-root.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-root.tsx"],"mappings":";;;UAeiB,oBAAA;EACf,QAAA,GAAW,SAAA;AAAA;AAAA,iBAGG,eAAA,CAAA;EAAkB;AAAA,GAAY,oBAAA,GAAuB,SAAA;AAAA,kBAsDpD,eAAA;EAAA,KACH,KAAA,GAAQ,oBAAA;AAAA"}
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ import { usePlayer } from "../../player/context.js";
3
+ import { useLatestRef } from "../../utils/use-latest-ref.js";
4
+ import { useDestroy } from "../../utils/use-destroy.js";
5
+ import { AlertDialogContextProvider } from "../alert-dialog/context.js";
6
+ import { useSafeId } from "../../utils/use-safe-id.js";
7
+ import { ErrorDialogContextProvider } from "./context.js";
8
+ import { createAlertDialog, createTransition, selectError } from "@videojs/core/dom";
9
+ import { useSnapshot } from "@videojs/store/react";
10
+ import { useEffect, useRef, useState } from "react";
11
+ import { jsx } from "react/jsx-runtime";
12
+ import { AlertDialogDataAttrs, ErrorDialogCore } from "@videojs/core";
13
+ //#region src/ui/error-dialog/error-dialog-root.tsx
14
+ function ErrorDialogRoot({ children }) {
15
+ const [core] = useState(() => new ErrorDialogCore());
16
+ const errorState = usePlayer(selectError);
17
+ const lastError = useRef(errorState?.error ?? null);
18
+ if (errorState?.error) lastError.current = errorState.error;
19
+ const errorStateRef = useLatestRef(errorState);
20
+ const [dialog] = useState(() => createAlertDialog({
21
+ transition: createTransition(),
22
+ onOpenChange: (nextOpen) => {
23
+ if (!nextOpen) errorStateRef.current?.dismissError();
24
+ }
25
+ }));
26
+ const titleId = useSafeId("error-dialog-title");
27
+ const descriptionId = useSafeId("error-dialog-desc");
28
+ core.setTitleId(titleId);
29
+ core.setDescriptionId(descriptionId);
30
+ useEffect(() => {
31
+ const hasError = Boolean(errorState?.error);
32
+ const { active: isOpen } = dialog.input.current;
33
+ if (hasError && !isOpen) dialog.open();
34
+ else if (!hasError && isOpen) dialog.close();
35
+ }, [errorState?.error, dialog]);
36
+ useDestroy(dialog);
37
+ const input = useSnapshot(dialog.input);
38
+ core.setInput(input);
39
+ const state = core.getState();
40
+ if (!errorState) return null;
41
+ return /* @__PURE__ */ jsx(ErrorDialogContextProvider, {
42
+ value: { lastError: lastError.current },
43
+ children: /* @__PURE__ */ jsx(AlertDialogContextProvider, {
44
+ value: {
45
+ core,
46
+ dialog,
47
+ state,
48
+ stateAttrMap: AlertDialogDataAttrs
49
+ },
50
+ children
51
+ })
52
+ });
53
+ }
54
+ //#endregion
55
+ export { ErrorDialogRoot };
56
+
57
+ //# sourceMappingURL=error-dialog-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-dialog-root.js","names":[],"sources":["../../../../src/ui/error-dialog/error-dialog-root.tsx"],"sourcesContent":["'use client';\n\nimport { AlertDialogDataAttrs, ErrorDialogCore } from '@videojs/core';\nimport { createAlertDialog, createTransition, selectError } from '@videojs/core/dom';\nimport { useSnapshot } from '@videojs/store/react';\nimport type { ReactNode } from 'react';\nimport { useEffect, useRef, useState } from 'react';\n\nimport { usePlayer } from '../../player/context';\nimport { useDestroy } from '../../utils/use-destroy';\nimport { useLatestRef } from '../../utils/use-latest-ref';\nimport { useSafeId } from '../../utils/use-safe-id';\nimport { AlertDialogContextProvider } from '../alert-dialog/context';\nimport { ErrorDialogContextProvider } from './context';\n\nexport interface ErrorDialogRootProps {\n children?: ReactNode;\n}\n\nexport function ErrorDialogRoot({ children }: ErrorDialogRootProps): ReactNode {\n const [core] = useState(() => new ErrorDialogCore());\n const errorState = usePlayer(selectError);\n const lastError = useRef(errorState?.error ?? null);\n\n if (errorState?.error) lastError.current = errorState.error;\n\n const errorStateRef = useLatestRef(errorState);\n\n const [dialog] = useState(() =>\n createAlertDialog({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean) => {\n if (!nextOpen) {\n errorStateRef.current?.dismissError();\n }\n },\n })\n );\n\n const titleId = useSafeId('error-dialog-title');\n const descriptionId = useSafeId('error-dialog-desc');\n\n core.setTitleId(titleId);\n core.setDescriptionId(descriptionId);\n\n useEffect(() => {\n const hasError = Boolean(errorState?.error);\n const { active: isOpen } = dialog.input.current;\n\n if (hasError && !isOpen) {\n dialog.open();\n } else if (!hasError && isOpen) {\n dialog.close();\n }\n }, [errorState?.error, dialog]);\n\n useDestroy(dialog);\n\n const input = useSnapshot(dialog.input);\n core.setInput(input);\n const state = core.getState();\n\n if (!errorState) return null;\n\n return (\n <ErrorDialogContextProvider value={{ lastError: lastError.current }}>\n <AlertDialogContextProvider value={{ core, dialog, state, stateAttrMap: AlertDialogDataAttrs }}>\n {children}\n </AlertDialogContextProvider>\n </ErrorDialogContextProvider>\n );\n}\n\nexport namespace ErrorDialogRoot {\n export type Props = ErrorDialogRootProps;\n}\n"],"mappings":";;;;;;;;;;;;;AAmBA,SAAgB,gBAAgB,EAAE,YAA6C;CAC7E,MAAM,CAAC,QAAQ,eAAe,IAAI,iBAAiB,CAAC;CACpD,MAAM,aAAa,UAAU,YAAY;CACzC,MAAM,YAAY,OAAO,YAAY,SAAS,KAAK;AAEnD,KAAI,YAAY,MAAO,WAAU,UAAU,WAAW;CAEtD,MAAM,gBAAgB,aAAa,WAAW;CAE9C,MAAM,CAAC,UAAU,eACf,kBAAkB;EAChB,YAAY,kBAAkB;EAC9B,eAAe,aAAsB;AACnC,OAAI,CAAC,SACH,eAAc,SAAS,cAAc;;EAG1C,CAAC,CACH;CAED,MAAM,UAAU,UAAU,qBAAqB;CAC/C,MAAM,gBAAgB,UAAU,oBAAoB;AAEpD,MAAK,WAAW,QAAQ;AACxB,MAAK,iBAAiB,cAAc;AAEpC,iBAAgB;EACd,MAAM,WAAW,QAAQ,YAAY,MAAM;EAC3C,MAAM,EAAE,QAAQ,WAAW,OAAO,MAAM;AAExC,MAAI,YAAY,CAAC,OACf,QAAO,MAAM;WACJ,CAAC,YAAY,OACtB,QAAO,OAAO;IAEf,CAAC,YAAY,OAAO,OAAO,CAAC;AAE/B,YAAW,OAAO;CAElB,MAAM,QAAQ,YAAY,OAAO,MAAM;AACvC,MAAK,SAAS,MAAM;CACpB,MAAM,QAAQ,KAAK,UAAU;AAE7B,KAAI,CAAC,WAAY,QAAO;AAExB,QACE,oBAAC,4BAAD;EAA4B,OAAO,EAAE,WAAW,UAAU,SAAS;YACjE,oBAAC,4BAAD;GAA4B,OAAO;IAAE;IAAM;IAAQ;IAAO,cAAc;IAAsB;GAC3F;GAC0B,CAAA;EACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ErrorDialogContextValue, useErrorDialogContext } from "./context.js";
2
+ import { index_parts_d_exports } from "./index.parts.js";
3
+ export { index_parts_d_exports as ErrorDialog, type ErrorDialogContextValue, useErrorDialogContext };
@@ -0,0 +1,3 @@
1
+ import { useErrorDialogContext } from "./context.js";
2
+ import { index_parts_exports } from "./index.parts.js";
3
+ export { index_parts_exports as ErrorDialog, useErrorDialogContext };
@@ -0,0 +1,13 @@
1
+ import { AlertDialogClose, AlertDialogCloseProps } from "../alert-dialog/alert-dialog-close.js";
2
+ import { AlertDialogPopup, AlertDialogPopupProps } from "../alert-dialog/alert-dialog-popup.js";
3
+ import { AlertDialogTitle, AlertDialogTitleProps } from "../alert-dialog/alert-dialog-title.js";
4
+ import { ErrorDialogDescription, ErrorDialogDescriptionProps } from "./error-dialog-description.js";
5
+ import { ErrorDialogRoot, ErrorDialogRootProps } from "./error-dialog-root.js";
6
+
7
+ //#region src/ui/error-dialog/index.parts.d.ts
8
+ declare namespace index_parts_d_exports {
9
+ export { AlertDialogClose as Close, AlertDialogCloseProps as CloseProps, ErrorDialogDescription as Description, ErrorDialogDescriptionProps as DescriptionProps, AlertDialogPopup as Popup, AlertDialogPopupProps as PopupProps, ErrorDialogRoot as Root, ErrorDialogRootProps as RootProps, AlertDialogTitle as Title, AlertDialogTitleProps as TitleProps };
10
+ }
11
+ //#endregion
12
+ export { index_parts_d_exports };
13
+ //# sourceMappingURL=index.parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.parts.d.ts","names":[],"sources":["../../../../src/ui/error-dialog/index.parts.ts"],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { __exportAll } from "../../_virtual/_rolldown/runtime.js";
2
+ import { AlertDialogClose } from "../alert-dialog/alert-dialog-close.js";
3
+ import { AlertDialogPopup } from "../alert-dialog/alert-dialog-popup.js";
4
+ import { AlertDialogTitle } from "../alert-dialog/alert-dialog-title.js";
5
+ import { ErrorDialogDescription } from "./error-dialog-description.js";
6
+ import { ErrorDialogRoot } from "./error-dialog-root.js";
7
+ //#region src/ui/error-dialog/index.parts.ts
8
+ var index_parts_exports = /* @__PURE__ */ __exportAll({
9
+ Close: () => AlertDialogClose,
10
+ Description: () => ErrorDialogDescription,
11
+ Popup: () => AlertDialogPopup,
12
+ Root: () => ErrorDialogRoot,
13
+ Title: () => AlertDialogTitle
14
+ });
15
+ //#endregion
16
+ export { index_parts_exports };
17
+
18
+ //# sourceMappingURL=index.parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/ui/error-dialog/index.parts.ts"],"sourcesContent":["export {\n AlertDialogClose as Close,\n type AlertDialogCloseProps as CloseProps,\n} from '../alert-dialog/alert-dialog-close';\nexport {\n AlertDialogPopup as Popup,\n type AlertDialogPopupProps as PopupProps,\n} from '../alert-dialog/alert-dialog-popup';\nexport {\n AlertDialogTitle as Title,\n type AlertDialogTitleProps as TitleProps,\n} from '../alert-dialog/alert-dialog-title';\nexport {\n ErrorDialogDescription as Description,\n type ErrorDialogDescriptionProps as DescriptionProps,\n} from './error-dialog-description';\nexport { ErrorDialogRoot as Root, type ErrorDialogRootProps as RootProps } from './error-dialog-root';\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"fullscreen-button.d.ts","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"mappings":";;;;;UAQiB,qBAAA,SACP,gBAAA,WAA2B,oBAAA,CAAqB,KAAA,GACtD,oBAAA,CAAqB,KAAA;;cAGZ,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,kBAQZ,gBAAA;EAAA,KACH,KAAA,GAAQ,qBAAA;EAAA,KACR,KAAA,GAAQ,oBAAA,CAAqB,KAAA;AAAA"}
1
+ {"version":3,"file":"fullscreen-button.d.ts","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"mappings":";;;;;UAQiB,qBAAA,SACP,gBAAA,WAA2B,oBAAA,CAAqB,KAAA,GACtD,oBAAA,CAAqB,KAAA;;cAGZ,gBAAA,EAAgB,KAAA,CAAA,yBAAA,CAAA,qBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA;AAAA,kBASZ,gBAAA;EAAA,KACH,KAAA,GAAQ,qBAAA;EAAA,KACR,KAAA,GAAQ,oBAAA,CAAqB,KAAA;AAAA"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { createMediaButton } from "../create-media-button.js";
4
3
  import { selectFullscreen } from "@videojs/core/dom";
5
4
  import { FullscreenButtonCore, FullscreenButtonDataAttrs } from "@videojs/core";
6
-
7
5
  //#region src/ui/fullscreen-button/fullscreen-button.tsx
8
6
  /** A button that toggles fullscreen. */
9
7
  const FullscreenButton = createMediaButton({
@@ -11,9 +9,10 @@ const FullscreenButton = createMediaButton({
11
9
  core: FullscreenButtonCore,
12
10
  stateAttrMap: FullscreenButtonDataAttrs,
13
11
  selector: selectFullscreen,
14
- action: (core, state) => core.toggle(state)
12
+ action: (core, state) => core.toggle(state),
13
+ hotkeyAction: "toggleFullscreen"
15
14
  });
16
-
17
15
  //#endregion
18
16
  export { FullscreenButton };
17
+
19
18
  //# sourceMappingURL=fullscreen-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fullscreen-button.js","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"sourcesContent":["'use client';\n\nimport { FullscreenButtonCore, FullscreenButtonDataAttrs } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface FullscreenButtonProps\n extends UIComponentProps<'button', FullscreenButtonCore.State>,\n FullscreenButtonCore.Props {}\n\n/** A button that toggles fullscreen. */\nexport const FullscreenButton = createMediaButton<FullscreenButtonCore, FullscreenButtonProps>({\n displayName: 'FullscreenButton',\n core: FullscreenButtonCore,\n stateAttrMap: FullscreenButtonDataAttrs,\n selector: selectFullscreen,\n action: (core, state) => core.toggle(state),\n});\n\nexport namespace FullscreenButton {\n export type Props = FullscreenButtonProps;\n export type State = FullscreenButtonCore.State;\n}\n"],"mappings":";;;;;;;;AAaA,MAAa,mBAAmB,kBAA+D;CAC7F,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,MAAM;CAC5C,CAAC"}
1
+ {"version":3,"file":"fullscreen-button.js","names":[],"sources":["../../../../src/ui/fullscreen-button/fullscreen-button.tsx"],"sourcesContent":["'use client';\n\nimport { FullscreenButtonCore, FullscreenButtonDataAttrs } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface FullscreenButtonProps\n extends UIComponentProps<'button', FullscreenButtonCore.State>,\n FullscreenButtonCore.Props {}\n\n/** A button that toggles fullscreen. */\nexport const FullscreenButton = createMediaButton<FullscreenButtonCore, FullscreenButtonProps>({\n displayName: 'FullscreenButton',\n core: FullscreenButtonCore,\n stateAttrMap: FullscreenButtonDataAttrs,\n selector: selectFullscreen,\n action: (core, state) => core.toggle(state),\n hotkeyAction: 'toggleFullscreen',\n});\n\nexport namespace FullscreenButton {\n export type Props = FullscreenButtonProps;\n export type State = FullscreenButtonCore.State;\n}\n"],"mappings":";;;;;;AAaA,MAAa,mBAAmB,kBAA+D;CAC7F,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,MAAM;CAC3C,cAAc;CACf,CAAC"}
@@ -1,3 +1,2 @@
1
1
  import { FullscreenButton } from "./fullscreen-button.js";
2
-
3
- export { FullscreenButton };
2
+ export { FullscreenButton };
@@ -0,0 +1,23 @@
1
+ import { GestureActionName, GesturePointerType, GestureRegion } from "@videojs/core/dom";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/ui/gesture/media-gesture.d.ts
5
+ interface MediaGestureProps {
6
+ type: 'tap' | 'doubletap' | (string & {});
7
+ action: GestureActionName | (string & {});
8
+ value?: number;
9
+ pointer?: GesturePointerType;
10
+ region?: GestureRegion;
11
+ disabled?: boolean;
12
+ }
13
+ declare function MediaGesture({
14
+ type,
15
+ action,
16
+ value,
17
+ pointer,
18
+ region,
19
+ disabled
20
+ }: MediaGestureProps): ReactNode;
21
+ //#endregion
22
+ export { MediaGesture, MediaGestureProps };
23
+ //# sourceMappingURL=media-gesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-gesture.d.ts","names":[],"sources":["../../../../src/ui/gesture/media-gesture.tsx"],"mappings":";;;;UAgBiB,iBAAA;EACf,IAAA;EACA,MAAA,EAAQ,iBAAA;EACR,KAAA;EACA,OAAA,GAAU,kBAAA;EACV,MAAA,GAAS,aAAA;EACT,QAAA;AAAA;AAAA,iBAGc,YAAA,CAAA;EAAe,IAAA;EAAM,MAAA;EAAQ,KAAA;EAAO,OAAA;EAAS,MAAA;EAAQ;AAAA,GAAY,iBAAA,GAAoB,SAAA"}
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { useContainer, usePlayer } from "../../player/context.js";
3
+ import { createDoubleTapGesture, createTapGesture, resolveGestureAction } from "@videojs/core/dom";
4
+ import { useEffect } from "react";
5
+ //#region src/ui/gesture/media-gesture.tsx
6
+ function MediaGesture({ type, action, value, pointer, region, disabled }) {
7
+ const store = usePlayer();
8
+ const container = useContainer();
9
+ useEffect(() => {
10
+ if (!container || !type || !action || disabled) return;
11
+ const resolver = resolveGestureAction(action);
12
+ if (!resolver) return;
13
+ const onActivate = (event) => {
14
+ resolver({
15
+ store,
16
+ value,
17
+ event
18
+ });
19
+ };
20
+ const options = {
21
+ pointer,
22
+ region,
23
+ action
24
+ };
25
+ if (type === "doubletap") return createDoubleTapGesture(container, onActivate, options);
26
+ return createTapGesture(container, onActivate, options);
27
+ }, [
28
+ container,
29
+ store,
30
+ type,
31
+ action,
32
+ value,
33
+ pointer,
34
+ region,
35
+ disabled
36
+ ]);
37
+ return null;
38
+ }
39
+ //#endregion
40
+ export { MediaGesture };
41
+
42
+ //# sourceMappingURL=media-gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-gesture.js","names":[],"sources":["../../../../src/ui/gesture/media-gesture.tsx"],"sourcesContent":["'use client';\n\nimport {\n type AnyPlayerStore,\n createDoubleTapGesture,\n createTapGesture,\n type GestureActionName,\n type GesturePointerType,\n type GestureRegion,\n resolveGestureAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface MediaGestureProps {\n type: 'tap' | 'doubletap' | (string & {});\n action: GestureActionName | (string & {});\n value?: number;\n pointer?: GesturePointerType;\n region?: GestureRegion;\n disabled?: boolean;\n}\n\nexport function MediaGesture({ type, action, value, pointer, region, disabled }: MediaGestureProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !type || !action || disabled) return;\n\n const resolver = resolveGestureAction(action);\n if (!resolver) return;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = { pointer, region, action };\n\n if (type === 'doubletap') {\n return createDoubleTapGesture(container, onActivate, options);\n }\n\n return createTapGesture(container, onActivate, options);\n }, [container, store, type, action, value, pointer, region, disabled]);\n\n return null;\n}\n"],"mappings":";;;;;AAyBA,SAAgB,aAAa,EAAE,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAA0C;CAC7G,MAAM,QAAQ,WAAW;CACzB,MAAM,YAAY,cAAc;AAEhC,iBAAgB;AACd,MAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,SAAU;EAEhD,MAAM,WAAW,qBAAqB,OAAO;AAC7C,MAAI,CAAC,SAAU;EAEf,MAAM,cAAc,UAAwB;AAC1C,YAAS;IAAE;IAAO;IAAO;IAAO,CAAC;;EAGnC,MAAM,UAAU;GAAE;GAAS;GAAQ;GAAQ;AAE3C,MAAI,SAAS,YACX,QAAO,uBAAuB,WAAW,YAAY,QAAQ;AAG/D,SAAO,iBAAiB,WAAW,YAAY,QAAQ;IACtD;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAS;EAAQ;EAAS,CAAC;AAEtE,QAAO"}