@opencxh/domain 1.85.0 → 1.88.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.
@@ -332,6 +332,25 @@ export interface CallStateChange {
332
332
  userId: string;
333
333
  inCall: boolean;
334
334
  }
335
+ /**
336
+ * One ICE server entry. Structurally a subset of the browser's `RTCIceServer`,
337
+ * but kept DOM-free so the comm server can build it too (server tsconfig has no
338
+ * DOM lib). The client passes these straight to `new RTCPeerConnection`.
339
+ */
340
+ export interface IceServerConfig {
341
+ urls: string | string[];
342
+ username?: string;
343
+ credential?: string;
344
+ }
345
+ /**
346
+ * Response of `GET /webrtc/ice`: the STUN list plus TURN servers with
347
+ * short-lived (per-user, time-limited) credentials, and how long they last.
348
+ */
349
+ export interface IceConfigResponse {
350
+ iceServers: IceServerConfig[];
351
+ /** Seconds the TURN credentials remain valid. */
352
+ ttl: number;
353
+ }
335
354
  /** What the callee receives over SSE — same envelope, server stamps `from`. */
336
355
  export interface WebRtcSignalEvent extends WebRtcSignalRequest {
337
356
  /** Sender userId, stamped by the relay from the authenticated subject. */
@@ -37,6 +37,11 @@ export interface InternalSDK<LocalServices extends ServiceMap = {}, TranslationK
37
37
  open(key: ModalKeys, props?: any): void;
38
38
  close(key: ModalKeys): void;
39
39
  };
40
+ docks: {
41
+ open(key: string, props?: any): void;
42
+ close(key: string): void;
43
+ minimize(key: string, minimized?: boolean): void;
44
+ };
40
45
  settings: {
41
46
  open(initialPageId?: string): void;
42
47
  close(): void;
@@ -9,6 +9,24 @@ export interface ModalConfig {
9
9
  props?: Record<string, any>;
10
10
  hideHeader?: boolean;
11
11
  }
12
+ /**
13
+ * A dock is a persistent, non-blocking floating window (Gmail-style docked
14
+ * compose). Unlike a modal it has no backdrop, stays put while the user keeps
15
+ * working, and several can coexist — so it lives on its own runtime channel
16
+ * (`ui.docks$`), independent of the single `activeModal$` slot. That
17
+ * independence is what lets an incoming call (which opens the `session` modal)
18
+ * cover a dock without destroying it.
19
+ */
20
+ export interface DockConfig {
21
+ id: string;
22
+ displayName: string;
23
+ resource: string;
24
+ size?: 'sm' | 'md' | 'lg' | 'xl';
25
+ props?: Record<string, any>;
26
+ hideHeader?: boolean;
27
+ /** Rendered collapsed to just its title bar when true. */
28
+ minimized?: boolean;
29
+ }
12
30
  /**
13
31
  * Settings page registered by an app. Shown in the shell's settings overlay.
14
32
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencxh/domain",
3
- "version": "1.85.0",
3
+ "version": "1.88.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",