@sinequa/assistant 3.9.6-rc1 → 3.9.6

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 i1 from '@angular/common';
2
2
  import { CommonModule, NgTemplateOutlet } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, EventEmitter, inject, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Directive, HostListener, input, output, viewChild, signal, computed, Pipe, effect, LOCALE_ID, InjectionToken, ElementRef, createComponent, ChangeDetectorRef, ViewChild, ContentChild, afterNextRender, Injector } from '@angular/core';
4
+ import { Injectable, EventEmitter, inject, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Directive, HostListener, input, output, viewChild, signal, computed, Pipe, effect, LOCALE_ID, InjectionToken, ElementRef, createComponent, ChangeDetectorRef, ViewChild, ContentChild, Injector } from '@angular/core';
5
5
  import * as i2 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import { Subscription, of, tap, switchMap, filter, delay, from, throwError, Subject, fromEvent, merge, Observable, BehaviorSubject, defer, take as take$1, forkJoin, map as map$1, catchError as catchError$1, finalize as finalize$1, combineLatest, EMPTY, interval, startWith, takeWhile } from 'rxjs';
@@ -1238,7 +1238,7 @@ function markdownItReferencePlugin(md) {
1238
1238
  md.inline.ruler.after('text', 'referenceify_number', referenceifyNumber);
1239
1239
  }
1240
1240
 
1241
- const GROUPING_REGEX = /<([a-z]+)>[\s\S]*?<\/\1>/gm;
1241
+ const GROUPING_REGEX = /<!--[\s\S]*-->|<[a-z0-9]+(?: [\S]*){1,}\/>|<([a-z0-9]+)(?: [\S]*?)*>[\s\S]*?<\/\1>/gim;
1242
1242
  class SafeHtmlPipe {
1243
1243
  constructor(sanitizer) {
1244
1244
  this.sanitizer = sanitizer;
@@ -1300,14 +1300,14 @@ class SmartRendererComponent {
1300
1300
  // no blocks, nothing to process
1301
1301
  if (!blocks || blocks.length === 0)
1302
1302
  return;
1303
- if (blocks.length > 1) {
1304
- this.localSliceIndex = html.lastIndexOf(blocks.at(-1) || "");
1303
+ if (blocks.length > 2) {
1304
+ this.localSliceIndex = html.lastIndexOf(blocks.at(-2) || "");
1305
1305
  this.lastSliceIndex += this.localSliceIndex;
1306
1306
  this.safe.update((v) => v + html.slice(0, this.localSliceIndex));
1307
1307
  this.processing.set(html.slice(this.localSliceIndex));
1308
1308
  }
1309
1309
  else {
1310
- this.processing.set(blocks[0]);
1310
+ this.processing.set(blocks.slice(0, 2).join(""));
1311
1311
  }
1312
1312
  }
1313
1313
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmartRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -4064,6 +4064,7 @@ class ChatComponent {
4064
4064
  const messages = [...conversation, userMsg];
4065
4065
  this.messages$.next(messages); // Update the messages in the UI with the new user message
4066
4066
  this.chatService.chatHistory = messages; // Update the chat history with the new user message
4067
+ this.scrollDown(); // Scroll down to the bottom of the chat to see the new user message and the incoming assistant answer
4067
4068
  this.fetch(messages);
4068
4069
  this.chatService.generateAuditEvent('ast-message.message', { ...this._defineMessageAuditDetails(userMsg), 'query': JSON.stringify(this.query), 'is-user-input': true, 'enabled-functions': this.config.defaultValues.functions?.filter(func => func.enabled).map(func => func.name), 'additional-workflow-properties': JSON.stringify(additionalWorkflowProperties) });
4069
4070
  }
@@ -5700,7 +5701,7 @@ class DocumentOverviewComponent {
5700
5701
  this.appService = inject(AppService);
5701
5702
  }
5702
5703
  ngOnInit() {
5703
- this._subscription.add(of(isAuthenticated()).pipe(switchMap((_) => this.appService.init()), tap((_) => this.documentsUploadService.getDocumentsList()), catchError$1((error) => {
5704
+ this._subscription.add(of(isAuthenticated()).pipe(switchMap((_) => this.appService.init()), switchMap((_) => this.documentsUploadService.getDocumentsList()), catchError$1((error) => {
5704
5705
  console.error(error);
5705
5706
  this.notificationsService.error(error);
5706
5707
  return EMPTY;
@@ -5789,42 +5790,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5789
5790
  }] });
5790
5791
 
5791
5792
  /*
5792
- * Web Element Reference Component
5793
- * This component is used to display a reference in the chat interface.
5793
+ * Web Element Reference Components
5794
+ * Those components are used to display a reference (page, image, document) in the chat interface.
5794
5795
  * It uses a tooltip to show additional information about the reference.
5795
5796
  * The component emits custom events when the user interacts with it.
5796
- *
5797
- * This component is based on the remark template.
5798
- *
5799
- * <!-- Chat reference (badge with file and part number) -->
5800
- * <ng-template remarkTemplate="chat-reference" let-ref>
5801
- * @let attachment = referenceMap.get(ref.refId);
5802
- * @if (attachment) {
5803
- * <a
5804
- * class="reference"
5805
- * role="button"
5806
- * [sqTooltip]="attachment"
5807
- * [sqTooltipTemplate]="tooltipTpl"
5808
- * [hoverableTooltip]="true"
5809
- * (click)="openAttachmentPreview(attachment, ref.refId)"
5810
- * >
5811
- * {{ref.refId}}
5812
- * </a>
5813
- * }
5814
- * @else {
5815
- * <ng-template #staticRefTpl>
5816
- * <span class="reference">{{ ref.refId }}</span>
5817
- * </ng-template>
5818
- * }
5819
- * </ng-template>
5820
5797
  */
5821
5798
  class ReferenceComponent {
5822
5799
  constructor() {
5823
- this.ref = signal({});
5824
- afterNextRender(() => {
5800
+ this.ref = {};
5801
+ }
5802
+ ngOnChanges() {
5803
+ if (!this.attachment)
5804
+ return;
5805
+ try {
5825
5806
  const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
5826
- this.ref.set(obj);
5827
- });
5807
+ this.ref = obj;
5808
+ }
5809
+ catch (error) {
5810
+ console.error("Error parsing attachment", error, this.attachment);
5811
+ }
5828
5812
  }
5829
5813
  onOpenPreview(attachment, partId) {
5830
5814
  // Émettre un événement personnalisé pour le web element using the service
@@ -5839,23 +5823,23 @@ class ReferenceComponent {
5839
5823
  }));
5840
5824
  }
5841
5825
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5842
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ReferenceComponent, isStandalone: true, selector: "reference", inputs: { id: "id", attachment: "attachment", rank: "rank" }, providers: [], ngImport: i0, template: `
5826
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ReferenceComponent, isStandalone: true, selector: "reference", inputs: { id: "id", attachment: "attachment", rank: "rank" }, providers: [], usesOnChanges: true, ngImport: i0, template: `
5843
5827
  <a
5844
5828
  class="reference"
5845
5829
  role="button"
5846
- [sqTooltip]="ref()"
5830
+ [sqTooltip]="ref"
5847
5831
  [sqTooltipTemplate]="tooltipTpl"
5848
5832
  [hoverableTooltip]="true"
5849
- (click)="onOpenPreview(ref())"
5833
+ (click)="onOpenPreview(ref)"
5850
5834
  >{{ id }}</a>
5851
5835
 
5852
5836
  <!-- tooltip template -->
5853
5837
  <ng-template #tooltipTpl>
5854
5838
  <sq-chat-reference
5855
5839
  class="expanded"
5856
- [attachment]="ref()"
5857
- [reference]="ref().contextId"
5858
- [partId]="ref().$partId"
5840
+ [attachment]="ref"
5841
+ [reference]="ref.contextId"
5842
+ [partId]="ref.$partId"
5859
5843
  (openPreview)="onOpenPreview($event, $event.$partId)"
5860
5844
  (openDocument)="onOpenDocument($event, $event.$partId)"
5861
5845
  ></sq-chat-reference>
@@ -5868,25 +5852,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5868
5852
  <a
5869
5853
  class="reference"
5870
5854
  role="button"
5871
- [sqTooltip]="ref()"
5855
+ [sqTooltip]="ref"
5872
5856
  [sqTooltipTemplate]="tooltipTpl"
5873
5857
  [hoverableTooltip]="true"
5874
- (click)="onOpenPreview(ref())"
5858
+ (click)="onOpenPreview(ref)"
5875
5859
  >{{ id }}</a>
5876
5860
 
5877
5861
  <!-- tooltip template -->
5878
5862
  <ng-template #tooltipTpl>
5879
5863
  <sq-chat-reference
5880
5864
  class="expanded"
5881
- [attachment]="ref()"
5882
- [reference]="ref().contextId"
5883
- [partId]="ref().$partId"
5865
+ [attachment]="ref"
5866
+ [reference]="ref.contextId"
5867
+ [partId]="ref.$partId"
5884
5868
  (openPreview)="onOpenPreview($event, $event.$partId)"
5885
5869
  (openDocument)="onOpenDocument($event, $event.$partId)"
5886
5870
  ></sq-chat-reference>
5887
5871
  </ng-template>
5888
5872
  `, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
5889
- }], ctorParameters: () => [], propDecorators: { id: [{
5873
+ }], propDecorators: { id: [{
5890
5874
  type: Input
5891
5875
  }], attachment: [{
5892
5876
  type: Input
@@ -5895,11 +5879,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5895
5879
  }] } });
5896
5880
  class PageReferenceComponent {
5897
5881
  constructor() {
5898
- this.ref = signal({});
5899
- afterNextRender(() => {
5882
+ this.ref = {};
5883
+ }
5884
+ ngOnChanges() {
5885
+ if (!this.attachment)
5886
+ return;
5887
+ try {
5900
5888
  const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
5901
- this.ref.set(obj);
5902
- });
5889
+ this.ref = obj;
5890
+ }
5891
+ catch (error) {
5892
+ console.error("Error parsing attachment", error, this.attachment);
5893
+ }
5903
5894
  }
5904
5895
  onOpenPreview(attachment, partId) {
5905
5896
  // Émettre un événement personnalisé pour le web element using the service
@@ -5914,10 +5905,10 @@ class PageReferenceComponent {
5914
5905
  }));
5915
5906
  }
5916
5907
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5917
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageReferenceComponent, isStandalone: true, selector: "page-reference", inputs: { id: "id", attachment: "attachment" }, providers: [], ngImport: i0, template: `
5908
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageReferenceComponent, isStandalone: true, selector: "page-reference", inputs: { id: "id", attachment: "attachment" }, providers: [], usesOnChanges: true, ngImport: i0, template: `
5918
5909
  <span
5919
5910
  class="reference"
5920
- [sqTooltip]="{ obj: ref(), id }"
5911
+ [sqTooltip]="{ obj: ref, id }"
5921
5912
  [sqTooltipTemplate]="pageTooltipTpl"
5922
5913
  [hoverableTooltip]="true"
5923
5914
  >
@@ -5939,7 +5930,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5939
5930
  args: [{ selector: "page-reference", imports: [TooltipDirective, InlinePageReferenceComponent], providers: [], template: `
5940
5931
  <span
5941
5932
  class="reference"
5942
- [sqTooltip]="{ obj: ref(), id }"
5933
+ [sqTooltip]="{ obj: ref, id }"
5943
5934
  [sqTooltipTemplate]="pageTooltipTpl"
5944
5935
  [hoverableTooltip]="true"
5945
5936
  >
@@ -5955,18 +5946,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
5955
5946
  />
5956
5947
  </ng-template>
5957
5948
  `, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
5958
- }], ctorParameters: () => [], propDecorators: { id: [{
5949
+ }], propDecorators: { id: [{
5959
5950
  type: Input
5960
5951
  }], attachment: [{
5961
5952
  type: Input
5962
5953
  }] } });
5963
5954
  class ImageReferenceComponent {
5964
5955
  constructor() {
5965
- this.ref = signal({});
5966
- afterNextRender(() => {
5956
+ this.ref = {};
5957
+ }
5958
+ ngOnChanges() {
5959
+ if (!this.attachment)
5960
+ return;
5961
+ try {
5967
5962
  const obj = JSON.parse(decodeURIComponent(atob(this.attachment)));
5968
- this.ref.set(obj);
5969
- });
5963
+ this.ref = obj;
5964
+ }
5965
+ catch (error) {
5966
+ console.error("Error parsing attachment", error, this.attachment);
5967
+ }
5970
5968
  }
5971
5969
  onOpenPreview(attachment, partId) {
5972
5970
  // Émettre un événement personnalisé pour le web element using the service
@@ -5981,10 +5979,10 @@ class ImageReferenceComponent {
5981
5979
  }));
5982
5980
  }
5983
5981
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5984
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageReferenceComponent, isStandalone: true, selector: "image-reference", inputs: { id: "id", attachment: "attachment" }, providers: [], ngImport: i0, template: `
5982
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ImageReferenceComponent, isStandalone: true, selector: "image-reference", inputs: { id: "id", attachment: "attachment" }, providers: [], usesOnChanges: true, ngImport: i0, template: `
5985
5983
  <span
5986
5984
  class="reference"
5987
- [sqTooltip]="{ obj: ref(), id }"
5985
+ [sqTooltip]="{ obj: ref, id }"
5988
5986
  [sqTooltipTemplate]="imageTooltipTpl"
5989
5987
  [hoverableTooltip]="true"
5990
5988
  >
@@ -6006,7 +6004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6006
6004
  args: [{ selector: "image-reference", imports: [TooltipDirective, InlineImageReferenceComponent], providers: [], template: `
6007
6005
  <span
6008
6006
  class="reference"
6009
- [sqTooltip]="{ obj: ref(), id }"
6007
+ [sqTooltip]="{ obj: ref, id }"
6010
6008
  [sqTooltipTemplate]="imageTooltipTpl"
6011
6009
  [hoverableTooltip]="true"
6012
6010
  >
@@ -6022,15 +6020,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6022
6020
  />
6023
6021
  </ng-template>
6024
6022
  `, standalone: true, styles: ["div{border:1px solid #ccc;padding:8px;border-radius:4px;display:flex;gap:8px;flex-direction:column}\n"] }]
6025
- }], ctorParameters: () => [], propDecorators: { id: [{
6023
+ }], propDecorators: { id: [{
6026
6024
  type: Input
6027
6025
  }], attachment: [{
6028
6026
  type: Input
6029
6027
  }] } });
6030
6028
  class CodeBlockReferenceComponent {
6031
6029
  constructor() {
6032
- this.el = inject(ElementRef);
6033
6030
  this.langname = "";
6031
+ this.el = inject(ElementRef);
6034
6032
  this.encodeCode = '';
6035
6033
  }
6036
6034
  ngAfterViewInit() {
@@ -6041,15 +6039,15 @@ class CodeBlockReferenceComponent {
6041
6039
  }
6042
6040
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeBlockReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6043
6041
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CodeBlockReferenceComponent, isStandalone: true, selector: "code-block-reference", inputs: { langname: "langname" }, ngImport: i0, template: `
6044
- <div class="card mb-2">
6045
- <div class="card-header d-flex justify-content-end align-items-center">
6046
- <span class="me-auto">{{ langname || 'code'}}</span>
6047
- <button class="btn btn-light btn-sm" copy-to-clipboard [text]="encodeCode">
6048
- <svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
6049
- </button>
6050
- </div>
6051
- <ng-content></ng-content>
6052
- </div>
6042
+ <div class="card mb-2">
6043
+ <div class="card-header d-flex justify-content-end align-items-center">
6044
+ <span class="me-auto">{{ langname || 'code'}}</span>
6045
+ <button class="btn btn-light btn-sm" copy-to-clipboard [text]="encodeCode">
6046
+ <svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
6047
+ </button>
6048
+ </div>
6049
+ <ng-content></ng-content>
6050
+ </div>
6053
6051
  `, isInline: true, dependencies: [{ kind: "directive", type: CopyToClipboardDirective, selector: "[copy-to-clipboard]", inputs: ["text"] }] }); }
6054
6052
  }
6055
6053
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeBlockReferenceComponent, decorators: [{
@@ -6058,15 +6056,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
6058
6056
  selector: "code-block-reference",
6059
6057
  imports: [CopyToClipboardDirective],
6060
6058
  template: `
6061
- <div class="card mb-2">
6062
- <div class="card-header d-flex justify-content-end align-items-center">
6063
- <span class="me-auto">{{ langname || 'code'}}</span>
6064
- <button class="btn btn-light btn-sm" copy-to-clipboard [text]="encodeCode">
6065
- <svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
6066
- </button>
6067
- </div>
6068
- <ng-content></ng-content>
6069
- </div>
6059
+ <div class="card mb-2">
6060
+ <div class="card-header d-flex justify-content-end align-items-center">
6061
+ <span class="me-auto">{{ langname || 'code'}}</span>
6062
+ <button class="btn btn-light btn-sm" copy-to-clipboard [text]="encodeCode">
6063
+ <svg data-testid="geist-icon" height="16" stroke-linejoin="round" viewBox="0 0 16 16" width="16" aria-hidden="true" style="color: currentcolor;"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"></path></svg>
6064
+ </button>
6065
+ </div>
6066
+ <ng-content></ng-content>
6067
+ </div>
6070
6068
  `,
6071
6069
  standalone: true,
6072
6070
  }]