@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.
Files changed (147) hide show
  1. package/@types/types.d.ts +0 -8
  2. package/components/CameraStream/CameraStream.styles.d.ts +12 -0
  3. package/components/CameraStream/CameraStream.styles.d.ts.map +1 -1
  4. package/components/CameraStream/CameraStream.styles.js +121 -23
  5. package/components/CameraStream/constants.d.ts +36 -0
  6. package/components/CameraStream/constants.d.ts.map +1 -1
  7. package/components/CameraStream/constants.js +7 -1
  8. package/components/CameraStream/defaults/DefaultLabel.d.ts +3 -0
  9. package/components/CameraStream/defaults/DefaultLabel.d.ts.map +1 -1
  10. package/components/CameraStream/defaults/DefaultLabel.js +3 -2
  11. package/components/CameraStream/defaults/DefaultReplayBadge.d.ts +6 -1
  12. package/components/CameraStream/defaults/DefaultReplayBadge.d.ts.map +1 -1
  13. package/components/CameraStream/defaults/DefaultReplayBadge.js +13 -9
  14. package/components/CameraStream/index.d.ts +2 -2
  15. package/components/CameraStream/index.d.ts.map +1 -1
  16. package/components/CameraStream/slots/CameraStreamEnum.d.ts +2 -0
  17. package/components/CameraStream/slots/CameraStreamEnum.d.ts.map +1 -1
  18. package/components/CameraStream/slots/CameraStreamEnum.js +2 -2
  19. package/components/CameraStream/slots/CameraStreamSlots.d.ts +6 -0
  20. package/components/CameraStream/slots/CameraStreamSlots.d.ts.map +1 -1
  21. package/components/CameraStream/slots/CameraStreamSlots.js +58 -50
  22. package/components/CameraStream/types.d.ts +8 -0
  23. package/components/CameraStream/types.d.ts.map +1 -1
  24. package/components/VideoPlayer/VideoPlayer.d.ts +12 -4
  25. package/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
  26. package/components/VideoPlayer/VideoPlayer.js +27 -26
  27. package/components/VideoPlayer/VideoPlayer.styles.d.ts +41 -21
  28. package/components/VideoPlayer/VideoPlayer.styles.d.ts.map +1 -1
  29. package/components/VideoPlayer/VideoPlayer.styles.js +147 -85
  30. package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts +6 -5
  31. package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts.map +1 -1
  32. package/components/VideoPlayer/VideojsDefaultSkin.styles.js +2428 -1465
  33. package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts +6 -5
  34. package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts.map +1 -1
  35. package/components/VideoPlayer/VideojsMinimalSkin.styles.js +2403 -1464
  36. package/components/VideoPlayer/constants.d.ts +4 -33
  37. package/components/VideoPlayer/constants.d.ts.map +1 -1
  38. package/components/VideoPlayer/constants.js +6 -32
  39. package/components/VideoPlayer/hlsSource.d.ts +10 -5
  40. package/components/VideoPlayer/hlsSource.d.ts.map +1 -1
  41. package/components/VideoPlayer/hooks/usePlayerControl.d.ts +10 -4
  42. package/components/VideoPlayer/hooks/usePlayerControl.d.ts.map +1 -1
  43. package/components/VideoPlayer/hooks/usePlayerControl.js +27 -23
  44. package/components/VideoPlayer/player.factory.d.ts +9 -5
  45. package/components/VideoPlayer/player.factory.d.ts.map +1 -1
  46. package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts +11 -8
  47. package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts.map +1 -1
  48. package/components/VideoPlayer/subcomponents/GclickVideoSkin.js +49 -45
  49. package/components/VideoPlayer/subcomponents/VideoPlayerI18nProvider.d.ts +22 -0
  50. package/components/VideoPlayer/subcomponents/VideoPlayerI18nProvider.d.ts.map +1 -0
  51. package/components/VideoPlayer/subcomponents/VideoPlayerI18nProvider.js +13 -0
  52. package/components/VideoPlayer/subcomponents/skin/DefaultVideoControls.d.ts +28 -0
  53. package/components/VideoPlayer/subcomponents/skin/DefaultVideoControls.d.ts.map +1 -0
  54. package/components/VideoPlayer/subcomponents/skin/DefaultVideoControls.js +33 -0
  55. package/components/VideoPlayer/subcomponents/skin/MinimalVideoControls.d.ts +25 -0
  56. package/components/VideoPlayer/subcomponents/skin/MinimalVideoControls.d.ts.map +1 -0
  57. package/components/VideoPlayer/subcomponents/skin/MinimalVideoControls.js +36 -0
  58. package/components/VideoPlayer/subcomponents/skin/TimeSlider.d.ts +14 -0
  59. package/components/VideoPlayer/subcomponents/skin/TimeSlider.d.ts.map +1 -0
  60. package/components/VideoPlayer/subcomponents/skin/TimeSlider.js +23 -0
  61. package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts +11 -9
  62. package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts.map +1 -1
  63. package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.js +10 -12
  64. package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.d.ts +20 -5
  65. package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.d.ts.map +1 -1
  66. package/components/VideoPlayer/subcomponents/skin/VideoInputBindings.js +24 -8
  67. package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts +14 -3
  68. package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts.map +1 -1
  69. package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.js +93 -38
  70. package/components/VideoPlayer/subcomponents/skin/VideoStatusIndicators.d.ts +17 -0
  71. package/components/VideoPlayer/subcomponents/skin/VideoStatusIndicators.d.ts.map +1 -0
  72. package/components/VideoPlayer/subcomponents/skin/VideoStatusIndicators.js +36 -0
  73. package/components/VideoPlayer/subcomponents/skin/VolumePopover.d.ts +16 -0
  74. package/components/VideoPlayer/subcomponents/skin/VolumePopover.d.ts.map +1 -0
  75. package/components/VideoPlayer/subcomponents/skin/VolumePopover.js +34 -0
  76. package/components/VideoPlayer/subcomponents/skin/buttons.d.ts +51 -0
  77. package/components/VideoPlayer/subcomponents/skin/buttons.d.ts.map +1 -0
  78. package/components/VideoPlayer/subcomponents/skin/buttons.js +78 -0
  79. package/components/VideoPlayer/subcomponents/skin/skinVariant.d.ts +46 -7
  80. package/components/VideoPlayer/subcomponents/skin/skinVariant.d.ts.map +1 -1
  81. package/components/VideoPlayer/subcomponents/skin/skinVariant.js +71 -18
  82. package/components/VideoPlayer/types.d.ts +32 -14
  83. package/components/VideoPlayer/types.d.ts.map +1 -1
  84. package/components/VideoPlayer/utils.d.ts +15 -9
  85. package/components/VideoPlayer/utils.d.ts.map +1 -1
  86. package/components/index.d.ts +0 -2
  87. package/components/index.d.ts.map +1 -1
  88. package/components/indicators/index.d.ts +0 -1
  89. package/components/indicators/index.d.ts.map +1 -1
  90. package/index.js +208 -210
  91. package/package.json +6 -5
  92. package/video-samples/README.md +5 -1
  93. package/video-samples/live/index.m3u8 +26 -0
  94. package/components/PhoneNumberField/PhoneNumberField.d.ts +0 -4
  95. package/components/PhoneNumberField/PhoneNumberField.d.ts.map +0 -1
  96. package/components/PhoneNumberField/PhoneNumberField.js +0 -86
  97. package/components/PhoneNumberField/index.d.ts +0 -3
  98. package/components/PhoneNumberField/index.d.ts.map +0 -1
  99. package/components/PhoneNumberField/phoneNumber.d.ts +0 -7
  100. package/components/PhoneNumberField/phoneNumber.d.ts.map +0 -1
  101. package/components/PhoneNumberField/phoneNumber.js +0 -12
  102. package/components/PhoneNumberField/types.d.ts +0 -25
  103. package/components/PhoneNumberField/types.d.ts.map +0 -1
  104. package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.d.ts +0 -5
  105. package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.d.ts.map +0 -1
  106. package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.js +0 -81
  107. package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.slots.d.ts +0 -5
  108. package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.slots.d.ts.map +0 -1
  109. package/components/RHFs/RHFPhoneNumberField/RHFPhoneNumberField.slots.js +0 -13
  110. package/components/RHFs/RHFPhoneNumberField/index.d.ts +0 -3
  111. package/components/RHFs/RHFPhoneNumberField/index.d.ts.map +0 -1
  112. package/components/RHFs/RHFPhoneNumberField/types.d.ts +0 -13
  113. package/components/RHFs/RHFPhoneNumberField/types.d.ts.map +0 -1
  114. package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts +0 -18
  115. package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts.map +0 -1
  116. package/components/VideoPlayer/subcomponents/skin/VideoControlBar.js +0 -115
  117. package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.d.ts +0 -15
  118. package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.d.ts.map +0 -1
  119. package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.js +0 -57
  120. package/components/VideoPlayer/subcomponents/skin/primitives.d.ts +0 -90
  121. package/components/VideoPlayer/subcomponents/skin/primitives.d.ts.map +0 -1
  122. package/components/VideoPlayer/subcomponents/skin/primitives.js +0 -144
  123. package/components/indicators/IndicatorFlag/IndicatorFlag.d.ts +0 -4
  124. package/components/indicators/IndicatorFlag/IndicatorFlag.d.ts.map +0 -1
  125. package/components/indicators/IndicatorFlag/IndicatorFlag.js +0 -168
  126. package/components/indicators/IndicatorFlag/IndicatorFlag.slots.d.ts +0 -31
  127. package/components/indicators/IndicatorFlag/IndicatorFlag.slots.d.ts.map +0 -1
  128. package/components/indicators/IndicatorFlag/IndicatorFlag.slots.js +0 -18
  129. package/components/indicators/IndicatorFlag/IndicatorFlag.styles.d.ts +0 -4
  130. package/components/indicators/IndicatorFlag/IndicatorFlag.styles.d.ts.map +0 -1
  131. package/components/indicators/IndicatorFlag/IndicatorFlag.styles.js +0 -142
  132. package/components/indicators/IndicatorFlag/constants.d.ts +0 -5
  133. package/components/indicators/IndicatorFlag/constants.d.ts.map +0 -1
  134. package/components/indicators/IndicatorFlag/constants.js +0 -7
  135. package/components/indicators/IndicatorFlag/countryOptions.d.ts +0 -4
  136. package/components/indicators/IndicatorFlag/countryOptions.d.ts.map +0 -1
  137. package/components/indicators/IndicatorFlag/countryOptions.js +0 -15
  138. package/components/indicators/IndicatorFlag/countryStock.generated.d.ts +0 -10
  139. package/components/indicators/IndicatorFlag/countryStock.generated.d.ts.map +0 -1
  140. package/components/indicators/IndicatorFlag/countryStock.generated.js +0 -251
  141. package/components/indicators/IndicatorFlag/index.d.ts +0 -3
  142. package/components/indicators/IndicatorFlag/index.d.ts.map +0 -1
  143. package/components/indicators/IndicatorFlag/slots.d.ts +0 -13
  144. package/components/indicators/IndicatorFlag/slots.d.ts.map +0 -1
  145. package/components/indicators/IndicatorFlag/slots.js +0 -4
  146. package/components/indicators/IndicatorFlag/types.d.ts +0 -49
  147. package/components/indicators/IndicatorFlag/types.d.ts.map +0 -1
@@ -1,58 +1,66 @@
1
- import { Typography as l } from "@m4l/base";
2
- import { Chip as r } from "@m4l/components";
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 t } from "../CameraStream.styles.js";
5
- import { COMPONENT_CAMERA_STREAM_KEY_COMPONENT as a } from "../constants.js";
6
- import { CameraStreamSlotsStyled as o } from "./CameraStreamEnum.js";
7
- const S = e("div", {
8
- name: a,
9
- slot: o.root
10
- })(t.root), y = e(r, {
11
- name: a,
12
- slot: o.label,
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
- })(t.label), i = e("div", {
15
- name: a,
16
- slot: o.liveBadge
17
- })(t.liveBadge), g = e("button", {
18
- name: a,
19
- slot: o.replayBadge
20
- })(t.replayBadge), B = e("div", {
21
- name: a,
22
- slot: o.sharedBadge
23
- })(t.sharedBadge), v = e("button", {
24
- name: a,
25
- slot: o.placeholderButton
26
- })(t.placeholderButton), P = e("span", {
27
- name: a,
28
- slot: o.placeholderIcon
29
- })(t.placeholderIcon), M = e(l, {
30
- name: a,
31
- slot: o.placeholderText
32
- })(t.placeholderText), O = e("div", {
33
- name: a,
34
- slot: o.phaseOverlay
35
- })(t.phaseOverlay), T = e("div", {
36
- name: a,
37
- slot: o.phaseSkeleton
38
- })(t.phaseSkeleton), f = e(l, {
39
- name: a,
40
- slot: o.phaseMessage
41
- })(t.phaseMessage), u = e(l, {
42
- name: a,
43
- slot: o.phaseHint
44
- })(t.phaseHint);
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
- y as CameraLabelStyled,
52
+ S as CameraLabelStyled,
47
53
  i as LiveBadgeStyled,
48
- u as PhaseHintStyled,
49
- f as PhaseMessageStyled,
54
+ C as PhaseHintStyled,
55
+ u as PhaseMessageStyled,
50
56
  O as PhaseOverlayStyled,
51
- T as PhaseSkeletonStyled,
52
- v as PlaceholderButtonStyled,
53
- P as PlaceholderIconWrapperStyled,
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 SharedBadgeStyled,
57
- S as StreamRootStyled
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":"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"}
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;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,gDAAgD;AAChD,MAAM,WAAW,gCAAgC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,KAAK,EAAE,kBAAkB,CAAC;IAC1B,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mCAAmC;IAClD,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;;;;;OASG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D;;;;OAIG;IACH,aAAa,EAAE,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAC3D;;;;OAIG;IACH,eAAe,EAAE,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAC/D;;;OAGG;IACH,eAAe,EAAE,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAC/D,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,qCAAqC;IACpD,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,WAAW,CAAC,8BAA8B,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,WAAW,CAAC,8BAA8B,CAAC,CAAC;IACxD,eAAe,CAAC,EAAE,WAAW,CAAC,oCAAoC,CAAC,CAAC;IACpE,YAAY,CAAC,EAAE,WAAW,CAAC,iCAAiC,CAAC,CAAC;IAC9D,cAAc,CAAC,EAAE,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAClE,gBAAgB,CAAC,EAAE,WAAW,CAAC,qCAAqC,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,WAAW,CAAC,iCAAiC,CAAC,CAAC;CAC/D;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9E,WAAW,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC,oCAAoC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpF,cAAc,CAAC,EAAE,OAAO,CAAC,mCAAmC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC,qCAAqC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC,iCAAiC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,+BAA+B,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAE/E;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CACrD,2BAA2B,EAC3B,OAAO,qCAAqC,EAC5C,KAAK,CACN,CAAC"}
@@ -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 per-control CSS).
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** — only one styling override on our side: the skin's
29
- * `--media-border-radius` is set to `0` so the chrome is edge-to-edge and
30
- * couples to the parent surface (see `VideoPlayer.styles.ts`).
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":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;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,2DA8BlB"}
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 e } from "@emotion/react/jsx-runtime";
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 R } from "./constants.js";
5
- function I({
6
- src: r,
5
+ import { VIDEO_PLAYER_VARIANTS as I } from "./constants.js";
6
+ function _({
7
+ src: e,
7
8
  poster: o,
8
- variant: t = R.default,
9
- suspended: l = !1,
10
- optionalControls: f,
11
- className: i,
12
- onReady: m,
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: p,
16
- onWaiting: u,
17
- onError: P,
18
- onDurationChange: d,
16
+ onEnded: d,
17
+ onWaiting: P,
18
+ onError: p,
19
+ onDurationChange: u,
19
20
  ref: y
20
21
  }) {
21
- return r ? /* @__PURE__ */ e(V.Player, { children: /* @__PURE__ */ e(
22
+ return e ? /* @__PURE__ */ r(V.Player, { children: /* @__PURE__ */ r(c, { children: /* @__PURE__ */ r(
22
23
  A,
23
24
  {
24
- src: r,
25
+ src: e,
25
26
  poster: o,
26
- variant: t,
27
- suspended: l,
28
- optionalControls: f,
29
- className: i,
27
+ variant: i,
28
+ suspended: t,
29
+ optionalControls: l,
30
+ className: m,
30
31
  controlRef: y,
31
- onReady: m,
32
+ onReady: f,
32
33
  onPlay: a,
33
34
  onPause: n,
34
- onEnded: p,
35
- onWaiting: u,
36
- onError: P,
37
- onDurationChange: d
35
+ onEnded: d,
36
+ onWaiting: P,
37
+ onError: p,
38
+ onDurationChange: u
38
39
  }
39
- ) }) : null;
40
+ ) }) }) : null;
40
41
  }
41
42
  export {
42
- I as VideoPlayer
43
+ _ as VideoPlayer
43
44
  };
@@ -1,30 +1,50 @@
1
- import { VideoPlayerStyles } from './types';
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 `@videojs/react/video/skin.css` is translated 1:1 to Emotion
7
- * object styles (`Videojs*Skin.styles.ts`, same pattern as Leaflet in `GpsMap`)
8
- * and spread into the `root` slot. Emotion scopes every skin selector under
9
- * this slot, so nothing leaks into the host's global CSS. On top of that we
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
- * Consumers can still override via
16
- * `theme.components.M4LVideoPlayer.styleOverrides`. Note the specificity
17
- * contract: because every skin rule is prefixed by the slot class, a
18
- * descendant override must repeat the vendor selector chain to win (e.g.
19
- * `'& .media-default-skin .media-controls'`, not `'& .media-controls'`).
20
- * Root-level custom properties (like `--media-border-radius` below) keep the
21
- * plain ergonomics and are the vendor's intended override surface.
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
- * Beyond `--media-border-radius` there are two more declarations here, both
24
- * documented inline below: a user-agent button reset and the base chrome
25
- * colour. Neither is per-control styling — they supply baselines the vendor
26
- * skin assumes from the host page but never declares, so the "no per-control
27
- * CSS" contract still holds.
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":"AACA,OAAO,KAAK,EAAyB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIxE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAsG/B,CAAC"}
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 { videojsDefaultSkinAllStyles as t } from "./VideojsDefaultSkin.styles.js";
3
- import { videojsMinimalSkinAllStyles as r } from "./VideojsMinimalSkin.styles.js";
4
- const d = {
5
- /** Wrapper that scopes the vendor skin styles, sizes the composed skin and flattens the player frame. */
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. The two vendor stylesheets are independent (they
12
- * key off different root classes, so they would not collide), but spreading
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(o) : t(o),
121
+ ...i?.variant === e.minimal ? r : n,
19
122
  position: "relative",
20
123
  width: "100%",
21
124
  height: "100%",
22
- // Flatten the player frame (the skin defaults to a 2rem radius). Cascades
23
- // as a CSS custom property into the skin's elements. The live ↔ VOD
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
- * User-agent button reset — restores the baseline the vendor skin assumes.
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
- * Our player is mounted inside a MUI surface whose `color` is
69
- * `text.primary`, i.e. near-black, so the chrome inherited dark text and
70
- * icons over its own black frame. Anchoring white here restores the
71
- * intended contrast. Not theme-derived on purpose: the chrome is a fixed
72
- * dark-glass surface regardless of the app's light/dark mode, exactly as
73
- * the vendor designed it, and the `--media-accent-*` tokens remain the
74
- * documented override surface.
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: "oklch(1 0 0)",
77
- /*
78
- * Drop the ±10s buttons on a small player.
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 videoPlayerStyles
167
+ d as videoPlayerResponsiveStyles,
168
+ p as videoPlayerStyles
107
169
  };
@@ -1,8 +1,9 @@
1
- import { CSSObject, Theme } from '@mui/material/styles';
1
+ import { CSSObject } from '@mui/material/styles';
2
2
  /**
3
- * Returns the vendor stylesheet converted to Emotion `CSSObject`s, keyed by the
4
- * vendor's original selectors. Spread it into the owning component's root slot
5
- * so the chrome is styled without any global CSS import.
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 videojsDefaultSkinAllStyles: (theme: Theme) => Record<string, CSSObject>;
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,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA+pD7D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAOlF,CAAC"}
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"}