@xxmachina/components 19.122.1 → 19.132.1

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.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, computed, signal, viewChild, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { VersionService } from '@xxmachina/components/services/version';
3
+ import { VersionService, resolveVersionLabel } from '@xxmachina/components/services/version';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormControl, ReactiveFormsModule } from '@angular/forms';
6
6
  import * as i2 from '@angular/material/autocomplete';
@@ -24,9 +24,11 @@ function provideVersionSelectorStateFromService() {
24
24
  return computed(() => {
25
25
  if (!version.isCloudflareEnv())
26
26
  return null;
27
+ const current = version.currentVersion() || 'preview';
27
28
  return {
28
29
  versions: version.versions(),
29
- current: version.currentVersion() || 'develop',
30
+ current,
31
+ currentLabel: resolveVersionLabel(version.versions(), current) ?? current,
30
32
  select: (key) => version.switchVersion(key),
31
33
  };
32
34
  });
@@ -108,7 +110,7 @@ class VersionSelectorMolecule {
108
110
  </div>
109
111
  } @else {
110
112
  <button mat-button class="version-display" (click)="startEdit()">
111
- {{ version.current }}
113
+ {{ version.currentLabel }}
112
114
  <mat-icon iconPositionEnd>arrow_drop_down</mat-icon>
113
115
  </button>
114
116
  }
@@ -144,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
144
146
  </div>
145
147
  } @else {
146
148
  <button mat-button class="version-display" (click)="startEdit()">
147
- {{ version.current }}
149
+ {{ version.currentLabel }}
148
150
  <mat-icon iconPositionEnd>arrow_drop_down</mat-icon>
149
151
  </button>
150
152
  }
@@ -12,7 +12,7 @@ class WeeklyHeaderMolecule {
12
12
  <span>{{ day }}</span>
13
13
  </div>
14
14
  }
15
- `, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-59Qqyz2t: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-59Qqyz2t: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-59Qqyz2t)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] });
15
+ `, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-U7uYoQAF: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-U7uYoQAF: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-U7uYoQAF)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: WeeklyHeaderMolecule, decorators: [{
18
18
  type: Component,
@@ -22,7 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
22
22
  <span>{{ day }}</span>
23
23
  </div>
24
24
  }
25
- `, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-59Qqyz2t: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-59Qqyz2t: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-59Qqyz2t)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] }]
25
+ `, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-U7uYoQAF: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-U7uYoQAF: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-U7uYoQAF)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] }]
26
26
  }], ctorParameters: () => [] });
27
27
 
28
28
  /**
@@ -56,7 +56,7 @@ class CalendarSectionOrganism {
56
56
  }
57
57
  }
58
58
  </div>
59
- `, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-qgcJ4Ygy: var(--row);--row-num: 0;--row-num-SCOPED-IN-qgcJ4Ygy: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-qgcJ4Ygy: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-qgcJ4Ygy: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-qgcJ4Ygy: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-qgcJ4Ygy);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-qgcJ4Ygy),var(--row-SCOPED-IN-qgcJ4Ygy));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-qgcJ4Ygy)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-qgcJ4Ygy);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"], dependencies: [{ kind: "component", type: DailyCellMolecule, selector: "molecules-daily-cell", inputs: ["date", "schedules", "displayDate", "noSchedulesText", "toolTipText", "marked", "markingColor"] }, { kind: "component", type: WeeklyHeaderMolecule, selector: "molecules-weekly-header" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
+ `, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-OrUnIPjS: var(--row);--row-num: 0;--row-num-SCOPED-IN-OrUnIPjS: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-OrUnIPjS: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-OrUnIPjS: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-OrUnIPjS: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-OrUnIPjS);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-OrUnIPjS),var(--row-SCOPED-IN-OrUnIPjS));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-OrUnIPjS)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-OrUnIPjS);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"], dependencies: [{ kind: "component", type: DailyCellMolecule, selector: "molecules-daily-cell", inputs: ["date", "schedules", "displayDate", "noSchedulesText", "toolTipText", "marked", "markingColor"] }, { kind: "component", type: WeeklyHeaderMolecule, selector: "molecules-weekly-header" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: CalendarSectionOrganism, decorators: [{
62
62
  type: Component,
@@ -90,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
90
90
  }
91
91
  }
92
92
  </div>
93
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-qgcJ4Ygy: var(--row);--row-num: 0;--row-num-SCOPED-IN-qgcJ4Ygy: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-qgcJ4Ygy: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-qgcJ4Ygy: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-qgcJ4Ygy: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-qgcJ4Ygy);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-qgcJ4Ygy),var(--row-SCOPED-IN-qgcJ4Ygy));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-qgcJ4Ygy)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-qgcJ4Ygy);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"] }]
93
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-OrUnIPjS: var(--row);--row-num: 0;--row-num-SCOPED-IN-OrUnIPjS: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-OrUnIPjS: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-OrUnIPjS: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-OrUnIPjS: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-OrUnIPjS);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-OrUnIPjS),var(--row-SCOPED-IN-OrUnIPjS));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-OrUnIPjS)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-OrUnIPjS);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"] }]
94
94
  }], propDecorators: { label: [{
95
95
  type: Input
96
96
  }], displayDays: [{
@@ -309,7 +309,7 @@ function deployVersionToHostSuffix(version) {
309
309
  return '';
310
310
  if (version.startsWith('pr-'))
311
311
  return `--${version}`;
312
- if (version === 'dev' || version === 'develop')
312
+ if (version === 'dev' || version === 'develop' || version === 'preview')
313
313
  return '--dev';
314
314
  const match = version.match(/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-z]+)\.(\d+))?$/);
315
315
  if (match) {
@@ -504,9 +504,11 @@ const MAX_VIEWPORT_COLS = 500;
504
504
  const MAX_VIEWPORT_ROWS = 200;
505
505
  const CANONICAL_FONT_FAMILY = '"FiraCode Nerd Font", "Fira Code", "SF Mono", "Cascadia Code", "Consolas", "Courier New", monospace';
506
506
  const CANONICAL_FONT_SIZE_PX = 14;
507
+ const CANONICAL_CELL_WIDTH_RATIO = 0.615;
508
+ const CANONICAL_CELL_HEIGHT_RATIO = 1.43;
507
509
  const CANONICAL_LINE_HEIGHT = 1.2;
508
- const DEFAULT_CELL_WIDTH = 8.4;
509
- const DEFAULT_CELL_HEIGHT = CANONICAL_FONT_SIZE_PX * CANONICAL_LINE_HEIGHT;
510
+ const DEFAULT_CELL_WIDTH = CANONICAL_FONT_SIZE_PX * CANONICAL_CELL_WIDTH_RATIO;
511
+ const DEFAULT_CELL_HEIGHT = CANONICAL_FONT_SIZE_PX * CANONICAL_CELL_HEIGHT_RATIO;
510
512
  function measureCellMetric() {
511
513
  try {
512
514
  const doc = document;
@@ -521,7 +523,7 @@ function measureCellMetric() {
521
523
  probe.style.top = '-9999px';
522
524
  probe.style.fontFamily = CANONICAL_FONT_FAMILY;
523
525
  probe.style.fontSize = `${CANONICAL_FONT_SIZE_PX}px`;
524
- probe.style.lineHeight = String(CANONICAL_LINE_HEIGHT);
526
+ probe.style.lineHeight = String(CANONICAL_CELL_HEIGHT_RATIO);
525
527
  doc.body.appendChild(probe);
526
528
  const rect = probe.getBoundingClientRect();
527
529
  doc.body.removeChild(probe);
@@ -558,8 +560,8 @@ function recordCanvasCellMetric(metric) {
558
560
  cached = { cellWidth: metric.cellWidth, cellHeight: metric.cellHeight };
559
561
  }
560
562
  }
561
- const CELL_WIDTH_RATIO = 0.615;
562
- const CELL_HEIGHT_RATIO = 1.43;
563
+ const CELL_WIDTH_RATIO = CANONICAL_CELL_WIDTH_RATIO;
564
+ const CELL_HEIGHT_RATIO = CANONICAL_CELL_HEIGHT_RATIO;
563
565
  function getCanvasCellMetric(fontSize = CANONICAL_FONT_SIZE_PX) {
564
566
  if (cached)
565
567
  return cached;
@@ -571,8 +573,8 @@ function getCanvasCellMetric(fontSize = CANONICAL_FONT_SIZE_PX) {
571
573
  }
572
574
  function _legacyMeasureViaTempTerminal(fontSize = CANONICAL_FONT_SIZE_PX) {
573
575
  const fallback = {
574
- cellWidth: fontSize * 0.6,
575
- cellHeight: fontSize * CANONICAL_LINE_HEIGHT,
576
+ cellWidth: fontSize * CANONICAL_CELL_WIDTH_RATIO,
577
+ cellHeight: fontSize * CANONICAL_CELL_HEIGHT_RATIO,
576
578
  };
577
579
  if (typeof document === 'undefined')
578
580
  return fallback;
@@ -678,6 +680,9 @@ class XtermOrganism extends NgAtomicComponent {
678
680
  lastDataLength = 0;
679
681
  lastProcessedLength = 0;
680
682
  terminalInitialized = signal(false, ...(ngDevMode ? [{ debugName: "terminalInitialized" }] : []));
683
+ initialized = this.terminalInitialized.asReadonly();
684
+ fitEpoch = signal(0, ...(ngDevMode ? [{ debugName: "fitEpoch" }] : []));
685
+ fitScheduled = signal(0, ...(ngDevMode ? [{ debugName: "fitScheduled" }] : []));
681
686
  initSkippedDueToSize = false;
682
687
  disposables = [];
683
688
  stableTimer = null;
@@ -791,8 +796,8 @@ class XtermOrganism extends NgAtomicComponent {
791
796
  theme: useInteractiveTheme ? INTERACTIVE_THEME : DISPLAY_THEME,
792
797
  scrollback: isInteractive ? 10000 : 1000,
793
798
  fontSize: useInteractiveTheme ? 14 : 12,
794
- fontFamily: '"FiraCode Nerd Font", "Fira Code", "SF Mono", "Cascadia Code", "Consolas", "Courier New", monospace',
795
- lineHeight: 1.2,
799
+ fontFamily: CANONICAL_FONT_FAMILY,
800
+ lineHeight: CANONICAL_LINE_HEIGHT,
796
801
  allowTransparency: false,
797
802
  disableStdin: !isInteractive,
798
803
  cursorBlink: isInteractive,
@@ -845,20 +850,24 @@ class XtermOrganism extends NgAtomicComponent {
845
850
  clearTimeout(this.stableTimer);
846
851
  this.stableTimer = setTimeout(() => {
847
852
  this.stableTimer = null;
853
+ this.syncFitScheduled();
848
854
  this.fitToViewport();
849
855
  this.markInitialized(isInteractive);
850
856
  }, 150);
857
+ this.syncFitScheduled();
851
858
  }
852
859
  else {
853
860
  if (this.resizeTimer)
854
861
  clearTimeout(this.resizeTimer);
855
862
  this.resizeTimer = setTimeout(() => {
856
863
  this.resizeTimer = null;
864
+ this.syncFitScheduled();
857
865
  this.fitToViewport();
858
866
  if (isInteractive) {
859
867
  this.dispatch({ id: XtermActionId.RESIZED, payload: { cols: this.cols, rows: this.rows } });
860
868
  }
861
869
  }, 300);
870
+ this.syncFitScheduled();
862
871
  }
863
872
  }
864
873
  catch (e) {
@@ -868,15 +877,29 @@ class XtermOrganism extends NgAtomicComponent {
868
877
  this.resizeObserver.observe(containerElement);
869
878
  this.fallbackTimer = setTimeout(() => {
870
879
  this.fallbackTimer = null;
880
+ this.syncFitScheduled();
871
881
  if (!this.terminalInitialized()) {
872
882
  this.fitToViewport();
873
883
  this.markInitialized(isInteractive);
874
884
  }
875
885
  }, 500);
886
+ this.syncFitScheduled();
887
+ }
888
+ syncFitScheduled() {
889
+ this.fitScheduled.set((this.stableTimer ? 1 : 0) + (this.resizeTimer ? 1 : 0) + (this.fallbackTimer ? 1 : 0));
876
890
  }
877
891
  fitToViewport() {
878
- if (!this.terminal)
892
+ if (!this.terminal) {
879
893
  return;
894
+ }
895
+ try {
896
+ this.fitCore();
897
+ }
898
+ finally {
899
+ this.fitEpoch.update((v) => v + 1);
900
+ }
901
+ }
902
+ fitCore() {
880
903
  const viewportElement = this.container().nativeElement;
881
904
  const sharedCanvas = getCanvasCellMetric();
882
905
  const probe = measureCellMetric();
@@ -898,6 +921,10 @@ class XtermOrganism extends NgAtomicComponent {
898
921
  clearTimeout(this.resizeTimer);
899
922
  if (this.fallbackTimer)
900
923
  clearTimeout(this.fallbackTimer);
924
+ this.stableTimer = null;
925
+ this.resizeTimer = null;
926
+ this.fallbackTimer = null;
927
+ this.syncFitScheduled();
901
928
  this.resizeObserver?.disconnect();
902
929
  for (const d of this.disposables)
903
930
  d.dispose();
@@ -914,6 +941,11 @@ class XtermOrganism extends NgAtomicComponent {
914
941
  markInitialized(isInteractive) {
915
942
  if (this.terminalInitialized())
916
943
  return;
944
+ if (this.fallbackTimer) {
945
+ clearTimeout(this.fallbackTimer);
946
+ this.fallbackTimer = null;
947
+ this.syncFitScheduled();
948
+ }
917
949
  this.terminalInitialized.set(true);
918
950
  this.terminalReady.emit(this.terminal);
919
951
  if (typeof window !== 'undefined') {
@@ -1217,4 +1249,4 @@ async function getMachinaAsciiArtSixel(options = {}) {
1217
1249
  * Generated bundle index. Do not edit.
1218
1250
  */
1219
1251
 
1220
- export { CANONICAL_FONT_FAMILY, CANONICAL_FONT_SIZE_PX, CANONICAL_LINE_HEIGHT, DISPLAY_THEME, GitHubLinkProvider, GitHubLinksAddon, INTERACTIVE_THEME, MAX_VIEWPORT_COLS, MAX_VIEWPORT_ROWS, MIN_VIEWPORT_COLS, MIN_VIEWPORT_ROWS, ProxyLinkProvider, ProxyLinksAddon, WebLinksAddon, XTERM_SESSION_CONTEXT, XtermActionId, XtermOrganism, XtermOrganismStore, appendUrlHandoff, asciiArtToSvg, clearCanvasCellMetricCache, computeFitToViewport, deployVersionToHostSuffix, encodeUrlHandoff, generateAsciiArt, getCanvasCellMetric, getMachinaAsciiArtSixel, measureCellMetric, openWebProxyForPort, recordCanvasCellMetric, svgToSixel, toProxyUrl };
1252
+ export { CANONICAL_CELL_HEIGHT_RATIO, CANONICAL_CELL_WIDTH_RATIO, CANONICAL_FONT_FAMILY, CANONICAL_FONT_SIZE_PX, CANONICAL_LINE_HEIGHT, DISPLAY_THEME, GitHubLinkProvider, GitHubLinksAddon, INTERACTIVE_THEME, MAX_VIEWPORT_COLS, MAX_VIEWPORT_ROWS, MIN_VIEWPORT_COLS, MIN_VIEWPORT_ROWS, ProxyLinkProvider, ProxyLinksAddon, WebLinksAddon, XTERM_SESSION_CONTEXT, XtermActionId, XtermOrganism, XtermOrganismStore, appendUrlHandoff, asciiArtToSvg, clearCanvasCellMetricCache, computeFitToViewport, deployVersionToHostSuffix, encodeUrlHandoff, generateAsciiArt, getCanvasCellMetric, getMachinaAsciiArtSixel, measureCellMetric, openWebProxyForPort, recordCanvasCellMetric, svgToSixel, toProxyUrl };
@@ -422,7 +422,7 @@ class CommandPage extends NgAtomicComponent {
422
422
  </frames-tabs>
423
423
  </templates-form>
424
424
  </frames-router-outlet>
425
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-perw: var(--page-width-lv1);--primary-color-SCOPED-IN-command-perw: var(--primary-color);--on-primary-color-SCOPED-IN-command-perw: var(--on-primary-color);--background-color-SCOPED-IN-command-perw: var(--background-color);--on-background-color-SCOPED-IN-command-perw: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-perw)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-perw);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-perw);--background-color: var(--background-color-SCOPED-IN-command-perw);--on-background-color: var(--on-background-color-SCOPED-IN-command-perw)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] });
425
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-bYSK: var(--page-width-lv1);--primary-color-SCOPED-IN-command-bYSK: var(--primary-color);--on-primary-color-SCOPED-IN-command-bYSK: var(--on-primary-color);--background-color-SCOPED-IN-command-bYSK: var(--background-color);--on-background-color-SCOPED-IN-command-bYSK: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-bYSK)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-bYSK);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-bYSK);--background-color: var(--background-color-SCOPED-IN-command-bYSK);--on-background-color: var(--on-background-color-SCOPED-IN-command-bYSK)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] });
426
426
  }
427
427
  __decorate([
428
428
  Effect(FormTemplateStore.ActionId.FILE_SELECTED),
@@ -485,7 +485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
485
485
  'actions',
486
486
  ]
487
487
  },
488
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-perw: var(--page-width-lv1);--primary-color-SCOPED-IN-command-perw: var(--primary-color);--on-primary-color-SCOPED-IN-command-perw: var(--on-primary-color);--background-color-SCOPED-IN-command-perw: var(--background-color);--on-background-color-SCOPED-IN-command-perw: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-perw)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-perw);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-perw);--background-color: var(--background-color-SCOPED-IN-command-perw);--on-background-color: var(--on-background-color-SCOPED-IN-command-perw)}\n"] }]
488
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-bYSK: var(--page-width-lv1);--primary-color-SCOPED-IN-command-bYSK: var(--primary-color);--on-primary-color-SCOPED-IN-command-bYSK: var(--on-primary-color);--background-color-SCOPED-IN-command-bYSK: var(--background-color);--on-background-color-SCOPED-IN-command-bYSK: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-bYSK)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-bYSK);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-bYSK);--background-color: var(--background-color-SCOPED-IN-command-bYSK);--on-background-color: var(--on-background-color-SCOPED-IN-command-bYSK)}\n"] }]
489
489
  }], propDecorators: { onFileSelected: [] } });
490
490
 
491
491
  /**
@@ -688,7 +688,7 @@ class QueryPage extends NgAtomicComponent {
688
688
  <groups-query-form dashboard (action)="dispatch($event)" />
689
689
  </templates-index>
690
690
  </frames-router-outlet>
691
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-IOsw: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-IOsw: var(--page-width-lv3);--primary-color-SCOPED-IN-query-IOsw: var(--primary-color);--on-primary-color-SCOPED-IN-query-IOsw: var(--on-primary-color);--surface-color-SCOPED-IN-query-IOsw: var(--surface-color);--on-surface-color-SCOPED-IN-query-IOsw: var(--on-surface-color);--on-background-color-SCOPED-IN-query-IOsw: var(--on-background-color);--background-color-SCOPED-IN-query-IOsw: var(--background-color);--navigator-background-color-SCOPED-IN-query-IOsw: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-IOsw: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-IOsw: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-IOsw: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-IOsw: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-IOsw);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-IOsw);--surface-color: var(--surface-color-SCOPED-IN-query-IOsw);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-IOsw);--background-color: var(--background-color-SCOPED-IN-query-IOsw);--on-background-color: var(--on-background-color-SCOPED-IN-query-IOsw);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-IOsw);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-IOsw);--table-background-color: var(--table-background-color-SCOPED-IN-query-IOsw);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-IOsw);--is-debug: var(--is-debug-SCOPED-IN-query-IOsw)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-IOsw) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
691
+ `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-56w1: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-56w1: var(--page-width-lv3);--primary-color-SCOPED-IN-query-56w1: var(--primary-color);--on-primary-color-SCOPED-IN-query-56w1: var(--on-primary-color);--surface-color-SCOPED-IN-query-56w1: var(--surface-color);--on-surface-color-SCOPED-IN-query-56w1: var(--on-surface-color);--on-background-color-SCOPED-IN-query-56w1: var(--on-background-color);--background-color-SCOPED-IN-query-56w1: var(--background-color);--navigator-background-color-SCOPED-IN-query-56w1: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-56w1: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-56w1: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-56w1: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-56w1: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-56w1);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-56w1);--surface-color: var(--surface-color-SCOPED-IN-query-56w1);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-56w1);--background-color: var(--background-color-SCOPED-IN-query-56w1);--on-background-color: var(--on-background-color-SCOPED-IN-query-56w1);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-56w1);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-56w1);--table-background-color: var(--table-background-color-SCOPED-IN-query-56w1);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-56w1);--is-debug: var(--is-debug-SCOPED-IN-query-56w1)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-56w1) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
692
692
  }
693
693
  __decorate([
694
694
  Effect(IndexTemplateStore.ActionId.BACK),
@@ -769,7 +769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
769
769
  'pageSizeOptions'
770
770
  ]
771
771
  },
772
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-IOsw: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-IOsw: var(--page-width-lv3);--primary-color-SCOPED-IN-query-IOsw: var(--primary-color);--on-primary-color-SCOPED-IN-query-IOsw: var(--on-primary-color);--surface-color-SCOPED-IN-query-IOsw: var(--surface-color);--on-surface-color-SCOPED-IN-query-IOsw: var(--on-surface-color);--on-background-color-SCOPED-IN-query-IOsw: var(--on-background-color);--background-color-SCOPED-IN-query-IOsw: var(--background-color);--navigator-background-color-SCOPED-IN-query-IOsw: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-IOsw: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-IOsw: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-IOsw: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-IOsw: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-IOsw);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-IOsw);--surface-color: var(--surface-color-SCOPED-IN-query-IOsw);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-IOsw);--background-color: var(--background-color-SCOPED-IN-query-IOsw);--on-background-color: var(--on-background-color-SCOPED-IN-query-IOsw);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-IOsw);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-IOsw);--table-background-color: var(--table-background-color-SCOPED-IN-query-IOsw);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-IOsw);--is-debug: var(--is-debug-SCOPED-IN-query-IOsw)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-IOsw) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
772
+ ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-56w1: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-56w1: var(--page-width-lv3);--primary-color-SCOPED-IN-query-56w1: var(--primary-color);--on-primary-color-SCOPED-IN-query-56w1: var(--on-primary-color);--surface-color-SCOPED-IN-query-56w1: var(--surface-color);--on-surface-color-SCOPED-IN-query-56w1: var(--on-surface-color);--on-background-color-SCOPED-IN-query-56w1: var(--on-background-color);--background-color-SCOPED-IN-query-56w1: var(--background-color);--navigator-background-color-SCOPED-IN-query-56w1: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-56w1: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-56w1: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-56w1: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-56w1: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-56w1);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-56w1);--surface-color: var(--surface-color-SCOPED-IN-query-56w1);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-56w1);--background-color: var(--background-color-SCOPED-IN-query-56w1);--on-background-color: var(--on-background-color-SCOPED-IN-query-56w1);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-56w1);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-56w1);--table-background-color: var(--table-background-color-SCOPED-IN-query-56w1);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-56w1);--is-debug: var(--is-debug-SCOPED-IN-query-56w1)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-56w1) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
773
773
  }], ctorParameters: () => [], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => IndexTemplate), { isSignal: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], back: [], navigateToIframe: [], expandPage: [], itemClick: [] } });
774
774
 
775
775
  /**
@@ -104,7 +104,7 @@ class ThreadPage extends NgAtomicComponent {
104
104
  (action)="dispatch($event)"
105
105
  />
106
106
  </frames-router-outlet>
107
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-UZDQ: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-UZDQ: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-UZDQ: var(--primary-color);--on-primary-color-SCOPED-IN-thread-UZDQ: var(--on-primary-color);--surface-color-SCOPED-IN-thread-UZDQ: var(--surface-color);--on-surface-color-SCOPED-IN-thread-UZDQ: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-UZDQ: var(--on-background-color);--background-color-SCOPED-IN-thread-UZDQ: var(--background-color);--navigator-background-color-SCOPED-IN-thread-UZDQ: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-UZDQ: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-UZDQ: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-UZDQ: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-UZDQ)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: ThreadTemplate, selector: "templates-messages" }] });
107
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-STqB: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-STqB: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-STqB: var(--primary-color);--on-primary-color-SCOPED-IN-thread-STqB: var(--on-primary-color);--surface-color-SCOPED-IN-thread-STqB: var(--surface-color);--on-surface-color-SCOPED-IN-thread-STqB: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-STqB: var(--on-background-color);--background-color-SCOPED-IN-thread-STqB: var(--background-color);--navigator-background-color-SCOPED-IN-thread-STqB: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-STqB: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-STqB: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-STqB: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-STqB)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: ThreadTemplate, selector: "templates-messages" }] });
108
108
  }
109
109
  __decorate([
110
110
  Effect(ActionId.SEND_MESSAGE),
@@ -137,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
137
137
  'messages',
138
138
  ]
139
139
  },
140
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-UZDQ: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-UZDQ: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-UZDQ: var(--primary-color);--on-primary-color-SCOPED-IN-thread-UZDQ: var(--on-primary-color);--surface-color-SCOPED-IN-thread-UZDQ: var(--surface-color);--on-surface-color-SCOPED-IN-thread-UZDQ: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-UZDQ: var(--on-background-color);--background-color-SCOPED-IN-thread-UZDQ: var(--background-color);--navigator-background-color-SCOPED-IN-thread-UZDQ: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-UZDQ: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-UZDQ: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-UZDQ: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-UZDQ)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"] }]
140
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-STqB: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-STqB: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-STqB: var(--primary-color);--on-primary-color-SCOPED-IN-thread-STqB: var(--on-primary-color);--surface-color-SCOPED-IN-thread-STqB: var(--surface-color);--on-surface-color-SCOPED-IN-thread-STqB: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-STqB: var(--on-background-color);--background-color-SCOPED-IN-thread-STqB: var(--background-color);--navigator-background-color-SCOPED-IN-thread-STqB: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-STqB: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-STqB: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-STqB: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-STqB)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"] }]
141
141
  }], propDecorators: { onCompositionStart: [{
142
142
  type: HostListener,
143
143
  args: ['compositionstart', ['$event']]
@@ -0,0 +1,57 @@
1
+ import * as i0 from '@angular/core';
2
+ import { isSignal, inject, Injectable } from '@angular/core';
3
+ import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
4
+ import { toSignal } from '@angular/core/rxjs-interop';
5
+ import { derivedAsync } from 'ngxtension/derived-async';
6
+ import { filter, startWith, map } from 'rxjs/operators';
7
+
8
+ function resolveSignal(data) {
9
+ return isSignal(data) ? data() : data;
10
+ }
11
+ class AppBarService {
12
+ router = inject(Router);
13
+ activatedRoute = inject(ActivatedRoute);
14
+ routeArray$ = this.router.events.pipe(filter((event) => event instanceof NavigationEnd), startWith(null), map(() => {
15
+ const routeArray = [];
16
+ let route = this.activatedRoute.root;
17
+ while (route) {
18
+ routeArray.push(route);
19
+ route = route.children.length > 0 ? route.children[0] : null;
20
+ }
21
+ return routeArray.filter((route) => route.component !== null);
22
+ }));
23
+ routeArray = toSignal(this.routeArray$);
24
+ breadcrumbs = derivedAsync(() => {
25
+ return this.routeArray()
26
+ .map((route) => ({
27
+ label: resolveSignal(route.snapshot.data['title']),
28
+ path: '/' + route.snapshot.url.join('/'),
29
+ params: { ...route.snapshot.params },
30
+ queryParams: { ...route.snapshot.queryParams },
31
+ }))
32
+ .filter((breadcrumb) => breadcrumb.label);
33
+ }, { initialValue: [] });
34
+ endActions = derivedAsync(() => {
35
+ const routes = this.routeArray();
36
+ if (routes && routes.length > 0) {
37
+ const lastRoute = routes.at(-1);
38
+ const navEndActions = lastRoute.snapshot.data['navEndActions'];
39
+ if (navEndActions) {
40
+ return resolveSignal(navEndActions);
41
+ }
42
+ }
43
+ return [];
44
+ }, { initialValue: [] });
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AppBarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AppBarService, providedIn: 'root' });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AppBarService, decorators: [{
49
+ type: Injectable,
50
+ args: [{ providedIn: 'root' }]
51
+ }] });
52
+
53
+ /**
54
+ * Generated bundle index. Do not edit.
55
+ */
56
+
57
+ export { AppBarService };
@@ -35,9 +35,27 @@ function provideVersionedHostMatcher(matcher) {
35
35
  return { provide: VERSIONED_HOST_MATCHER, useValue: matcher };
36
36
  }
37
37
 
38
+ const CHANNEL_LABEL = {
39
+ latest: 'latest',
40
+ stable: 'stable',
41
+ preview: 'preview',
42
+ };
43
+ function resolveVersionChannel(versions, current) {
44
+ if (!current)
45
+ return null;
46
+ return versions.find((v) => v.key === current)?.channel ?? null;
47
+ }
48
+ function resolveVersionLabel(versions, current) {
49
+ if (!current)
50
+ return null;
51
+ const channel = resolveVersionChannel(versions, current);
52
+ return channel ? `${current}(${CHANNEL_LABEL[channel]})` : current;
53
+ }
54
+
38
55
  const DEFAULT_VERSIONS = [
39
- { key: 'stable', label: 'stable (本番)' },
40
- { key: 'develop', label: 'develop (開発)' },
56
+ { key: 'stable', label: 'stable (本番)', channel: 'stable' },
57
+ { key: 'latest', label: 'latest (最新)', channel: 'latest' },
58
+ { key: 'preview', label: 'preview (開発)', channel: 'preview' },
41
59
  ];
42
60
  const POLLING_INTERVAL_MS = 60_000;
43
61
  class VersionService {
@@ -49,6 +67,17 @@ class VersionService {
49
67
  unsubscribe;
50
68
  pollingInterval;
51
69
  initialized = false;
70
+ destroyed = false;
71
+ constructor() {
72
+ this.destroyRef.onDestroy(() => {
73
+ this.destroyed = true;
74
+ this.unsubscribe?.();
75
+ if (this.pollingInterval) {
76
+ clearInterval(this.pollingInterval);
77
+ this.pollingInterval = undefined;
78
+ }
79
+ });
80
+ }
52
81
  versions = signal(DEFAULT_VERSIONS, ...(ngDevMode ? [{ debugName: "versions" }] : []));
53
82
  isLoading = signal(true, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
54
83
  isVersionedHost(hostname) {
@@ -64,6 +93,7 @@ class VersionService {
64
93
  }
65
94
  return null;
66
95
  }, ...(ngDevMode ? [{ debugName: "currentVersion" }] : []));
96
+ currentVersionLabel = computed(() => resolveVersionLabel(this.versions(), this.currentVersion()), ...(ngDevMode ? [{ debugName: "currentVersionLabel" }] : []));
67
97
  isCloudflareEnv = computed(() => {
68
98
  const hostname = this.document.location.hostname;
69
99
  return this.isVersionedHost(hostname) || hostname === 'localhost';
@@ -122,15 +152,9 @@ class VersionService {
122
152
  if (!this.remoteConfig)
123
153
  return;
124
154
  this.setupPollingFallback();
125
- this.destroyRef.onDestroy(() => {
126
- this.unsubscribe?.();
127
- if (this.pollingInterval) {
128
- clearInterval(this.pollingInterval);
129
- }
130
- });
131
155
  }
132
156
  setupPollingFallback() {
133
- if (!this.remoteConfig)
157
+ if (!this.remoteConfig || this.destroyed)
134
158
  return;
135
159
  console.log('[VersionService] Setting up polling fallback');
136
160
  this.pollingInterval = setInterval(async () => {
@@ -169,10 +193,10 @@ class VersionService {
169
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: VersionService, decorators: [{
170
194
  type: Injectable,
171
195
  args: [{ providedIn: 'root' }]
172
- }] });
196
+ }], ctorParameters: () => [] });
173
197
 
174
198
  /**
175
199
  * Generated bundle index. Do not edit.
176
200
  */
177
201
 
178
- export { VERSIONED_HOST_MATCHER, VersionService, provideVersionedHostMatcher };
202
+ export { VERSIONED_HOST_MATCHER, VersionService, provideVersionedHostMatcher, resolveVersionChannel, resolveVersionLabel };
@@ -420,7 +420,7 @@ class AgentTemplate extends NgAtomicComponent {
420
420
  </div>
421
421
  }
422
422
  </frames-scroll>
423
- `, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-qZU7: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-qZU7: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-qZU7: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-qZU7: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-qZU7: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-qZU7);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-qZU7);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-qZU7);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-qZU7);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-qZU7);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-qZU7);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-qZU7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-qZU7);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-qZU7)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-qZU7),0 0 20px var(--accent-SCOPED-IN-entrance-qZU7);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
423
+ `, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-OKlp: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-OKlp: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-OKlp: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-OKlp: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-OKlp: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-OKlp);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-OKlp);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-OKlp);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-OKlp);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-OKlp);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-OKlp);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-OKlp);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-OKlp);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-OKlp)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-OKlp),0 0 20px var(--accent-SCOPED-IN-entrance-OKlp);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
424
424
  }
425
425
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AgentTemplate, decorators: [{
426
426
  type: Component,
@@ -505,7 +505,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
505
505
  'fieldMap',
506
506
  ],
507
507
  },
508
- ], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-qZU7: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-qZU7: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-qZU7: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-qZU7: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-qZU7: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-qZU7);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-qZU7);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-qZU7);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-qZU7);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-qZU7);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-qZU7);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-qZU7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-qZU7);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-qZU7)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-qZU7),0 0 20px var(--accent-SCOPED-IN-entrance-qZU7);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
508
+ ], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-OKlp: var(--text);--user: #33ff33;--user-SCOPED-IN-entrance-OKlp: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-OKlp: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-OKlp: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-OKlp: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-OKlp);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-OKlp);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-OKlp);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-OKlp);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-OKlp);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-OKlp);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-OKlp);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-OKlp);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-OKlp)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-OKlp),0 0 20px var(--accent-SCOPED-IN-entrance-OKlp);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
509
509
  }], propDecorators: { endActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "endActions", required: false }] }], hideInputArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideInputArea", required: false }] }], xtermComponent: [{ type: i0.ViewChild, args: ['xtermComponent', { isSignal: true }] }], inputField: [{ type: i0.ViewChild, args: ['inputField', { isSignal: true }] }], onWindowResize: [{
510
510
  type: HostListener,
511
511
  args: ['window:resize']
@@ -38,7 +38,7 @@ class MachinaIconButtonMenuTemplate extends NgAtomicComponent {
38
38
  </button>
39
39
  }
40
40
  </div>
41
- `, isInline: true, styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-gkzx: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-gkzx: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-gkzx: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-gkzx: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-gkzx: var(--on-background-color);--mat-icon-button-icon-color: #FEFEFE;--mat-icon-button-icon-color-SCOPED-IN-icon-button-menu-gkzx: var(--mat-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-gkzx);color:var(--on-background-color-SCOPED-IN-icon-button-menu-gkzx)}:host .top,:host .bottom{display:flex;flex-direction:column;justify-content:center;align-items:center}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-gkzx);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: UserAvatarMenuMolecule, selector: "molecules-user-avatar-menu", inputs: ["signOutAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
41
+ `, isInline: true, styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-A50L: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-A50L: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-A50L: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-A50L: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-A50L: var(--on-background-color);--mat-icon-button-icon-color: #FEFEFE;--mat-icon-button-icon-color-SCOPED-IN-icon-button-menu-A50L: var(--mat-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-A50L);color:var(--on-background-color-SCOPED-IN-icon-button-menu-A50L)}:host .top,:host .bottom{display:flex;flex-direction:column;justify-content:center;align-items:center}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-A50L);cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: UserAvatarMenuMolecule, selector: "molecules-user-avatar-menu", inputs: ["signOutAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
42
  }
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MachinaIconButtonMenuTemplate, decorators: [{
44
44
  type: Component,
@@ -67,7 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
67
67
  directive: IconButtonMenuTemplateStore,
68
68
  inputs: ['actions', 'bottomActions', 'topPadding'],
69
69
  },
70
- ], styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-gkzx: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-gkzx: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-gkzx: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-gkzx: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-gkzx: var(--on-background-color);--mat-icon-button-icon-color: #FEFEFE;--mat-icon-button-icon-color-SCOPED-IN-icon-button-menu-gkzx: var(--mat-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-gkzx);color:var(--on-background-color-SCOPED-IN-icon-button-menu-gkzx)}:host .top,:host .bottom{display:flex;flex-direction:column;justify-content:center;align-items:center}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-gkzx);cursor:pointer}\n"] }]
70
+ ], styles: [":host{width:100%;height:100%;background:#fff;display:block;--primary-color: #404040;--primary-color-SCOPED-IN-icon-button-menu-A50L: var(--primary-color);--on-primary-color: #f0f0f0;--on-primary-color-SCOPED-IN-icon-button-menu-A50L: var(--on-primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-icon-button-menu-A50L: var(--secondary-color);--background-color: #000000;--background-color-SCOPED-IN-icon-button-menu-A50L: var(--background-color);--on-background-color: #ffffff;--on-background-color-SCOPED-IN-icon-button-menu-A50L: var(--on-background-color);--mat-icon-button-icon-color: #FEFEFE;--mat-icon-button-icon-color-SCOPED-IN-icon-button-menu-A50L: var(--mat-icon-button-icon-color)}:host{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100%;background-color:var(--background-color-SCOPED-IN-icon-button-menu-A50L);color:var(--on-background-color-SCOPED-IN-icon-button-menu-A50L)}:host .top,:host .bottom{display:flex;flex-direction:column;justify-content:center;align-items:center}:host button{--mat-icon-color: var(--on-primary-color-SCOPED-IN-icon-button-menu-A50L);cursor:pointer}\n"] }]
71
71
  }] });
72
72
 
73
73
  /**
@@ -232,7 +232,7 @@ class SessionNavigatorOrganism extends NgAtomicComponent {
232
232
  }
233
233
  </div>
234
234
  </mat-toolbar>
235
- `, isInline: true, styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-3AR1: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-3AR1: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-3AR1: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-3AR1: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-3AR1: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-3AR1: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-3AR1: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-3AR1: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-3AR1: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;padding:0!important;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-3AR1);color:var(--on-primary-color-SCOPED-IN-session-navigator-3AR1);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-3AR1)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-3AR1)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-3AR1)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-3AR1)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-3AR1)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-3AR1)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-3AR1: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-3AR1: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-3AR1: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i1$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: MenuButtonAtomStore, selector: "atoms-menu-button, atoms-smart-menu-button", inputs: ["actions", "type", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
235
+ `, isInline: true, styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-iLFq: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-iLFq: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-iLFq: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-iLFq: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-iLFq: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-iLFq: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-iLFq: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-iLFq: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-iLFq: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;padding:0!important;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-iLFq);color:var(--on-primary-color-SCOPED-IN-session-navigator-iLFq);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-iLFq)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-iLFq)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-iLFq)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-iLFq)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-iLFq)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-iLFq)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-iLFq: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-iLFq: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-iLFq: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i1$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: MenuButtonAtomStore, selector: "atoms-menu-button, atoms-smart-menu-button", inputs: ["actions", "type", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
236
236
  }
237
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: SessionNavigatorOrganism, decorators: [{
238
238
  type: Component,
@@ -266,7 +266,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
266
266
  directive: SessionNavigatorOrganismStore,
267
267
  inputs: ['startActions', 'endActions', 'title'],
268
268
  }
269
- ], styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-3AR1: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-3AR1: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-3AR1: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-3AR1: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-3AR1: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-3AR1: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-3AR1: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-3AR1: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-3AR1: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;padding:0!important;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-3AR1);color:var(--on-primary-color-SCOPED-IN-session-navigator-3AR1);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-3AR1)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-3AR1)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-3AR1)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-3AR1)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-3AR1)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-3AR1)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-3AR1: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-3AR1: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-3AR1: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"] }]
269
+ ], styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-iLFq: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-iLFq: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-iLFq: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-iLFq: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-iLFq: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-iLFq: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-iLFq: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-iLFq: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-iLFq: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;padding:0!important;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-iLFq);color:var(--on-primary-color-SCOPED-IN-session-navigator-iLFq);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-iLFq)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-iLFq)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-iLFq)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-iLFq)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-iLFq)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-iLFq)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-iLFq: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-iLFq: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-iLFq: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"] }]
270
270
  }] });
271
271
 
272
272
  var InvoiceAppActionId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xxmachina/components",
3
- "version": "19.122.1",
3
+ "version": "19.132.1",
4
4
  "license": "MIT",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -154,6 +154,10 @@
154
154
  "types": "./types/xxmachina-components-services-app.d.ts",
155
155
  "default": "./fesm2022/xxmachina-components-services-app.mjs"
156
156
  },
157
+ "./services/app-bar": {
158
+ "types": "./types/xxmachina-components-services-app-bar.d.ts",
159
+ "default": "./fesm2022/xxmachina-components-services-app-bar.mjs"
160
+ },
157
161
  "./services/assistant": {
158
162
  "types": "./types/xxmachina-components-services-assistant.d.ts",
159
163
  "default": "./fesm2022/xxmachina-components-services-assistant.mjs"
@@ -7,10 +7,12 @@ import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
7
7
  interface VersionOption {
8
8
  key: string;
9
9
  label: string;
10
+ channel?: string;
10
11
  }
11
12
  interface VersionSelectorState {
12
13
  versions: VersionOption[];
13
14
  current: string;
15
+ currentLabel: string;
14
16
  select: (key: string) => void;
15
17
  }
16
18
  declare const VERSION_SELECTOR_STATE: InjectionToken<Signal<VersionSelectorState | null>>;
@@ -194,6 +194,9 @@ declare class XtermOrganism extends NgAtomicComponent implements AfterViewInit,
194
194
  private lastDataLength;
195
195
  private lastProcessedLength;
196
196
  private readonly terminalInitialized;
197
+ readonly initialized: _angular_core.Signal<boolean>;
198
+ readonly fitEpoch: _angular_core.WritableSignal<number>;
199
+ readonly fitScheduled: _angular_core.WritableSignal<number>;
197
200
  private initSkippedDueToSize;
198
201
  private readonly disposables;
199
202
  private stableTimer;
@@ -204,7 +207,9 @@ declare class XtermOrganism extends NgAtomicComponent implements AfterViewInit,
204
207
  private writeDataWithTotalWritten;
205
208
  ngAfterViewInit(): void;
206
209
  private initializeTerminal;
210
+ private syncFitScheduled;
207
211
  private fitToViewport;
212
+ private fitCore;
208
213
  ngOnDestroy(): void;
209
214
  private markInitialized;
210
215
  private loadImageAddon;
@@ -302,6 +307,8 @@ declare const MAX_VIEWPORT_COLS = 500;
302
307
  declare const MAX_VIEWPORT_ROWS = 200;
303
308
  declare const CANONICAL_FONT_FAMILY = "\"FiraCode Nerd Font\", \"Fira Code\", \"SF Mono\", \"Cascadia Code\", \"Consolas\", \"Courier New\", monospace";
304
309
  declare const CANONICAL_FONT_SIZE_PX = 14;
310
+ declare const CANONICAL_CELL_WIDTH_RATIO = 0.615;
311
+ declare const CANONICAL_CELL_HEIGHT_RATIO = 1.43;
305
312
  declare const CANONICAL_LINE_HEIGHT = 1.2;
306
313
  declare function measureCellMetric(): {
307
314
  cellWidth: number;
@@ -320,5 +327,5 @@ declare function recordCanvasCellMetric(metric: {
320
327
  }): void;
321
328
  declare function getCanvasCellMetric(fontSize?: number): CanvasCellMetric;
322
329
 
323
- export { CANONICAL_FONT_FAMILY, CANONICAL_FONT_SIZE_PX, CANONICAL_LINE_HEIGHT, DISPLAY_THEME, GitHubLinkProvider, GitHubLinksAddon, INTERACTIVE_THEME, MAX_VIEWPORT_COLS, MAX_VIEWPORT_ROWS, MIN_VIEWPORT_COLS, MIN_VIEWPORT_ROWS, ProxyLinkProvider, ProxyLinksAddon, WebLinksAddon, XTERM_SESSION_CONTEXT, XtermActionId, XtermOrganism, XtermOrganismStore, appendUrlHandoff, asciiArtToSvg, clearCanvasCellMetricCache, computeFitToViewport, deployVersionToHostSuffix, encodeUrlHandoff, generateAsciiArt, getCanvasCellMetric, getMachinaAsciiArtSixel, measureCellMetric, openWebProxyForPort, recordCanvasCellMetric, svgToSixel, toProxyUrl };
330
+ export { CANONICAL_CELL_HEIGHT_RATIO, CANONICAL_CELL_WIDTH_RATIO, CANONICAL_FONT_FAMILY, CANONICAL_FONT_SIZE_PX, CANONICAL_LINE_HEIGHT, DISPLAY_THEME, GitHubLinkProvider, GitHubLinksAddon, INTERACTIVE_THEME, MAX_VIEWPORT_COLS, MAX_VIEWPORT_ROWS, MIN_VIEWPORT_COLS, MIN_VIEWPORT_ROWS, ProxyLinkProvider, ProxyLinksAddon, WebLinksAddon, XTERM_SESSION_CONTEXT, XtermActionId, XtermOrganism, XtermOrganismStore, appendUrlHandoff, asciiArtToSvg, clearCanvasCellMetricCache, computeFitToViewport, deployVersionToHostSuffix, encodeUrlHandoff, generateAsciiArt, getCanvasCellMetric, getMachinaAsciiArtSixel, measureCellMetric, openWebProxyForPort, recordCanvasCellMetric, svgToSixel, toProxyUrl };
324
331
  export type { DeployVersionGetter, EndpointsGetter, FitToViewportInput, FitToViewportResult, GitHubLinkActivateHandler, OpenWebProxyOptions, ProxyEndpoints, ProxyEnvGetter, ProxyEnvName, ServerUUIDGetter, SvgToSixelOptions, TokenGetter, XtermSessionContext };
@@ -0,0 +1,30 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface Breadcrumb {
4
+ label: string;
5
+ path: string;
6
+ params?: any;
7
+ queryParams?: any;
8
+ }
9
+ declare class AppBarService {
10
+ private readonly router;
11
+ private readonly activatedRoute;
12
+ private readonly routeArray$;
13
+ private readonly routeArray;
14
+ readonly breadcrumbs: _angular_core.Signal<{
15
+ label: any;
16
+ path: string;
17
+ params: {
18
+ [key: string]: any;
19
+ };
20
+ queryParams: {
21
+ [key: string]: any;
22
+ };
23
+ }[]>;
24
+ readonly endActions: _angular_core.Signal<any>;
25
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AppBarService, never>;
26
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AppBarService>;
27
+ }
28
+
29
+ export { AppBarService };
30
+ export type { Breadcrumb };
@@ -1,9 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken } from '@angular/core';
3
3
 
4
+ type VersionChannel = 'latest' | 'stable' | 'preview';
4
5
  interface Version {
5
6
  key: string;
6
7
  label: string;
8
+ channel?: VersionChannel;
7
9
  }
8
10
  declare class VersionService {
9
11
  private readonly document;
@@ -14,10 +16,13 @@ declare class VersionService {
14
16
  private unsubscribe?;
15
17
  private pollingInterval?;
16
18
  private initialized;
19
+ private destroyed;
20
+ constructor();
17
21
  readonly versions: _angular_core.WritableSignal<Version[]>;
18
22
  readonly isLoading: _angular_core.WritableSignal<boolean>;
19
23
  private isVersionedHost;
20
24
  readonly currentVersion: _angular_core.Signal<string | null>;
25
+ readonly currentVersionLabel: _angular_core.Signal<string | null>;
21
26
  readonly isCloudflareEnv: _angular_core.Signal<boolean>;
22
27
  initialize(): Promise<void>;
23
28
  switchVersion(versionKey: string): void;
@@ -29,6 +34,9 @@ declare class VersionService {
29
34
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<VersionService>;
30
35
  }
31
36
 
37
+ declare function resolveVersionChannel(versions: readonly Version[], current: string | null | undefined): VersionChannel | null;
38
+ declare function resolveVersionLabel(versions: readonly Version[], current: string | null | undefined): string | null;
39
+
32
40
  type VersionedHostMatcher = (hostname: string) => boolean;
33
41
  declare const VERSIONED_HOST_MATCHER: InjectionToken<VersionedHostMatcher>;
34
42
  declare function provideVersionedHostMatcher(matcher: VersionedHostMatcher): {
@@ -36,5 +44,5 @@ declare function provideVersionedHostMatcher(matcher: VersionedHostMatcher): {
36
44
  useValue: VersionedHostMatcher;
37
45
  };
38
46
 
39
- export { VERSIONED_HOST_MATCHER, VersionService, provideVersionedHostMatcher };
40
- export type { Version, VersionedHostMatcher };
47
+ export { VERSIONED_HOST_MATCHER, VersionService, provideVersionedHostMatcher, resolveVersionChannel, resolveVersionLabel };
48
+ export type { Version, VersionChannel, VersionedHostMatcher };