@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.
- package/dist/default/index.js +4 -5
- package/dist/default/media/dash-video/index.js +6 -6
- package/dist/default/media/dash-video/index.js.map +1 -1
- package/dist/default/media/hls-video/index.js +6 -6
- package/dist/default/media/hls-video/index.js.map +1 -1
- package/dist/default/media/mux-audio/index.js +9 -8
- package/dist/default/media/mux-audio/index.js.map +1 -1
- package/dist/default/media/mux-video/index.js +6 -6
- package/dist/default/media/mux-video/index.js.map +1 -1
- package/dist/default/media/native-hls-video/index.js +6 -6
- package/dist/default/media/native-hls-video/index.js.map +1 -1
- package/dist/default/media/simple-hls-video/index.js +6 -5
- package/dist/default/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +2 -1
- package/dist/default/presets/audio/skin.css +2 -1
- package/dist/default/presets/audio/skin.js +15 -15
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/live-audio/index.js +7 -0
- package/dist/default/presets/live-audio/minimal-skin.css +736 -0
- package/dist/default/presets/live-audio/minimal-skin.js +136 -0
- package/dist/default/presets/live-audio/minimal-skin.js.map +1 -0
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js +166 -0
- package/dist/default/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
- package/dist/default/presets/live-audio/skin.css +752 -0
- package/dist/default/presets/live-audio/skin.js +158 -0
- package/dist/default/presets/live-audio/skin.js.map +1 -0
- package/dist/default/presets/live-audio/skin.tailwind.js +165 -0
- package/dist/default/presets/live-audio/skin.tailwind.js.map +1 -0
- package/dist/default/presets/live-video/index.js +7 -0
- package/dist/default/presets/live-video/minimal-skin.css +1127 -0
- package/dist/default/presets/live-video/minimal-skin.js +198 -0
- package/dist/default/presets/live-video/minimal-skin.js.map +1 -0
- package/dist/default/presets/live-video/minimal-skin.tailwind.js +231 -0
- package/dist/default/presets/live-video/minimal-skin.tailwind.js.map +1 -0
- package/dist/default/presets/live-video/skin.css +1117 -0
- package/dist/default/presets/live-video/skin.js +252 -0
- package/dist/default/presets/live-video/skin.js.map +1 -0
- package/dist/default/presets/live-video/skin.tailwind.js +233 -0
- package/dist/default/presets/live-video/skin.tailwind.js.map +1 -0
- package/dist/default/presets/video/minimal-skin.css +2 -1
- package/dist/default/presets/video/skin.css +2 -1
- package/dist/default/presets/video/skin.js +24 -24
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/ui/cast-button/cast-button.js +2 -2
- package/dist/default/ui/cast-button/cast-button.js.map +1 -1
- package/dist/default/ui/gesture/{media-gesture.js → gesture.js} +6 -4
- package/dist/default/ui/gesture/gesture.js.map +1 -0
- package/dist/default/ui/hotkey/{media-hotkey.js → hotkey.js} +6 -4
- package/dist/default/ui/hotkey/hotkey.js.map +1 -0
- package/dist/default/utils/use-attach-media.js +14 -0
- package/dist/default/utils/use-attach-media.js.map +1 -0
- package/dist/default/utils/use-sync-props.js +14 -0
- package/dist/default/utils/use-sync-props.js.map +1 -0
- package/dist/dev/index.d.ts +4 -5
- package/dist/dev/index.js +4 -5
- package/dist/dev/media/audio.d.ts +2 -2
- package/dist/dev/media/audio.d.ts.map +1 -1
- package/dist/dev/media/background-video/index.d.ts +2 -2
- package/dist/dev/media/background-video/index.d.ts.map +1 -1
- package/dist/dev/media/dash-video/index.d.ts +7 -8
- package/dist/dev/media/dash-video/index.d.ts.map +1 -1
- package/dist/dev/media/dash-video/index.js +6 -6
- package/dist/dev/media/dash-video/index.js.map +1 -1
- package/dist/dev/media/hls-video/index.d.ts +7 -8
- package/dist/dev/media/hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/hls-video/index.js +6 -6
- package/dist/dev/media/hls-video/index.js.map +1 -1
- package/dist/dev/media/mux-audio/index.d.ts +11 -9
- package/dist/dev/media/mux-audio/index.d.ts.map +1 -1
- package/dist/dev/media/mux-audio/index.js +9 -8
- package/dist/dev/media/mux-audio/index.js.map +1 -1
- package/dist/dev/media/mux-video/index.d.ts +7 -8
- package/dist/dev/media/mux-video/index.d.ts.map +1 -1
- package/dist/dev/media/mux-video/index.js +6 -6
- package/dist/dev/media/mux-video/index.js.map +1 -1
- package/dist/dev/media/native-hls-video/index.d.ts +7 -8
- package/dist/dev/media/native-hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/native-hls-video/index.js +6 -6
- package/dist/dev/media/native-hls-video/index.js.map +1 -1
- package/dist/dev/media/simple-hls-video/index.d.ts +7 -6
- package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js +6 -5
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/media/video.d.ts +2 -2
- package/dist/dev/media/video.d.ts.map +1 -1
- package/dist/dev/player/context.d.ts +2 -2
- package/dist/dev/player/context.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +2 -1
- package/dist/dev/presets/audio/skin.css +2 -1
- package/dist/dev/presets/audio/skin.js +15 -15
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/background/skin.d.ts +2 -2
- package/dist/dev/presets/background/skin.d.ts.map +1 -1
- package/dist/dev/presets/live-audio/index.d.ts +7 -0
- package/dist/dev/presets/live-audio/index.js +7 -0
- package/dist/dev/presets/live-audio/minimal-skin.css +736 -0
- package/dist/dev/presets/live-audio/minimal-skin.d.ts +16 -0
- package/dist/dev/presets/live-audio/minimal-skin.d.ts.map +1 -0
- package/dist/dev/presets/live-audio/minimal-skin.js +136 -0
- package/dist/dev/presets/live-audio/minimal-skin.js.map +1 -0
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts +8 -0
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.d.ts.map +1 -0
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js +166 -0
- package/dist/dev/presets/live-audio/minimal-skin.tailwind.js.map +1 -0
- package/dist/dev/presets/live-audio/skin.css +752 -0
- package/dist/dev/presets/live-audio/skin.d.ts +15 -0
- package/dist/dev/presets/live-audio/skin.d.ts.map +1 -0
- package/dist/dev/presets/live-audio/skin.js +158 -0
- package/dist/dev/presets/live-audio/skin.js.map +1 -0
- package/dist/dev/presets/live-audio/skin.tailwind.d.ts +8 -0
- package/dist/dev/presets/live-audio/skin.tailwind.d.ts.map +1 -0
- package/dist/dev/presets/live-audio/skin.tailwind.js +165 -0
- package/dist/dev/presets/live-audio/skin.tailwind.js.map +1 -0
- package/dist/dev/presets/live-video/index.d.ts +7 -0
- package/dist/dev/presets/live-video/index.js +7 -0
- package/dist/dev/presets/live-video/minimal-skin.css +1127 -0
- package/dist/dev/presets/live-video/minimal-skin.d.ts +16 -0
- package/dist/dev/presets/live-video/minimal-skin.d.ts.map +1 -0
- package/dist/dev/presets/live-video/minimal-skin.js +198 -0
- package/dist/dev/presets/live-video/minimal-skin.js.map +1 -0
- package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts +8 -0
- package/dist/dev/presets/live-video/minimal-skin.tailwind.d.ts.map +1 -0
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js +231 -0
- package/dist/dev/presets/live-video/minimal-skin.tailwind.js.map +1 -0
- package/dist/dev/presets/live-video/skin.css +1117 -0
- package/dist/dev/presets/live-video/skin.d.ts +15 -0
- package/dist/dev/presets/live-video/skin.d.ts.map +1 -0
- package/dist/dev/presets/live-video/skin.js +252 -0
- package/dist/dev/presets/live-video/skin.js.map +1 -0
- package/dist/dev/presets/live-video/skin.tailwind.d.ts +8 -0
- package/dist/dev/presets/live-video/skin.tailwind.d.ts.map +1 -0
- package/dist/dev/presets/live-video/skin.tailwind.js +233 -0
- package/dist/dev/presets/live-video/skin.tailwind.js.map +1 -0
- package/dist/dev/presets/video/minimal-skin.css +2 -1
- package/dist/dev/presets/video/skin.css +2 -1
- package/dist/dev/presets/video/skin.js +24 -24
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts +2 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-close.d.ts.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts +2 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-description.d.ts.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts +2 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-popup.d.ts.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts +2 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-title.d.ts.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts +2 -2
- package/dist/dev/ui/buffering-indicator/buffering-indicator.d.ts.map +1 -1
- package/dist/dev/ui/captions-button/captions-button.d.ts +2 -2
- package/dist/dev/ui/captions-button/captions-button.d.ts.map +1 -1
- package/dist/dev/ui/cast-button/cast-button.d.ts +2 -2
- package/dist/dev/ui/cast-button/cast-button.d.ts.map +1 -1
- package/dist/dev/ui/cast-button/cast-button.js +2 -2
- package/dist/dev/ui/cast-button/cast-button.js.map +1 -1
- package/dist/dev/ui/controls/controls-group.d.ts +2 -2
- package/dist/dev/ui/controls/controls-group.d.ts.map +1 -1
- package/dist/dev/ui/controls/controls-root.d.ts +2 -2
- package/dist/dev/ui/controls/controls-root.d.ts.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-description.d.ts +2 -2
- package/dist/dev/ui/error-dialog/error-dialog-description.d.ts.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts +2 -2
- package/dist/dev/ui/fullscreen-button/fullscreen-button.d.ts.map +1 -1
- package/dist/dev/ui/gesture/gesture.d.ts +30 -0
- package/dist/dev/ui/gesture/gesture.d.ts.map +1 -0
- package/dist/dev/ui/gesture/{media-gesture.js → gesture.js} +6 -4
- package/dist/dev/ui/gesture/gesture.js.map +1 -0
- package/dist/dev/ui/hotkey/hotkey.d.ts +28 -0
- package/dist/dev/ui/hotkey/hotkey.d.ts.map +1 -0
- package/dist/dev/ui/hotkey/{media-hotkey.js → hotkey.js} +6 -4
- package/dist/dev/ui/hotkey/hotkey.js.map +1 -0
- package/dist/dev/ui/mute-button/mute-button.d.ts +2 -2
- package/dist/dev/ui/mute-button/mute-button.d.ts.map +1 -1
- package/dist/dev/ui/pip-button/pip-button.d.ts +2 -2
- package/dist/dev/ui/pip-button/pip-button.d.ts.map +1 -1
- package/dist/dev/ui/play-button/play-button.d.ts +2 -2
- package/dist/dev/ui/play-button/play-button.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts +2 -2
- package/dist/dev/ui/playback-rate-button/playback-rate-button.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-arrow.d.ts +2 -2
- package/dist/dev/ui/popover/popover-arrow.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-popup.d.ts +2 -2
- package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-trigger.d.ts +2 -2
- package/dist/dev/ui/popover/popover-trigger.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster.d.ts +2 -2
- package/dist/dev/ui/poster/poster.d.ts.map +1 -1
- package/dist/dev/ui/seek-button/seek-button.d.ts +2 -2
- package/dist/dev/ui/seek-button/seek-button.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-buffer.d.ts +2 -2
- package/dist/dev/ui/slider/slider-buffer.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-fill.d.ts +2 -2
- package/dist/dev/ui/slider/slider-fill.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-preview.d.ts +2 -2
- package/dist/dev/ui/slider/slider-preview.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-root.d.ts +2 -2
- package/dist/dev/ui/slider/slider-root.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-thumb.d.ts +2 -2
- package/dist/dev/ui/slider/slider-thumb.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-thumbnail.d.ts +2 -2
- package/dist/dev/ui/slider/slider-thumbnail.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-track.d.ts +2 -2
- package/dist/dev/ui/slider/slider-track.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-value.d.ts +2 -2
- package/dist/dev/ui/slider/slider-value.d.ts.map +1 -1
- package/dist/dev/ui/thumbnail/thumbnail.d.ts +2 -2
- package/dist/dev/ui/thumbnail/thumbnail.d.ts.map +1 -1
- package/dist/dev/ui/time/time-group.d.ts +2 -2
- package/dist/dev/ui/time/time-group.d.ts.map +1 -1
- package/dist/dev/ui/time/time-separator.d.ts +2 -2
- package/dist/dev/ui/time/time-separator.d.ts.map +1 -1
- package/dist/dev/ui/time/time-value.d.ts +2 -2
- package/dist/dev/ui/time/time-value.d.ts.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.d.ts +2 -2
- package/dist/dev/ui/time-slider/time-slider-root.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-arrow.d.ts +2 -2
- package/dist/dev/ui/tooltip/tooltip-arrow.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts +2 -2
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-trigger.d.ts +2 -2
- package/dist/dev/ui/tooltip/tooltip-trigger.d.ts.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-root.d.ts +2 -2
- package/dist/dev/ui/volume-slider/volume-slider-root.d.ts.map +1 -1
- package/dist/dev/utils/use-attach-media.d.ts +8 -0
- package/dist/dev/utils/use-attach-media.d.ts.map +1 -0
- package/dist/dev/utils/use-attach-media.js +14 -0
- package/dist/dev/utils/use-attach-media.js.map +1 -0
- package/dist/dev/utils/use-sync-props.js +14 -0
- package/dist/dev/utils/use-sync-props.js.map +1 -0
- package/package.json +30 -9
- package/dist/default/ui/gesture/media-gesture.js.map +0 -1
- package/dist/default/ui/hotkey/media-hotkey.js.map +0 -1
- package/dist/default/utils/attach-media-element.js +0 -12
- package/dist/default/utils/attach-media-element.js.map +0 -1
- package/dist/default/utils/media-props.js +0 -19
- package/dist/default/utils/media-props.js.map +0 -1
- package/dist/dev/ui/gesture/media-gesture.d.ts +0 -23
- package/dist/dev/ui/gesture/media-gesture.d.ts.map +0 -1
- package/dist/dev/ui/gesture/media-gesture.js.map +0 -1
- package/dist/dev/ui/hotkey/media-hotkey.d.ts +0 -21
- package/dist/dev/ui/hotkey/media-hotkey.d.ts.map +0 -1
- package/dist/dev/ui/hotkey/media-hotkey.js.map +0 -1
- package/dist/dev/utils/attach-media-element.d.ts +0 -9
- package/dist/dev/utils/attach-media-element.d.ts.map +0 -1
- package/dist/dev/utils/attach-media-element.js +0 -12
- package/dist/dev/utils/attach-media-element.js.map +0 -1
- package/dist/dev/utils/media-props.d.ts +0 -8
- package/dist/dev/utils/media-props.d.ts.map +0 -1
- package/dist/dev/utils/media-props.js +0 -19
- 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 {
|
|
14
|
-
import {
|
|
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(
|
|
285
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
286
286
|
keys: "Space",
|
|
287
287
|
action: "togglePaused"
|
|
288
288
|
}),
|
|
289
|
-
/* @__PURE__ */ jsx(
|
|
289
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
290
290
|
keys: "k",
|
|
291
291
|
action: "togglePaused"
|
|
292
292
|
}),
|
|
293
|
-
/* @__PURE__ */ jsx(
|
|
293
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
294
294
|
keys: "m",
|
|
295
295
|
action: "toggleMuted"
|
|
296
296
|
}),
|
|
297
|
-
/* @__PURE__ */ jsx(
|
|
297
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
298
298
|
keys: "f",
|
|
299
299
|
action: "toggleFullscreen"
|
|
300
300
|
}),
|
|
301
|
-
/* @__PURE__ */ jsx(
|
|
301
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
302
302
|
keys: "c",
|
|
303
303
|
action: "toggleSubtitles"
|
|
304
304
|
}),
|
|
305
|
-
/* @__PURE__ */ jsx(
|
|
305
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
306
306
|
keys: "i",
|
|
307
307
|
action: "togglePictureInPicture"
|
|
308
308
|
}),
|
|
309
|
-
/* @__PURE__ */ jsx(
|
|
309
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
310
310
|
keys: "ArrowRight",
|
|
311
311
|
action: "seekStep",
|
|
312
312
|
value: 5
|
|
313
313
|
}),
|
|
314
|
-
/* @__PURE__ */ jsx(
|
|
314
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
315
315
|
keys: "ArrowLeft",
|
|
316
316
|
action: "seekStep",
|
|
317
317
|
value: -5
|
|
318
318
|
}),
|
|
319
|
-
/* @__PURE__ */ jsx(
|
|
319
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
320
320
|
keys: "l",
|
|
321
321
|
action: "seekStep",
|
|
322
322
|
value: 10
|
|
323
323
|
}),
|
|
324
|
-
/* @__PURE__ */ jsx(
|
|
324
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
325
325
|
keys: "j",
|
|
326
326
|
action: "seekStep",
|
|
327
327
|
value: -10
|
|
328
328
|
}),
|
|
329
|
-
/* @__PURE__ */ jsx(
|
|
329
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
330
330
|
keys: "ArrowUp",
|
|
331
331
|
action: "volumeStep",
|
|
332
332
|
value: .05
|
|
333
333
|
}),
|
|
334
|
-
/* @__PURE__ */ jsx(
|
|
334
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
335
335
|
keys: "ArrowDown",
|
|
336
336
|
action: "volumeStep",
|
|
337
337
|
value: -.05
|
|
338
338
|
}),
|
|
339
|
-
/* @__PURE__ */ jsx(
|
|
339
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
340
340
|
keys: "0-9",
|
|
341
341
|
action: "seekToPercent"
|
|
342
342
|
}),
|
|
343
|
-
/* @__PURE__ */ jsx(
|
|
343
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
344
344
|
keys: "Home",
|
|
345
345
|
action: "seekToPercent",
|
|
346
346
|
value: 0
|
|
347
347
|
}),
|
|
348
|
-
/* @__PURE__ */ jsx(
|
|
348
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
349
349
|
keys: "End",
|
|
350
350
|
action: "seekToPercent",
|
|
351
351
|
value: 100
|
|
352
352
|
}),
|
|
353
|
-
/* @__PURE__ */ jsx(
|
|
353
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
354
354
|
keys: ">",
|
|
355
355
|
action: "speedUp"
|
|
356
356
|
}),
|
|
357
|
-
/* @__PURE__ */ jsx(
|
|
357
|
+
/* @__PURE__ */ jsx(Hotkey, {
|
|
358
358
|
keys: "<",
|
|
359
359
|
action: "speedDown"
|
|
360
360
|
}),
|
|
361
|
-
/* @__PURE__ */ jsx(
|
|
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(
|
|
367
|
+
/* @__PURE__ */ jsx(Gesture, {
|
|
368
368
|
type: "tap",
|
|
369
369
|
action: "toggleControls",
|
|
370
370
|
pointer: "touch"
|
|
371
371
|
}),
|
|
372
|
-
/* @__PURE__ */ jsx(
|
|
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(
|
|
378
|
+
/* @__PURE__ */ jsx(Gesture, {
|
|
379
379
|
type: "doubletap",
|
|
380
380
|
action: "toggleFullscreen",
|
|
381
381
|
region: "center"
|
|
382
382
|
}),
|
|
383
|
-
/* @__PURE__ */ jsx(
|
|
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;
|
|
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;
|
|
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 {
|
|
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:
|
|
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 {
|
|
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/
|
|
6
|
-
function
|
|
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=
|
|
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/
|
|
6
|
-
function
|
|
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=
|
|
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"}
|
package/dist/dev/index.d.ts
CHANGED
|
@@ -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/
|
|
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/
|
|
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,
|
|
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/
|
|
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/
|
|
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 {
|
|
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,
|
|
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,
|
|
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,
|
|
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 {
|
|
3
|
-
import {
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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":"
|
|
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 {
|
|
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
|
|
11
|
+
const media = useMediaInstance(DashMedia);
|
|
12
12
|
return /* @__PURE__ */ jsx("video", {
|
|
13
|
-
ref: useComposedRefs(
|
|
14
|
-
...
|
|
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 {
|
|
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"}
|