@biolytics.ai/diascope 0.1.0 → 0.1.2

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.
@@ -342,6 +342,9 @@ var DiaScopeViewer = class {
342
342
  this.onCanvasClick = null;
343
343
  this.onKeyDown = null;
344
344
  this.narrowObserver = null;
345
+ this.canvasObserver = null;
346
+ this.viewportSyncRaf = null;
347
+ this.lastKnownViewport = null;
345
348
  this.doc = options.document ?? document;
346
349
  this.steps = options.steps ?? [];
347
350
  this.nodeIds = options.nodeIds ?? [];
@@ -435,6 +438,64 @@ var DiaScopeViewer = class {
435
438
  getStoryShell() {
436
439
  return this.doc.querySelector("#story-shell");
437
440
  }
441
+ captureViewportState() {
442
+ if (!this.pz) return null;
443
+ const zoom = this.pz.getZoom();
444
+ const pan = this.pz.getPan();
445
+ if (!Number.isFinite(zoom) || zoom <= 0) return null;
446
+ if (!Number.isFinite(pan.x) || !Number.isFinite(pan.y)) return null;
447
+ return { zoom, pan: { x: pan.x, y: pan.y } };
448
+ }
449
+ applyCanvasSize(targetSvg) {
450
+ if (!this.canvasWrap) return false;
451
+ const width = this.canvasWrap.clientWidth;
452
+ const height = this.canvasWrap.clientHeight;
453
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width < 1 || height < 1) return false;
454
+ targetSvg.setAttribute("width", String(width));
455
+ targetSvg.setAttribute("height", String(height));
456
+ return true;
457
+ }
458
+ restoreViewport(state) {
459
+ if (!this.pz || !state) return false;
460
+ this.pz.zoom(state.zoom);
461
+ this.pz.pan(state.pan);
462
+ const restored = this.captureViewportState();
463
+ if (!restored) return false;
464
+ this.lastKnownViewport = restored;
465
+ return true;
466
+ }
467
+ recoverViewport() {
468
+ if (this.restoreViewport(this.lastKnownViewport)) return;
469
+ if (!this.pz) return;
470
+ this.pz.fit();
471
+ this.pz.center();
472
+ this.applyMinInitialZoom();
473
+ const recovered = this.captureViewportState();
474
+ if (recovered) {
475
+ this.lastKnownViewport = recovered;
476
+ return;
477
+ }
478
+ const nodes = this.curStep >= 0 ? this.steps[this.curStep]?.nodes ?? [] : [];
479
+ if (nodes.length) autoZoom(this, nodes);
480
+ }
481
+ queueViewportSync() {
482
+ const targetSvg = this.getDiagramSvg();
483
+ if (!targetSvg) return;
484
+ if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") {
485
+ cancelAnimationFrame(this.viewportSyncRaf);
486
+ }
487
+ const schedule = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (cb) => {
488
+ cb(0);
489
+ return 0;
490
+ };
491
+ this.viewportSyncRaf = schedule(() => {
492
+ this.viewportSyncRaf = null;
493
+ const desiredState = this.captureViewportState() ?? this.lastKnownViewport;
494
+ if (!this.applyCanvasSize(targetSvg)) return;
495
+ this.pz?.resize();
496
+ if (!this.restoreViewport(desiredState)) this.recoverViewport();
497
+ });
498
+ }
438
499
  syncPanelToggleButton() {
439
500
  if (!this.panelToggleBtn) return;
440
501
  const shell = this.getStoryShell();
@@ -450,9 +511,7 @@ var DiaScopeViewer = class {
450
511
  if (!storyShell) return;
451
512
  storyShell.classList.toggle("panel-collapsed");
452
513
  this.syncPanelToggleButton();
453
- this.pz?.resize();
454
- this.pz?.fit();
455
- this.pz?.center();
514
+ this.onResize?.();
456
515
  }
457
516
  bindControls() {
458
517
  this.doc.querySelectorAll(this.selectors.stepButtons).forEach((btn) => {
@@ -519,19 +578,10 @@ var DiaScopeViewer = class {
519
578
  if (!this.canvasWrap || !this.svgHost || !this.svgPanZoomImpl) return;
520
579
  const targetSvg = this.getDiagramSvg();
521
580
  if (!targetSvg) return;
522
- const resize = () => {
523
- if (!this.canvasWrap) return;
524
- targetSvg.setAttribute("width", String(this.canvasWrap.clientWidth));
525
- targetSvg.setAttribute("height", String(this.canvasWrap.clientHeight));
526
- this.pz?.resize();
527
- };
528
- resize();
529
- this.onResize = () => {
530
- resize();
531
- this.pz?.fit();
532
- this.pz?.center();
533
- };
581
+ this.applyCanvasSize(targetSvg);
582
+ this.onResize = () => this.queueViewportSync();
534
583
  window.addEventListener("resize", this.onResize);
584
+ const { onUpdatedCTM: userOnUpdatedCTM, ...panZoomOptions } = this.panZoomOptions;
535
585
  this.pz = this.svgPanZoomImpl(targetSvg, {
536
586
  zoomEnabled: true,
537
587
  controlIconsEnabled: false,
@@ -540,9 +590,20 @@ var DiaScopeViewer = class {
540
590
  minZoom: this.panZoomMin,
541
591
  maxZoom: this.panZoomMax,
542
592
  zoomScaleSensitivity: 0.15,
543
- ...this.panZoomOptions
593
+ ...panZoomOptions,
594
+ onUpdatedCTM: (ctm) => {
595
+ if (Number.isFinite(ctm.a) && ctm.a > 0 && Number.isFinite(ctm.e) && Number.isFinite(ctm.f)) {
596
+ this.lastKnownViewport = { zoom: ctm.a, pan: { x: ctm.e, y: ctm.f } };
597
+ }
598
+ userOnUpdatedCTM?.(ctm);
599
+ }
544
600
  });
545
601
  this.applyMinInitialZoom();
602
+ this.lastKnownViewport = this.captureViewportState();
603
+ if (typeof ResizeObserver !== "undefined") {
604
+ this.canvasObserver = new ResizeObserver(() => this.onResize?.());
605
+ this.canvasObserver.observe(this.canvasWrap);
606
+ }
546
607
  tagNodes(this);
547
608
  tagEdges(this);
548
609
  setupEdgeTooltips(this);
@@ -575,7 +636,7 @@ var DiaScopeViewer = class {
575
636
  shell.classList.toggle("narrow", e.contentRect.width < this.narrowBreakpoint);
576
637
  const isNarrow = shell.classList.contains("narrow");
577
638
  this.syncPanelToggleButton();
578
- if (wasNarrow !== isNarrow) this.onResize?.();
639
+ if (wasNarrow !== isNarrow && !this.canvasObserver) this.onResize?.();
579
640
  });
580
641
  this.narrowObserver.observe(shell);
581
642
  }
@@ -590,6 +651,7 @@ var DiaScopeViewer = class {
590
651
  }
591
652
  const expandIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="9,1 13,1 13,5"/><polyline points="5,13 1,13 1,9"/><line x1="13" y1="1" x2="8" y2="6"/><line x1="1" y1="13" x2="6" y2="8"/></svg>`;
592
653
  const collapseIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="1,5 1,1 5,1"/><polyline points="9,13 13,13 13,9"/><line x1="1" y1="1" x2="6" y2="6"/><line x1="13" y1="13" x2="8" y2="8"/></svg>`;
654
+ const fullscreenTarget = this.getStoryShell() ?? this.canvasWrap ?? this.doc.documentElement;
593
655
  const syncIcon = () => {
594
656
  const isFs = !!this.doc.fullscreenElement;
595
657
  btn.innerHTML = isFs ? collapseIcon : expandIcon;
@@ -600,14 +662,29 @@ var DiaScopeViewer = class {
600
662
  btn.style.display = "flex";
601
663
  btn.style.alignItems = "center";
602
664
  btn.style.justifyContent = "center";
603
- btn.addEventListener("click", () => {
665
+ btn.addEventListener("click", async () => {
604
666
  if (this.doc.fullscreenElement) {
605
- this.doc.exitFullscreen();
606
- } else {
607
- this.doc.documentElement.requestFullscreen();
667
+ void this.doc.exitFullscreen();
668
+ return;
608
669
  }
670
+ try {
671
+ if (fullscreenTarget.requestFullscreen) {
672
+ await fullscreenTarget.requestFullscreen();
673
+ return;
674
+ }
675
+ } catch {
676
+ }
677
+ const win = this.doc.defaultView;
678
+ if (win?.open) {
679
+ const url = new URL(win.location.href);
680
+ url.searchParams.delete("expandable");
681
+ win.open(url.toString(), "_blank", "noopener,noreferrer");
682
+ }
683
+ });
684
+ this.doc.addEventListener("fullscreenchange", () => {
685
+ syncIcon();
686
+ this.onResize?.();
609
687
  });
610
- this.doc.addEventListener("fullscreenchange", syncIcon);
611
688
  }
612
689
  destroy() {
613
690
  if (this.onResize) window.removeEventListener("resize", this.onResize);
@@ -615,7 +692,9 @@ var DiaScopeViewer = class {
615
692
  if (this.onCanvasClick && this.canvasWrap) this.canvasWrap.removeEventListener("click", this.onCanvasClick);
616
693
  if (this.onKeyDown) this.doc.removeEventListener("keydown", this.onKeyDown);
617
694
  if (this.zoomRaf) cancelAnimationFrame(this.zoomRaf);
695
+ if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") cancelAnimationFrame(this.viewportSyncRaf);
618
696
  this.narrowObserver?.disconnect();
697
+ this.canvasObserver?.disconnect();
619
698
  this.pz?.destroy?.();
620
699
  }
621
700
  };
@@ -368,6 +368,9 @@ var DiaScopeBundle = (() => {
368
368
  this.onCanvasClick = null;
369
369
  this.onKeyDown = null;
370
370
  this.narrowObserver = null;
371
+ this.canvasObserver = null;
372
+ this.viewportSyncRaf = null;
373
+ this.lastKnownViewport = null;
371
374
  this.doc = options.document ?? document;
372
375
  this.steps = options.steps ?? [];
373
376
  this.nodeIds = options.nodeIds ?? [];
@@ -461,6 +464,64 @@ var DiaScopeBundle = (() => {
461
464
  getStoryShell() {
462
465
  return this.doc.querySelector("#story-shell");
463
466
  }
467
+ captureViewportState() {
468
+ if (!this.pz) return null;
469
+ const zoom = this.pz.getZoom();
470
+ const pan = this.pz.getPan();
471
+ if (!Number.isFinite(zoom) || zoom <= 0) return null;
472
+ if (!Number.isFinite(pan.x) || !Number.isFinite(pan.y)) return null;
473
+ return { zoom, pan: { x: pan.x, y: pan.y } };
474
+ }
475
+ applyCanvasSize(targetSvg) {
476
+ if (!this.canvasWrap) return false;
477
+ const width = this.canvasWrap.clientWidth;
478
+ const height = this.canvasWrap.clientHeight;
479
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width < 1 || height < 1) return false;
480
+ targetSvg.setAttribute("width", String(width));
481
+ targetSvg.setAttribute("height", String(height));
482
+ return true;
483
+ }
484
+ restoreViewport(state) {
485
+ if (!this.pz || !state) return false;
486
+ this.pz.zoom(state.zoom);
487
+ this.pz.pan(state.pan);
488
+ const restored = this.captureViewportState();
489
+ if (!restored) return false;
490
+ this.lastKnownViewport = restored;
491
+ return true;
492
+ }
493
+ recoverViewport() {
494
+ if (this.restoreViewport(this.lastKnownViewport)) return;
495
+ if (!this.pz) return;
496
+ this.pz.fit();
497
+ this.pz.center();
498
+ this.applyMinInitialZoom();
499
+ const recovered = this.captureViewportState();
500
+ if (recovered) {
501
+ this.lastKnownViewport = recovered;
502
+ return;
503
+ }
504
+ const nodes = this.curStep >= 0 ? this.steps[this.curStep]?.nodes ?? [] : [];
505
+ if (nodes.length) autoZoom(this, nodes);
506
+ }
507
+ queueViewportSync() {
508
+ const targetSvg = this.getDiagramSvg();
509
+ if (!targetSvg) return;
510
+ if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") {
511
+ cancelAnimationFrame(this.viewportSyncRaf);
512
+ }
513
+ const schedule = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (cb) => {
514
+ cb(0);
515
+ return 0;
516
+ };
517
+ this.viewportSyncRaf = schedule(() => {
518
+ this.viewportSyncRaf = null;
519
+ const desiredState = this.captureViewportState() ?? this.lastKnownViewport;
520
+ if (!this.applyCanvasSize(targetSvg)) return;
521
+ this.pz?.resize();
522
+ if (!this.restoreViewport(desiredState)) this.recoverViewport();
523
+ });
524
+ }
464
525
  syncPanelToggleButton() {
465
526
  if (!this.panelToggleBtn) return;
466
527
  const shell = this.getStoryShell();
@@ -476,9 +537,7 @@ var DiaScopeBundle = (() => {
476
537
  if (!storyShell) return;
477
538
  storyShell.classList.toggle("panel-collapsed");
478
539
  this.syncPanelToggleButton();
479
- this.pz?.resize();
480
- this.pz?.fit();
481
- this.pz?.center();
540
+ this.onResize?.();
482
541
  }
483
542
  bindControls() {
484
543
  this.doc.querySelectorAll(this.selectors.stepButtons).forEach((btn) => {
@@ -545,19 +604,10 @@ var DiaScopeBundle = (() => {
545
604
  if (!this.canvasWrap || !this.svgHost || !this.svgPanZoomImpl) return;
546
605
  const targetSvg = this.getDiagramSvg();
547
606
  if (!targetSvg) return;
548
- const resize = () => {
549
- if (!this.canvasWrap) return;
550
- targetSvg.setAttribute("width", String(this.canvasWrap.clientWidth));
551
- targetSvg.setAttribute("height", String(this.canvasWrap.clientHeight));
552
- this.pz?.resize();
553
- };
554
- resize();
555
- this.onResize = () => {
556
- resize();
557
- this.pz?.fit();
558
- this.pz?.center();
559
- };
607
+ this.applyCanvasSize(targetSvg);
608
+ this.onResize = () => this.queueViewportSync();
560
609
  window.addEventListener("resize", this.onResize);
610
+ const { onUpdatedCTM: userOnUpdatedCTM, ...panZoomOptions } = this.panZoomOptions;
561
611
  this.pz = this.svgPanZoomImpl(targetSvg, {
562
612
  zoomEnabled: true,
563
613
  controlIconsEnabled: false,
@@ -566,9 +616,20 @@ var DiaScopeBundle = (() => {
566
616
  minZoom: this.panZoomMin,
567
617
  maxZoom: this.panZoomMax,
568
618
  zoomScaleSensitivity: 0.15,
569
- ...this.panZoomOptions
619
+ ...panZoomOptions,
620
+ onUpdatedCTM: (ctm) => {
621
+ if (Number.isFinite(ctm.a) && ctm.a > 0 && Number.isFinite(ctm.e) && Number.isFinite(ctm.f)) {
622
+ this.lastKnownViewport = { zoom: ctm.a, pan: { x: ctm.e, y: ctm.f } };
623
+ }
624
+ userOnUpdatedCTM?.(ctm);
625
+ }
570
626
  });
571
627
  this.applyMinInitialZoom();
628
+ this.lastKnownViewport = this.captureViewportState();
629
+ if (typeof ResizeObserver !== "undefined") {
630
+ this.canvasObserver = new ResizeObserver(() => this.onResize?.());
631
+ this.canvasObserver.observe(this.canvasWrap);
632
+ }
572
633
  tagNodes(this);
573
634
  tagEdges(this);
574
635
  setupEdgeTooltips(this);
@@ -601,7 +662,7 @@ var DiaScopeBundle = (() => {
601
662
  shell.classList.toggle("narrow", e.contentRect.width < this.narrowBreakpoint);
602
663
  const isNarrow = shell.classList.contains("narrow");
603
664
  this.syncPanelToggleButton();
604
- if (wasNarrow !== isNarrow) this.onResize?.();
665
+ if (wasNarrow !== isNarrow && !this.canvasObserver) this.onResize?.();
605
666
  });
606
667
  this.narrowObserver.observe(shell);
607
668
  }
@@ -616,6 +677,7 @@ var DiaScopeBundle = (() => {
616
677
  }
617
678
  const expandIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="9,1 13,1 13,5"/><polyline points="5,13 1,13 1,9"/><line x1="13" y1="1" x2="8" y2="6"/><line x1="1" y1="13" x2="6" y2="8"/></svg>`;
618
679
  const collapseIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="1,5 1,1 5,1"/><polyline points="9,13 13,13 13,9"/><line x1="1" y1="1" x2="6" y2="6"/><line x1="13" y1="13" x2="8" y2="8"/></svg>`;
680
+ const fullscreenTarget = this.getStoryShell() ?? this.canvasWrap ?? this.doc.documentElement;
619
681
  const syncIcon = () => {
620
682
  const isFs = !!this.doc.fullscreenElement;
621
683
  btn.innerHTML = isFs ? collapseIcon : expandIcon;
@@ -626,14 +688,29 @@ var DiaScopeBundle = (() => {
626
688
  btn.style.display = "flex";
627
689
  btn.style.alignItems = "center";
628
690
  btn.style.justifyContent = "center";
629
- btn.addEventListener("click", () => {
691
+ btn.addEventListener("click", async () => {
630
692
  if (this.doc.fullscreenElement) {
631
- this.doc.exitFullscreen();
632
- } else {
633
- this.doc.documentElement.requestFullscreen();
693
+ void this.doc.exitFullscreen();
694
+ return;
695
+ }
696
+ try {
697
+ if (fullscreenTarget.requestFullscreen) {
698
+ await fullscreenTarget.requestFullscreen();
699
+ return;
700
+ }
701
+ } catch {
634
702
  }
703
+ const win = this.doc.defaultView;
704
+ if (win?.open) {
705
+ const url = new URL(win.location.href);
706
+ url.searchParams.delete("expandable");
707
+ win.open(url.toString(), "_blank", "noopener,noreferrer");
708
+ }
709
+ });
710
+ this.doc.addEventListener("fullscreenchange", () => {
711
+ syncIcon();
712
+ this.onResize?.();
635
713
  });
636
- this.doc.addEventListener("fullscreenchange", syncIcon);
637
714
  }
638
715
  destroy() {
639
716
  if (this.onResize) window.removeEventListener("resize", this.onResize);
@@ -641,7 +718,9 @@ var DiaScopeBundle = (() => {
641
718
  if (this.onCanvasClick && this.canvasWrap) this.canvasWrap.removeEventListener("click", this.onCanvasClick);
642
719
  if (this.onKeyDown) this.doc.removeEventListener("keydown", this.onKeyDown);
643
720
  if (this.zoomRaf) cancelAnimationFrame(this.zoomRaf);
721
+ if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") cancelAnimationFrame(this.viewportSyncRaf);
644
722
  this.narrowObserver?.disconnect();
723
+ this.canvasObserver?.disconnect();
645
724
  this.pz?.destroy?.();
646
725
  }
647
726
  };
@@ -48,6 +48,9 @@ export declare class DiaScopeViewer {
48
48
  readonly narrowBreakpoint: number;
49
49
  readonly overview: ViewerOptions['overview'];
50
50
  private narrowObserver;
51
+ private canvasObserver;
52
+ private viewportSyncRaf;
53
+ private lastKnownViewport;
51
54
  private readonly svgPanZoomImpl;
52
55
  constructor(options: ViewerOptions);
53
56
  getDiagramSvg(): SVGElement | null;
@@ -69,6 +72,11 @@ export declare class DiaScopeViewer {
69
72
  zoomIn(): void;
70
73
  zoomOut(): void;
71
74
  getStoryShell(): HTMLElement | null;
75
+ private captureViewportState;
76
+ private applyCanvasSize;
77
+ private restoreViewport;
78
+ private recoverViewport;
79
+ private queueViewportSync;
72
80
  syncPanelToggleButton(): void;
73
81
  togglePanel(): void;
74
82
  bindControls(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { applyHighlight } from "./highlight.js";
1
+ import { applyHighlight, autoZoom } from "./highlight.js";
2
2
  import { goStep, toggleFocus, resetOverview, bindKeyboard, renderBody } from "./navigation.js";
3
3
  import { tagNodes, tagEdges, setupEdgeTooltips } from "./tagging.js";
4
4
  const DEFAULT_SELECTORS = {
@@ -48,6 +48,9 @@ export class DiaScopeViewer {
48
48
  this.onCanvasClick = null;
49
49
  this.onKeyDown = null;
50
50
  this.narrowObserver = null;
51
+ this.canvasObserver = null;
52
+ this.viewportSyncRaf = null;
53
+ this.lastKnownViewport = null;
51
54
  this.doc = options.document ?? document;
52
55
  this.steps = options.steps ?? [];
53
56
  this.nodeIds = options.nodeIds ?? [];
@@ -155,6 +158,79 @@ export class DiaScopeViewer {
155
158
  getStoryShell() {
156
159
  return this.doc.querySelector("#story-shell");
157
160
  }
161
+ captureViewportState() {
162
+ if (!this.pz)
163
+ return null;
164
+ const zoom = this.pz.getZoom();
165
+ const pan = this.pz.getPan();
166
+ if (!Number.isFinite(zoom) || zoom <= 0)
167
+ return null;
168
+ if (!Number.isFinite(pan.x) || !Number.isFinite(pan.y))
169
+ return null;
170
+ return { zoom, pan: { x: pan.x, y: pan.y } };
171
+ }
172
+ applyCanvasSize(targetSvg) {
173
+ if (!this.canvasWrap)
174
+ return false;
175
+ const width = this.canvasWrap.clientWidth;
176
+ const height = this.canvasWrap.clientHeight;
177
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width < 1 || height < 1)
178
+ return false;
179
+ targetSvg.setAttribute("width", String(width));
180
+ targetSvg.setAttribute("height", String(height));
181
+ return true;
182
+ }
183
+ restoreViewport(state) {
184
+ if (!this.pz || !state)
185
+ return false;
186
+ this.pz.zoom(state.zoom);
187
+ this.pz.pan(state.pan);
188
+ const restored = this.captureViewportState();
189
+ if (!restored)
190
+ return false;
191
+ this.lastKnownViewport = restored;
192
+ return true;
193
+ }
194
+ recoverViewport() {
195
+ if (this.restoreViewport(this.lastKnownViewport))
196
+ return;
197
+ if (!this.pz)
198
+ return;
199
+ this.pz.fit();
200
+ this.pz.center();
201
+ this.applyMinInitialZoom();
202
+ const recovered = this.captureViewportState();
203
+ if (recovered) {
204
+ this.lastKnownViewport = recovered;
205
+ return;
206
+ }
207
+ const nodes = this.curStep >= 0 ? this.steps[this.curStep]?.nodes ?? [] : [];
208
+ if (nodes.length)
209
+ autoZoom(this, nodes);
210
+ }
211
+ queueViewportSync() {
212
+ const targetSvg = this.getDiagramSvg();
213
+ if (!targetSvg)
214
+ return;
215
+ if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function") {
216
+ cancelAnimationFrame(this.viewportSyncRaf);
217
+ }
218
+ const schedule = typeof requestAnimationFrame === "function"
219
+ ? requestAnimationFrame
220
+ : ((cb) => {
221
+ cb(0);
222
+ return 0;
223
+ });
224
+ this.viewportSyncRaf = schedule(() => {
225
+ this.viewportSyncRaf = null;
226
+ const desiredState = this.captureViewportState() ?? this.lastKnownViewport;
227
+ if (!this.applyCanvasSize(targetSvg))
228
+ return;
229
+ this.pz?.resize();
230
+ if (!this.restoreViewport(desiredState))
231
+ this.recoverViewport();
232
+ });
233
+ }
158
234
  syncPanelToggleButton() {
159
235
  if (!this.panelToggleBtn)
160
236
  return;
@@ -174,9 +250,7 @@ export class DiaScopeViewer {
174
250
  return;
175
251
  storyShell.classList.toggle("panel-collapsed");
176
252
  this.syncPanelToggleButton();
177
- this.pz?.resize();
178
- this.pz?.fit();
179
- this.pz?.center();
253
+ this.onResize?.();
180
254
  }
181
255
  bindControls() {
182
256
  this.doc.querySelectorAll(this.selectors.stepButtons).forEach((btn) => {
@@ -249,16 +323,10 @@ export class DiaScopeViewer {
249
323
  const targetSvg = this.getDiagramSvg();
250
324
  if (!targetSvg)
251
325
  return;
252
- const resize = () => {
253
- if (!this.canvasWrap)
254
- return;
255
- targetSvg.setAttribute("width", String(this.canvasWrap.clientWidth));
256
- targetSvg.setAttribute("height", String(this.canvasWrap.clientHeight));
257
- this.pz?.resize();
258
- };
259
- resize();
260
- this.onResize = () => { resize(); this.pz?.fit(); this.pz?.center(); };
326
+ this.applyCanvasSize(targetSvg);
327
+ this.onResize = () => this.queueViewportSync();
261
328
  window.addEventListener("resize", this.onResize);
329
+ const { onUpdatedCTM: userOnUpdatedCTM, ...panZoomOptions } = this.panZoomOptions;
262
330
  this.pz = this.svgPanZoomImpl(targetSvg, {
263
331
  zoomEnabled: true,
264
332
  controlIconsEnabled: false,
@@ -267,9 +335,20 @@ export class DiaScopeViewer {
267
335
  minZoom: this.panZoomMin,
268
336
  maxZoom: this.panZoomMax,
269
337
  zoomScaleSensitivity: 0.15,
270
- ...this.panZoomOptions,
338
+ ...panZoomOptions,
339
+ onUpdatedCTM: (ctm) => {
340
+ if (Number.isFinite(ctm.a) && ctm.a > 0 && Number.isFinite(ctm.e) && Number.isFinite(ctm.f)) {
341
+ this.lastKnownViewport = { zoom: ctm.a, pan: { x: ctm.e, y: ctm.f } };
342
+ }
343
+ userOnUpdatedCTM?.(ctm);
344
+ },
271
345
  });
272
346
  this.applyMinInitialZoom();
347
+ this.lastKnownViewport = this.captureViewportState();
348
+ if (typeof ResizeObserver !== "undefined") {
349
+ this.canvasObserver = new ResizeObserver(() => this.onResize?.());
350
+ this.canvasObserver.observe(this.canvasWrap);
351
+ }
273
352
  tagNodes(this);
274
353
  tagEdges(this);
275
354
  setupEdgeTooltips(this);
@@ -309,8 +388,8 @@ export class DiaScopeViewer {
309
388
  shell.classList.toggle("narrow", (e.contentRect.width) < this.narrowBreakpoint);
310
389
  const isNarrow = shell.classList.contains("narrow");
311
390
  this.syncPanelToggleButton();
312
- // If layout mode changed, canvas height changed re-sync SVG size and fit
313
- if (wasNarrow !== isNarrow)
391
+ // Layout mode changes alter the real canvas size; queue a re-sync if there is no canvas observer.
392
+ if (wasNarrow !== isNarrow && !this.canvasObserver)
314
393
  this.onResize?.();
315
394
  });
316
395
  this.narrowObserver.observe(shell);
@@ -327,6 +406,7 @@ export class DiaScopeViewer {
327
406
  }
328
407
  const expandIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="9,1 13,1 13,5"/><polyline points="5,13 1,13 1,9"/><line x1="13" y1="1" x2="8" y2="6"/><line x1="1" y1="13" x2="6" y2="8"/></svg>`;
329
408
  const collapseIcon = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><polyline points="1,5 1,1 5,1"/><polyline points="9,13 13,13 13,9"/><line x1="1" y1="1" x2="6" y2="6"/><line x1="13" y1="13" x2="8" y2="8"/></svg>`;
409
+ const fullscreenTarget = (this.getStoryShell() ?? this.canvasWrap ?? this.doc.documentElement);
330
410
  const syncIcon = () => {
331
411
  const isFs = !!this.doc.fullscreenElement;
332
412
  btn.innerHTML = isFs ? collapseIcon : expandIcon;
@@ -337,15 +417,31 @@ export class DiaScopeViewer {
337
417
  btn.style.display = "flex";
338
418
  btn.style.alignItems = "center";
339
419
  btn.style.justifyContent = "center";
340
- btn.addEventListener("click", () => {
420
+ btn.addEventListener("click", async () => {
341
421
  if (this.doc.fullscreenElement) {
342
- this.doc.exitFullscreen();
422
+ void this.doc.exitFullscreen();
423
+ return;
343
424
  }
344
- else {
345
- this.doc.documentElement.requestFullscreen();
425
+ try {
426
+ if (fullscreenTarget.requestFullscreen) {
427
+ await fullscreenTarget.requestFullscreen();
428
+ return;
429
+ }
346
430
  }
431
+ catch {
432
+ // Fallback handled below for embeds that block fullscreen.
433
+ }
434
+ const win = this.doc.defaultView;
435
+ if (win?.open) {
436
+ const url = new URL(win.location.href);
437
+ url.searchParams.delete("expandable");
438
+ win.open(url.toString(), "_blank", "noopener,noreferrer");
439
+ }
440
+ });
441
+ this.doc.addEventListener("fullscreenchange", () => {
442
+ syncIcon();
443
+ this.onResize?.();
347
444
  });
348
- this.doc.addEventListener("fullscreenchange", syncIcon);
349
445
  }
350
446
  destroy() {
351
447
  if (this.onResize)
@@ -358,7 +454,10 @@ export class DiaScopeViewer {
358
454
  this.doc.removeEventListener("keydown", this.onKeyDown);
359
455
  if (this.zoomRaf)
360
456
  cancelAnimationFrame(this.zoomRaf);
457
+ if (this.viewportSyncRaf !== null && typeof cancelAnimationFrame === "function")
458
+ cancelAnimationFrame(this.viewportSyncRaf);
361
459
  this.narrowObserver?.disconnect();
460
+ this.canvasObserver?.disconnect();
362
461
  this.pz?.destroy?.();
363
462
  }
364
463
  }
@@ -1 +1 @@
1
- {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer/viewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,iBAAiB,GAA8B;IACnD,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,iBAAiB;IAC5B,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,WAAW;IACpB,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;IACtB,MAAM,EAAE,UAAU;IAClB,cAAc,EAAE,mBAAmB;IACnC,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEF,MAAM,OAAO,cAAc;IAmDzB,YAAY,OAAsB;QAlDlC,YAAO,GAAG,CAAC,CAAC;QACZ,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAkB,IAAI,CAAC;QAC9B,OAAE,GAAsB,IAAI,CAAC;QAC7B,eAAU,GAAuB,IAAI,CAAC;QACtC,YAAO,GAAuB,IAAI,CAAC;QACnC,cAAS,GAAuB,IAAI,CAAC;QACrC,gBAAW,GAAuB,IAAI,CAAC;QACvC,eAAU,GAAuB,IAAI,CAAC;QACtC,YAAO,GAAuD,IAAI,CAAC;QACnE,YAAO,GAAuD,IAAI,CAAC;QACnE,aAAQ,GAA6B,IAAI,CAAC;QAC1C,WAAM,GAA6B,IAAI,CAAC;QACxC,mBAAc,GAA6B,IAAI,CAAC;QAChD,cAAS,GAA6B,IAAI,CAAC;QAC3C,eAAU,GAA6B,IAAI,CAAC;QAC5C,mBAAc,GAAuB,IAAI,CAAC;QAC1C,mBAAc,GAAuB,IAAI,CAAC;QAC1C,iBAAY,GAAuB,IAAI,CAAC;QACxC,kBAAa,GAAuB,IAAI,CAAC;QACzC,aAAQ,GAAwB,IAAI,CAAC;QACrC,gBAAW,GAAqC,IAAI,CAAC;QACrD,kBAAa,GAAqC,IAAI,CAAC;QACvD,cAAS,GAAwC,IAAI,CAAC;QAqB9C,mBAAc,GAA0B,IAAI,CAAC;QAC7C,mBAAc,GAA0B,IAAI,CAAC;QAC7C,oBAAe,GAAkB,IAAI,CAAC;QACtC,sBAAiB,GAA2D,IAAI,CAAC;QAIvF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,MAAM,CAAC;QAC/D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,MAAM,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,GAAG,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAAmG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5M,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAC7C,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,MAAM,CAAC;QAClE,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC;QAC7D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;QACR,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,eAAe;QACb,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,oFAAoF;IAC5E,mBAAmB;QACzB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAC1D,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,MAAsB,IAAI;QACrC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;QACjC,IAAI,GAAG;YAAG,GAAqC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAE7D,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnG,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,mBAAmB,CAAC,CAAC;QAC/F,IAAI,MAAM;YAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QAChF,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAEvF,kFAAkF;QAClF,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,CAAC;QAErE,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,kFAAkF;QAClF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;QAC3D,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,eAAe,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,eAAe,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,MAAsB,IAAI;QAC5C,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,WAAW;QACT,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,aAAa;QACX,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IAC/C,CAAC;IAEO,eAAe,CAAC,SAAqB;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACjG,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,KAA6D;QACnF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAAE,OAAO;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9C,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,IAAI,KAAK,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEO,iBAAiB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;YAChF,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,qBAAqB,KAAK,UAAU;YAC1D,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,CAAC,CAAC,EAAwB,EAAE,EAAE;gBAC5B,EAAE,CAAC,CAAC,CAAC,CAAC;gBACN,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBAAE,OAAO;YAC7C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;gBAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC;QACxE,MAAM,MAAM,GAAG,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,MAAM;YACtC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAClF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACtG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,WAAW;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;IACpB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACpE,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC;gBAAE,OAAO;YACxC,MAAM,QAAQ,GAAI,GAA+C,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACxF,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,QAAQ;oBAAE,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/E,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO;YACxB,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,MAQX,CAAC;QACF,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAClB,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxD,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/C,GAAG,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,cAElE,CAAC;QAEF,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;YACvC,WAAW,EAAE,IAAI;YACjB,mBAAmB,EAAE,KAAK;YAC1B,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,oBAAoB,EAAE,IAAI;YAC1B,GAAG,cAAc;YACjB,YAAY,EAAE,CAAC,GAAwC,EAAE,EAAE;gBACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5F,IAAI,CAAC,iBAAiB,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;gBACxE,CAAC;gBACD,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAErD,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAa,EAAE,EAAE;YACrC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC;gBAAE,OAAO;YACxD,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9D,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,mFAAmF;QACnF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,mBAAmB,CAAC,CAAC,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,iBAAiB,CAAC,CAAC,CAAC;YACvF,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,OAAO,cAAc,KAAK,WAAW;YAAE,OAAO;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACrD,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,kGAAkG;YAClG,IAAI,SAAS,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAA6B,CAAC;QAC5E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAsB,CAAC;YAC5D,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,gMAAgM,CAAC;YACrN,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,UAAU,GAAG,gRAAgR,CAAC;QACpS,MAAM,YAAY,GAAG,gRAAgR,CAAC;QACtS,MAAM,gBAAgB,GACpB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAElE,CAAC;QACL,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC1C,GAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;YAClD,GAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAC3D,GAAI,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACjF,CAAC,CAAC;QACF,QAAQ,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC3B,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;QACpC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;oBACvC,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;YAC7D,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACjD,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5G,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,OAAO;YAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,oBAAoB,KAAK,UAAU;YAAE,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5H,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC;IACvB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biolytics.ai/diascope",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Turn D2 diagrams into narrated interactive stories",
5
5
  "homepage": "https://diascope.biolytics.ai",
6
6
  "repository": {