@virtualdisplay.io/client 3.7.0 → 4.0.0-alpha.10

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 (79) hide show
  1. package/CHANGELOG.md +106 -76
  2. package/LICENSE +1 -1
  3. package/README.md +322 -31
  4. package/dist/browser-CDLfpTNV.cjs +8 -0
  5. package/dist/browser-DxtIwHNu.js +1227 -0
  6. package/dist/chunk-BcutgqC9.cjs +1 -0
  7. package/dist/chunk-C_CI6nMA.js +13 -0
  8. package/dist/src/annotations/annotations.d.ts +20 -0
  9. package/dist/src/annotations/annotations.d.ts.map +1 -0
  10. package/dist/src/annotations/index.d.ts +2 -0
  11. package/dist/src/annotations/index.d.ts.map +1 -0
  12. package/dist/src/attributes/attribute.d.ts +38 -0
  13. package/dist/src/attributes/attribute.d.ts.map +1 -0
  14. package/dist/src/attributes/attributes.d.ts +43 -0
  15. package/dist/src/attributes/attributes.d.ts.map +1 -0
  16. package/dist/src/attributes/selections.d.ts +16 -0
  17. package/dist/src/attributes/selections.d.ts.map +1 -0
  18. package/dist/src/attributes/value.d.ts +13 -0
  19. package/dist/src/attributes/value.d.ts.map +1 -0
  20. package/dist/src/camera/camera.d.ts +40 -0
  21. package/dist/src/camera/camera.d.ts.map +1 -0
  22. package/dist/src/camera/index.d.ts +4 -0
  23. package/dist/src/camera/index.d.ts.map +1 -0
  24. package/dist/src/camera/position.d.ts +56 -0
  25. package/dist/src/camera/position.d.ts.map +1 -0
  26. package/dist/src/client/client.d.ts +51 -0
  27. package/dist/src/client/client.d.ts.map +1 -0
  28. package/dist/src/client/error.d.ts +26 -0
  29. package/dist/src/client/error.d.ts.map +1 -0
  30. package/dist/src/client/iframe-builder.d.ts +27 -0
  31. package/dist/src/client/iframe-builder.d.ts.map +1 -0
  32. package/dist/src/client/options.d.ts +19 -0
  33. package/dist/src/client/options.d.ts.map +1 -0
  34. package/dist/src/client/ready-state-tracker.d.ts +13 -0
  35. package/dist/src/client/ready-state-tracker.d.ts.map +1 -0
  36. package/dist/src/client/types.d.ts +19 -0
  37. package/dist/src/client/types.d.ts.map +1 -0
  38. package/dist/src/index.d.ts +12 -0
  39. package/dist/src/index.d.ts.map +1 -0
  40. package/dist/src/snapshot/index.d.ts +3 -0
  41. package/dist/src/snapshot/index.d.ts.map +1 -0
  42. package/dist/src/snapshot/photo.d.ts +47 -0
  43. package/dist/src/snapshot/photo.d.ts.map +1 -0
  44. package/dist/src/snapshot/snapshot.d.ts +30 -0
  45. package/dist/src/snapshot/snapshot.d.ts.map +1 -0
  46. package/dist/src/ui/action-bar.d.ts +18 -0
  47. package/dist/src/ui/action-bar.d.ts.map +1 -0
  48. package/dist/src/ui/camera-controls.d.ts +8 -0
  49. package/dist/src/ui/camera-controls.d.ts.map +1 -0
  50. package/dist/src/ui/controls/attribute-group.d.ts +6 -0
  51. package/dist/src/ui/controls/attribute-group.d.ts.map +1 -0
  52. package/dist/src/ui/event-bus.d.ts +12 -0
  53. package/dist/src/ui/event-bus.d.ts.map +1 -0
  54. package/dist/src/ui/loading.d.ts +43 -0
  55. package/dist/src/ui/loading.d.ts.map +1 -0
  56. package/dist/src/ui/standard-interface.d.ts +42 -0
  57. package/dist/src/ui/standard-interface.d.ts.map +1 -0
  58. package/dist/src/ui/styles.d.ts +3 -0
  59. package/dist/src/ui/styles.d.ts.map +1 -0
  60. package/dist/src/utils/logger.d.ts +11 -0
  61. package/dist/src/utils/logger.d.ts.map +1 -0
  62. package/dist/virtualdisplay.client.cjs.js +311 -8
  63. package/dist/virtualdisplay.client.es.js +2218 -8018
  64. package/dist/virtualdisplay.client.umd.js +318 -8
  65. package/package.json +15 -99
  66. package/README.npm.md +0 -78
  67. package/dist/index.d.ts +0 -821
  68. package/dist/virtualdisplay.client.cjs.js.map +0 -1
  69. package/dist/virtualdisplay.client.es.js.map +0 -1
  70. package/dist/virtualdisplay.client.umd.js.map +0 -1
  71. package/node_modules/@virtualdisplay-io/logger/CHANGELOG.md +0 -82
  72. package/node_modules/@virtualdisplay-io/logger/LICENSE +0 -21
  73. package/node_modules/@virtualdisplay-io/logger/README.md +0 -314
  74. package/node_modules/@virtualdisplay-io/logger/dist/index.d.ts +0 -167
  75. package/node_modules/@virtualdisplay-io/logger/dist/virtualdisplay.logger.cjs.js +0 -4
  76. package/node_modules/@virtualdisplay-io/logger/dist/virtualdisplay.logger.cjs.js.map +0 -1
  77. package/node_modules/@virtualdisplay-io/logger/dist/virtualdisplay.logger.es.js +0 -377
  78. package/node_modules/@virtualdisplay-io/logger/dist/virtualdisplay.logger.es.js.map +0 -1
  79. package/node_modules/@virtualdisplay-io/logger/package.json +0 -79
@@ -0,0 +1,8 @@
1
+ import { Camera, CameraPosition } from '../camera';
2
+ export declare class CameraControls {
3
+ readonly element: HTMLElement;
4
+ constructor(camera: Camera, position: CameraPosition);
5
+ private static buildZoom;
6
+ private static buildDpad;
7
+ }
8
+ //# sourceMappingURL=camera-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-controls.d.ts","sourceRoot":"","sources":["../../../src/ui/camera-controls.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAuB,MAAM,WAAW,CAAC;AAY7E,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;gBAElB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc;IAuBpD,OAAO,CAAC,MAAM,CAAC,SAAS;IAQxB,OAAO,CAAC,MAAM,CAAC,SAAS;CAiBzB"}
@@ -0,0 +1,6 @@
1
+ import { AttributeDefinition } from '@virtualdisplay.io/messaging';
2
+ import { Attributes } from '../../attributes/attributes';
3
+ import { AttributeValue } from '../../attributes/value';
4
+ import { UiEventBus } from '../event-bus';
5
+ export declare function buildAttributeGroup(def: AttributeDefinition, attributes: Attributes, eventBus: UiEventBus, onSelect: (name: string, value: string) => void, onSubscribe: (name: string, callback: (v: AttributeValue) => void) => void): HTMLElement;
6
+ //# sourceMappingURL=attribute-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribute-group.d.ts","sourceRoot":"","sources":["../../../../src/ui/controls/attribute-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAC/C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,KAAK,IAAI,GACzE,WAAW,CA4Bb"}
@@ -0,0 +1,12 @@
1
+ import { VirtualdisplayUiEventMap, VirtualdisplayUiEventType } from '../client/types';
2
+ /**
3
+ * Dispatches and subscribes to UI events on the client container element.
4
+ * These are DOM CustomEvents for developers — not postMessages to the server.
5
+ */
6
+ export declare class UiEventBus {
7
+ private container;
8
+ attach(container: HTMLElement): void;
9
+ dispatch<T extends VirtualdisplayUiEventType>(type: T, detail: Omit<VirtualdisplayUiEventMap[T], 'preventDefault'>, cancelable?: boolean): CustomEvent;
10
+ on<T extends VirtualdisplayUiEventType>(type: T, callback: (event: VirtualdisplayUiEventMap[T]) => void): () => void;
11
+ }
12
+ //# sourceMappingURL=event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../../src/ui/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAA4B;IAE7C,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAIpC,QAAQ,CAAC,CAAC,SAAS,yBAAyB,EAC1C,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAC3D,UAAU,UAAQ,GACjB,WAAW;IAMd,EAAE,CAAC,CAAC,SAAS,yBAAyB,EACpC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GACrD,MAAM,IAAI;CASd"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Loading indicator with building-cube wireframe animation.
3
+ *
4
+ * Self-contained overlay that shows during model loading.
5
+ * The cube edges draw → hold → reverse → pause in a loop.
6
+ *
7
+ * Supports delayed showing — only becomes visible if loading
8
+ * takes longer than the configured threshold.
9
+ */
10
+ export interface LoadingIndicatorConfig {
11
+ showDelay?: number;
12
+ }
13
+ export declare class LoadingIndicator {
14
+ private readonly overlay;
15
+ private readonly canvas;
16
+ private readonly ctx;
17
+ private readonly pctEl;
18
+ private readonly phaseEl;
19
+ private animationId;
20
+ private showTimerId;
21
+ private readonly startTime;
22
+ private hidden;
23
+ private visible;
24
+ constructor(container: HTMLElement, config?: LoadingIndicatorConfig);
25
+ get loadingTexts(): {
26
+ downloading: string;
27
+ rendering: string;
28
+ };
29
+ updateProgress(pct: number, status: string): void;
30
+ /**
31
+ * Show an error state — stops animation and displays the error message.
32
+ * The overlay stays visible so the user knows something went wrong.
33
+ */
34
+ showError(message: string): void;
35
+ hide(): void;
36
+ destroy(): void;
37
+ private reveal;
38
+ private cancelShowTimer;
39
+ private sizeCanvas;
40
+ private tick;
41
+ private drawFrame;
42
+ }
43
+ //# sourceMappingURL=loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../../src/ui/loading.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkEH,MAAM,WAAW,sBAAsB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAoDD,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,SAAS,EAAE,WAAW,EAAE,MAAM,GAAE,sBAA2B;IAsBvE,IAAI,YAAY,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAK7D;IAED,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQjD;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IA2BhC,IAAI,IAAI,IAAI;IAqBZ,OAAO,IAAI,IAAI;IASf,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,IAAI,CAMV;IAEF,OAAO,CAAC,SAAS;CAmDpB"}
@@ -0,0 +1,42 @@
1
+ import { ViewerSettings, AttributeDefinition } from '@virtualdisplay.io/messaging';
2
+ import { Snapshot } from '../snapshot';
3
+ import { Camera, CameraPosition } from '../camera';
4
+ import { Attributes } from '../attributes/attributes';
5
+ import { AttributeValue } from '../attributes/value';
6
+ import { UiEventBus } from './event-bus';
7
+ export interface StandardInterfaceOptions {
8
+ snapshotApi: Snapshot;
9
+ cameraApi: Camera;
10
+ cameraPositionApi: CameraPosition;
11
+ eventBus: UiEventBus;
12
+ onSelect: (name: string, value: string) => void;
13
+ onSubscribe: (name: string, callback: (v: AttributeValue) => void) => void;
14
+ onAr?: () => void;
15
+ }
16
+ export declare class StandardInterface {
17
+ private readonly options;
18
+ private settings;
19
+ private container;
20
+ private loading;
21
+ private slots;
22
+ private screenshotBtn;
23
+ private actionBar;
24
+ private cameraControls;
25
+ private attributes;
26
+ constructor(options: StandardInterfaceOptions);
27
+ attach(container: HTMLElement): void;
28
+ onReady(): void;
29
+ private pseudoFullscreen;
30
+ private mountToolbar;
31
+ private toggleFullscreen;
32
+ updateProgress(progress: number, phase: string): void;
33
+ showError(message: string): void;
34
+ applyViewerSettings(settings: ViewerSettings): void;
35
+ renderAttributeControls(attributes: Attributes, definitions: AttributeDefinition[]): void;
36
+ get viewerSettings(): ViewerSettings;
37
+ destroy(): void;
38
+ private createSlot;
39
+ private syncScreenshotButton;
40
+ private placeScreenshotButton;
41
+ }
42
+ //# sourceMappingURL=standard-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-interface.d.ts","sourceRoot":"","sources":["../../../src/ui/standard-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAc9C,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,QAAQ,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,cAAc,CAAC;IAClC,QAAQ,EAAE,UAAU,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,KAAK,IAAI,CAAC;IAC3E,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,KAAK,CAA6H;IAC1I,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,UAAU,CAA4B;gBAElC,OAAO,EAAE,wBAAwB;IAI7C,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAYpC,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAkBxB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAanD,uBAAuB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAqCzF,IAAI,cAAc,IAAI,cAAc,CAA0B;IAE9D,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,qBAAqB;CAQ9B"}
@@ -0,0 +1,3 @@
1
+ export declare const STYLES: string;
2
+ export declare function injectStyles(): void;
3
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ui/styles.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM,QA8FlB,CAAC;AAEF,wBAAgB,YAAY,IAAI,IAAI,CAOnC"}
@@ -0,0 +1,11 @@
1
+ type Attrs = Record<string, unknown> | unknown;
2
+ export declare let logger: {
3
+ debug: (msg: string, attrs?: Attrs) => void;
4
+ info: (msg: string, attrs?: Attrs) => void;
5
+ warn: (msg: string, attrs?: Attrs) => void;
6
+ error: (msg: string, attrs?: Attrs) => void;
7
+ };
8
+ export declare function enableDebugMode(): void;
9
+ export declare function isDebugMode(): boolean;
10
+ export {};
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;AA4B/C,eAAO,IAAI,MAAM;iBAbF,MAAM,UAAU,KAAK;gBACtB,MAAM,UAAU,KAAK;gBACrB,MAAM,UAAU,KAAK;iBACpB,MAAM,UAAU,KAAK;CAU4C,CAAC;AAEjF,wBAAgB,eAAe,IAAI,IAAI,CAGtC;AAED,wBAAgB,WAAW,IAAI,OAAO,CAErC"}