@hahnpro/ai-sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, inject, isDevMode, NgModule, Directive, DestroyRef, Input, ViewChild, Component, Pipe, Inject, InjectionToken, ViewContainerRef, Injector, importProvidersFrom } from '@angular/core';
4
+ import { Injectable, inject, isDevMode, NgModule, Directive, DestroyRef, Input, ViewChild, Component, Pipe, Inject, InjectionToken, ViewContainerRef, Injector, ViewEncapsulation, importProvidersFrom } from '@angular/core';
5
5
  import * as i2$1 from '@angular/material/button';
6
6
  import { MatButtonModule } from '@angular/material/button';
7
7
  import * as i3$1 from '@angular/material/dialog';
@@ -115,10 +115,10 @@ class ApiService {
115
115
  return [];
116
116
  }
117
117
  }
118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
119
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ApiService, providedIn: 'root' });
118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
119
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ApiService, providedIn: 'root' });
120
120
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ApiService, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ApiService, decorators: [{
122
122
  type: Injectable,
123
123
  args: [{ providedIn: 'root' }]
124
124
  }] });
@@ -282,10 +282,10 @@ class OwnerResolverService {
282
282
  console.error(error);
283
283
  }
284
284
  }
285
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: OwnerResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
286
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: OwnerResolverService, providedIn: 'root' });
285
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: OwnerResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
286
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: OwnerResolverService, providedIn: 'root' });
287
287
  }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: OwnerResolverService, decorators: [{
288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: OwnerResolverService, decorators: [{
289
289
  type: Injectable,
290
290
  args: [{ providedIn: 'root' }]
291
291
  }] });
@@ -474,10 +474,10 @@ class ContextService {
474
474
  return null;
475
475
  }
476
476
  }
477
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
478
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ContextService });
477
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
478
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextService });
479
479
  }
480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ContextService, decorators: [{
480
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextService, decorators: [{
481
481
  type: Injectable
482
482
  }] });
483
483
 
@@ -1689,17 +1689,17 @@ class AiTranslocoLoader {
1689
1689
  getTranslation(lang) {
1690
1690
  return of(translations[lang] || {});
1691
1691
  }
1692
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1693
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoLoader, providedIn: 'root' });
1692
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1693
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoLoader, providedIn: 'root' });
1694
1694
  }
1695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoLoader, decorators: [{
1695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoLoader, decorators: [{
1696
1696
  type: Injectable,
1697
1697
  args: [{ providedIn: 'root' }]
1698
1698
  }] });
1699
1699
  class AiTranslocoModule {
1700
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1701
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoModule, imports: [TranslocoModule], exports: [TranslocoModule] });
1702
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoModule, providers: [
1700
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1701
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoModule, imports: [TranslocoModule], exports: [TranslocoModule] });
1702
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoModule, providers: [
1703
1703
  { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },
1704
1704
  { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },
1705
1705
  provideTransloco({
@@ -1713,7 +1713,7 @@ class AiTranslocoModule {
1713
1713
  }),
1714
1714
  ], imports: [TranslocoModule, TranslocoModule] });
1715
1715
  }
1716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiTranslocoModule, decorators: [{
1716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiTranslocoModule, decorators: [{
1717
1717
  type: NgModule,
1718
1718
  args: [{
1719
1719
  imports: [TranslocoModule],
@@ -1772,10 +1772,10 @@ class ChatScrollDirective {
1772
1772
  this.zone.runOutsideAngular(() => (this.el.nativeElement.scrollTop = this.el.nativeElement.scrollHeight));
1773
1773
  }
1774
1774
  }
1775
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ChatScrollDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1776
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.4", type: ChatScrollDirective, isStandalone: true, selector: "[aiChatScroll]", ngImport: i0 });
1775
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ChatScrollDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
1776
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.6", type: ChatScrollDirective, isStandalone: true, selector: "[aiChatScroll]", ngImport: i0 });
1777
1777
  }
1778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ChatScrollDirective, decorators: [{
1778
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ChatScrollDirective, decorators: [{
1779
1779
  type: Directive,
1780
1780
  args: [{
1781
1781
  selector: '[aiChatScroll]',
@@ -1837,10 +1837,10 @@ class WebsocketService {
1837
1837
  }
1838
1838
  return this.eventObservables$[eventName];
1839
1839
  }
1840
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: WebsocketService, deps: [{ token: ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1841
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: WebsocketService });
1840
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: WebsocketService, deps: [{ token: ApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1841
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: WebsocketService });
1842
1842
  }
1843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: WebsocketService, decorators: [{
1843
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: WebsocketService, decorators: [{
1844
1844
  type: Injectable
1845
1845
  }], ctorParameters: () => [{ type: ApiService }] });
1846
1846
 
@@ -2371,10 +2371,10 @@ class ChatService {
2371
2371
  this._messages.push(newMessage || message); // add message
2372
2372
  }
2373
2373
  }
2374
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ChatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2375
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ChatService });
2374
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ChatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2375
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ChatService });
2376
2376
  }
2377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ChatService, decorators: [{
2377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ChatService, decorators: [{
2378
2378
  type: Injectable
2379
2379
  }], ctorParameters: () => [] });
2380
2380
  var WebSocketMessageType;
@@ -2485,10 +2485,10 @@ class VoiceRecognitionService {
2485
2485
  this._isListening = false;
2486
2486
  };
2487
2487
  }
2488
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: VoiceRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2489
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: VoiceRecognitionService, providedIn: 'root' });
2488
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: VoiceRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2489
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: VoiceRecognitionService, providedIn: 'root' });
2490
2490
  }
2491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: VoiceRecognitionService, decorators: [{
2491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: VoiceRecognitionService, decorators: [{
2492
2492
  type: Injectable,
2493
2493
  args: [{ providedIn: 'root' }]
2494
2494
  }] });
@@ -2545,10 +2545,10 @@ class MessageInputComponent {
2545
2545
  stopVoice() {
2546
2546
  this.voiceRecognitionService.stop();
2547
2547
  }
2548
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: MessageInputComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
2549
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: MessageInputComponent, isStandalone: true, selector: "ai-message-input", inputs: { startConversation: "startConversation" }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"mx-auto flex w-full items-end justify-center bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:border dark:border-zinc-600/30 dark:bg-black\"\n *transloco=\"let t\"\n>\n <textarea\n class=\"w-full md:text-lg md:font-semibold\"\n matInput\n cdkAutosizeMaxRows=\"10\"\n cdkTextareaAutosize\n [cdkAutosizeMinRows]=\"isMobileView ? 2 : 4\"\n [placeholder]=\"t('message')\"\n [(ngModel)]=\"message\"\n (keydown.enter)=\"sendMessage() || $event.preventDefault()\"\n spellcheck=\"false\"\n #autosize=\"cdkTextareaAutosize\"\n #messageInput\n ></textarea>\n <div class=\"flex md:flex-col md:gap-2\">\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.use_microphone')\"\n matTooltipPosition=\"above\"\n (click)=\"toggleVoice()\"\n >\n <mat-icon\n class=\"icon-md\"\n [ngClass]=\"{ 'text-red-600': voiceRecognitionService.isListening }\"\n [svgIcon]=\"voiceRecognitionService.isListening ? 'mic_record' : 'mic'\"\n ></mat-icon>\n </button>\n @if (!voiceRecognitionService.isListening) {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.send_message')\"\n matTooltipPosition=\"above\"\n (click)=\"sendMessage()\"\n >\n <mat-icon svgIcon=\"send\" class=\"icon-md\"></mat-icon>\n </button>\n } @else {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.stop_recording')\"\n matTooltipPosition=\"above\"\n (click)=\"stopVoice()\"\n >\n <mat-icon svgIcon=\"record_stop\" class=\"icon-md\"></mat-icon>\n </button>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] });
2548
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MessageInputComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
2549
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: MessageInputComponent, isStandalone: true, selector: "ai-message-input", inputs: { startConversation: "startConversation" }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: ["messageInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"mx-auto flex w-full items-end justify-center bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:border dark:border-zinc-600/30 dark:bg-black\"\n *transloco=\"let t\"\n>\n <textarea\n class=\"w-full md:text-lg md:font-semibold\"\n matInput\n cdkAutosizeMaxRows=\"10\"\n cdkTextareaAutosize\n [cdkAutosizeMinRows]=\"isMobileView ? 2 : 4\"\n [placeholder]=\"t('message')\"\n [(ngModel)]=\"message\"\n (keydown.enter)=\"sendMessage() || $event.preventDefault()\"\n spellcheck=\"false\"\n #autosize=\"cdkTextareaAutosize\"\n #messageInput\n ></textarea>\n <div class=\"flex md:flex-col md:gap-2\">\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.use_microphone')\"\n matTooltipPosition=\"above\"\n (click)=\"toggleVoice()\"\n >\n <mat-icon\n class=\"icon-md\"\n [ngClass]=\"{ 'text-red-600': voiceRecognitionService.isListening }\"\n [svgIcon]=\"voiceRecognitionService.isListening ? 'mic_record' : 'mic'\"\n ></mat-icon>\n </button>\n @if (!voiceRecognitionService.isListening) {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.send_message')\"\n matTooltipPosition=\"above\"\n (click)=\"sendMessage()\"\n >\n <mat-icon svgIcon=\"send\" class=\"icon-md\"></mat-icon>\n </button>\n } @else {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.stop_recording')\"\n matTooltipPosition=\"above\"\n (click)=\"stopVoice()\"\n >\n <mat-icon svgIcon=\"record_stop\" class=\"icon-md\"></mat-icon>\n </button>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] });
2550
2550
  }
2551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: MessageInputComponent, decorators: [{
2551
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MessageInputComponent, decorators: [{
2552
2552
  type: Component,
2553
2553
  args: [{ imports: [
2554
2554
  CdkTextareaAutosize,
@@ -2581,10 +2581,10 @@ class BytesPipe {
2581
2581
  }
2582
2582
  return prettyBytes(input);
2583
2583
  }
2584
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: BytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2585
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: BytesPipe, isStandalone: false, name: "bytes" });
2584
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: BytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2585
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: BytesPipe, isStandalone: false, name: "bytes" });
2586
2586
  }
2587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: BytesPipe, decorators: [{
2587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: BytesPipe, decorators: [{
2588
2588
  type: Pipe,
2589
2589
  args: [{
2590
2590
  name: 'bytes',
@@ -2621,10 +2621,10 @@ class ColorLevelPipe {
2621
2621
  }
2622
2622
  return color;
2623
2623
  }
2624
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ColorLevelPipe, deps: [{ token: i1$1.NGXLogger }], target: i0.ɵɵFactoryTarget.Pipe });
2625
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: ColorLevelPipe, isStandalone: false, name: "colorLevel" });
2624
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ColorLevelPipe, deps: [{ token: i1$1.NGXLogger }], target: i0.ɵɵFactoryTarget.Pipe });
2625
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ColorLevelPipe, isStandalone: false, name: "colorLevel" });
2626
2626
  }
2627
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ColorLevelPipe, decorators: [{
2627
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ColorLevelPipe, decorators: [{
2628
2628
  type: Pipe,
2629
2629
  args: [{
2630
2630
  name: 'colorLevel',
@@ -2636,10 +2636,10 @@ class DateAgoPipe {
2636
2636
  transform(value) {
2637
2637
  return formatDistanceToNow(value);
2638
2638
  }
2639
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DateAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2640
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: DateAgoPipe, isStandalone: false, name: "dateAgo", pure: false });
2639
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DateAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2640
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: DateAgoPipe, isStandalone: false, name: "dateAgo", pure: false });
2641
2641
  }
2642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: DateAgoPipe, decorators: [{
2642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: DateAgoPipe, decorators: [{
2643
2643
  type: Pipe,
2644
2644
  args: [{
2645
2645
  name: 'dateAgo',
@@ -2649,11 +2649,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
2649
2649
  }] });
2650
2650
 
2651
2651
  class UiPipesModule {
2652
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: UiPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2653
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: UiPipesModule, declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe], imports: [CommonModule], exports: [BytesPipe, ColorLevelPipe, DateAgoPipe] });
2654
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: UiPipesModule, imports: [CommonModule] });
2652
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: UiPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2653
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: UiPipesModule, declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe], imports: [CommonModule], exports: [BytesPipe, ColorLevelPipe, DateAgoPipe] });
2654
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: UiPipesModule, imports: [CommonModule] });
2655
2655
  }
2656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: UiPipesModule, decorators: [{
2656
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: UiPipesModule, decorators: [{
2657
2657
  type: NgModule,
2658
2658
  args: [{
2659
2659
  imports: [CommonModule],
@@ -2829,10 +2829,10 @@ class PreviewComponent {
2829
2829
  this.isLoading = false;
2830
2830
  });
2831
2831
  }
2832
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PreviewComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
2833
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: PreviewComponent, isStandalone: true, selector: "ai-content-preview", ngImport: i0, template: "<ng-container>\n <div mat-dialog-title class=\"relative\">\n <div class=\"truncate pr-10\">{{ content.filename }}</div>\n <button\n mat-icon-button\n matDialogClose\n class=\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <mat-icon svgIcon=\"dismiss\"></mat-icon>\n </button>\n </div>\n <div mat-dialog-content class=\"flex grow flex-col\">\n @if (markdown) {\n <div class=\"w-full overflow-y-auto rounded-xl bg-white p-4\">\n <markdown class=\"markdown-body\" [data]=\"markdown\"></markdown>\n </div>\n } @else if (content.mimetype === 'application/pdf') {\n <div class=\"mx-auto w-[50rem] sm:h-[65vh]\">\n <ngx-extended-pdf-viewer\n [authorization]=\"token\"\n [src]=\"pdfSrc\"\n [disableHistory]=\"true\"\n [showBorders]=\"false\"\n [showDownloadButton]=\"false\"\n [showDrawEditor]=\"false\"\n [showEditor]=\"false\"\n [showHighlightEditor]=\"false\"\n [showOpenFileButton]=\"false\"\n [showPrintButton]=\"false\"\n [showRotateButton]=\"false\"\n [showSecondaryToolbarButton]=\"false\"\n [showSidebarButton]=\"false\"\n [showStampEditor]=\"false\"\n [showTextEditor]=\"false\"\n [sidebarVisible]=\"false\"\n [useBrowserLocale]=\"true\"\n [zoom]=\"auto\"\n [page]=\"pageNumber\"\n ></ngx-extended-pdf-viewer>\n </div>\n } @else if (previewUrl) {\n <div\n class=\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\"\n >\n <div class=\"w-full overflow-hidden rounded-lg\">\n <img class=\"w-full\" [src]=\"previewUrl\" alt=\"\" />\n </div>\n </div>\n }\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MarkdownModule }, { kind: "component", type: i1$2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i5.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "forceUsingLegacyES5", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "enablePrintAutoRotate", "showTextEditor", "showStampEditor", "showDrawEditor", "showHighlightEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "useInlineScripts", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindMultiple", "showFindRegexp", "showFindEntireWord", "showFindMatchDiacritics", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel", "showZoomButtons", "showZoomDropdown", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "showRotateCwButton", "showRotateCcwButton", "handTool", "showHandToolButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "showScrollingButtons", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["annotationEditorEvent", "formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }] });
2832
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PreviewComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
2833
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: PreviewComponent, isStandalone: true, selector: "ai-content-preview", ngImport: i0, template: "<ng-container>\n <div mat-dialog-title class=\"relative\">\n <div class=\"truncate pr-10\">{{ content.filename }}</div>\n <button\n mat-icon-button\n matDialogClose\n class=\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <mat-icon svgIcon=\"dismiss\"></mat-icon>\n </button>\n </div>\n <div mat-dialog-content class=\"flex grow flex-col\">\n @if (markdown) {\n <div class=\"w-full overflow-y-auto rounded-xl bg-white p-4\">\n <markdown class=\"markdown-body\" [data]=\"markdown\"></markdown>\n </div>\n } @else if (content.mimetype === 'application/pdf') {\n <div class=\"mx-auto w-[50rem] sm:h-[65vh]\">\n <ngx-extended-pdf-viewer\n [authorization]=\"token\"\n [src]=\"pdfSrc\"\n [disableHistory]=\"true\"\n [showBorders]=\"false\"\n [showDownloadButton]=\"false\"\n [showDrawEditor]=\"false\"\n [showEditor]=\"false\"\n [showHighlightEditor]=\"false\"\n [showOpenFileButton]=\"false\"\n [showPrintButton]=\"false\"\n [showRotateButton]=\"false\"\n [showSecondaryToolbarButton]=\"false\"\n [showSidebarButton]=\"false\"\n [showStampEditor]=\"false\"\n [showTextEditor]=\"false\"\n [sidebarVisible]=\"false\"\n [useBrowserLocale]=\"true\"\n [zoom]=\"auto\"\n [page]=\"pageNumber\"\n ></ngx-extended-pdf-viewer>\n </div>\n } @else if (previewUrl) {\n <div\n class=\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\"\n >\n <div class=\"w-full overflow-hidden rounded-lg\">\n <img class=\"w-full\" [src]=\"previewUrl\" alt=\"\" />\n </div>\n </div>\n }\n </div>\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MarkdownModule }, { kind: "component", type: i1$2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: NgxExtendedPdfViewerModule }, { kind: "component", type: i5.NgxExtendedPdfViewerComponent, selector: "ngx-extended-pdf-viewer", inputs: ["customFindbarInputArea", "customToolbar", "customFindbar", "customFindbarButtons", "customPdfViewer", "customSecondaryToolbar", "customSidebar", "customThumbnail", "customFreeFloatingBar", "showFreeFloatingBar", "enableDragAndDrop", "forceUsingLegacyES5", "formData", "disableForms", "pageViewMode", "scrollMode", "authorization", "httpHeaders", "contextMenuAllowed", "enablePrint", "enablePrintAutoRotate", "forceFullReloadOfJavaScriptCode", "showTextEditor", "showStampEditor", "showDrawEditor", "showHighlightEditor", "logLevel", "relativeCoordsOptions", "minifiedJSLibraries", "printResolution", "rotation", "src", "base64Src", "minHeight", "height", "backgroundColor", "filenameForDownload", "ignoreKeyboard", "ignoreKeys", "acceptKeys", "imageResourcesPath", "localeFolderPath", "language", "listenToURL", "nameddest", "password", "replaceBrowserPrint", "useInlineScripts", "showUnverifiedSignatures", "startTabindex", "showSidebarButton", "sidebarVisible", "activeSidebarView", "findbarVisible", "propertiesDialogVisible", "showFindButton", "showFindHighlightAll", "showFindMatchCase", "showFindMultiple", "showFindRegexp", "showFindEntireWord", "showFindMatchDiacritics", "showFindResultsCount", "showFindMessages", "showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel", "showZoomButtons", "showZoomDropdown", "showPresentationModeButton", "showOpenFileButton", "showPrintButton", "showDownloadButton", "theme", "showToolbar", "showSecondaryToolbarButton", "showSinglePageModeButton", "showVerticalScrollButton", "showHorizontalScrollButton", "showWrappedScrollButton", "showInfiniteScrollButton", "showBookModeButton", "showRotateButton", "showRotateCwButton", "showRotateCcwButton", "handTool", "showHandToolButton", "showSpreadButton", "showPropertiesButton", "showBorders", "spread", "showScrollingButtons", "page", "pageLabel", "textLayer", "zoom", "zoomLevels", "maxZoom", "minZoom", "mobileFriendlyZoom"], outputs: ["annotationEditorEvent", "formDataChange", "pageViewModeChange", "progress", "srcChange", "scrollModeChange", "afterPrint", "beforePrint", "currentZoomFactor", "rotationChange", "annotationLayerRendered", "annotationEditorLayerRendered", "xfaLayerRendered", "outlineLoaded", "attachmentsloaded", "layersloaded", "sidebarVisibleChange", "activeSidebarViewChange", "findbarVisibleChange", "propertiesDialogVisibleChange", "handToolChange", "spreadChange", "thumbnailDrawn", "pageChange", "pageLabelChange", "pagesLoaded", "pageRender", "pageRendered", "pdfDownloaded", "pdfLoaded", "pdfLoadingStarts", "pdfLoadingFailed", "textLayerRendered", "annotationEditorModeChanged", "updateFindMatchesCount", "updateFindState", "zoomChange"] }] });
2834
2834
  }
2835
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: PreviewComponent, decorators: [{
2835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: PreviewComponent, decorators: [{
2836
2836
  type: Component,
2837
2837
  args: [{ imports: [
2838
2838
  CommonModule,
@@ -2917,10 +2917,10 @@ class ContextOverlayComponent {
2917
2917
  return false;
2918
2918
  }
2919
2919
  }
2920
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ContextOverlayComponent, deps: [{ token: OVERLAY_RESOURCE_ID }, { token: OVERLAY_RESOURCE_TYPE }, { token: OVERLAY_PAGE_NUMBER }], target: i0.ɵɵFactoryTarget.Component });
2921
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ContextOverlayComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\"\n *transloco=\"let t\"\n>\n @if (resource) {\n @if (pageNumber) {\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\n <div class=\"flex items-center gap-x-1 text-lg\">\n <span>{{ t('ai.source') }}:</span>\n <button\n class=\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\"\n (click)=\"previewContent(pageNumber)\"\n >\n {{ t('page') }} {{ pageNumber }}\n </button>\n <span>{{ t('ai.of_document') }}</span>\n </div>\n <div class=\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\"></div>\n <div class=\"flex items-center gap-x-3\">\n <mat-icon [svgIcon]=\"iconForMimeType()\" class=\"icon-sm\"></mat-icon>\n <div>\n {{ resource?.filename }}\n </div>\n </div>\n @if (asset) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"asset\" class=\"icon-sm\"></mat-icon>\n <div>\n {{ asset.name }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\"\n >\n <div\n class=\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\"\n >\n <mat-icon class=\"icon-md\" [svgIcon]=\"iconForMimeType()\"></mat-icon>\n </div>\n <div class=\"w-full overflow-hidden\">\n <div class=\"flex w-full flex-col items-center pr-8 sm:items-start\">\n <div\n class=\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\"\n >\n {{ resource?.name || resource?.filename }}\n </div>\n <div\n class=\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\"\n >\n <span>{{ t(labelForType()) }}</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\n @if (resource?.owner?.name) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"shield_person\" class=\"icon-sm\"></mat-icon>\n <div>\n {{ t('owner.managed_by') }} <b>{{ resource.owner.name }}</b>\n </div>\n </div>\n }\n @if (asset) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"asset\" class=\"icon-sm\"></mat-icon>\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\n </div>\n }\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"history\" class=\"icon-sm\"></mat-icon>\n <div class=\"flex flex-col gap-x-2 sm:flex-row sm:items-center\">\n @if (\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\n ) {\n <span>\n {{ t('last_updated') }}\n <span\n class=\"select-none\"\n matTooltip=\"{{ resource?.updatedAt | date: 'medium' }}\"\n matTooltipClass=\"text-sm\"\n >\n {{ resource?.updatedAt | dateAgo }}\n </span>\n </span>\n } @else {\n <span>\n {{ t('created') }}\n <span\n class=\"select-none\"\n matTooltip=\"{{ resource?.createdAt | date: 'medium' }}\"\n matTooltipClass=\"text-sm\"\n >\n {{ resource?.createdAt | dateAgo }}\n </span>\n </span>\n }\n </div>\n </div>\n @if (resource?.description) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"slide_text\" class=\"icon-sm\"></mat-icon>\n <div class=\"line-clamp-3\">{{ resource?.description }}</div>\n </div>\n }\n @if (resource?.size) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"drive\" class=\"icon-sm\"></mat-icon>\n <div>{{ resource?.size | bytes }}</div>\n </div>\n }\n @if (isPreviewSupported()) {\n <div class=\"w-full px-4 pt-4\">\n <button\n mat-raised-button\n color=\"primary\"\n class=\"w-full\"\n (click)=\"previewContent()\"\n >\n {{ t('show_preview') }}\n </button>\n </div>\n }\n </div>\n }\n } @else if (status?.isLoading) {\n <div class=\"flex h-10 w-10 items-center justify-center\">\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\n </div>\n } @else {\n <div class=\"flex flex-col gap-y-1 px-2 py-1\">\n <span class=\"text-md font-semibold\">{{\n t('toast_error_load_item', { item: t(resourceType) })\n }}</span>\n <span class=\"text-xs\">{{ resourceId }}</span>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: ClipboardModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: UiPipesModule }, { kind: "pipe", type: BytesPipe, name: "bytes" }, { kind: "pipe", type: DateAgoPipe, name: "dateAgo" }] });
2920
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextOverlayComponent, deps: [{ token: OVERLAY_RESOURCE_ID }, { token: OVERLAY_RESOURCE_TYPE }, { token: OVERLAY_PAGE_NUMBER }], target: i0.ɵɵFactoryTarget.Component });
2921
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ContextOverlayComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div\n class=\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\"\n *transloco=\"let t\"\n>\n @if (resource) {\n @if (pageNumber) {\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\n <div class=\"flex items-center gap-x-1 text-lg\">\n <span>{{ t('ai.source') }}:</span>\n <button\n class=\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\"\n (click)=\"previewContent(pageNumber)\"\n >\n {{ t('page') }} {{ pageNumber }}\n </button>\n <span>{{ t('ai.of_document') }}</span>\n </div>\n <div class=\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\"></div>\n <div class=\"flex items-center gap-x-3\">\n <mat-icon [svgIcon]=\"iconForMimeType()\" class=\"icon-sm\"></mat-icon>\n <div>\n {{ resource?.filename }}\n </div>\n </div>\n @if (asset) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"asset\" class=\"icon-sm\"></mat-icon>\n <div>\n {{ asset.name }}\n </div>\n </div>\n }\n </div>\n } @else {\n <div\n class=\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\"\n >\n <div\n class=\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\"\n >\n <mat-icon class=\"icon-md\" [svgIcon]=\"iconForMimeType()\"></mat-icon>\n </div>\n <div class=\"w-full overflow-hidden\">\n <div class=\"flex w-full flex-col items-center pr-8 sm:items-start\">\n <div\n class=\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\"\n >\n {{ resource?.name || resource?.filename }}\n </div>\n <div\n class=\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\"\n >\n <span>{{ t(labelForType()) }}</span>\n </div>\n </div>\n </div>\n </div>\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\n @if (resource?.owner?.name) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"shield_person\" class=\"icon-sm\"></mat-icon>\n <div>\n {{ t('owner.managed_by') }} <b>{{ resource.owner.name }}</b>\n </div>\n </div>\n }\n @if (asset) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"asset\" class=\"icon-sm\"></mat-icon>\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\n </div>\n }\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"history\" class=\"icon-sm\"></mat-icon>\n <div class=\"flex flex-col gap-x-2 sm:flex-row sm:items-center\">\n @if (\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\n ) {\n <span>\n {{ t('last_updated') }}\n <span\n class=\"select-none\"\n matTooltip=\"{{ resource?.updatedAt | date: 'medium' }}\"\n matTooltipClass=\"text-sm\"\n >\n {{ resource?.updatedAt | dateAgo }}\n </span>\n </span>\n } @else {\n <span>\n {{ t('created') }}\n <span\n class=\"select-none\"\n matTooltip=\"{{ resource?.createdAt | date: 'medium' }}\"\n matTooltipClass=\"text-sm\"\n >\n {{ resource?.createdAt | dateAgo }}\n </span>\n </span>\n }\n </div>\n </div>\n @if (resource?.description) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"slide_text\" class=\"icon-sm\"></mat-icon>\n <div class=\"line-clamp-3\">{{ resource?.description }}</div>\n </div>\n }\n @if (resource?.size) {\n <div class=\"flex items-center gap-x-3\">\n <mat-icon svgIcon=\"drive\" class=\"icon-sm\"></mat-icon>\n <div>{{ resource?.size | bytes }}</div>\n </div>\n }\n @if (isPreviewSupported()) {\n <div class=\"w-full px-4 pt-4\">\n <button\n mat-raised-button\n color=\"primary\"\n class=\"w-full\"\n (click)=\"previewContent()\"\n >\n {{ t('show_preview') }}\n </button>\n </div>\n }\n </div>\n }\n } @else if (status?.isLoading) {\n <div class=\"flex h-10 w-10 items-center justify-center\">\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\n </div>\n } @else {\n <div class=\"flex flex-col gap-y-1 px-2 py-1\">\n <span class=\"text-md font-semibold\">{{\n t('toast_error_load_item', { item: t(resourceType) })\n }}</span>\n <span class=\"text-xs\">{{ resourceId }}</span>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: ClipboardModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: UiPipesModule }, { kind: "pipe", type: BytesPipe, name: "bytes" }, { kind: "pipe", type: DateAgoPipe, name: "dateAgo" }] });
2922
2922
  }
2923
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ContextOverlayComponent, decorators: [{
2923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ContextOverlayComponent, decorators: [{
2924
2924
  type: Component,
2925
2925
  args: [{ imports: [
2926
2926
  CommonModule,
@@ -2986,10 +2986,10 @@ class MessageContextComponent {
2986
2986
  this.overlayRef.attach(portal);
2987
2987
  this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());
2988
2988
  }
2989
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: MessageContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2990
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: MessageContextComponent, isStandalone: true, selector: "ai-message-context", inputs: { isLastMessage: "isLastMessage", message: "message" }, ngImport: i0, template: "<cdk-accordion *transloco=\"let t\">\n <cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [expanded]=\"isLastMessage\"\n >\n <div\n class=\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\"\n >\n @if (message?.parsedContent?.references?.length) {\n <div\n class=\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-lg text-zinc-800 dark:text-zinc-300\"\n (click)=\"accordionItem.toggle()\"\n (keyup.enter)=\"accordionItem.toggle()\"\n tabindex=\"0\"\n >\n <mat-icon svgIcon=\"layer_diagonal_sparkle\"></mat-icon>\n <span class=\"font-bold\">{{ t('ai.context') }}</span>\n </div>\n @if (accordionItem.expanded) {\n <div class=\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\">\n @for (\n ref of message?.parsedContent?.references;\n track ref.reference_id\n ) {\n @if (contextService.getContext(ref.id); as resource) {\n @if (\n ref.resourceType === 'asset' &&\n contextService.getContext(ref.id)\n ) {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <mat-icon svgIcon=\"asset\"></mat-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.name\n }}</span>\n @if (resource.type$name) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{\n resource.type$name\n }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (ref.resourceType === 'content') {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <mat-icon\n [svgIcon]=\"iconForMimeType(resource.mimetype)\"\n ></mat-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.filename\n }}</span>\n @if (\n contextService.assetForContent(resource.id);\n as asset\n ) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ asset.name }}</span>\n <span>\u00B7</span>\n <span class=\"truncate\">{{ asset.type$name }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (\n ref.resourceType === 'event' &&\n contextService.getContext(ref.id)\n ) {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <mat-icon svgIcon=\"calendar_clock\"></mat-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.name\n }}</span>\n @if (contextService.assetForEvent(resource); as asset) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ asset.name }}</span>\n <span>\u00B7</span>\n <span class=\"truncate\">{{ asset.type$name }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n } @else if (contextService.status.get(ref.id)?.isLoading) {\n <div\n class=\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\"\n >\n <div class=\"flex h-10 w-10 items-center justify-center\">\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\n </div>\n </div>\n } @else {\n <div\n class=\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\"\n >\n <mat-icon svgIcon=\"error_circle\"></mat-icon>\n </div>\n <div class=\"flex h-full flex-col pr-4\">\n <span class=\"text-md font-semibold\">{{\n t('toast_error_load_item', {\n item: t(ref.resourceType),\n })\n }}</span>\n <span class=\"text-xs\">{{ ref.id }}</span>\n </div>\n </div>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n </cdk-accordion-item>\n</cdk-accordion>\n", styles: ["@keyframes flash{0%,to{background:transparent}50%{background:#06b6d44d}}.animate-highlight{animation:flash .75s linear;animation-fill-mode:backwards;animation-iteration-count:2}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$3.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }, { kind: "directive", type: i1$3.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: UiPipesModule }] });
2989
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MessageContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2990
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: MessageContextComponent, isStandalone: true, selector: "ai-message-context", inputs: { isLastMessage: "isLastMessage", message: "message" }, ngImport: i0, template: "<cdk-accordion *transloco=\"let t\">\n <cdk-accordion-item\n #accordionItem=\"cdkAccordionItem\"\n [expanded]=\"isLastMessage\"\n >\n <div\n class=\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\"\n >\n @if (message?.parsedContent?.references?.length) {\n <div\n class=\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-lg text-zinc-800 dark:text-zinc-300\"\n (click)=\"accordionItem.toggle()\"\n (keyup.enter)=\"accordionItem.toggle()\"\n tabindex=\"0\"\n >\n <mat-icon svgIcon=\"layer_diagonal_sparkle\"></mat-icon>\n <span class=\"font-bold\">{{ t('ai.context') }}</span>\n </div>\n @if (accordionItem.expanded) {\n <div class=\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\">\n @for (\n ref of message?.parsedContent?.references;\n track ref.reference_id\n ) {\n @if (contextService.getContext(ref.id); as resource) {\n @if (\n ref.resourceType === 'asset' &&\n contextService.getContext(ref.id)\n ) {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <mat-icon svgIcon=\"asset\"></mat-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.name\n }}</span>\n @if (resource.type$name) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{\n resource.type$name\n }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (ref.resourceType === 'content') {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <mat-icon\n [svgIcon]=\"iconForMimeType(resource.mimetype)\"\n ></mat-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.filename\n }}</span>\n @if (\n contextService.assetForContent(resource.id);\n as asset\n ) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ asset.name }}</span>\n <span>\u00B7</span>\n <span class=\"truncate\">{{ asset.type$name }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (\n ref.resourceType === 'event' &&\n contextService.getContext(ref.id)\n ) {\n <div\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\n (keyup.enter)=\"\n openOverlay($event, ref.id, ref.resourceType)\n \"\n tabindex=\"0\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n [class.animate-highlight]=\"\n resource.id === chatService.highlightContext\n \"\n (animationend)=\"chatService.highlightContext = ''\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\n >\n <mat-icon svgIcon=\"calendar_clock\"></mat-icon>\n </div>\n <div\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\n >\n <span class=\"truncate text-md font-semibold\">{{\n resource.name\n }}</span>\n @if (contextService.assetForEvent(resource); as asset) {\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ asset.name }}</span>\n <span>\u00B7</span>\n <span class=\"truncate\">{{ asset.type$name }}</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n } @else if (contextService.status.get(ref.id)?.isLoading) {\n <div\n class=\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\"\n >\n <div class=\"flex h-10 w-10 items-center justify-center\">\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\n </div>\n </div>\n } @else {\n <div\n class=\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\"\n >\n <div\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\n >\n <div\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\"\n >\n <mat-icon svgIcon=\"error_circle\"></mat-icon>\n </div>\n <div class=\"flex h-full flex-col pr-4\">\n <span class=\"text-md font-semibold\">{{\n t('toast_error_load_item', {\n item: t(ref.resourceType),\n })\n }}</span>\n <span class=\"text-xs\">{{ ref.id }}</span>\n </div>\n </div>\n </div>\n }\n }\n </div>\n }\n }\n </div>\n </cdk-accordion-item>\n</cdk-accordion>\n", styles: ["@keyframes flash{0%,to{background:transparent}50%{background:#06b6d44d}}.animate-highlight{animation:flash .75s linear;animation-fill-mode:backwards;animation-iteration-count:2}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CdkAccordionModule }, { kind: "directive", type: i1$3.CdkAccordion, selector: "cdk-accordion, [cdkAccordion]", inputs: ["multi"], exportAs: ["cdkAccordion"] }, { kind: "directive", type: i1$3.CdkAccordionItem, selector: "cdk-accordion-item, [cdkAccordionItem]", inputs: ["expanded", "disabled"], outputs: ["closed", "opened", "destroyed", "expandedChange"], exportAs: ["cdkAccordionItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: UiPipesModule }] });
2991
2991
  }
2992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: MessageContextComponent, decorators: [{
2992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: MessageContextComponent, decorators: [{
2993
2993
  type: Component,
2994
2994
  args: [{ imports: [
2995
2995
  CommonModule,
@@ -3105,10 +3105,10 @@ class ThreadComponent {
3105
3105
  selectChoice(selection, toolMessage) {
3106
3106
  this.chatService.selectChoice(selection, toolMessage);
3107
3107
  }
3108
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThreadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3109
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ThreadComponent, isStandalone: true, selector: "ai-thread", ngImport: i0, template: "<div class=\"relative flex h-full w-full flex-col gap-1 px-6 py-4\" *transloco=\"let t\">\n @if (chatService.isLoading) {\n <div class=\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\">\n <mat-spinner diameter=\"28\"></mat-spinner>\n </div>\n }\n @for (item of chatService.messages; track item.id; let idx = $index) {\n @if (item.role === 'assistant' && item.parsedContent) {\n <div class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2 text-lg md:text-xl\">\n <markdown class=\"markdown-body\" [data]=\"getMarkdownContent(item)\" (click)=\"interceptClick($event)\"></markdown>\n @if (item.parsedContent.references?.length) {\n <ai-message-context [message]=\"item\" [isLastMessage]=\"idx === chatService.messages.length - 1\" class=\"mt-2\"></ai-message-context>\n }\n </div>\n } @else if (item.role === 'assistant' && item.status === 'failed' && getFailReason(item)) {\n <div class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2 text-lg md:text-xl\">\n <div class=\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\">\n <mat-icon svgIcon=\"dismiss_circle\" class=\"text-red-600/80 icon-sm dark:text-red-400/80\"></mat-icon>\n <span>{{ getFailReason(item) }}</span>\n </div>\n </div>\n } @else if (item.role === 'tool' && item.toolType === 'action' && item.status && getToolStatus(item)) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-1 text-lg md:text-xl\">\n <div\n class=\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\"\n >\n @if (item.status === 'completed') {\n <mat-icon svgIcon=\"checkmark_circle\" class=\"text-green-500/80 icon-sm dark:text-green-400/80\"></mat-icon>\n } @else if (item.status === 'failed') {\n <mat-icon svgIcon=\"dismiss_circle\" class=\"text-red-500/80 icon-sm dark:text-red-400/80\"></mat-icon>\n } @else if (item.status === 'pending') {\n <mat-icon svgIcon=\"hourglass_quarter\" class=\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\"></mat-icon>\n } @else if (item.status === 'processing') {\n <mat-spinner diameter=\"16\"></mat-spinner>\n }\n <i>{{ getToolStatus(item) }}</i>\n </div>\n </div>\n } @else if (item.role === 'tool' && item.toolType === 'choice' && item.status === 'processing' && item.args?.choices) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-2 text-lg md:text-xl\">\n <div class=\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\">\n @if (item.args.message) {\n <div class=\"flex items-center gap-x-3 px-5 pb-3 text-lg text-zinc-800 dark:text-zinc-300\">\n <mat-icon svgIcon=\"layer_diagonal_sparkle\"></mat-icon>\n <span class=\"font-semibold\">{{ item.args.message }}</span>\n </div>\n }\n <div class=\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\">\n @for (choice of item.args.choices; track choice.id) {\n <div\n class=\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"selectChoice(choice, item)\"\n (keyup.enter)=\"selectChoice(choice, item)\"\n tabindex=\"0\"\n >\n <div class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\">\n <div class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\">\n <mat-icon svgIcon=\"asset\"></mat-icon>\n </div>\n <div class=\"flex h-full grow flex-col overflow-hidden pr-4\">\n <span class=\"truncate text-md font-semibold\">{{ choice.name }}</span>\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ choice.typeName }}</span>\n @if (choice.location) {\n <span class=\"truncate\">{{ choice.location }}</span>\n }\n @if (choice.factory) {\n <span class=\"truncate\">{{ choice.factory }}</span>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (item.role === 'user' && !item.hidden) {\n <div class=\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\">\n <div class=\"rounded-2xl bg-zinc-300/30 px-6 py-4 text-md md:text-lg dark:bg-black/20\">\n <markdown class=\"markdown-body\" [data]=\"item.content\"></markdown>\n </div>\n </div>\n }\n }\n\n @if (chatService.isProcessing) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center rounded-2xl text-lg md:text-xl\">\n <div class=\"flex flex-col gap-y-2 px-2 py-4\">\n <div class=\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\"> <div></div><div></div><div></div> </div>\n </div>\n </div>\n }\n</div>\n", styles: [".pulse-loader>div{background-color:currentColor;width:8px;height:8px;border-radius:100%;animation:pulse 1s ease infinite}.pulse-loader>div:nth-child(2){animation-delay:.1s!important}.pulse-loader>div:nth-child(3){animation-delay:.2s!important}@keyframes pulse{0%,60%,to{opacity:1;transform:scale(1)}30%{opacity:.1;transform:scale(.01)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CdkAccordionModule }, { kind: "ngmodule", type: MarkdownModule }, { kind: "component", type: i1$2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: MessageContextComponent, selector: "ai-message-context", inputs: ["isLastMessage", "message"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: UiPipesModule }] });
3108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThreadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThreadComponent, isStandalone: true, selector: "ai-thread", ngImport: i0, template: "<div class=\"relative flex h-full w-full flex-col gap-1 px-6 py-4\" *transloco=\"let t\">\n @if (chatService.isLoading) {\n <div class=\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\">\n <mat-spinner diameter=\"28\"></mat-spinner>\n </div>\n }\n @for (item of chatService.messages; track item.id; let idx = $index) {\n @if (item.role === 'assistant' && item.parsedContent) {\n <div class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2 text-lg md:text-xl\">\n <markdown class=\"markdown-body\" [data]=\"getMarkdownContent(item)\" (click)=\"interceptClick($event)\"></markdown>\n @if (item.parsedContent.references?.length) {\n <ai-message-context [message]=\"item\" [isLastMessage]=\"idx === chatService.messages.length - 1\" class=\"mt-2\"></ai-message-context>\n }\n </div>\n } @else if (item.role === 'assistant' && item.status === 'failed' && getFailReason(item)) {\n <div class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2 text-lg md:text-xl\">\n <div class=\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\">\n <mat-icon svgIcon=\"dismiss_circle\" class=\"text-red-600/80 icon-sm dark:text-red-400/80\"></mat-icon>\n <span>{{ getFailReason(item) }}</span>\n </div>\n </div>\n } @else if (item.role === 'tool' && item.toolType === 'action' && item.status && getToolStatus(item)) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-1 text-lg md:text-xl\">\n <div\n class=\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\"\n >\n @if (item.status === 'completed') {\n <mat-icon svgIcon=\"checkmark_circle\" class=\"text-green-500/80 icon-sm dark:text-green-400/80\"></mat-icon>\n } @else if (item.status === 'failed') {\n <mat-icon svgIcon=\"dismiss_circle\" class=\"text-red-500/80 icon-sm dark:text-red-400/80\"></mat-icon>\n } @else if (item.status === 'pending') {\n <mat-icon svgIcon=\"hourglass_quarter\" class=\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\"></mat-icon>\n } @else if (item.status === 'processing') {\n <mat-spinner diameter=\"16\"></mat-spinner>\n }\n <i>{{ getToolStatus(item) }}</i>\n </div>\n </div>\n } @else if (item.role === 'tool' && item.toolType === 'choice' && item.status === 'processing' && item.args?.choices) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-2 text-lg md:text-xl\">\n <div class=\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\">\n @if (item.args.message) {\n <div class=\"flex items-center gap-x-3 px-5 pb-3 text-lg text-zinc-800 dark:text-zinc-300\">\n <mat-icon svgIcon=\"layer_diagonal_sparkle\"></mat-icon>\n <span class=\"font-semibold\">{{ item.args.message }}</span>\n </div>\n }\n <div class=\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\">\n @for (choice of item.args.choices; track choice.id) {\n <div\n class=\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\n (click)=\"selectChoice(choice, item)\"\n (keyup.enter)=\"selectChoice(choice, item)\"\n tabindex=\"0\"\n >\n <div class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\">\n <div class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\">\n <mat-icon svgIcon=\"asset\"></mat-icon>\n </div>\n <div class=\"flex h-full grow flex-col overflow-hidden pr-4\">\n <span class=\"truncate text-md font-semibold\">{{ choice.name }}</span>\n <div class=\"flex items-center gap-x-2 text-xs\">\n <span class=\"truncate\">{{ choice.typeName }}</span>\n @if (choice.location) {\n <span class=\"truncate\">{{ choice.location }}</span>\n }\n @if (choice.factory) {\n <span class=\"truncate\">{{ choice.factory }}</span>\n }\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n } @else if (item.role === 'user' && !item.hidden) {\n <div class=\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\">\n <div class=\"rounded-2xl bg-zinc-300/30 px-6 py-4 text-md md:text-lg dark:bg-black/20\">\n <markdown class=\"markdown-body\" [data]=\"item.content\"></markdown>\n </div>\n </div>\n }\n }\n\n @if (chatService.isProcessing) {\n <div class=\"flex w-full max-w-[85%] flex-col self-center rounded-2xl text-lg md:text-xl\">\n <div class=\"flex flex-col gap-y-2 px-2 py-4\">\n <div class=\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\"> <div></div><div></div><div></div> </div>\n </div>\n </div>\n }\n</div>\n", styles: [".pulse-loader>div{background-color:currentColor;width:8px;height:8px;border-radius:100%;animation:pulse 1s ease infinite}.pulse-loader>div:nth-child(2){animation-delay:.1s!important}.pulse-loader>div:nth-child(3){animation-delay:.2s!important}@keyframes pulse{0%,60%,to{opacity:1;transform:scale(1)}30%{opacity:.1;transform:scale(.01)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CdkAccordionModule }, { kind: "ngmodule", type: MarkdownModule }, { kind: "component", type: i1$2.MarkdownComponent, selector: "markdown, [markdown]", inputs: ["data", "src", "disableSanitizer", "inline", "clipboard", "clipboardButtonComponent", "clipboardButtonTemplate", "emoji", "katex", "katexOptions", "mermaid", "mermaidOptions", "lineHighlight", "line", "lineOffset", "lineNumbers", "start", "commandLine", "filterOutput", "host", "prompt", "output", "user"], outputs: ["error", "load", "ready"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3$2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: MessageContextComponent, selector: "ai-message-context", inputs: ["isLastMessage", "message"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: UiPipesModule }] });
3110
3110
  }
3111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThreadComponent, decorators: [{
3111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThreadComponent, decorators: [{
3112
3112
  type: Component,
3113
3113
  args: [{ imports: [
3114
3114
  CommonModule,
@@ -3369,10 +3369,10 @@ class AiChatDialogComponent {
3369
3369
  close(message) {
3370
3370
  this.matDialogRef.close(message);
3371
3371
  }
3372
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiChatDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i3$1.MatDialogRef }, { token: i2$2.MatIconRegistry }, { token: i3$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
3373
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: AiChatDialogComponent, isStandalone: true, selector: "ng-component", providers: [ChatService, ContextService, WebsocketService], ngImport: i0, template: "<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\n <div class=\"flex justify-end pb-2\">\n <button\n mat-icon-button\n (click)=\"close()\"\n class=\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <mat-icon svgIcon=\"dismiss\"></mat-icon>\n </button>\n </div>\n <div\n class=\"flex h-full w-full flex-col items-center overflow-y-auto\"\n aiChatScroll\n >\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\n </div>\n <ai-message-input class=\"w-full\"></ai-message-input>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AiTranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: ChatScrollDirective, selector: "[aiChatScroll]" }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LoggerModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: MessageInputComponent, selector: "ai-message-input", inputs: ["startConversation"] }, { kind: "component", type: ThreadComponent, selector: "ai-thread" }] });
3372
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiChatDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i3$1.MatDialogRef }, { token: i2$2.MatIconRegistry }, { token: i3$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
3373
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: AiChatDialogComponent, isStandalone: true, selector: "ng-component", providers: [ChatService, ContextService, WebsocketService], ngImport: i0, template: "<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\n <div class=\"flex justify-end pb-2\">\n <button\n mat-icon-button\n (click)=\"close()\"\n class=\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <mat-icon svgIcon=\"dismiss\"></mat-icon>\n </button>\n </div>\n <div\n class=\"flex h-full w-full flex-col items-center overflow-y-auto\"\n aiChatScroll\n >\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\n </div>\n <ai-message-input class=\"w-full\"></ai-message-input>\n</div>\n", styles: ["*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\[50rem\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\[85\\%\\]{max-width:85%!important}.max-w-\\[90\\%\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{--tw-border-opacity:1!important;border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-zinc-300\\/40{border-color:#d4d4d866!important}.border-zinc-300\\/50{border-color:#d4d4d880!important}.border-zinc-400\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\/50{border-color:#a1a1aa80!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-400\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\/50{color:#3f3f4680!important}.text-zinc-700\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\/90{color:#27272ae6!important}.text-zinc-900\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mdc-chip-container-height:30px;--mdc-chip-container-shape-radius:12px;--mdc-fab-container-shape:12px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-state-layer-size:40px;--mdc-icon-button-icon-color:currentColor;--mdc-linear-progress-active-indicator-color:#020617;--mdc-linear-progress-active-indicator-height:10px;--mdc-linear-progress-track-color:#f4f4f5;--mdc-linear-progress-track-height:10px;--mdc-linear-progress-track-shape:10px;--mdc-plain-tooltip-container-shape:8px;--mdc-protected-button-container-shape:9999px;--mdc-protected-button-keep-touch-target:false;--mat-protected-button-horizontal-padding:24px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mdc-dialog-container-shape:16px;--mdc-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mdc-outlined-button-container-height:40px;--mdc-outlined-button-container-shape:9999px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:24px;--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-text-button-container-height:40px;--mdc-text-button-container-shape:9999px;--mat-text-button-horizontal-padding:24px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mdc-text-button-keep-touch-target:false;--mat-text-button-with-icon-horizontal-padding:8px;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mdc-switch-track-height:28px;--mat-switch-track-outline-color:#52525b;--mat-switch-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-switch-label-text-color:#09090b;--mat-switch-label-text-tracking:0;--mat-switch-label-text-weight:600;--mdc-switch-unselected-handle-color:#52525b;--mdc-switch-unselected-track-color:#d4d4d8;--mdc-switch-unselected-focus-track-color:#cbd5e1;--mdc-switch-unselected-hover-track-color:#cbd5e1;--mdc-switch-unselected-pressed-track-color:#cbd5e1;--mdc-switch-selected-track-color:#1e293b;--mdc-switch-selected-focus-track-color:#334155;--mdc-switch-selected-hover-track-color:#334155;--mdc-switch-selected-pressed-track-color:#334155;--mat-switch-selected-track-outline-color:#020617;--mdc-switch-selected-handle-color:#cbd5e1;--mdc-switch-selected-focus-handle-color:#3ffbda;--mdc-switch-selected-hover-handle-color:#3ffbda;--mdc-switch-selected-pressed-handle-color:#3ffbda;--mdc-switch-selected-focus-state-layer-color:#3ffbda;--mdc-switch-selected-hover-state-layer-color:#3ffbda;--mdc-switch-selected-pressed-state-layer-color:#3ffbda;--mdc-switch-unselected-focus-state-layer-color:#020617;--mdc-switch-unselected-hover-state-layer-color:#020617;--mdc-switch-unselected-pressed-state-layer-color:#020617;--mdc-switch-selected-icon-color:#020617;--mat-switch-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mdc-radio-selected-icon-color:#0f172a;--mdc-radio-selected-pressed-icon-color:#3f8efe;--mdc-radio-selected-hover-icon-color:#06b6d4;--mdc-radio-unselected-icon-color:#0f172a;--mdc-radio-unselected-pressed-icon-color:#3f8efe;--mdc-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mdc-checkbox-state-layer-size:36px;--mdc-checkbox-selected-icon-color:#0f172a;--mdc-checkbox-selected-hover-icon-color:#0f172a;--mdc-checkbox-selected-pressed-icon-color:#0f172a;--mdc-checkbox-selected-focus-icon-color:#0f172a;--mdc-checkbox-unselected-icon-color:#475569;--mdc-checkbox-unselected-hover-icon-color:#0f172a;--mdc-checkbox-unselected-pressed-icon-color:#0f172a;--mdc-checkbox-unselected-focus-icon-color:#0f172a;--mdc-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mdc-filled-button-label-text-color:#0f172a;--mdc-filled-button-container-color:#cbd5e1;--mdc-protected-button-label-text-color:#0f172a;--mdc-protected-button-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mdc-chip-elevated-container-color:#e2e8f0;--mdc-plain-tooltip-container-color:#020617;--mdc-plain-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button .mat-icon,.mat-mdc-unelevated-button .mat-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-icon,.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] .mat-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] .mat-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] .mat-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] .mat-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button .mat-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small .mat-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small .mat-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large .mat-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large .mat-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted .mat-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover .mat-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger .mat-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted .mat-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon{margin-left:0!important}mat-icon,mat-icon.mat-primary{color:#18181b}.dark mat-icon,.dark mat-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab .mat-icon,.mat-mdc-raised-button .mat-icon,.mat-mdc-unelevated-button .mat-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary .mat-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary .mat-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent .mat-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent .mat-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn .mat-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn .mat-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media (min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}.mat-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\" \";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\"\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}.markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}.markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}.markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\"1\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\"[\"}.markdown-body [data-footnote-ref]:after{content:\"]\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\"\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\:bg-zinc-400\\/30:hover{background-color:#a1a1aa4d!important}.hover\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}@media (min-width:640px){.sm\\:h-\\[65vh\\]{height:65vh!important}.sm\\:flex-row{flex-direction:row!important}.sm\\:items-start{align-items:flex-start!important}.sm\\:items-center{align-items:center!important}.sm\\:justify-start{justify-content:flex-start!important}}@media (min-width:768px){.md\\:max-w-\\[80\\%\\]{max-width:80%!important}.md\\:flex-col{flex-direction:column!important}.md\\:gap-2{gap:.5rem!important}.md\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\:rounded-2xl{border-radius:1rem!important}.md\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\:pr-4{padding-right:1rem!important}.md\\:text-lg{font-size:1.125rem!important}.md\\:text-lg,.md\\:text-xl{line-height:1.75rem!important}.md\\:text-xl{font-size:1.25rem!important}.md\\:font-semibold{font-weight:600!important}}@media (min-width:1024px){.lg\\:max-w-screen-md{max-width:768px!important}}@media (min-width:1280px){.xl\\:max-w-screen-lg{max-width:1024px!important}}.dark\\:border:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-width:1px!important}.dark\\:border-black\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\:border-zinc-600\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\:border-zinc-600\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\:border-zinc-700\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\:border-zinc-700\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\:bg-black\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\:bg-black\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\:bg-red-600\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\:bg-red-950\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\:bg-zinc-700\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\:bg-zinc-800\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\:text-green-400\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\:text-red-400\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\:text-zinc-100\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\:text-zinc-100\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\:text-zinc-300\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\:text-zinc-300\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\:hover\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\:hover\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\:hover\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\n"], dependencies: [{ kind: "ngmodule", type: AiTranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: ChatScrollDirective, selector: "[aiChatScroll]" }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LoggerModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: MessageInputComponent, selector: "ai-message-input", inputs: ["startConversation"] }, { kind: "component", type: ThreadComponent, selector: "ai-thread" }], encapsulation: i0.ViewEncapsulation.None });
3374
3374
  }
3375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiChatDialogComponent, decorators: [{
3375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiChatDialogComponent, decorators: [{
3376
3376
  type: Component,
3377
3377
  args: [{ imports: [
3378
3378
  AiTranslocoModule,
@@ -3389,22 +3389,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
3389
3389
  MatProgressSpinnerModule,
3390
3390
  MessageInputComponent,
3391
3391
  ThreadComponent,
3392
- ], providers: [ChatService, ContextService, WebsocketService], template: "<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\n <div class=\"flex justify-end pb-2\">\n <button\n mat-icon-button\n (click)=\"close()\"\n class=\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <mat-icon svgIcon=\"dismiss\"></mat-icon>\n </button>\n </div>\n <div\n class=\"flex h-full w-full flex-col items-center overflow-y-auto\"\n aiChatScroll\n >\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\n </div>\n <ai-message-input class=\"w-full\"></ai-message-input>\n</div>\n" }]
3392
+ ], providers: [ChatService, ContextService, WebsocketService], encapsulation: ViewEncapsulation.None, template: "<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\n <div class=\"flex justify-end pb-2\">\n <button\n mat-icon-button\n (click)=\"close()\"\n class=\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\n >\n <mat-icon svgIcon=\"dismiss\"></mat-icon>\n </button>\n </div>\n <div\n class=\"flex h-full w-full flex-col items-center overflow-y-auto\"\n aiChatScroll\n >\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\n </div>\n <ai-message-input class=\"w-full\"></ai-message-input>\n</div>\n", styles: ["*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\[50rem\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\[85\\%\\]{max-width:85%!important}.max-w-\\[90\\%\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{--tw-border-opacity:1!important;border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-zinc-300\\/40{border-color:#d4d4d866!important}.border-zinc-300\\/50{border-color:#d4d4d880!important}.border-zinc-400\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\/50{border-color:#a1a1aa80!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-400\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\/50{color:#3f3f4680!important}.text-zinc-700\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\/90{color:#27272ae6!important}.text-zinc-900\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mdc-chip-container-height:30px;--mdc-chip-container-shape-radius:12px;--mdc-fab-container-shape:12px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-state-layer-size:40px;--mdc-icon-button-icon-color:currentColor;--mdc-linear-progress-active-indicator-color:#020617;--mdc-linear-progress-active-indicator-height:10px;--mdc-linear-progress-track-color:#f4f4f5;--mdc-linear-progress-track-height:10px;--mdc-linear-progress-track-shape:10px;--mdc-plain-tooltip-container-shape:8px;--mdc-protected-button-container-shape:9999px;--mdc-protected-button-keep-touch-target:false;--mat-protected-button-horizontal-padding:24px;--mat-protected-button-icon-spacing:8px;--mat-protected-button-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mdc-dialog-container-shape:16px;--mdc-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mdc-outlined-button-container-height:40px;--mdc-outlined-button-container-shape:9999px;--mat-outlined-button-icon-spacing:8px;--mat-outlined-button-icon-offset:-4px;--mat-outlined-button-horizontal-padding:24px;--mdc-outlined-button-keep-touch-target:false;--mdc-outlined-button-outline-width:1px;--mdc-text-button-container-height:40px;--mdc-text-button-container-shape:9999px;--mat-text-button-horizontal-padding:24px;--mat-text-button-icon-spacing:8px;--mat-text-button-icon-offset:0;--mdc-text-button-keep-touch-target:false;--mat-text-button-with-icon-horizontal-padding:8px;--mdc-filled-button-container-shape:4px;--mdc-filled-button-keep-touch-target:false;--mat-filled-button-horizontal-padding:16px;--mat-filled-button-icon-spacing:8px;--mat-filled-button-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mdc-switch-track-height:28px;--mat-switch-track-outline-color:#52525b;--mat-switch-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-switch-label-text-color:#09090b;--mat-switch-label-text-tracking:0;--mat-switch-label-text-weight:600;--mdc-switch-unselected-handle-color:#52525b;--mdc-switch-unselected-track-color:#d4d4d8;--mdc-switch-unselected-focus-track-color:#cbd5e1;--mdc-switch-unselected-hover-track-color:#cbd5e1;--mdc-switch-unselected-pressed-track-color:#cbd5e1;--mdc-switch-selected-track-color:#1e293b;--mdc-switch-selected-focus-track-color:#334155;--mdc-switch-selected-hover-track-color:#334155;--mdc-switch-selected-pressed-track-color:#334155;--mat-switch-selected-track-outline-color:#020617;--mdc-switch-selected-handle-color:#cbd5e1;--mdc-switch-selected-focus-handle-color:#3ffbda;--mdc-switch-selected-hover-handle-color:#3ffbda;--mdc-switch-selected-pressed-handle-color:#3ffbda;--mdc-switch-selected-focus-state-layer-color:#3ffbda;--mdc-switch-selected-hover-state-layer-color:#3ffbda;--mdc-switch-selected-pressed-state-layer-color:#3ffbda;--mdc-switch-unselected-focus-state-layer-color:#020617;--mdc-switch-unselected-hover-state-layer-color:#020617;--mdc-switch-unselected-pressed-state-layer-color:#020617;--mdc-switch-selected-icon-color:#020617;--mat-switch-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mdc-radio-selected-icon-color:#0f172a;--mdc-radio-selected-pressed-icon-color:#3f8efe;--mdc-radio-selected-hover-icon-color:#06b6d4;--mdc-radio-unselected-icon-color:#0f172a;--mdc-radio-unselected-pressed-icon-color:#3f8efe;--mdc-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mdc-checkbox-state-layer-size:36px;--mdc-checkbox-selected-icon-color:#0f172a;--mdc-checkbox-selected-hover-icon-color:#0f172a;--mdc-checkbox-selected-pressed-icon-color:#0f172a;--mdc-checkbox-selected-focus-icon-color:#0f172a;--mdc-checkbox-unselected-icon-color:#475569;--mdc-checkbox-unselected-hover-icon-color:#0f172a;--mdc-checkbox-unselected-pressed-icon-color:#0f172a;--mdc-checkbox-unselected-focus-icon-color:#0f172a;--mdc-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mdc-filled-button-label-text-color:#0f172a;--mdc-filled-button-container-color:#cbd5e1;--mdc-protected-button-label-text-color:#0f172a;--mdc-protected-button-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mdc-chip-elevated-container-color:#e2e8f0;--mdc-plain-tooltip-container-color:#020617;--mdc-plain-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button .mat-icon,.mat-mdc-unelevated-button .mat-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-icon,.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] .mat-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] .mat-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] .mat-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] .mat-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button .mat-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small .mat-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small .mat-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large .mat-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large .mat-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted .mat-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover .mat-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger .mat-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted .mat-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon{margin-left:0!important}mat-icon,mat-icon.mat-primary{color:#18181b}.dark mat-icon,.dark mat-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab .mat-icon,.mat-mdc-raised-button .mat-icon,.mat-mdc-unelevated-button .mat-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary .mat-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary .mat-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent .mat-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent .mat-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn .mat-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn .mat-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media (min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}.mat-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\" \";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" viewBox=\"0 0 16 16\"><path fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\"\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\"a s\"]{list-style-type:lower-alpha}.markdown-body ol[type=\"A s\"]{list-style-type:upper-alpha}.markdown-body ol[type=\"i s\"]{list-style-type:lower-roman}.markdown-body ol[type=\"I s\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\"1\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\"[\"}.markdown-body [data-footnote-ref]:after{content:\"]\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\"\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\:bg-zinc-400\\/30:hover{background-color:#a1a1aa4d!important}.hover\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}@media (min-width:640px){.sm\\:h-\\[65vh\\]{height:65vh!important}.sm\\:flex-row{flex-direction:row!important}.sm\\:items-start{align-items:flex-start!important}.sm\\:items-center{align-items:center!important}.sm\\:justify-start{justify-content:flex-start!important}}@media (min-width:768px){.md\\:max-w-\\[80\\%\\]{max-width:80%!important}.md\\:flex-col{flex-direction:column!important}.md\\:gap-2{gap:.5rem!important}.md\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\:rounded-2xl{border-radius:1rem!important}.md\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\:pr-4{padding-right:1rem!important}.md\\:text-lg{font-size:1.125rem!important}.md\\:text-lg,.md\\:text-xl{line-height:1.75rem!important}.md\\:text-xl{font-size:1.25rem!important}.md\\:font-semibold{font-weight:600!important}}@media (min-width:1024px){.lg\\:max-w-screen-md{max-width:768px!important}}@media (min-width:1280px){.xl\\:max-w-screen-lg{max-width:1024px!important}}.dark\\:border:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-width:1px!important}.dark\\:border-black\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\:border-zinc-600\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\:border-zinc-600\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\:border-zinc-700\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\:border-zinc-700\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\:bg-black\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\:bg-black\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\:bg-red-600\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\:bg-red-950\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\:bg-zinc-700\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\:bg-zinc-800\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\:text-green-400\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\:text-red-400\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\:text-zinc-100\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\:text-zinc-100\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\:text-zinc-300\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\:text-zinc-300\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\:hover\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\:hover\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\:hover\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\n"] }]
3393
3393
  }], ctorParameters: () => [{ type: undefined, decorators: [{
3394
3394
  type: Inject,
3395
3395
  args: [MAT_DIALOG_DATA]
3396
3396
  }] }, { type: i3$1.MatDialogRef }, { type: i2$2.MatIconRegistry }, { type: i3$3.DomSanitizer }] });
3397
3397
 
3398
3398
  class AiModule {
3399
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3400
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: AiModule, imports: [CommonModule, i1$1.LoggerModule], exports: [AiTranslocoModule] });
3401
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiModule, providers: [ApiService, ChatService, ContextService, WebsocketService], imports: [CommonModule,
3399
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3400
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: AiModule, imports: [CommonModule, i1$1.LoggerModule], exports: [AiTranslocoModule] });
3401
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiModule, providers: [ApiService, ChatService, ContextService, WebsocketService], imports: [CommonModule,
3402
3402
  LoggerModule.forRoot({
3403
3403
  level: NgxLoggerLevel.DEBUG,
3404
3404
  disableConsoleLogging: false,
3405
3405
  }), AiTranslocoModule] });
3406
3406
  }
3407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: AiModule, decorators: [{
3407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: AiModule, decorators: [{
3408
3408
  type: NgModule,
3409
3409
  args: [{
3410
3410
  imports: [