@mochabug/adapt-web 1.0.0-rc31 → 1.0.0-rc32

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.
package/dist/esm/index.js CHANGED
@@ -9,7 +9,10 @@ export { configure, resetConfig };
9
9
  const DEFAULT_STYLES = `
10
10
  .mb-adapt {
11
11
  width: 100%;
12
- height: 100%;
12
+ min-height: inherit;
13
+ display: flex;
14
+ flex-direction: column;
15
+ background: transparent;
13
16
  --mb-adapt-border-radius: 8px;
14
17
  --mb-adapt-backdrop-color: rgba(0, 0, 0, 0.5);
15
18
  --mb-adapt-dialog-bg: transparent;
@@ -31,11 +34,14 @@ const DEFAULT_STYLES = `
31
34
  position: relative;
32
35
  display: flex;
33
36
  width: 100%;
34
- height: 100%;
37
+ flex: 1;
38
+ min-height: 0;
39
+ background: transparent;
35
40
  }
36
41
 
37
42
  .mb-adapt__frame {
38
43
  position: relative;
44
+ background: transparent;
39
45
  min-width: 0;
40
46
  overflow: hidden;
41
47
  transition: width 0.15s ease-out;
@@ -50,6 +56,7 @@ const DEFAULT_STYLES = `
50
56
  height: 100%;
51
57
  border: 0;
52
58
  display: block;
59
+ background: transparent;
53
60
  border-radius: var(--mb-adapt-border-radius);
54
61
  pointer-events: auto;
55
62
  opacity: 0;
@@ -276,6 +283,7 @@ const DEFAULT_STYLES = `
276
283
  width: 100%;
277
284
  height: 100%;
278
285
  overflow: visible;
286
+ background: transparent;
279
287
  }
280
288
 
281
289
  /* Responsive dialog - full screen on small viewports */
@@ -324,12 +332,16 @@ export class AdaptWebClient {
324
332
  this.mouseMoveHandler = null;
325
333
  this.mouseUpHandler = null;
326
334
  this.resizeObserver = null;
335
+ this.messageHandler = null;
336
+ this.backdropClickHandler = null;
327
337
  this.destroyed = false;
328
338
  this.options = {
329
339
  ...options,
330
340
  forkDisplayMode: options.forkDisplayMode ?? "side-by-side",
331
341
  };
332
342
  this.splitPercentage = options.sideBySideSplit ?? 50;
343
+ this.darkMode = options.darkMode ?? false;
344
+ this.autoResizing = options.autoResizing ?? false;
333
345
  const container = document.getElementById(options.container);
334
346
  if (!container) {
335
347
  throw new Error(`Container with id '${options.container}' not found`);
@@ -343,6 +355,7 @@ export class AdaptWebClient {
343
355
  this.createInitialStructure();
344
356
  this.setupDragListeners();
345
357
  this.setupResizeObserver();
358
+ this.setupMessageListener();
346
359
  this.init();
347
360
  }
348
361
  createInitialStructure() {
@@ -365,6 +378,201 @@ export class AdaptWebClient {
365
378
  });
366
379
  this.resizeObserver.observe(this.rootElement);
367
380
  }
381
+ getOrigin(url) {
382
+ try {
383
+ return new URL(url).origin;
384
+ }
385
+ catch {
386
+ return null;
387
+ }
388
+ }
389
+ isValidMessageOrigin(origin) {
390
+ // Check against main URL origin
391
+ if (this.mainUrl) {
392
+ const mainOrigin = this.getOrigin(this.mainUrl);
393
+ if (mainOrigin && origin === mainOrigin)
394
+ return true;
395
+ }
396
+ // Check against fork URL origin
397
+ if (this.currentFork?.url) {
398
+ const forkOrigin = this.getOrigin(this.currentFork.url);
399
+ if (forkOrigin && origin === forkOrigin)
400
+ return true;
401
+ }
402
+ return false;
403
+ }
404
+ setupMessageListener() {
405
+ this.messageHandler = (event) => {
406
+ if (!this.autoResizing)
407
+ return;
408
+ // Validate origin against known iframe URLs
409
+ if (!this.isValidMessageOrigin(event.origin))
410
+ return;
411
+ const data = event.data;
412
+ if (!data || typeof data !== "object" || data.type !== "adapt-resize")
413
+ return;
414
+ const { height } = data;
415
+ if (typeof height !== "number" || !Number.isFinite(height) || height < 1)
416
+ return;
417
+ // Identify which iframe sent the message via source window
418
+ const source = event.source;
419
+ if (this.mainIframe?.contentWindow === source) {
420
+ this.mainIframe.style.height = `${height}px`;
421
+ }
422
+ else if (this.forkIframe?.contentWindow === source) {
423
+ this.forkIframe.style.height = `${height}px`;
424
+ }
425
+ };
426
+ window.addEventListener("message", this.messageHandler);
427
+ }
428
+ sendDarkModeToIframe(iframe) {
429
+ if (!iframe)
430
+ return;
431
+ // Get iframe's origin for targeted postMessage
432
+ const iframeSrc = iframe.src;
433
+ const targetOrigin = iframeSrc ? this.getOrigin(iframeSrc) : null;
434
+ if (!targetOrigin)
435
+ return;
436
+ const message = {
437
+ type: "adapt-darkMode",
438
+ darkMode: this.darkMode,
439
+ };
440
+ // Cross-origin iframes: contentWindow may be accessible but postMessage works
441
+ try {
442
+ iframe.contentWindow?.postMessage(message, targetOrigin);
443
+ }
444
+ catch {
445
+ // Silently ignore errors - iframe may not be ready or cross-origin issues
446
+ }
447
+ }
448
+ sendAutoResizingToIframe(iframe) {
449
+ if (!iframe)
450
+ return;
451
+ const iframeSrc = iframe.src;
452
+ const targetOrigin = iframeSrc ? this.getOrigin(iframeSrc) : null;
453
+ if (!targetOrigin)
454
+ return;
455
+ const message = {
456
+ type: "adapt-autoResizing",
457
+ autoResizing: this.autoResizing,
458
+ };
459
+ try {
460
+ iframe.contentWindow?.postMessage(message, targetOrigin);
461
+ }
462
+ catch {
463
+ // Silently ignore errors
464
+ }
465
+ }
466
+ /**
467
+ * Set dark mode state and notify all iframes.
468
+ */
469
+ setDarkMode(darkMode) {
470
+ if (this.darkMode === darkMode)
471
+ return;
472
+ this.darkMode = darkMode;
473
+ // Send to all active iframes
474
+ this.sendDarkModeToIframe(this.mainIframe);
475
+ this.sendDarkModeToIframe(this.forkIframe);
476
+ }
477
+ /**
478
+ * Enable or disable auto-resizing based on iframe content height.
479
+ */
480
+ setAutoResizing(autoResizing) {
481
+ if (this.autoResizing === autoResizing)
482
+ return;
483
+ this.autoResizing = autoResizing;
484
+ // Notify iframes of the change so they can send their current height
485
+ this.sendAutoResizingToIframe(this.mainIframe);
486
+ this.sendAutoResizingToIframe(this.forkIframe);
487
+ // If disabling, reset iframe heights to CSS default
488
+ if (!autoResizing) {
489
+ if (this.mainIframe)
490
+ this.mainIframe.style.height = "";
491
+ if (this.forkIframe)
492
+ this.forkIframe.style.height = "";
493
+ }
494
+ }
495
+ /**
496
+ * Switch between side-by-side and dialog display modes at runtime.
497
+ * Preserves iframe state during the switch.
498
+ */
499
+ setForkDisplayMode(mode) {
500
+ if (this.options.forkDisplayMode === mode)
501
+ return;
502
+ this.options.forkDisplayMode = mode;
503
+ // Detach iframes from current structure (preserves their state)
504
+ if (this.mainIframe?.parentNode) {
505
+ this.mainIframe.parentNode.removeChild(this.mainIframe);
506
+ }
507
+ if (this.forkIframe?.parentNode) {
508
+ this.forkIframe.parentNode.removeChild(this.forkIframe);
509
+ }
510
+ // Clear current structure
511
+ if (this.rootElement) {
512
+ this.rootElement.innerHTML = "";
513
+ }
514
+ // Reset structure references (but NOT iframes - they're preserved)
515
+ this.wrapperElement = null;
516
+ this.mainFrameElement = null;
517
+ this.forkFrameElement = null;
518
+ this.dragHandleElement = null;
519
+ this.mainExpandButton = null;
520
+ this.forkExpandButton = null;
521
+ this.mainContainer = null;
522
+ this.dialogBackdrop = null;
523
+ this.dialogElement = null;
524
+ this.dialogExpandButton = null;
525
+ this.backdropClickHandler = null;
526
+ // Rebuild structure for new mode (iframes will be reattached)
527
+ if (mode === "dialog") {
528
+ this.createDialogStructure();
529
+ }
530
+ else {
531
+ this.createSideBySideStructure();
532
+ }
533
+ // Update visibility state
534
+ if (mode === "side-by-side") {
535
+ this.updateSideBySideVisibility();
536
+ }
537
+ else {
538
+ this.updateDialogVisibility();
539
+ }
540
+ // If main URL exists, make sure main iframe is visible
541
+ if (this.mainUrl && this.mainIframe) {
542
+ this.showIframe(this.mainIframe);
543
+ }
544
+ // If we have a current fork, make sure fork iframe is visible
545
+ if (this.currentFork && this.forkIframe) {
546
+ this.showIframe(this.forkIframe);
547
+ }
548
+ }
549
+ /**
550
+ * Enable or disable closing the dialog by clicking the backdrop.
551
+ */
552
+ setDialogBackdropClose(enabled) {
553
+ if (this.options.dialogBackdropClose === enabled)
554
+ return;
555
+ this.options.dialogBackdropClose = enabled;
556
+ // Only applicable in dialog mode
557
+ if (!this.dialogBackdrop)
558
+ return;
559
+ // Remove existing handler if any
560
+ if (this.backdropClickHandler) {
561
+ this.dialogBackdrop.removeEventListener("click", this.backdropClickHandler);
562
+ this.backdropClickHandler = null;
563
+ }
564
+ // Add new handler if enabled
565
+ if (enabled) {
566
+ this.backdropClickHandler = () => {
567
+ if (this.currentFork) {
568
+ this.forkQueue.unshift(this.currentFork);
569
+ }
570
+ this.currentFork = null;
571
+ this.updateDialogVisibility();
572
+ };
573
+ this.dialogBackdrop.addEventListener("click", this.backdropClickHandler);
574
+ }
575
+ }
368
576
  setupDragListeners() {
369
577
  let unclampedSplit = this.splitPercentage;
370
578
  let wasCollapsed = false;
@@ -560,6 +768,9 @@ export class AdaptWebClient {
560
768
  if (this.mouseUpHandler) {
561
769
  document.removeEventListener("mouseup", this.mouseUpHandler);
562
770
  }
771
+ if (this.messageHandler) {
772
+ window.removeEventListener("message", this.messageHandler);
773
+ }
563
774
  if (this.resizeObserver) {
564
775
  this.resizeObserver.disconnect();
565
776
  }
@@ -587,6 +798,8 @@ export class AdaptWebClient {
587
798
  this.mouseMoveHandler = null;
588
799
  this.mouseUpHandler = null;
589
800
  this.resizeObserver = null;
801
+ this.messageHandler = null;
802
+ this.backdropClickHandler = null;
590
803
  }
591
804
  onUrl(msg) {
592
805
  if (this.destroyed)
@@ -733,9 +946,15 @@ export class AdaptWebClient {
733
946
  this.options.classNames?.frameFork ||
734
947
  `${this.options.classNames?.frame || "mb-adapt__frame"} mb-adapt__frame--fork`;
735
948
  this.forkFrameElement.classList.add("mb-adapt__frame--hidden");
736
- // Create iframes immediately but hidden (no src yet)
737
- this.mainIframe = this.createHiddenIframe();
738
- this.forkIframe = this.createHiddenIframe();
949
+ // Reuse existing iframes or create new ones
950
+ if (!this.mainIframe) {
951
+ this.mainIframe = this.createHiddenIframe();
952
+ }
953
+ if (!this.forkIframe) {
954
+ this.forkIframe = this.createHiddenIframe();
955
+ }
956
+ // Reset border radius in case coming from dialog mode
957
+ this.forkIframe.style.borderRadius = "";
739
958
  this.mainFrameElement.appendChild(this.mainIframe);
740
959
  this.forkFrameElement.appendChild(this.forkIframe);
741
960
  // Drag handle - initially hidden until fork arrives
@@ -890,8 +1109,10 @@ export class AdaptWebClient {
890
1109
  // Main container
891
1110
  this.mainContainer = document.createElement("div");
892
1111
  this.mainContainer.className = "mb-adapt__main-container";
893
- // Create main iframe immediately but hidden
894
- this.mainIframe = this.createHiddenIframe();
1112
+ // Reuse existing main iframe or create new one
1113
+ if (!this.mainIframe) {
1114
+ this.mainIframe = this.createHiddenIframe();
1115
+ }
895
1116
  this.mainContainer.appendChild(this.mainIframe);
896
1117
  // Dialog expand button
897
1118
  this.dialogExpandButton = document.createElement("button");
@@ -908,15 +1129,16 @@ export class AdaptWebClient {
908
1129
  this.dialogBackdrop = document.createElement("div");
909
1130
  this.dialogBackdrop.className =
910
1131
  this.options.classNames?.dialogBackdrop || "mb-adapt__dialog-backdrop";
1132
+ // Set up backdrop click handler if enabled
911
1133
  if (this.options.dialogBackdropClose) {
912
- this.dialogBackdrop.addEventListener("click", () => {
913
- // Put current fork back in queue before closing
1134
+ this.backdropClickHandler = () => {
914
1135
  if (this.currentFork) {
915
1136
  this.forkQueue.unshift(this.currentFork);
916
1137
  }
917
1138
  this.currentFork = null;
918
1139
  this.updateDialogVisibility();
919
- });
1140
+ };
1141
+ this.dialogBackdrop.addEventListener("click", this.backdropClickHandler);
920
1142
  }
921
1143
  // Dialog
922
1144
  this.dialogElement = document.createElement("div");
@@ -944,8 +1166,10 @@ export class AdaptWebClient {
944
1166
  const iframeContainer = document.createElement("div");
945
1167
  iframeContainer.style.flex = "1";
946
1168
  iframeContainer.style.overflow = "hidden";
947
- // Create fork iframe immediately but hidden
948
- this.forkIframe = this.createHiddenIframe();
1169
+ // Reuse existing fork iframe or create new one
1170
+ if (!this.forkIframe) {
1171
+ this.forkIframe = this.createHiddenIframe();
1172
+ }
949
1173
  this.forkIframe.style.borderRadius = "0";
950
1174
  iframeContainer.appendChild(this.forkIframe);
951
1175
  this.dialogElement.appendChild(iframeContainer);
@@ -982,6 +1206,11 @@ export class AdaptWebClient {
982
1206
  // No src - iframe starts hidden
983
1207
  iframe.setAttribute("sandbox", "allow-downloads allow-same-origin allow-scripts allow-popups allow-forms allow-modals");
984
1208
  iframe.setAttribute("allow", "geolocation; accelerometer; midi; microphone; camera; magnetometer; gyroscope; fullscreen; payment;");
1209
+ // Send state to iframe whenever it loads (handles src changes)
1210
+ iframe.addEventListener("load", () => {
1211
+ this.sendDarkModeToIframe(iframe);
1212
+ this.sendAutoResizingToIframe(iframe);
1213
+ });
985
1214
  return iframe;
986
1215
  }
987
1216
  showIframe(iframe) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,19 @@ import type { AdaptWebClientOptions } from "./types.js";
3
3
  export type { AdaptWebClientOptions, Output, SignalValue, StatusJson, } from "./types.js";
4
4
  export type { SignalData } from "@mochabug/adapt-core";
5
5
  export { configure, resetConfig };
6
+ export interface AdaptResizeMessage {
7
+ type: "adapt-resize";
8
+ width: number;
9
+ height: number;
10
+ }
11
+ export interface AdaptDarkModeMessage {
12
+ type: "adapt-darkMode";
13
+ darkMode: boolean;
14
+ }
15
+ export interface AdaptAutoResizingMessage {
16
+ type: "adapt-autoResizing";
17
+ autoResizing: boolean;
18
+ }
6
19
  /**
7
20
  * Browser client for rendering Adapt automation sessions in iframes.
8
21
  *
@@ -40,10 +53,36 @@ export declare class AdaptWebClient {
40
53
  private mouseMoveHandler;
41
54
  private mouseUpHandler;
42
55
  private resizeObserver;
56
+ private messageHandler;
57
+ private backdropClickHandler;
58
+ private darkMode;
59
+ private autoResizing;
43
60
  private destroyed;
44
61
  constructor(options: AdaptWebClientOptions);
45
62
  private createInitialStructure;
46
63
  private setupResizeObserver;
64
+ private getOrigin;
65
+ private isValidMessageOrigin;
66
+ private setupMessageListener;
67
+ private sendDarkModeToIframe;
68
+ private sendAutoResizingToIframe;
69
+ /**
70
+ * Set dark mode state and notify all iframes.
71
+ */
72
+ setDarkMode(darkMode: boolean): void;
73
+ /**
74
+ * Enable or disable auto-resizing based on iframe content height.
75
+ */
76
+ setAutoResizing(autoResizing: boolean): void;
77
+ /**
78
+ * Switch between side-by-side and dialog display modes at runtime.
79
+ * Preserves iframe state during the switch.
80
+ */
81
+ setForkDisplayMode(mode: "side-by-side" | "dialog"): void;
82
+ /**
83
+ * Enable or disable closing the dialog by clicking the backdrop.
84
+ */
85
+ setDialogBackdropClose(enabled: boolean): void;
47
86
  private setupDragListeners;
48
87
  private injectDefaultStyles;
49
88
  private createRootElement;
@@ -161,6 +161,20 @@ export interface AdaptWebClientOptions {
161
161
  * @default false
162
162
  */
163
163
  dialogBackdropClose?: boolean;
164
+ /**
165
+ * Enable dark mode. When changed, sends message to iframes via postMessage.
166
+ *
167
+ * @default false
168
+ */
169
+ darkMode?: boolean;
170
+ /**
171
+ * Auto-resize iframe height based on content.
172
+ * When true, listens for resize messages from iframes and adjusts height.
173
+ * Width remains at 100%.
174
+ *
175
+ * @default false
176
+ */
177
+ autoResizing?: boolean;
164
178
  /**
165
179
  * Callback invoked when session state changes.
166
180
  * Receives the status and optional fork identifier.