@videojs/react 10.0.0-beta.6 → 10.0.0-beta.8
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/icons/dist/react/default/captions-off.js +0 -1
- package/dist/default/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/default/captions-on.js +0 -1
- package/dist/default/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js +0 -1
- package/dist/default/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js +0 -1
- package/dist/default/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/default/pause.js +0 -1
- package/dist/default/icons/dist/react/default/pause.js.map +1 -1
- package/dist/default/icons/dist/react/default/pip-enter.js +33 -0
- package/dist/default/icons/dist/react/default/pip-enter.js.map +1 -0
- package/dist/default/icons/dist/react/default/pip-exit.js +33 -0
- package/dist/default/icons/dist/react/default/pip-exit.js.map +1 -0
- package/dist/default/icons/dist/react/default/play.js +0 -1
- package/dist/default/icons/dist/react/default/play.js.map +1 -1
- package/dist/default/icons/dist/react/default/restart.js +0 -1
- package/dist/default/icons/dist/react/default/restart.js.map +1 -1
- package/dist/default/icons/dist/react/default/seek.js +0 -1
- package/dist/default/icons/dist/react/default/seek.js.map +1 -1
- package/dist/default/icons/dist/react/default/spinner.js +0 -1
- package/dist/default/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-high.js +0 -1
- package/dist/default/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-low.js +0 -1
- package/dist/default/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/default/volume-off.js +0 -1
- package/dist/default/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js +0 -1
- package/dist/default/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js +0 -1
- package/dist/default/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js +0 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js +0 -1
- package/dist/default/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pause.js +0 -1
- package/dist/default/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/pip-enter.js +37 -0
- package/dist/default/icons/dist/react/minimal/pip-enter.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/pip-exit.js +37 -0
- package/dist/default/icons/dist/react/minimal/pip-exit.js.map +1 -0
- package/dist/default/icons/dist/react/minimal/play.js +0 -1
- package/dist/default/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/restart.js +0 -1
- package/dist/default/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/seek.js +0 -1
- package/dist/default/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/spinner.js +0 -1
- package/dist/default/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js +0 -1
- package/dist/default/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js +0 -1
- package/dist/default/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js +0 -1
- package/dist/default/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/default/index.js +2 -2
- package/dist/default/media/audio.js +3 -6
- package/dist/default/media/audio.js.map +1 -1
- package/dist/default/media/background-video/index.js +2 -2
- package/dist/default/media/background-video/index.js.map +1 -1
- package/dist/default/media/dash-video/index.js +26 -0
- package/dist/default/media/dash-video/index.js.map +1 -0
- package/dist/default/media/hls-video/index.js +2 -2
- package/dist/default/media/hls-video/index.js.map +1 -1
- package/dist/default/media/simple-hls-video/index.js +2 -2
- package/dist/default/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/media/video.js +3 -6
- package/dist/default/media/video.js.map +1 -1
- package/dist/default/player/context.js +16 -10
- package/dist/default/player/context.js.map +1 -1
- package/dist/default/player/create-player.js +16 -2
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +22 -12
- package/dist/default/presets/audio/minimal-skin.js +32 -26
- package/dist/default/presets/audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +36 -30
- package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/audio/skin.css +19 -14
- package/dist/default/presets/audio/skin.js +32 -26
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +37 -32
- package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.css +101 -63
- package/dist/default/presets/video/minimal-skin.js +45 -31
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +51 -34
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/skin.css +98 -64
- package/dist/default/presets/video/skin.js +45 -31
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +51 -34
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +6 -5
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +16 -0
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +6 -5
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +5 -4
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +5 -0
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/ui/popover/popover-popup.js +11 -2
- package/dist/default/ui/popover/popover-popup.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-root.js +1 -1
- package/dist/default/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-popup.js +11 -2
- package/dist/default/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/default/ui/volume-slider/volume-slider-root.js +3 -3
- package/dist/default/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/default/utils/use-render.js +5 -1
- package/dist/default/utils/use-render.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-off.js +0 -1
- package/dist/dev/icons/dist/react/default/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/default/captions-on.js +0 -1
- package/dist/dev/icons/dist/react/default/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js +0 -1
- package/dist/dev/icons/dist/react/default/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js +0 -1
- package/dist/dev/icons/dist/react/default/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pause.js +0 -1
- package/dist/dev/icons/dist/react/default/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/default/pip-enter.js +33 -0
- package/dist/dev/icons/dist/react/default/pip-enter.js.map +1 -0
- package/dist/dev/icons/dist/react/default/pip-exit.js +33 -0
- package/dist/dev/icons/dist/react/default/pip-exit.js.map +1 -0
- package/dist/dev/icons/dist/react/default/play.js +0 -1
- package/dist/dev/icons/dist/react/default/play.js.map +1 -1
- package/dist/dev/icons/dist/react/default/restart.js +0 -1
- package/dist/dev/icons/dist/react/default/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/default/seek.js +0 -1
- package/dist/dev/icons/dist/react/default/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/default/spinner.js +0 -1
- package/dist/dev/icons/dist/react/default/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-high.js +0 -1
- package/dist/dev/icons/dist/react/default/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-low.js +0 -1
- package/dist/dev/icons/dist/react/default/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/default/volume-off.js +0 -1
- package/dist/dev/icons/dist/react/default/volume-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-off.js +0 -1
- package/dist/dev/icons/dist/react/minimal/captions-off.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/captions-on.js +0 -1
- package/dist/dev/icons/dist/react/minimal/captions-on.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js +0 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-enter.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js +0 -1
- package/dist/dev/icons/dist/react/minimal/fullscreen-exit.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pause.js +0 -1
- package/dist/dev/icons/dist/react/minimal/pause.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/pip-enter.js +37 -0
- package/dist/dev/icons/dist/react/minimal/pip-enter.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/pip-exit.js +37 -0
- package/dist/dev/icons/dist/react/minimal/pip-exit.js.map +1 -0
- package/dist/dev/icons/dist/react/minimal/play.js +0 -1
- package/dist/dev/icons/dist/react/minimal/play.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/restart.js +0 -1
- package/dist/dev/icons/dist/react/minimal/restart.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/seek.js +0 -1
- package/dist/dev/icons/dist/react/minimal/seek.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/spinner.js +0 -1
- package/dist/dev/icons/dist/react/minimal/spinner.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-high.js +0 -1
- package/dist/dev/icons/dist/react/minimal/volume-high.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-low.js +0 -1
- package/dist/dev/icons/dist/react/minimal/volume-low.js.map +1 -1
- package/dist/dev/icons/dist/react/minimal/volume-off.js +0 -1
- package/dist/dev/icons/dist/react/minimal/volume-off.js.map +1 -1
- package/dist/dev/index.d.ts +2 -2
- package/dist/dev/index.js +2 -2
- package/dist/dev/media/audio.d.ts.map +1 -1
- package/dist/dev/media/audio.js +3 -6
- package/dist/dev/media/audio.js.map +1 -1
- package/dist/dev/media/background-video/index.js +2 -2
- package/dist/dev/media/background-video/index.js.map +1 -1
- package/dist/dev/media/dash-video/index.d.ts +11 -0
- package/dist/dev/media/dash-video/index.d.ts.map +1 -0
- package/dist/dev/media/dash-video/index.js +26 -0
- package/dist/dev/media/dash-video/index.js.map +1 -0
- package/dist/dev/media/hls-video/index.js +2 -2
- package/dist/dev/media/hls-video/index.js.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js +2 -2
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/media/video.d.ts.map +1 -1
- package/dist/dev/media/video.js +3 -6
- package/dist/dev/media/video.js.map +1 -1
- package/dist/dev/player/context.d.ts +10 -4
- package/dist/dev/player/context.d.ts.map +1 -1
- package/dist/dev/player/context.js +16 -10
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.js +16 -2
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +22 -12
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.js +32 -26
- package/dist/dev/presets/audio/minimal-skin.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.tailwind.js +36 -30
- package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +19 -14
- package/dist/dev/presets/audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.js +32 -26
- package/dist/dev/presets/audio/skin.js.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.tailwind.js +37 -32
- package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/types.d.ts +6 -1
- package/dist/dev/presets/types.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.css +101 -63
- package/dist/dev/presets/video/minimal-skin.d.ts +2 -2
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +45 -31
- package/dist/dev/presets/video/minimal-skin.js.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.tailwind.js +51 -34
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/skin.css +98 -64
- package/dist/dev/presets/video/skin.d.ts +2 -2
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +45 -31
- package/dist/dev/presets/video/skin.js.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.tailwind.js +51 -34
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +6 -5
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +16 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +6 -5
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +16 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +5 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +5 -0
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/ui/popover/popover-popup.d.ts.map +1 -1
- package/dist/dev/ui/popover/popover-popup.js +11 -2
- package/dist/dev/ui/popover/popover-popup.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.js +1 -1
- package/dist/dev/ui/time-slider/time-slider-root.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-popup.js +11 -2
- package/dist/dev/ui/tooltip/tooltip-popup.js.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-root.js +3 -3
- package/dist/dev/ui/volume-slider/volume-slider-root.js.map +1 -1
- package/dist/dev/utils/use-render.d.ts.map +1 -1
- package/dist/dev/utils/use-render.js +5 -1
- package/dist/dev/utils/use-render.js.map +1 -1
- package/package.json +7 -7
- package/dist/default/icons/dist/react/default/pip.js +0 -27
- package/dist/default/icons/dist/react/default/pip.js.map +0 -1
- package/dist/default/icons/dist/react/minimal/pip.js +0 -27
- package/dist/default/icons/dist/react/minimal/pip.js.map +0 -1
- package/dist/dev/icons/dist/react/default/pip.js +0 -27
- package/dist/dev/icons/dist/react/default/pip.js.map +0 -1
- package/dist/dev/icons/dist/react/minimal/pip.js +0 -27
- package/dist/dev/icons/dist/react/minimal/pip.js.map +0 -1
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
.media-button--mute .media-icon--volume-high,
|
|
17
17
|
.media-button--fullscreen .media-icon--fullscreen-enter,
|
|
18
18
|
.media-button--fullscreen .media-icon--fullscreen-exit,
|
|
19
|
+
.media-button--pip .media-icon--pip-enter,
|
|
20
|
+
.media-button--pip .media-icon--pip-exit,
|
|
19
21
|
.media-button--captions .media-icon--captions-off,
|
|
20
22
|
.media-button--captions .media-icon--captions-on {
|
|
21
23
|
display: none;
|
|
@@ -40,6 +42,10 @@
|
|
|
40
42
|
.media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter,
|
|
41
43
|
/* Fullscreen: fullscreen → exit */
|
|
42
44
|
.media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit,
|
|
45
|
+
/* Picture-in-Picture: not active → enter */
|
|
46
|
+
.media-button--pip:not([data-pip]) .media-icon--pip-enter,
|
|
47
|
+
/* Picture-in-Picture: active → exit */
|
|
48
|
+
.media-button--pip[data-pip] .media-icon--pip-exit,
|
|
43
49
|
/* Captions: not active → captions off */
|
|
44
50
|
.media-button--captions:not([data-active]) .media-icon--captions-off,
|
|
45
51
|
/* Captions: active → captions on */
|
|
@@ -160,30 +166,6 @@
|
|
|
160
166
|
border-radius: inherit;
|
|
161
167
|
}
|
|
162
168
|
|
|
163
|
-
/* ==========================================================================
|
|
164
|
-
Poster Image
|
|
165
|
-
========================================================================== */
|
|
166
|
-
|
|
167
|
-
.media-minimal-skin > img {
|
|
168
|
-
position: absolute;
|
|
169
|
-
inset: 0;
|
|
170
|
-
width: 100%;
|
|
171
|
-
height: 100%;
|
|
172
|
-
object-fit: var(--media-object-fit, contain);
|
|
173
|
-
object-position: var(--media-object-position, center);
|
|
174
|
-
transition: opacity 0.25s;
|
|
175
|
-
pointer-events: none;
|
|
176
|
-
border-radius: inherit;
|
|
177
|
-
|
|
178
|
-
&:not([data-visible]) {
|
|
179
|
-
opacity: 0;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/* ==========================================================================
|
|
184
|
-
Fullscreen
|
|
185
|
-
========================================================================== */
|
|
186
|
-
|
|
187
169
|
.media-minimal-skin:fullscreen ::slotted(video),
|
|
188
170
|
.media-minimal-skin:fullscreen video {
|
|
189
171
|
object-fit: contain;
|
|
@@ -269,7 +251,7 @@
|
|
|
269
251
|
color: oklch(1 0 0);
|
|
270
252
|
font-size: 0.875rem;
|
|
271
253
|
text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
|
|
272
|
-
transition-property: opacity,
|
|
254
|
+
transition-property: opacity, scale;
|
|
273
255
|
transition-duration: 500ms;
|
|
274
256
|
transition-delay: 100ms;
|
|
275
257
|
transition-timing-function: linear(
|
|
@@ -295,7 +277,7 @@
|
|
|
295
277
|
.media-minimal-skin .media-error[data-starting-style] .media-error__dialog,
|
|
296
278
|
.media-minimal-skin .media-error[data-ending-style] .media-error__dialog {
|
|
297
279
|
opacity: 0;
|
|
298
|
-
|
|
280
|
+
scale: 0.5;
|
|
299
281
|
}
|
|
300
282
|
|
|
301
283
|
.media-minimal-skin .media-error__content {
|
|
@@ -312,6 +294,7 @@
|
|
|
312
294
|
|
|
313
295
|
.media-minimal-skin .media-error__description {
|
|
314
296
|
opacity: 0.7;
|
|
297
|
+
overflow-wrap: anywhere;
|
|
315
298
|
}
|
|
316
299
|
|
|
317
300
|
.media-minimal-skin .media-error__actions {
|
|
@@ -331,12 +314,12 @@
|
|
|
331
314
|
container: media-controls / inline-size;
|
|
332
315
|
display: flex;
|
|
333
316
|
align-items: center;
|
|
334
|
-
--media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.
|
|
317
|
+
--media-controls-current-shadow-color: oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15));
|
|
335
318
|
--media-controls-current-shadow-color-subtle: oklch(
|
|
336
319
|
from var(--media-controls-current-shadow-color) l c h /
|
|
337
320
|
calc(alpha * 0.4)
|
|
338
321
|
);
|
|
339
|
-
text-shadow: 0 0
|
|
322
|
+
text-shadow: 0 1px 0 var(--media-controls-current-shadow-color);
|
|
340
323
|
}
|
|
341
324
|
|
|
342
325
|
/* ==========================================================================
|
|
@@ -410,7 +393,7 @@
|
|
|
410
393
|
font-weight: 500;
|
|
411
394
|
text-align: center;
|
|
412
395
|
text-shadow: inherit;
|
|
413
|
-
transition-property: background-color, color, outline-offset,
|
|
396
|
+
transition-property: background-color, color, outline-offset, scale;
|
|
414
397
|
transition-duration: 150ms;
|
|
415
398
|
transition-timing-function: ease-out;
|
|
416
399
|
cursor: pointer;
|
|
@@ -450,7 +433,7 @@
|
|
|
450
433
|
}
|
|
451
434
|
|
|
452
435
|
&:active {
|
|
453
|
-
|
|
436
|
+
scale: 0.9;
|
|
454
437
|
}
|
|
455
438
|
|
|
456
439
|
& .media-icon {
|
|
@@ -512,6 +495,43 @@
|
|
|
512
495
|
scale: -1 1;
|
|
513
496
|
}
|
|
514
497
|
|
|
498
|
+
/* ==========================================================================
|
|
499
|
+
Poster Image
|
|
500
|
+
========================================================================== */
|
|
501
|
+
|
|
502
|
+
.media-minimal-skin media-poster,
|
|
503
|
+
.media-minimal-skin > img {
|
|
504
|
+
position: absolute;
|
|
505
|
+
inset: 0;
|
|
506
|
+
width: 100%;
|
|
507
|
+
height: 100%;
|
|
508
|
+
transition: opacity 0.25s;
|
|
509
|
+
pointer-events: none;
|
|
510
|
+
}
|
|
511
|
+
.media-minimal-skin media-poster:not([data-visible]),
|
|
512
|
+
.media-minimal-skin > img:not([data-visible]) {
|
|
513
|
+
opacity: 0;
|
|
514
|
+
}
|
|
515
|
+
.media-minimal-skin media-poster ::slotted(img) {
|
|
516
|
+
position: absolute;
|
|
517
|
+
inset: 0;
|
|
518
|
+
width: 100%;
|
|
519
|
+
height: 100%;
|
|
520
|
+
object-fit: var(--media-object-fit, contain);
|
|
521
|
+
object-position: var(--media-object-position, center);
|
|
522
|
+
border-radius: var(--media-video-border-radius);
|
|
523
|
+
}
|
|
524
|
+
.media-minimal-skin > img {
|
|
525
|
+
object-fit: var(--media-object-fit, contain);
|
|
526
|
+
object-position: var(--media-object-position, center);
|
|
527
|
+
border-radius: inherit;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
.media-minimal-skin:fullscreen media-poster ::slotted(img),
|
|
531
|
+
.media-minimal-skin:fullscreen > img {
|
|
532
|
+
object-fit: contain;
|
|
533
|
+
}
|
|
534
|
+
|
|
515
535
|
/* ==========================================================================
|
|
516
536
|
Media preview
|
|
517
537
|
========================================================================== */
|
|
@@ -541,7 +561,7 @@
|
|
|
541
561
|
position: absolute;
|
|
542
562
|
top: 50%;
|
|
543
563
|
left: 50%;
|
|
544
|
-
|
|
564
|
+
translate: -50% -50%;
|
|
545
565
|
opacity: 0;
|
|
546
566
|
}
|
|
547
567
|
|
|
@@ -609,7 +629,7 @@
|
|
|
609
629
|
/* Thumb */
|
|
610
630
|
.media-minimal-skin .media-slider__thumb {
|
|
611
631
|
position: absolute;
|
|
612
|
-
|
|
632
|
+
translate: -50% -50%;
|
|
613
633
|
z-index: 10;
|
|
614
634
|
width: 0.75rem;
|
|
615
635
|
height: 0.75rem;
|
|
@@ -712,13 +732,13 @@
|
|
|
712
732
|
border: 0;
|
|
713
733
|
color: inherit;
|
|
714
734
|
overflow: visible;
|
|
715
|
-
transition-property:
|
|
735
|
+
transition-property: scale, opacity, filter;
|
|
716
736
|
transition-duration: 150ms;
|
|
717
737
|
|
|
718
738
|
&[data-starting-style],
|
|
719
739
|
&[data-ending-style] {
|
|
720
740
|
opacity: 0;
|
|
721
|
-
|
|
741
|
+
scale: 0.5;
|
|
722
742
|
filter: blur(8px);
|
|
723
743
|
}
|
|
724
744
|
|
|
@@ -812,30 +832,29 @@
|
|
|
812
832
|
}
|
|
813
833
|
}
|
|
814
834
|
|
|
835
|
+
.media-minimal-skin .media-popover--volume:has(media-volume-slider[data-availability="unsupported"]) {
|
|
836
|
+
display: none;
|
|
837
|
+
}
|
|
838
|
+
|
|
815
839
|
/* ==========================================================================
|
|
816
840
|
Native Caption Track
|
|
817
841
|
========================================================================== */
|
|
818
842
|
|
|
819
843
|
.media-minimal-skin {
|
|
820
|
-
--media-caption-track-duration:
|
|
821
|
-
--media-caption-track-delay:
|
|
844
|
+
--media-caption-track-duration: var(--media-controls-transition-duration);
|
|
845
|
+
--media-caption-track-delay: calc(var(--media-controls-transition-delay) + 25ms);
|
|
822
846
|
--media-caption-track-y: -0.5rem;
|
|
823
847
|
|
|
824
848
|
&:has(.media-controls[data-visible]) {
|
|
825
|
-
--media-caption-track-delay: 25ms;
|
|
826
849
|
--media-caption-track-y: -3rem;
|
|
827
850
|
}
|
|
828
|
-
|
|
829
|
-
@media (prefers-reduced-motion: reduce) {
|
|
830
|
-
--media-caption-track-duration: 50ms;
|
|
831
|
-
}
|
|
832
851
|
}
|
|
833
852
|
|
|
834
853
|
.media-minimal-skin video::-webkit-media-text-track-container {
|
|
835
|
-
|
|
836
|
-
transition: transform var(--media-caption-track-duration) ease-out;
|
|
854
|
+
transition: translate var(--media-caption-track-duration) ease-out;
|
|
837
855
|
transition-delay: var(--media-caption-track-delay);
|
|
838
|
-
|
|
856
|
+
translate: 0 var(--media-caption-track-y);
|
|
857
|
+
scale: 0.98;
|
|
839
858
|
z-index: 1;
|
|
840
859
|
font-family: inherit;
|
|
841
860
|
}
|
|
@@ -846,14 +865,31 @@
|
|
|
846
865
|
========================================================================== */
|
|
847
866
|
|
|
848
867
|
.media-minimal-skin--video {
|
|
868
|
+
overflow: clip;
|
|
849
869
|
background: oklch(0 0 0);
|
|
850
870
|
--media-border-color: oklch(0 0 0 / 0.15);
|
|
851
871
|
--media-video-border-radius: var(--media-border-radius, 0.75rem);
|
|
872
|
+
--media-controls-transition-duration: 100ms;
|
|
873
|
+
--media-controls-transition-delay: 0ms;
|
|
852
874
|
|
|
853
875
|
@media (prefers-color-scheme: dark) {
|
|
854
876
|
--media-border-color: oklch(1 0 0 / 0.15);
|
|
855
877
|
}
|
|
856
878
|
|
|
879
|
+
&:has(.media-controls:not([data-visible])) {
|
|
880
|
+
/* Slight delay to hide controls on non-touch devices after interaction */
|
|
881
|
+
@media (pointer: fine) {
|
|
882
|
+
--media-controls-transition-delay: 500ms;
|
|
883
|
+
--media-controls-transition-duration: 300ms;
|
|
884
|
+
}
|
|
885
|
+
@media (pointer: coarse) {
|
|
886
|
+
--media-controls-transition-duration: 150ms;
|
|
887
|
+
}
|
|
888
|
+
@media (prefers-reduced-motion: reduce) {
|
|
889
|
+
--media-controls-transition-duration: 100ms;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
|
|
857
893
|
/* Inner border ring */
|
|
858
894
|
&::after {
|
|
859
895
|
content: "";
|
|
@@ -882,38 +918,39 @@
|
|
|
882
918
|
z-index: 10;
|
|
883
919
|
gap: 0.5rem;
|
|
884
920
|
padding: 2rem 0.375rem 0.375rem 0.375rem;
|
|
885
|
-
color: oklch(1 0 0);
|
|
921
|
+
color: var(--media-color-primary, oklch(1 0 0));
|
|
922
|
+
transition-duration: var(--media-controls-transition-duration);
|
|
923
|
+
transition-delay: var(--media-controls-transition-delay);
|
|
924
|
+
transition-timing-function: ease-out;
|
|
886
925
|
|
|
887
926
|
@media (pointer: fine) {
|
|
888
|
-
will-change:
|
|
889
|
-
transition-property:
|
|
890
|
-
transition-duration: 75ms;
|
|
891
|
-
transition-delay: 0ms;
|
|
892
|
-
transition-timing-function: ease-out;
|
|
927
|
+
will-change: translate, filter, opacity;
|
|
928
|
+
transition-property: translate, filter, opacity;
|
|
893
929
|
}
|
|
894
930
|
|
|
895
|
-
@
|
|
896
|
-
|
|
897
|
-
|
|
931
|
+
@media (pointer: coarse) {
|
|
932
|
+
will-change: translate, opacity;
|
|
933
|
+
transition-property: translate, opacity;
|
|
898
934
|
}
|
|
899
935
|
|
|
900
936
|
&:not([data-visible]) {
|
|
901
937
|
opacity: 0;
|
|
902
938
|
pointer-events: none;
|
|
939
|
+
translate: 0 100%;
|
|
903
940
|
|
|
904
941
|
@media (pointer: fine) {
|
|
905
|
-
transform: translateY(100%);
|
|
906
942
|
filter: blur(8px);
|
|
907
|
-
transition-duration: 500ms;
|
|
908
|
-
transition-delay: 500ms;
|
|
909
|
-
|
|
910
|
-
@media (prefers-reduced-motion: reduce) {
|
|
911
|
-
scale: 1;
|
|
912
|
-
transform: translateY(0);
|
|
913
|
-
filter: blur(0);
|
|
914
|
-
transition-duration: 100ms;
|
|
915
|
-
}
|
|
916
943
|
}
|
|
944
|
+
|
|
945
|
+
@media (prefers-reduced-motion: reduce) {
|
|
946
|
+
translate: 0 0;
|
|
947
|
+
filter: blur(0);
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
@container media-root (width > 40rem) {
|
|
952
|
+
gap: 0.875rem;
|
|
953
|
+
padding: 2.5rem 0.75rem 0.75rem 0.75rem;
|
|
917
954
|
}
|
|
918
955
|
}
|
|
919
956
|
|
|
@@ -954,6 +991,7 @@
|
|
|
954
991
|
filter: blur(8px);
|
|
955
992
|
transition-property: scale, opacity, filter;
|
|
956
993
|
transition-duration: 150ms;
|
|
994
|
+
transition-timing-function: ease-out;
|
|
957
995
|
transform-origin: bottom;
|
|
958
996
|
|
|
959
997
|
& .media-preview__thumbnail-wrapper {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Container, usePlayer } from "../../player/context.js";
|
|
2
|
+
import { isRenderProp } from "../../utils/use-render.js";
|
|
2
3
|
import { BufferingIndicator } from "../../ui/buffering-indicator/buffering-indicator.js";
|
|
3
4
|
import { CaptionsButton } from "../../ui/captions-button/captions-button.js";
|
|
4
5
|
import { ControlsRoot } from "../../ui/controls/controls-root.js";
|
|
@@ -10,6 +11,7 @@ import { PlaybackRateButton } from "../../ui/playback-rate-button/playback-rate-
|
|
|
10
11
|
import { PopoverPopup } from "../../ui/popover/popover-popup.js";
|
|
11
12
|
import { PopoverRoot } from "../../ui/popover/popover-root.js";
|
|
12
13
|
import { PopoverTrigger } from "../../ui/popover/popover-trigger.js";
|
|
14
|
+
import { Poster } from "../../ui/poster/poster.js";
|
|
13
15
|
import { SeekButton } from "../../ui/seek-button/seek-button.js";
|
|
14
16
|
import { SliderBuffer } from "../../ui/slider/slider-buffer.js";
|
|
15
17
|
import { SliderFill } from "../../ui/slider/slider-fill.js";
|
|
@@ -31,7 +33,8 @@ import CaptionsOnIcon from "../../icons/dist/react/minimal/captions-on.js";
|
|
|
31
33
|
import FullscreenEnterIcon from "../../icons/dist/react/minimal/fullscreen-enter.js";
|
|
32
34
|
import FullscreenExitIcon from "../../icons/dist/react/minimal/fullscreen-exit.js";
|
|
33
35
|
import PauseIcon from "../../icons/dist/react/minimal/pause.js";
|
|
34
|
-
import
|
|
36
|
+
import PipEnterIcon from "../../icons/dist/react/minimal/pip-enter.js";
|
|
37
|
+
import PipExitIcon from "../../icons/dist/react/minimal/pip-exit.js";
|
|
35
38
|
import PlayIcon from "../../icons/dist/react/minimal/play.js";
|
|
36
39
|
import RestartIcon from "../../icons/dist/react/minimal/restart.js";
|
|
37
40
|
import SeekIcon from "../../icons/dist/react/minimal/seek.js";
|
|
@@ -41,6 +44,7 @@ import VolumeLowIcon from "../../icons/dist/react/minimal/volume-low.js";
|
|
|
41
44
|
import VolumeOffIcon from "../../icons/dist/react/minimal/volume-off.js";
|
|
42
45
|
import { ErrorDialog } from "./error-dialog.js";
|
|
43
46
|
import { forwardRef } from "react";
|
|
47
|
+
import { isString } from "@videojs/utils/predicate";
|
|
44
48
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
45
49
|
import { cn } from "@videojs/utils/style";
|
|
46
50
|
|
|
@@ -77,13 +81,48 @@ function PiPLabel() {
|
|
|
77
81
|
function FullscreenLabel() {
|
|
78
82
|
return usePlayer((s) => Boolean(s.fullscreen)) ? /* @__PURE__ */ jsx(Fragment, { children: "Exit fullscreen" }) : /* @__PURE__ */ jsx(Fragment, { children: "Enter fullscreen" });
|
|
79
83
|
}
|
|
84
|
+
function VolumePopover() {
|
|
85
|
+
const volumeUnsupported = usePlayer((s) => s.volumeAvailability === "unsupported");
|
|
86
|
+
const muteButton = /* @__PURE__ */ jsx(MuteButton, { render: (props) => /* @__PURE__ */ jsxs(Button, {
|
|
87
|
+
...props,
|
|
88
|
+
className: "media-button--icon media-button--mute",
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ jsx(VolumeOffIcon, { className: "media-icon media-icon--volume-off" }),
|
|
91
|
+
/* @__PURE__ */ jsx(VolumeLowIcon, { className: "media-icon media-icon--volume-low" }),
|
|
92
|
+
/* @__PURE__ */ jsx(VolumeHighIcon, { className: "media-icon media-icon--volume-high" })
|
|
93
|
+
]
|
|
94
|
+
}) });
|
|
95
|
+
if (volumeUnsupported) return muteButton;
|
|
96
|
+
return /* @__PURE__ */ jsxs(PopoverRoot, {
|
|
97
|
+
openOnHover: true,
|
|
98
|
+
delay: 200,
|
|
99
|
+
closeDelay: 100,
|
|
100
|
+
side: "top",
|
|
101
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: muteButton }), /* @__PURE__ */ jsx(PopoverPopup, {
|
|
102
|
+
className: "media-popover media-popover--volume",
|
|
103
|
+
children: /* @__PURE__ */ jsxs(VolumeSliderRoot, {
|
|
104
|
+
className: "media-slider",
|
|
105
|
+
orientation: "vertical",
|
|
106
|
+
thumbAlignment: "edge",
|
|
107
|
+
children: [/* @__PURE__ */ jsx(SliderTrack, {
|
|
108
|
+
className: "media-slider__track",
|
|
109
|
+
children: /* @__PURE__ */ jsx(SliderFill, { className: "media-slider__fill" })
|
|
110
|
+
}), /* @__PURE__ */ jsx(SliderThumb, { className: "media-slider__thumb media-slider__thumb--persistent" })]
|
|
111
|
+
})
|
|
112
|
+
})]
|
|
113
|
+
});
|
|
114
|
+
}
|
|
80
115
|
function MinimalVideoSkin(props) {
|
|
81
|
-
const { children, className, ...rest } = props;
|
|
116
|
+
const { children, className, poster, ...rest } = props;
|
|
82
117
|
return /* @__PURE__ */ jsxs(Container, {
|
|
83
118
|
className: cn("media-minimal-skin media-minimal-skin--video", className),
|
|
84
119
|
...rest,
|
|
85
120
|
children: [
|
|
86
121
|
children,
|
|
122
|
+
poster && /* @__PURE__ */ jsx(Poster, {
|
|
123
|
+
src: isString(poster) ? poster : void 0,
|
|
124
|
+
render: isRenderProp(poster) ? poster : void 0
|
|
125
|
+
}),
|
|
87
126
|
/* @__PURE__ */ jsx(BufferingIndicator, { render: (props) => /* @__PURE__ */ jsx("div", {
|
|
88
127
|
...props,
|
|
89
128
|
className: "media-buffering-indicator",
|
|
@@ -214,32 +253,7 @@ function MinimalVideoSkin(props) {
|
|
|
214
253
|
children: "Toggle playback rate"
|
|
215
254
|
})]
|
|
216
255
|
}),
|
|
217
|
-
/* @__PURE__ */
|
|
218
|
-
openOnHover: true,
|
|
219
|
-
delay: 200,
|
|
220
|
-
closeDelay: 100,
|
|
221
|
-
side: "top",
|
|
222
|
-
children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: /* @__PURE__ */ jsx(MuteButton, { render: (props) => /* @__PURE__ */ jsxs(Button, {
|
|
223
|
-
...props,
|
|
224
|
-
className: "media-button--icon media-button--mute",
|
|
225
|
-
children: [
|
|
226
|
-
/* @__PURE__ */ jsx(VolumeOffIcon, { className: "media-icon media-icon--volume-off" }),
|
|
227
|
-
/* @__PURE__ */ jsx(VolumeLowIcon, { className: "media-icon media-icon--volume-low" }),
|
|
228
|
-
/* @__PURE__ */ jsx(VolumeHighIcon, { className: "media-icon media-icon--volume-high" })
|
|
229
|
-
]
|
|
230
|
-
}) }) }), /* @__PURE__ */ jsx(PopoverPopup, {
|
|
231
|
-
className: "media-popover media-popover--volume",
|
|
232
|
-
children: /* @__PURE__ */ jsxs(VolumeSliderRoot, {
|
|
233
|
-
className: "media-slider",
|
|
234
|
-
orientation: "vertical",
|
|
235
|
-
thumbAlignment: "edge",
|
|
236
|
-
children: [/* @__PURE__ */ jsx(SliderTrack, {
|
|
237
|
-
className: "media-slider__track",
|
|
238
|
-
children: /* @__PURE__ */ jsx(SliderFill, { className: "media-slider__fill" })
|
|
239
|
-
}), /* @__PURE__ */ jsx(SliderThumb, { className: "media-slider__thumb media-slider__thumb--persistent" })]
|
|
240
|
-
})
|
|
241
|
-
})]
|
|
242
|
-
}),
|
|
256
|
+
/* @__PURE__ */ jsx(VolumePopover, {}),
|
|
243
257
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
244
258
|
side: "top",
|
|
245
259
|
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(CaptionsButton, { render: (props) => /* @__PURE__ */ jsxs(Button, {
|
|
@@ -253,10 +267,10 @@ function MinimalVideoSkin(props) {
|
|
|
253
267
|
}),
|
|
254
268
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
255
269
|
side: "top",
|
|
256
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(PiPButton, { render: (props) => /* @__PURE__ */
|
|
270
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(PiPButton, { render: (props) => /* @__PURE__ */ jsxs(Button, {
|
|
257
271
|
...props,
|
|
258
|
-
className: "media-button--icon",
|
|
259
|
-
children: /* @__PURE__ */ jsx(
|
|
272
|
+
className: "media-button--icon media-button--pip",
|
|
273
|
+
children: [/* @__PURE__ */ jsx(PipEnterIcon, { className: "media-icon media-icon--pip-enter" }), /* @__PURE__ */ jsx(PipExitIcon, { className: "media-icon media-icon--pip-exit" })]
|
|
260
274
|
}) }) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
261
275
|
className: "media-tooltip",
|
|
262
276
|
children: /* @__PURE__ */ jsx(PiPLabel, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.js","names":["Controls.Root","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Time.Group","Time.Value","Time.Separator","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","Slider.Thumbnail","TimeSlider.Value","Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb"],"sources":["../../../../src/presets/video/minimal-skin.tsx"],"sourcesContent":["import {\n CaptionsOffIcon,\n CaptionsOnIcon,\n FullscreenEnterIcon,\n FullscreenExitIcon,\n PauseIcon,\n PipIcon,\n PlayIcon,\n RestartIcon,\n SeekIcon,\n SpinnerIcon,\n VolumeHighIcon,\n VolumeLowIcon,\n VolumeOffIcon,\n} from '@videojs/icons/react/minimal';\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 { Controls } from '@/ui/controls';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\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 { 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 type { BaseSkinProps } from '../types';\nimport { ErrorDialog } from './error-dialog';\n\nconst SEEK_TIME = 10;\n\nexport type MinimalVideoSkinProps = BaseSkinProps;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return <button ref={ref} type=\"button\" className={cn('media-button', className)} {...props} />;\n});\n\nconst errorClasses = {\n root: 'media-error',\n dialog: 'media-error__dialog',\n content: 'media-error__content',\n title: 'media-error__title',\n description: 'media-error__description',\n actions: 'media-error__actions',\n close: 'media-button',\n};\n\nfunction PlayLabel(): ReactNode {\n const paused = usePlayer((s) => Boolean(s.paused));\n const ended = usePlayer((s) => Boolean(s.ended));\n if (ended) return <>Replay</>;\n return paused ? <>Play</> : <>Pause</>;\n}\n\nfunction CaptionsLabel(): ReactNode {\n const active = usePlayer((s) => Boolean(s.subtitlesShowing));\n return active ? <>Disable captions</> : <>Enable captions</>;\n}\n\nfunction PiPLabel(): ReactNode {\n const pip = usePlayer((s) => Boolean(s.pip));\n return pip ? <>Exit picture-in-picture</> : <>Enter picture-in-picture</>;\n}\n\nfunction FullscreenLabel(): ReactNode {\n const fullscreen = usePlayer((s) => Boolean(s.fullscreen));\n return fullscreen ? <>Exit fullscreen</> : <>Enter fullscreen</>;\n}\n\nexport function MinimalVideoSkin(props: MinimalVideoSkinProps): ReactNode {\n const { children, className, ...rest } = props;\n\n return (\n <Container className={cn('media-minimal-skin media-minimal-skin--video', className)} {...rest}>\n {children}\n\n <BufferingIndicator\n render={(props) => (\n <div {...props} className=\"media-buffering-indicator\">\n <SpinnerIcon className=\"media-icon\" />\n </div>\n )}\n />\n\n <ErrorDialog classes={errorClasses} />\n\n <Controls.Root className=\"media-controls\">\n <Tooltip.Provider>\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--play\">\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 </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <PlayLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton\n seconds={-SEEK_TIME}\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--seek\">\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 </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"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\n seconds={SEEK_TIME}\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--seek\">\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 </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">Seek forward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n </div>\n\n <div className=\"media-time-controls\">\n <Time.Group className=\"media-time\">\n <Time.Value type=\"current\" className=\"media-time__value media-time__value--current\" />\n <Time.Separator className=\"media-time__separator\" />\n <Time.Value type=\"duration\" className=\"media-time__value media-time__value--duration\" />\n </Time.Group>\n\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-preview media-slider__preview\">\n <div className=\"media-preview__thumbnail-wrapper\">\n <Slider.Thumbnail className=\"media-preview__thumbnail\" />\n </div>\n <TimeSlider.Value type=\"pointer\" className=\"media-preview__timestamp\" />\n <SpinnerIcon className=\"media-preview__spinner media-icon\" />\n </div>\n </TimeSlider.Root>\n </div>\n\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlaybackRateButton\n render={(props) => <Button {...props} className=\"media-button--icon media-button--playback-rate\" />}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">Toggle playback rate</Tooltip.Popup>\n </Tooltip.Root>\n\n <Popover.Root openOnHover delay={200} closeDelay={100} side=\"top\">\n <Popover.Trigger\n render={\n <MuteButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--mute\">\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 </Button>\n )}\n />\n }\n />\n <Popover.Popup className=\"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 <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <CaptionsButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--captions\">\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <CaptionsLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon\">\n <PipIcon className=\"media-icon\" />\n </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <PiPLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--fullscreen\">\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <FullscreenLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className=\"media-overlay\" />\n </Container>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"minimal-skin.js","names":["Popover.Root","Popover.Trigger","Popover.Popup","VolumeSlider.Root","VolumeSlider.Track","VolumeSlider.Fill","VolumeSlider.Thumb","Controls.Root","Tooltip.Provider","Tooltip.Root","Tooltip.Trigger","Tooltip.Popup","Time.Group","Time.Value","Time.Separator","TimeSlider.Root","TimeSlider.Track","TimeSlider.Fill","TimeSlider.Buffer","TimeSlider.Thumb","Slider.Thumbnail","TimeSlider.Value"],"sources":["../../../../src/presets/video/minimal-skin.tsx"],"sourcesContent":["import {\n CaptionsOffIcon,\n CaptionsOnIcon,\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/minimal';\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 { Controls } from '@/ui/controls';\nimport { FullscreenButton } from '@/ui/fullscreen-button';\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';\nimport { ErrorDialog } from './error-dialog';\n\nconst SEEK_TIME = 10;\n\nexport type MinimalVideoSkinProps = BaseVideoSkinProps;\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(function Button({ className, ...props }, ref) {\n return <button ref={ref} type=\"button\" className={cn('media-button', className)} {...props} />;\n});\n\nconst errorClasses = {\n root: 'media-error',\n dialog: 'media-error__dialog',\n content: 'media-error__content',\n title: 'media-error__title',\n description: 'media-error__description',\n actions: 'media-error__actions',\n close: 'media-button',\n};\n\nfunction PlayLabel(): ReactNode {\n const paused = usePlayer((s) => Boolean(s.paused));\n const ended = usePlayer((s) => Boolean(s.ended));\n if (ended) return <>Replay</>;\n return paused ? <>Play</> : <>Pause</>;\n}\n\nfunction CaptionsLabel(): ReactNode {\n const active = usePlayer((s) => Boolean(s.subtitlesShowing));\n return active ? <>Disable captions</> : <>Enable captions</>;\n}\n\nfunction PiPLabel(): ReactNode {\n const pip = usePlayer((s) => Boolean(s.pip));\n return pip ? <>Exit picture-in-picture</> : <>Enter picture-in-picture</>;\n}\n\nfunction FullscreenLabel(): ReactNode {\n const fullscreen = usePlayer((s) => Boolean(s.fullscreen));\n return fullscreen ? <>Exit fullscreen</> : <>Enter fullscreen</>;\n}\n\nfunction VolumePopover(): ReactNode {\n const volumeUnsupported = usePlayer((s) => s.volumeAvailability === 'unsupported');\n\n const muteButton = (\n <MuteButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--mute\">\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 </Button>\n )}\n />\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-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 MinimalVideoSkin(props: MinimalVideoSkinProps): ReactNode {\n const { children, className, poster, ...rest } = props;\n\n return (\n <Container className={cn('media-minimal-skin media-minimal-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 <SpinnerIcon className=\"media-icon\" />\n </div>\n )}\n />\n\n <ErrorDialog classes={errorClasses} />\n\n <Controls.Root className=\"media-controls\">\n <Tooltip.Provider>\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlayButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--play\">\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 </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <PlayLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <SeekButton\n seconds={-SEEK_TIME}\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--seek\">\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 </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"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\n seconds={SEEK_TIME}\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--seek\">\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 </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">Seek forward {SEEK_TIME} seconds</Tooltip.Popup>\n </Tooltip.Root>\n </div>\n\n <div className=\"media-time-controls\">\n <Time.Group className=\"media-time\">\n <Time.Value type=\"current\" className=\"media-time__value media-time__value--current\" />\n <Time.Separator className=\"media-time__separator\" />\n <Time.Value type=\"duration\" className=\"media-time__value media-time__value--duration\" />\n </Time.Group>\n\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-preview media-slider__preview\">\n <div className=\"media-preview__thumbnail-wrapper\">\n <Slider.Thumbnail className=\"media-preview__thumbnail\" />\n </div>\n <TimeSlider.Value type=\"pointer\" className=\"media-preview__timestamp\" />\n <SpinnerIcon className=\"media-preview__spinner media-icon\" />\n </div>\n </TimeSlider.Root>\n </div>\n\n <div className=\"media-button-group\">\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PlaybackRateButton\n render={(props) => <Button {...props} className=\"media-button--icon media-button--playback-rate\" />}\n />\n }\n />\n <Tooltip.Popup className=\"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\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--captions\">\n <CaptionsOffIcon className=\"media-icon media-icon--captions-off\" />\n <CaptionsOnIcon className=\"media-icon media-icon--captions-on\" />\n </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <CaptionsLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <PiPButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--pip\">\n <PipEnterIcon className=\"media-icon media-icon--pip-enter\" />\n <PipExitIcon className=\"media-icon media-icon--pip-exit\" />\n </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <PiPLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n\n <Tooltip.Root side=\"top\">\n <Tooltip.Trigger\n render={\n <FullscreenButton\n render={(props) => (\n <Button {...props} className=\"media-button--icon media-button--fullscreen\">\n <FullscreenEnterIcon className=\"media-icon media-icon--fullscreen-enter\" />\n <FullscreenExitIcon className=\"media-icon media-icon--fullscreen-exit\" />\n </Button>\n )}\n />\n }\n />\n <Tooltip.Popup className=\"media-tooltip\">\n <FullscreenLabel />\n </Tooltip.Popup>\n </Tooltip.Root>\n </div>\n </Tooltip.Provider>\n </Controls.Root>\n\n <div className=\"media-overlay\" />\n </Container>\n );\n}\n"],"mappings":"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"}
|