@flamingo-stack/openframe-frontend-core 0.0.700 → 0.0.701-snapshot.20261005171139

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 (95) hide show
  1. package/dist/{chunk-MFORWVGD.js → chunk-2V4Z44G6.js} +4 -4
  2. package/dist/{chunk-GFXZMFDX.cjs → chunk-3G76LRGL.cjs} +9 -9
  3. package/dist/{chunk-65YVUYWJ.cjs → chunk-3WSFIV5G.cjs} +32 -32
  4. package/dist/{chunk-GD4JALTR.js → chunk-446KS5BG.js} +1 -1
  5. package/dist/{chunk-BRQY2HKD.cjs → chunk-AEQANLBW.cjs} +17 -17
  6. package/dist/{chunk-ZSPHOHOW.cjs → chunk-ASN65P3F.cjs} +2 -2
  7. package/dist/{chunk-YBC346FY.cjs → chunk-B3LZJ6J3.cjs} +12 -12
  8. package/dist/{chunk-JPVDJB27.js → chunk-BO5ZHDA4.js} +3 -3
  9. package/dist/{chunk-2CSYUMNM.cjs → chunk-CXDJUKC6.cjs} +2 -2
  10. package/dist/{chunk-QPNR4N7N.cjs → chunk-CYYTD5ZK.cjs} +16 -16
  11. package/dist/{chunk-B7M6QEEM.js → chunk-CZ34HXDW.js} +661 -275
  12. package/dist/{chunk-4H5Q6MQG.cjs → chunk-E3DH543A.cjs} +35 -35
  13. package/dist/{chunk-BZYMGI4L.js → chunk-ETFFEA3J.js} +1 -1
  14. package/dist/{chunk-QDIX2ZRL.cjs → chunk-FD4DBTFO.cjs} +430 -44
  15. package/dist/{chunk-BPS7JQCI.cjs → chunk-FHM7GD5B.cjs} +2 -2
  16. package/dist/{chunk-QZGFJBG5.cjs → chunk-HIXGAY2L.cjs} +50 -50
  17. package/dist/{chunk-V5QNDOEL.js → chunk-HPJ4XS2L.js} +3 -3
  18. package/dist/{chunk-DJLZXJYB.js → chunk-HYFLTFFB.js} +1 -1
  19. package/dist/{chunk-CUPJCGLB.js → chunk-IZKOQVXO.js} +1 -1
  20. package/dist/{chunk-N7DPIH57.js → chunk-JOY6HVPV.js} +1 -1
  21. package/dist/{chunk-NIT257DV.cjs → chunk-L7KZA7ZD.cjs} +2 -2
  22. package/dist/{chunk-BQ34PIFC.cjs → chunk-LZNJH23A.cjs} +3 -3
  23. package/dist/{chunk-EONNPRAW.js → chunk-MWUBBBWZ.js} +1 -1
  24. package/dist/{chunk-N7HMUQRV.js → chunk-PLK6GHN7.js} +1 -1
  25. package/dist/{chunk-DG2I57UM.cjs → chunk-QFW3RUZS.cjs} +16 -16
  26. package/dist/{chunk-S4ADN25W.js → chunk-RS7HWAYX.js} +1 -1
  27. package/dist/{chunk-PNWIVND4.js → chunk-SAA7B3DA.js} +2 -2
  28. package/dist/{chunk-6JG75WVO.js → chunk-UJJWTJ6S.js} +4 -4
  29. package/dist/{chunk-7ZDTAABP.cjs → chunk-YGRHITPY.cjs} +3 -3
  30. package/dist/{chunk-A5ZGKBN2.js → chunk-Z5HDCZAS.js} +1 -1
  31. package/dist/components/announcement-bar.d.ts +1 -1
  32. package/dist/components/announcement-bar.d.ts.map +1 -1
  33. package/dist/components/case-studies/index.cjs +11 -11
  34. package/dist/components/case-studies/index.js +2 -2
  35. package/dist/components/contact/index.cjs +3 -3
  36. package/dist/components/contact/index.js +2 -2
  37. package/dist/components/docs/index.cjs +6 -6
  38. package/dist/components/docs/index.js +5 -5
  39. package/dist/components/embeds/index.cjs +3 -3
  40. package/dist/components/embeds/index.js +2 -2
  41. package/dist/components/faq/index.cjs +3 -3
  42. package/dist/components/faq/index.js +2 -2
  43. package/dist/components/features/index.cjs +22 -2
  44. package/dist/components/features/index.js +21 -1
  45. package/dist/components/features/remote-session/index.d.ts +9 -1
  46. package/dist/components/features/remote-session/index.d.ts.map +1 -1
  47. package/dist/components/features/remote-session/remote-session-block.d.ts +4 -2
  48. package/dist/components/features/remote-session/remote-session-block.d.ts.map +1 -1
  49. package/dist/components/features/remote-session/remote-session-chat-panel.d.ts +4 -2
  50. package/dist/components/features/remote-session/remote-session-chat-panel.d.ts.map +1 -1
  51. package/dist/components/features/remote-session/remote-session-events.d.ts +24 -0
  52. package/dist/components/features/remote-session/remote-session-events.d.ts.map +1 -0
  53. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +41 -0
  54. package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -0
  55. package/dist/components/features/remote-session/remote-session-parts.d.ts +13 -2
  56. package/dist/components/features/remote-session/remote-session-parts.d.ts.map +1 -1
  57. package/dist/components/features/remote-session/remote-session-status.d.ts +34 -0
  58. package/dist/components/features/remote-session/remote-session-status.d.ts.map +1 -0
  59. package/dist/components/features/remote-session/remote-session-viewers.d.ts +15 -0
  60. package/dist/components/features/remote-session/remote-session-viewers.d.ts.map +1 -0
  61. package/dist/components/features/remote-session/types.d.ts +22 -0
  62. package/dist/components/features/remote-session/types.d.ts.map +1 -1
  63. package/dist/components/help-center-pages/index.cjs +49 -49
  64. package/dist/components/help-center-pages/index.js +13 -13
  65. package/dist/components/index.cjs +55 -34
  66. package/dist/components/index.js +35 -14
  67. package/dist/components/meeting-scheduler/index.cjs +22 -22
  68. package/dist/components/meeting-scheduler/index.js +1 -1
  69. package/dist/components/navigation/index.cjs +5 -5
  70. package/dist/components/navigation/index.js +4 -4
  71. package/dist/components/onboarding-guides/index.cjs +5 -5
  72. package/dist/components/onboarding-guides/index.js +4 -4
  73. package/dist/components/tickets/index.cjs +6 -6
  74. package/dist/components/tickets/index.js +5 -5
  75. package/dist/components/ui/index.cjs +2 -2
  76. package/dist/components/ui/index.js +1 -1
  77. package/dist/index.cjs +26 -6
  78. package/dist/index.js +25 -5
  79. package/dist/tailwind.config.cjs +7 -1
  80. package/dist/tailwind.config.js +7 -1
  81. package/dist/types/announcement.d.ts +1 -6
  82. package/dist/types/announcement.d.ts.map +1 -1
  83. package/package.json +1 -1
  84. package/src/components/announcement-bar.tsx +7 -2
  85. package/src/components/features/remote-session/index.ts +28 -0
  86. package/src/components/features/remote-session/remote-session-block.tsx +6 -3
  87. package/src/components/features/remote-session/remote-session-chat-panel.tsx +11 -7
  88. package/src/components/features/remote-session/remote-session-events.tsx +93 -0
  89. package/src/components/features/remote-session/remote-session-keep-modals.tsx +208 -0
  90. package/src/components/features/remote-session/remote-session-parts.tsx +32 -3
  91. package/src/components/features/remote-session/remote-session-status.tsx +102 -0
  92. package/src/components/features/remote-session/remote-session-viewers.tsx +103 -0
  93. package/src/components/features/remote-session/types.ts +26 -0
  94. package/src/types/announcement.ts +1 -6
  95. package/tailwind.config.ts +6 -0
@@ -0,0 +1,24 @@
1
+ import type { RemoteSessionEvent } from './types';
2
+ /** `mm:ss` from the start of a recording; `h:mm:ss` from the first hour on. */
3
+ export declare function formatRemoteSessionOffset(offsetMs: number): string;
4
+ export interface RemoteSessionEventListProps {
5
+ events: RemoteSessionEvent[];
6
+ /** The event the playhead is on; highlighted. */
7
+ activeEventId?: string | null;
8
+ /** Seek the player to the event. */
9
+ onSelect?: (event: RemoteSessionEvent) => void;
10
+ className?: string;
11
+ }
12
+ /** SESSION EVENTS under the recording player: each event with its time, newest last. */
13
+ export declare function RemoteSessionEventList({ events, activeEventId, onSelect, className }: RemoteSessionEventListProps): import("react").JSX.Element;
14
+ export interface RemoteSessionTimelineMarkersProps {
15
+ events: RemoteSessionEvent[];
16
+ /** Length of the recording; events past it are pinned to the end. */
17
+ durationMs: number;
18
+ /** Seek the player to the event. */
19
+ onSelect?: (event: RemoteSessionEvent) => void;
20
+ className?: string;
21
+ }
22
+ /** The event marks above the player's track, one per event, at its share of the recording. */
23
+ export declare function RemoteSessionTimelineMarkers({ events, durationMs, onSelect, className, }: RemoteSessionTimelineMarkersProps): import("react").JSX.Element | null;
24
+ //# sourceMappingURL=remote-session-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-session-events.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/remote-session-events.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,+EAA+E;AAC/E,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMlE;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,2BAA2B,+BA8BjH;AAED,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8FAA8F;AAC9F,wBAAgB,4BAA4B,CAAC,EAC3C,MAAM,EACN,UAAU,EACV,QAAQ,EACR,SAAS,GACV,EAAE,iCAAiC,sCAqBnC"}
@@ -0,0 +1,41 @@
1
+ import type { RemoteSessionKeepReason } from './types';
2
+ /** How each Keep reason reads in the dialog, the session list and the release notice. */
3
+ export declare const REMOTE_SESSION_KEEP_REASON_LABELS: Record<RemoteSessionKeepReason, string>;
4
+ export interface KeepRecordingSelection {
5
+ reason: RemoteSessionKeepReason;
6
+ /** Trimmed; set for `OTHER` only. */
7
+ description: string | null;
8
+ }
9
+ export interface KeepRecordingModalProps {
10
+ isOpen: boolean;
11
+ onClose: () => void;
12
+ /** What kept recordings take of the tenant's allowance, e.g. "612 MB of 50 GB". */
13
+ keptUsage: string;
14
+ /** The Keep is in flight: the button spins and the dialog refuses to close. */
15
+ isPending?: boolean;
16
+ onConfirm: (selection: KeepRecordingSelection) => void;
17
+ }
18
+ /** Keep this recording: exempts it from automatic deletion until someone releases it. */
19
+ export declare function KeepRecordingModal({ isOpen, onClose, keptUsage, isPending, onConfirm, }: KeepRecordingModalProps): import("react").JSX.Element;
20
+ export interface ReleaseKeepingModalProps {
21
+ isOpen: boolean;
22
+ onClose: () => void;
23
+ /** Who placed the Keep. */
24
+ keptBy: string;
25
+ /** When the Keep was placed, formatted, e.g. "27 Jul 2026". */
26
+ keptOn: string;
27
+ /** The reason as it reads in the sentence, e.g. "Client dispute". */
28
+ reason: string;
29
+ /** The ticket or reference the Keep was placed for. */
30
+ ticket?: string | null;
31
+ /** When the recording will be deleted once released, formatted. */
32
+ expiresOn: string;
33
+ /** The original expiry date when it has already passed, so the release adds the grace period. */
34
+ dueOn?: string | null;
35
+ /** The release is in flight: the button spins and the dialog refuses to close. */
36
+ isPending?: boolean;
37
+ onConfirm: () => void;
38
+ }
39
+ /** Release Keeping: hands the recording back to the normal expiry, nothing is deleted on the spot. */
40
+ export declare function ReleaseKeepingModal({ isOpen, onClose, keptBy, keptOn, reason, ticket, expiresOn, dueOn, isPending, onConfirm, }: ReleaseKeepingModalProps): import("react").JSX.Element;
41
+ //# sourceMappingURL=remote-session-keep-modals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-session-keep-modals.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/remote-session-keep-modals.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD,yFAAyF;AACzF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAKrF,CAAC;AAmBF,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,uBAAuB,CAAC;IAChC,qCAAqC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACxD;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAS,GACV,EAAE,uBAAuB,+BAoFzB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAiB,EACjB,SAAS,GACV,EAAE,wBAAwB,+BA+B1B"}
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
- import type { RemoteSessionDragHandlers } from './types';
2
+ import type { RemoteSessionDragHandlers, RemoteSessionViewer } from './types';
3
3
  export interface RemoteSessionScopeProps {
4
4
  children: ReactNode;
5
5
  className?: string;
@@ -20,7 +20,18 @@ export interface RemoteSessionOrgLogoProps {
20
20
  /** Organization logo tile; the OpenFrame mark when there is no logo. */
21
21
  export declare function RemoteSessionOrgLogo({ name, logoUrl, sizePx, className }: RemoteSessionOrgLogoProps): import("react").JSX.Element;
22
22
  /** The green SESSION RECORDING tag. */
23
- export declare function RemoteSessionRecordingTag(): import("react").JSX.Element;
23
+ export declare function RemoteSessionRecordingTag({ className }: {
24
+ className?: string;
25
+ }): import("react").JSX.Element;
26
+ /**
27
+ * The row under the block's header: the SESSION RECORDING tag and, while
28
+ * colleagues watch, who is in the session. With viewers the tag stretches to
29
+ * the left and the viewers sit on the right.
30
+ */
31
+ export declare function RemoteSessionStatusRow({ showRecordingTag, viewers, }: {
32
+ showRecordingTag: boolean;
33
+ viewers?: RemoteSessionViewer[];
34
+ }): import("react").JSX.Element | null;
24
35
  /** Grab cursor on the surfaces the window is moved by. */
25
36
  export declare const REMOTE_SESSION_DRAG_HANDLE_CLASS = "cursor-grab active:cursor-grabbing";
26
37
  /** The dragger glyph in the top-right corner of a block header: the visible handle for moving it. */
@@ -1 +1 @@
1
- {"version":3,"file":"remote-session-parts.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/remote-session-parts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAKhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AA4BzD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,+BAMlF;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,yBAAyB,+BA2BnG;AAED,uCAAuC;AACvC,wBAAgB,yBAAyB,gCAOxC;AAED,0DAA0D;AAC1D,eAAO,MAAM,gCAAgC,uCAAuC,CAAC;AAErF,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,yBAAyB,CAAA;CAAE,+BAalG;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO/D"}
1
+ {"version":3,"file":"remote-session-parts.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/remote-session-parts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAMhF,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA4B9E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,uBAAuB,+BAMlF;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,yBAAyB,+BA2BnG;AAED,uCAAuC;AACvC,wBAAgB,yBAAyB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAY9E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,gBAAgB,EAChB,OAAO,GACR,EAAE;IACD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACjC,sCAUA;AAED,0DAA0D;AAC1D,eAAO,MAAM,gCAAgC,uCAAuC,CAAC;AAErF,qGAAqG;AACrG,wBAAgB,oBAAoB,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,CAAC,EAAE,yBAAyB,CAAA;CAAE,+BAalG;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO/D"}
@@ -0,0 +1,34 @@
1
+ import type { RemoteSessionStatus } from './types';
2
+ export interface RemoteSessionStatusTagProps {
3
+ status: RemoteSessionStatus;
4
+ className?: string;
5
+ }
6
+ /** LIVE / PROCESSING / FAILED beside a session's date in the session list and on its page. */
7
+ export declare function RemoteSessionStatusTag({ status, className }: RemoteSessionStatusTagProps): import("react").JSX.Element;
8
+ export type RemoteSessionExpiryProps = {
9
+ className?: string;
10
+ } & ({
11
+ state: 'kept';
12
+ keptBy: string;
13
+ reason: string;
14
+ } | {
15
+ state: 'scheduled';
16
+ date: string;
17
+ remaining?: string | null;
18
+ } | {
19
+ state: 'expired';
20
+ } | {
21
+ state: 'none';
22
+ });
23
+ /** The EXPIRES cell of a recording: its expiry date, the Keep holding it, or that it has expired. */
24
+ export declare function RemoteSessionExpiry(props: RemoteSessionExpiryProps): import("react").JSX.Element;
25
+ export interface RemoteSessionStorageAlertProps {
26
+ /** `device` on the device page (new sessions there aren't recorded); `session` on a running session. */
27
+ scope: 'device' | 'session';
28
+ /** The plan's recording storage, e.g. "100 GB"; named on the device page. */
29
+ capacity?: string | null;
30
+ className?: string;
31
+ }
32
+ /** The banner shown while the tenant's recording storage is full. */
33
+ export declare function RemoteSessionStorageAlert({ scope, capacity, className }: RemoteSessionStorageAlertProps): import("react").JSX.Element;
34
+ //# sourceMappingURL=remote-session-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-session-status.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/remote-session-status.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAanD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,2BAA2B,+BAUxF;AAED,MAAM,MAAM,wBAAwB,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,CAC5D;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/D;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CACpB,CAAC;AAEF,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,+BA2BlE;AAED,MAAM,WAAW,8BAA8B;IAC7C,wGAAwG;IACxG,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qEAAqE;AACrE,wBAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,8BAA8B,+BAmBvG"}
@@ -0,0 +1,15 @@
1
+ import type { RemoteSessionViewer } from './types';
2
+ export interface RemoteSessionViewersProps {
3
+ /** Everyone in the session, the host included. */
4
+ viewers: RemoteSessionViewer[];
5
+ /** Faces shown before the rest collapse into "+N". */
6
+ max?: number;
7
+ className?: string;
8
+ }
9
+ /**
10
+ * Who is in a live session: an avatar stack (the host ringed in the accent
11
+ * colour) that opens the full list. Shown to the host, to the watchers and to
12
+ * the end user.
13
+ */
14
+ export declare function RemoteSessionViewers({ viewers, max, className }: RemoteSessionViewersProps): import("react").JSX.Element | null;
15
+ //# sourceMappingURL=remote-session-viewers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-session-viewers.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/remote-session-viewers.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAanD,MAAM,WAAW,yBAAyB;IACxC,kDAAkD;IAClD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,GAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,sCAqE9F"}
@@ -25,6 +25,28 @@ export interface RemoteSessionChatMessage {
25
25
  }
26
26
  /** The terminal dialogs of a session: the end confirm and the two "it is over" notices. */
27
27
  export type RemoteSessionDialogVariant = 'end-confirm' | 'session-ended' | 'connection-lost';
28
+ /** Someone in a live session: the technician running it (the host) or a colleague watching. */
29
+ export interface RemoteSessionViewer {
30
+ id: string;
31
+ name: string;
32
+ avatarUrl?: string | null;
33
+ /** The technician running the session; listed first and ringed in the accent colour. */
34
+ isHost?: boolean;
35
+ /** The signed-in user, labelled "(you)" in the list. */
36
+ isYou?: boolean;
37
+ }
38
+ /** Where a remote session's recording is in its lifecycle, as the session list tags it. */
39
+ export type RemoteSessionStatus = 'live' | 'processing' | 'failed';
40
+ /** Why a recording is kept past its expiry date. */
41
+ export type RemoteSessionKeepReason = 'CLIENT_DISPUTE' | 'INTERNAL_REVIEW' | 'LEGAL_OR_COMPLIANCE' | 'OTHER';
42
+ /** A moment of the session, placed on the recording by its offset from the start. */
43
+ export interface RemoteSessionEvent {
44
+ id: string;
45
+ /** Milliseconds from the start of the recording. */
46
+ offsetMs: number;
47
+ title: string;
48
+ detail?: string | null;
49
+ }
28
50
  /**
29
51
  * Pointer handlers a host attaches to the surfaces the user moves the window
30
52
  * by (the desktop chat starts a native window drag from them).
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,wDAAwD;AACxD,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,uBAAuB,CAAC;IAChC,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,IAAI,CAAC;CACV;AAED,2FAA2F;AAC3F,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE7F;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,cAAc,CAAC,WAAW,CAAC,EAC3B,eAAe,GAAG,eAAe,GAAG,aAAa,CAClD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/features/remote-session/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,wDAAwD;AACxD,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,uBAAuB,CAAC;IAChC,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,IAAI,CAAC;CACV;AAED,2FAA2F;AAC3F,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE7F,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wFAAwF;IACxF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEnE,oDAAoD;AACpD,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,OAAO,CAAC;AAE7G,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,cAAc,CAAC,WAAW,CAAC,EAC3B,eAAe,GAAG,eAAe,GAAG,aAAa,CAClD,CAAC"}
@@ -6,38 +6,38 @@
6
6
 
7
7
 
8
8
 
9
- var _chunk4H5Q6MQGcjs = require('../../chunk-4H5Q6MQG.cjs');
9
+ var _chunkE3DH543Acjs = require('../../chunk-E3DH543A.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunk65YVUYWJcjs = require('../../chunk-65YVUYWJ.cjs');
14
- require('../../chunk-BQ34PIFC.cjs');
13
+ var _chunk3WSFIV5Gcjs = require('../../chunk-3WSFIV5G.cjs');
14
+ require('../../chunk-LZNJH23A.cjs');
15
15
  require('../../chunk-UIBSSVON.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunk7ZDTAABPcjs = require('../../chunk-7ZDTAABP.cjs');
19
+ var _chunkYGRHITPYcjs = require('../../chunk-YGRHITPY.cjs');
20
20
 
21
21
 
22
- var _chunk2CSYUMNMcjs = require('../../chunk-2CSYUMNM.cjs');
22
+ var _chunkCXDJUKC6cjs = require('../../chunk-CXDJUKC6.cjs');
23
23
 
24
24
 
25
- var _chunkQZGFJBG5cjs = require('../../chunk-QZGFJBG5.cjs');
25
+ var _chunkHIXGAY2Lcjs = require('../../chunk-HIXGAY2L.cjs');
26
26
 
27
27
 
28
- var _chunkQPNR4N7Ncjs = require('../../chunk-QPNR4N7N.cjs');
28
+ var _chunkCYYTD5ZKcjs = require('../../chunk-CYYTD5ZK.cjs');
29
29
 
30
30
 
31
31
 
32
- var _chunkGFXZMFDXcjs = require('../../chunk-GFXZMFDX.cjs');
32
+ var _chunk3G76LRGLcjs = require('../../chunk-3G76LRGL.cjs');
33
33
  require('../../chunk-HUOLB7ZN.cjs');
34
- require('../../chunk-NIT257DV.cjs');
34
+ require('../../chunk-L7KZA7ZD.cjs');
35
35
 
36
36
 
37
37
 
38
- var _chunkDG2I57UMcjs = require('../../chunk-DG2I57UM.cjs');
39
- require('../../chunk-BPS7JQCI.cjs');
40
- require('../../chunk-ZSPHOHOW.cjs');
38
+ var _chunkQFW3RUZScjs = require('../../chunk-QFW3RUZS.cjs');
39
+ require('../../chunk-FHM7GD5B.cjs');
40
+ require('../../chunk-ASN65P3F.cjs');
41
41
 
42
42
 
43
43
  var _chunkXCIFHW4Ecjs = require('../../chunk-XCIFHW4E.cjs');
@@ -53,7 +53,7 @@ var _chunkXCIFHW4Ecjs = require('../../chunk-XCIFHW4E.cjs');
53
53
 
54
54
 
55
55
 
56
- var _chunkQDIX2ZRLcjs = require('../../chunk-QDIX2ZRL.cjs');
56
+ var _chunkFD4DBTFOcjs = require('../../chunk-FD4DBTFO.cjs');
57
57
  require('../../chunk-HQQE74RO.cjs');
58
58
  require('../../chunk-DEY6XXGO.cjs');
59
59
 
@@ -138,9 +138,9 @@ function RoadmapPage({
138
138
  belowContent,
139
139
  shell
140
140
  }) {
141
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGFXZMFDXcjs.DevSectionPage, { sectionKey: "roadmap", backButton, title, subtitle, shell, children: [
141
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk3G76LRGLcjs.DevSectionPage, { sectionKey: "roadmap", backButton, title, subtitle, shell, children: [
142
142
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
143
- _chunk4H5Q6MQGcjs.RoadmapView,
143
+ _chunkE3DH543Acjs.RoadmapView,
144
144
  {
145
145
  endpoint: roadmapEndpoint,
146
146
  initialItems,
@@ -166,9 +166,9 @@ function ProductReleasesListPage({
166
166
  belowContent,
167
167
  shell
168
168
  }) {
169
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGFXZMFDXcjs.DevSectionPage, { sectionKey: "releases", backButton, title, subtitle, shell, children: [
169
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk3G76LRGLcjs.DevSectionPage, { sectionKey: "releases", backButton, title, subtitle, shell, children: [
170
170
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
171
- _chunk4H5Q6MQGcjs.ProductReleasesView,
171
+ _chunkE3DH543Acjs.ProductReleasesView,
172
172
  {
173
173
  endpoint: releasesEndpoint,
174
174
  basePath,
@@ -191,8 +191,8 @@ function DeliveryPage({
191
191
  belowContent,
192
192
  shell
193
193
  }) {
194
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGFXZMFDXcjs.DevSectionPage, { sectionKey: "delivery", backButton, title, subtitle, shell, children: [
195
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4H5Q6MQGcjs.DeliveryLists, { completedApiEndpoint: completedEndpoint, inProgressApiEndpoint: inProgressEndpoint }),
194
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk3G76LRGLcjs.DevSectionPage, { sectionKey: "delivery", backButton, title, subtitle, shell, children: [
195
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE3DH543Acjs.DeliveryLists, { completedApiEndpoint: completedEndpoint, inProgressApiEndpoint: inProgressEndpoint }),
196
196
  belowContent
197
197
  ] });
198
198
  }
@@ -212,9 +212,9 @@ function OnboardingGuidesCatalogPage({
212
212
  belowContent,
213
213
  shell
214
214
  }) {
215
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGFXZMFDXcjs.DevSectionPage, { sectionKey: "onboarding", backButton, title, subtitle, shell, children: [
215
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk3G76LRGLcjs.DevSectionPage, { sectionKey: "onboarding", backButton, title, subtitle, shell, children: [
216
216
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
217
- _chunkDG2I57UMcjs.OnboardingGuidesCatalogView,
217
+ _chunkQFW3RUZScjs.OnboardingGuidesCatalogView,
218
218
  {
219
219
  guidesEndpoint,
220
220
  sectionsEndpoint,
@@ -287,7 +287,7 @@ function AiSection({ practices }) {
287
287
  }
288
288
  ]
289
289
  }));
290
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows });
290
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows });
291
291
  }
292
292
  function ComplianceSection({ frameworks }) {
293
293
  const rows = frameworks.map((framework) => {
@@ -298,7 +298,7 @@ function ComplianceSection({ frameworks }) {
298
298
  columns: [
299
299
  {
300
300
  key: "framework",
301
- leadingIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.ComplianceLogo, { names: [framework.standard, framework.label], fallback: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { "aria-hidden": "true" }) }),
301
+ leadingIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.ComplianceLogo, { names: [framework.standard, framework.label], fallback: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { "aria-hidden": "true" }) }),
302
302
  value: framework.label,
303
303
  label: _nullishCoalesce(framework.description, () => ( void 0)),
304
304
  wrap: true
@@ -312,7 +312,7 @@ function ComplianceSection({ frameworks }) {
312
312
  ]
313
313
  };
314
314
  });
315
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows });
315
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows });
316
316
  }
317
317
  var CONTROL_ROW_CLASS = "h-14 md:h-20 overflow-hidden";
318
318
  function controlRows(controls) {
@@ -351,7 +351,7 @@ function ControlsListSkeleton() {
351
351
  }
352
352
  ]
353
353
  }));
354
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows });
354
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows });
355
355
  }
356
356
  function ControlsSection({ endpoint, seed }) {
357
357
  const [domain, setDomain] = _react.useState.call(void 0, seed.domain);
@@ -379,12 +379,12 @@ function ControlsSection({ endpoint, seed }) {
379
379
  else summary = `${countLabel(current.controls.length, "passing control")} in ${current.domain}`;
380
380
  let body;
381
381
  if (answer.error && !current) {
382
- body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.LoadError, { message: "Could not load the controls", onRetry: answer.reload });
382
+ body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.LoadError, { message: "Could not load the controls", onRetry: answer.reload });
383
383
  } else if (!current) {
384
384
  body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ControlsListSkeleton, {});
385
385
  } else if (current.controls.length === 0) {
386
386
  body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
387
- _chunkGFXZMFDXcjs.ListEmptyState,
387
+ _chunk3G76LRGLcjs.ListEmptyState,
388
388
  {
389
389
  isFiltered: true,
390
390
  filtered: {
@@ -397,11 +397,11 @@ function ControlsSection({ endpoint, seed }) {
397
397
  }
398
398
  );
399
399
  } else {
400
- body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows: controlRows(current.controls) });
400
+ body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows: controlRows(current.controls) });
401
401
  }
402
402
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)]", children: [
403
403
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
404
- _chunkQDIX2ZRLcjs.TabNavigation,
404
+ _chunkFD4DBTFOcjs.TabNavigation,
405
405
  {
406
406
  tabs,
407
407
  activeTab,
@@ -411,7 +411,7 @@ function ControlsSection({ endpoint, seed }) {
411
411
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-s)] md:flex-row md:items-center md:justify-between", children: [
412
412
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: BODY_TEXT, "aria-live": "polite", children: summary }),
413
413
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-80", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
414
- _chunkQDIX2ZRLcjs.SearchInput,
414
+ _chunkFD4DBTFOcjs.SearchInput,
415
415
  {
416
416
  placeholder: "Search controls",
417
417
  value: typed,
@@ -460,7 +460,7 @@ function DocumentsSection({
460
460
  ]
461
461
  };
462
462
  });
463
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows });
463
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows });
464
464
  }
465
465
  function DocumentRequestModal({
466
466
  open,
@@ -474,7 +474,7 @@ function DocumentRequestModal({
474
474
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRTGPIHVOcjs.ModalContent, { children: open ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-m)]", children: [
475
475
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: BODY_TEXT, children: "We share gated security documents under NDA. Leave your work email and our security team will follow up with access, usually within one business day." }),
476
476
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
477
- _chunkQPNR4N7Ncjs.ContactForm,
477
+ _chunkCYYTD5ZKcjs.ContactForm,
478
478
  {
479
479
  rescue: _chunk3L7KCOGOcjs.RESCUE_FORMS.trustCenterRequest,
480
480
  title: "",
@@ -492,12 +492,12 @@ function DocumentRequestModal({
492
492
  ] });
493
493
  }
494
494
  function subprocessorMark({ name, logoUrl }) {
495
- if (logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.EntityImage, { src: logoUrl, alt: name, fallbackText: name, sizeClassName: "size-6" });
495
+ if (logoUrl) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.EntityImage, { src: logoUrl, alt: name, fallbackText: name, sizeClassName: "size-6" });
496
496
  const logo = _chunkRTGPIHVOcjs.brandLogoForName.call(void 0, name);
497
- return logo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "img", "aria-label": name, className: "flex", children: _react.createElement.call(void 0, logo, { className: "size-6" }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.EntityImage, { alt: name, fallbackText: name, sizeClassName: "size-6" });
497
+ return logo ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "img", "aria-label": name, className: "flex", children: _react.createElement.call(void 0, logo, { className: "size-6" }) }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.EntityImage, { alt: name, fallbackText: name, sizeClassName: "size-6" });
498
498
  }
499
499
  function countryWithFlag(country) {
500
- const flag = _chunkQDIX2ZRLcjs.getFlagFromCountryName.call(void 0, country);
500
+ const flag = _chunkFD4DBTFOcjs.getFlagFromCountryName.call(void 0, country);
501
501
  return flag ? `${flag} ${country}` : country;
502
502
  }
503
503
  function SubprocessorsSection({ subprocessors }) {
@@ -524,11 +524,11 @@ function SubprocessorsSection({ subprocessors }) {
524
524
  ] : []
525
525
  ]
526
526
  }));
527
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows });
527
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows });
528
528
  }
529
529
  function ContactSection({ onContact }) {
530
530
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
531
- _chunkQDIX2ZRLcjs.StackedRowsPanel,
531
+ _chunkFD4DBTFOcjs.StackedRowsPanel,
532
532
  {
533
533
  rows: [
534
534
  {
@@ -631,9 +631,9 @@ function TrustCenterSkeleton() {
631
631
  ] }),
632
632
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TRUST_BODY_GRID_CLASS, "aria-busy": "true", "aria-label": "Loading the trust center", children: [
633
633
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TRUST_SECTIONS_COLUMN_CLASS, children: [
634
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonSection, { id: "compliance", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows: skeletonRows(3, { mark: "logo", action: "badge" }) }) }),
634
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonSection, { id: "compliance", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows: skeletonRows(3, { mark: "logo", action: "badge" }) }) }),
635
635
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonSection, { id: "controls", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ControlsSectionSkeleton, {}) }),
636
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonSection, { id: "documents", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StackedRowsPanel, { rows: skeletonRows(2, { mark: "glyph", action: "button" }) }) })
636
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonSection, { id: "documents", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StackedRowsPanel, { rows: skeletonRows(2, { mark: "glyph", action: "button" }) }) })
637
637
  ] }),
638
638
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "aside", { className: "hidden lg:block", "aria-hidden": "true", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SectionRailSkeleton, {}) })
639
639
  ] })
@@ -698,7 +698,7 @@ function TrustCenterPage({
698
698
  documentTitle: null
699
699
  });
700
700
  const sections = _react.useMemo.call(void 0, () => data ? visibleSections(data) : [], [data]);
701
- const { activeSection, handleSectionClick } = _chunk65YVUYWJcjs.useScrollSpy.call(void 0, sections, {
701
+ const { activeSection, handleSectionClick } = _chunk3WSFIV5Gcjs.useScrollSpy.call(void 0, sections, {
702
702
  syncHash: true,
703
703
  headerOffset: _chunkIIMICN7Lcjs.STICKY_HEADER_OFFSET_PX
704
704
  });
@@ -737,24 +737,24 @@ function TrustCenterPage({
737
737
  lead: TRUST_SECTION_LEADS.subprocessors,
738
738
  render: (d) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SubprocessorsSection, { subprocessors: d.subprocessors })
739
739
  },
740
- faq: { render: (d) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7ZDTAABPcjs.FaqSection, { initialFaqs: d.faqs, heading: null }) },
740
+ faq: { render: (d) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYGRHITPYcjs.FaqSection, { initialFaqs: d.faqs, heading: null }) },
741
741
  contact: { render: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ContactSection, { onContact: () => openRequest(null) }) }
742
742
  };
743
743
  let body;
744
744
  if (error && !data) {
745
- body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.LoadError, { message: "Could not load the trust center", onRetry: reload });
745
+ body = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.LoadError, { message: "Could not load the trust center", onRetry: reload });
746
746
  } else if (!data) {
747
747
  body = isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TrustCenterSkeleton, {}) : null;
748
748
  } else {
749
749
  const status = monitoringStatus(data, hydrated, nowMs);
750
750
  body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
751
751
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: TRUST_STATUS_ROW_CLASS, children: [
752
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.StatusIndicator, { status: status.status, label: status.label }),
752
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.StatusIndicator, { status: status.status, label: status.label }),
753
753
  data.connected ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
754
- _chunkQDIX2ZRLcjs.DataAttribution,
754
+ _chunkFD4DBTFOcjs.DataAttribution,
755
755
  {
756
756
  icon: data.dataSource.logoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
757
- _chunkQDIX2ZRLcjs.EntityImage,
757
+ _chunkFD4DBTFOcjs.EntityImage,
758
758
  {
759
759
  src: data.dataSource.logoUrl,
760
760
  alt: data.dataSource.name,
@@ -773,7 +773,7 @@ function TrustCenterPage({
773
773
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TrustSection, { id: section.id, title: section.label, lead: view.lead, children: view.render(data) }, section.id);
774
774
  }) }),
775
775
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "aside", { className: "hidden lg:block", "aria-label": "Trust center sections", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "sticky", style: { top: _chunkIIMICN7Lcjs.STICKY_HEADER_OFFSET_PX }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
776
- _chunk2CSYUMNMcjs.StickySectionNav,
776
+ _chunkCXDJUKC6cjs.StickySectionNav,
777
777
  {
778
778
  sections: sections.map((section) => ({ id: section.id, label: section.label })),
779
779
  activeSection,
@@ -805,7 +805,7 @@ function TrustCenterChrome({
805
805
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
806
806
  const backCfg = backButton === false ? void 0 : { label: _nullishCoalesce(backButton.label, () => ( "Back to home")), onClick: () => router.push(_nullishCoalesce(backButton.href, () => ( "/"))) };
807
807
  const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
808
- _chunkQDIX2ZRLcjs.PageLayout,
808
+ _chunkFD4DBTFOcjs.PageLayout,
809
809
  {
810
810
  title,
811
811
  subtitle,
@@ -817,7 +817,7 @@ function TrustCenterChrome({
817
817
  children
818
818
  }
819
819
  );
820
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQDIX2ZRLcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
820
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFD4DBTFOcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
821
821
  }
822
822
  function TrustCenterPageSkeleton({
823
823
  shell = true,
@@ -840,4 +840,4 @@ function TrustCenterPageSkeleton({
840
840
 
841
841
 
842
842
 
843
- exports.DeliveryPage = DeliveryPage; exports.DocsHubPage = _chunk65YVUYWJcjs.DocsHubPage; exports.FaqDocumentPage = _chunk7ZDTAABPcjs.FaqDocumentPage; exports.HelpCenterList = _chunkQZGFJBG5cjs.HelpCenterList; exports.LegalDocumentPage = _chunk4H5Q6MQGcjs.LegalDocumentPage; exports.OnboardingGuideDetailView = _chunkDG2I57UMcjs.OnboardingGuideDetailView; exports.OnboardingGuidesCatalogPage = OnboardingGuidesCatalogPage; exports.ProductReleasesListPage = ProductReleasesListPage; exports.ReleaseDetailPage = _chunk4H5Q6MQGcjs.ReleaseDetailPage; exports.RoadmapPage = RoadmapPage; exports.TrustCenterPage = TrustCenterPage; exports.TrustCenterPageSkeleton = TrustCenterPageSkeleton;
843
+ exports.DeliveryPage = DeliveryPage; exports.DocsHubPage = _chunk3WSFIV5Gcjs.DocsHubPage; exports.FaqDocumentPage = _chunkYGRHITPYcjs.FaqDocumentPage; exports.HelpCenterList = _chunkHIXGAY2Lcjs.HelpCenterList; exports.LegalDocumentPage = _chunkE3DH543Acjs.LegalDocumentPage; exports.OnboardingGuideDetailView = _chunkQFW3RUZScjs.OnboardingGuideDetailView; exports.OnboardingGuidesCatalogPage = OnboardingGuidesCatalogPage; exports.ProductReleasesListPage = ProductReleasesListPage; exports.ReleaseDetailPage = _chunkE3DH543Acjs.ReleaseDetailPage; exports.RoadmapPage = RoadmapPage; exports.TrustCenterPage = TrustCenterPage; exports.TrustCenterPageSkeleton = TrustCenterPageSkeleton;
@@ -6,38 +6,38 @@ import {
6
6
  ProductReleasesView,
7
7
  ReleaseDetailPage,
8
8
  RoadmapView
9
- } from "../../chunk-V5QNDOEL.js";
9
+ } from "../../chunk-HPJ4XS2L.js";
10
10
  import {
11
11
  DocsHubPage,
12
12
  useScrollSpy
13
- } from "../../chunk-6JG75WVO.js";
14
- import "../../chunk-BZYMGI4L.js";
13
+ } from "../../chunk-UJJWTJ6S.js";
14
+ import "../../chunk-ETFFEA3J.js";
15
15
  import "../../chunk-TCZCMD5Q.js";
16
16
  import {
17
17
  FaqDocumentPage,
18
18
  FaqSection
19
- } from "../../chunk-EONNPRAW.js";
19
+ } from "../../chunk-MWUBBBWZ.js";
20
20
  import {
21
21
  StickySectionNav
22
- } from "../../chunk-DJLZXJYB.js";
22
+ } from "../../chunk-HYFLTFFB.js";
23
23
  import {
24
24
  HelpCenterList
25
- } from "../../chunk-MFORWVGD.js";
25
+ } from "../../chunk-2V4Z44G6.js";
26
26
  import {
27
27
  ContactForm
28
- } from "../../chunk-CUPJCGLB.js";
28
+ } from "../../chunk-IZKOQVXO.js";
29
29
  import {
30
30
  DevSectionPage,
31
31
  ListEmptyState
32
- } from "../../chunk-A5ZGKBN2.js";
32
+ } from "../../chunk-Z5HDCZAS.js";
33
33
  import "../../chunk-OGLCD3UL.js";
34
- import "../../chunk-S4ADN25W.js";
34
+ import "../../chunk-RS7HWAYX.js";
35
35
  import {
36
36
  OnboardingGuideDetailView,
37
37
  OnboardingGuidesCatalogView
38
- } from "../../chunk-JPVDJB27.js";
39
- import "../../chunk-N7DPIH57.js";
40
- import "../../chunk-GD4JALTR.js";
38
+ } from "../../chunk-BO5ZHDA4.js";
39
+ import "../../chunk-JOY6HVPV.js";
40
+ import "../../chunk-446KS5BG.js";
41
41
  import {
42
42
  useSelfFetch
43
43
  } from "../../chunk-5FFNNJM7.js";
@@ -53,7 +53,7 @@ import {
53
53
  StatusIndicator,
54
54
  TabNavigation,
55
55
  getFlagFromCountryName
56
- } from "../../chunk-B7M6QEEM.js";
56
+ } from "../../chunk-CZ34HXDW.js";
57
57
  import "../../chunk-LQYXMEYF.js";
58
58
  import "../../chunk-4JPLYOS6.js";
59
59
  import {