@m4l/gclick 0.27.0-beta-feature-795-m4l-react-native-ui-indicator-flag.2 → 0.27.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/@types/types.d.ts +0 -8
- package/components/CameraStream/CameraStream.styles.d.ts +12 -0
- package/components/CameraStream/CameraStream.styles.d.ts.map +1 -1
- package/components/CameraStream/CameraStream.styles.js +121 -23
- package/components/CameraStream/constants.d.ts +36 -0
- package/components/CameraStream/constants.d.ts.map +1 -1
- package/components/CameraStream/constants.js +7 -1
- package/components/CameraStream/defaults/DefaultLabel.d.ts +3 -0
- package/components/CameraStream/defaults/DefaultLabel.d.ts.map +1 -1
- package/components/CameraStream/defaults/DefaultLabel.js +3 -2
- package/components/CameraStream/defaults/DefaultReplayBadge.d.ts +6 -1
- package/components/CameraStream/defaults/DefaultReplayBadge.d.ts.map +1 -1
- package/components/CameraStream/defaults/DefaultReplayBadge.js +13 -9
- package/components/CameraStream/index.d.ts +2 -2
- package/components/CameraStream/index.d.ts.map +1 -1
- package/components/CameraStream/slots/CameraStreamEnum.d.ts +2 -0
- package/components/CameraStream/slots/CameraStreamEnum.d.ts.map +1 -1
- package/components/CameraStream/slots/CameraStreamEnum.js +2 -2
- package/components/CameraStream/slots/CameraStreamSlots.d.ts +6 -0
- package/components/CameraStream/slots/CameraStreamSlots.d.ts.map +1 -1
- package/components/CameraStream/slots/CameraStreamSlots.js +58 -50
- package/components/CameraStream/types.d.ts +8 -0
- package/components/CameraStream/types.d.ts.map +1 -1
- package/components/VideoPlayer/VideoPlayer.d.ts +12 -4
- package/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
- package/components/VideoPlayer/VideoPlayer.js +27 -26
- package/components/VideoPlayer/VideoPlayer.styles.d.ts +41 -21
- package/components/VideoPlayer/VideoPlayer.styles.d.ts.map +1 -1
- package/components/VideoPlayer/VideoPlayer.styles.js +147 -85
- package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts +6 -5
- package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts.map +1 -1
- package/components/VideoPlayer/VideojsDefaultSkin.styles.js +2428 -1465
- package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts +6 -5
- package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts.map +1 -1
- package/components/VideoPlayer/VideojsMinimalSkin.styles.js +2403 -1464
- package/components/VideoPlayer/constants.d.ts +4 -33
- package/components/VideoPlayer/constants.d.ts.map +1 -1
- package/components/VideoPlayer/constants.js +6 -32
- package/components/VideoPlayer/hlsSource.d.ts +10 -5
- package/components/VideoPlayer/hlsSource.d.ts.map +1 -1
- package/components/VideoPlayer/hooks/usePlayerControl.d.ts +10 -4
- package/components/VideoPlayer/hooks/usePlayerControl.d.ts.map +1 -1
- package/components/VideoPlayer/hooks/usePlayerControl.js +27 -23
- package/components/VideoPlayer/player.factory.d.ts +9 -5
- package/components/VideoPlayer/player.factory.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts +11 -8
- package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/GclickVideoSkin.js +49 -45
- package/components/VideoPlayer/subcomponents/VideoPlayerI18nProvider.d.ts +22 -0
- package/components/VideoPlayer/subcomponents/VideoPlayerI18nProvider.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/VideoPlayerI18nProvider.js +13 -0
- package/components/VideoPlayer/subcomponents/skin/DefaultVideoControls.d.ts +28 -0
- package/components/VideoPlayer/subcomponents/skin/DefaultVideoControls.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/DefaultVideoControls.js +33 -0
- package/components/VideoPlayer/subcomponents/skin/MinimalVideoControls.d.ts +25 -0
- package/components/VideoPlayer/subcomponents/skin/MinimalVideoControls.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/MinimalVideoControls.js +36 -0
- package/components/VideoPlayer/subcomponents/skin/TimeSlider.d.ts +14 -0
- package/components/VideoPlayer/subcomponents/skin/TimeSlider.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/TimeSlider.js +23 -0
- package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts +11 -9
- package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.js +10 -12
- package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.d.ts +20 -5
- package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.js +24 -8
- package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts +14 -3
- package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.js +93 -38
- package/components/VideoPlayer/subcomponents/skin/VideoStatusIndicators.d.ts +17 -0
- package/components/VideoPlayer/subcomponents/skin/VideoStatusIndicators.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/VideoStatusIndicators.js +36 -0
- package/components/VideoPlayer/subcomponents/skin/VolumePopover.d.ts +16 -0
- package/components/VideoPlayer/subcomponents/skin/VolumePopover.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/VolumePopover.js +34 -0
- package/components/VideoPlayer/subcomponents/skin/buttons.d.ts +51 -0
- package/components/VideoPlayer/subcomponents/skin/buttons.d.ts.map +1 -0
- package/components/VideoPlayer/subcomponents/skin/buttons.js +78 -0
- package/components/VideoPlayer/subcomponents/skin/skinVariant.d.ts +46 -7
- package/components/VideoPlayer/subcomponents/skin/skinVariant.d.ts.map +1 -1
- package/components/VideoPlayer/subcomponents/skin/skinVariant.js +71 -18
- package/components/VideoPlayer/types.d.ts +32 -14
- package/components/VideoPlayer/types.d.ts.map +1 -1
- package/components/VideoPlayer/utils.d.ts +15 -9
- package/components/VideoPlayer/utils.d.ts.map +1 -1
- package/components/index.d.ts +0 -2
- package/components/index.d.ts.map +1 -1
- package/components/indicators/index.d.ts +0 -1
- package/components/indicators/index.d.ts.map +1 -1
- package/index.js +208 -210
- package/package.json +6 -5
- package/video-samples/README.md +5 -1
- package/video-samples/live/index.m3u8 +26 -0
- package/components/PhoneNumberField/PhoneNumberField.d.ts +0 -4
- package/components/PhoneNumberField/PhoneNumberField.d.ts.map +0 -1
- package/components/PhoneNumberField/PhoneNumberField.js +0 -86
- package/components/PhoneNumberField/index.d.ts +0 -3
- package/components/PhoneNumberField/index.d.ts.map +0 -1
- package/components/PhoneNumberField/phoneNumber.d.ts +0 -7
- package/components/PhoneNumberField/phoneNumber.d.ts.map +0 -1
- package/components/PhoneNumberField/phoneNumber.js +0 -12
- package/components/PhoneNumberField/types.d.ts +0 -25
- package/components/PhoneNumberField/types.d.ts.map +0 -1
- package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.d.ts +0 -5
- package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.d.ts.map +0 -1
- package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.js +0 -81
- package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.slots.d.ts +0 -5
- package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.slots.d.ts.map +0 -1
- package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.slots.js +0 -13
- package/components/RHFs/RHFPhoneNumberField/index.d.ts +0 -3
- package/components/RHFs/RHFPhoneNumberField/index.d.ts.map +0 -1
- package/components/RHFs/RHFPhoneNumberField/types.d.ts +0 -13
- package/components/RHFs/RHFPhoneNumberField/types.d.ts.map +0 -1
- package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts +0 -18
- package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts.map +0 -1
- package/components/VideoPlayer/subcomponents/skin/VideoControlBar.js +0 -115
- package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.d.ts +0 -15
- package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.d.ts.map +0 -1
- package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.js +0 -57
- package/components/VideoPlayer/subcomponents/skin/primitives.d.ts +0 -90
- package/components/VideoPlayer/subcomponents/skin/primitives.d.ts.map +0 -1
- package/components/VideoPlayer/subcomponents/skin/primitives.js +0 -144
- package/components/indicators/IndicatorFlag/IndicatorFlag.d.ts +0 -4
- package/components/indicators/IndicatorFlag/IndicatorFlag.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/IndicatorFlag.js +0 -168
- package/components/indicators/IndicatorFlag/IndicatorFlag.slots.d.ts +0 -31
- package/components/indicators/IndicatorFlag/IndicatorFlag.slots.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/IndicatorFlag.slots.js +0 -18
- package/components/indicators/IndicatorFlag/IndicatorFlag.styles.d.ts +0 -4
- package/components/indicators/IndicatorFlag/IndicatorFlag.styles.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/IndicatorFlag.styles.js +0 -142
- package/components/indicators/IndicatorFlag/constants.d.ts +0 -5
- package/components/indicators/IndicatorFlag/constants.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/constants.js +0 -7
- package/components/indicators/IndicatorFlag/countryOptions.d.ts +0 -4
- package/components/indicators/IndicatorFlag/countryOptions.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/countryOptions.js +0 -15
- package/components/indicators/IndicatorFlag/countryStock.generated.d.ts +0 -10
- package/components/indicators/IndicatorFlag/countryStock.generated.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/countryStock.generated.js +0 -251
- package/components/indicators/IndicatorFlag/index.d.ts +0 -3
- package/components/indicators/IndicatorFlag/index.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/slots.d.ts +0 -13
- package/components/indicators/IndicatorFlag/slots.d.ts.map +0 -1
- package/components/indicators/IndicatorFlag/slots.js +0 -4
- package/components/indicators/IndicatorFlag/types.d.ts +0 -49
- package/components/indicators/IndicatorFlag/types.d.ts.map +0 -1
|
@@ -1,58 +1,66 @@
|
|
|
1
|
-
import { Typography as
|
|
2
|
-
import { Chip as
|
|
1
|
+
import { Typography as o } from "@m4l/base";
|
|
2
|
+
import { Chip as d } from "@m4l/components";
|
|
3
3
|
import { styled as e } from "@mui/material/styles";
|
|
4
|
-
import { cameraStreamStyles as
|
|
5
|
-
import { COMPONENT_CAMERA_STREAM_KEY_COMPONENT as
|
|
6
|
-
import { CameraStreamSlotsStyled as
|
|
7
|
-
const
|
|
8
|
-
name:
|
|
9
|
-
slot:
|
|
10
|
-
})(
|
|
11
|
-
name:
|
|
12
|
-
slot:
|
|
4
|
+
import { cameraStreamStyles as a } from "../CameraStream.styles.js";
|
|
5
|
+
import { COMPONENT_CAMERA_STREAM_KEY_COMPONENT as t } from "../constants.js";
|
|
6
|
+
import { CameraStreamSlotsStyled as l } from "./CameraStreamEnum.js";
|
|
7
|
+
const h = e("div", {
|
|
8
|
+
name: t,
|
|
9
|
+
slot: l.root
|
|
10
|
+
})(a.root), S = e(d, {
|
|
11
|
+
name: t,
|
|
12
|
+
slot: l.label,
|
|
13
13
|
shouldForwardProp: (s) => s !== "ownerState"
|
|
14
|
-
})(
|
|
15
|
-
name:
|
|
16
|
-
slot:
|
|
17
|
-
})(
|
|
18
|
-
name:
|
|
19
|
-
slot:
|
|
20
|
-
})(
|
|
21
|
-
name:
|
|
22
|
-
slot:
|
|
23
|
-
})(
|
|
24
|
-
name:
|
|
25
|
-
slot:
|
|
26
|
-
})(
|
|
27
|
-
name:
|
|
28
|
-
slot:
|
|
29
|
-
})(
|
|
30
|
-
name:
|
|
31
|
-
slot:
|
|
32
|
-
})(
|
|
33
|
-
name:
|
|
34
|
-
slot:
|
|
35
|
-
})(
|
|
36
|
-
name:
|
|
37
|
-
slot:
|
|
38
|
-
})(
|
|
39
|
-
name:
|
|
40
|
-
slot:
|
|
41
|
-
})(
|
|
42
|
-
name:
|
|
43
|
-
slot:
|
|
44
|
-
})(
|
|
14
|
+
})(a.label), i = e("div", {
|
|
15
|
+
name: t,
|
|
16
|
+
slot: l.liveBadge
|
|
17
|
+
})(a.liveBadge), g = e("button", {
|
|
18
|
+
name: t,
|
|
19
|
+
slot: l.replayBadge
|
|
20
|
+
})(a.replayBadge), B = e("span", {
|
|
21
|
+
name: t,
|
|
22
|
+
slot: l.replayBadgeText
|
|
23
|
+
})(a.replayBadgeText), v = e("span", {
|
|
24
|
+
name: t,
|
|
25
|
+
slot: l.replayBadgeDetail
|
|
26
|
+
})(a.replayBadgeDetail), P = e("div", {
|
|
27
|
+
name: t,
|
|
28
|
+
slot: l.sharedBadge
|
|
29
|
+
})(a.sharedBadge), T = e("button", {
|
|
30
|
+
name: t,
|
|
31
|
+
slot: l.placeholderButton
|
|
32
|
+
})(a.placeholderButton), x = e("span", {
|
|
33
|
+
name: t,
|
|
34
|
+
slot: l.placeholderIcon
|
|
35
|
+
})(a.placeholderIcon), M = e(o, {
|
|
36
|
+
name: t,
|
|
37
|
+
slot: l.placeholderText
|
|
38
|
+
})(a.placeholderText), O = e("div", {
|
|
39
|
+
name: t,
|
|
40
|
+
slot: l.phaseOverlay
|
|
41
|
+
})(a.phaseOverlay), f = e("div", {
|
|
42
|
+
name: t,
|
|
43
|
+
slot: l.phaseSkeleton
|
|
44
|
+
})(a.phaseSkeleton), u = e(o, {
|
|
45
|
+
name: t,
|
|
46
|
+
slot: l.phaseMessage
|
|
47
|
+
})(a.phaseMessage), C = e(o, {
|
|
48
|
+
name: t,
|
|
49
|
+
slot: l.phaseHint
|
|
50
|
+
})(a.phaseHint);
|
|
45
51
|
export {
|
|
46
|
-
|
|
52
|
+
S as CameraLabelStyled,
|
|
47
53
|
i as LiveBadgeStyled,
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
C as PhaseHintStyled,
|
|
55
|
+
u as PhaseMessageStyled,
|
|
50
56
|
O as PhaseOverlayStyled,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
f as PhaseSkeletonStyled,
|
|
58
|
+
T as PlaceholderButtonStyled,
|
|
59
|
+
x as PlaceholderIconWrapperStyled,
|
|
54
60
|
M as PlaceholderTextStyled,
|
|
61
|
+
v as ReplayBadgeDetailStyled,
|
|
55
62
|
g as ReplayBadgeStyled,
|
|
56
|
-
B as
|
|
57
|
-
|
|
63
|
+
B as ReplayBadgeTextStyled,
|
|
64
|
+
P as SharedBadgeStyled,
|
|
65
|
+
h as StreamRootStyled
|
|
58
66
|
};
|
|
@@ -43,6 +43,14 @@ export type CameraStreamLiveBadgeSlotProps = Record<string, never>;
|
|
|
43
43
|
export interface CameraStreamReplayBadgeSlotProps {
|
|
44
44
|
onReplay: () => void;
|
|
45
45
|
replayLabel: string;
|
|
46
|
+
/**
|
|
47
|
+
* What the next request would fetch, when it is not simply the same stream
|
|
48
|
+
* again — Playback passes the instant the scrubber moved to. Pass it here
|
|
49
|
+
* rather than appended to `replayLabel`: the default badge paints it in its
|
|
50
|
+
* own part, which never truncates while the label does, and joins both in
|
|
51
|
+
* the accessible name and the tooltip. The router never sets it.
|
|
52
|
+
*/
|
|
53
|
+
replayDetail?: string;
|
|
46
54
|
}
|
|
47
55
|
/** Props received by the `sharedBadge` slot. */
|
|
48
56
|
export interface CameraStreamSharedBadgeSlotProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStream/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStream/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,8 @@ import { VideoPlayerProps } from './types';
|
|
|
17
17
|
* Highlights:
|
|
18
18
|
* - **One composed v10 skin** — the chrome (controls, layout, poster, native
|
|
19
19
|
* live button) is owned by `GclickVideoSkin`, assembled from the dependency's
|
|
20
|
-
* building blocks + official `media-*` classes (no custom
|
|
20
|
+
* building blocks + official `media-*` / `video-*` classes (no custom
|
|
21
|
+
* per-control CSS).
|
|
21
22
|
* - **Live ↔ VOD in one skin** — while the manifest is live the control bar
|
|
22
23
|
* shows the native `<LiveButton>` and hides the seek region; once it ends
|
|
23
24
|
* (`#EXT-X-ENDLIST` → `streamType: on-demand`) the seek bar + time displays
|
|
@@ -25,9 +26,12 @@ import { VideoPlayerProps } from './types';
|
|
|
25
26
|
* never remounted (no reload). See `GclickVideoSkin`.
|
|
26
27
|
* - **Signed-cookie HLS** — the `<video>` is configured so every manifest +
|
|
27
28
|
* segment request carries the CloudFront cookies (see `hlsSource.ts`).
|
|
28
|
-
* - **Flat frame** —
|
|
29
|
-
* `--media-border-radius
|
|
30
|
-
*
|
|
29
|
+
* - **Flat frame** — on our side the root slot only sets the skin's own tokens
|
|
30
|
+
* (`--media-border-radius: 0`, so the chrome is edge-to-edge and couples to
|
|
31
|
+
* the parent surface, and `--media-font-family` from the theme) and lets the
|
|
32
|
+
* chrome give way on a small tile: the ±10 s buttons, settings and mute step
|
|
33
|
+
* aside by width, and the smallest tiles get a scaled-down mini chrome (see
|
|
34
|
+
* `VideoPlayer.styles.ts`). The player needs a parent with a definite height.
|
|
31
35
|
* - **Poster** — `poster` is forwarded to the skin's poster slot (e.g. a cloud
|
|
32
36
|
* recording snapshot).
|
|
33
37
|
* - **Two vendor skins** — `variant` picks between the dependency's `default`
|
|
@@ -35,6 +39,10 @@ import { VideoPlayerProps } from './types';
|
|
|
35
39
|
* selected stylesheet is injected; see `VideoPlayer.styles.ts`.
|
|
36
40
|
* - **React 19 ref-as-prop** — `ref` resolves to a {@link VideoPlayerControl}
|
|
37
41
|
* without `forwardRef`.
|
|
42
|
+
* - **App language** — the chrome follows the GClick language
|
|
43
|
+
* (`LocalesContext` from `@m4l/graphics`) and switches in place, without
|
|
44
|
+
* reloading the stream. There is no `locale` prop; see
|
|
45
|
+
* `VideoPlayerI18nProvider`.
|
|
38
46
|
*/
|
|
39
47
|
export declare function VideoPlayer({ src, poster, variant, suspended, optionalControls, className, onReady, onPlay, onPause, onEnded, onWaiting, onError, onDurationChange, ref, }: VideoPlayerProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
|
|
40
48
|
//# sourceMappingURL=VideoPlayer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideoPlayer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,WAAW,CAAC,EAC1B,GAAG,EACH,MAAM,EACN,OAAuC,EACvC,SAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,GAAG,GACJ,EAAE,gBAAgB,2DAgClB"}
|
|
@@ -1,43 +1,44 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as r } from "@emotion/react/jsx-runtime";
|
|
2
2
|
import { StreamPlayer as V } from "./player.factory.js";
|
|
3
|
+
import { VideoPlayerI18nProvider as c } from "./subcomponents/VideoPlayerI18nProvider.js";
|
|
3
4
|
import { VideoPlayerStage as A } from "./subcomponents/VideoPlayerStage.js";
|
|
4
|
-
import { VIDEO_PLAYER_VARIANTS as
|
|
5
|
-
function
|
|
6
|
-
src:
|
|
5
|
+
import { VIDEO_PLAYER_VARIANTS as I } from "./constants.js";
|
|
6
|
+
function _({
|
|
7
|
+
src: e,
|
|
7
8
|
poster: o,
|
|
8
|
-
variant:
|
|
9
|
-
suspended:
|
|
10
|
-
optionalControls:
|
|
11
|
-
className:
|
|
12
|
-
onReady:
|
|
9
|
+
variant: i = I.default,
|
|
10
|
+
suspended: t = !1,
|
|
11
|
+
optionalControls: l,
|
|
12
|
+
className: m,
|
|
13
|
+
onReady: f,
|
|
13
14
|
onPlay: a,
|
|
14
15
|
onPause: n,
|
|
15
|
-
onEnded:
|
|
16
|
-
onWaiting:
|
|
17
|
-
onError:
|
|
18
|
-
onDurationChange:
|
|
16
|
+
onEnded: d,
|
|
17
|
+
onWaiting: P,
|
|
18
|
+
onError: p,
|
|
19
|
+
onDurationChange: u,
|
|
19
20
|
ref: y
|
|
20
21
|
}) {
|
|
21
|
-
return
|
|
22
|
+
return e ? /* @__PURE__ */ r(V.Player, { children: /* @__PURE__ */ r(c, { children: /* @__PURE__ */ r(
|
|
22
23
|
A,
|
|
23
24
|
{
|
|
24
|
-
src:
|
|
25
|
+
src: e,
|
|
25
26
|
poster: o,
|
|
26
|
-
variant:
|
|
27
|
-
suspended:
|
|
28
|
-
optionalControls:
|
|
29
|
-
className:
|
|
27
|
+
variant: i,
|
|
28
|
+
suspended: t,
|
|
29
|
+
optionalControls: l,
|
|
30
|
+
className: m,
|
|
30
31
|
controlRef: y,
|
|
31
|
-
onReady:
|
|
32
|
+
onReady: f,
|
|
32
33
|
onPlay: a,
|
|
33
34
|
onPause: n,
|
|
34
|
-
onEnded:
|
|
35
|
-
onWaiting:
|
|
36
|
-
onError:
|
|
37
|
-
onDurationChange:
|
|
35
|
+
onEnded: d,
|
|
36
|
+
onWaiting: P,
|
|
37
|
+
onError: p,
|
|
38
|
+
onDurationChange: u
|
|
38
39
|
}
|
|
39
|
-
) }) : null;
|
|
40
|
+
) }) }) : null;
|
|
40
41
|
}
|
|
41
42
|
export {
|
|
42
|
-
|
|
43
|
+
_ as VideoPlayer
|
|
43
44
|
};
|
|
@@ -1,30 +1,50 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CSSObject } from '@mui/material/styles';
|
|
2
|
+
import { VideoPlayerStyles, VideoPlayerVariant } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* How the chrome gives way as the tile shrinks, per variant; the `root` slot
|
|
5
|
+
* spreads the entry of the variant it wears. The camera grids make tiles of any
|
|
6
|
+
* size down to 160×90, and where a bar runs out of room the vendor's chrome
|
|
7
|
+
* neither wraps nor clips: the seek bar keeps its minimum width, overflows its
|
|
8
|
+
* group and lands on the next button. So the optional controls step aside by width, and
|
|
9
|
+
* the smallest tiles, narrow or short, get a mini chrome (see "Responsive
|
|
10
|
+
* behavior" in the README). The widths are in px because they budget controls
|
|
11
|
+
* sized in px (`--media-scale-unit` is `16px`), so the user's font size must not
|
|
12
|
+
* move them.
|
|
13
|
+
*
|
|
14
|
+
* The mini chrome reads the height, which the vendor's `media-root` cannot (it
|
|
15
|
+
* is an `inline-size` container), so the root declares a `size` container of
|
|
16
|
+
* its own. Size containment lays the root out as if it were empty: the player
|
|
17
|
+
* needs a parent with a definite height. And the root keeps the tile's size
|
|
18
|
+
* while the skin's `Container` (`.media-skin`) goes fullscreen, so every rule on
|
|
19
|
+
* this container is guarded with `.media-skin:not(:fullscreen)`, the
|
|
20
|
+
* pseudo-class the vendor keys its own fullscreen rules on. The rules on
|
|
21
|
+
* `media-root` need no guard: in fullscreen that container is the screen.
|
|
22
|
+
*/
|
|
23
|
+
export declare const videoPlayerResponsiveStyles: Record<VideoPlayerVariant, CSSObject>;
|
|
2
24
|
/**
|
|
3
25
|
* Slot styles for the `VideoPlayer`. The official video.js v10 skin owns the
|
|
4
26
|
* chrome, and its stylesheet is applied here: libraries must not import global
|
|
5
27
|
* vendor CSS (it never loads in MFs — the host's MFLoader only fetches the JS
|
|
6
|
-
* entry), so
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* only size the wrapper and flatten the player frame: the skin reads
|
|
11
|
-
* `--media-border-radius` (default `2rem`); setting it to `0` keeps the chrome
|
|
12
|
-
* edge-to-edge so it couples to the parent surface that owns the rounded
|
|
13
|
-
* corners and clip (e.g. the `CameraStream` tile).
|
|
28
|
+
* entry), so the vendor's `video/skin.css` is translated to Emotion object
|
|
29
|
+
* styles (`Videojs*Skin.styles.ts`, same pattern as Leaflet in `GpsMap`) and
|
|
30
|
+
* spread into the `root` slot. Emotion scopes every skin selector under this
|
|
31
|
+
* slot, so nothing leaks into the host's global CSS.
|
|
14
32
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
33
|
+
* The specificity contract is the vendor's: every skin rule lives in a cascade
|
|
34
|
+
* layer (`@layer base`, `@layer components`, …), and a rule outside any layer
|
|
35
|
+
* beats every layered rule whatever its selector. So the declarations below win
|
|
36
|
+
* without repeating the vendor's selector chain, and so does anything a consumer
|
|
37
|
+
* adds through `theme.components.M4LVideoPlayer.styleOverrides` — including over
|
|
38
|
+
* the skin's own state rules (`:hover`, `[data-*]`). The intended override
|
|
39
|
+
* surface stays the vendor's `--media-*` custom properties.
|
|
22
40
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
41
|
+
* What is ours is a closed list, held by `VideoPlayer.styles.test.ts`: the
|
|
42
|
+
* wrapper's size, the `content-box` sizing a host global would otherwise
|
|
43
|
+
* override, two of the vendor's documented tokens, the responsive steps below
|
|
44
|
+
* (which also drop the ±10 s buttons on a narrow player), and a fallback for the
|
|
45
|
+
* one colour the vendor computes with `contrast-color()` and leaves unset
|
|
46
|
+
* without it. The skin resets its own buttons and sets its own colours, so
|
|
47
|
+
* nothing else here patches the vendor.
|
|
28
48
|
*/
|
|
29
49
|
export declare const videoPlayerStyles: VideoPlayerStyles;
|
|
30
50
|
//# sourceMappingURL=VideoPlayer.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.styles.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideoPlayer.styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VideoPlayer.styles.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideoPlayer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAyB,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA2C5F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAuF7E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAwD/B,CAAC"}
|
|
@@ -1,107 +1,169 @@
|
|
|
1
1
|
import { VIDEO_PLAYER_VARIANTS as e } from "./constants.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
const
|
|
5
|
-
|
|
2
|
+
import { videojsDefaultSkinStyles as n } from "./VideojsDefaultSkin.styles.js";
|
|
3
|
+
import { videojsMinimalSkinStyles as r } from "./VideojsMinimalSkin.styles.js";
|
|
4
|
+
const t = {
|
|
5
|
+
"@container media-root (width < 288px)": {
|
|
6
|
+
'&[data-stream-type="live"] .media-settings-menu-trigger': {
|
|
7
|
+
display: "none"
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"@container media-root (width < 256px)": {
|
|
11
|
+
'&[data-stream-type="vod"] .media-settings-menu-trigger, &[data-stream-type="live"] .media-mute-button': {
|
|
12
|
+
display: "none"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"@container media-root (width < 220px)": {
|
|
16
|
+
'&[data-stream-type="vod"] .media-mute-button': {
|
|
17
|
+
display: "none"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}, a = {
|
|
21
|
+
"--media-scale-unit": "12px",
|
|
22
|
+
"& .media-mute-button, & .media-settings-menu-trigger, & .media-pip-button, & .media-cast-button, & .media-airplay-button": {
|
|
23
|
+
display: "none"
|
|
24
|
+
}
|
|
25
|
+
}, d = {
|
|
26
|
+
[e.default]: {
|
|
27
|
+
container: "m4l-video-player / size",
|
|
28
|
+
...t,
|
|
29
|
+
/*
|
|
30
|
+
* Drop the ±10 s buttons below 38rem. They are ours: the video skins do not
|
|
31
|
+
* render them, so no vendor rule retires them — the stylesheet only dresses
|
|
32
|
+
* them once they exist. Two extra buttons are fine on a full-width player
|
|
33
|
+
* and crowd out the seek bar in a grid tile. The vendor's own line, 32rem
|
|
34
|
+
* (where it drops its captions button), was measured to be too early: the
|
|
35
|
+
* buttons came back while the time group was still under the 16rem at
|
|
36
|
+
* which the vendor hides the times, so a tile up to 607px wide (with Cast,
|
|
37
|
+
* AirPlay and PiP) showed less than a 511px one. From 38rem both fit. A
|
|
38
|
+
* single class is enough: outside any layer, it beats the layered rule that
|
|
39
|
+
* sets the button's `display`.
|
|
40
|
+
*/
|
|
41
|
+
"@container media-root (width < 38rem)": {
|
|
42
|
+
"& .media-seek-button": {
|
|
43
|
+
display: "none"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
// One 40px row is 40% of a 100px tile; French live without mute needs 209px.
|
|
47
|
+
"@container m4l-video-player (width < 216px) or (height < 100px)": {
|
|
48
|
+
"& .media-skin:not(:fullscreen)": a
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
[e.minimal]: {
|
|
52
|
+
container: "m4l-video-player / size",
|
|
53
|
+
...t,
|
|
54
|
+
// The ±10 s buttons return at 32rem, where the vendor starts shedding
|
|
55
|
+
// controls: below 42rem this skin keeps the times on a row of their own, so
|
|
56
|
+
// the buttons never crowd them out.
|
|
57
|
+
"@container media-root (width < 32rem)": {
|
|
58
|
+
"& .media-seek-button": {
|
|
59
|
+
display: "none"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
// Below 42rem the vendor's start and end groups are both `flex: 1` (0%
|
|
63
|
+
// basis), so they split the row in halves whatever they hold, and a long
|
|
64
|
+
// live label pushes mute out of the start group. The start group keeps its
|
|
65
|
+
// content and grows instead, as both do from 42rem (`flex: none`).
|
|
66
|
+
"@container media-root (width < 42rem)": {
|
|
67
|
+
"& .video-controls-start": {
|
|
68
|
+
flex: "1 0 auto"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
// Without a floating cluster the outputs share the row with the live
|
|
72
|
+
// button: with AirPlay and PiP, French live needs 305px. Mute outranks the
|
|
73
|
+
// opt-in outputs, so they step aside first.
|
|
74
|
+
"@container media-root (width < 320px)": {
|
|
75
|
+
'&[data-stream-type="live"] .media-pip-button, &[data-stream-type="live"] .media-cast-button, &[data-stream-type="live"] .media-airplay-button': {
|
|
76
|
+
display: "none"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
// This skin's two rows (64px) are 40% of a 160px tile; scaled, 48px.
|
|
80
|
+
"@container m4l-video-player (height < 160px)": {
|
|
81
|
+
"& .media-skin:not(:fullscreen)": {
|
|
82
|
+
"--media-scale-unit": "12px"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
// Two scaled rows are 40% of a 120px tile. Below that, or narrower than
|
|
86
|
+
// 216px, one row: the groups stop growing (as from 42rem), the gap between
|
|
87
|
+
// them halves, and the seek bar sits inline with room for the thumb at both
|
|
88
|
+
// ends.
|
|
89
|
+
"@container m4l-video-player (width < 216px) or (height < 120px)": {
|
|
90
|
+
"& .media-skin:not(:fullscreen)": {
|
|
91
|
+
...a,
|
|
92
|
+
"& .video-controls-wrap": {
|
|
93
|
+
flexWrap: "nowrap",
|
|
94
|
+
columnGap: "var(--media-spacing)"
|
|
95
|
+
},
|
|
96
|
+
"& .video-controls-start, & .video-controls-end": {
|
|
97
|
+
flex: "none"
|
|
98
|
+
},
|
|
99
|
+
"& .video-time-slider-group": {
|
|
100
|
+
flex: "1 1 0",
|
|
101
|
+
order: 0,
|
|
102
|
+
minWidth: 0,
|
|
103
|
+
paddingInline: "calc(var(--media-spacing) * 2)"
|
|
104
|
+
},
|
|
105
|
+
"& .media-time-group": {
|
|
106
|
+
display: "none"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}, p = {
|
|
112
|
+
/** Wrapper that scopes the vendor skin styles, sizes the composed skin and sets its tokens. */
|
|
6
113
|
root: ({ theme: o, ownerState: i }) => ({
|
|
7
114
|
/*
|
|
8
115
|
* The whole official v10 skin stylesheet for the selected variant, scoped
|
|
9
116
|
* under this slot.
|
|
10
117
|
*
|
|
11
|
-
* ONE sheet, never both.
|
|
12
|
-
*
|
|
13
|
-
* both would inject ~1900 declarations that never match, and would emit
|
|
14
|
-
* un-scopable at-rules twice into
|
|
15
|
-
* the global namespace — Emotion cannot scope those, and both sheets declare
|
|
16
|
-
* them identically. Picking here keeps exactly one copy alive.
|
|
118
|
+
* ONE sheet, never both. They share their `@layer` and `@property` keys,
|
|
119
|
+
* so spreading both would silently keep only the second sheet.
|
|
17
120
|
*/
|
|
18
|
-
...i?.variant === e.minimal ? r
|
|
121
|
+
...i?.variant === e.minimal ? r : n,
|
|
19
122
|
position: "relative",
|
|
20
123
|
width: "100%",
|
|
21
124
|
height: "100%",
|
|
22
|
-
//
|
|
23
|
-
//
|
|
125
|
+
// The host's global `*, *::before, *::after { box-sizing: border-box }`
|
|
126
|
+
// reaches this wrapper and the skin root's own pseudo-elements, which the
|
|
127
|
+
// vendor's `@scope (.media-skin)` reset leaves out; keep them `content-box`,
|
|
128
|
+
// as the native sheet computes them.
|
|
129
|
+
boxSizing: "content-box",
|
|
130
|
+
"& .media-skin::before, & .media-skin::after": {
|
|
131
|
+
boxSizing: "content-box"
|
|
132
|
+
},
|
|
133
|
+
// Flatten the player frame: the skin rounds it through
|
|
134
|
+
// `--media-video-border-radius: var(--media-border-radius, 28px)`. Zero keeps
|
|
135
|
+
// the chrome edge-to-edge so it couples to the parent surface that owns the
|
|
136
|
+
// rounded corners and clip (e.g. the `CameraStream` tile). The live ↔ VOD
|
|
24
137
|
// control-bar swap is handled by the composed skin itself
|
|
25
138
|
// (`GclickVideoSkin`, driven by `isLive`), not CSS.
|
|
26
139
|
"--media-border-radius": "0px",
|
|
140
|
+
// The chrome follows the platform font instead of the vendor's Inter stack,
|
|
141
|
+
// through the token the vendor reads on its container.
|
|
142
|
+
"--media-font-family": o.typography.fontFamily,
|
|
143
|
+
// Which controls show at which size, and the ±10 s buttons among them: see
|
|
144
|
+
// `videoPlayerResponsiveStyles`.
|
|
145
|
+
...d[i?.variant ?? e.default],
|
|
27
146
|
/*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* The skin's only global button rule is `font: inherit`, and it neutralizes
|
|
31
|
-
* the UA defaults per class rather than globally — `.media-button` gets
|
|
32
|
-
* `border: none`, `.media-button--subtle` and `.media-menu__item` get
|
|
33
|
-
* `color: inherit`. But `.media-menu__back` gets NEITHER: `Menu.Back`
|
|
34
|
-
* renders it as a bare `<button>` carrying only that class, and neither of
|
|
35
|
-
* its two rules touches `color`, `background` or `border`.
|
|
36
|
-
*
|
|
37
|
-
* So the back row of every settings submenu kept Chrome's UA button
|
|
38
|
-
* defaults: `background-color: buttonface` + `border: 2px outset` (which
|
|
39
|
-
* the skin's own `border-radius` rounded into a grey pill) and
|
|
40
|
-
* `color: buttontext`, i.e. pure black text over the dark glass. Its
|
|
41
|
-
* sibling rows looked fine because `Menu.RadioItem` renders `<div>`, and
|
|
42
|
-
* the control-bar buttons looked fine because they carry
|
|
43
|
-
* `.media-button--subtle`. Only this one element falls through.
|
|
44
|
-
*
|
|
45
|
-
* The vendor's demo does not hit it because its page ships Tailwind
|
|
46
|
-
* Preflight, which zeroes button background/border and sets
|
|
47
|
-
* `color: inherit`; nothing in our MFs does. This is a reset, not styling:
|
|
48
|
-
* it paints nothing, and every skin rule outranks it (four classes vs one
|
|
49
|
-
* class + element), so it cannot override anything the vendor sets.
|
|
50
|
-
* Reported upstream — the inconsistency is on their side; drop this once
|
|
51
|
-
* `.media-menu__back` resets its own UA defaults.
|
|
52
|
-
*/
|
|
53
|
-
"& button": {
|
|
54
|
-
color: "inherit",
|
|
55
|
-
background: "none",
|
|
56
|
-
border: "none"
|
|
57
|
-
},
|
|
58
|
-
/*
|
|
59
|
-
* Base chrome colour — the second baseline the vendor skin assumes.
|
|
60
|
-
*
|
|
61
|
-
* The skin never sets `color` on its root: every control below it is
|
|
62
|
-
* `color: inherit` and every icon paints with `currentColor`, so the whole
|
|
63
|
-
* chrome inherits from the host page. Its palette is unmistakably designed
|
|
64
|
-
* for light-on-dark (the frame is `oklch(0 0 0)`, surfaces are white at
|
|
65
|
-
* ~10% alpha, text shadows are dark), and the vendor's own demo sits on a
|
|
66
|
-
* dark docs page — so it inherits white and nobody notices the omission.
|
|
147
|
+
* A readable label on the error dialog's button where `contrast-color()`
|
|
148
|
+
* is missing (Chrome and Edge before 147, Samsung Internet).
|
|
67
149
|
*
|
|
68
|
-
*
|
|
69
|
-
* `
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* the
|
|
74
|
-
*
|
|
150
|
+
* The vendor paints that label with `--media-primary-foreground`, the
|
|
151
|
+
* `contrast-color()` of the accent, and ships no fallback: without the
|
|
152
|
+
* function the colour is dropped and the label inherits the chrome's white,
|
|
153
|
+
* on the white accent. Here it gets what `contrast-color()` would pick,
|
|
154
|
+
* black or white by the accent's lightness; 0.5636 is the OKLab lightness of
|
|
155
|
+
* the grey that contrasts equally with both. The vendor's documented
|
|
156
|
+
* override, `--media-accent-text-color`, cannot be used: it also sets the
|
|
157
|
+
* hover and focus text of every button and menu row, which must stay white.
|
|
75
158
|
*/
|
|
76
|
-
color:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
* The THIRD and last piece of CSS we own, and the only one that is not
|
|
81
|
-
* fixing a vendor omission. The skip buttons are ours: neither packaged
|
|
82
|
-
* skin renders them, so no vendor rule decides when they should step aside
|
|
83
|
-
* — the stylesheet only dresses them once they exist. Two extra buttons are
|
|
84
|
-
* fine on a full-width player and crowd out the seek bar in a grid tile.
|
|
85
|
-
*
|
|
86
|
-
* Reuses the vendor's own mechanism instead of inventing one: `media-root`
|
|
87
|
-
* is the container the skin declares on its root, and `32rem` is the width
|
|
88
|
-
* at which the vendor itself starts shedding controls (it drops the
|
|
89
|
-
* captions button there). Same threshold, same query — so the chrome thins
|
|
90
|
-
* out in one step rather than at two competing breakpoints.
|
|
91
|
-
*/
|
|
92
|
-
"@container media-root (width < 32rem)": {
|
|
93
|
-
/*
|
|
94
|
-
* Doubled class on purpose. The skin sets `display` on the button itself
|
|
95
|
-
* (`.media-default-skin .media-button--icon { display: grid }`), which
|
|
96
|
-
* scopes to three classes under this slot — so a single-class override
|
|
97
|
-
* here parses fine, emits fine, and loses the cascade without a word.
|
|
98
|
-
*/
|
|
99
|
-
"& .media-button.media-button--seek": {
|
|
100
|
-
display: "none"
|
|
159
|
+
"@supports not (color: contrast-color(red))": {
|
|
160
|
+
"& .media-skin": {
|
|
161
|
+
"--media-primary-foreground": "oklch(from var(--media-primary) clamp(0, (0.5636 - l) * 1000, 1) 0 0)"
|
|
101
162
|
}
|
|
102
163
|
}
|
|
103
164
|
})
|
|
104
165
|
};
|
|
105
166
|
export {
|
|
106
|
-
d as
|
|
167
|
+
d as videoPlayerResponsiveStyles,
|
|
168
|
+
p as videoPlayerStyles
|
|
107
169
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { CSSObject
|
|
1
|
+
import { CSSObject } from '@mui/material/styles';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* vendor's
|
|
5
|
-
*
|
|
3
|
+
* The vendor stylesheet converted to an Emotion style object, keyed by the
|
|
4
|
+
* vendor's own selectors, each written as a descendant of the slot (`& `).
|
|
5
|
+
* Spread it into the owning component's root slot so the chrome is styled
|
|
6
|
+
* without any global CSS import.
|
|
6
7
|
*/
|
|
7
|
-
export declare const
|
|
8
|
+
export declare const videojsDefaultSkinStyles: CSSObject;
|
|
8
9
|
//# sourceMappingURL=VideojsDefaultSkin.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideojsDefaultSkin.styles.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideojsDefaultSkin.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"VideojsDefaultSkin.styles.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/VideoPlayer/VideojsDefaultSkin.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkDtD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,SA+jFtC,CAAC"}
|