@videojs/html 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/cdn/audio-minimal.dev.js +9 -9
- package/cdn/audio-minimal.dev.js.map +1 -1
- package/cdn/audio-minimal.js +1 -1
- package/cdn/audio-minimal.js.map +1 -1
- package/cdn/audio.dev.js +9 -9
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background.dev.js +14 -1
- package/cdn/background.dev.js.map +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/{create-player-Dv7K1Ezk.js → create-player-4kACDl5S.js} +3 -2
- package/cdn/create-player-4kACDl5S.js.map +1 -0
- package/cdn/{create-player-QjiNZlh7.js → create-player-DxN4WCxY.js} +3 -3
- package/cdn/create-player-DxN4WCxY.js.map +1 -0
- package/cdn/media/simple-hls-video.dev.js +22 -4
- package/cdn/media/simple-hls-video.dev.js.map +1 -1
- package/cdn/media/simple-hls-video.js +1 -1
- package/cdn/media/simple-hls-video.js.map +1 -1
- package/cdn/{player-CztIlNio.js → player-DVYGAHSo.js} +2 -2
- package/cdn/{player-CztIlNio.js.map → player-DVYGAHSo.js.map} +1 -1
- package/cdn/{player-Dvj38jlr.js → player-u-bvetUg.js} +2 -2
- package/cdn/{player-Dvj38jlr.js.map → player-u-bvetUg.js.map} +1 -1
- package/cdn/{poster-O0SI05LC.js → poster-BoF67sLZ.js} +3 -3
- package/cdn/{poster-O0SI05LC.js.map → poster-BoF67sLZ.js.map} +1 -1
- package/cdn/{poster-C4WHg3BH.js → poster-CkKPGKQ1.js} +2 -2
- package/cdn/{poster-C4WHg3BH.js.map → poster-CkKPGKQ1.js.map} +1 -1
- package/cdn/video-minimal.dev.js +12 -12
- package/cdn/video-minimal.dev.js.map +1 -1
- package/cdn/video-minimal.js +1 -1
- package/cdn/video-minimal.js.map +1 -1
- package/cdn/video.dev.js +12 -12
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/cdn/{volume-slider-BqzTytgB.js → volume-slider-Bv1urvub.js} +2 -2
- package/cdn/{volume-slider-BqzTytgB.js.map → volume-slider-Bv1urvub.js.map} +1 -1
- package/cdn/{volume-slider-CfhOO9RM.js → volume-slider-DYG1mki7.js} +2 -2
- package/cdn/{volume-slider-CfhOO9RM.js.map → volume-slider-DYG1mki7.js.map} +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/background/skin.js +6 -0
- package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -0
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +161 -141
- package/dist/default/define/audio/minimal-skin.js +1 -1
- package/dist/default/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/audio/skin.css +164 -132
- package/dist/default/define/audio/skin.js +1 -1
- package/dist/default/define/audio/skin.js.map +1 -1
- package/dist/default/define/audio/skin.tailwind.js +1 -1
- package/dist/default/define/audio/skin.tailwind.js.map +1 -1
- package/dist/default/define/background/skin.js +10 -0
- package/dist/default/define/background/skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.css +224 -192
- package/dist/default/define/video/minimal-skin.js +1 -1
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.css +238 -189
- package/dist/default/define/video/skin.js +1 -1
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -1
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/media/simple-hls-video/index.js +1 -0
- package/dist/default/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
- 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 +8 -2
- 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 +15 -0
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
- 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 +9 -2
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/background/skin.js +6 -0
- package/dist/dev/_virtual/inline-css_src/define/background/skin.js.map +1 -0
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +161 -141
- package/dist/dev/define/audio/minimal-skin.js +5 -5
- package/dist/dev/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.js +5 -5
- package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/audio/skin.css +164 -132
- package/dist/dev/define/audio/skin.js +5 -5
- package/dist/dev/define/audio/skin.js.map +1 -1
- package/dist/dev/define/audio/skin.tailwind.js +5 -5
- package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/define/background/skin.d.ts.map +1 -1
- package/dist/dev/define/background/skin.js +10 -0
- package/dist/dev/define/background/skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.css +224 -192
- package/dist/dev/define/video/minimal-skin.js +8 -8
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +8 -8
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/skin.css +238 -189
- package/dist/dev/define/video/skin.js +8 -8
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +8 -8
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js +1 -0
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
- 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 +8 -2
- 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 +15 -0
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
- 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 +9 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/package.json +9 -9
- package/cdn/audio-minimal.css +0 -1
- package/cdn/audio.css +0 -1
- package/cdn/background.css +0 -1
- package/cdn/create-player-Dv7K1Ezk.js.map +0 -1
- package/cdn/create-player-QjiNZlh7.js.map +0 -1
- package/cdn/video-minimal.css +0 -1
- package/cdn/video.css +0 -1
|
@@ -1,67 +1,3 @@
|
|
|
1
|
-
/* ==========================================================================
|
|
2
|
-
Icon State Visibility for Audio Skins
|
|
3
|
-
|
|
4
|
-
Data-attribute-driven visibility rules for multi-state icon buttons.
|
|
5
|
-
Uses :is() with both element selectors (for HTML custom element wrappers)
|
|
6
|
-
and class selectors (for React rendered SVG elements).
|
|
7
|
-
========================================================================== */
|
|
8
|
-
|
|
9
|
-
/* --- All icons hidden by default --- */
|
|
10
|
-
|
|
11
|
-
.media-button--play .media-icon--restart,
|
|
12
|
-
.media-button--play .media-icon--play,
|
|
13
|
-
.media-button--play .media-icon--pause,
|
|
14
|
-
.media-button--mute .media-icon--volume-off,
|
|
15
|
-
.media-button--mute .media-icon--volume-low,
|
|
16
|
-
.media-button--mute .media-icon--volume-high {
|
|
17
|
-
display: none;
|
|
18
|
-
opacity: 0;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* --- Active icon per state --- */
|
|
22
|
-
|
|
23
|
-
/* Play: ended → restart */
|
|
24
|
-
.media-button--play[data-ended] .media-icon--restart,
|
|
25
|
-
/* Play: paused (not ended) → play */
|
|
26
|
-
.media-button--play:not([data-ended])[data-paused] .media-icon--play,
|
|
27
|
-
/* Play: playing (not paused, not ended) → pause */
|
|
28
|
-
.media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
|
|
29
|
-
/* Mute: muted → volume off */
|
|
30
|
-
.media-button--mute[data-muted] .media-icon--volume-off,
|
|
31
|
-
/* Mute: volume low (not muted) → volume low */
|
|
32
|
-
.media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
|
|
33
|
-
/* Mute: volume high (not muted, not low) → volume high */
|
|
34
|
-
.media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
|
|
35
|
-
display: block;
|
|
36
|
-
opacity: 1;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/* ==========================================================================
|
|
40
|
-
Tooltip Label State Visibility for Audio Skins
|
|
41
|
-
|
|
42
|
-
Data-attribute-driven visibility rules for multi-state tooltip labels.
|
|
43
|
-
Uses adjacent sibling selectors to match button state → tooltip content.
|
|
44
|
-
========================================================================== */
|
|
45
|
-
|
|
46
|
-
/* --- All multi-state labels hidden by default --- */
|
|
47
|
-
|
|
48
|
-
.media-tooltip-label {
|
|
49
|
-
display: none;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/* --- Active label per state --- */
|
|
53
|
-
|
|
54
|
-
/* Play: ended → replay */
|
|
55
|
-
.media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
|
|
56
|
-
/* Play: paused (not ended) → play */
|
|
57
|
-
.media-button--play:not([data-ended])[data-paused] + .media-tooltip
|
|
58
|
-
.media-tooltip-label--play,
|
|
59
|
-
/* Play: playing (not paused, not ended) → pause */
|
|
60
|
-
.media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
|
|
61
|
-
.media-tooltip-label--pause {
|
|
62
|
-
display: block;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
1
|
/* ==========================================================================
|
|
66
2
|
Reset
|
|
67
3
|
========================================================================== */
|
|
@@ -109,6 +45,8 @@
|
|
|
109
45
|
letter-spacing: normal;
|
|
110
46
|
-webkit-font-smoothing: auto;
|
|
111
47
|
-moz-osx-font-smoothing: auto;
|
|
48
|
+
|
|
49
|
+
--media-controls-radius: var(--media-border-radius, 1rem);
|
|
112
50
|
}
|
|
113
51
|
|
|
114
52
|
/* ==========================================================================
|
|
@@ -133,61 +71,6 @@
|
|
|
133
71
|
Error Dialog
|
|
134
72
|
========================================================================== */
|
|
135
73
|
|
|
136
|
-
.media-minimal-skin .media-error {
|
|
137
|
-
position: absolute;
|
|
138
|
-
inset: 0;
|
|
139
|
-
z-index: 20;
|
|
140
|
-
display: flex;
|
|
141
|
-
align-items: center;
|
|
142
|
-
justify-content: center;
|
|
143
|
-
pointer-events: none;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.media-minimal-skin .media-error__dialog {
|
|
147
|
-
display: flex;
|
|
148
|
-
flex-direction: column;
|
|
149
|
-
gap: 0.75rem;
|
|
150
|
-
max-width: 16rem;
|
|
151
|
-
padding: 1rem;
|
|
152
|
-
color: oklch(1 0 0);
|
|
153
|
-
font-size: 0.875rem;
|
|
154
|
-
text-shadow: 0 1px 0 oklch(0 0 0 / 0.5);
|
|
155
|
-
transition-property: opacity, scale;
|
|
156
|
-
transition-duration: 500ms;
|
|
157
|
-
transition-delay: 100ms;
|
|
158
|
-
transition-timing-function: linear(
|
|
159
|
-
0,
|
|
160
|
-
0.034 1.5%,
|
|
161
|
-
0.763 9.7%,
|
|
162
|
-
1.066 13.9%,
|
|
163
|
-
1.198 19.9%,
|
|
164
|
-
1.184 21.8%,
|
|
165
|
-
0.963 37.5%,
|
|
166
|
-
0.997 50.9%,
|
|
167
|
-
1
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
/* Simple, fast transition for reduced motion users */
|
|
171
|
-
@media (prefers-reduced-motion: reduce) {
|
|
172
|
-
transition-duration: 100ms;
|
|
173
|
-
transition-delay: 0ms;
|
|
174
|
-
transition-timing-function: ease-out;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.media-minimal-skin .media-error[data-starting-style] .media-error__dialog,
|
|
179
|
-
.media-minimal-skin .media-error[data-ending-style] .media-error__dialog {
|
|
180
|
-
opacity: 0;
|
|
181
|
-
scale: 0.5;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
.media-minimal-skin .media-error__content {
|
|
185
|
-
display: flex;
|
|
186
|
-
flex-direction: column;
|
|
187
|
-
gap: 0.5rem;
|
|
188
|
-
padding: 0.375rem 0;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
74
|
.media-minimal-skin .media-error__title {
|
|
192
75
|
font-weight: 600;
|
|
193
76
|
line-height: 1.25;
|
|
@@ -207,6 +90,10 @@
|
|
|
207
90
|
}
|
|
208
91
|
}
|
|
209
92
|
|
|
93
|
+
.media-minimal-skin .media-error[data-open] ~ .media-controls * {
|
|
94
|
+
visibility: hidden;
|
|
95
|
+
}
|
|
96
|
+
|
|
210
97
|
/* ==========================================================================
|
|
211
98
|
Controls
|
|
212
99
|
========================================================================== */
|
|
@@ -285,16 +172,11 @@
|
|
|
285
172
|
justify-content: center;
|
|
286
173
|
flex-shrink: 0;
|
|
287
174
|
padding: 0.5rem 1rem;
|
|
288
|
-
background: oklch(1 0 0);
|
|
289
175
|
border: none;
|
|
290
|
-
border-radius:
|
|
176
|
+
border-radius: calc(var(--media-controls-radius) - var(--media-controls-padding));
|
|
291
177
|
outline: 2px solid transparent;
|
|
292
178
|
outline-offset: -2px;
|
|
293
|
-
|
|
294
|
-
font-weight: 500;
|
|
295
|
-
text-align: center;
|
|
296
|
-
text-shadow: inherit;
|
|
297
|
-
transition-property: background-color, color, outline-offset, scale;
|
|
179
|
+
transition-property: background-color, outline-offset, scale;
|
|
298
180
|
transition-duration: 150ms;
|
|
299
181
|
transition-timing-function: ease-out;
|
|
300
182
|
cursor: pointer;
|
|
@@ -306,6 +188,10 @@
|
|
|
306
188
|
outline-offset: 2px;
|
|
307
189
|
}
|
|
308
190
|
|
|
191
|
+
&:active {
|
|
192
|
+
scale: 0.98;
|
|
193
|
+
}
|
|
194
|
+
|
|
309
195
|
&[disabled] {
|
|
310
196
|
opacity: 0.5;
|
|
311
197
|
filter: grayscale(1);
|
|
@@ -317,21 +203,42 @@
|
|
|
317
203
|
}
|
|
318
204
|
}
|
|
319
205
|
|
|
320
|
-
/*
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
206
|
+
/* biome-ignore lint/correctness/noUnknownProperty: corner-shape is an emerging CSS spec */
|
|
207
|
+
@supports (corner-shape: squircle) {
|
|
208
|
+
.media-minimal-skin .media-button {
|
|
209
|
+
border-radius: var(--media-controls-radius);
|
|
210
|
+
/* biome-ignore lint/correctness/noUnknownProperty: corner-shape is an emerging CSS spec */
|
|
211
|
+
corner-shape: squircle;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* Primary button variant */
|
|
216
|
+
.media-minimal-skin .media-button--primary {
|
|
217
|
+
background: oklch(1 0 0);
|
|
218
|
+
color: oklch(0 0 0);
|
|
219
|
+
font-weight: 500;
|
|
220
|
+
text-align: center;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/* Subtle button variant */
|
|
224
|
+
.media-minimal-skin .media-button--subtle {
|
|
326
225
|
background: transparent;
|
|
327
226
|
color: inherit;
|
|
227
|
+
text-shadow: inherit;
|
|
328
228
|
|
|
329
229
|
&:hover,
|
|
330
230
|
&:focus-visible,
|
|
331
231
|
&[aria-expanded="true"] {
|
|
332
|
-
|
|
333
|
-
text-decoration: none;
|
|
232
|
+
background: oklch(from currentColor l c h / 0.1);
|
|
334
233
|
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/* Icon button variant */
|
|
237
|
+
.media-minimal-skin .media-button--icon {
|
|
238
|
+
display: grid;
|
|
239
|
+
width: 2.375rem;
|
|
240
|
+
padding: 0;
|
|
241
|
+
aspect-ratio: 1;
|
|
335
242
|
|
|
336
243
|
&:active {
|
|
337
244
|
scale: 0.9;
|
|
@@ -348,7 +255,7 @@
|
|
|
348
255
|
position: absolute;
|
|
349
256
|
right: -1px;
|
|
350
257
|
bottom: -3px;
|
|
351
|
-
font-size:
|
|
258
|
+
font-size: 10px;
|
|
352
259
|
font-weight: 480;
|
|
353
260
|
font-variant-numeric: tabular-nums;
|
|
354
261
|
}
|
|
@@ -549,7 +456,8 @@
|
|
|
549
456
|
color: inherit;
|
|
550
457
|
overflow: visible;
|
|
551
458
|
transition-property: scale, opacity, filter;
|
|
552
|
-
transition-duration:
|
|
459
|
+
transition-duration: var(--media-popup-transition-duration);
|
|
460
|
+
transition-timing-function: var(--media-popup-transition-timing-function);
|
|
553
461
|
|
|
554
462
|
&[data-starting-style],
|
|
555
463
|
&[data-ending-style] {
|
|
@@ -652,6 +560,70 @@
|
|
|
652
560
|
display: none;
|
|
653
561
|
}
|
|
654
562
|
|
|
563
|
+
/* ==========================================================================
|
|
564
|
+
Icon State Visibility for Audio Skins
|
|
565
|
+
|
|
566
|
+
Data-attribute-driven visibility rules for multi-state icon buttons.
|
|
567
|
+
Uses :is() with both element selectors (for HTML custom element wrappers)
|
|
568
|
+
and class selectors (for React rendered SVG elements).
|
|
569
|
+
========================================================================== */
|
|
570
|
+
|
|
571
|
+
/* --- All icons hidden by default --- */
|
|
572
|
+
|
|
573
|
+
.media-button--play .media-icon--restart,
|
|
574
|
+
.media-button--play .media-icon--play,
|
|
575
|
+
.media-button--play .media-icon--pause,
|
|
576
|
+
.media-button--mute .media-icon--volume-off,
|
|
577
|
+
.media-button--mute .media-icon--volume-low,
|
|
578
|
+
.media-button--mute .media-icon--volume-high {
|
|
579
|
+
display: none;
|
|
580
|
+
opacity: 0;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
/* --- Active icon per state --- */
|
|
584
|
+
|
|
585
|
+
/* Play: ended → restart */
|
|
586
|
+
.media-button--play[data-ended] .media-icon--restart,
|
|
587
|
+
/* Play: paused (not ended) → play */
|
|
588
|
+
.media-button--play:not([data-ended])[data-paused] .media-icon--play,
|
|
589
|
+
/* Play: playing (not paused, not ended) → pause */
|
|
590
|
+
.media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause,
|
|
591
|
+
/* Mute: muted → volume off */
|
|
592
|
+
.media-button--mute[data-muted] .media-icon--volume-off,
|
|
593
|
+
/* Mute: volume low (not muted) → volume low */
|
|
594
|
+
.media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low,
|
|
595
|
+
/* Mute: volume high (not muted, not low) → volume high */
|
|
596
|
+
.media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high {
|
|
597
|
+
display: block;
|
|
598
|
+
opacity: 1;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/* ==========================================================================
|
|
602
|
+
Tooltip Label State Visibility for Audio Skins
|
|
603
|
+
|
|
604
|
+
Data-attribute-driven visibility rules for multi-state tooltip labels.
|
|
605
|
+
Uses adjacent sibling selectors to match button state → tooltip content.
|
|
606
|
+
========================================================================== */
|
|
607
|
+
|
|
608
|
+
/* --- All multi-state labels hidden by default --- */
|
|
609
|
+
|
|
610
|
+
.media-tooltip-label {
|
|
611
|
+
display: none;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/* --- Active label per state --- */
|
|
615
|
+
|
|
616
|
+
/* Play: ended → replay */
|
|
617
|
+
.media-button--play[data-ended] + .media-tooltip .media-tooltip-label--replay,
|
|
618
|
+
/* Play: paused (not ended) → play */
|
|
619
|
+
.media-button--play:not([data-ended])[data-paused] + .media-tooltip
|
|
620
|
+
.media-tooltip-label--play,
|
|
621
|
+
/* Play: playing (not paused, not ended) → pause */
|
|
622
|
+
.media-button--play:not([data-paused]):not([data-ended]) + .media-tooltip
|
|
623
|
+
.media-tooltip-label--pause {
|
|
624
|
+
display: block;
|
|
625
|
+
}
|
|
626
|
+
|
|
655
627
|
|
|
656
628
|
/* ==========================================================================
|
|
657
629
|
Root
|
|
@@ -660,26 +632,74 @@
|
|
|
660
632
|
.media-minimal-skin--audio {
|
|
661
633
|
--media-controls-background-color: oklch(1 0 0);
|
|
662
634
|
--media-controls-border-color: oklch(0 0 0 / 0.1);
|
|
663
|
-
--media-controls-
|
|
635
|
+
--media-controls-padding: 0.375rem;
|
|
636
|
+
--media-text-color: var(--media-color-primary, oklch(0 0 0));
|
|
637
|
+
--media-error-dialog-transition-duration: 250ms;
|
|
638
|
+
--media-error-dialog-transition-delay: 100ms;
|
|
639
|
+
--media-popup-transition-duration: 100ms;
|
|
640
|
+
--media-popup-transition-timing-function: ease-out;
|
|
641
|
+
|
|
642
|
+
@media (prefers-reduced-motion: reduce) {
|
|
643
|
+
--media-error-dialog-transition-duration: 50ms;
|
|
644
|
+
--media-error-dialog-transition-delay: 0ms;
|
|
645
|
+
--media-popup-transition-duration: 0ms;
|
|
646
|
+
}
|
|
664
647
|
|
|
665
648
|
@media (prefers-color-scheme: dark) {
|
|
666
649
|
--media-controls-background-color: oklch(0 0 0);
|
|
667
650
|
--media-controls-border-color: oklch(1 0 0 / 0.1);
|
|
668
|
-
--media-
|
|
651
|
+
--media-text-color: var(--media-color-primary, oklch(1 0 0));
|
|
669
652
|
}
|
|
670
653
|
}
|
|
671
654
|
|
|
655
|
+
/* ==========================================================================
|
|
656
|
+
Error Dialog
|
|
657
|
+
========================================================================== */
|
|
658
|
+
|
|
659
|
+
.media-minimal-skin--audio .media-error__dialog {
|
|
660
|
+
position: absolute;
|
|
661
|
+
inset: 0;
|
|
662
|
+
z-index: 20;
|
|
663
|
+
display: flex;
|
|
664
|
+
align-items: center;
|
|
665
|
+
gap: 1rem;
|
|
666
|
+
padding-inline: 1.25rem 0.5rem;
|
|
667
|
+
transition-property: opacity, filter, scale;
|
|
668
|
+
transition-duration: var(--media-error-dialog-transition-duration);
|
|
669
|
+
transition-delay: var(--media-error-dialog-transition-delay);
|
|
670
|
+
transition-timing-function: ease-out;
|
|
671
|
+
border-radius: calc(infinity * 1px);
|
|
672
|
+
background-color: oklch(from var(--media-controls-background-color) l c h / 1);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
.media-minimal-skin--audio .media-error[data-starting-style] .media-error__dialog,
|
|
676
|
+
.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {
|
|
677
|
+
opacity: 0;
|
|
678
|
+
filter: blur(4px);
|
|
679
|
+
scale: 0.95;
|
|
680
|
+
}
|
|
681
|
+
.media-minimal-skin--audio .media-error[data-ending-style] .media-error__dialog {
|
|
682
|
+
transition-delay: 0ms;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
.media-minimal-skin--audio .media-error__content {
|
|
686
|
+
flex: 1;
|
|
687
|
+
display: flex;
|
|
688
|
+
gap: 0.5rem;
|
|
689
|
+
align-items: center;
|
|
690
|
+
}
|
|
691
|
+
|
|
672
692
|
/* ==========================================================================
|
|
673
693
|
Controls
|
|
674
694
|
========================================================================== */
|
|
675
695
|
|
|
676
696
|
.media-minimal-skin--audio .media-controls {
|
|
677
697
|
gap: 0.5rem;
|
|
678
|
-
padding:
|
|
698
|
+
padding: var(--media-controls-padding);
|
|
679
699
|
background-color: var(--media-controls-background-color);
|
|
680
700
|
backdrop-filter: blur(16px) saturate(1.5);
|
|
681
|
-
border-radius: var(--media-
|
|
682
|
-
color: var(--media-
|
|
701
|
+
border-radius: var(--media-controls-radius);
|
|
702
|
+
color: var(--media-text-color);
|
|
683
703
|
box-shadow: 0 0 0 1px var(--media-controls-border-color);
|
|
684
704
|
}
|
|
685
705
|
|
|
@@ -26,7 +26,7 @@ function getTemplateHTML() {
|
|
|
26
26
|
<div class="media-controls">
|
|
27
27
|
<media-tooltip-group>
|
|
28
28
|
<div class="media-button-group">
|
|
29
|
-
<media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
|
|
29
|
+
<media-play-button commandfor="play-tooltip" class="media-button media-button--subtle media-button--icon media-button--play">
|
|
30
30
|
${renderIcon("restart", { class: "media-icon media-icon--restart" })}
|
|
31
31
|
${renderIcon("play", { class: "media-icon media-icon--play" })}
|
|
32
32
|
${renderIcon("pause", { class: "media-icon media-icon--pause" })}
|
|
@@ -37,7 +37,7 @@ function getTemplateHTML() {
|
|
|
37
37
|
<span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
|
|
38
38
|
</media-tooltip>
|
|
39
39
|
|
|
40
|
-
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
|
|
40
|
+
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek">
|
|
41
41
|
<span class="media-icon__container">
|
|
42
42
|
${renderIcon("seek", { class: "media-icon media-icon--seek media-icon--flipped" })}
|
|
43
43
|
<span class="media-icon__label">${SEEK_TIME}</span>
|
|
@@ -47,7 +47,7 @@ function getTemplateHTML() {
|
|
|
47
47
|
Seek backward ${SEEK_TIME} seconds
|
|
48
48
|
</media-tooltip>
|
|
49
49
|
|
|
50
|
-
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
|
|
50
|
+
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--subtle media-button--icon media-button--seek">
|
|
51
51
|
<span class="media-icon__container">
|
|
52
52
|
${renderIcon("seek", { class: "media-icon media-icon--seek" })}
|
|
53
53
|
<span class="media-icon__label">${SEEK_TIME}</span>
|
|
@@ -75,13 +75,13 @@ function getTemplateHTML() {
|
|
|
75
75
|
</div>
|
|
76
76
|
|
|
77
77
|
<div class="media-button-group">
|
|
78
|
-
<media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate">
|
|
78
|
+
<media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--subtle media-button--icon media-button--playback-rate">
|
|
79
79
|
</media-playback-rate-button>
|
|
80
80
|
<media-tooltip id="playback-rate-tooltip" side="top" class="media-tooltip">
|
|
81
81
|
Toggle playback rate
|
|
82
82
|
</media-tooltip>
|
|
83
83
|
|
|
84
|
-
<media-mute-button commandfor="audio-volume-popover" class="media-button media-button--icon media-button--mute">
|
|
84
|
+
<media-mute-button commandfor="audio-volume-popover" class="media-button media-button--subtle media-button--icon media-button--mute">
|
|
85
85
|
${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
|
|
86
86
|
${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
|
|
87
87
|
${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.js","names":["styles"],"sources":["../../../../src/define/audio/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--audio\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n </div>\n\n <div class=\"media-button-group\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--icon media-button--playback-rate\">\n </media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"media-button media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"horizontal\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class MinimalAudioSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalAudioSkinElement.tagName, MinimalAudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinElement.tagName]: MinimalAudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;;;;;;;;;;gBAUF,WAAW,WAAW,EAAE,OAAO,kCAAkC,CAAC,CAAC;gBACnE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;gBAC7D,WAAW,SAAS,EAAE,OAAO,gCAAgC,CAAC,CAAC;;;;;;;;6EAQF,CAAC,UAAU;;kBAEtE,WAAW,QAAQ,EAAE,OAAO,mDAAmD,CAAC,CAAC;kDACjD,UAAU;;;;8BAI9B,UAAU;;;4EAGoC,UAAU;;kBAEpE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;kDAC7B,UAAU;;;;6BAI/B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA4BvB,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;;;;;AAkB3F,IAAa,0BAAb,cAA6C,UAAU,gBAAgB,CAAC;;iBAC5C;;;gBACV,aAAaA,qBAAO;;;yBACX;;;AAG3B,eAAe,OAAO,wBAAwB,SAAS,wBAAwB"}
|
|
1
|
+
{"version":3,"file":"minimal-skin.js","names":["styles"],"sources":["../../../../src/define/audio/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--audio\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"media-controls\">\n <media-tooltip-group>\n <div class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--subtle media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--seek' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n </div>\n\n <div class=\"media-button-group\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--subtle media-button--icon media-button--playback-rate\">\n </media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"media-button media-button--subtle media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"horizontal\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class MinimalAudioSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalAudioSkinElement.tagName, MinimalAudioSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinElement.tagName]: MinimalAudioSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;;;;;;;;;;gBAUF,WAAW,WAAW,EAAE,OAAO,kCAAkC,CAAC,CAAC;gBACnE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;gBAC7D,WAAW,SAAS,EAAE,OAAO,gCAAgC,CAAC,CAAC;;;;;;;;6EAQF,CAAC,UAAU;;kBAEtE,WAAW,QAAQ,EAAE,OAAO,mDAAmD,CAAC,CAAC;kDACjD,UAAU;;;;8BAI9B,UAAU;;;4EAGoC,UAAU;;kBAEpE,WAAW,QAAQ,EAAE,OAAO,+BAA+B,CAAC,CAAC;kDAC7B,UAAU;;;;6BAI/B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA4BvB,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,cAAc,EAAE,OAAO,qCAAqC,CAAC,CAAC;gBACzE,WAAW,eAAe,EAAE,OAAO,sCAAsC,CAAC,CAAC;;;;;;;;;;;;;;;;;AAkB3F,IAAa,0BAAb,cAA6C,UAAU,gBAAgB,CAAC;;iBAC5C;;;gBACV,aAAaA,qBAAO;;;yBACX;;;AAG3B,eAAe,OAAO,wBAAwB,SAAS,wBAAwB"}
|
|
@@ -37,7 +37,7 @@ function getTemplateHTML() {
|
|
|
37
37
|
<media-tooltip-group>
|
|
38
38
|
<div class="${buttonGroup}">
|
|
39
39
|
<span class="${tooltipState.play.wrapper}">
|
|
40
|
-
<media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
|
|
40
|
+
<media-play-button commandfor="play-tooltip" class="${cn(button.base, button.subtle, button.icon, iconState.play.button)}">
|
|
41
41
|
${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
|
|
42
42
|
${renderIcon("play", { class: cn(icon, iconState.play.play) })}
|
|
43
43
|
${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
|
|
@@ -49,7 +49,7 @@ function getTemplateHTML() {
|
|
|
49
49
|
</media-tooltip>
|
|
50
50
|
</span>
|
|
51
51
|
|
|
52
|
-
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
|
|
52
|
+
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.subtle, button.icon, seek.button)}">
|
|
53
53
|
<span class="${iconContainer}">
|
|
54
54
|
${renderIcon("seek", { class: cn(icon, iconFlipped) })}
|
|
55
55
|
<span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
|
|
@@ -59,7 +59,7 @@ function getTemplateHTML() {
|
|
|
59
59
|
Seek backward ${SEEK_TIME} seconds
|
|
60
60
|
</media-tooltip>
|
|
61
61
|
|
|
62
|
-
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
|
|
62
|
+
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.subtle, button.icon, seek.button)}">
|
|
63
63
|
<span class="${iconContainer}">
|
|
64
64
|
${renderIcon("seek", { class: icon })}
|
|
65
65
|
<span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
|
|
@@ -87,13 +87,13 @@ function getTemplateHTML() {
|
|
|
87
87
|
</div>
|
|
88
88
|
|
|
89
89
|
<div class="${buttonGroup}">
|
|
90
|
-
<media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}">
|
|
90
|
+
<media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.subtle, button.icon, playbackRate.button)}">
|
|
91
91
|
</media-playback-rate-button>
|
|
92
92
|
<media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
93
93
|
Toggle playback rate
|
|
94
94
|
</media-tooltip>
|
|
95
95
|
|
|
96
|
-
<media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
|
|
96
|
+
<media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.subtle, button.icon, iconState.mute.button)}">
|
|
97
97
|
${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
|
|
98
98
|
${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
|
|
99
99
|
${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/minimal-skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { playbackRate } from '@videojs/skins/default/tailwind/audio.tailwind';\nimport {\n button,\n buttonGroup,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/minimal/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"${controls}\">\n <media-tooltip-group>\n <div class=\"${buttonGroup}\">\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"${time.controls}\">\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-separator class=\"${time.separator}\"></media-time-separator>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n </div>\n\n <div class=\"${buttonGroup}\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\">\n </media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" class=\"${cn(popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"horizontal\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${slider.thumb.base}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class MinimalAudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-minimal-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalAudioSkinTailwindElement.tagName, MinimalAudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinTailwindElement.tagName]: MinimalAudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;8BACY,KAAK;;;;;oBAKf,SAAS;;wBAEL,YAAY;2BACT,aAAa,KAAK,QAAQ;oEACe,GAAG,OAAO,MAAM,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"minimal-skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/minimal-skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { playbackRate } from '@videojs/skins/default/tailwind/audio.tailwind';\nimport {\n button,\n buttonGroup,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/minimal/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/tooltip-group';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <!-- @deprecated slot=\"media\" is no longer required, use the default slot instead -->\n <slot name=\"media\"></slot>\n <slot></slot>\n\n <div class=\"${controls}\">\n <media-tooltip-group>\n <div class=\"${buttonGroup}\">\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.subtle, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.subtle, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.subtle, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </div>\n\n <div class=\"${time.controls}\">\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-separator class=\"${time.separator}\"></media-time-separator>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n </div>\n\n <div class=\"${buttonGroup}\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.subtle, button.icon, playbackRate.button)}\">\n </media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.subtle, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"left\" class=\"${cn(popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"horizontal\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${slider.thumb.base}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-tooltip-group>\n </div>\n </media-container>\n `;\n}\n\nexport class MinimalAudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-minimal-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalAudioSkinTailwindElement.tagName, MinimalAudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalAudioSkinTailwindElement.tagName]: MinimalAudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB;8BACY,KAAK;;;;;oBAKf,SAAS;;wBAEL,YAAY;2BACT,aAAa,KAAK,QAAQ;oEACe,GAAG,OAAO,MAAM,OAAO,QAAQ,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;kBACrH,WAAW,WAAW,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,QAAQ,EAAE,CAAC,CAAC;kBACnE,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,KAAK,EAAE,CAAC,CAAC;kBAC7D,WAAW,SAAS,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC;;mEAEd,GAAG,MAAM,QAAQ,CAAC;+BACtD,aAAa,KAAK,OAAO;+BACzB,aAAa,KAAK,KAAK;+BACvB,aAAa,KAAK,MAAM;;;;6EAIsB,CAAC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,QAAQ,OAAO,MAAM,KAAK,OAAO,CAAC;6BAC/H,cAAc;kBACzB,WAAW,QAAQ,EAAE,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC;+BACxC,GAAG,KAAK,OAAO,KAAK,cAAc,CAAC,IAAI,UAAU;;;0EAGN,GAAG,MAAM,QAAQ,CAAC;8BAC9D,UAAU;;;4EAGoC,UAAU,WAAW,GAAG,OAAO,MAAM,OAAO,QAAQ,OAAO,MAAM,KAAK,OAAO,CAAC;6BAC7H,cAAc;kBACzB,WAAW,QAAQ,EAAE,OAAO,MAAM,CAAC,CAAC;+BACvB,GAAG,KAAK,OAAO,KAAK,aAAa,CAAC,IAAI,UAAU;;;yEAGN,GAAG,MAAM,QAAQ,CAAC;6BAC9D,UAAU;;;;wBAIf,KAAK,SAAS;uCACC,KAAK,MAAM;kDACA,KAAK,QAAQ;6CAClB,KAAK,UAAU;mDACT,KAAK,SAAS;;;wCAGzB,OAAO,KAAK;2CACT,OAAO,MAAM;4CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;8CACrC,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,OAAO,CAAC;;2CAE5C,GAAG,OAAO,MAAM,MAAM,OAAO,MAAM,YAAY,CAAC;;;;wBAInE,YAAY;qFACiD,GAAG,OAAO,MAAM,OAAO,QAAQ,OAAO,MAAM,aAAa,OAAO,CAAC;;0EAE5E,GAAG,MAAM,QAAQ,CAAC;;;;0EAIlB,GAAG,OAAO,MAAM,OAAO,QAAQ,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC;gBAC7H,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;gBACxE,WAAW,cAAc,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;gBACxE,WAAW,eAAe,EAAE,OAAO,GAAG,MAAM,UAAU,KAAK,WAAW,EAAE,CAAC,CAAC;;;sHAG4B,GAAG,MAAM,OAAO,CAAC;4CAC3F,OAAO,KAAK;6CACX,OAAO,MAAM;8CACZ,GAAG,OAAO,KAAK,MAAM,OAAO,KAAK,KAAK,CAAC;;6CAExC,OAAO,MAAM,KAAK;;;;;;;;;AAU/D,IAAa,kCAAb,cAAqD,UAAU,gBAAgB,CAAC;;iBACpD;;;yBACD;;;AAG3B,eAAe,OAAO,gCAAgC,SAAS,gCAAgC"}
|