@opencxh/domain 1.86.0 → 1.89.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.
@@ -37,6 +37,12 @@ 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
+ expand(key: string, expanded?: boolean): void;
45
+ };
40
46
  settings: {
41
47
  open(initialPageId?: string): void;
42
48
  close(): void;
@@ -9,6 +9,45 @@ 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
+ /**
30
+ * Rendered as a large centered "theater" surface instead of the corner dock
31
+ * (still non-blocking, no backdrop). Mutually exclusive with `minimized`.
32
+ * Used e.g. to give a video call room. The dock's content can toggle this
33
+ * via the `dockControls` it receives.
34
+ */
35
+ expanded?: boolean;
36
+ }
37
+ /**
38
+ * Control handle passed to a dock's rendered resource (via its `dockControls`
39
+ * prop) so the content can drive its own chrome — a call surface renders its own
40
+ * header, a compact minimized call-bar, and an expand-to-theater button.
41
+ */
42
+ export interface DockControls {
43
+ minimized: boolean;
44
+ expanded: boolean;
45
+ minimize: () => void;
46
+ expand: () => void;
47
+ /** Return to the normal (corner) dock state from minimized or expanded. */
48
+ restore: () => void;
49
+ close: () => void;
50
+ }
12
51
  /**
13
52
  * Settings page registered by an app. Shown in the shell's settings overlay.
14
53
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencxh/domain",
3
- "version": "1.86.0",
3
+ "version": "1.89.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",