@videojs/react 10.0.0-beta.22 → 10.0.0-beta.23

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 (256) hide show
  1. package/dist/default/index.js +4 -5
  2. package/dist/default/media/dash-video/index.js +6 -6
  3. package/dist/default/media/dash-video/index.js.map +1 -1
  4. package/dist/default/media/hls-video/index.js +6 -6
  5. package/dist/default/media/hls-video/index.js.map +1 -1
  6. package/dist/default/media/mux-audio/index.js +9 -8
  7. package/dist/default/media/mux-audio/index.js.map +1 -1
  8. package/dist/default/media/mux-video/index.js +6 -6
  9. package/dist/default/media/mux-video/index.js.map +1 -1
  10. package/dist/default/media/native-hls-video/index.js +6 -6
  11. package/dist/default/media/native-hls-video/index.js.map +1 -1
  12. package/dist/default/media/simple-hls-video/index.js +6 -5
  13. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  14. package/dist/default/presets/audio/minimal-skin.css +2 -1
  15. package/dist/default/presets/audio/skin.css +2 -1
  16. package/dist/default/presets/audio/skin.js +15 -15
  17. package/dist/default/presets/audio/skin.js.map +1 -1
  18. package/dist/default/presets/live-audio/index.js +7 -0
  19. package/dist/default/presets/live-audio/minimal-skin.css +736 -0
  20. package/dist/default/presets/live-audio/minimal-skin.js +136 -0
  21. package/dist/default/presets/live-audio/minimal-skin.js.map +1 -0
  22. package/dist/default/presets/live-audio/minimal-skin.tailwind.js +166 -0
  23. package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
  24. package/dist/default/presets/live-audio/skin.css +752 -0
  25. package/dist/default/presets/live-audio/skin.js +158 -0
  26. package/dist/default/presets/live-audio/skin.js.map +1 -0
  27. package/dist/default/presets/live-audio/skin.tailwind.js +165 -0
  28. package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -0
  29. package/dist/default/presets/live-video/index.js +7 -0
  30. package/dist/default/presets/live-video/minimal-skin.css +1127 -0
  31. package/dist/default/presets/live-video/minimal-skin.js +198 -0
  32. package/dist/default/presets/live-video/minimal-skin.js.map +1 -0
  33. package/dist/default/presets/live-video/minimal-skin.tailwind.js +231 -0
  34. package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -0
  35. package/dist/default/presets/live-video/skin.css +1117 -0
  36. package/dist/default/presets/live-video/skin.js +252 -0
  37. package/dist/default/presets/live-video/skin.js.map +1 -0
  38. package/dist/default/presets/live-video/skin.tailwind.js +233 -0
  39. package/dist/default/presets/live-video/skin.tailwind.js.map +1 -0
  40. package/dist/default/presets/video/minimal-skin.css +2 -1
  41. package/dist/default/presets/video/skin.css +2 -1
  42. package/dist/default/presets/video/skin.js +24 -24
  43. package/dist/default/presets/video/skin.js.map +1 -1
  44. package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
  45. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  46. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  47. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  48. package/dist/default/ui/cast-button/cast-button.js +2 -2
  49. package/dist/default/ui/cast-button/cast-button.js.map +1 -1
  50. package/dist/default/ui/gesture/{media-gesture.js → gesture.js} +6 -4
  51. package/dist/default/ui/gesture/gesture.js.map +1 -0
  52. package/dist/default/ui/hotkey/{media-hotkey.js → hotkey.js} +6 -4
  53. package/dist/default/ui/hotkey/hotkey.js.map +1 -0
  54. package/dist/default/utils/use-attach-media.js +14 -0
  55. package/dist/default/utils/use-attach-media.js.map +1 -0
  56. package/dist/default/utils/use-sync-props.js +14 -0
  57. package/dist/default/utils/use-sync-props.js.map +1 -0
  58. package/dist/dev/index.d.ts +4 -5
  59. package/dist/dev/index.js +4 -5
  60. package/dist/dev/media/audio.d.ts +2 -2
  61. package/dist/dev/media/audio.d.ts.map +1 -1
  62. package/dist/dev/media/background-video/index.d.ts +2 -2
  63. package/dist/dev/media/background-video/index.d.ts.map +1 -1
  64. package/dist/dev/media/dash-video/index.d.ts +7 -8
  65. package/dist/dev/media/dash-video/index.d.ts.map +1 -1
  66. package/dist/dev/media/dash-video/index.js +6 -6
  67. package/dist/dev/media/dash-video/index.js.map +1 -1
  68. package/dist/dev/media/hls-video/index.d.ts +7 -8
  69. package/dist/dev/media/hls-video/index.d.ts.map +1 -1
  70. package/dist/dev/media/hls-video/index.js +6 -6
  71. package/dist/dev/media/hls-video/index.js.map +1 -1
  72. package/dist/dev/media/mux-audio/index.d.ts +11 -9
  73. package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
  74. package/dist/dev/media/mux-audio/index.js +9 -8
  75. package/dist/dev/media/mux-audio/index.js.map +1 -1
  76. package/dist/dev/media/mux-video/index.d.ts +7 -8
  77. package/dist/dev/media/mux-video/index.d.ts.map +1 -1
  78. package/dist/dev/media/mux-video/index.js +6 -6
  79. package/dist/dev/media/mux-video/index.js.map +1 -1
  80. package/dist/dev/media/native-hls-video/index.d.ts +7 -8
  81. package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
  82. package/dist/dev/media/native-hls-video/index.js +6 -6
  83. package/dist/dev/media/native-hls-video/index.js.map +1 -1
  84. package/dist/dev/media/simple-hls-video/index.d.ts +7 -6
  85. package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
  86. package/dist/dev/media/simple-hls-video/index.js +6 -5
  87. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  88. package/dist/dev/media/video.d.ts +2 -2
  89. package/dist/dev/media/video.d.ts.map +1 -1
  90. package/dist/dev/player/context.d.ts +2 -2
  91. package/dist/dev/player/context.d.ts.map +1 -1
  92. package/dist/dev/presets/audio/minimal-skin.css +2 -1
  93. package/dist/dev/presets/audio/skin.css +2 -1
  94. package/dist/dev/presets/audio/skin.js +15 -15
  95. package/dist/dev/presets/audio/skin.js.map +1 -1
  96. package/dist/dev/presets/background/skin.d.ts +2 -2
  97. package/dist/dev/presets/background/skin.d.ts.map +1 -1
  98. package/dist/dev/presets/live-audio/index.d.ts +7 -0
  99. package/dist/dev/presets/live-audio/index.js +7 -0
  100. package/dist/dev/presets/live-audio/minimal-skin.css +736 -0
  101. package/dist/dev/presets/live-audio/minimal-skin.d.ts +16 -0
  102. package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -0
  103. package/dist/dev/presets/live-audio/minimal-skin.js +136 -0
  104. package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -0
  105. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts +8 -0
  106. package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
  107. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +166 -0
  108. package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
  109. package/dist/dev/presets/live-audio/skin.css +752 -0
  110. package/dist/dev/presets/live-audio/skin.d.ts +15 -0
  111. package/dist/dev/presets/live-audio/skin.d.ts.map +1 -0
  112. package/dist/dev/presets/live-audio/skin.js +158 -0
  113. package/dist/dev/presets/live-audio/skin.js.map +1 -0
  114. package/dist/dev/presets/live-audio/skin.tailwind.d.ts +8 -0
  115. package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -0
  116. package/dist/dev/presets/live-audio/skin.tailwind.js +165 -0
  117. package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -0
  118. package/dist/dev/presets/live-video/index.d.ts +7 -0
  119. package/dist/dev/presets/live-video/index.js +7 -0
  120. package/dist/dev/presets/live-video/minimal-skin.css +1127 -0
  121. package/dist/dev/presets/live-video/minimal-skin.d.ts +16 -0
  122. package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -0
  123. package/dist/dev/presets/live-video/minimal-skin.js +198 -0
  124. package/dist/dev/presets/live-video/minimal-skin.js.map +1 -0
  125. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts +8 -0
  126. package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -0
  127. package/dist/dev/presets/live-video/minimal-skin.tailwind.js +231 -0
  128. package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -0
  129. package/dist/dev/presets/live-video/skin.css +1117 -0
  130. package/dist/dev/presets/live-video/skin.d.ts +15 -0
  131. package/dist/dev/presets/live-video/skin.d.ts.map +1 -0
  132. package/dist/dev/presets/live-video/skin.js +252 -0
  133. package/dist/dev/presets/live-video/skin.js.map +1 -0
  134. package/dist/dev/presets/live-video/skin.tailwind.d.ts +8 -0
  135. package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -0
  136. package/dist/dev/presets/live-video/skin.tailwind.js +233 -0
  137. package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -0
  138. package/dist/dev/presets/video/minimal-skin.css +2 -1
  139. package/dist/dev/presets/video/skin.css +2 -1
  140. package/dist/dev/presets/video/skin.js +24 -24
  141. package/dist/dev/presets/video/skin.js.map +1 -1
  142. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
  143. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  144. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
  145. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  146. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +2 -2
  147. package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
  148. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +2 -2
  149. package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
  150. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +2 -2
  151. package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
  152. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +2 -2
  153. package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
  154. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +2 -2
  155. package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
  156. package/dist/dev/ui/captions-button/captions-button.d.ts +2 -2
  157. package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
  158. package/dist/dev/ui/cast-button/cast-button.d.ts +2 -2
  159. package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
  160. package/dist/dev/ui/cast-button/cast-button.js +2 -2
  161. package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
  162. package/dist/dev/ui/controls/controls-group.d.ts +2 -2
  163. package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
  164. package/dist/dev/ui/controls/controls-root.d.ts +2 -2
  165. package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
  166. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +2 -2
  167. package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
  168. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts +2 -2
  169. package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
  170. package/dist/dev/ui/gesture/gesture.d.ts +30 -0
  171. package/dist/dev/ui/gesture/gesture.d.ts.map +1 -0
  172. package/dist/dev/ui/gesture/{media-gesture.js → gesture.js} +6 -4
  173. package/dist/dev/ui/gesture/gesture.js.map +1 -0
  174. package/dist/dev/ui/hotkey/hotkey.d.ts +28 -0
  175. package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -0
  176. package/dist/dev/ui/hotkey/{media-hotkey.js → hotkey.js} +6 -4
  177. package/dist/dev/ui/hotkey/hotkey.js.map +1 -0
  178. package/dist/dev/ui/mute-button/mute-button.d.ts +2 -2
  179. package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
  180. package/dist/dev/ui/pip-button/pip-button.d.ts +2 -2
  181. package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
  182. package/dist/dev/ui/play-button/play-button.d.ts +2 -2
  183. package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
  184. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +2 -2
  185. package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
  186. package/dist/dev/ui/popover/popover-arrow.d.ts +2 -2
  187. package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
  188. package/dist/dev/ui/popover/popover-popup.d.ts +2 -2
  189. package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
  190. package/dist/dev/ui/popover/popover-trigger.d.ts +2 -2
  191. package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
  192. package/dist/dev/ui/poster/poster.d.ts +2 -2
  193. package/dist/dev/ui/poster/poster.d.ts.map +1 -1
  194. package/dist/dev/ui/seek-button/seek-button.d.ts +2 -2
  195. package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
  196. package/dist/dev/ui/slider/slider-buffer.d.ts +2 -2
  197. package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
  198. package/dist/dev/ui/slider/slider-fill.d.ts +2 -2
  199. package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
  200. package/dist/dev/ui/slider/slider-preview.d.ts +2 -2
  201. package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
  202. package/dist/dev/ui/slider/slider-root.d.ts +2 -2
  203. package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
  204. package/dist/dev/ui/slider/slider-thumb.d.ts +2 -2
  205. package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
  206. package/dist/dev/ui/slider/slider-thumbnail.d.ts +2 -2
  207. package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
  208. package/dist/dev/ui/slider/slider-track.d.ts +2 -2
  209. package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
  210. package/dist/dev/ui/slider/slider-value.d.ts +2 -2
  211. package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
  212. package/dist/dev/ui/thumbnail/thumbnail.d.ts +2 -2
  213. package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
  214. package/dist/dev/ui/time/time-group.d.ts +2 -2
  215. package/dist/dev/ui/time/time-group.d.ts.map +1 -1
  216. package/dist/dev/ui/time/time-separator.d.ts +2 -2
  217. package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
  218. package/dist/dev/ui/time/time-value.d.ts +2 -2
  219. package/dist/dev/ui/time/time-value.d.ts.map +1 -1
  220. package/dist/dev/ui/time-slider/time-slider-root.d.ts +2 -2
  221. package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
  222. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts +2 -2
  223. package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
  224. package/dist/dev/ui/tooltip/tooltip-popup.d.ts +2 -2
  225. package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
  226. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts +2 -2
  227. package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
  228. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts +2 -2
  229. package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
  230. package/dist/dev/utils/use-attach-media.d.ts +8 -0
  231. package/dist/dev/utils/use-attach-media.d.ts.map +1 -0
  232. package/dist/dev/utils/use-attach-media.js +14 -0
  233. package/dist/dev/utils/use-attach-media.js.map +1 -0
  234. package/dist/dev/utils/use-sync-props.js +14 -0
  235. package/dist/dev/utils/use-sync-props.js.map +1 -0
  236. package/package.json +30 -9
  237. package/dist/default/ui/gesture/media-gesture.js.map +0 -1
  238. package/dist/default/ui/hotkey/media-hotkey.js.map +0 -1
  239. package/dist/default/utils/attach-media-element.js +0 -12
  240. package/dist/default/utils/attach-media-element.js.map +0 -1
  241. package/dist/default/utils/media-props.js +0 -19
  242. package/dist/default/utils/media-props.js.map +0 -1
  243. package/dist/dev/ui/gesture/media-gesture.d.ts +0 -23
  244. package/dist/dev/ui/gesture/media-gesture.d.ts.map +0 -1
  245. package/dist/dev/ui/gesture/media-gesture.js.map +0 -1
  246. package/dist/dev/ui/hotkey/media-hotkey.d.ts +0 -21
  247. package/dist/dev/ui/hotkey/media-hotkey.d.ts.map +0 -1
  248. package/dist/dev/ui/hotkey/media-hotkey.js.map +0 -1
  249. package/dist/dev/utils/attach-media-element.d.ts +0 -9
  250. package/dist/dev/utils/attach-media-element.d.ts.map +0 -1
  251. package/dist/dev/utils/attach-media-element.js +0 -12
  252. package/dist/dev/utils/attach-media-element.js.map +0 -1
  253. package/dist/dev/utils/media-props.d.ts +0 -8
  254. package/dist/dev/utils/media-props.d.ts.map +0 -1
  255. package/dist/dev/utils/media-props.js +0 -19
  256. package/dist/dev/utils/media-props.js.map +0 -1
@@ -10,8 +10,8 @@ import { ControlsRoot } from "../../ui/controls/controls-root.js";
10
10
  import { ErrorDialogDescription } from "../../ui/error-dialog/error-dialog-description.js";
11
11
  import { ErrorDialogRoot } from "../../ui/error-dialog/error-dialog-root.js";
12
12
  import { FullscreenButton } from "../../ui/fullscreen-button/fullscreen-button.js";
13
- import { MediaGesture } from "../../ui/gesture/media-gesture.js";
14
- import { MediaHotkey } from "../../ui/hotkey/media-hotkey.js";
13
+ import { Gesture } from "../../ui/gesture/gesture.js";
14
+ import { Hotkey } from "../../ui/hotkey/hotkey.js";
15
15
  import { MuteButton } from "../../ui/mute-button/mute-button.js";
16
16
  import { PiPButton } from "../../ui/pip-button/pip-button.js";
17
17
  import { PlayButton } from "../../ui/play-button/play-button.js";
@@ -282,105 +282,105 @@ function VideoSkin(props) {
282
282
  ] })
283
283
  }),
284
284
  /* @__PURE__ */ jsx("div", { className: "media-overlay" }),
285
- /* @__PURE__ */ jsx(MediaHotkey, {
285
+ /* @__PURE__ */ jsx(Hotkey, {
286
286
  keys: "Space",
287
287
  action: "togglePaused"
288
288
  }),
289
- /* @__PURE__ */ jsx(MediaHotkey, {
289
+ /* @__PURE__ */ jsx(Hotkey, {
290
290
  keys: "k",
291
291
  action: "togglePaused"
292
292
  }),
293
- /* @__PURE__ */ jsx(MediaHotkey, {
293
+ /* @__PURE__ */ jsx(Hotkey, {
294
294
  keys: "m",
295
295
  action: "toggleMuted"
296
296
  }),
297
- /* @__PURE__ */ jsx(MediaHotkey, {
297
+ /* @__PURE__ */ jsx(Hotkey, {
298
298
  keys: "f",
299
299
  action: "toggleFullscreen"
300
300
  }),
301
- /* @__PURE__ */ jsx(MediaHotkey, {
301
+ /* @__PURE__ */ jsx(Hotkey, {
302
302
  keys: "c",
303
303
  action: "toggleSubtitles"
304
304
  }),
305
- /* @__PURE__ */ jsx(MediaHotkey, {
305
+ /* @__PURE__ */ jsx(Hotkey, {
306
306
  keys: "i",
307
307
  action: "togglePictureInPicture"
308
308
  }),
309
- /* @__PURE__ */ jsx(MediaHotkey, {
309
+ /* @__PURE__ */ jsx(Hotkey, {
310
310
  keys: "ArrowRight",
311
311
  action: "seekStep",
312
312
  value: 5
313
313
  }),
314
- /* @__PURE__ */ jsx(MediaHotkey, {
314
+ /* @__PURE__ */ jsx(Hotkey, {
315
315
  keys: "ArrowLeft",
316
316
  action: "seekStep",
317
317
  value: -5
318
318
  }),
319
- /* @__PURE__ */ jsx(MediaHotkey, {
319
+ /* @__PURE__ */ jsx(Hotkey, {
320
320
  keys: "l",
321
321
  action: "seekStep",
322
322
  value: 10
323
323
  }),
324
- /* @__PURE__ */ jsx(MediaHotkey, {
324
+ /* @__PURE__ */ jsx(Hotkey, {
325
325
  keys: "j",
326
326
  action: "seekStep",
327
327
  value: -10
328
328
  }),
329
- /* @__PURE__ */ jsx(MediaHotkey, {
329
+ /* @__PURE__ */ jsx(Hotkey, {
330
330
  keys: "ArrowUp",
331
331
  action: "volumeStep",
332
332
  value: .05
333
333
  }),
334
- /* @__PURE__ */ jsx(MediaHotkey, {
334
+ /* @__PURE__ */ jsx(Hotkey, {
335
335
  keys: "ArrowDown",
336
336
  action: "volumeStep",
337
337
  value: -.05
338
338
  }),
339
- /* @__PURE__ */ jsx(MediaHotkey, {
339
+ /* @__PURE__ */ jsx(Hotkey, {
340
340
  keys: "0-9",
341
341
  action: "seekToPercent"
342
342
  }),
343
- /* @__PURE__ */ jsx(MediaHotkey, {
343
+ /* @__PURE__ */ jsx(Hotkey, {
344
344
  keys: "Home",
345
345
  action: "seekToPercent",
346
346
  value: 0
347
347
  }),
348
- /* @__PURE__ */ jsx(MediaHotkey, {
348
+ /* @__PURE__ */ jsx(Hotkey, {
349
349
  keys: "End",
350
350
  action: "seekToPercent",
351
351
  value: 100
352
352
  }),
353
- /* @__PURE__ */ jsx(MediaHotkey, {
353
+ /* @__PURE__ */ jsx(Hotkey, {
354
354
  keys: ">",
355
355
  action: "speedUp"
356
356
  }),
357
- /* @__PURE__ */ jsx(MediaHotkey, {
357
+ /* @__PURE__ */ jsx(Hotkey, {
358
358
  keys: "<",
359
359
  action: "speedDown"
360
360
  }),
361
- /* @__PURE__ */ jsx(MediaGesture, {
361
+ /* @__PURE__ */ jsx(Gesture, {
362
362
  type: "tap",
363
363
  action: "togglePaused",
364
364
  pointer: "mouse",
365
365
  region: "center"
366
366
  }),
367
- /* @__PURE__ */ jsx(MediaGesture, {
367
+ /* @__PURE__ */ jsx(Gesture, {
368
368
  type: "tap",
369
369
  action: "toggleControls",
370
370
  pointer: "touch"
371
371
  }),
372
- /* @__PURE__ */ jsx(MediaGesture, {
372
+ /* @__PURE__ */ jsx(Gesture, {
373
373
  type: "doubletap",
374
374
  action: "seekStep",
375
375
  value: -10,
376
376
  region: "left"
377
377
  }),
378
- /* @__PURE__ */ jsx(MediaGesture, {
378
+ /* @__PURE__ */ jsx(Gesture, {
379
379
  type: "doubletap",
380
380
  action: "toggleFullscreen",
381
381
  region: "center"
382
382
  }),
383
- /* @__PURE__ */ jsx(MediaGesture, {
383
+ /* @__PURE__ */ jsx(Gesture, {
384
384
  type: "doubletap",
385
385
  action: "seekStep",
386
386
  value: 10,
@@ -1 +1 @@
1
- {"version":3,"file":"skin.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Time.Value","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","Slider.Thumbnail","TimeSlider.Value"],"sources":["../../../../src/presets/video/skin.tsx"],"sourcesContent":["import {\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@videojs/icons/react';\nimport { isString } from '@videojs/utils/predicate';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, forwardRef, type ReactNode } from 'react';\nimport { Container, usePlayer } from '@/player/context';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { MediaGesture } from '@/ui/gesture/media-gesture';\nimport { MediaHotkey } from '@/ui/hotkey/media-hotkey';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { PlaybackRateButton } from '@/ui/playback-rate-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { SeekButton } from '@/ui/seek-button';\nimport { Slider } from '@/ui/slider';\nimport { Time } from '@/ui/time';\nimport { TimeSlider } from '@/ui/time-slider';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport { isRenderProp } from '@/utils/use-render';\nimport type { BaseVideoSkinProps } from '../types';\n\nconst SEEK_TIME = 10;\n\nexport type VideoSkinProps = BaseVideoSkinProps;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn('media-button media-button--subtle media-button--icon', className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnsupported = usePlayer((s) => s.volumeAvailability === 'unsupported');\n\n const muteButton = (\n <MuteButton className=\"media-button--mute\" render={<Button />}>\n <VolumeOffIcon className=\"media-icon media-icon--volume-off\" />\n <VolumeLowIcon className=\"media-icon media-icon--volume-low\" />\n <VolumeHighIcon className=\"media-icon media-icon--volume-high\" />\n </MuteButton>\n );\n\n if (volumeUnsupported) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className=\"media-surface media-popover media-popover--volume\">\n <VolumeSlider.Root className=\"media-slider\" orientation=\"vertical\" thumbAlignment=\"edge\">\n <VolumeSlider.Track className=\"media-slider__track\">\n <VolumeSlider.Fill className=\"media-slider__fill\" />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb className=\"media-slider__thumb media-slider__thumb--persistent\" />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\nexport function VideoSkin(props: VideoSkinProps): ReactNode {\n const { children, className, poster, ...rest } = props;\n\n return (\n <Container className={cn('media-default-skin media-default-skin--video', className)} {...rest}>\n {children}\n\n {poster && (\n <Poster src={isString(poster) ? poster : undefined} render={isRenderProp(poster) ? poster : undefined} />\n )}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className=\"media-buffering-indicator\">\n <div className=\"media-surface\">\n <SpinnerIcon className=\"media-icon\" />\n </div>\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className=\"media-error\">\n <div className=\"media-error__dialog media-surface\">\n <div className=\"media-error__content\">\n <ErrorDialog.Title className=\"media-error__title\">Something went wrong.</ErrorDialog.Title>\n <ErrorDialog.Description className=\"media-error__description\" />\n </div>\n <div className=\"media-error__actions\">\n <ErrorDialog.Close className=\"media-button media-button--primary\">OK</ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root className=\"media-surface media-controls\">\n <Tooltip.Provider>\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className=\"media-button--play\" render={<Button />}>\n <RestartIcon className=\"media-icon media-icon--restart\" />\n <PlayIcon className=\"media-icon media-icon--play\" />\n <PauseIcon className=\"media-icon media-icon--pause\" />\n </PlayButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={-SEEK_TIME} className=\"media-button--seek\" render={<Button />}>\n <span className=\"media-icon__container\">\n <SeekIcon className=\"media-icon media-icon--seek media-icon--flipped\" />\n <span className=\"media-icon__label\">{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">Seek backward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={SEEK_TIME} className=\"media-button--seek\" render={<Button />}>\n <span className=\"media-icon__container\">\n <SeekIcon className=\"media-icon media-icon--seek\" />\n <span className=\"media-icon__label\">{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">Seek forward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n </div>\n\n <div className=\"media-time-controls\">\n <Time.Value type=\"current\" className=\"media-time\" />\n <TimeSlider.Root className=\"media-slider\">\n <TimeSlider.Track className=\"media-slider__track\">\n <TimeSlider.Fill className=\"media-slider__fill\" />\n <TimeSlider.Buffer className=\"media-slider__buffer\" />\n </TimeSlider.Track>\n <TimeSlider.Thumb className=\"media-slider__thumb\" />\n\n <div className=\"media-surface media-preview media-slider__preview\">\n <Slider.Thumbnail className=\"media-preview__thumbnail\" />\n <TimeSlider.Value type=\"pointer\" className=\"media-time media-preview__time\" />\n <SpinnerIcon className=\"media-preview__spinner media-icon\" />\n </div>\n </TimeSlider.Root>\n <Time.Value type=\"duration\" className=\"media-time\" />\n </div>\n\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={<PlaybackRateButton className=\"media-button--playback-rate\" render={<Button />} />}\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">Toggle playback rate</Tooltip.Popup>\n </Tooltip.Root>\n\n <VolumePopover />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className=\"media-button--captions\" render={<Button />}>\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className=\"media-button--cast\" render={<Button />}>\n <CastEnterIcon className=\"media-icon media-icon--cast-enter\" />\n <CastExitIcon className=\"media-icon media-icon--cast-exit\" />\n </CastButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className=\"media-button--pip\" render={<Button />}>\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n </PiPButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className=\"media-button--fullscreen\" render={<Button />}>\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className=\"media-overlay\" />\n\n {/* Hotkeys */}\n <MediaHotkey keys=\"Space\" action=\"togglePaused\" />\n <MediaHotkey keys=\"k\" action=\"togglePaused\" />\n <MediaHotkey keys=\"m\" action=\"toggleMuted\" />\n <MediaHotkey keys=\"f\" action=\"toggleFullscreen\" />\n <MediaHotkey keys=\"c\" action=\"toggleSubtitles\" />\n <MediaHotkey keys=\"i\" action=\"togglePictureInPicture\" />\n <MediaHotkey keys=\"ArrowRight\" action=\"seekStep\" value={5} />\n <MediaHotkey keys=\"ArrowLeft\" action=\"seekStep\" value={-5} />\n <MediaHotkey keys=\"l\" action=\"seekStep\" value={10} />\n <MediaHotkey keys=\"j\" action=\"seekStep\" value={-10} />\n <MediaHotkey keys=\"ArrowUp\" action=\"volumeStep\" value={0.05} />\n <MediaHotkey keys=\"ArrowDown\" action=\"volumeStep\" value={-0.05} />\n <MediaHotkey keys=\"0-9\" action=\"seekToPercent\" />\n <MediaHotkey keys=\"Home\" action=\"seekToPercent\" value={0} />\n <MediaHotkey keys=\"End\" action=\"seekToPercent\" value={100} />\n <MediaHotkey keys=\">\" action=\"speedUp\" />\n <MediaHotkey keys=\"<\" action=\"speedDown\" />\n\n {/* Gestures */}\n <MediaGesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n <MediaGesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n <MediaGesture type=\"doubletap\" action=\"seekStep\" value={-10} region=\"left\" />\n <MediaGesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n <MediaGesture type=\"doubletap\" action=\"seekStep\" value={10} region=\"right\" />\n </Container>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"skin.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","ErrorDialog.Root","ErrorDialog.Popup","ErrorDialog.Title","ErrorDialog.Description","ErrorDialog.Close","Controls.Root","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Time.Value","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","Slider.Thumbnail","TimeSlider.Value"],"sources":["../../../../src/presets/video/skin.tsx"],"sourcesContent":["import {\n CaptionsOffIcon,\n CaptionsOnIcon,\n CastEnterIcon,\n CastExitIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipEnterIcon,\n PipExitIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@videojs/icons/react';\nimport { isString } from '@videojs/utils/predicate';\nimport { cn } from '@videojs/utils/style';\nimport { type ComponentProps, forwardRef, type ReactNode } from 'react';\nimport { Container, usePlayer } from '@/player/context';\nimport { BufferingIndicator } from '@/ui/buffering-indicator';\nimport { CaptionsButton } from '@/ui/captions-button';\nimport { CastButton } from '@/ui/cast-button';\nimport { Controls } from '@/ui/controls';\nimport { ErrorDialog } from '@/ui/error-dialog';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\nimport { Gesture } from '@/ui/gesture/gesture';\nimport { Hotkey } from '@/ui/hotkey/hotkey';\nimport { MuteButton } from '@/ui/mute-button';\nimport { PiPButton } from '@/ui/pip-button';\nimport { PlayButton } from '@/ui/play-button';\nimport { PlaybackRateButton } from '@/ui/playback-rate-button';\nimport { Popover } from '@/ui/popover';\nimport { Poster } from '@/ui/poster';\nimport { SeekButton } from '@/ui/seek-button';\nimport { Slider } from '@/ui/slider';\nimport { Time } from '@/ui/time';\nimport { TimeSlider } from '@/ui/time-slider';\nimport { Tooltip } from '@/ui/tooltip';\nimport { VolumeSlider } from '@/ui/volume-slider';\nimport { isRenderProp } from '@/utils/use-render';\nimport type { BaseVideoSkinProps } from '../types';\n\nconst SEEK_TIME = 10;\n\nexport type VideoSkinProps = BaseVideoSkinProps;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn('media-button media-button--subtle media-button--icon', className)}\n {...props}\n />\n );\n});\n\nfunction VolumePopover(): ReactNode {\n const volumeUnsupported = usePlayer((s) => s.volumeAvailability === 'unsupported');\n\n const muteButton = (\n <MuteButton className=\"media-button--mute\" render={<Button />}>\n <VolumeOffIcon className=\"media-icon media-icon--volume-off\" />\n <VolumeLowIcon className=\"media-icon media-icon--volume-low\" />\n <VolumeHighIcon className=\"media-icon media-icon--volume-high\" />\n </MuteButton>\n );\n\n if (volumeUnsupported) return muteButton;\n\n return (\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger render={muteButton} />\n <Popover.Popup className=\"media-surface media-popover media-popover--volume\">\n <VolumeSlider.Root className=\"media-slider\" orientation=\"vertical\" thumbAlignment=\"edge\">\n <VolumeSlider.Track className=\"media-slider__track\">\n <VolumeSlider.Fill className=\"media-slider__fill\" />\n </VolumeSlider.Track>\n <VolumeSlider.Thumb className=\"media-slider__thumb media-slider__thumb--persistent\" />\n </VolumeSlider.Root>\n </Popover.Popup>\n </Popover.Root>\n );\n}\n\nexport function VideoSkin(props: VideoSkinProps): ReactNode {\n const { children, className, poster, ...rest } = props;\n\n return (\n <Container className={cn('media-default-skin media-default-skin--video', className)} {...rest}>\n {children}\n\n {poster && (\n <Poster src={isString(poster) ? poster : undefined} render={isRenderProp(poster) ? poster : undefined} />\n )}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className=\"media-buffering-indicator\">\n <div className=\"media-surface\">\n <SpinnerIcon className=\"media-icon\" />\n </div>\n </div>\n )}\n />\n\n <ErrorDialog.Root>\n <ErrorDialog.Popup className=\"media-error\">\n <div className=\"media-error__dialog media-surface\">\n <div className=\"media-error__content\">\n <ErrorDialog.Title className=\"media-error__title\">Something went wrong.</ErrorDialog.Title>\n <ErrorDialog.Description className=\"media-error__description\" />\n </div>\n <div className=\"media-error__actions\">\n <ErrorDialog.Close className=\"media-button media-button--primary\">OK</ErrorDialog.Close>\n </div>\n </div>\n </ErrorDialog.Popup>\n </ErrorDialog.Root>\n\n <Controls.Root className=\"media-surface media-controls\">\n <Tooltip.Provider>\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton className=\"media-button--play\" render={<Button />}>\n <RestartIcon className=\"media-icon media-icon--restart\" />\n <PlayIcon className=\"media-icon media-icon--play\" />\n <PauseIcon className=\"media-icon media-icon--pause\" />\n </PlayButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={-SEEK_TIME} className=\"media-button--seek\" render={<Button />}>\n <span className=\"media-icon__container\">\n <SeekIcon className=\"media-icon media-icon--seek media-icon--flipped\" />\n <span className=\"media-icon__label\">{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">Seek backward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton seconds={SEEK_TIME} className=\"media-button--seek\" render={<Button />}>\n <span className=\"media-icon__container\">\n <SeekIcon className=\"media-icon media-icon--seek\" />\n <span className=\"media-icon__label\">{SEEK_TIME}</span>\n </span>\n </SeekButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">Seek forward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n </div>\n\n <div className=\"media-time-controls\">\n <Time.Value type=\"current\" className=\"media-time\" />\n <TimeSlider.Root className=\"media-slider\">\n <TimeSlider.Track className=\"media-slider__track\">\n <TimeSlider.Fill className=\"media-slider__fill\" />\n <TimeSlider.Buffer className=\"media-slider__buffer\" />\n </TimeSlider.Track>\n <TimeSlider.Thumb className=\"media-slider__thumb\" />\n\n <div className=\"media-surface media-preview media-slider__preview\">\n <Slider.Thumbnail className=\"media-preview__thumbnail\" />\n <TimeSlider.Value type=\"pointer\" className=\"media-time media-preview__time\" />\n <SpinnerIcon className=\"media-preview__spinner media-icon\" />\n </div>\n </TimeSlider.Root>\n <Time.Value type=\"duration\" className=\"media-time\" />\n </div>\n\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={<PlaybackRateButton className=\"media-button--playback-rate\" render={<Button />} />}\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\">Toggle playback rate</Tooltip.Popup>\n </Tooltip.Root>\n\n <VolumePopover />\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton className=\"media-button--captions\" render={<Button />}>\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </CaptionsButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CastButton className=\"media-button--cast\" render={<Button />}>\n <CastEnterIcon className=\"media-icon media-icon--cast-enter\" />\n <CastExitIcon className=\"media-icon media-icon--cast-exit\" />\n </CastButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton className=\"media-button--pip\" render={<Button />}>\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n </PiPButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton className=\"media-button--fullscreen\" render={<Button />}>\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n </FullscreenButton>\n }\n />\n <Tooltip.Popup className=\"media-surface media-tooltip\" />\n </Tooltip.Root>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className=\"media-overlay\" />\n\n {/* Hotkeys */}\n <Hotkey keys=\"Space\" action=\"togglePaused\" />\n <Hotkey keys=\"k\" action=\"togglePaused\" />\n <Hotkey keys=\"m\" action=\"toggleMuted\" />\n <Hotkey keys=\"f\" action=\"toggleFullscreen\" />\n <Hotkey keys=\"c\" action=\"toggleSubtitles\" />\n <Hotkey keys=\"i\" action=\"togglePictureInPicture\" />\n <Hotkey keys=\"ArrowRight\" action=\"seekStep\" value={5} />\n <Hotkey keys=\"ArrowLeft\" action=\"seekStep\" value={-5} />\n <Hotkey keys=\"l\" action=\"seekStep\" value={10} />\n <Hotkey keys=\"j\" action=\"seekStep\" value={-10} />\n <Hotkey keys=\"ArrowUp\" action=\"volumeStep\" value={0.05} />\n <Hotkey keys=\"ArrowDown\" action=\"volumeStep\" value={-0.05} />\n <Hotkey keys=\"0-9\" action=\"seekToPercent\" />\n <Hotkey keys=\"Home\" action=\"seekToPercent\" value={0} />\n <Hotkey keys=\"End\" action=\"seekToPercent\" value={100} />\n <Hotkey keys=\">\" action=\"speedUp\" />\n <Hotkey keys=\"<\" action=\"speedDown\" />\n\n {/* Gestures */}\n <Gesture type=\"tap\" action=\"togglePaused\" pointer=\"mouse\" region=\"center\" />\n <Gesture type=\"tap\" action=\"toggleControls\" pointer=\"touch\" />\n <Gesture type=\"doubletap\" action=\"seekStep\" value={-10} region=\"left\" />\n <Gesture type=\"doubletap\" action=\"toggleFullscreen\" region=\"center\" />\n <Gesture type=\"doubletap\" action=\"seekStep\" value={10} region=\"right\" />\n </Container>\n );\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/default/tailwind/components/button.js
3
3
  const button = {
4
- base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-full", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "focus-visible:outline-current focus-visible:outline-offset-2", "data-[availability=unavailable]:hidden"),
4
+ base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-full", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "focus-visible:outline-current focus-visible:outline-offset-2", "data-[availability=unavailable]:hidden", "data-[availability=unsupported]:hidden"),
5
5
  primary: "bg-white text-black font-medium text-shadow-none",
6
6
  subtle: cn("bg-transparent text-inherit text-shadow-inherit", "hover:bg-current/10 hover:no-underline", "focus-visible:bg-current/10", "aria-expanded:bg-current/10"),
7
7
  icon: cn("grid w-9 aspect-square p-0", "active:scale-90")
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-full\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"data-[availability=unavailable]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10 hover:no-underline\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-9 aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,0BAA0B,mDAAmD,gGAAgG,uBAAuB,sEAAsE,gEAAgE,yCAAyC;CAC/e,SAAS;CACT,QAAQ,GAAG,mDAAmD,0CAA0C,+BAA+B,8BAA8B;CACrK,MAAM,GAAG,8BAA8B,kBAAkB;CACzD"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/default/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/default/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-full\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"data-[availability=unavailable]:hidden\", \"data-[availability=unsupported]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10 hover:no-underline\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-9 aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,0BAA0B,mDAAmD,gGAAgG,uBAAuB,sEAAsE,gEAAgE,0CAA0C,yCAAyC;CACzhB,SAAS;CACT,QAAQ,GAAG,mDAAmD,0CAA0C,+BAA+B,8BAA8B;CACrK,MAAM,GAAG,8BAA8B,kBAAkB;CACzD"}
@@ -1,7 +1,7 @@
1
1
  import { cn } from "@videojs/utils/style";
2
2
  //#region ../skins/dist/default/minimal/tailwind/components/button.js
3
3
  const button = {
4
- base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-lg", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "focus-visible:outline-current focus-visible:outline-offset-2", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "supports-[corner-shape:squircle]:rounded-[1rem]", "supports-[corner-shape:squircle]:[corner-shape:squircle]", "data-[availability=unavailable]:hidden"),
4
+ base: cn("flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation", "py-2 px-4 rounded-lg", "outline-2 outline-transparent -outline-offset-2", "transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out", "focus-visible:outline-current focus-visible:outline-offset-2", "active:scale-[0.98]", "disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale", "supports-[corner-shape:squircle]:rounded-[1rem]", "supports-[corner-shape:squircle]:[corner-shape:squircle]", "data-[availability=unavailable]:hidden", "data-[availability=unsupported]:hidden"),
5
5
  primary: "bg-white text-black font-medium text-shadow-none",
6
6
  subtle: cn("bg-transparent text-inherit text-shadow-inherit", "hover:bg-current/10", "focus-visible:bg-current/10", "aria-expanded:bg-current/10"),
7
7
  icon: cn("grid w-[2.375rem] aspect-square p-0", "active:scale-90")
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-lg\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"supports-[corner-shape:squircle]:rounded-[1rem]\", \"supports-[corner-shape:squircle]:[corner-shape:squircle]\", \"data-[availability=unavailable]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-[2.375rem] aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,wBAAwB,mDAAmD,gGAAgG,gEAAgE,uBAAuB,sEAAsE,mDAAmD,4DAA4D,yCAAyC;CAC5lB,SAAS;CACT,QAAQ,GAAG,mDAAmD,uBAAuB,+BAA+B,8BAA8B;CAClJ,MAAM,GAAG,uCAAuC,kBAAkB;CAClE"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../../../../../../../skins/dist/default/minimal/tailwind/components/button.js"],"sourcesContent":["import { cn } from \"@videojs/utils/style\";\n//#region src/minimal/tailwind/components/button.ts\nconst button = {\n\tbase: cn(\"flex items-center justify-center shrink-0 border-none cursor-pointer select-none text-center touch-manipulation\", \"py-2 px-4 rounded-lg\", \"outline-2 outline-transparent -outline-offset-2\", \"transition-[background-color,outline-offset,scale] will-change-[scale] duration-150 ease-out\", \"focus-visible:outline-current focus-visible:outline-offset-2\", \"active:scale-[0.98]\", \"disabled:cursor-not-allowed disabled:opacity-50 disabled:grayscale\", \"supports-[corner-shape:squircle]:rounded-[1rem]\", \"supports-[corner-shape:squircle]:[corner-shape:squircle]\", \"data-[availability=unavailable]:hidden\", \"data-[availability=unsupported]:hidden\"),\n\tprimary: \"bg-white text-black font-medium text-shadow-none\",\n\tsubtle: cn(\"bg-transparent text-inherit text-shadow-inherit\", \"hover:bg-current/10\", \"focus-visible:bg-current/10\", \"aria-expanded:bg-current/10\"),\n\ticon: cn(\"grid w-[2.375rem] aspect-square p-0\", \"active:scale-90\")\n};\n//#endregion\nexport { button };\n\n//# sourceMappingURL=button.js.map"],"mappings":";;AAEA,MAAM,SAAS;CACd,MAAM,GAAG,mHAAmH,wBAAwB,mDAAmD,gGAAgG,gEAAgE,uBAAuB,sEAAsE,mDAAmD,4DAA4D,0CAA0C,yCAAyC;CACtoB,SAAS;CACT,QAAQ,GAAG,mDAAmD,uBAAuB,+BAA+B,8BAA8B;CAClJ,MAAM,GAAG,uCAAuC,kBAAkB;CAClE"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { createMediaButton } from "../create-media-button.js";
3
- import { selectCast } from "@videojs/core/dom";
3
+ import { selectRemotePlayback } from "@videojs/core/dom";
4
4
  import { CastButtonCore, CastButtonDataAttrs } from "@videojs/core";
5
5
  //#region src/ui/cast-button/cast-button.tsx
6
6
  /** A button that toggles casting to a remote device. */
@@ -8,7 +8,7 @@ const CastButton = createMediaButton({
8
8
  displayName: "CastButton",
9
9
  core: CastButtonCore,
10
10
  stateAttrMap: CastButtonDataAttrs,
11
- selector: selectCast,
11
+ selector: selectRemotePlayback,
12
12
  action: (core, state) => core.toggle(state)
13
13
  });
14
14
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"cast-button.js","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"sourcesContent":["'use client';\n\nimport { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectCast } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CastButtonProps extends UIComponentProps<'button', CastButtonCore.State>, CastButtonCore.Props {}\n\n/** A button that toggles casting to a remote device. */\nexport const CastButton = createMediaButton<CastButtonCore, CastButtonProps>({\n displayName: 'CastButton',\n core: CastButtonCore,\n stateAttrMap: CastButtonDataAttrs,\n selector: selectCast,\n action: (core, state) => core.toggle(state),\n});\n\nexport namespace CastButton {\n export type Props = CastButtonProps;\n export type State = CastButtonCore.State;\n}\n"],"mappings":";;;;;;AAWA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,MAAM;CAC5C,CAAC"}
1
+ {"version":3,"file":"cast-button.js","names":[],"sources":["../../../../src/ui/cast-button/cast-button.tsx"],"sourcesContent":["'use client';\n\nimport { CastButtonCore, CastButtonDataAttrs } from '@videojs/core';\nimport { selectRemotePlayback } from '@videojs/core/dom';\n\nimport type { UIComponentProps } from '../../utils/types';\nimport { createMediaButton } from '../create-media-button';\n\nexport interface CastButtonProps extends UIComponentProps<'button', CastButtonCore.State>, CastButtonCore.Props {}\n\n/** A button that toggles casting to a remote device. */\nexport const CastButton = createMediaButton<CastButtonCore, CastButtonProps>({\n displayName: 'CastButton',\n core: CastButtonCore,\n stateAttrMap: CastButtonDataAttrs,\n selector: selectRemotePlayback,\n action: (core, state) => core.toggle(state),\n});\n\nexport namespace CastButton {\n export type Props = CastButtonProps;\n export type State = CastButtonCore.State;\n}\n"],"mappings":";;;;;;AAWA,MAAa,aAAa,kBAAmD;CAC3E,aAAa;CACb,MAAM;CACN,cAAc;CACd,UAAU;CACV,SAAS,MAAM,UAAU,KAAK,OAAO,MAAM;CAC5C,CAAC"}
@@ -2,8 +2,8 @@
2
2
  import { useContainer, usePlayer } from "../../player/context.js";
3
3
  import { createDoubleTapGesture, createTapGesture, resolveGestureAction } from "@videojs/core/dom";
4
4
  import { useEffect } from "react";
5
- //#region src/ui/gesture/media-gesture.tsx
6
- function MediaGesture({ type, action, value, pointer, region, disabled }) {
5
+ //#region src/ui/gesture/gesture.tsx
6
+ function Gesture({ type, action, value, pointer, region, disabled }) {
7
7
  const store = usePlayer();
8
8
  const container = useContainer();
9
9
  useEffect(() => {
@@ -36,7 +36,9 @@ function MediaGesture({ type, action, value, pointer, region, disabled }) {
36
36
  ]);
37
37
  return null;
38
38
  }
39
+ /** @deprecated Use `Gesture` instead. */
40
+ const MediaGesture = Gesture;
39
41
  //#endregion
40
- export { MediaGesture };
42
+ export { Gesture, MediaGesture };
41
43
 
42
- //# sourceMappingURL=media-gesture.js.map
44
+ //# sourceMappingURL=gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture.js","names":[],"sources":["../../../../src/ui/gesture/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 GestureProps {\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 Gesture({ type, action, value, pointer, region, disabled }: GestureProps): 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\nexport namespace Gesture {\n export type Props = GestureProps;\n}\n\n/** @deprecated Use `GestureProps` instead. */\nexport type MediaGestureProps = GestureProps;\n\n/** @deprecated Use `Gesture` instead. */\nexport const MediaGesture = Gesture;\n"],"mappings":";;;;;AAyBA,SAAgB,QAAQ,EAAE,MAAM,QAAQ,OAAO,SAAS,QAAQ,YAAqC;CACnG,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;;;AAWT,MAAa,eAAe"}
@@ -2,8 +2,8 @@
2
2
  import { useContainer, usePlayer } from "../../player/context.js";
3
3
  import { createHotkey, isHotkeyToggleAction, resolveHotkeyAction } from "@videojs/core/dom";
4
4
  import { useEffect } from "react";
5
- //#region src/ui/hotkey/media-hotkey.tsx
6
- function MediaHotkey({ keys, action, value, disabled, target }) {
5
+ //#region src/ui/hotkey/hotkey.tsx
6
+ function Hotkey({ keys, action, value, disabled, target }) {
7
7
  const store = usePlayer();
8
8
  const container = useContainer();
9
9
  useEffect(() => {
@@ -35,7 +35,9 @@ function MediaHotkey({ keys, action, value, disabled, target }) {
35
35
  ]);
36
36
  return null;
37
37
  }
38
+ /** @deprecated Use `Hotkey` instead. */
39
+ const MediaHotkey = Hotkey;
38
40
  //#endregion
39
- export { MediaHotkey };
41
+ export { Hotkey, MediaHotkey };
40
42
 
41
- //# sourceMappingURL=media-hotkey.js.map
43
+ //# sourceMappingURL=hotkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkey.js","names":[],"sources":["../../../../src/ui/hotkey/hotkey.tsx"],"sourcesContent":["'use client';\n\nimport {\n type AnyPlayerStore,\n createHotkey,\n type HotkeyActionName,\n isHotkeyToggleAction,\n resolveHotkeyAction,\n} from '@videojs/core/dom';\nimport type { ReactNode } from 'react';\nimport { useEffect } from 'react';\n\nimport { useContainer, usePlayer } from '../../player/context';\n\nexport interface HotkeyProps {\n keys: string;\n action: HotkeyActionName | (string & {});\n value?: number;\n disabled?: boolean;\n target?: 'player' | 'document';\n}\n\nexport function Hotkey({ keys, action, value, disabled, target }: HotkeyProps): ReactNode {\n const store = usePlayer() as AnyPlayerStore;\n const container = useContainer();\n\n useEffect(() => {\n if (!container || !keys || !action || disabled) return;\n\n const resolver = resolveHotkeyAction(action);\n if (!resolver) return;\n\n return createHotkey(container, {\n keys,\n action,\n target,\n disabled,\n repeatable: !isHotkeyToggleAction(action),\n onActivate: (_event, key) => {\n resolver({ store, key, value });\n },\n });\n }, [container, store, keys, action, value, disabled, target]);\n\n return null;\n}\n\nexport namespace Hotkey {\n export type Props = HotkeyProps;\n}\n\n/** @deprecated Use `HotkeyProps` instead. */\nexport type MediaHotkeyProps = HotkeyProps;\n\n/** @deprecated Use `Hotkey` instead. */\nexport const MediaHotkey = Hotkey;\n"],"mappings":";;;;;AAsBA,SAAgB,OAAO,EAAE,MAAM,QAAQ,OAAO,UAAU,UAAkC;CACxF,MAAM,QAAQ,WAAW;CACzB,MAAM,YAAY,cAAc;AAEhC,iBAAgB;AACd,MAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,SAAU;EAEhD,MAAM,WAAW,oBAAoB,OAAO;AAC5C,MAAI,CAAC,SAAU;AAEf,SAAO,aAAa,WAAW;GAC7B;GACA;GACA;GACA;GACA,YAAY,CAAC,qBAAqB,OAAO;GACzC,aAAa,QAAQ,QAAQ;AAC3B,aAAS;KAAE;KAAO;KAAK;KAAO,CAAC;;GAElC,CAAC;IACD;EAAC;EAAW;EAAO;EAAM;EAAQ;EAAO;EAAU;EAAO,CAAC;AAE7D,QAAO;;;AAWT,MAAa,cAAc"}
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { useCallback } from "react";
3
+ //#region src/utils/use-attach-media.ts
4
+ function useAttachMedia(media) {
5
+ return useCallback((element) => {
6
+ if (element) media.attach?.(element);
7
+ else media.detach?.();
8
+ return () => media.detach?.();
9
+ }, [media]);
10
+ }
11
+ //#endregion
12
+ export { useAttachMedia };
13
+
14
+ //# sourceMappingURL=use-attach-media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-attach-media.js","names":[],"sources":["../../../src/utils/use-attach-media.ts"],"sourcesContent":["'use client';\n\nimport type { MediaEngineHost } from '@videojs/core';\nimport type { RefCallback } from 'react';\nimport { useCallback } from 'react';\n\nexport function useAttachMedia<T extends HTMLMediaElement>(media: MediaEngineHost): RefCallback<T> {\n return useCallback(\n (element: T | null) => {\n if (element) media.attach?.(element);\n else media.detach?.();\n return () => media.detach?.();\n },\n [media]\n );\n}\n"],"mappings":";;;AAMA,SAAgB,eAA2C,OAAwC;AACjG,QAAO,aACJ,YAAsB;AACrB,MAAI,QAAS,OAAM,SAAS,QAAQ;MAC/B,OAAM,UAAU;AACrB,eAAa,MAAM,UAAU;IAE/B,CAAC,MAAM,CACR"}
@@ -0,0 +1,14 @@
1
+ import { isUndefined } from "@videojs/utils/predicate";
2
+ //#region src/utils/use-sync-props.ts
3
+ function useSyncProps(target, props, defaults) {
4
+ const rest = {};
5
+ for (const key in props) if (key in defaults) {
6
+ const value = isUndefined(props[key]) ? defaults[key] : props[key];
7
+ if (target[key] !== value) target[key] = value;
8
+ } else rest[key] = props[key];
9
+ return rest;
10
+ }
11
+ //#endregion
12
+ export { useSyncProps };
13
+
14
+ //# sourceMappingURL=use-sync-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sync-props.js","names":[],"sources":["../../../src/utils/use-sync-props.ts"],"sourcesContent":["import { isUndefined } from '@videojs/utils/predicate';\n\nexport function useSyncProps<Props extends object, Rest extends Record<string, unknown>>(\n target: Props,\n props: Partial<Props> & Rest,\n defaults: Props\n): Omit<Rest, keyof Props> {\n const rest: Record<string, unknown> = {};\n\n for (const key in props) {\n if (key in defaults) {\n const value = isUndefined(props[key]) ? (defaults as Record<string, unknown>)[key] : props[key];\n if (target[key as keyof typeof target] !== value) target[key as keyof typeof target] = value as any;\n } else {\n rest[key] = props[key];\n }\n }\n\n return rest as Omit<Rest, keyof Props>;\n}\n"],"mappings":";;AAEA,SAAgB,aACd,QACA,OACA,UACyB;CACzB,MAAM,OAAgC,EAAE;AAExC,MAAK,MAAM,OAAO,MAChB,KAAI,OAAO,UAAU;EACnB,MAAM,QAAQ,YAAY,MAAM,KAAK,GAAI,SAAqC,OAAO,MAAM;AAC3F,MAAI,OAAO,SAAgC,MAAO,QAAO,OAA8B;OAEvF,MAAK,OAAO,MAAM;AAItB,QAAO"}
@@ -12,12 +12,12 @@ import { index_parts_d_exports as index_parts_d_exports$1 } from "./ui/controls/
12
12
  import { ErrorDialogContextValue, useErrorDialogContext } from "./ui/error-dialog/context.js";
13
13
  import { index_parts_d_exports as index_parts_d_exports$2 } from "./ui/error-dialog/index.parts.js";
14
14
  import { FullscreenButton, FullscreenButtonProps } from "./ui/fullscreen-button/fullscreen-button.js";
15
- import { MediaGesture, MediaGestureProps } from "./ui/gesture/media-gesture.js";
15
+ import { Gesture, GestureProps, MediaGesture, MediaGestureProps } from "./ui/gesture/gesture.js";
16
16
  import { UseDoubleTapGestureOptions, useDoubleTapGesture } from "./ui/gesture/use-doubletap-gesture.js";
17
17
  import { UseTapGestureOptions, useTapGesture } from "./ui/gesture/use-tap-gesture.js";
18
18
  import { useButton } from "./ui/hooks/use-button.js";
19
19
  import { useSlider } from "./ui/hooks/use-slider.js";
20
- import { MediaHotkey, MediaHotkeyProps } from "./ui/hotkey/media-hotkey.js";
20
+ import { Hotkey, HotkeyProps, MediaHotkey, MediaHotkeyProps } from "./ui/hotkey/hotkey.js";
21
21
  import { useAriaKeyShortcuts } from "./ui/hotkey/use-aria-key-shortcuts.js";
22
22
  import { UseHotkeyOptions, useHotkey } from "./ui/hotkey/use-hotkey.js";
23
23
  import { MuteButton, MuteButtonProps } from "./ui/mute-button/mute-button.js";
@@ -42,9 +42,8 @@ import { index_parts_d_exports as index_parts_d_exports$6 } from "./ui/time-slid
42
42
  import { TooltipContextValue, useTooltipContext } from "./ui/tooltip/context.js";
43
43
  import { index_parts_d_exports as index_parts_d_exports$7 } from "./ui/tooltip/index.parts.js";
44
44
  import { index_parts_d_exports as index_parts_d_exports$8 } from "./ui/volume-slider/index.parts.js";
45
- import { attachMediaElement } from "./utils/attach-media-element.js";
46
- import { mediaProps } from "./utils/media-props.js";
47
45
  import { mergeProps } from "./utils/merge-props.js";
46
+ import { useAttachMedia } from "./utils/use-attach-media.js";
48
47
  import { composeRefs, useComposedRefs } from "./utils/use-composed-refs.js";
49
48
  import { useDestroy } from "./utils/use-destroy.js";
50
49
  import { useLatestRef } from "./utils/use-latest-ref.js";
@@ -53,4 +52,4 @@ import { renderElement } from "./utils/use-render.js";
53
52
  import { Comparator, Selector, createSelector, shallowEqual } from "@videojs/store";
54
53
  import { useSelector, useStore } from "@videojs/store/react";
55
54
  export * from "@videojs/core/dom";
56
- export { index_parts_d_exports as AlertDialog, type AlertDialogContextValue, BufferingIndicator, type BufferingIndicatorProps, CaptionsButton, type CaptionsButtonProps, CastButton, type CastButtonProps, type Comparator, Container, type ContainerProps, index_parts_d_exports$1 as Controls, type ControlsGroupProps, type ControlsRootProps, type CreatePlayerConfig, type CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, type ErrorDialogContextValue, FullscreenButton, type FullscreenButtonProps, type HTMLProps, MediaGesture, type MediaGestureProps, MediaHotkey, type MediaHotkeyProps, MuteButton, type MuteButtonProps, PiPButton, type PiPButtonProps, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, type PlayerContextValue, index_parts_d_exports$3 as Popover, type PopoverContextValue, Poster, type PosterProps, type ProviderProps, type RenderFunction, type RenderProp, SeekButton, type SeekButtonProps, type Selector, index_parts_d_exports$4 as Slider, type SliderBufferProps, type SliderFillProps, type SliderRootProps, type SliderThumbProps, type SliderThumbnailProps, type SliderTrackProps, type SliderValueProps, Thumbnail, type ThumbnailProps, index_parts_d_exports$5 as Time, index_parts_d_exports$6 as TimeSlider, index_parts_d_exports$7 as Tooltip, type TooltipContextValue, type UIComponentProps, type UseDoubleTapGestureOptions, type UseHotkeyOptions, type UseTapGestureOptions, index_parts_d_exports$8 as VolumeSlider, attachMediaElement, composeRefs, createPlayer, createSelector, mediaProps, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
55
+ export { index_parts_d_exports as AlertDialog, type AlertDialogContextValue, BufferingIndicator, type BufferingIndicatorProps, CaptionsButton, type CaptionsButtonProps, CastButton, type CastButtonProps, type Comparator, Container, type ContainerProps, index_parts_d_exports$1 as Controls, type ControlsGroupProps, type ControlsRootProps, type CreatePlayerConfig, type CreatePlayerResult, index_parts_d_exports$2 as ErrorDialog, type ErrorDialogContextValue, FullscreenButton, type FullscreenButtonProps, Gesture, type GestureProps, type HTMLProps, Hotkey, type HotkeyProps, MediaGesture, type MediaGestureProps, MediaHotkey, type MediaHotkeyProps, MuteButton, type MuteButtonProps, PiPButton, type PiPButtonProps, PlayButton, type PlayButtonProps, PlaybackRateButton, type PlaybackRateButtonProps, type PlayerContextValue, index_parts_d_exports$3 as Popover, type PopoverContextValue, Poster, type PosterProps, type ProviderProps, type RenderFunction, type RenderProp, SeekButton, type SeekButtonProps, type Selector, index_parts_d_exports$4 as Slider, type SliderBufferProps, type SliderFillProps, type SliderRootProps, type SliderThumbProps, type SliderThumbnailProps, type SliderTrackProps, type SliderValueProps, Thumbnail, type ThumbnailProps, index_parts_d_exports$5 as Time, index_parts_d_exports$6 as TimeSlider, index_parts_d_exports$7 as Tooltip, type TooltipContextValue, type UIComponentProps, type UseDoubleTapGestureOptions, type UseHotkeyOptions, type UseTapGestureOptions, index_parts_d_exports$8 as VolumeSlider, composeRefs, createPlayer, createSelector, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useAttachMedia, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
package/dist/dev/index.js CHANGED
@@ -18,11 +18,11 @@ import { index_parts_exports as index_parts_exports$1 } from "./ui/controls/inde
18
18
  import { useErrorDialogContext } from "./ui/error-dialog/context.js";
19
19
  import { index_parts_exports as index_parts_exports$2 } from "./ui/error-dialog/index.parts.js";
20
20
  import { FullscreenButton } from "./ui/fullscreen-button/fullscreen-button.js";
21
- import { MediaGesture } from "./ui/gesture/media-gesture.js";
21
+ import { Gesture, MediaGesture } from "./ui/gesture/gesture.js";
22
22
  import { useDoubleTapGesture } from "./ui/gesture/use-doubletap-gesture.js";
23
23
  import { useTapGesture } from "./ui/gesture/use-tap-gesture.js";
24
24
  import { useSlider } from "./ui/hooks/use-slider.js";
25
- import { MediaHotkey } from "./ui/hotkey/media-hotkey.js";
25
+ import { Hotkey, MediaHotkey } from "./ui/hotkey/hotkey.js";
26
26
  import { useHotkey } from "./ui/hotkey/use-hotkey.js";
27
27
  import { MuteButton } from "./ui/mute-button/mute-button.js";
28
28
  import { PiPButton } from "./ui/pip-button/pip-button.js";
@@ -38,10 +38,9 @@ import { index_parts_exports as index_parts_exports$5 } from "./ui/time/index.pa
38
38
  import { index_parts_exports as index_parts_exports$6 } from "./ui/time-slider/index.parts.js";
39
39
  import { index_parts_exports as index_parts_exports$7 } from "./ui/tooltip/index.parts.js";
40
40
  import { index_parts_exports as index_parts_exports$8 } from "./ui/volume-slider/index.parts.js";
41
- import { attachMediaElement } from "./utils/attach-media-element.js";
42
- import { mediaProps } from "./utils/media-props.js";
41
+ import { useAttachMedia } from "./utils/use-attach-media.js";
43
42
  import { useMediaInstance } from "./utils/use-media-instance.js";
44
43
  import { createSelector, shallowEqual } from "@videojs/store";
45
44
  import { useSelector, useStore } from "@videojs/store/react";
46
45
  export * from "@videojs/core/dom";
47
- export { index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, CastButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, MediaGesture, MediaHotkey, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$3 as Popover, Poster, SeekButton, index_parts_exports$4 as Slider, Thumbnail, index_parts_exports$5 as Time, index_parts_exports$6 as TimeSlider, index_parts_exports$7 as Tooltip, index_parts_exports$8 as VolumeSlider, attachMediaElement, composeRefs, createPlayer, createSelector, mediaProps, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
46
+ export { index_parts_exports as AlertDialog, BufferingIndicator, CaptionsButton, CastButton, Container, index_parts_exports$1 as Controls, index_parts_exports$2 as ErrorDialog, FullscreenButton, Gesture, Hotkey, MediaGesture, MediaHotkey, MuteButton, PiPButton, PlayButton, PlaybackRateButton, index_parts_exports$3 as Popover, Poster, SeekButton, index_parts_exports$4 as Slider, Thumbnail, index_parts_exports$5 as Time, index_parts_exports$6 as TimeSlider, index_parts_exports$7 as Tooltip, index_parts_exports$8 as VolumeSlider, composeRefs, createPlayer, createSelector, mergeProps, renderElement, shallowEqual, useAlertDialogContext, useAriaKeyShortcuts, useAttachMedia, useButton, useComposedRefs, useContainer, useContainerAttach, useDestroy, useDoubleTapGesture, useErrorDialogContext, useHotkey, useLatestRef, useMedia, useMediaAttach, useMediaInstance, useOptionalPlayer, usePlayer, usePlayerContext, usePopoverContext, useSelector, useSlider, useStore, useTapGesture, useTooltipContext };
@@ -1,9 +1,9 @@
1
- import * as react from "react";
1
+ import * as _$react from "react";
2
2
  import { AudioHTMLAttributes } from "react";
3
3
 
4
4
  //#region src/media/audio.d.ts
5
5
  interface AudioProps extends AudioHTMLAttributes<HTMLAudioElement> {}
6
- declare const Audio: react.ForwardRefExoticComponent<AudioProps & react.RefAttributes<HTMLAudioElement>>;
6
+ declare const Audio: _$react.ForwardRefExoticComponent<AudioProps & _$react.RefAttributes<HTMLAudioElement>>;
7
7
  declare namespace Audio {
8
8
  type Props = AudioProps;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audio.d.ts","names":[],"sources":["../../../src/media/audio.tsx"],"mappings":";;;;UAQiB,UAAA,SAAmB,mBAAA,CAAoB,gBAAA;AAAA,cAE3C,KAAA,EAAK,KAAA,CAAA,yBAAA,CAAA,UAAA,GAAA,KAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAWD,KAAA;EAAA,KACH,KAAA,GAAQ,UAAA;AAAA"}
1
+ {"version":3,"file":"audio.d.ts","names":[],"sources":["../../../src/media/audio.tsx"],"mappings":";;;;UAQiB,UAAA,SAAmB,mBAAA,CAAoB,gBAAA;AAAA,cAE3C,KAAA,EAAK,OAAA,CAAA,yBAAA,CAAA,UAAA,GAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAWD,KAAA;EAAA,KACH,KAAA,GAAQ,UAAA;AAAA"}
@@ -1,9 +1,9 @@
1
- import * as react from "react";
1
+ import * as _$react from "react";
2
2
  import { VideoHTMLAttributes } from "react";
3
3
 
4
4
  //#region src/media/background-video/index.d.ts
5
5
  interface BackgroundVideoProps extends VideoHTMLAttributes<HTMLVideoElement> {}
6
- declare const BackgroundVideo: react.ForwardRefExoticComponent<BackgroundVideoProps & react.RefAttributes<HTMLVideoElement>>;
6
+ declare const BackgroundVideo: _$react.ForwardRefExoticComponent<BackgroundVideoProps & _$react.RefAttributes<HTMLVideoElement>>;
7
7
  declare namespace BackgroundVideo {
8
8
  type Props = BackgroundVideoProps;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/media/background-video/index.tsx"],"mappings":";;;;UAQiB,oBAAA,SAA6B,mBAAA,CAAoB,gBAAA;AAAA,cAErD,eAAA,EAAe,KAAA,CAAA,yBAAA,CAAA,oBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAsBX,eAAA;EAAA,KACH,KAAA,GAAQ,oBAAA;AAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/media/background-video/index.tsx"],"mappings":";;;;UAQiB,oBAAA,SAA6B,mBAAA,CAAoB,gBAAA;AAAA,cAErD,eAAA,EAAe,OAAA,CAAA,yBAAA,CAAA,oBAAA,GAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAsBX,eAAA;EAAA,KACH,KAAA,GAAQ,oBAAA;AAAA"}
@@ -1,13 +1,12 @@
1
- import * as react from "react";
2
- import { PropsWithChildren, VideoHTMLAttributes } from "react";
3
- import { DashMedia } from "@videojs/core/dom/media/dash";
4
- import { InferClassProps } from "@videojs/utils/types";
1
+ import * as _$react from "react";
2
+ import { ReactNode, VideoHTMLAttributes } from "react";
3
+ import { DashMediaProps } from "@videojs/core/dom/media/dash";
5
4
 
6
5
  //#region src/media/dash-video/index.d.ts
7
- type DashVideoProps = PropsWithChildren<VideoHTMLAttributes<HTMLVideoElement>> & InferClassProps<typeof DashMedia>;
8
- declare const DashVideo: react.ForwardRefExoticComponent<VideoHTMLAttributes<HTMLVideoElement> & {
9
- children?: react.ReactNode | undefined;
10
- } & Partial<Pick<DashMedia, "poster" | "disableRemotePlayback" | "loop" | "muted" | "src" | "title" | "currentTime" | "volume" | "playbackRate">> & react.RefAttributes<HTMLVideoElement>>;
6
+ interface DashVideoProps extends Omit<VideoHTMLAttributes<HTMLVideoElement>, keyof DashMediaProps>, Partial<DashMediaProps> {
7
+ children?: ReactNode;
8
+ }
9
+ declare const DashVideo: _$react.ForwardRefExoticComponent<DashVideoProps & _$react.RefAttributes<HTMLVideoElement>>;
11
10
  declare namespace DashVideo {
12
11
  type Props = DashVideoProps;
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/media/dash-video/index.tsx"],"mappings":";;;;;;KAWY,cAAA,GAAiB,iBAAA,CAAkB,mBAAA,CAAoB,gBAAA,KACjE,eAAA,QAAuB,SAAA;AAAA,cAEZ,SAAA,QAAS,yBAAA,CAAA,mBAAA,CAAA,gBAAA;aAAA,KAAA,CAAA,SAAA;AAAA;kBAYL,SAAA;EAAA,KACH,KAAA,GAAQ,cAAA;AAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/media/dash-video/index.tsx"],"mappings":";;;;;UAWiB,cAAA,SACP,IAAA,CAAK,mBAAA,CAAoB,gBAAA,SAAyB,cAAA,GACxD,OAAA,CAAQ,cAAA;EACV,QAAA,GAAW,SAAA;AAAA;AAAA,cAGA,SAAA,EAAS,OAAA,CAAA,yBAAA,CAAA,cAAA,GAAA,OAAA,CAAA,aAAA,CAAA,gBAAA;AAAA,kBAaL,SAAA;EAAA,KACH,KAAA,GAAQ,cAAA;AAAA"}
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import { useComposedRefs } from "../../utils/use-composed-refs.js";
3
- import { attachMediaElement } from "../../utils/attach-media-element.js";
4
- import { mediaProps } from "../../utils/media-props.js";
3
+ import { useAttachMedia } from "../../utils/use-attach-media.js";
5
4
  import { useMediaInstance } from "../../utils/use-media-instance.js";
5
+ import { useSyncProps } from "../../utils/use-sync-props.js";
6
6
  import { forwardRef } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
- import { DashMedia } from "@videojs/core/dom/media/dash";
8
+ import { DashMedia, dashMediaDefaultProps } from "@videojs/core/dom/media/dash";
9
9
  //#region src/media/dash-video/index.tsx
10
10
  const DashVideo = forwardRef(function DashVideo({ children, ...props }, ref) {
11
- const mediaApi = useMediaInstance(DashMedia);
11
+ const media = useMediaInstance(DashMedia);
12
12
  return /* @__PURE__ */ jsx("video", {
13
- ref: useComposedRefs(attachMediaElement(mediaApi), ref),
14
- ...mediaProps(mediaApi, DashMedia, props),
13
+ ref: useComposedRefs(useAttachMedia(media), ref),
14
+ ...useSyncProps(media, props, dashMediaDefaultProps),
15
15
  children
16
16
  });
17
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/dash-video/index.tsx"],"sourcesContent":["'use client';\n\nimport { DashMedia } from '@videojs/core/dom/media/dash';\nimport type { InferClassProps } from '@videojs/utils/types';\nimport type { PropsWithChildren, VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { attachMediaElement } from '../../utils/attach-media-element';\nimport { mediaProps } from '../../utils/media-props';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\n\nexport type DashVideoProps = PropsWithChildren<VideoHTMLAttributes<HTMLVideoElement>> &\n InferClassProps<typeof DashMedia>;\n\nexport const DashVideo = forwardRef<HTMLVideoElement, DashVideoProps>(function DashVideo({ children, ...props }, ref) {\n const mediaApi = useMediaInstance(DashMedia);\n\n const composedRef = useComposedRefs(attachMediaElement(mediaApi), ref);\n\n return (\n <video ref={composedRef} {...mediaProps(mediaApi, DashMedia, props)}>\n {children}\n </video>\n );\n});\n\nexport namespace DashVideo {\n export type Props = DashVideoProps;\n}\n"],"mappings":";;;;;;;;;AAcA,MAAa,YAAY,WAA6C,SAAS,UAAU,EAAE,UAAU,GAAG,SAAS,KAAK;CACpH,MAAM,WAAW,iBAAiB,UAAU;AAI5C,QACE,oBAAC,SAAD;EAAO,KAHW,gBAAgB,mBAAmB,SAAS,EAAE,IAAI;EAG3C,GAAI,WAAW,UAAU,WAAW,MAAM;EAChE;EACK,CAAA;EAEV"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/media/dash-video/index.tsx"],"sourcesContent":["'use client';\n\nimport type { DashMediaProps } from '@videojs/core/dom/media/dash';\nimport { DashMedia, dashMediaDefaultProps } from '@videojs/core/dom/media/dash';\nimport type { ReactNode, VideoHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport { useAttachMedia } from '../../utils/use-attach-media';\nimport { useComposedRefs } from '../../utils/use-composed-refs';\nimport { useMediaInstance } from '../../utils/use-media-instance';\nimport { useSyncProps } from '../../utils/use-sync-props';\n\nexport interface DashVideoProps\n extends Omit<VideoHTMLAttributes<HTMLVideoElement>, keyof DashMediaProps>,\n Partial<DashMediaProps> {\n children?: ReactNode;\n}\n\nexport const DashVideo = forwardRef<HTMLVideoElement, DashVideoProps>(function DashVideo({ children, ...props }, ref) {\n const media = useMediaInstance(DashMedia);\n const attachRef = useAttachMedia(media);\n const composedRef = useComposedRefs(attachRef, ref);\n const htmlProps = useSyncProps(media, props, dashMediaDefaultProps);\n\n return (\n <video ref={composedRef} {...htmlProps}>\n {children}\n </video>\n );\n});\n\nexport namespace DashVideo {\n export type Props = DashVideoProps;\n}\n"],"mappings":";;;;;;;;;AAiBA,MAAa,YAAY,WAA6C,SAAS,UAAU,EAAE,UAAU,GAAG,SAAS,KAAK;CACpH,MAAM,QAAQ,iBAAiB,UAAU;AAKzC,QACE,oBAAC,SAAD;EAAO,KAJW,gBADF,eAAe,MAAM,EACQ,IAAI;EAIxB,GAHT,aAAa,OAAO,OAAO,sBAAsB;EAI9D;EACK,CAAA;EAEV"}