@videojs/react 10.0.0-beta.7 → 10.0.0-beta.9
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/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.css +161 -141
- package/dist/default/presets/audio/minimal-skin.js +110 -100
- package/dist/default/presets/audio/minimal-skin.js.map +1 -1
- package/dist/default/presets/audio/minimal-skin.tailwind.js +120 -111
- package/dist/default/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/audio/skin.css +164 -132
- package/dist/default/presets/audio/skin.js +101 -91
- package/dist/default/presets/audio/skin.js.map +1 -1
- package/dist/default/presets/audio/skin.tailwind.js +111 -102
- package/dist/default/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/default/presets/{video/error-dialog.js → error-dialog.js} +18 -18
- package/dist/default/presets/error-dialog.js.map +1 -0
- package/dist/default/presets/video/minimal-skin.css +224 -192
- package/dist/default/presets/video/minimal-skin.js +58 -62
- package/dist/default/presets/video/minimal-skin.js.map +1 -1
- package/dist/default/presets/video/minimal-skin.tailwind.js +70 -78
- package/dist/default/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/presets/video/skin.css +238 -189
- package/dist/default/presets/video/skin.js +58 -62
- package/dist/default/presets/video/skin.js.map +1 -1
- package/dist/default/presets/video/skin.tailwind.js +69 -77
- package/dist/default/presets/video/skin.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +5 -4
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +4 -3
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
- 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 +9 -4
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +2 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +10 -4
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.css +161 -141
- package/dist/dev/presets/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/minimal-skin.js +110 -100
- 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 +120 -111
- package/dist/dev/presets/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/audio/skin.css +164 -132
- package/dist/dev/presets/audio/skin.d.ts.map +1 -1
- package/dist/dev/presets/audio/skin.js +101 -91
- 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 +111 -102
- package/dist/dev/presets/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/presets/{video/error-dialog.js → error-dialog.js} +18 -18
- package/dist/dev/presets/error-dialog.js.map +1 -0
- package/dist/dev/presets/video/minimal-skin.css +224 -192
- package/dist/dev/presets/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/presets/video/minimal-skin.js +58 -62
- 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 +70 -78
- package/dist/dev/presets/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/presets/video/skin.css +238 -189
- package/dist/dev/presets/video/skin.d.ts.map +1 -1
- package/dist/dev/presets/video/skin.js +58 -62
- 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 +69 -77
- package/dist/dev/presets/video/skin.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +5 -4
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
- 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 +9 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +2 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +10 -4
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/package.json +7 -7
- package/dist/default/presets/video/error-dialog.js.map +0 -1
- package/dist/dev/presets/video/error-dialog.js.map +0 -1
|
@@ -42,56 +42,56 @@ import SpinnerIcon from "../../icons/dist/react/minimal/spinner.js";
|
|
|
42
42
|
import VolumeHighIcon from "../../icons/dist/react/minimal/volume-high.js";
|
|
43
43
|
import VolumeLowIcon from "../../icons/dist/react/minimal/volume-low.js";
|
|
44
44
|
import VolumeOffIcon from "../../icons/dist/react/minimal/volume-off.js";
|
|
45
|
-
import { ErrorDialog } from "
|
|
45
|
+
import { ErrorDialog } from "../error-dialog.js";
|
|
46
46
|
import { forwardRef } from "react";
|
|
47
47
|
import { isString } from "@videojs/utils/predicate";
|
|
48
|
-
import {
|
|
48
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
49
49
|
import { cn } from "@videojs/utils/style";
|
|
50
50
|
|
|
51
51
|
//#region src/presets/video/minimal-skin.tsx
|
|
52
52
|
const SEEK_TIME = 10;
|
|
53
|
-
const
|
|
54
|
-
return /* @__PURE__ */ jsx("button", {
|
|
55
|
-
ref,
|
|
56
|
-
type: "button",
|
|
57
|
-
className: cn("media-button", className),
|
|
58
|
-
...props
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
const errorClasses = {
|
|
53
|
+
const ERROR_CLASSNAMES = {
|
|
62
54
|
root: "media-error",
|
|
63
55
|
dialog: "media-error__dialog",
|
|
64
56
|
content: "media-error__content",
|
|
65
57
|
title: "media-error__title",
|
|
66
58
|
description: "media-error__description",
|
|
67
59
|
actions: "media-error__actions",
|
|
68
|
-
close: "media-button"
|
|
60
|
+
close: "media-button media-button--primary"
|
|
69
61
|
};
|
|
62
|
+
const Button = forwardRef(function Button({ className, ...props }, ref) {
|
|
63
|
+
return /* @__PURE__ */ jsx("button", {
|
|
64
|
+
ref,
|
|
65
|
+
type: "button",
|
|
66
|
+
className: cn("media-button media-button--subtle media-button--icon", className),
|
|
67
|
+
...props
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
70
|
function PlayLabel() {
|
|
71
71
|
const paused = usePlayer((s) => Boolean(s.paused));
|
|
72
|
-
if (usePlayer((s) => Boolean(s.ended))) return
|
|
73
|
-
return paused ?
|
|
72
|
+
if (usePlayer((s) => Boolean(s.ended))) return "Replay";
|
|
73
|
+
return paused ? "Play" : "Pause";
|
|
74
74
|
}
|
|
75
75
|
function CaptionsLabel() {
|
|
76
|
-
return usePlayer((s) => Boolean(s.subtitlesShowing)) ?
|
|
76
|
+
return usePlayer((s) => Boolean(s.subtitlesShowing)) ? "Disable captions" : "Enable captions";
|
|
77
77
|
}
|
|
78
78
|
function PiPLabel() {
|
|
79
|
-
return usePlayer((s) => Boolean(s.pip)) ?
|
|
79
|
+
return usePlayer((s) => Boolean(s.pip)) ? "Exit picture-in-picture" : "Enter picture-in-picture";
|
|
80
80
|
}
|
|
81
81
|
function FullscreenLabel() {
|
|
82
|
-
return usePlayer((s) => Boolean(s.fullscreen)) ?
|
|
82
|
+
return usePlayer((s) => Boolean(s.fullscreen)) ? "Exit fullscreen" : "Enter fullscreen";
|
|
83
83
|
}
|
|
84
84
|
function VolumePopover() {
|
|
85
85
|
const volumeUnsupported = usePlayer((s) => s.volumeAvailability === "unsupported");
|
|
86
|
-
const muteButton = /* @__PURE__ */
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
const muteButton = /* @__PURE__ */ jsxs(MuteButton, {
|
|
87
|
+
className: "media-button--mute",
|
|
88
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
89
89
|
children: [
|
|
90
90
|
/* @__PURE__ */ jsx(VolumeOffIcon, { className: "media-icon media-icon--volume-off" }),
|
|
91
91
|
/* @__PURE__ */ jsx(VolumeLowIcon, { className: "media-icon media-icon--volume-low" }),
|
|
92
92
|
/* @__PURE__ */ jsx(VolumeHighIcon, { className: "media-icon media-icon--volume-high" })
|
|
93
93
|
]
|
|
94
|
-
})
|
|
94
|
+
});
|
|
95
95
|
if (volumeUnsupported) return muteButton;
|
|
96
96
|
return /* @__PURE__ */ jsxs(PopoverRoot, {
|
|
97
97
|
openOnHover: true,
|
|
@@ -128,7 +128,7 @@ function MinimalVideoSkin(props) {
|
|
|
128
128
|
className: "media-buffering-indicator",
|
|
129
129
|
children: /* @__PURE__ */ jsx(SpinnerIcon, { className: "media-icon" })
|
|
130
130
|
}) }),
|
|
131
|
-
/* @__PURE__ */ jsx(ErrorDialog, {
|
|
131
|
+
/* @__PURE__ */ jsx(ErrorDialog, { classNames: ERROR_CLASSNAMES }),
|
|
132
132
|
/* @__PURE__ */ jsx(ControlsRoot, {
|
|
133
133
|
className: "media-controls",
|
|
134
134
|
children: /* @__PURE__ */ jsxs(TooltipProvider, { children: [
|
|
@@ -137,15 +137,15 @@ function MinimalVideoSkin(props) {
|
|
|
137
137
|
children: [
|
|
138
138
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
139
139
|
side: "top",
|
|
140
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(PlayButton, {
|
|
141
|
+
className: "media-button--play",
|
|
142
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
143
143
|
children: [
|
|
144
144
|
/* @__PURE__ */ jsx(RestartIcon, { className: "media-icon media-icon--restart" }),
|
|
145
145
|
/* @__PURE__ */ jsx(PlayIcon, { className: "media-icon media-icon--play" }),
|
|
146
146
|
/* @__PURE__ */ jsx(PauseIcon, { className: "media-icon media-icon--pause" })
|
|
147
147
|
]
|
|
148
|
-
}) })
|
|
148
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
149
149
|
className: "media-tooltip",
|
|
150
150
|
children: /* @__PURE__ */ jsx(PlayLabel, {})
|
|
151
151
|
})]
|
|
@@ -154,16 +154,14 @@ function MinimalVideoSkin(props) {
|
|
|
154
154
|
side: "top",
|
|
155
155
|
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, {
|
|
156
156
|
seconds: -SEEK_TIME,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
})]
|
|
166
|
-
})
|
|
157
|
+
className: "media-button--seek",
|
|
158
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
159
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
160
|
+
className: "media-icon__container",
|
|
161
|
+
children: [/* @__PURE__ */ jsx(SeekIcon, { className: "media-icon media-icon--seek media-icon--flipped" }), /* @__PURE__ */ jsx("span", {
|
|
162
|
+
className: "media-icon__label",
|
|
163
|
+
children: SEEK_TIME
|
|
164
|
+
})]
|
|
167
165
|
})
|
|
168
166
|
}) }), /* @__PURE__ */ jsxs(TooltipPopup, {
|
|
169
167
|
className: "media-tooltip",
|
|
@@ -178,16 +176,14 @@ function MinimalVideoSkin(props) {
|
|
|
178
176
|
side: "top",
|
|
179
177
|
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, {
|
|
180
178
|
seconds: SEEK_TIME,
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
})]
|
|
190
|
-
})
|
|
179
|
+
className: "media-button--seek",
|
|
180
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
181
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
182
|
+
className: "media-icon__container",
|
|
183
|
+
children: [/* @__PURE__ */ jsx(SeekIcon, { className: "media-icon media-icon--seek" }), /* @__PURE__ */ jsx("span", {
|
|
184
|
+
className: "media-icon__label",
|
|
185
|
+
children: SEEK_TIME
|
|
186
|
+
})]
|
|
191
187
|
})
|
|
192
188
|
}) }), /* @__PURE__ */ jsxs(TooltipPopup, {
|
|
193
189
|
className: "media-tooltip",
|
|
@@ -245,10 +241,10 @@ function MinimalVideoSkin(props) {
|
|
|
245
241
|
children: [
|
|
246
242
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
247
243
|
side: "top",
|
|
248
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(PlaybackRateButton, {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}) })
|
|
244
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(PlaybackRateButton, {
|
|
245
|
+
className: "media-button--playback-rate",
|
|
246
|
+
render: /* @__PURE__ */ jsx(Button, {})
|
|
247
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
252
248
|
className: "media-tooltip",
|
|
253
249
|
children: "Toggle playback rate"
|
|
254
250
|
})]
|
|
@@ -256,33 +252,33 @@ function MinimalVideoSkin(props) {
|
|
|
256
252
|
/* @__PURE__ */ jsx(VolumePopover, {}),
|
|
257
253
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
258
254
|
side: "top",
|
|
259
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
260
|
-
|
|
261
|
-
|
|
255
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(CaptionsButton, {
|
|
256
|
+
className: "media-button--captions",
|
|
257
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
262
258
|
children: [/* @__PURE__ */ jsx(CaptionsOffIcon, { className: "media-icon media-icon--captions-off" }), /* @__PURE__ */ jsx(CaptionsOnIcon, { className: "media-icon media-icon--captions-on" })]
|
|
263
|
-
}) })
|
|
259
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
264
260
|
className: "media-tooltip",
|
|
265
261
|
children: /* @__PURE__ */ jsx(CaptionsLabel, {})
|
|
266
262
|
})]
|
|
267
263
|
}),
|
|
268
264
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
269
265
|
side: "top",
|
|
270
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
271
|
-
|
|
272
|
-
|
|
266
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(PiPButton, {
|
|
267
|
+
className: "media-button--pip",
|
|
268
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
273
269
|
children: [/* @__PURE__ */ jsx(PipEnterIcon, { className: "media-icon media-icon--pip-enter" }), /* @__PURE__ */ jsx(PipExitIcon, { className: "media-icon media-icon--pip-exit" })]
|
|
274
|
-
}) })
|
|
270
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
275
271
|
className: "media-tooltip",
|
|
276
272
|
children: /* @__PURE__ */ jsx(PiPLabel, {})
|
|
277
273
|
})]
|
|
278
274
|
}),
|
|
279
275
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
280
276
|
side: "top",
|
|
281
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
282
|
-
|
|
283
|
-
|
|
277
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(FullscreenButton, {
|
|
278
|
+
className: "media-button--fullscreen",
|
|
279
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
284
280
|
children: [/* @__PURE__ */ jsx(FullscreenEnterIcon, { className: "media-icon media-icon--fullscreen-enter" }), /* @__PURE__ */ jsx(FullscreenExitIcon, { className: "media-icon media-icon--fullscreen-exit" })]
|
|
285
|
-
}) })
|
|
281
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
286
282
|
className: "media-tooltip",
|
|
287
283
|
children: /* @__PURE__ */ jsx(FullscreenLabel, {})
|
|
288
284
|
})]
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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 { ErrorDialog } from '../error-dialog';\nimport type { BaseVideoSkinProps } from '../types';\n\nconst SEEK_TIME = 10;\n\nconst ERROR_CLASSNAMES = {\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 media-button--primary',\n};\n\nexport type MinimalVideoSkinProps = 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 PlayLabel(): string {\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(): string {\n const active = usePlayer((s) => Boolean(s.subtitlesShowing));\n return active ? 'Disable captions' : 'Enable captions';\n}\n\nfunction PiPLabel(): string {\n const pip = usePlayer((s) => Boolean(s.pip));\n return pip ? 'Exit picture-in-picture' : 'Enter picture-in-picture';\n}\n\nfunction FullscreenLabel(): string {\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 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-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 classNames={ERROR_CLASSNAMES} />\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 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-tooltip\">\n <PlayLabel />\n </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 media-icon--flipped\" />\n <span className=\"media-icon__label\">{SEEK_TIME}</span>\n </span>\n </SeekButton>\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 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-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={<PlaybackRateButton className=\"media-button--playback-rate\" render={<Button />} />}\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 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-tooltip\">\n <CaptionsLabel />\n </Tooltip.Popup>\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-tooltip\">\n <PiPLabel />\n </Tooltip.Popup>\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-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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.tailwind.d.ts","names":[],"sources":["../../../../src/presets/video/minimal-skin.tailwind.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"minimal-skin.tailwind.d.ts","names":[],"sources":["../../../../src/presets/video/minimal-skin.tailwind.tsx"],"mappings":";;;;iBA6KgB,wBAAA,CAAyB,KAAA,EAAO,qBAAA,GAAwB,SAAA"}
|
|
@@ -13,7 +13,7 @@ import { PopoverRoot } from "../../ui/popover/popover-root.js";
|
|
|
13
13
|
import { PopoverTrigger } from "../../ui/popover/popover-trigger.js";
|
|
14
14
|
import { Poster } from "../../ui/poster/poster.js";
|
|
15
15
|
import { SeekButton } from "../../ui/seek-button/seek-button.js";
|
|
16
|
-
import { SliderBuffer } from "../../ui/slider/slider-buffer.js";
|
|
16
|
+
import { SliderBuffer as SliderBuffer$1 } from "../../ui/slider/slider-buffer.js";
|
|
17
17
|
import { SliderFill as SliderFill$1 } from "../../ui/slider/slider-fill.js";
|
|
18
18
|
import { SliderThumb as SliderThumb$1 } from "../../ui/slider/slider-thumb.js";
|
|
19
19
|
import { SliderThumbnail } from "../../ui/slider/slider-thumbnail.js";
|
|
@@ -42,31 +42,39 @@ import SpinnerIcon from "../../icons/dist/react/minimal/spinner.js";
|
|
|
42
42
|
import VolumeHighIcon from "../../icons/dist/react/minimal/volume-high.js";
|
|
43
43
|
import VolumeLowIcon from "../../icons/dist/react/minimal/volume-low.js";
|
|
44
44
|
import VolumeOffIcon from "../../icons/dist/react/minimal/volume-off.js";
|
|
45
|
+
import { ErrorDialog } from "../error-dialog.js";
|
|
45
46
|
import { iconState } from "../../skins/dist/default/shared/tailwind/icon-state.js";
|
|
46
47
|
import { playbackRate } from "../../skins/dist/default/default/tailwind/components/playback-rate.js";
|
|
47
48
|
import { bufferingIndicator } from "../../skins/dist/default/minimal/tailwind/components/buffering.js";
|
|
48
49
|
import { button } from "../../skins/dist/default/minimal/tailwind/components/button.js";
|
|
49
50
|
import { buttonGroup } from "../../skins/dist/default/minimal/tailwind/components/button-group.js";
|
|
50
|
-
import { error } from "../../skins/dist/default/minimal/tailwind/components/error.js";
|
|
51
51
|
import { icon, iconContainer, iconFlipped } from "../../skins/dist/default/minimal/tailwind/components/icon.js";
|
|
52
52
|
import { seek } from "../../skins/dist/default/minimal/tailwind/components/seek.js";
|
|
53
53
|
import { time } from "../../skins/dist/default/minimal/tailwind/components/time.js";
|
|
54
|
-
import { ErrorDialog } from "./error-dialog.js";
|
|
55
54
|
import { overlay } from "../../skins/dist/default/minimal/tailwind/components/overlay.js";
|
|
56
55
|
import { poster } from "../../skins/dist/default/minimal/tailwind/components/poster.js";
|
|
57
|
-
import { controls, popup, preview, root, slider } from "../../skins/dist/default/minimal/tailwind/video.tailwind.js";
|
|
56
|
+
import { controls, error, popup, preview, root, slider } from "../../skins/dist/default/minimal/tailwind/video.tailwind.js";
|
|
58
57
|
import { forwardRef } from "react";
|
|
59
58
|
import { isString } from "@videojs/utils/predicate";
|
|
60
|
-
import {
|
|
59
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
61
60
|
import { cn } from "@videojs/utils/style";
|
|
62
61
|
|
|
63
62
|
//#region src/presets/video/minimal-skin.tailwind.tsx
|
|
64
63
|
const SEEK_TIME = 10;
|
|
65
|
-
const
|
|
64
|
+
const ERROR_CLASSNAMES = {
|
|
65
|
+
root: error.root,
|
|
66
|
+
dialog: error.dialog,
|
|
67
|
+
content: error.content,
|
|
68
|
+
title: error.title,
|
|
69
|
+
description: error.description,
|
|
70
|
+
actions: error.actions,
|
|
71
|
+
close: cn(button.base, button.primary)
|
|
72
|
+
};
|
|
73
|
+
const Button = forwardRef(function Button({ className, ...props }, ref) {
|
|
66
74
|
return /* @__PURE__ */ jsx("button", {
|
|
67
75
|
ref,
|
|
68
76
|
type: "button",
|
|
69
|
-
className: cn(button.base,
|
|
77
|
+
className: cn(button.base, button.subtle, button.icon, className),
|
|
70
78
|
...props
|
|
71
79
|
});
|
|
72
80
|
});
|
|
@@ -91,6 +99,13 @@ const SliderFill = forwardRef(function SliderFill({ type = "fill", className, ..
|
|
|
91
99
|
...props
|
|
92
100
|
});
|
|
93
101
|
});
|
|
102
|
+
const SliderBuffer = forwardRef(function SliderBuffer(props, ref) {
|
|
103
|
+
return /* @__PURE__ */ jsx(SliderFill, {
|
|
104
|
+
type: "buffer",
|
|
105
|
+
ref,
|
|
106
|
+
...props
|
|
107
|
+
});
|
|
108
|
+
});
|
|
94
109
|
const SliderThumb = forwardRef(function SliderThumb({ persistent, className, ...props }, ref) {
|
|
95
110
|
return /* @__PURE__ */ jsx("div", {
|
|
96
111
|
ref,
|
|
@@ -98,40 +113,31 @@ const SliderThumb = forwardRef(function SliderThumb({ persistent, className, ...
|
|
|
98
113
|
...props
|
|
99
114
|
});
|
|
100
115
|
});
|
|
101
|
-
const errorClasses = {
|
|
102
|
-
root: error.root,
|
|
103
|
-
dialog: error.dialog,
|
|
104
|
-
content: error.content,
|
|
105
|
-
title: error.title,
|
|
106
|
-
actions: error.actions,
|
|
107
|
-
close: cn(button.base, button.default)
|
|
108
|
-
};
|
|
109
116
|
function PlayLabel() {
|
|
110
117
|
const paused = usePlayer((s) => Boolean(s.paused));
|
|
111
|
-
if (usePlayer((s) => Boolean(s.ended))) return
|
|
112
|
-
return paused ?
|
|
118
|
+
if (usePlayer((s) => Boolean(s.ended))) return "Replay";
|
|
119
|
+
return paused ? "Play" : "Pause";
|
|
113
120
|
}
|
|
114
121
|
function CaptionsLabel() {
|
|
115
|
-
return usePlayer((s) => Boolean(s.subtitlesShowing)) ?
|
|
122
|
+
return usePlayer((s) => Boolean(s.subtitlesShowing)) ? "Disable captions" : "Enable captions";
|
|
116
123
|
}
|
|
117
124
|
function PiPLabel() {
|
|
118
|
-
return usePlayer((s) => Boolean(s.pip)) ?
|
|
125
|
+
return usePlayer((s) => Boolean(s.pip)) ? "Exit picture-in-picture" : "Enter picture-in-picture";
|
|
119
126
|
}
|
|
120
127
|
function FullscreenLabel() {
|
|
121
|
-
return usePlayer((s) => Boolean(s.fullscreen)) ?
|
|
128
|
+
return usePlayer((s) => Boolean(s.fullscreen)) ? "Exit fullscreen" : "Enter fullscreen";
|
|
122
129
|
}
|
|
123
130
|
function VolumePopover() {
|
|
124
131
|
const volumeUnsupported = usePlayer((s) => s.volumeAvailability === "unsupported");
|
|
125
|
-
const muteButton = /* @__PURE__ */
|
|
126
|
-
variant: "icon",
|
|
127
|
-
...props,
|
|
132
|
+
const muteButton = /* @__PURE__ */ jsxs(MuteButton, {
|
|
128
133
|
className: iconState.mute.button,
|
|
134
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
129
135
|
children: [
|
|
130
136
|
/* @__PURE__ */ jsx(VolumeOffIcon, { className: cn(icon, iconState.mute.volumeOff) }),
|
|
131
137
|
/* @__PURE__ */ jsx(VolumeLowIcon, { className: cn(icon, iconState.mute.volumeLow) }),
|
|
132
138
|
/* @__PURE__ */ jsx(VolumeHighIcon, { className: cn(icon, iconState.mute.volumeHigh) })
|
|
133
139
|
]
|
|
134
|
-
})
|
|
140
|
+
});
|
|
135
141
|
if (volumeUnsupported) return muteButton;
|
|
136
142
|
return /* @__PURE__ */ jsxs(PopoverRoot, {
|
|
137
143
|
openOnHover: true,
|
|
@@ -143,10 +149,10 @@ function VolumePopover() {
|
|
|
143
149
|
children: /* @__PURE__ */ jsxs(VolumeSliderRoot, {
|
|
144
150
|
orientation: "vertical",
|
|
145
151
|
thumbAlignment: "edge",
|
|
146
|
-
render:
|
|
152
|
+
render: /* @__PURE__ */ jsx(SliderRoot, {}),
|
|
147
153
|
children: [/* @__PURE__ */ jsx(SliderTrack$1, {
|
|
148
|
-
render:
|
|
149
|
-
children: /* @__PURE__ */ jsx(SliderFill$1, { render:
|
|
154
|
+
render: /* @__PURE__ */ jsx(SliderTrack, {}),
|
|
155
|
+
children: /* @__PURE__ */ jsx(SliderFill$1, { render: /* @__PURE__ */ jsx(SliderFill, {}) })
|
|
150
156
|
}), /* @__PURE__ */ jsx(SliderThumb$1, { render: (props) => /* @__PURE__ */ jsx(SliderThumb, {
|
|
151
157
|
persistent: true,
|
|
152
158
|
...props
|
|
@@ -172,7 +178,7 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
172
178
|
className: bufferingIndicator,
|
|
173
179
|
children: /* @__PURE__ */ jsx(SpinnerIcon, { className: icon })
|
|
174
180
|
}) }),
|
|
175
|
-
/* @__PURE__ */ jsx(ErrorDialog, {
|
|
181
|
+
/* @__PURE__ */ jsx(ErrorDialog, { classNames: ERROR_CLASSNAMES }),
|
|
176
182
|
/* @__PURE__ */ jsx(ControlsRoot, {
|
|
177
183
|
"data-controls": "",
|
|
178
184
|
className: controls,
|
|
@@ -182,16 +188,15 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
182
188
|
children: [
|
|
183
189
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
184
190
|
side: "top",
|
|
185
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
186
|
-
variant: "icon",
|
|
187
|
-
...props,
|
|
191
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(PlayButton, {
|
|
188
192
|
className: iconState.play.button,
|
|
193
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
189
194
|
children: [
|
|
190
195
|
/* @__PURE__ */ jsx(RestartIcon, { className: cn(icon, iconState.play.restart) }),
|
|
191
196
|
/* @__PURE__ */ jsx(PlayIcon, { className: cn(icon, iconState.play.play) }),
|
|
192
197
|
/* @__PURE__ */ jsx(PauseIcon, { className: cn(icon, iconState.play.pause) })
|
|
193
198
|
]
|
|
194
|
-
}) })
|
|
199
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
195
200
|
className: cn(popup.tooltip),
|
|
196
201
|
children: /* @__PURE__ */ jsx(PlayLabel, {})
|
|
197
202
|
})]
|
|
@@ -200,17 +205,14 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
200
205
|
side: "top",
|
|
201
206
|
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, {
|
|
202
207
|
seconds: -SEEK_TIME,
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
className:
|
|
207
|
-
children: /* @__PURE__ */
|
|
208
|
-
className:
|
|
209
|
-
children:
|
|
210
|
-
|
|
211
|
-
children: SEEK_TIME
|
|
212
|
-
})]
|
|
213
|
-
})
|
|
208
|
+
className: seek.button,
|
|
209
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
210
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
211
|
+
className: iconContainer,
|
|
212
|
+
children: [/* @__PURE__ */ jsx(SeekIcon, { className: cn(icon, iconFlipped) }), /* @__PURE__ */ jsx("span", {
|
|
213
|
+
className: cn(seek.label, seek.labelBackward),
|
|
214
|
+
children: SEEK_TIME
|
|
215
|
+
})]
|
|
214
216
|
})
|
|
215
217
|
}) }), /* @__PURE__ */ jsxs(TooltipPopup, {
|
|
216
218
|
className: cn(popup.tooltip),
|
|
@@ -225,17 +227,14 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
225
227
|
side: "top",
|
|
226
228
|
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(SeekButton, {
|
|
227
229
|
seconds: SEEK_TIME,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
className:
|
|
232
|
-
children: /* @__PURE__ */
|
|
233
|
-
className:
|
|
234
|
-
children:
|
|
235
|
-
|
|
236
|
-
children: SEEK_TIME
|
|
237
|
-
})]
|
|
238
|
-
})
|
|
230
|
+
className: seek.button,
|
|
231
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
232
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
233
|
+
className: iconContainer,
|
|
234
|
+
children: [/* @__PURE__ */ jsx(SeekIcon, { className: icon }), /* @__PURE__ */ jsx("span", {
|
|
235
|
+
className: cn(seek.label, seek.labelForward),
|
|
236
|
+
children: SEEK_TIME
|
|
237
|
+
})]
|
|
239
238
|
})
|
|
240
239
|
}) }), /* @__PURE__ */ jsxs(TooltipPopup, {
|
|
241
240
|
className: cn(popup.tooltip),
|
|
@@ -264,16 +263,13 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
264
263
|
})
|
|
265
264
|
]
|
|
266
265
|
}), /* @__PURE__ */ jsxs(TimeSliderRoot, {
|
|
267
|
-
render:
|
|
266
|
+
render: /* @__PURE__ */ jsx(SliderRoot, {}),
|
|
268
267
|
children: [
|
|
269
268
|
/* @__PURE__ */ jsxs(SliderTrack$1, {
|
|
270
|
-
render:
|
|
271
|
-
children: [/* @__PURE__ */ jsx(SliderFill$1, { render:
|
|
272
|
-
type: "buffer",
|
|
273
|
-
...props
|
|
274
|
-
}) })]
|
|
269
|
+
render: /* @__PURE__ */ jsx(SliderTrack, {}),
|
|
270
|
+
children: [/* @__PURE__ */ jsx(SliderFill$1, { render: /* @__PURE__ */ jsx(SliderFill, {}) }), /* @__PURE__ */ jsx(SliderBuffer$1, { render: /* @__PURE__ */ jsx(SliderBuffer, {}) })]
|
|
275
271
|
}),
|
|
276
|
-
/* @__PURE__ */ jsx(SliderThumb$1, { render:
|
|
272
|
+
/* @__PURE__ */ jsx(SliderThumb$1, { render: /* @__PURE__ */ jsx(SliderThumb, {}) }),
|
|
277
273
|
/* @__PURE__ */ jsxs("div", {
|
|
278
274
|
className: preview.root,
|
|
279
275
|
children: [
|
|
@@ -296,11 +292,10 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
296
292
|
children: [
|
|
297
293
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
298
294
|
side: "top",
|
|
299
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(PlaybackRateButton, {
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
}) }) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
295
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsx(PlaybackRateButton, {
|
|
296
|
+
className: playbackRate.button,
|
|
297
|
+
render: /* @__PURE__ */ jsx(Button, {})
|
|
298
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
304
299
|
className: cn(popup.tooltip),
|
|
305
300
|
children: "Toggle playback rate"
|
|
306
301
|
})]
|
|
@@ -308,36 +303,33 @@ function MinimalVideoSkinTailwind(props) {
|
|
|
308
303
|
/* @__PURE__ */ jsx(VolumePopover, {}),
|
|
309
304
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
310
305
|
side: "top",
|
|
311
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
312
|
-
variant: "icon",
|
|
313
|
-
...props,
|
|
306
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(CaptionsButton, {
|
|
314
307
|
className: iconState.captions.button,
|
|
308
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
315
309
|
children: [/* @__PURE__ */ jsx(CaptionsOffIcon, { className: cn(icon, iconState.captions.off) }), /* @__PURE__ */ jsx(CaptionsOnIcon, { className: cn(icon, iconState.captions.on) })]
|
|
316
|
-
}) })
|
|
310
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
317
311
|
className: cn(popup.tooltip),
|
|
318
312
|
children: /* @__PURE__ */ jsx(CaptionsLabel, {})
|
|
319
313
|
})]
|
|
320
314
|
}),
|
|
321
315
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
322
316
|
side: "top",
|
|
323
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
324
|
-
variant: "icon",
|
|
325
|
-
...props,
|
|
317
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(PiPButton, {
|
|
326
318
|
className: iconState.pip.button,
|
|
319
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
327
320
|
children: [/* @__PURE__ */ jsx(PipEnterIcon, { className: cn(icon, iconState.pip.off) }), /* @__PURE__ */ jsx(PipExitIcon, { className: cn(icon, iconState.pip.on) })]
|
|
328
|
-
}) })
|
|
321
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
329
322
|
className: cn(popup.tooltip),
|
|
330
323
|
children: /* @__PURE__ */ jsx(PiPLabel, {})
|
|
331
324
|
})]
|
|
332
325
|
}),
|
|
333
326
|
/* @__PURE__ */ jsxs(TooltipRoot, {
|
|
334
327
|
side: "top",
|
|
335
|
-
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */
|
|
336
|
-
variant: "icon",
|
|
337
|
-
...props,
|
|
328
|
+
children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: /* @__PURE__ */ jsxs(FullscreenButton, {
|
|
338
329
|
className: iconState.fullscreen.button,
|
|
330
|
+
render: /* @__PURE__ */ jsx(Button, {}),
|
|
339
331
|
children: [/* @__PURE__ */ jsx(FullscreenEnterIcon, { className: cn(icon, iconState.fullscreen.enter) }), /* @__PURE__ */ jsx(FullscreenExitIcon, { className: cn(icon, iconState.fullscreen.exit) })]
|
|
340
|
-
}) })
|
|
332
|
+
}) }), /* @__PURE__ */ jsx(TooltipPopup, {
|
|
341
333
|
className: cn(popup.tooltip),
|
|
342
334
|
children: /* @__PURE__ */ jsx(FullscreenLabel, {})
|
|
343
335
|
})]
|