@m4l/gclick 0.24.1 → 0.25.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 (86) hide show
  1. package/components/CameraStream/defaults/DefaultPhaseStreaming.d.ts +4 -0
  2. package/components/CameraStream/defaults/DefaultPhaseStreaming.d.ts.map +1 -1
  3. package/components/CameraStream/defaults/DefaultPhaseStreaming.js +35 -33
  4. package/components/CameraStreams/CameraStreamsProvider.d.ts +5 -0
  5. package/components/CameraStreams/CameraStreamsProvider.d.ts.map +1 -1
  6. package/components/CameraStreams/CameraStreamsProvider.js +10 -11
  7. package/components/CameraStreams/contexts/CameraStreamPlayersContext.d.ts +7 -3
  8. package/components/CameraStreams/contexts/CameraStreamPlayersContext.d.ts.map +1 -1
  9. package/components/CameraStreams/contexts/CameraStreamsSuspensionContext.d.ts +15 -0
  10. package/components/CameraStreams/contexts/CameraStreamsSuspensionContext.d.ts.map +1 -0
  11. package/components/CameraStreams/contexts/CameraStreamsSuspensionContext.js +5 -0
  12. package/components/CameraStreams/hooks/useCameraStreamsSuspended.d.ts +7 -0
  13. package/components/CameraStreams/hooks/useCameraStreamsSuspended.d.ts.map +1 -0
  14. package/components/CameraStreams/hooks/useCameraStreamsSuspended.js +8 -0
  15. package/components/CameraStreams/hooks/useStreamPolling.d.ts +1 -11
  16. package/components/CameraStreams/hooks/useStreamPolling.d.ts.map +1 -1
  17. package/components/CameraStreams/hooks/useStreamPolling.js +84 -89
  18. package/components/CameraStreams/hooks/useStreamRequest.d.ts +7 -8
  19. package/components/CameraStreams/hooks/useStreamRequest.d.ts.map +1 -1
  20. package/components/CameraStreams/hooks/useStreamRequest.js +34 -50
  21. package/components/CameraStreams/index.d.ts +2 -0
  22. package/components/CameraStreams/index.d.ts.map +1 -1
  23. package/components/CameraStreams/types.d.ts +23 -10
  24. package/components/CameraStreams/types.d.ts.map +1 -1
  25. package/components/VideoPlayer/VideoPlayer.d.ts +3 -3
  26. package/components/VideoPlayer/VideoPlayer.d.ts.map +1 -1
  27. package/components/VideoPlayer/VideoPlayer.js +29 -25
  28. package/components/VideoPlayer/VideoPlayer.styles.d.ts.map +1 -1
  29. package/components/VideoPlayer/VideoPlayer.styles.js +32 -6
  30. package/components/VideoPlayer/VideojsDefaultSkin.styles.d.ts.map +1 -1
  31. package/components/VideoPlayer/VideojsDefaultSkin.styles.js +936 -807
  32. package/components/VideoPlayer/VideojsMinimalSkin.styles.d.ts.map +1 -1
  33. package/components/VideoPlayer/VideojsMinimalSkin.styles.js +901 -809
  34. package/components/VideoPlayer/constants.d.ts +16 -0
  35. package/components/VideoPlayer/constants.d.ts.map +1 -1
  36. package/components/VideoPlayer/constants.js +27 -8
  37. package/components/VideoPlayer/hlsSource.d.ts +41 -0
  38. package/components/VideoPlayer/hlsSource.d.ts.map +1 -0
  39. package/components/VideoPlayer/hlsSource.js +35 -0
  40. package/components/VideoPlayer/hooks/useMediaReadiness.d.ts +22 -0
  41. package/components/VideoPlayer/hooks/useMediaReadiness.d.ts.map +1 -0
  42. package/components/VideoPlayer/hooks/useMediaReadiness.js +21 -0
  43. package/components/VideoPlayer/hooks/usePlaybackIntent.d.ts +14 -0
  44. package/components/VideoPlayer/hooks/usePlaybackIntent.d.ts.map +1 -0
  45. package/components/VideoPlayer/hooks/usePlaybackIntent.js +33 -0
  46. package/components/VideoPlayer/hooks/usePlayerControl.d.ts +6 -0
  47. package/components/VideoPlayer/hooks/usePlayerControl.d.ts.map +1 -1
  48. package/components/VideoPlayer/hooks/usePlayerControl.js +34 -25
  49. package/components/VideoPlayer/hooks/usePlayerEvents.d.ts +5 -1
  50. package/components/VideoPlayer/hooks/usePlayerEvents.d.ts.map +1 -1
  51. package/components/VideoPlayer/hooks/usePlayerEvents.js +10 -11
  52. package/components/VideoPlayer/player.factory.d.ts +24 -17
  53. package/components/VideoPlayer/player.factory.d.ts.map +1 -1
  54. package/components/VideoPlayer/storeSafety.d.ts +15 -0
  55. package/components/VideoPlayer/storeSafety.d.ts.map +1 -0
  56. package/components/VideoPlayer/storeSafety.js +25 -0
  57. package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts +4 -2
  58. package/components/VideoPlayer/subcomponents/GclickVideoSkin.d.ts.map +1 -1
  59. package/components/VideoPlayer/subcomponents/GclickVideoSkin.js +36 -24
  60. package/components/VideoPlayer/subcomponents/VideoPlayerStage.d.ts +5 -3
  61. package/components/VideoPlayer/subcomponents/VideoPlayerStage.d.ts.map +1 -1
  62. package/components/VideoPlayer/subcomponents/VideoPlayerStage.js +64 -49
  63. package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts +14 -2
  64. package/components/VideoPlayer/subcomponents/skin/VideoControlBar.d.ts.map +1 -1
  65. package/components/VideoPlayer/subcomponents/skin/VideoControlBar.js +90 -62
  66. package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts +11 -0
  67. package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.d.ts.map +1 -1
  68. package/components/VideoPlayer/subcomponents/skin/VideoErrorDialog.js +16 -13
  69. package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.d.ts +15 -0
  70. package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.d.ts.map +1 -0
  71. package/components/VideoPlayer/subcomponents/skin/VideoInputIndicators.js +57 -0
  72. package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.d.ts.map +1 -1
  73. package/components/VideoPlayer/subcomponents/skin/VideoSettingsMenu.js +10 -12
  74. package/components/VideoPlayer/subcomponents/skin/primitives.d.ts +11 -2
  75. package/components/VideoPlayer/subcomponents/skin/primitives.d.ts.map +1 -1
  76. package/components/VideoPlayer/subcomponents/skin/primitives.js +74 -72
  77. package/components/VideoPlayer/types.d.ts +43 -5
  78. package/components/VideoPlayer/types.d.ts.map +1 -1
  79. package/index.js +149 -145
  80. package/package.json +4 -2
  81. package/components/CameraStreams/subcomponents/CameraStreamsSuspensionController.d.ts +0 -18
  82. package/components/CameraStreams/subcomponents/CameraStreamsSuspensionController.d.ts.map +0 -1
  83. package/components/CameraStreams/subcomponents/CameraStreamsSuspensionController.js +0 -35
  84. package/components/VideoPlayer/hlsConfig.d.ts +0 -30
  85. package/components/VideoPlayer/hlsConfig.d.ts.map +0 -1
  86. package/components/VideoPlayer/hlsConfig.js +0 -33
@@ -1,25 +1,14 @@
1
- import { useRef as n, useCallback as P, useEffect as k } from "react";
2
- import { useMutation as I } from "@tanstack/react-query";
3
- import { useWindowToolsMF as R } from "@m4l/components";
4
- import { useNetwork as U } from "@m4l/core";
5
- import { isAttachedStreamResponse as q } from "../model.js";
6
- import { isBusyStreamError as T, extractErrorMessage as F } from "../helpers/commandError.js";
7
- import { useCameraStreamsStore as s } from "./useCameraStreamsStore.js";
8
- import { useStreamPolling as M } from "./useStreamPolling.js";
9
- function z({ playerKey: t }) {
10
- const { startProgress: l, stopProgress: a } = R(), { networkOperation: b } = U(), o = s((e) => e.players[t]), h = s((e) => e.labels), S = s((e) => e.config.endpointVideoPlay), w = s((e) => e.config.endpointVideoPlayback), c = s((e) => e.actions.setPhase), u = n(o);
11
- u.current = o;
12
- const i = n(!1), f = n(a);
13
- f.current = a;
14
- const A = P(() => {
15
- i.current = !0, l();
16
- }, [l]), p = P(() => {
17
- i.current = !1, a();
18
- }, [a]);
19
- k(() => () => {
20
- i.current && (i.current = !1, f.current());
21
- }, []);
22
- const C = u.current?.mode === "playback" ? w : S, g = o?.phase.kind, v = o?.phase.kind === "polling" ? o.phase.commandUuid : void 0, d = n(null), m = n(null), { mutate: y } = I({
1
+ import { useRef as k, useEffect as b } from "react";
2
+ import { useMutation as P } from "@tanstack/react-query";
3
+ import { useNetwork as g } from "@m4l/core";
4
+ import { isAttachedStreamResponse as h } from "../model.js";
5
+ import { isBusyStreamError as S, extractErrorMessage as w } from "../helpers/commandError.js";
6
+ import { useCameraStreamsStore as a } from "./useCameraStreamsStore.js";
7
+ import { useStreamPolling as C } from "./useStreamPolling.js";
8
+ function U({ playerKey: t }) {
9
+ const { networkOperation: d } = g(), r = a((e) => e.players[t]), c = a((e) => e.labels), m = a((e) => e.config.endpointVideoPlay), u = a((e) => e.config.endpointVideoPlayback), n = a((e) => e.actions.setPhase), s = k(r);
10
+ s.current = r;
11
+ const l = s.current?.mode === "playback" ? u : m, i = r?.phase.kind, { mutate: f } = P({
23
12
  /**
24
13
  * Build and submit the stream request for the current player. Snake-case
25
14
  * conversion is mandatory: stream endpoints validate `device_id`,
@@ -27,27 +16,27 @@ function z({ playerKey: t }) {
27
16
  * drop unknown camelCase keys.
28
17
  */
29
18
  mutationFn: async () => {
30
- const e = u.current;
19
+ const e = s.current;
31
20
  if (!e)
32
21
  throw new Error("player-not-loaded");
33
- const r = {
22
+ const o = {
34
23
  deviceId: e.unitId,
35
24
  channelId: Number(e.channelId),
36
25
  duration: e.durationSeconds
37
- }, E = e.mode === "playback" && e.playbackParams ? {
38
- ...r,
26
+ }, p = e.mode === "playback" && e.playbackParams ? {
27
+ ...o,
39
28
  beginTime: e.playbackParams.beginTime,
40
29
  uuid: e.playbackParams.sourceCommandUuid,
41
30
  createdAt: e.playbackParams.sourceCommandCreatedAt
42
- } : { ...r, allowAttach: !0 };
43
- return b({
31
+ } : { ...o, allowAttach: !0 };
32
+ return d({
44
33
  method: "POST",
45
- endPoint: C,
34
+ endPoint: l,
46
35
  toastError: !1,
47
36
  toastSuccess: !1,
48
37
  responseToCamelCase: !0,
49
38
  bodyToSnakeCase: !0,
50
- data: E
39
+ data: p
51
40
  });
52
41
  },
53
42
  /**
@@ -56,17 +45,18 @@ function z({ playerKey: t }) {
56
45
  * one is followed through `video/streams/:uuid` by `useStreamPolling`.
57
46
  */
58
47
  onSuccess: (e) => {
59
- A();
60
- const r = { stage: "queued", startedAt: Date.now() };
61
- if (q(e)) {
62
- m.current = null, d.current = null, c(t, { kind: "polling", streamUuid: e.stream.uuid, ...r });
48
+ const o = { stage: "queued", startedAt: Date.now() };
49
+ if (h(e)) {
50
+ n(t, { kind: "polling", streamUuid: e.stream.uuid, ...o });
63
51
  return;
64
52
  }
65
- m.current = e.command.deviceId, d.current = e.command.createdAt, c(t, {
53
+ n(t, {
66
54
  kind: "polling",
67
55
  commandUuid: e.command.uuid,
56
+ commandDeviceId: e.command.deviceId,
57
+ commandCreatedAt: e.command.createdAt,
68
58
  streamUuid: e.stream.uuid,
69
- ...r
59
+ ...o
70
60
  });
71
61
  },
72
62
  /**
@@ -78,24 +68,18 @@ function z({ playerKey: t }) {
78
68
  * toasts when several tiles are played simultaneously (grid play-all).
79
69
  */
80
70
  onError: (e) => {
81
- if (p(), T(e)) {
82
- c(t, { kind: "channelBusy" });
71
+ if (S(e)) {
72
+ n(t, { kind: "channelBusy" });
83
73
  return;
84
74
  }
85
- const r = F(e, h.requestErrorUnknown);
86
- c(t, { kind: "error", code: "request-failed", message: r });
75
+ const o = w(e, c.requestErrorUnknown);
76
+ n(t, { kind: "error", code: "request-failed", message: o });
87
77
  }
88
78
  });
89
- return k(() => {
90
- g === "requesting" && y();
91
- }, [g, t]), M({
92
- playerKey: t,
93
- commandUuid: v,
94
- deviceId: m.current,
95
- createdAt: d.current,
96
- endProgress: p
97
- }), void 0;
79
+ b(() => {
80
+ i === "requesting" && f();
81
+ }, [i, t]), C({ playerKey: t });
98
82
  }
99
83
  export {
100
- z as useStreamRequest
84
+ U as useStreamRequest
101
85
  };
@@ -2,11 +2,13 @@ export { CameraStreamsProvider } from './CameraStreamsProvider';
2
2
  export { CameraStreamsContext } from './contexts/CameraStreamsContext';
3
3
  export { CameraStreamPlayersContext } from './contexts/CameraStreamPlayersContext';
4
4
  export type { CameraStreamPlayersRegistry } from './contexts/CameraStreamPlayersContext';
5
+ export { CameraStreamsSuspensionContext } from './contexts/CameraStreamsSuspensionContext';
5
6
  export { createCameraStreamsStore } from './store';
6
7
  export type { CameraStreamsStore } from './store';
7
8
  export { useCameraStreams } from './hooks/useCameraStreams';
8
9
  export { useCameraStreamsStore } from './hooks/useCameraStreamsStore';
9
10
  export { useCameraStreamPlayers } from './hooks/useCameraStreamPlayers';
11
+ export { useCameraStreamsSuspended } from './hooks/useCameraStreamsSuspended';
10
12
  export { useStreamRequest } from './hooks/useStreamRequest';
11
13
  export { useCloudFrontCookieManager, useCloudFrontCookieManagerCore, useIsCloudFrontUrl, isCloudFrontUrl, } from './hooks/useCloudFrontCookie';
12
14
  export { CAMERA_STREAM_POLL_SCHEDULE, CAMERA_STREAM_WAITING_STAGES, COMPONENT_CAMERA_STREAMS_KEY_COMPONENT, DEFAULT_CAMERA_STREAMS_DURATION_SECONDS, DEFAULT_CAMERA_STREAMS_POLL_BUDGET_SECONDS, } from './constants';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,YAAY,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AAGzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,sCAAsC,EACtC,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAItF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,GACd,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,8BAA8B,EAC9B,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,SAAS,EACT,8BAA8B,EAC9B,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,YAAY,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAG3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,kBAAkB,EAClB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,sCAAsC,EACtC,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAItF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,GACd,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,8BAA8B,EAC9B,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,SAAS,EACT,8BAA8B,EAC9B,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -77,10 +77,11 @@ export interface WaitingStageStep {
77
77
  *
78
78
  * - `idle` — pristine OR reset after `stop`/`stopAll`. UI shows the play button.
79
79
  * - `requesting` — POST `video/play` is in flight, no token yet.
80
- * - `polling` — Backend accepted the request; polling for the HLS URL. Carries a
81
- * `commandUuid` when we own the stream (poll `devices/command`) and
82
- * none when we attached to somebody else's (poll `video/streams/:uuid`).
83
- * Carries a `stage` naming where the wait most likely is.
80
+ * - `polling` — Backend accepted the request; polling for the HLS URL. Carries the
81
+ * command coordinates when we own the stream (poll `devices/command`)
82
+ * and none when we attached to somebody else's (poll
83
+ * `video/streams/:uuid`). Carries a `stage` naming where the wait
84
+ * most likely is.
84
85
  * - `streaming` — An `hlsUrl` is available; the player renders. `attached` marks a
85
86
  * shared session and `endsAt` when the owner's duration runs out.
86
87
  * - `ended` — Playback reached the end of the manifest. Keeps the `streaming`
@@ -97,8 +98,14 @@ export type StreamPhase = {
97
98
  kind: 'requesting';
98
99
  } | {
99
100
  kind: 'polling';
100
- /** Absent when the tile joined a session somebody else started: there is no command of ours to follow. */
101
+ /**
102
+ * Coordinates of the command to poll. The three travel together or not at
103
+ * all: they are absent when the tile joined a session somebody else
104
+ * started, which has no command of ours to follow.
105
+ */
101
106
  commandUuid?: string;
107
+ commandDeviceId?: number;
108
+ commandCreatedAt?: string;
102
109
  streamUuid: string;
103
110
  /** Where the wait most likely is right now — drives the waiting copy. */
104
111
  stage: StreamWaitingStage;
@@ -358,11 +365,17 @@ export interface CameraStreamsStoreInitProps extends Omit<InitialCameraStreamsSt
358
365
  export interface CameraStreamsProviderProps extends InitialCameraStreamsStoreProps {
359
366
  children: ReactNode;
360
367
  /**
361
- * Soft-suspend the provider while the subtree is hidden (e.g. behind an
362
- * inactive tab kept alive via `display:none`). When it flips to `true` the
363
- * playing clips are paused — freeing video decode — while their state, the
364
- * store and the DOM stay intact; flipping back to `false` resumes exactly the
365
- * clips that were playing. Idle/ended/user-paused players are left untouched.
368
+ * Soft-suspend the provider while the subtree is hidden but kept alive (e.g.
369
+ * behind an inactive tab). When it flips to `true` the playing clips are
370
+ * paused — freeing video decode — while their state, the store and the DOM
371
+ * stay intact; flipping back to `false` resumes exactly the clips that were
372
+ * playing. Idle/ended/user-paused players are left untouched, and a clip that
373
+ * starts streaming while suspended never begins decoding at all.
374
+ *
375
+ * Agnostic to HOW the subtree is hidden, which matters: the consumers hide
376
+ * with `visibility: hidden` (to keep the grid measurable), so the `<video>`
377
+ * keeps its layout box and would really decode without this.
378
+ *
366
379
  * Defaults to `false` (no suspension). Tab-agnostic: callers map their own
367
380
  * visibility (`suspended={!isActive}`).
368
381
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../packages/gclick/src/components/CameraStreams/types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { VideoPlayerProps } from './types';
3
3
  * HLS-capable video player built on video.js v10 (`@videojs/react`).
4
4
  *
5
5
  * v10 is declarative and store-driven: a module-scope factory
6
- * (`player.factory.ts`) yields a `Provider` + `Container` + `usePlayer`; this
6
+ * (`player.factory.ts`) yields a `Player` provider + `usePlayer`; this
7
7
  * component mounts the provider once a source exists and renders the player
8
8
  * inside it. There is no video.js `Player` object — playback is driven through
9
9
  * the store, surfaced to consumers as a thin {@link VideoPlayerControl} handle.
@@ -24,7 +24,7 @@ import { VideoPlayerProps } from './types';
24
24
  * appear. Driven by `isLive`, so the skin never swaps and the `<video>` is
25
25
  * never remounted (no reload). See `GclickVideoSkin`.
26
26
  * - **Signed-cookie HLS** — the `<video>` is configured so every manifest +
27
- * segment request carries the CloudFront cookies (see `hlsConfig.ts`).
27
+ * segment request carries the CloudFront cookies (see `hlsSource.ts`).
28
28
  * - **Flat frame** — only one styling override on our side: the skin's
29
29
  * `--media-border-radius` is set to `0` so the chrome is edge-to-edge and
30
30
  * couples to the parent surface (see `VideoPlayer.styles.ts`).
@@ -36,5 +36,5 @@ import { VideoPlayerProps } from './types';
36
36
  * - **React 19 ref-as-prop** — `ref` resolves to a {@link VideoPlayerControl}
37
37
  * without `forwardRef`.
38
38
  */
39
- export declare function VideoPlayer({ src, poster, variant, className, onReady, onPlay, onPause, onEnded, onWaiting, onError, onDurationChange, ref, }: VideoPlayerProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
39
+ 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
40
  //# 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,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,GAAG,GACJ,EAAE,gBAAgB,2DA4BlB"}
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,39 +1,43 @@
1
- import { jsx as o } from "@emotion/react/jsx-runtime";
2
- import { StreamPlayer as P } from "./player.factory.js";
3
- import { VideoPlayerStage as V } from "./subcomponents/VideoPlayerStage.js";
4
- import { VIDEO_PLAYER_VARIANTS as y } from "./constants.js";
5
- function x({
1
+ import { jsx as e } from "@emotion/react/jsx-runtime";
2
+ import { StreamPlayer as V } from "./player.factory.js";
3
+ import { VideoPlayerStage as A } from "./subcomponents/VideoPlayerStage.js";
4
+ import { VIDEO_PLAYER_VARIANTS as R } from "./constants.js";
5
+ function I({
6
6
  src: r,
7
- poster: e,
8
- variant: t = y.default,
7
+ poster: o,
8
+ variant: t = R.default,
9
+ suspended: l = !1,
10
+ optionalControls: f,
9
11
  className: i,
10
12
  onReady: m,
11
- onPlay: f,
12
- onPause: l,
13
- onEnded: n,
14
- onWaiting: a,
15
- onError: d,
16
- onDurationChange: p,
17
- ref: u
13
+ onPlay: a,
14
+ onPause: n,
15
+ onEnded: p,
16
+ onWaiting: u,
17
+ onError: P,
18
+ onDurationChange: d,
19
+ ref: y
18
20
  }) {
19
- return r ? /* @__PURE__ */ o(P.Provider, { children: /* @__PURE__ */ o(
20
- V,
21
+ return r ? /* @__PURE__ */ e(V.Player, { children: /* @__PURE__ */ e(
22
+ A,
21
23
  {
22
24
  src: r,
23
- poster: e,
25
+ poster: o,
24
26
  variant: t,
27
+ suspended: l,
28
+ optionalControls: f,
25
29
  className: i,
26
- controlRef: u,
30
+ controlRef: y,
27
31
  onReady: m,
28
- onPlay: f,
29
- onPause: l,
30
- onEnded: n,
31
- onWaiting: a,
32
- onError: d,
33
- onDurationChange: p
32
+ onPlay: a,
33
+ onPause: n,
34
+ onEnded: p,
35
+ onWaiting: u,
36
+ onError: P,
37
+ onDurationChange: d
34
38
  }
35
39
  ) }) : null;
36
40
  }
37
41
  export {
38
- x as VideoPlayer
42
+ I as VideoPlayer
39
43
  };
@@ -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,iBA4E/B,CAAC"}
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,6 +1,6 @@
1
- import { VIDEO_PLAYER_VARIANTS as r } from "./constants.js";
1
+ import { VIDEO_PLAYER_VARIANTS as e } from "./constants.js";
2
2
  import { videojsDefaultSkinAllStyles as t } from "./VideojsDefaultSkin.styles.js";
3
- import { videojsMinimalSkinAllStyles as e } from "./VideojsMinimalSkin.styles.js";
3
+ import { videojsMinimalSkinAllStyles as r } from "./VideojsMinimalSkin.styles.js";
4
4
  const d = {
5
5
  /** Wrapper that scopes the vendor skin styles, sizes the composed skin and flattens the player frame. */
6
6
  root: ({ theme: o, ownerState: i }) => ({
@@ -11,11 +11,11 @@ const d = {
11
11
  * ONE sheet, never both. The two vendor stylesheets are independent (they
12
12
  * key off different root classes, so they would not collide), but spreading
13
13
  * both would inject ~1900 declarations that never match, and would emit
14
- * `@keyframes media-shake` and `@property --media-progress-fill` twice into
14
+ * un-scopable at-rules twice into
15
15
  * the global namespace — Emotion cannot scope those, and both sheets declare
16
16
  * them identically. Picking here keeps exactly one copy alive.
17
17
  */
18
- ...i?.variant === r.minimal ? e(o) : t(o),
18
+ ...i?.variant === e.minimal ? r(o) : t(o),
19
19
  position: "relative",
20
20
  width: "100%",
21
21
  height: "100%",
@@ -70,10 +70,36 @@ const d = {
70
70
  * icons over its own black frame. Anchoring white here restores the
71
71
  * intended contrast. Not theme-derived on purpose: the chrome is a fixed
72
72
  * dark-glass surface regardless of the app's light/dark mode, exactly as
73
- * the vendor designed it, and `--media-color-primary` remains the
73
+ * the vendor designed it, and the `--media-accent-*` tokens remain the
74
74
  * documented override surface.
75
75
  */
76
- color: "oklch(1 0 0)"
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"
101
+ }
102
+ }
77
103
  })
78
104
  };
79
105
  export {
@@ -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;AA6hD7D;;;;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,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA+pD7D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAOlF,CAAC"}