@m4l/gclick 0.16.0 → 0.17.0
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/components/CameraStream/defaults/DefaultPhaseStreaming.d.ts +2 -2
- package/components/CameraStream/defaults/DefaultPhaseStreaming.d.ts.map +1 -1
- package/components/CameraStream/defaults/DefaultPhaseStreaming.js +23 -21
- package/components/CameraStream/types.d.ts +9 -0
- package/components/CameraStream/types.d.ts.map +1 -1
- package/components/VideoPlayer/VideoPlayer.d.ts +4 -1
- package/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
- package/components/VideoPlayer/VideoPlayer.js +28 -25
- package/components/VideoPlayer/VideoPlayer.styles.d.ts +7 -1
- package/components/VideoPlayer/VideoPlayer.styles.d.ts.map +1 -1
- package/components/VideoPlayer/VideoPlayer.styles.js +72 -10
- package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts +8 -0
- package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts.map +1 -0
- package/components/VideoPlayer/{VideojsSkin.styles.js → VideojsDefaultSkin.styles.js} +478 -248
- package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts +8 -0
- package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts.map +1 -0
- package/components/VideoPlayer/VideojsMinimalSkin.styles.js +1561 -0
- package/components/VideoPlayer/constants.d.ts +33 -0
- package/components/VideoPlayer/constants.d.ts.map +1 -1
- package/components/VideoPlayer/constants.js +20 -4
- package/components/VideoPlayer/hlsConfig.d.ts +21 -11
- package/components/VideoPlayer/hlsConfig.d.ts.map +1 -1
- package/components/VideoPlayer/hlsConfig.js +28 -21
- package/components/VideoPlayer/index.d.ts +2 -2
- package/components/VideoPlayer/index.d.ts.map +1 -1
- package/components/VideoPlayer/player.factory.d.ts +3 -3
- package/components/VideoPlayer/player.factory.d.ts.map +1 -1
- package/components/VideoPlayer/slots/VideoPlayerSlots.d.ts +1 -1
- package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts +5 -2
- package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/GclickVideoSkin.js +34 -178
- package/components/VideoPlayer/subcomponents/VideoPlayerStage.d.ts +4 -3
- package/components/VideoPlayer/subcomponents/VideoPlayerStage.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/VideoPlayerStage.js +43 -42
- package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts +6 -0
- package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/VideoControlBar.js +87 -0
- package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts +9 -0
- package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.js +17 -0
- package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.d.ts +11 -0
- package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.js +19 -0
- package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts +9 -0
- package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.js +48 -0
- package/components/VideoPlayer/subcomponents/skin/primitives.d.ts +81 -0
- package/components/VideoPlayer/subcomponents/skin/primitives.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/primitives.js +142 -0
- package/components/VideoPlayer/subcomponents/skin/skinVariant.d.ts +19 -0
- package/components/VideoPlayer/subcomponents/skin/skinVariant.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/skinVariant.js +23 -0
- package/components/VideoPlayer/types.d.ts +25 -6
- package/components/VideoPlayer/types.d.ts.map +1 -1
- package/index.js +123 -122
- package/package.json +4 -4
- package/components/VideoPlayer/VideojsSkin.styles.d.ts +0 -9
- package/components/VideoPlayer/VideojsSkin.styles.d.ts.map +0 -1
|
@@ -32,14 +32,14 @@ const t = (e) => ({
|
|
|
32
32
|
"--media-current-shadow-color": "oklch(from currentColor 0 0 0 / clamp(0, calc((l - 0.5) * 0.5), 0.15))",
|
|
33
33
|
"--media-current-shadow-color-subtle": "oklch(from var(--media-current-shadow-color) l c h / calc(alpha * 0.4))",
|
|
34
34
|
"--media-icon-size": "18px",
|
|
35
|
+
"--media-color-scrollbar-thumb": "oklch(from currentColor l c h / 0.3)",
|
|
35
36
|
position: "relative",
|
|
36
37
|
display: "block",
|
|
37
38
|
width: "100%",
|
|
38
39
|
height: "100%",
|
|
39
40
|
container: "media-root / inline-size",
|
|
40
|
-
// Themed (vendor value: `Inter Variable, Inter, ui-sans-serif, system-ui,
|
|
41
|
-
//
|
|
42
|
-
// the vendor's stack.
|
|
41
|
+
// Themed deviation (vendor value: `Inter Variable, Inter, ui-sans-serif, system-ui, sans-serif`) —
|
|
42
|
+
// the chrome follows the platform font instead of the vendor stack.
|
|
43
43
|
fontFamily: e.typography.fontFamily,
|
|
44
44
|
fontSize: "0.8125rem",
|
|
45
45
|
/* 13px at 100% font size */
|
|
@@ -49,6 +49,8 @@ const t = (e) => ({
|
|
|
49
49
|
letterSpacing: "normal",
|
|
50
50
|
outline: "2px solid transparent",
|
|
51
51
|
outlineOffset: "-4px",
|
|
52
|
+
scrollbarColor: "var(--media-color-scrollbar-thumb) transparent",
|
|
53
|
+
scrollbarWidth: "thin",
|
|
52
54
|
borderRadius: "var(--media-border-radius, 2rem)",
|
|
53
55
|
isolation: "isolate",
|
|
54
56
|
transitionTimingFunction: "ease-out",
|
|
@@ -57,6 +59,14 @@ const t = (e) => ({
|
|
|
57
59
|
"&:focus-visible": {
|
|
58
60
|
outlineColor: "currentColor",
|
|
59
61
|
outlineOffset: "2px"
|
|
62
|
+
},
|
|
63
|
+
"&::-webkit-scrollbar-thumb": {
|
|
64
|
+
background: "var(--media-color-scrollbar-thumb)",
|
|
65
|
+
borderRadius: "9999px"
|
|
66
|
+
},
|
|
67
|
+
"@media (prefers-reduced-transparency: reduce) or (prefers-contrast: more)": {
|
|
68
|
+
"--media-color-scrollbar-thumb": "oklch(from currentColor l c h / 0.8)",
|
|
69
|
+
scrollbarWidth: "auto"
|
|
60
70
|
}
|
|
61
71
|
},
|
|
62
72
|
/*
|
|
@@ -88,9 +98,8 @@ const t = (e) => ({
|
|
|
88
98
|
display: "block",
|
|
89
99
|
width: "100%",
|
|
90
100
|
height: "100%",
|
|
91
|
-
// Double cast: csstype narrows
|
|
92
|
-
// vendor's `var()` expression
|
|
93
|
-
// dev-mode warning instead). Serializes identically.
|
|
101
|
+
// Double cast: csstype narrows this property to keywords and rejects the
|
|
102
|
+
// vendor's `var()` expression. Serializes identically.
|
|
94
103
|
objectFit: "var(--media-object-fit, contain)",
|
|
95
104
|
objectPosition: "var(--media-object-position, center)"
|
|
96
105
|
},
|
|
@@ -112,7 +121,7 @@ const t = (e) => ({
|
|
|
112
121
|
position: "absolute",
|
|
113
122
|
inset: "0",
|
|
114
123
|
pointerEvents: "none",
|
|
115
|
-
backgroundImage: "linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3)
|
|
124
|
+
backgroundImage: "linear-gradient(to top, oklch(0 0 0 / 0.5), oklch(0 0 0 / 0.3) 25%, oklch(0 0 0 / 0))",
|
|
116
125
|
borderRadius: "inherit",
|
|
117
126
|
opacity: "0",
|
|
118
127
|
backdropFilter: "blur(0) saturate(1)",
|
|
@@ -127,6 +136,11 @@ const t = (e) => ({
|
|
|
127
136
|
".media-default-skin .media-controls[data-visible] ~ .media-overlay, .media-default-skin .media-error[data-open] ~ .media-overlay": {
|
|
128
137
|
opacity: "1"
|
|
129
138
|
},
|
|
139
|
+
".media-default-skin .media-buffering-indicator[data-visible] ~ .media-overlay": {
|
|
140
|
+
background: "oklch(0 0 0 / 0.35)",
|
|
141
|
+
opacity: "1",
|
|
142
|
+
backdropFilter: "blur(8px)"
|
|
143
|
+
},
|
|
130
144
|
".media-default-skin .media-error[data-open] ~ .media-overlay": {
|
|
131
145
|
backdropFilter: "blur(16px) saturate(1.5)"
|
|
132
146
|
},
|
|
@@ -138,20 +152,16 @@ const t = (e) => ({
|
|
|
138
152
|
".media-default-skin .media-buffering-indicator": {
|
|
139
153
|
position: "absolute",
|
|
140
154
|
inset: "0",
|
|
155
|
+
zIndex: "10",
|
|
141
156
|
display: "none",
|
|
142
|
-
|
|
143
|
-
justifyContent: "center",
|
|
157
|
+
placeContent: "center",
|
|
144
158
|
color: "oklch(1 0 0)",
|
|
145
159
|
pointerEvents: "none",
|
|
146
160
|
"&:not([data-visible])": {
|
|
147
161
|
"--media-spinner-animation": "none"
|
|
148
162
|
},
|
|
149
163
|
"&[data-visible]": {
|
|
150
|
-
display: "
|
|
151
|
-
},
|
|
152
|
-
".media-surface": {
|
|
153
|
-
padding: "0.25rem",
|
|
154
|
-
borderRadius: "100%"
|
|
164
|
+
display: "grid"
|
|
155
165
|
}
|
|
156
166
|
},
|
|
157
167
|
/*
|
|
@@ -213,6 +223,19 @@ const t = (e) => ({
|
|
|
213
223
|
".media-default-skin .media-time": {
|
|
214
224
|
fontVariantNumeric: "tabular-nums"
|
|
215
225
|
},
|
|
226
|
+
'.media-default-skin .media-time[role="button"]': {
|
|
227
|
+
cursor: "pointer",
|
|
228
|
+
outline: "2px solid transparent",
|
|
229
|
+
outlineOffset: "-2px",
|
|
230
|
+
borderRadius: "0.25rem",
|
|
231
|
+
transitionTimingFunction: "ease-out",
|
|
232
|
+
transitionDuration: "100ms",
|
|
233
|
+
transitionProperty: "outline-color, outline-offset",
|
|
234
|
+
"&:focus-visible": {
|
|
235
|
+
outlineColor: "currentColor",
|
|
236
|
+
outlineOffset: "2px"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
216
239
|
/*
|
|
217
240
|
* ==========================================================================
|
|
218
241
|
* Buttons
|
|
@@ -281,6 +304,9 @@ const t = (e) => ({
|
|
|
281
304
|
"&:active": {
|
|
282
305
|
scale: "0.9"
|
|
283
306
|
},
|
|
307
|
+
"& .media-icon__container": {
|
|
308
|
+
display: "grid"
|
|
309
|
+
},
|
|
284
310
|
"& .media-icon": {
|
|
285
311
|
gridArea: "1 / 1",
|
|
286
312
|
transitionBehavior: "allow-discrete",
|
|
@@ -297,8 +323,9 @@ const t = (e) => ({
|
|
|
297
323
|
right: "-1px",
|
|
298
324
|
bottom: "-3px",
|
|
299
325
|
fontSize: "10px",
|
|
300
|
-
fontWeight: "
|
|
301
|
-
fontVariantNumeric: "tabular-nums"
|
|
326
|
+
fontWeight: "500",
|
|
327
|
+
fontVariantNumeric: "tabular-nums",
|
|
328
|
+
letterSpacing: "-0.05em"
|
|
302
329
|
},
|
|
303
330
|
"&:has(.media-icon--flipped) .media-icon__label": {
|
|
304
331
|
right: "unset",
|
|
@@ -317,6 +344,22 @@ const t = (e) => ({
|
|
|
317
344
|
content: "none"
|
|
318
345
|
}
|
|
319
346
|
},
|
|
347
|
+
/* Settings button */
|
|
348
|
+
".media-default-skin .media-button--settings": {
|
|
349
|
+
display: "none",
|
|
350
|
+
"& .media-icon--settings": {
|
|
351
|
+
transition: "transform 150ms ease-in-out",
|
|
352
|
+
"@media (prefers-reduced-motion: reduce)": {
|
|
353
|
+
transitionDuration: "0ms"
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
'&[aria-expanded="true"] .media-icon--settings': {
|
|
357
|
+
transform: "rotate(90deg)"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
'.media-default-skin .media-button-group:has([data-availability="available"]) .media-button--settings': {
|
|
361
|
+
display: "grid"
|
|
362
|
+
},
|
|
320
363
|
/*
|
|
321
364
|
* Live button — wide pill button with a status dot (gray → red at the live
|
|
322
365
|
* edge) rendered via ::before, and "LIVE" text rendered as the button's own
|
|
@@ -361,6 +404,21 @@ const t = (e) => ({
|
|
|
361
404
|
gap: "0.125rem"
|
|
362
405
|
}
|
|
363
406
|
},
|
|
407
|
+
/*
|
|
408
|
+
* ==========================================================================
|
|
409
|
+
* Badge
|
|
410
|
+
* ==========================================================================
|
|
411
|
+
*/
|
|
412
|
+
".media-default-skin .media-badge": {
|
|
413
|
+
padding: "0.125rem 0.375rem",
|
|
414
|
+
fontSize: "0.6875rem",
|
|
415
|
+
fontWeight: "500",
|
|
416
|
+
lineHeight: "1",
|
|
417
|
+
color: "oklch(from currentColor l c h / 0.85)",
|
|
418
|
+
whiteSpace: "nowrap",
|
|
419
|
+
backgroundColor: "oklch(from currentColor l c h / 0.1)",
|
|
420
|
+
borderRadius: "calc(infinity * 1px)"
|
|
421
|
+
},
|
|
364
422
|
/*
|
|
365
423
|
* ==========================================================================
|
|
366
424
|
* Icons
|
|
@@ -377,88 +435,6 @@ const t = (e) => ({
|
|
|
377
435
|
".media-default-skin .media-icon--flipped": {
|
|
378
436
|
scale: "-1 1"
|
|
379
437
|
},
|
|
380
|
-
/*
|
|
381
|
-
* ==========================================================================
|
|
382
|
-
* Menus
|
|
383
|
-
* Note: Menus use `.media-popover` styles for positioning and transitions.
|
|
384
|
-
* ==========================================================================
|
|
385
|
-
*/
|
|
386
|
-
".media-default-skin .media-popover.media-menu": {
|
|
387
|
-
boxSizing: "border-box",
|
|
388
|
-
minWidth: "min(6rem, var(--media-popover-available-width, 6rem))",
|
|
389
|
-
maxWidth: "var(--media-popover-available-width, none)",
|
|
390
|
-
maxHeight: "var(--media-popover-available-height, none)",
|
|
391
|
-
padding: "0.375rem",
|
|
392
|
-
overflow: "auto",
|
|
393
|
-
overscrollBehavior: "none",
|
|
394
|
-
borderRadius: "1.25rem",
|
|
395
|
-
"&::before": {
|
|
396
|
-
display: "none"
|
|
397
|
-
}
|
|
398
|
-
},
|
|
399
|
-
".media-default-skin .media-popover.media-menu .media-menu__group": {
|
|
400
|
-
position: "relative",
|
|
401
|
-
display: "flex",
|
|
402
|
-
flexDirection: "column",
|
|
403
|
-
gap: "0.125rem",
|
|
404
|
-
"&::before": {
|
|
405
|
-
position: "absolute",
|
|
406
|
-
positionAnchor: "--media-menu-item-highlight-anchor",
|
|
407
|
-
inset: "anchor(inside)",
|
|
408
|
-
pointerEvents: "none",
|
|
409
|
-
content: '""',
|
|
410
|
-
backgroundColor: "oklch(from currentColor l c h / 0.1)",
|
|
411
|
-
borderRadius: "calc(infinity * 1px)",
|
|
412
|
-
transition: "inset ease-in-out 100ms"
|
|
413
|
-
},
|
|
414
|
-
"@supports not (top: anchor(top))": {
|
|
415
|
-
"&::before": {
|
|
416
|
-
display: "none"
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
},
|
|
420
|
-
".media-default-skin .media-popover.media-menu .media-menu__item": {
|
|
421
|
-
display: "flex",
|
|
422
|
-
gap: "0.5rem",
|
|
423
|
-
alignItems: "center",
|
|
424
|
-
justifyContent: "space-between",
|
|
425
|
-
minHeight: "2rem",
|
|
426
|
-
padding: "0 0.75rem",
|
|
427
|
-
fontVariantNumeric: "tabular-nums",
|
|
428
|
-
color: "inherit",
|
|
429
|
-
cursor: "pointer",
|
|
430
|
-
outline: "2px solid transparent",
|
|
431
|
-
outlineOffset: "-2px",
|
|
432
|
-
borderRadius: "calc(infinity * 1px)",
|
|
433
|
-
"&:hover, &[data-highlighted]": {
|
|
434
|
-
anchorName: "--media-menu-item-highlight-anchor"
|
|
435
|
-
},
|
|
436
|
-
"@supports not (top: anchor(top))": {
|
|
437
|
-
"&:hover, &[data-highlighted]": {
|
|
438
|
-
backgroundColor: "oklch(from currentColor l c h / 0.1)"
|
|
439
|
-
}
|
|
440
|
-
},
|
|
441
|
-
"&:focus-visible": {
|
|
442
|
-
outlineColor: "currentColor",
|
|
443
|
-
outlineOffset: "2px"
|
|
444
|
-
},
|
|
445
|
-
'&[aria-checked="true"] .media-menu__indicator': {
|
|
446
|
-
opacity: "1"
|
|
447
|
-
},
|
|
448
|
-
'&[aria-disabled="true"]': {
|
|
449
|
-
pointerEvents: "none",
|
|
450
|
-
cursor: "not-allowed",
|
|
451
|
-
opacity: "0.5"
|
|
452
|
-
}
|
|
453
|
-
},
|
|
454
|
-
".media-default-skin .media-popover.media-menu .media-menu__indicator": {
|
|
455
|
-
flexShrink: "0",
|
|
456
|
-
marginRight: "-0.25rem",
|
|
457
|
-
opacity: "0"
|
|
458
|
-
},
|
|
459
|
-
".media-default-skin .media-popover.media-menu .media-menu__indicator .media-icon": {
|
|
460
|
-
filter: "drop-shadow(0 1px 0 var(--media-current-shadow-color))"
|
|
461
|
-
},
|
|
462
438
|
/*
|
|
463
439
|
* ==========================================================================
|
|
464
440
|
* Poster Image
|
|
@@ -472,7 +448,7 @@ const t = (e) => ({
|
|
|
472
448
|
pointerEvents: "none",
|
|
473
449
|
transition: "opacity 0.25s"
|
|
474
450
|
},
|
|
475
|
-
".media-default-skin media-poster:not([data-visible]), .media-default-skin > img:not([data-visible])": {
|
|
451
|
+
".media-default-skin media-poster:not([data-visible]), .media-default-skin > img:not([data-visible]), .media-default-skin > img[data-visible]:not([data-loaded])": {
|
|
476
452
|
opacity: "0"
|
|
477
453
|
},
|
|
478
454
|
".media-default-skin media-poster ::slotted(img), .media-default-skin media-poster img": {
|
|
@@ -480,34 +456,53 @@ const t = (e) => ({
|
|
|
480
456
|
inset: "0",
|
|
481
457
|
width: "100%",
|
|
482
458
|
height: "100%",
|
|
483
|
-
// Double cast: csstype narrows
|
|
484
|
-
// vendor's `var()` expression
|
|
485
|
-
// dev-mode warning instead). Serializes identically.
|
|
459
|
+
// Double cast: csstype narrows this property to keywords and rejects the
|
|
460
|
+
// vendor's `var()` expression. Serializes identically.
|
|
486
461
|
objectFit: "var(--media-object-fit, contain)",
|
|
487
462
|
objectPosition: "var(--media-object-position, center)",
|
|
488
463
|
borderRadius: "var(--media-video-border-radius)"
|
|
489
464
|
},
|
|
490
465
|
".media-default-skin > img": {
|
|
491
|
-
// Double cast: csstype narrows
|
|
492
|
-
// vendor's `var()` expression
|
|
493
|
-
// dev-mode warning instead). Serializes identically.
|
|
466
|
+
// Double cast: csstype narrows this property to keywords and rejects the
|
|
467
|
+
// vendor's `var()` expression. Serializes identically.
|
|
494
468
|
objectFit: "var(--media-object-fit, contain)",
|
|
495
469
|
objectPosition: "var(--media-object-position, center)",
|
|
496
470
|
borderRadius: "inherit"
|
|
497
471
|
},
|
|
472
|
+
/* Blurred placeholder: HTML path targets media-poster::before, React path targets the skin container::before */
|
|
473
|
+
".media-default-skin media-poster::before, .media-default-skin::before": {
|
|
474
|
+
position: "absolute",
|
|
475
|
+
inset: "0",
|
|
476
|
+
pointerEvents: "none",
|
|
477
|
+
content: '""',
|
|
478
|
+
backgroundImage: "var(--media-poster-placeholder, none)",
|
|
479
|
+
backgroundRepeat: "no-repeat",
|
|
480
|
+
backgroundPosition: "var(--media-object-position, center)",
|
|
481
|
+
backgroundSize: "var(--media-object-fit, contain)",
|
|
482
|
+
filter: "blur(var(--media-poster-placeholder-blur, 20px))"
|
|
483
|
+
},
|
|
484
|
+
/* React path: hidden by default, transitions in while poster loads */
|
|
485
|
+
".media-default-skin::before": {
|
|
486
|
+
opacity: "0",
|
|
487
|
+
transition: "opacity 0.25s"
|
|
488
|
+
},
|
|
489
|
+
/* Show placeholder while the poster is visible but not yet loaded */
|
|
490
|
+
".media-default-skin:has(img[data-visible]:not([data-loaded]))::before": {
|
|
491
|
+
opacity: "1"
|
|
492
|
+
},
|
|
498
493
|
".media-default-skin:fullscreen media-poster ::slotted(img), .media-default-skin:fullscreen media-poster img, .media-default-skin:fullscreen > img": {
|
|
499
494
|
objectFit: "contain"
|
|
500
495
|
},
|
|
501
496
|
/*
|
|
502
497
|
* ==========================================================================
|
|
503
|
-
* Media
|
|
498
|
+
* Media thumbnail
|
|
504
499
|
* ==========================================================================
|
|
505
500
|
*/
|
|
506
|
-
".media-default-skin .media-
|
|
501
|
+
".media-default-skin .media-thumbnail": {
|
|
507
502
|
pointerEvents: "none",
|
|
508
503
|
backgroundColor: "oklch(0 0 0 / 0.9)",
|
|
509
504
|
borderRadius: "0.75rem",
|
|
510
|
-
"& .media-
|
|
505
|
+
"& .media-thumbnail__image": {
|
|
511
506
|
position: "relative",
|
|
512
507
|
display: "block",
|
|
513
508
|
overflow: "clip",
|
|
@@ -520,35 +515,32 @@ const t = (e) => ({
|
|
|
520
515
|
borderRadius: "inherit"
|
|
521
516
|
}
|
|
522
517
|
},
|
|
523
|
-
"& .media-
|
|
518
|
+
"& .media-thumbnail__time": {
|
|
524
519
|
position: "absolute",
|
|
525
520
|
insetInline: "0",
|
|
526
521
|
bottom: "0.5rem",
|
|
527
522
|
textAlign: "center"
|
|
528
523
|
},
|
|
529
|
-
"& .media-
|
|
530
|
-
opacity: "1"
|
|
531
|
-
},
|
|
532
|
-
"& .media-preview__spinner": {
|
|
524
|
+
"& .media-thumbnail__spinner": {
|
|
533
525
|
position: "absolute",
|
|
534
526
|
top: "50%",
|
|
535
527
|
left: "50%",
|
|
536
528
|
opacity: "0",
|
|
537
529
|
translate: "-50% -50%"
|
|
538
530
|
},
|
|
539
|
-
"& .media-
|
|
531
|
+
"& .media-thumbnail__image, & .media-thumbnail__spinner": {
|
|
540
532
|
transition: "opacity 150ms ease-out"
|
|
541
533
|
},
|
|
542
|
-
"&:not(:has(.media-
|
|
543
|
-
"& .media-
|
|
534
|
+
"&:not(:has(.media-thumbnail__image[data-loading]))": {
|
|
535
|
+
"& .media-thumbnail__spinner": {
|
|
544
536
|
"--media-spinner-animation": "none"
|
|
545
537
|
}
|
|
546
538
|
},
|
|
547
|
-
"&:has(.media-
|
|
548
|
-
"& .media-
|
|
539
|
+
"&:has(.media-thumbnail__image[data-loading])": {
|
|
540
|
+
"& .media-thumbnail__image": {
|
|
549
541
|
opacity: "0"
|
|
550
542
|
},
|
|
551
|
-
"& .media-
|
|
543
|
+
"& .media-thumbnail__spinner": {
|
|
552
544
|
opacity: "1"
|
|
553
545
|
}
|
|
554
546
|
}
|
|
@@ -604,7 +596,7 @@ const t = (e) => ({
|
|
|
604
596
|
outlineOffset: "-4px",
|
|
605
597
|
backgroundColor: "currentColor",
|
|
606
598
|
borderRadius: "calc(infinity * 1px)",
|
|
607
|
-
boxShadow: "0 0 0 1px var(--media-current-shadow-color
|
|
599
|
+
boxShadow: "0 0 0 1px var(--media-current-shadow-color, oklch(0 0 0 / 0.1)), 0 1px 3px 0 oklch(0 0 0 / 0.35), 0 1px 2px -1px oklch(0 0 0 / 0.35)",
|
|
608
600
|
opacity: "0",
|
|
609
601
|
translate: "-50% -50%",
|
|
610
602
|
transitionTimingFunction: "ease-out",
|
|
@@ -619,7 +611,7 @@ const t = (e) => ({
|
|
|
619
611
|
left: "50%"
|
|
620
612
|
},
|
|
621
613
|
"&:hover, &:focus": {
|
|
622
|
-
outlineColor: "oklch(from currentColor l c h / 0.
|
|
614
|
+
outlineColor: "oklch(from currentColor l c h / 0.15)",
|
|
623
615
|
outlineOffset: "0"
|
|
624
616
|
},
|
|
625
617
|
"&::after": {
|
|
@@ -627,7 +619,7 @@ const t = (e) => ({
|
|
|
627
619
|
inset: "-4px",
|
|
628
620
|
content: '""',
|
|
629
621
|
borderRadius: "inherit",
|
|
630
|
-
boxShadow: "0 0 0 2px
|
|
622
|
+
boxShadow: "0 0 0 2px currentColor",
|
|
631
623
|
transitionTimingFunction: "ease-out",
|
|
632
624
|
transitionDuration: "150ms",
|
|
633
625
|
transitionProperty: "opacity, scale"
|
|
@@ -644,6 +636,41 @@ const t = (e) => ({
|
|
|
644
636
|
".media-default-skin .media-slider:hover .media-slider__thumb, .media-default-skin .media-slider__thumb:focus-visible, .media-default-skin .media-slider__thumb--persistent": {
|
|
645
637
|
opacity: "1"
|
|
646
638
|
},
|
|
639
|
+
/* Preview */
|
|
640
|
+
".media-default-skin .media-slider__preview": {
|
|
641
|
+
"& .media-slider__value, &::before": {
|
|
642
|
+
opacity: "0",
|
|
643
|
+
scale: "0.5",
|
|
644
|
+
transitionTimingFunction: "ease-out",
|
|
645
|
+
transitionDuration: "200ms",
|
|
646
|
+
transitionProperty: "opacity, scale"
|
|
647
|
+
},
|
|
648
|
+
"& .media-slider__value": {
|
|
649
|
+
position: "absolute",
|
|
650
|
+
bottom: "2.25rem",
|
|
651
|
+
textShadow: "0 1px 0 var(--media-current-shadow-color)",
|
|
652
|
+
filter: "blur(8px)",
|
|
653
|
+
translate: "-50% 0.5rem",
|
|
654
|
+
transitionProperty: "filter, opacity, scale, translate"
|
|
655
|
+
},
|
|
656
|
+
"&::before": {
|
|
657
|
+
display: "block",
|
|
658
|
+
minWidth: "0.25rem",
|
|
659
|
+
height: "0.25rem",
|
|
660
|
+
content: '""',
|
|
661
|
+
backgroundColor: "currentColor",
|
|
662
|
+
borderRadius: "100%",
|
|
663
|
+
boxShadow: "0 0 0 1px var(--media-current-shadow-color, oklch(0 0 0 / 0.15)), 0 1px 2px 0 oklch(0 0 0 / 0.35)"
|
|
664
|
+
},
|
|
665
|
+
"&[data-pointing] .media-slider__value, &[data-pointing]:not([data-dragging])::before": {
|
|
666
|
+
opacity: "1",
|
|
667
|
+
scale: "1"
|
|
668
|
+
},
|
|
669
|
+
"&[data-pointing] .media-slider__value": {
|
|
670
|
+
filter: "blur(0)",
|
|
671
|
+
translate: "-50% 0"
|
|
672
|
+
}
|
|
673
|
+
},
|
|
647
674
|
/* Shared track fills */
|
|
648
675
|
".media-default-skin .media-slider__buffer, .media-default-skin .media-slider__fill": {
|
|
649
676
|
position: "absolute",
|
|
@@ -700,33 +727,42 @@ const t = (e) => ({
|
|
|
700
727
|
* Popups & Tooltips
|
|
701
728
|
* ==========================================================================
|
|
702
729
|
*/
|
|
730
|
+
".media-default-skin ": {
|
|
731
|
+
"--media-popup-transition": "opacity var(--media-popup-transition-timing-function) var(--media-popup-transition-duration), filter var(--media-popup-transition-timing-function) var(--media-popup-transition-duration), transform var(--media-popup-transition-timing-function) var(--media-popup-transition-duration), scale var(--media-popup-transition-timing-function) var(--media-popup-transition-duration)"
|
|
732
|
+
},
|
|
703
733
|
".media-default-skin .media-popover, .media-default-skin .media-tooltip": {
|
|
734
|
+
"--popup-translate-distance": "0.5rem",
|
|
704
735
|
margin: "0",
|
|
705
736
|
overflow: "visible",
|
|
706
737
|
color: "inherit",
|
|
707
738
|
border: "0",
|
|
708
|
-
|
|
709
|
-
transitionTimingFunction: "var(--media-popup-transition-timing-function)",
|
|
710
|
-
transitionDuration: "var(--media-popup-transition-duration)",
|
|
711
|
-
transitionProperty: "scale, opacity, filter",
|
|
739
|
+
transition: "var(--media-popup-transition)",
|
|
712
740
|
"&[data-starting-style], &[data-ending-style]": {
|
|
713
741
|
opacity: "0",
|
|
714
|
-
filter: "blur(
|
|
715
|
-
|
|
742
|
+
filter: "blur(4px)",
|
|
743
|
+
/* We have to use transform here for translate as the translate property is used for positioning by core. */
|
|
744
|
+
transform: "translate(var(--popup-translate-x-distance, 0), var(--popup-translate-y-distance, 0))",
|
|
745
|
+
scale: "0.95"
|
|
716
746
|
},
|
|
717
|
-
"&[data-
|
|
718
|
-
|
|
747
|
+
"&[data-ending-style]": {
|
|
748
|
+
transform: "none",
|
|
749
|
+
/* Speed up the exit transition. */
|
|
750
|
+
transitionDuration: "max(0ms, calc(var(--media-popup-transition-duration) - 50ms))"
|
|
719
751
|
},
|
|
720
752
|
'&[data-side="top"]': {
|
|
753
|
+
"--popup-translate-y-distance": "var(--popup-translate-distance)",
|
|
721
754
|
transformOrigin: "bottom"
|
|
722
755
|
},
|
|
723
756
|
'&[data-side="bottom"]': {
|
|
757
|
+
"--popup-translate-y-distance": "calc(var(--popup-translate-distance) * -1)",
|
|
724
758
|
transformOrigin: "top"
|
|
725
759
|
},
|
|
726
760
|
'&[data-side="left"]': {
|
|
761
|
+
"--popup-translate-x-distance": "var(--popup-translate-distance)",
|
|
727
762
|
transformOrigin: "right"
|
|
728
763
|
},
|
|
729
764
|
'&[data-side="right"]': {
|
|
765
|
+
"--popup-translate-x-distance": "calc(var(--popup-translate-distance) * -1)",
|
|
730
766
|
transformOrigin: "left"
|
|
731
767
|
},
|
|
732
768
|
/* Safe area between trigger and popup */
|
|
@@ -776,11 +812,218 @@ const t = (e) => ({
|
|
|
776
812
|
fontSize: "0.75rem",
|
|
777
813
|
whiteSpace: "nowrap",
|
|
778
814
|
borderRadius: "calc(infinity * 1px)",
|
|
815
|
+
/* `display: flex` must not apply while closed — it overrides UA `[popover]` hiding. */
|
|
816
|
+
"&[data-open]": {
|
|
817
|
+
display: "flex",
|
|
818
|
+
columnGap: "0.25rem",
|
|
819
|
+
alignItems: "center"
|
|
820
|
+
},
|
|
779
821
|
'&[data-side="top"]::before, &[data-side="bottom"]::before': {
|
|
780
822
|
height: "var(--media-tooltip-side-offset)"
|
|
781
823
|
},
|
|
782
824
|
'&[data-side="left"]::before, &[data-side="right"]::before': {
|
|
783
825
|
width: "var(--media-tooltip-side-offset)"
|
|
826
|
+
},
|
|
827
|
+
"& .media-tooltip__kbd": {
|
|
828
|
+
minWidth: "1.5em",
|
|
829
|
+
padding: "0.1em",
|
|
830
|
+
fontFamily: "inherit",
|
|
831
|
+
fontSize: "90%",
|
|
832
|
+
fontWeight: "600",
|
|
833
|
+
lineHeight: "1.25",
|
|
834
|
+
textAlign: "center",
|
|
835
|
+
backgroundColor: "oklch(from currentColor l c h / 0.3)",
|
|
836
|
+
borderRadius: "0.25rem"
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
/*
|
|
840
|
+
* ==========================================================================
|
|
841
|
+
* Menus
|
|
842
|
+
* Note: Menus use `.media-popover` styles for positioning and transitions.
|
|
843
|
+
* ==========================================================================
|
|
844
|
+
*/
|
|
845
|
+
".media-default-skin .media-menu": {
|
|
846
|
+
"--menu-transition-duration": "250ms",
|
|
847
|
+
"--menu-max-height": "14rem",
|
|
848
|
+
"--menu-padding": "0.25rem",
|
|
849
|
+
"--menu-border-radius": "0.75rem",
|
|
850
|
+
"--menu-item-border-radius": "calc(var(--menu-border-radius) - var(--menu-padding))",
|
|
851
|
+
boxSizing: "border-box",
|
|
852
|
+
maxWidth: "var(--media-popover-available-width, none)",
|
|
853
|
+
maxHeight: "min(var(--media-popover-available-height, var(--menu-max-height)), var(--menu-max-height))",
|
|
854
|
+
padding: "var(--menu-padding)",
|
|
855
|
+
overflow: "auto",
|
|
856
|
+
overscrollBehavior: "none",
|
|
857
|
+
borderRadius: "var(--menu-border-radius)",
|
|
858
|
+
"@media (prefers-reduced-motion: reduce)": {
|
|
859
|
+
"--menu-transition-duration": "0ms"
|
|
860
|
+
},
|
|
861
|
+
"& .media-menu__panel": {
|
|
862
|
+
position: "absolute",
|
|
863
|
+
inset: "0",
|
|
864
|
+
padding: "var(--menu-padding)",
|
|
865
|
+
overflow: "auto",
|
|
866
|
+
overscrollBehavior: "none",
|
|
867
|
+
outline: "none",
|
|
868
|
+
translate: "0 0",
|
|
869
|
+
transitionTimingFunction: "ease-in-out",
|
|
870
|
+
transitionDuration: "var(--menu-transition-duration)",
|
|
871
|
+
transitionProperty: "translate, filter",
|
|
872
|
+
willChange: "translate, filter",
|
|
873
|
+
"&[data-starting-style], &[data-ending-style]": {
|
|
874
|
+
overflow: "hidden"
|
|
875
|
+
},
|
|
876
|
+
/* Root settings view — slides out when a submenu is active */
|
|
877
|
+
'&[data-menu-root-view][data-menu-view-state="inactive"]': {
|
|
878
|
+
filter: "blur(8px)",
|
|
879
|
+
translate: "-100% 0",
|
|
880
|
+
/* Hide the indicator while transitioning */
|
|
881
|
+
"& .media-menu__group::before": {
|
|
882
|
+
display: "none"
|
|
883
|
+
}
|
|
884
|
+
},
|
|
885
|
+
/* Submenu panels — slide in/out alongside the root view */
|
|
886
|
+
"&[data-submenu]": {
|
|
887
|
+
zIndex: "10",
|
|
888
|
+
"&:not([data-open], [data-ending-style])": {
|
|
889
|
+
translate: "-100% 0",
|
|
890
|
+
transitionProperty: "none"
|
|
891
|
+
},
|
|
892
|
+
"&[data-starting-style], &[data-ending-style]": {
|
|
893
|
+
pointerEvents: "none",
|
|
894
|
+
filter: "blur(8px)"
|
|
895
|
+
},
|
|
896
|
+
'&[data-starting-style][data-direction="forward"], &[data-ending-style][data-direction="back"]': {
|
|
897
|
+
translate: "100% 0"
|
|
898
|
+
},
|
|
899
|
+
'&[data-ending-style][data-direction="forward"], &[data-starting-style][data-direction="back"]': {
|
|
900
|
+
translate: "-100% 0"
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
},
|
|
904
|
+
"& .media-menu__separator": {
|
|
905
|
+
marginBlock: "0.25rem",
|
|
906
|
+
borderBottom: "1px solid oklch(0 0 0 / 0.1)",
|
|
907
|
+
boxShadow: "0 1px 0 0 oklch(1 0 0 / 0.075)"
|
|
908
|
+
},
|
|
909
|
+
"& .media-menu__group": {
|
|
910
|
+
display: "flex",
|
|
911
|
+
flexDirection: "column",
|
|
912
|
+
gap: "0.125rem",
|
|
913
|
+
"@supports (top: anchor(top))": {
|
|
914
|
+
"&::before": {
|
|
915
|
+
position: "absolute",
|
|
916
|
+
positionAnchor: "--media-menu-item-highlight-anchor",
|
|
917
|
+
inset: "anchor(inside)",
|
|
918
|
+
pointerEvents: "none",
|
|
919
|
+
content: '""',
|
|
920
|
+
backgroundColor: "oklch(from currentColor l c h / 0.1)",
|
|
921
|
+
borderRadius: "var(--menu-item-border-radius)",
|
|
922
|
+
transition: "inset ease-in-out 100ms"
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
},
|
|
926
|
+
"& .media-menu__item, & .media-menu__back": {
|
|
927
|
+
display: "flex",
|
|
928
|
+
gap: "0.375rem",
|
|
929
|
+
alignItems: "center",
|
|
930
|
+
padding: "0.375rem 0.5rem",
|
|
931
|
+
textAlign: "left",
|
|
932
|
+
textShadow: "0 1px 0 var(--media-current-shadow-color)",
|
|
933
|
+
cursor: "pointer",
|
|
934
|
+
userSelect: "none",
|
|
935
|
+
outline: "2px solid transparent",
|
|
936
|
+
outlineOffset: "-2px",
|
|
937
|
+
borderRadius: "var(--menu-item-border-radius)",
|
|
938
|
+
transition: "background-color, color",
|
|
939
|
+
transitionTimingFunction: "ease-out",
|
|
940
|
+
transitionDuration: "100ms",
|
|
941
|
+
"&:focus-visible": {
|
|
942
|
+
outlineColor: "currentColor",
|
|
943
|
+
outlineOffset: "2px"
|
|
944
|
+
},
|
|
945
|
+
"&:hover, &[data-highlighted]": {
|
|
946
|
+
backgroundColor: "oklch(from currentColor l c h / 0.1)",
|
|
947
|
+
"@supports (top: anchor(top))": {
|
|
948
|
+
anchorName: "--media-menu-item-highlight-anchor",
|
|
949
|
+
backgroundColor: "transparent"
|
|
950
|
+
}
|
|
951
|
+
},
|
|
952
|
+
"& .media-icon": {
|
|
953
|
+
flexShrink: "0",
|
|
954
|
+
color: "oklch(from currentColor l c h / 0.65)",
|
|
955
|
+
filter: "drop-shadow(0 1px 0 var(--media-current-shadow-color))"
|
|
956
|
+
}
|
|
957
|
+
},
|
|
958
|
+
"& .media-menu__indicator": {
|
|
959
|
+
flexShrink: "0",
|
|
960
|
+
marginRight: "-0.25rem",
|
|
961
|
+
marginLeft: "auto",
|
|
962
|
+
opacity: "0",
|
|
963
|
+
"& .media-icon": {
|
|
964
|
+
filter: "drop-shadow(0 1px 0 var(--media-current-shadow-color))"
|
|
965
|
+
}
|
|
966
|
+
},
|
|
967
|
+
"& .media-menu__item": {
|
|
968
|
+
justifyContent: "space-between",
|
|
969
|
+
fontVariantNumeric: "tabular-nums",
|
|
970
|
+
color: "inherit",
|
|
971
|
+
'&[aria-disabled="true"]': {
|
|
972
|
+
pointerEvents: "none",
|
|
973
|
+
cursor: "not-allowed",
|
|
974
|
+
opacity: "0.5"
|
|
975
|
+
},
|
|
976
|
+
'&[aria-checked="true"] .media-menu__indicator': {
|
|
977
|
+
opacity: "1"
|
|
978
|
+
},
|
|
979
|
+
'&[data-availability="unavailable"], &[data-availability="unsupported"]': {
|
|
980
|
+
display: "none"
|
|
981
|
+
}
|
|
982
|
+
},
|
|
983
|
+
"& .media-menu__tier": {
|
|
984
|
+
paddingTop: "1px",
|
|
985
|
+
paddingLeft: "0.125rem",
|
|
986
|
+
fontSize: "0.5625rem",
|
|
987
|
+
fontWeight: "600",
|
|
988
|
+
lineHeight: "1",
|
|
989
|
+
color: "oklch(from currentColor l c h / 0.7)"
|
|
990
|
+
},
|
|
991
|
+
"& .media-menu__back": {
|
|
992
|
+
width: "100%",
|
|
993
|
+
marginBottom: "0.125rem"
|
|
994
|
+
},
|
|
995
|
+
"& .media-menu__hint": {
|
|
996
|
+
display: "inline-flex",
|
|
997
|
+
gap: "0.25rem",
|
|
998
|
+
alignItems: "center",
|
|
999
|
+
minWidth: "0",
|
|
1000
|
+
paddingLeft: "0.5rem",
|
|
1001
|
+
marginLeft: "auto",
|
|
1002
|
+
fontSize: "0.75rem",
|
|
1003
|
+
color: "oklch(from currentColor l c h / 0.65)"
|
|
1004
|
+
},
|
|
1005
|
+
"& .media-menu__hint-label": {
|
|
1006
|
+
maxWidth: "6rem",
|
|
1007
|
+
overflow: "hidden",
|
|
1008
|
+
textOverflow: "ellipsis",
|
|
1009
|
+
whiteSpace: "nowrap"
|
|
1010
|
+
},
|
|
1011
|
+
"& .media-menu__chevron": {
|
|
1012
|
+
width: "0.875rem",
|
|
1013
|
+
height: "0.875rem"
|
|
1014
|
+
},
|
|
1015
|
+
/* Settings menu */
|
|
1016
|
+
"&.media-menu--settings": {
|
|
1017
|
+
width: "var(--media-menu-width)",
|
|
1018
|
+
minWidth: "12rem",
|
|
1019
|
+
height: "var(--media-menu-height)",
|
|
1020
|
+
overflow: "hidden",
|
|
1021
|
+
/* Add height and width transitions. */
|
|
1022
|
+
transition: "var(--media-popup-transition), height var(--media-popup-transition-timing-function) var(--menu-transition-duration), width var(--media-popup-transition-timing-function) var(--menu-transition-duration)",
|
|
1023
|
+
/* Don't transition width and height on open/close. */
|
|
1024
|
+
"&[data-starting-style], &[data-ending-style]": {
|
|
1025
|
+
transition: "var(--media-popup-transition)"
|
|
1026
|
+
}
|
|
784
1027
|
}
|
|
785
1028
|
},
|
|
786
1029
|
/*
|
|
@@ -788,9 +1031,7 @@ const t = (e) => ({
|
|
|
788
1031
|
* Native Caption Track
|
|
789
1032
|
* ==========================================================================
|
|
790
1033
|
*/
|
|
791
|
-
|
|
792
|
-
// trailing space so it stays a distinct JS object key (serializes to the same CSS).
|
|
793
|
-
".media-default-skin ": {
|
|
1034
|
+
".media-default-skin ": {
|
|
794
1035
|
"--media-caption-track-duration": "var(--media-controls-transition-duration)",
|
|
795
1036
|
"--media-caption-track-delay": "25ms",
|
|
796
1037
|
"--media-caption-track-y": "-0.5rem",
|
|
@@ -897,96 +1138,97 @@ const t = (e) => ({
|
|
|
897
1138
|
backgroundImage: "linear-gradient( to right, currentColor 0%, currentColor var(--media-progress-fill), transparent var(--media-progress-fill), transparent 100% )",
|
|
898
1139
|
borderRadius: "inherit",
|
|
899
1140
|
transition: "--media-progress-fill 200ms linear"
|
|
1141
|
+
},
|
|
1142
|
+
'&[data-level="high"] .media-icon--volume-high, &[data-level="low"] .media-icon--volume-low, &[data-level="off"] .media-icon--volume-off': {
|
|
1143
|
+
display: "block"
|
|
1144
|
+
},
|
|
1145
|
+
"@media (prefers-reduced-motion: no-preference)": {
|
|
1146
|
+
"&[data-min], &[data-max]": {
|
|
1147
|
+
animation: "media-shake 300ms ease-in-out"
|
|
1148
|
+
}
|
|
900
1149
|
}
|
|
901
1150
|
},
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
'.media-default-skin .media-input-feedback-island--status[data-status="captions-on"] .media-icon--captions-on, .media-default-skin .media-input-feedback-island--status[data-status="captions-off"] .media-icon--captions-off, .media-default-skin .media-input-feedback-island--status[data-status="fullscreen"] .media-icon--fullscreen-enter, .media-default-skin .media-input-feedback-island--status[data-status="exit-fullscreen"] .media-icon--fullscreen-exit, .media-default-skin .media-input-feedback-island--status[data-status="pip"] .media-icon--pip-enter, .media-default-skin .media-input-feedback-island--status[data-status="exit-pip"] .media-icon--pip-exit': {
|
|
906
|
-
display: "block"
|
|
907
|
-
},
|
|
908
|
-
/* --- Boundary shake ------------------------------------------------------- */
|
|
909
|
-
// At-rule repeated by the vendor stylesheet at this level — the key carries a
|
|
910
|
-
// trailing space so it stays a distinct JS object key (serializes to the same CSS).
|
|
911
|
-
"@media (prefers-reduced-motion: no-preference) ": {
|
|
912
|
-
".media-default-skin .media-input-feedback-island--volume[data-min], .media-default-skin .media-input-feedback-island--volume[data-max]": {
|
|
913
|
-
animation: "media-shake 300ms ease-in-out"
|
|
1151
|
+
".media-default-skin .media-input-feedback-island--status": {
|
|
1152
|
+
'&[data-status="captions-on"] .media-icon--captions-on, &[data-status="captions-off"] .media-icon--captions-off, &[data-status="fullscreen"] .media-icon--fullscreen-enter, &[data-status="exit-fullscreen"] .media-icon--fullscreen-exit, &[data-status="pip"] .media-icon--pip-enter, &[data-status="exit-pip"] .media-icon--pip-exit': {
|
|
1153
|
+
display: "block"
|
|
914
1154
|
}
|
|
915
1155
|
},
|
|
916
1156
|
/* --- Bubble ---------------------------------------------------------------- */
|
|
917
1157
|
".media-default-skin .media-input-feedback-bubble": {
|
|
918
|
-
display: "
|
|
919
|
-
flexDirection: "column",
|
|
1158
|
+
display: "grid",
|
|
920
1159
|
gridRow: "1",
|
|
921
1160
|
gridColumn: "2",
|
|
922
|
-
|
|
923
|
-
alignItems: "center",
|
|
924
|
-
justifyContent: "center",
|
|
1161
|
+
placeContent: "center",
|
|
925
1162
|
padding: "1rem",
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
1163
|
+
textAlign: "center",
|
|
1164
|
+
/* Central bubble (play, pause) */
|
|
1165
|
+
"&:not([data-direction])": {
|
|
1166
|
+
background: "oklch(0 0 0 / 0.35)",
|
|
1167
|
+
borderRadius: "100%",
|
|
1168
|
+
backdropFilter: "blur(8px)",
|
|
1169
|
+
transitionTimingFunction: "ease-out",
|
|
1170
|
+
transitionDuration: "200ms",
|
|
1171
|
+
transitionProperty: "opacity, scale",
|
|
1172
|
+
"&[data-starting-style], &[data-ending-style]": {
|
|
1173
|
+
opacity: "0",
|
|
1174
|
+
scale: "0.85"
|
|
1175
|
+
},
|
|
1176
|
+
"&[data-ending-style]": {
|
|
1177
|
+
transitionTimingFunction: "ease-in",
|
|
1178
|
+
transitionDuration: "100ms"
|
|
1179
|
+
},
|
|
1180
|
+
"@media (prefers-reduced-motion: reduce)": {
|
|
1181
|
+
transitionDuration: "50ms",
|
|
1182
|
+
transitionProperty: "opacity"
|
|
1183
|
+
}
|
|
929
1184
|
},
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
/* Direction placement — seek bubbles move to the side implied by their direction. */
|
|
937
|
-
'.media-default-skin .media-input-feedback-bubble[data-direction="backward"]': {
|
|
938
|
-
gridColumn: "1",
|
|
939
|
-
justifySelf: "left"
|
|
940
|
-
},
|
|
941
|
-
".media-default-skin .media-input-feedback-bubble:not([data-direction])": {
|
|
942
|
-
gridColumn: "2",
|
|
943
|
-
transitionTimingFunction: "ease-out, linear(0, 0.12 1.5%, 1.35 9.7%, 2.2 13.9%, 3 19.9%, 2.7 21.8%, 0.62 37.5%, 0.96 50.9%, 1)",
|
|
944
|
-
transitionDuration: "600ms",
|
|
945
|
-
transitionProperty: "opacity, scale",
|
|
946
|
-
"@media (prefers-reduced-motion: reduce)": {
|
|
947
|
-
transition: "opacity 100ms ease-out"
|
|
1185
|
+
/* Directional bubbles (seek) */
|
|
1186
|
+
"&[data-direction]": {
|
|
1187
|
+
gap: "0.25rem",
|
|
1188
|
+
"@container media-root (width > 24rem)": {
|
|
1189
|
+
padding: "1.5rem"
|
|
1190
|
+
}
|
|
948
1191
|
},
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
transitionTimingFunction: "ease-in",
|
|
953
|
-
transitionDuration: "200ms"
|
|
954
|
-
}
|
|
955
|
-
},
|
|
956
|
-
'.media-default-skin .media-input-feedback-bubble[data-direction="forward"]': {
|
|
957
|
-
gridColumn: "3",
|
|
958
|
-
justifySelf: "right"
|
|
959
|
-
},
|
|
960
|
-
/* --- Bubble icons ---------------------------------------------------------- */
|
|
961
|
-
".media-default-skin .media-input-feedback-bubble .media-icon": {
|
|
962
|
-
display: "none",
|
|
963
|
-
width: "36px",
|
|
964
|
-
height: "36px"
|
|
965
|
-
},
|
|
966
|
-
/* seek: seek icon, flipped for backward */
|
|
967
|
-
".media-default-skin .media-input-feedback-bubble[data-direction] .media-icon--seek": {
|
|
968
|
-
display: "block"
|
|
969
|
-
},
|
|
970
|
-
'.media-default-skin .media-input-feedback-bubble[data-direction="backward"] .media-icon--seek': {
|
|
971
|
-
transform: "scaleX(-1)"
|
|
972
|
-
},
|
|
973
|
-
// At-rule repeated by the vendor stylesheet at this level (third occurrence) —
|
|
974
|
-
// the key carries TWO trailing spaces so it stays a distinct JS object key
|
|
975
|
-
// (serializes to the same CSS).
|
|
976
|
-
"@media (prefers-reduced-motion: no-preference) ": {
|
|
977
|
-
'.media-default-skin .media-input-feedback-bubble[data-direction="forward"]:not([data-starting-style]) .media-icon--seek': {
|
|
978
|
-
animation: "media-slide-in-forward 300ms ease-in-out"
|
|
1192
|
+
'&[data-direction="backward"]': {
|
|
1193
|
+
gridColumn: "1",
|
|
1194
|
+
justifySelf: "left"
|
|
979
1195
|
},
|
|
980
|
-
'
|
|
981
|
-
|
|
1196
|
+
'&[data-direction="forward"]': {
|
|
1197
|
+
gridColumn: "3",
|
|
1198
|
+
justifySelf: "right"
|
|
982
1199
|
},
|
|
983
|
-
|
|
984
|
-
|
|
1200
|
+
/* Icons */
|
|
1201
|
+
".media-icon": {
|
|
1202
|
+
display: "none",
|
|
1203
|
+
width: "calc(var(--media-icon-size) * 1.5)",
|
|
1204
|
+
height: "calc(var(--media-icon-size) * 1.5)",
|
|
1205
|
+
"&.media-icon--play": {
|
|
1206
|
+
translate: "1px 0"
|
|
1207
|
+
}
|
|
1208
|
+
},
|
|
1209
|
+
'&[data-direction] .media-icon--seek, &[data-status="pause"] .media-icon--pause, &[data-status="play"] .media-icon--play': {
|
|
1210
|
+
display: "block"
|
|
1211
|
+
},
|
|
1212
|
+
'&[data-direction="backward"] .media-icon--seek': {
|
|
1213
|
+
scale: "-1 1"
|
|
1214
|
+
},
|
|
1215
|
+
"@media (prefers-reduced-motion: no-preference)": {
|
|
1216
|
+
".media-icon--seek": {
|
|
1217
|
+
transitionTimingFunction: "ease-in-out",
|
|
1218
|
+
transitionDuration: "200ms",
|
|
1219
|
+
transitionProperty: "translate, opacity"
|
|
1220
|
+
},
|
|
1221
|
+
"&[data-starting-style] .media-icon--seek, &[data-ending-style] .media-icon--seek": {
|
|
1222
|
+
opacity: "0"
|
|
1223
|
+
},
|
|
1224
|
+
'&[data-direction="forward"][data-starting-style] .media-icon--seek': {
|
|
1225
|
+
translate: "-60% 0"
|
|
1226
|
+
},
|
|
1227
|
+
'&[data-direction="backward"][data-starting-style] .media-icon--seek': {
|
|
1228
|
+
translate: "60% 0"
|
|
1229
|
+
}
|
|
985
1230
|
}
|
|
986
1231
|
},
|
|
987
|
-
'.media-default-skin .media-input-feedback-bubble[data-status="pause"] .media-icon--pause, .media-default-skin .media-input-feedback-bubble[data-status="play"] .media-icon--play': {
|
|
988
|
-
display: "block"
|
|
989
|
-
},
|
|
990
1232
|
/*
|
|
991
1233
|
* ==========================================================================
|
|
992
1234
|
* Icon State Visibility for Video Skins
|
|
@@ -997,16 +1239,27 @@ const t = (e) => ({
|
|
|
997
1239
|
* ==========================================================================
|
|
998
1240
|
*/
|
|
999
1241
|
/* --- All icons hidden by default --- */
|
|
1000
|
-
".media-button--play .media-icon--restart, .media-button--play .media-icon--play, .media-button--play .media-icon--pause, .media-button--mute .media-icon--volume-off, .media-button--mute .media-icon--volume-low, .media-button--mute .media-icon--volume-high, .media-button--fullscreen .media-icon--fullscreen-enter, .media-button--fullscreen .media-icon--fullscreen-exit, .media-button--pip .media-icon--pip-enter, .media-button--pip .media-icon--pip-exit, .media-button--cast .media-icon--cast-enter, .media-button--cast .media-icon--cast-exit, .media-button--captions .media-icon--captions-off, .media-button--captions .media-icon--captions-on": {
|
|
1242
|
+
".media-button--play .media-icon--restart, .media-button--play .media-icon--play, .media-button--play .media-icon--pause, .media-button--mute .media-icon--volume-off, .media-button--mute .media-icon--volume-low, .media-button--mute .media-icon--volume-high, .media-button--fullscreen .media-icon--fullscreen-enter, .media-button--fullscreen .media-icon--fullscreen-exit, .media-button--pip .media-icon--pip-enter, .media-button--pip .media-icon--pip-exit, .media-button--cast .media-icon--cast-enter, .media-button--cast .media-icon--cast-exit, .media-button--airplay .media-icon--airplay-enter, .media-button--airplay .media-icon--airplay-exit, .media-button--captions .media-icon--captions-off, .media-button--captions .media-icon--captions-on": {
|
|
1001
1243
|
display: "none",
|
|
1002
1244
|
opacity: "0"
|
|
1003
1245
|
},
|
|
1004
1246
|
/* --- Active icon per state --- */
|
|
1005
1247
|
/* Play: ended → restart */
|
|
1006
|
-
'.media-button--play[data-ended] .media-icon--restart, .media-button--play:not([data-ended])[data-paused] .media-icon--play, .media-button--play:not([data-paused]):not([data-ended]) .media-icon--pause, .media-button--mute[data-muted] .media-icon--volume-off, .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low, .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high, .media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter, .media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit, .media-button--pip:not([data-pip]) .media-icon--pip-enter, .media-button--pip[data-pip] .media-icon--pip-exit, .media-button--cast:not([data-cast-state="connected"]) .media-icon--cast-enter, .media-button--cast[data-cast-state="connected"] .media-icon--cast-exit, .media-button--captions:not([data-active]) .media-icon--captions-off, .media-button--captions[data-active] .media-icon--captions-on': {
|
|
1248
|
+
'.media-button--play[data-ended] .media-icon--restart, .media-button--play:not([data-ended])[data-paused] .media-icon--play, .media-button--play:not([data-ended]):not([data-started]) .media-icon--play, .media-button--play[data-started]:not([data-paused]):not([data-ended]) .media-icon--pause, .media-button--mute[data-muted] .media-icon--volume-off, .media-button--mute:not([data-muted])[data-volume-level="low"] .media-icon--volume-low, .media-button--mute:not([data-muted]):not([data-volume-level="low"]) .media-icon--volume-high, .media-button--fullscreen:not([data-fullscreen]) .media-icon--fullscreen-enter, .media-button--fullscreen[data-fullscreen] .media-icon--fullscreen-exit, .media-button--pip:not([data-pip]) .media-icon--pip-enter, .media-button--pip[data-pip] .media-icon--pip-exit, .media-button--cast:not([data-cast-state="connected"]) .media-icon--cast-enter, .media-button--cast[data-cast-state="connected"] .media-icon--cast-exit, .media-button--airplay:not([data-airplay-state="connected"]) .media-icon--airplay-enter, .media-button--airplay[data-airplay-state="connected"] .media-icon--airplay-exit, .media-button--captions:not([data-active]) .media-icon--captions-off, .media-button--captions[data-active] .media-icon--captions-on': {
|
|
1007
1249
|
display: "block",
|
|
1008
1250
|
opacity: "1"
|
|
1009
1251
|
},
|
|
1252
|
+
/* --- Pause keyframe animations on inactive icons --- */
|
|
1253
|
+
/*
|
|
1254
|
+
* The airplay-exit SVG defines its keyframes against CSS variables (mirroring
|
|
1255
|
+
* the spinner pattern). When the AirPlay session isn't active the SVG is
|
|
1256
|
+
* still in the DOM — just `display: none` — so its animations would keep
|
|
1257
|
+
* running. Set the variables to `none` to short-circuit the keyframes.
|
|
1258
|
+
*/
|
|
1259
|
+
'.media-button--airplay:not([data-airplay-state="connected"])': {
|
|
1260
|
+
"--media-icon--airplay__fill-animation": "none",
|
|
1261
|
+
"--media-icon--airplay__triangle-animation": "none"
|
|
1262
|
+
},
|
|
1010
1263
|
/* -------------------------------------------------------------------------- */
|
|
1011
1264
|
/* Global @keyframes for all video skins (CSS & Tailwind) */
|
|
1012
1265
|
/* -------------------------------------------------------------------------- */
|
|
@@ -1027,24 +1280,6 @@ const t = (e) => ({
|
|
|
1027
1280
|
translate: "1px 0"
|
|
1028
1281
|
}
|
|
1029
1282
|
},
|
|
1030
|
-
"@keyframes media-slide-in-forward": {
|
|
1031
|
-
from: {
|
|
1032
|
-
translate: "-60% 0",
|
|
1033
|
-
opacity: "0"
|
|
1034
|
-
}
|
|
1035
|
-
},
|
|
1036
|
-
"@keyframes media-slide-in-backward": {
|
|
1037
|
-
from: {
|
|
1038
|
-
translate: "60% 0",
|
|
1039
|
-
opacity: "0"
|
|
1040
|
-
}
|
|
1041
|
-
},
|
|
1042
|
-
"@keyframes media-pop-in": {
|
|
1043
|
-
from: {
|
|
1044
|
-
scale: "0.8",
|
|
1045
|
-
opacity: "0"
|
|
1046
|
-
}
|
|
1047
|
-
},
|
|
1048
1283
|
/* -------------------------------------------------------------------------- */
|
|
1049
1284
|
/* Global @properties for all video skins (CSS & Tailwind) */
|
|
1050
1285
|
/* -------------------------------------------------------------------------- */
|
|
@@ -1078,6 +1313,7 @@ const t = (e) => ({
|
|
|
1078
1313
|
"--media-tooltip-boundary-offset": "0.5rem",
|
|
1079
1314
|
"--media-popover-side-offset": "0.5rem",
|
|
1080
1315
|
"--media-popover-boundary-offset": "0.5rem",
|
|
1316
|
+
overflow: "clip",
|
|
1081
1317
|
background: "oklch(0 0 0)",
|
|
1082
1318
|
"@media (prefers-reduced-motion: reduce)": {
|
|
1083
1319
|
"--media-error-dialog-transition-duration": "50ms",
|
|
@@ -1174,8 +1410,6 @@ const t = (e) => ({
|
|
|
1174
1410
|
bottom: "0.5rem",
|
|
1175
1411
|
zIndex: "10",
|
|
1176
1412
|
flexWrap: "wrap",
|
|
1177
|
-
maxWidth: "56rem",
|
|
1178
|
-
marginInline: "auto",
|
|
1179
1413
|
color: "var(--media-color-primary, oklch(1 0 0))",
|
|
1180
1414
|
transformOrigin: "bottom",
|
|
1181
1415
|
transitionTimingFunction: "var(--media-controls-transition-timing-function)",
|
|
@@ -1204,9 +1438,6 @@ const t = (e) => ({
|
|
|
1204
1438
|
order: "-1",
|
|
1205
1439
|
paddingInline: "0.625rem"
|
|
1206
1440
|
},
|
|
1207
|
-
// Vendor uses `:first-child` here; swapped to the DOM-equivalent
|
|
1208
|
-
// `:first-of-type` (the control bar children are exactly three `div`s) to
|
|
1209
|
-
// avoid Emotion's dev-mode "unsafe for SSR" console.error on every mount.
|
|
1210
1441
|
"& .media-button-group:first-of-type": {
|
|
1211
1442
|
flex: "1",
|
|
1212
1443
|
textAlign: "left"
|
|
@@ -1225,8 +1456,6 @@ const t = (e) => ({
|
|
|
1225
1456
|
flex: "1",
|
|
1226
1457
|
order: "unset"
|
|
1227
1458
|
},
|
|
1228
|
-
// `:first-of-type` instead of the vendor's `:first-child` — see the note
|
|
1229
|
-
// on the sibling rule above (Emotion dev-mode SSR warning).
|
|
1230
1459
|
"& .media-button-group:first-of-type, & .media-button-group:last-child": {
|
|
1231
1460
|
flex: "0 0 auto"
|
|
1232
1461
|
}
|
|
@@ -1248,18 +1477,18 @@ const t = (e) => ({
|
|
|
1248
1477
|
backgroundColor: "oklch(1 0 0 / 0.2)",
|
|
1249
1478
|
boxShadow: "0 0 0 1px oklch(0 0 0 / 0.05)"
|
|
1250
1479
|
},
|
|
1251
|
-
".media-default-skin--video .media-
|
|
1252
|
-
"--media-
|
|
1253
|
-
"--media-
|
|
1480
|
+
".media-default-skin--video .media-slider__thumbnail": {
|
|
1481
|
+
"--media-slider-thumbnail-max-width": "11rem",
|
|
1482
|
+
"--media-slider-thumbnail-max-height": "8rem",
|
|
1483
|
+
"--media-slider-thumbnail-padding": "-1.125rem",
|
|
1254
1484
|
/*
|
|
1255
|
-
* *
|
|
1256
1485
|
* Inset is the difference between the container width and the slider (100%) width.
|
|
1257
1486
|
* Divided by 2 as we render the time on both sides.
|
|
1258
1487
|
*/
|
|
1259
|
-
"--media-
|
|
1488
|
+
"--media-slider-thumbnail-inset": "calc((100cqi - 100%) / 2)",
|
|
1260
1489
|
position: "absolute",
|
|
1261
1490
|
bottom: "calc(100% + 1.2rem)",
|
|
1262
|
-
left: "clamp( calc(var(--media-
|
|
1491
|
+
left: "clamp( calc( var(--media-slider-thumbnail-max-width) / 2 + var(--media-slider-thumbnail-padding) - var(--media-slider-thumbnail-inset) ), var(--media-slider-pointer), calc( 100% - var(--media-slider-thumbnail-max-width) / 2 - var(--media-slider-thumbnail-padding) + var(--media-slider-thumbnail-inset) ) )",
|
|
1263
1492
|
pointerEvents: "none",
|
|
1264
1493
|
opacity: "0",
|
|
1265
1494
|
filter: "blur(8px)",
|
|
@@ -1269,22 +1498,23 @@ const t = (e) => ({
|
|
|
1269
1498
|
transitionTimingFunction: "ease-out",
|
|
1270
1499
|
transitionDuration: "150ms",
|
|
1271
1500
|
transitionProperty: "scale, opacity, filter",
|
|
1272
|
-
"& .media-
|
|
1273
|
-
maxWidth: "var(--media-
|
|
1274
|
-
|
|
1275
|
-
"&:has(.media-preview__thumbnail[data-loading])": {
|
|
1276
|
-
maxHeight: "6rem"
|
|
1501
|
+
"& .media-thumbnail__image": {
|
|
1502
|
+
maxWidth: "var(--media-slider-thumbnail-max-width)",
|
|
1503
|
+
maxHeight: "var(--media-slider-thumbnail-max-height)"
|
|
1277
1504
|
}
|
|
1278
1505
|
},
|
|
1279
|
-
'.media-default-skin--video .media-slider[data-pointing] .media-
|
|
1506
|
+
'.media-default-skin--video .media-slider[data-pointing] .media-slider__thumbnail:has([role="img"]:not([data-hidden]))': {
|
|
1280
1507
|
opacity: "1",
|
|
1281
1508
|
filter: "blur(0)",
|
|
1282
1509
|
scale: "1"
|
|
1510
|
+
},
|
|
1511
|
+
'.media-default-skin--video .media-slider__thumbnail:has([role="img"]:not([data-hidden])) + .media-slider__preview .media-slider__value': {
|
|
1512
|
+
display: "none"
|
|
1283
1513
|
}
|
|
1284
1514
|
}), a = /* @__PURE__ */ new WeakMap(), o = (e) => {
|
|
1285
1515
|
let i = a.get(e);
|
|
1286
1516
|
return i || (i = t(e), a.set(e, i)), i;
|
|
1287
1517
|
};
|
|
1288
1518
|
export {
|
|
1289
|
-
o as
|
|
1519
|
+
o as videojsDefaultSkinAllStyles
|
|
1290
1520
|
};
|