@threadplane/chat 0.0.53 → 0.0.55

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,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, inject, TemplateRef, Directive, contentChildren, computed, ChangeDetectionStrategy, Component, signal, Injectable, ContentChild, effect, output, DOCUMENT, ViewEncapsulation, viewChild, model, contentChild, untracked, ElementRef, DestroyRef, makeEnvironmentProviders, Injector, runInInjectionContext, ViewContainerRef, SecurityContext } from '@angular/core';
2
+ import { InjectionToken, input, inject, TemplateRef, Directive, contentChildren, computed, ChangeDetectionStrategy, Component, signal, Injectable, ContentChild, effect, output, DOCUMENT, ViewEncapsulation, viewChild, model, contentChild, untracked, ElementRef, ViewContainerRef, DestroyRef, makeEnvironmentProviders, Injector, runInInjectionContext, SecurityContext } from '@angular/core';
3
3
  import { NgTemplateOutlet, NgComponentOutlet, KeyValuePipe } from '@angular/common';
4
4
  import { createPartialMarkdownParser, materialize } from '@cacheplane/partial-markdown';
5
5
  import { views, RenderSpecComponent, toRenderRegistry, signalStateStore, withViews, RenderElementComponent, injectRenderHost } from '@threadplane/render';
@@ -264,25 +264,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
264
264
  // libs/chat/src/lib/styles/chat-tokens.ts
265
265
  // SPDX-License-Identifier: MIT
266
266
  const LIGHT_TOKENS = `
267
- --ngaf-chat-bg: rgb(255, 255, 255);
268
- --ngaf-chat-surface: rgb(255, 255, 255);
269
- --ngaf-chat-surface-alt: rgb(251, 251, 251);
270
- --ngaf-chat-primary: rgb(28, 28, 28);
271
- --ngaf-chat-on-primary: rgb(255, 255, 255);
272
- --ngaf-chat-text: rgb(28, 28, 28);
273
- --ngaf-chat-text-muted: rgb(115, 115, 115);
274
- --ngaf-chat-separator: rgb(229, 229, 229);
275
- --ngaf-chat-muted: rgb(200, 200, 200);
276
- --ngaf-chat-error-bg: #fef2f2;
277
- --ngaf-chat-error-border: #fecaca;
278
- --ngaf-chat-error-text: #dc2626;
279
- --ngaf-chat-destructive: #dc2626;
280
- --ngaf-chat-warning-bg: #fffbeb;
281
- --ngaf-chat-warning-text: #b45309;
282
- --ngaf-chat-success: #16a34a;
283
- --ngaf-chat-shadow-sm: 0 1px 2px rgba(0,0,0,.05);
284
- --ngaf-chat-shadow-md: 0 4px 6px -1px rgba(0,0,0,.10), 0 2px 4px -1px rgba(0,0,0,.06);
285
- --ngaf-chat-shadow-lg: 0 10px 15px -3px rgba(0,0,0,.10), 0 4px 6px -2px rgba(0,0,0,.05);
267
+ --tplane-chat-bg: rgb(255, 255, 255);
268
+ --tplane-chat-surface: rgb(255, 255, 255);
269
+ --tplane-chat-surface-alt: rgb(251, 251, 251);
270
+ --tplane-chat-primary: rgb(28, 28, 28);
271
+ --tplane-chat-on-primary: rgb(255, 255, 255);
272
+ --tplane-chat-text: rgb(28, 28, 28);
273
+ --tplane-chat-text-muted: rgb(115, 115, 115);
274
+ --tplane-chat-separator: rgb(229, 229, 229);
275
+ --tplane-chat-muted: rgb(200, 200, 200);
276
+ --tplane-chat-error-bg: #fef2f2;
277
+ --tplane-chat-error-border: #fecaca;
278
+ --tplane-chat-error-text: #dc2626;
279
+ --tplane-chat-destructive: #dc2626;
280
+ --tplane-chat-warning-bg: #fffbeb;
281
+ --tplane-chat-warning-text: #b45309;
282
+ --tplane-chat-success: #16a34a;
283
+ --tplane-chat-shadow-sm: 0 1px 2px rgba(0,0,0,.05);
284
+ --tplane-chat-shadow-md: 0 4px 6px -1px rgba(0,0,0,.10), 0 2px 4px -1px rgba(0,0,0,.06);
285
+ --tplane-chat-shadow-lg: 0 10px 15px -3px rgba(0,0,0,.10), 0 4px 6px -2px rgba(0,0,0,.05);
286
286
 
287
287
  /* --a2ui-* light variant */
288
288
  --a2ui-primary: #4f8df5;
@@ -307,22 +307,22 @@ const LIGHT_TOKENS = `
307
307
  --a2ui-elevation-5: 0 16px 32px rgba(0, 0, 0, 0.18);
308
308
  `;
309
309
  const DARK_TOKENS = `
310
- --ngaf-chat-bg: rgb(17, 17, 17);
311
- --ngaf-chat-surface: rgb(28, 28, 28);
312
- --ngaf-chat-surface-alt: rgb(44, 44, 44);
313
- --ngaf-chat-primary: rgb(255, 255, 255);
314
- --ngaf-chat-on-primary: rgb(28, 28, 28);
315
- --ngaf-chat-text: rgb(245, 245, 245);
316
- --ngaf-chat-text-muted: rgb(160, 160, 160);
317
- --ngaf-chat-separator: rgb(45, 45, 45);
318
- --ngaf-chat-muted: rgb(60, 60, 60);
319
- --ngaf-chat-error-bg: rgb(45, 21, 21);
320
- --ngaf-chat-error-border: #dc2626;
321
- --ngaf-chat-error-text: #fca5a5;
322
- --ngaf-chat-destructive: #ef4444;
323
- --ngaf-chat-warning-bg: rgb(45, 35, 21);
324
- --ngaf-chat-warning-text: #fbbf24;
325
- --ngaf-chat-success: #4ade80;
310
+ --tplane-chat-bg: rgb(17, 17, 17);
311
+ --tplane-chat-surface: rgb(28, 28, 28);
312
+ --tplane-chat-surface-alt: rgb(44, 44, 44);
313
+ --tplane-chat-primary: rgb(255, 255, 255);
314
+ --tplane-chat-on-primary: rgb(28, 28, 28);
315
+ --tplane-chat-text: rgb(245, 245, 245);
316
+ --tplane-chat-text-muted: rgb(160, 160, 160);
317
+ --tplane-chat-separator: rgb(45, 45, 45);
318
+ --tplane-chat-muted: rgb(60, 60, 60);
319
+ --tplane-chat-error-bg: rgb(45, 21, 21);
320
+ --tplane-chat-error-border: #dc2626;
321
+ --tplane-chat-error-text: #fca5a5;
322
+ --tplane-chat-destructive: #ef4444;
323
+ --tplane-chat-warning-bg: rgb(45, 35, 21);
324
+ --tplane-chat-warning-text: #fbbf24;
325
+ --tplane-chat-success: #4ade80;
326
326
 
327
327
  /* --a2ui-* dark variant (preserves current chat.css values) */
328
328
  --a2ui-primary: #4f8df5;
@@ -347,46 +347,46 @@ const DARK_TOKENS = `
347
347
  --a2ui-elevation-5: 0 16px 32px rgba(0, 0, 0, 0.5);
348
348
  `;
349
349
  const GEOMETRY_TOKENS = `
350
- --ngaf-chat-radius-bubble: 15px;
351
- --ngaf-chat-radius-input: 20px;
352
- --ngaf-chat-radius-card: 8px;
353
- --ngaf-chat-radius-button: 8px;
354
- --ngaf-chat-radius-launcher: 9999px;
355
- --ngaf-chat-max-width: 48rem;
350
+ --tplane-chat-radius-bubble: 15px;
351
+ --tplane-chat-radius-input: 20px;
352
+ --tplane-chat-radius-card: 8px;
353
+ --tplane-chat-radius-button: 8px;
354
+ --tplane-chat-radius-launcher: 9999px;
355
+ --tplane-chat-max-width: 48rem;
356
356
  `;
357
357
  const TYPOGRAPHY_TOKENS = `
358
- --ngaf-chat-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
359
- --ngaf-chat-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
360
- --ngaf-chat-font-size: 1rem;
361
- --ngaf-chat-font-size-sm: 0.875rem;
362
- --ngaf-chat-font-size-xs: 0.75rem;
363
- --ngaf-chat-line-height: 1.6;
364
- --ngaf-chat-line-height-tight: 1.5;
358
+ --tplane-chat-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
359
+ --tplane-chat-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
360
+ --tplane-chat-font-size: 1rem;
361
+ --tplane-chat-font-size-sm: 0.875rem;
362
+ --tplane-chat-font-size-xs: 0.75rem;
363
+ --tplane-chat-line-height: 1.6;
364
+ --tplane-chat-line-height-tight: 1.5;
365
365
  `;
366
366
  const SPACING_TOKENS = `
367
- --ngaf-chat-space-1: 4px;
368
- --ngaf-chat-space-2: 8px;
369
- --ngaf-chat-space-3: 12px;
370
- --ngaf-chat-space-4: 16px;
371
- --ngaf-chat-space-5: 20px;
372
- --ngaf-chat-space-6: 24px;
373
- --ngaf-chat-space-8: 32px;
374
- --ngaf-chat-edge-pad: 16px;
375
- --ngaf-chat-input-gap: 0.75rem;
376
- --ngaf-chat-sidenav-width-expanded: 280px;
377
- --ngaf-chat-sidenav-width-collapsed: 56px;
378
- --ngaf-chat-sidenav-width-drawer: 280px;
367
+ --tplane-chat-space-1: 4px;
368
+ --tplane-chat-space-2: 8px;
369
+ --tplane-chat-space-3: 12px;
370
+ --tplane-chat-space-4: 16px;
371
+ --tplane-chat-space-5: 20px;
372
+ --tplane-chat-space-6: 24px;
373
+ --tplane-chat-space-8: 32px;
374
+ --tplane-chat-edge-pad: 16px;
375
+ --tplane-chat-input-gap: 0.75rem;
376
+ --tplane-chat-sidenav-width-expanded: 280px;
377
+ --tplane-chat-sidenav-width-collapsed: 56px;
378
+ --tplane-chat-sidenav-width-drawer: 280px;
379
379
  `;
380
380
  const LAYER_TOKENS = `
381
381
  /* Z-index layers — documented for consumers + future primitives.
382
382
  * Default values listed; overridable per-app via :root or :host.
383
383
  * Modal layers sit above drawer so palettes/dialogs stay reachable
384
384
  * when the drawer is open. */
385
- --ngaf-chat-z-overlay-content: 30; /* chat-sidebar panel, chat-popup window */
386
- --ngaf-chat-z-drawer-scrim: 1000; /* chat-sidenav-scrim backdrop */
387
- --ngaf-chat-z-drawer: 1001; /* chat-sidenav drawer mode host */
388
- --ngaf-chat-z-modal-scrim: 1100; /* chat-history-search-palette backdrop */
389
- --ngaf-chat-z-modal: 1101; /* chat-history-search-palette dialog */
385
+ --tplane-chat-z-overlay-content: 30; /* chat-sidebar panel, chat-popup window */
386
+ --tplane-chat-z-drawer-scrim: 1000; /* chat-sidenav-scrim backdrop */
387
+ --tplane-chat-z-drawer: 1001; /* chat-sidenav drawer mode host */
388
+ --tplane-chat-z-modal-scrim: 1100; /* chat-history-search-palette backdrop */
389
+ --tplane-chat-z-modal: 1101; /* chat-history-search-palette dialog */
390
390
  `;
391
391
  const EDGE_CLAIM_TOKENS = `
392
392
  /* Edge-claim primitive — peer-aware panel coexistence.
@@ -396,51 +396,51 @@ const EDGE_CLAIM_TOKENS = `
396
396
  not using chat-sidebar/chat-debug see zero overhead.
397
397
 
398
398
  TWO LAYERS:
399
- 1. Per-component claim vars (--ngaf-chat-<component>-claim-<edge>)
399
+ 1. Per-component claim vars (--tplane-chat-<component>-claim-<edge>)
400
400
  are read by PEERS only — never by the component that wrote
401
401
  them. This eliminates self-feedback (where a right-docked
402
402
  panel would offset itself by reading its own claim).
403
403
  2. Aggregate occupy-* vars are convenience reads for external
404
404
  consumers and for cases where any-panel-on-edge matters. */
405
- --ngaf-chat-occupy-top: 0px;
406
- --ngaf-chat-occupy-right: 0px;
407
- --ngaf-chat-occupy-bottom: 0px;
408
- --ngaf-chat-occupy-left: 0px;
405
+ --tplane-chat-occupy-top: 0px;
406
+ --tplane-chat-occupy-right: 0px;
407
+ --tplane-chat-occupy-bottom: 0px;
408
+ --tplane-chat-occupy-left: 0px;
409
409
 
410
410
  /* Per-component claims (peer-only reads). */
411
- --ngaf-chat-sidebar-claim-right: 0px;
412
- --ngaf-chat-debug-claim-top: 0px;
413
- --ngaf-chat-debug-claim-right: 0px;
414
- --ngaf-chat-debug-claim-bottom: 0px;
415
- --ngaf-chat-debug-claim-left: 0px;
411
+ --tplane-chat-sidebar-claim-right: 0px;
412
+ --tplane-chat-debug-claim-top: 0px;
413
+ --tplane-chat-debug-claim-right: 0px;
414
+ --tplane-chat-debug-claim-bottom: 0px;
415
+ --tplane-chat-debug-claim-left: 0px;
416
416
 
417
417
  /* Sizes the chat-debug dock contributes when it claims an edge.
418
418
  Split by orientation so consumers can override independently. */
419
- --ngaf-chat-debug-panel-size-h: 40vh;
420
- --ngaf-chat-debug-panel-size-w: 420px;
419
+ --tplane-chat-debug-panel-size-h: 40vh;
420
+ --tplane-chat-debug-panel-size-w: 420px;
421
421
  `;
422
422
  const KEYFRAMES = `
423
- @keyframes ngaf-chat-spin {
423
+ @keyframes tplane-chat-spin {
424
424
  0% { transform: rotate(0deg); }
425
425
  100% { transform: rotate(360deg); }
426
426
  }
427
- @keyframes ngaf-chat-typing-dot {
427
+ @keyframes tplane-chat-typing-dot {
428
428
  0%, 80%, 100% { transform: scale(0.5); opacity: 0.5; }
429
429
  40% { transform: scale(1); opacity: 1; }
430
430
  }
431
- @keyframes ngaf-chat-pulse {
431
+ @keyframes tplane-chat-pulse {
432
432
  0%, 100% { opacity: 1; }
433
433
  50% { opacity: 0.6; }
434
434
  }
435
- @keyframes ngaf-chat-caret-blink {
435
+ @keyframes tplane-chat-caret-blink {
436
436
  0%, 50% { opacity: 1; }
437
437
  50.01%, 100% { opacity: 0; }
438
438
  }
439
- @keyframes ngaf-chat-caret-fade-in {
439
+ @keyframes tplane-chat-caret-fade-in {
440
440
  from { opacity: 0; }
441
441
  to { opacity: 1; }
442
442
  }
443
- @keyframes ngaf-chat-welcome-mount {
443
+ @keyframes tplane-chat-welcome-mount {
444
444
  from { opacity: 0; transform: translateY(-8px); }
445
445
  to { opacity: 1; transform: translateY(0); }
446
446
  }
@@ -453,21 +453,21 @@ const KEYFRAMES = `
453
453
  *
454
454
  * Token *defaults* are NOT set on `:host` — they're set on `:root` via the
455
455
  * shared style element below (`ensureChatRootStyles()`). That shift is what
456
- * makes the documented `:root { --ngaf-chat-*: ... }` consumer override
456
+ * makes the documented `:root { --tplane-chat-*: ... }` consumer override
457
457
  * actually work, because direct-on-host token settings would shadow
458
458
  * inheritance regardless of CSS specificity.
459
459
  */
460
460
  const CHAT_HOST_TOKENS = `
461
461
  :host {
462
- font-family: var(--ngaf-chat-font-family);
463
- color: var(--ngaf-chat-text);
462
+ font-family: var(--tplane-chat-font-family);
463
+ color: var(--tplane-chat-text);
464
464
  }
465
465
  `;
466
466
  // Note: @keyframes are NOT placed in CHAT_HOST_TOKENS. Angular's emulated
467
467
  // view encapsulation scopes @keyframes names per-component, which can
468
468
  // desynchronise from animation property references when styles are
469
469
  // concatenated across helper strings. They're injected globally via
470
- // ROOT_TOKEN_STYLES below so the names match what `animation: ngaf-chat-*`
470
+ // ROOT_TOKEN_STYLES below so the names match what `animation: tplane-chat-*`
471
471
  // references in component styles (which Angular leaves untouched).
472
472
  /**
473
473
  * WCAG 2.3.3 — honor the OS-level "Reduce Motion" preference. Collapses
@@ -490,9 +490,9 @@ const REDUCED_MOTION_STYLES = `
490
490
  }
491
491
 
492
492
  .tcc__pill[data-status="running"] svg,
493
- .ngaf-chat-typing-dot,
494
- .ngaf-chat-caret,
495
- .ngaf-chat-welcome__pulse,
493
+ .tplane-chat-typing-dot,
494
+ .tplane-chat-caret,
495
+ .tplane-chat-welcome__pulse,
496
496
  .chat-genui-skeleton,
497
497
  .chat-debug__pill--active {
498
498
  animation: none !important;
@@ -506,8 +506,8 @@ const REDUCED_MOTION_STYLES = `
506
506
  `;
507
507
  /**
508
508
  * Token defaults written to `<head>` once on first chat-component
509
- * construction. Wrapped in `@layer ngaf-chat` so the consumer's unlayered
510
- * `:root { --ngaf-chat-*: ... }` rule beats the lib's defaults regardless
509
+ * construction. Wrapped in `@layer tplane-chat` so the consumer's unlayered
510
+ * `:root { --tplane-chat-*: ... }` rule beats the lib's defaults regardless
511
511
  * of source order — the standard CSS pattern for framework defaults.
512
512
  *
513
513
  * Theme switching:
@@ -580,7 +580,7 @@ const A2UI_INVARIANT_TOKENS = `
580
580
  --a2ui-border: var(--a2ui-outline);
581
581
  `;
582
582
  const ROOT_TOKEN_STYLES = `
583
- @layer ngaf-chat {
583
+ @layer tplane-chat {
584
584
  :root {
585
585
  ${LIGHT_TOKENS}
586
586
  ${GEOMETRY_TOKENS}
@@ -606,28 +606,28 @@ const ROOT_TOKEN_STYLES = `
606
606
  chat-sidebar sets data-threadplane-chat-sidebar="open" while its panel is open.
607
607
  chat-debug sets data-threadplane-chat-debug to its current dock while open. */
608
608
  :root[data-threadplane-chat-sidebar="open"] {
609
- --ngaf-chat-sidebar-claim-right: var(--ngaf-chat-sidebar-width-drawer, 28rem);
610
- --ngaf-chat-occupy-right: var(--ngaf-chat-sidebar-width-drawer, 28rem);
609
+ --tplane-chat-sidebar-claim-right: var(--tplane-chat-sidebar-width-drawer, 28rem);
610
+ --tplane-chat-occupy-right: var(--tplane-chat-sidebar-width-drawer, 28rem);
611
611
  }
612
612
  :root[data-threadplane-chat-debug="bottom"] {
613
- --ngaf-chat-debug-claim-bottom: var(--ngaf-chat-debug-panel-size-h, 40vh);
614
- --ngaf-chat-occupy-bottom: var(--ngaf-chat-debug-panel-size-h, 40vh);
613
+ --tplane-chat-debug-claim-bottom: var(--tplane-chat-debug-panel-size-h, 40vh);
614
+ --tplane-chat-occupy-bottom: var(--tplane-chat-debug-panel-size-h, 40vh);
615
615
  }
616
616
  :root[data-threadplane-chat-debug="right"] {
617
- --ngaf-chat-debug-claim-right: var(--ngaf-chat-debug-panel-size-w, 420px);
618
- --ngaf-chat-occupy-right: var(--ngaf-chat-debug-panel-size-w, 420px);
617
+ --tplane-chat-debug-claim-right: var(--tplane-chat-debug-panel-size-w, 420px);
618
+ --tplane-chat-occupy-right: var(--tplane-chat-debug-panel-size-w, 420px);
619
619
  }
620
620
  :root[data-threadplane-chat-debug="left"] {
621
- --ngaf-chat-debug-claim-left: var(--ngaf-chat-debug-panel-size-w, 420px);
622
- --ngaf-chat-occupy-left: var(--ngaf-chat-debug-panel-size-w, 420px);
621
+ --tplane-chat-debug-claim-left: var(--tplane-chat-debug-panel-size-w, 420px);
622
+ --tplane-chat-occupy-left: var(--tplane-chat-debug-panel-size-w, 420px);
623
623
  }
624
624
  }
625
625
  ${KEYFRAMES}
626
626
  ${REDUCED_MOTION_STYLES}
627
627
  `;
628
- const STYLE_ELEMENT_ID = 'ngaf-chat-root-tokens';
628
+ const STYLE_ELEMENT_ID = 'tplane-chat-root-tokens';
629
629
  /**
630
- * Idempotent: appends a `<style id="ngaf-chat-root-tokens">` to `<head>`
630
+ * Idempotent: appends a `<style id="tplane-chat-root-tokens">` to `<head>`
631
631
  * the first time it's called. Subsequent calls are no-ops.
632
632
  *
633
633
  * No-op outside the browser (server-side rendering).
@@ -665,8 +665,8 @@ const CHAT_MESSAGE_LIST_STYLES = `
665
665
  display: flex;
666
666
  flex-direction: column;
667
667
  gap: 0;
668
- padding: var(--ngaf-chat-space-4) var(--ngaf-chat-space-6);
669
- max-width: var(--ngaf-chat-max-width);
668
+ padding: var(--tplane-chat-space-4) var(--tplane-chat-space-6);
669
+ max-width: var(--tplane-chat-max-width);
670
670
  margin: 0 auto;
671
671
  width: 100%;
672
672
  box-sizing: border-box;
@@ -711,7 +711,7 @@ class ChatMessageListComponent {
711
711
  />
712
712
  }
713
713
  }
714
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex-direction:column;gap:0;padding:var(--ngaf-chat-space-4) var(--ngaf-chat-space-6);max-width:var(--ngaf-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
714
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex-direction:column;gap:0;padding:var(--tplane-chat-space-4) var(--tplane-chat-space-6);max-width:var(--tplane-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
715
715
  }
716
716
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatMessageListComponent, decorators: [{
717
717
  type: Component,
@@ -725,7 +725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
725
725
  />
726
726
  }
727
727
  }
728
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex-direction:column;gap:0;padding:var(--ngaf-chat-space-4) var(--ngaf-chat-space-6);max-width:var(--ngaf-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}\n"] }]
728
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex-direction:column;gap:0;padding:var(--tplane-chat-space-4) var(--tplane-chat-space-6);max-width:var(--tplane-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}\n"] }]
729
729
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], messageTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MessageTemplateDirective), { isSignal: true }] }] } });
730
730
 
731
731
  // libs/chat/src/lib/styles/chat-message.styles.ts
@@ -752,9 +752,9 @@ const CHAT_MESSAGE_STYLES = `
752
752
  display: block;
753
753
  position: relative;
754
754
  margin-top: 1.5rem;
755
- color: var(--ngaf-chat-text);
755
+ color: var(--tplane-chat-text);
756
756
  line-height: 1.55;
757
- font-size: var(--ngaf-chat-font-size);
757
+ font-size: var(--tplane-chat-font-size);
758
758
  max-width: 100%;
759
759
  }
760
760
  :host([data-role="assistant"]):first-child { margin-top: 0; }
@@ -762,12 +762,12 @@ const CHAT_MESSAGE_STYLES = `
762
762
  .chat-message__bubble {
763
763
  width: fit-content;
764
764
  padding: 8px 12px;
765
- border-radius: var(--ngaf-chat-radius-bubble);
766
- background: var(--ngaf-chat-primary);
767
- color: var(--ngaf-chat-on-primary);
765
+ border-radius: var(--tplane-chat-radius-bubble);
766
+ background: var(--tplane-chat-primary);
767
+ color: var(--tplane-chat-on-primary);
768
768
  white-space: pre-wrap;
769
- line-height: var(--ngaf-chat-line-height-tight);
770
- font-size: var(--ngaf-chat-font-size);
769
+ line-height: var(--tplane-chat-line-height-tight);
770
+ font-size: var(--tplane-chat-font-size);
771
771
  overflow-wrap: break-word;
772
772
  }
773
773
 
@@ -785,12 +785,12 @@ const CHAT_MESSAGE_STYLES = `
785
785
  margin-left: 4px;
786
786
  margin-bottom: 2px;
787
787
  background: radial-gradient(circle at 30% 30%,
788
- var(--ngaf-chat-text) 0%,
789
- var(--ngaf-chat-text-muted) 70%,
788
+ var(--tplane-chat-text) 0%,
789
+ var(--tplane-chat-text-muted) 70%,
790
790
  transparent 100%);
791
- box-shadow: 0 0 6px var(--ngaf-chat-text-muted);
792
- animation: ngaf-chat-caret-fade-in 200ms ease-out 300ms forwards,
793
- ngaf-chat-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 500ms infinite;
791
+ box-shadow: 0 0 6px var(--tplane-chat-text-muted);
792
+ animation: tplane-chat-caret-fade-in 200ms ease-out 300ms forwards,
793
+ tplane-chat-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) 500ms infinite;
794
794
  opacity: 0;
795
795
  }
796
796
  :host([data-role="assistant"][data-current="true"][data-streaming="true"]) .chat-message__caret {
@@ -823,14 +823,14 @@ const CHAT_MESSAGE_STYLES = `
823
823
  height: 20px;
824
824
  border: 0;
825
825
  background: transparent;
826
- color: var(--ngaf-chat-primary);
826
+ color: var(--tplane-chat-primary);
827
827
  cursor: pointer;
828
828
  padding: 0;
829
829
  transition: transform 200ms ease;
830
830
  }
831
831
  .chat-message__control-btn:hover { transform: scale(1.05); }
832
832
  .chat-message__control-btn:focus-visible {
833
- outline: 2px solid var(--ngaf-chat-primary);
833
+ outline: 2px solid var(--tplane-chat-primary);
834
834
  outline-offset: 2px;
835
835
  border-radius: 4px;
836
836
  }
@@ -1071,7 +1071,7 @@ class ChatMessageComponent {
1071
1071
  <div class="chat-message__controls">
1072
1072
  <ng-content select="[chatMessageControls]" />
1073
1073
  </div>
1074
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}:host([data-role=\"user\"]){display:block;margin-top:.5rem}:host([data-role=\"user\"][data-prev-role=\"assistant\"]){margin-top:1.5rem}:host([data-role=\"user\"]) .chat-message__bubble{margin-left:auto;max-width:80%}:host([data-role=\"assistant\"]) .chat-message__bubble{max-width:80%}:host([data-role=\"assistant\"]){display:block;position:relative;margin-top:1.5rem;color:var(--ngaf-chat-text);line-height:1.55;font-size:var(--ngaf-chat-font-size);max-width:100%}:host([data-role=\"assistant\"]):first-child{margin-top:0}.chat-message__bubble{width:fit-content;padding:8px 12px;border-radius:var(--ngaf-chat-radius-bubble);background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary);white-space:pre-wrap;line-height:var(--ngaf-chat-line-height-tight);font-size:var(--ngaf-chat-font-size);overflow-wrap:break-word}.chat-message__assistant-body{padding:0 12px 0 4px;overflow-wrap:break-word}.chat-message__caret{display:none;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-left:4px;margin-bottom:2px;background:radial-gradient(circle at 30% 30%,var(--ngaf-chat-text) 0%,var(--ngaf-chat-text-muted) 70%,transparent 100%);box-shadow:0 0 6px var(--ngaf-chat-text-muted);animation:ngaf-chat-caret-fade-in .2s ease-out .3s forwards,ngaf-chat-pulse 2s cubic-bezier(.4,0,.6,1) .5s infinite;opacity:0}:host([data-role=\"assistant\"][data-current=\"true\"][data-streaming=\"true\"]) .chat-message__caret{display:inline-block}.chat-message__controls{display:none;gap:1rem;opacity:0;transition:opacity .2s ease;pointer-events:none}:host([data-role=\"assistant\"]) .chat-message__controls{display:flex}:host([data-role=\"assistant\"]:hover) .chat-message__controls,:host([data-role=\"assistant\"]:focus-within) .chat-message__controls,:host([data-current=\"true\"]) .chat-message__controls{opacity:1;pointer-events:auto}@media(max-width:768px){:host([data-role=\"assistant\"]) .chat-message__controls{opacity:1;pointer-events:auto}}.chat-message__control-btn{width:20px;height:20px;border:0;background:transparent;color:var(--ngaf-chat-primary);cursor:pointer;padding:0;transition:transform .2s ease}.chat-message__control-btn:hover{transform:scale(1.05)}.chat-message__control-btn:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px;border-radius:4px}.chat-message__control-btn svg{width:16px;height:16px;pointer-events:none}\n"], dependencies: [{ kind: "component", type: ChatCitationsComponent, selector: "chat-citations", inputs: ["message", "heading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1074
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}:host([data-role=\"user\"]){display:block;margin-top:.5rem}:host([data-role=\"user\"][data-prev-role=\"assistant\"]){margin-top:1.5rem}:host([data-role=\"user\"]) .chat-message__bubble{margin-left:auto;max-width:80%}:host([data-role=\"assistant\"]) .chat-message__bubble{max-width:80%}:host([data-role=\"assistant\"]){display:block;position:relative;margin-top:1.5rem;color:var(--tplane-chat-text);line-height:1.55;font-size:var(--tplane-chat-font-size);max-width:100%}:host([data-role=\"assistant\"]):first-child{margin-top:0}.chat-message__bubble{width:fit-content;padding:8px 12px;border-radius:var(--tplane-chat-radius-bubble);background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary);white-space:pre-wrap;line-height:var(--tplane-chat-line-height-tight);font-size:var(--tplane-chat-font-size);overflow-wrap:break-word}.chat-message__assistant-body{padding:0 12px 0 4px;overflow-wrap:break-word}.chat-message__caret{display:none;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-left:4px;margin-bottom:2px;background:radial-gradient(circle at 30% 30%,var(--tplane-chat-text) 0%,var(--tplane-chat-text-muted) 70%,transparent 100%);box-shadow:0 0 6px var(--tplane-chat-text-muted);animation:tplane-chat-caret-fade-in .2s ease-out .3s forwards,tplane-chat-pulse 2s cubic-bezier(.4,0,.6,1) .5s infinite;opacity:0}:host([data-role=\"assistant\"][data-current=\"true\"][data-streaming=\"true\"]) .chat-message__caret{display:inline-block}.chat-message__controls{display:none;gap:1rem;opacity:0;transition:opacity .2s ease;pointer-events:none}:host([data-role=\"assistant\"]) .chat-message__controls{display:flex}:host([data-role=\"assistant\"]:hover) .chat-message__controls,:host([data-role=\"assistant\"]:focus-within) .chat-message__controls,:host([data-current=\"true\"]) .chat-message__controls{opacity:1;pointer-events:auto}@media(max-width:768px){:host([data-role=\"assistant\"]) .chat-message__controls{opacity:1;pointer-events:auto}}.chat-message__control-btn{width:20px;height:20px;border:0;background:transparent;color:var(--tplane-chat-primary);cursor:pointer;padding:0;transition:transform .2s ease}.chat-message__control-btn:hover{transform:scale(1.05)}.chat-message__control-btn:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px;border-radius:4px}.chat-message__control-btn svg{width:16px;height:16px;pointer-events:none}\n"], dependencies: [{ kind: "component", type: ChatCitationsComponent, selector: "chat-citations", inputs: ["message", "heading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1075
1075
  }
1076
1076
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatMessageComponent, decorators: [{
1077
1077
  type: Component,
@@ -1091,7 +1091,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
1091
1091
  <div class="chat-message__controls">
1092
1092
  <ng-content select="[chatMessageControls]" />
1093
1093
  </div>
1094
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}:host([data-role=\"user\"]){display:block;margin-top:.5rem}:host([data-role=\"user\"][data-prev-role=\"assistant\"]){margin-top:1.5rem}:host([data-role=\"user\"]) .chat-message__bubble{margin-left:auto;max-width:80%}:host([data-role=\"assistant\"]) .chat-message__bubble{max-width:80%}:host([data-role=\"assistant\"]){display:block;position:relative;margin-top:1.5rem;color:var(--ngaf-chat-text);line-height:1.55;font-size:var(--ngaf-chat-font-size);max-width:100%}:host([data-role=\"assistant\"]):first-child{margin-top:0}.chat-message__bubble{width:fit-content;padding:8px 12px;border-radius:var(--ngaf-chat-radius-bubble);background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary);white-space:pre-wrap;line-height:var(--ngaf-chat-line-height-tight);font-size:var(--ngaf-chat-font-size);overflow-wrap:break-word}.chat-message__assistant-body{padding:0 12px 0 4px;overflow-wrap:break-word}.chat-message__caret{display:none;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-left:4px;margin-bottom:2px;background:radial-gradient(circle at 30% 30%,var(--ngaf-chat-text) 0%,var(--ngaf-chat-text-muted) 70%,transparent 100%);box-shadow:0 0 6px var(--ngaf-chat-text-muted);animation:ngaf-chat-caret-fade-in .2s ease-out .3s forwards,ngaf-chat-pulse 2s cubic-bezier(.4,0,.6,1) .5s infinite;opacity:0}:host([data-role=\"assistant\"][data-current=\"true\"][data-streaming=\"true\"]) .chat-message__caret{display:inline-block}.chat-message__controls{display:none;gap:1rem;opacity:0;transition:opacity .2s ease;pointer-events:none}:host([data-role=\"assistant\"]) .chat-message__controls{display:flex}:host([data-role=\"assistant\"]:hover) .chat-message__controls,:host([data-role=\"assistant\"]:focus-within) .chat-message__controls,:host([data-current=\"true\"]) .chat-message__controls{opacity:1;pointer-events:auto}@media(max-width:768px){:host([data-role=\"assistant\"]) .chat-message__controls{opacity:1;pointer-events:auto}}.chat-message__control-btn{width:20px;height:20px;border:0;background:transparent;color:var(--ngaf-chat-primary);cursor:pointer;padding:0;transition:transform .2s ease}.chat-message__control-btn:hover{transform:scale(1.05)}.chat-message__control-btn:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px;border-radius:4px}.chat-message__control-btn svg{width:16px;height:16px;pointer-events:none}\n"] }]
1094
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}:host([data-role=\"user\"]){display:block;margin-top:.5rem}:host([data-role=\"user\"][data-prev-role=\"assistant\"]){margin-top:1.5rem}:host([data-role=\"user\"]) .chat-message__bubble{margin-left:auto;max-width:80%}:host([data-role=\"assistant\"]) .chat-message__bubble{max-width:80%}:host([data-role=\"assistant\"]){display:block;position:relative;margin-top:1.5rem;color:var(--tplane-chat-text);line-height:1.55;font-size:var(--tplane-chat-font-size);max-width:100%}:host([data-role=\"assistant\"]):first-child{margin-top:0}.chat-message__bubble{width:fit-content;padding:8px 12px;border-radius:var(--tplane-chat-radius-bubble);background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary);white-space:pre-wrap;line-height:var(--tplane-chat-line-height-tight);font-size:var(--tplane-chat-font-size);overflow-wrap:break-word}.chat-message__assistant-body{padding:0 12px 0 4px;overflow-wrap:break-word}.chat-message__caret{display:none;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-left:4px;margin-bottom:2px;background:radial-gradient(circle at 30% 30%,var(--tplane-chat-text) 0%,var(--tplane-chat-text-muted) 70%,transparent 100%);box-shadow:0 0 6px var(--tplane-chat-text-muted);animation:tplane-chat-caret-fade-in .2s ease-out .3s forwards,tplane-chat-pulse 2s cubic-bezier(.4,0,.6,1) .5s infinite;opacity:0}:host([data-role=\"assistant\"][data-current=\"true\"][data-streaming=\"true\"]) .chat-message__caret{display:inline-block}.chat-message__controls{display:none;gap:1rem;opacity:0;transition:opacity .2s ease;pointer-events:none}:host([data-role=\"assistant\"]) .chat-message__controls{display:flex}:host([data-role=\"assistant\"]:hover) .chat-message__controls,:host([data-role=\"assistant\"]:focus-within) .chat-message__controls,:host([data-current=\"true\"]) .chat-message__controls{opacity:1;pointer-events:auto}@media(max-width:768px){:host([data-role=\"assistant\"]) .chat-message__controls{opacity:1;pointer-events:auto}}.chat-message__control-btn{width:20px;height:20px;border:0;background:transparent;color:var(--tplane-chat-primary);cursor:pointer;padding:0;transition:transform .2s ease}.chat-message__control-btn:hover{transform:scale(1.05)}.chat-message__control-btn:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px;border-radius:4px}.chat-message__control-btn svg{width:16px;height:16px;pointer-events:none}\n"] }]
1095
1095
  }], ctorParameters: () => [], propDecorators: { role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: true }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }], streaming: [{ type: i0.Input, args: [{ isSignal: true, alias: "streaming", required: false }] }], prevRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "prevRole", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }] } });
1096
1096
 
1097
1097
  // libs/chat/src/lib/styles/chat-message-actions.styles.ts
@@ -1136,22 +1136,22 @@ const CHAT_MESSAGE_ACTIONS_STYLES = `
1136
1136
  margin: 0;
1137
1137
  border-radius: 6px;
1138
1138
  background: transparent;
1139
- color: var(--ngaf-chat-text-muted);
1139
+ color: var(--tplane-chat-text-muted);
1140
1140
  cursor: pointer;
1141
1141
  transition: color 150ms ease, transform 150ms ease, background 150ms ease;
1142
1142
  }
1143
1143
  .chat-message-actions__btn:hover {
1144
- color: var(--ngaf-chat-text);
1144
+ color: var(--tplane-chat-text);
1145
1145
  transform: scale(1.05);
1146
- background: var(--ngaf-chat-surface-alt);
1146
+ background: var(--tplane-chat-surface-alt);
1147
1147
  }
1148
1148
  .chat-message-actions__btn:focus-visible {
1149
- outline: 2px solid var(--ngaf-chat-text-muted);
1149
+ outline: 2px solid var(--tplane-chat-text-muted);
1150
1150
  outline-offset: 2px;
1151
1151
  }
1152
1152
  .chat-message-actions__btn.is-active {
1153
- color: var(--ngaf-chat-text);
1154
- background: var(--ngaf-chat-surface-alt);
1153
+ color: var(--tplane-chat-text);
1154
+ background: var(--tplane-chat-surface-alt);
1155
1155
  }
1156
1156
  .chat-message-actions__btn svg {
1157
1157
  width: 16px;
@@ -1162,7 +1162,7 @@ const CHAT_MESSAGE_ACTIONS_STYLES = `
1162
1162
  font-size: 14px;
1163
1163
  font-weight: 700;
1164
1164
  line-height: 1;
1165
- color: var(--ngaf-chat-success);
1165
+ color: var(--tplane-chat-success);
1166
1166
  }
1167
1167
  `;
1168
1168
 
@@ -1298,7 +1298,7 @@ class ChatMessageActionsComponent {
1298
1298
  <path d="M17 13l-4 7a2 2 0 0 1-2 2h0a2 2 0 0 1-2-2v-4H4a2 2 0 0 1-2-2l2-7A2 2 0 0 1 6 5h11" />
1299
1299
  </svg>
1300
1300
  </button>
1301
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;gap:.5rem;padding:16px 0 12px;opacity:0;transition:opacity .2s ease;pointer-events:none}:host-context(chat-message[data-role=\"assistant\"]:hover),:host-context(chat-message[data-role=\"assistant\"]:focus-within),:host-context(chat-message[data-role=\"assistant\"][data-current=\"true\"]){opacity:1;pointer-events:auto}:host-context(chat-message[data-streaming=\"true\"]){opacity:0!important;pointer-events:none!important}@media(max-width:768px){:host-context(chat-message[data-role=\"assistant\"]){opacity:1;pointer-events:auto}}.chat-message-actions__btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;padding:0;margin:0;border-radius:6px;background:transparent;color:var(--ngaf-chat-text-muted);cursor:pointer;transition:color .15s ease,transform .15s ease,background .15s ease}.chat-message-actions__btn:hover{color:var(--ngaf-chat-text);transform:scale(1.05);background:var(--ngaf-chat-surface-alt)}.chat-message-actions__btn:focus-visible{outline:2px solid var(--ngaf-chat-text-muted);outline-offset:2px}.chat-message-actions__btn.is-active{color:var(--ngaf-chat-text);background:var(--ngaf-chat-surface-alt)}.chat-message-actions__btn svg{width:16px;height:16px;pointer-events:none}.chat-message-actions__check{font-size:14px;font-weight:700;line-height:1;color:var(--ngaf-chat-success)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1301
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;gap:.5rem;padding:16px 0 12px;opacity:0;transition:opacity .2s ease;pointer-events:none}:host-context(chat-message[data-role=\"assistant\"]:hover),:host-context(chat-message[data-role=\"assistant\"]:focus-within),:host-context(chat-message[data-role=\"assistant\"][data-current=\"true\"]){opacity:1;pointer-events:auto}:host-context(chat-message[data-streaming=\"true\"]){opacity:0!important;pointer-events:none!important}@media(max-width:768px){:host-context(chat-message[data-role=\"assistant\"]){opacity:1;pointer-events:auto}}.chat-message-actions__btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;padding:0;margin:0;border-radius:6px;background:transparent;color:var(--tplane-chat-text-muted);cursor:pointer;transition:color .15s ease,transform .15s ease,background .15s ease}.chat-message-actions__btn:hover{color:var(--tplane-chat-text);transform:scale(1.05);background:var(--tplane-chat-surface-alt)}.chat-message-actions__btn:focus-visible{outline:2px solid var(--tplane-chat-text-muted);outline-offset:2px}.chat-message-actions__btn.is-active{color:var(--tplane-chat-text);background:var(--tplane-chat-surface-alt)}.chat-message-actions__btn svg{width:16px;height:16px;pointer-events:none}.chat-message-actions__check{font-size:14px;font-weight:700;line-height:1;color:var(--tplane-chat-success)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1302
1302
  }
1303
1303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatMessageActionsComponent, decorators: [{
1304
1304
  type: Component,
@@ -1367,7 +1367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
1367
1367
  <path d="M17 13l-4 7a2 2 0 0 1-2 2h0a2 2 0 0 1-2-2v-4H4a2 2 0 0 1-2-2l2-7A2 2 0 0 1 6 5h11" />
1368
1368
  </svg>
1369
1369
  </button>
1370
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;gap:.5rem;padding:16px 0 12px;opacity:0;transition:opacity .2s ease;pointer-events:none}:host-context(chat-message[data-role=\"assistant\"]:hover),:host-context(chat-message[data-role=\"assistant\"]:focus-within),:host-context(chat-message[data-role=\"assistant\"][data-current=\"true\"]){opacity:1;pointer-events:auto}:host-context(chat-message[data-streaming=\"true\"]){opacity:0!important;pointer-events:none!important}@media(max-width:768px){:host-context(chat-message[data-role=\"assistant\"]){opacity:1;pointer-events:auto}}.chat-message-actions__btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;padding:0;margin:0;border-radius:6px;background:transparent;color:var(--ngaf-chat-text-muted);cursor:pointer;transition:color .15s ease,transform .15s ease,background .15s ease}.chat-message-actions__btn:hover{color:var(--ngaf-chat-text);transform:scale(1.05);background:var(--ngaf-chat-surface-alt)}.chat-message-actions__btn:focus-visible{outline:2px solid var(--ngaf-chat-text-muted);outline-offset:2px}.chat-message-actions__btn.is-active{color:var(--ngaf-chat-text);background:var(--ngaf-chat-surface-alt)}.chat-message-actions__btn svg{width:16px;height:16px;pointer-events:none}.chat-message-actions__check{font-size:14px;font-weight:700;line-height:1;color:var(--ngaf-chat-success)}\n"] }]
1370
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;gap:.5rem;padding:16px 0 12px;opacity:0;transition:opacity .2s ease;pointer-events:none}:host-context(chat-message[data-role=\"assistant\"]:hover),:host-context(chat-message[data-role=\"assistant\"]:focus-within),:host-context(chat-message[data-role=\"assistant\"][data-current=\"true\"]){opacity:1;pointer-events:auto}:host-context(chat-message[data-streaming=\"true\"]){opacity:0!important;pointer-events:none!important}@media(max-width:768px){:host-context(chat-message[data-role=\"assistant\"]){opacity:1;pointer-events:auto}}.chat-message-actions__btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:0;padding:0;margin:0;border-radius:6px;background:transparent;color:var(--tplane-chat-text-muted);cursor:pointer;transition:color .15s ease,transform .15s ease,background .15s ease}.chat-message-actions__btn:hover{color:var(--tplane-chat-text);transform:scale(1.05);background:var(--tplane-chat-surface-alt)}.chat-message-actions__btn:focus-visible{outline:2px solid var(--tplane-chat-text-muted);outline-offset:2px}.chat-message-actions__btn.is-active{color:var(--tplane-chat-text);background:var(--tplane-chat-surface-alt)}.chat-message-actions__btn svg{width:16px;height:16px;pointer-events:none}.chat-message-actions__check{font-size:14px;font-weight:700;line-height:1;color:var(--tplane-chat-success)}\n"] }]
1371
1371
  }], propDecorators: { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], regenerate: [{ type: i0.Output, args: ["regenerate"] }], rate: [{ type: i0.Output, args: ["rate"] }], contentCopied: [{ type: i0.Output, args: ["contentCopied"] }] } });
1372
1372
 
1373
1373
  // libs/chat/src/lib/styles/chat-window.styles.ts
@@ -1378,8 +1378,8 @@ const CHAT_WINDOW_STYLES = `
1378
1378
  flex-direction: column;
1379
1379
  min-height: 0;
1380
1380
  height: 100%;
1381
- background: var(--ngaf-chat-bg);
1382
- color: var(--ngaf-chat-text);
1381
+ background: var(--tplane-chat-bg);
1382
+ color: var(--tplane-chat-text);
1383
1383
  }
1384
1384
  .chat-window__header {
1385
1385
  height: 56px;
@@ -1387,16 +1387,16 @@ const CHAT_WINDOW_STYLES = `
1387
1387
  display: flex;
1388
1388
  align-items: center;
1389
1389
  justify-content: space-between;
1390
- padding: 0 var(--ngaf-chat-space-6);
1391
- border-bottom: 1px solid var(--ngaf-chat-separator);
1390
+ padding: 0 var(--tplane-chat-space-6);
1391
+ border-bottom: 1px solid var(--tplane-chat-separator);
1392
1392
  font-weight: 500;
1393
- color: var(--ngaf-chat-primary);
1393
+ color: var(--tplane-chat-primary);
1394
1394
  }
1395
1395
  .chat-window__header:empty { display: none; }
1396
1396
  /* When the consumer doesn't project a header, balance the chat content
1397
1397
  * with breathing room at the top equivalent to the input gap at the bottom. */
1398
1398
  .chat-window__header:empty + .chat-window__body {
1399
- padding-top: var(--ngaf-chat-input-gap);
1399
+ padding-top: var(--tplane-chat-input-gap);
1400
1400
  }
1401
1401
  .chat-window__body {
1402
1402
  flex: 1;
@@ -1408,7 +1408,7 @@ const CHAT_WINDOW_STYLES = `
1408
1408
  .chat-window__footer {
1409
1409
  position: relative;
1410
1410
  flex-shrink: 0;
1411
- margin-top: var(--ngaf-chat-input-gap);
1411
+ margin-top: var(--tplane-chat-input-gap);
1412
1412
  }
1413
1413
  .chat-window__footer:empty { display: none; }
1414
1414
  .chat-window__scroll-fade {
@@ -1417,7 +1417,7 @@ const CHAT_WINDOW_STYLES = `
1417
1417
  right: 0;
1418
1418
  bottom: 100%;
1419
1419
  height: 32px;
1420
- background: linear-gradient(180deg, transparent 0%, var(--ngaf-chat-bg) 100%);
1420
+ background: linear-gradient(180deg, transparent 0%, var(--tplane-chat-bg) 100%);
1421
1421
  pointer-events: none;
1422
1422
  }
1423
1423
  `;
@@ -1433,7 +1433,7 @@ class ChatWindowComponent {
1433
1433
  <div class="chat-window__scroll-fade" aria-hidden="true"></div>
1434
1434
  <ng-content select="[chatFooter]" />
1435
1435
  </div>
1436
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text)}.chat-window__header{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--ngaf-chat-space-6);border-bottom:1px solid var(--ngaf-chat-separator);font-weight:500;color:var(--ngaf-chat-primary)}.chat-window__header:empty{display:none}.chat-window__header:empty+.chat-window__body{padding-top:var(--ngaf-chat-input-gap)}.chat-window__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-window__footer{position:relative;flex-shrink:0;margin-top:var(--ngaf-chat-input-gap)}.chat-window__footer:empty{display:none}.chat-window__scroll-fade{position:absolute;left:0;right:0;bottom:100%;height:32px;background:linear-gradient(180deg,transparent 0%,var(--ngaf-chat-bg) 100%);pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1436
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--tplane-chat-bg);color:var(--tplane-chat-text)}.chat-window__header{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--tplane-chat-space-6);border-bottom:1px solid var(--tplane-chat-separator);font-weight:500;color:var(--tplane-chat-primary)}.chat-window__header:empty{display:none}.chat-window__header:empty+.chat-window__body{padding-top:var(--tplane-chat-input-gap)}.chat-window__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-window__footer{position:relative;flex-shrink:0;margin-top:var(--tplane-chat-input-gap)}.chat-window__footer:empty{display:none}.chat-window__scroll-fade{position:absolute;left:0;right:0;bottom:100%;height:32px;background:linear-gradient(180deg,transparent 0%,var(--tplane-chat-bg) 100%);pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1437
1437
  }
1438
1438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWindowComponent, decorators: [{
1439
1439
  type: Component,
@@ -1444,20 +1444,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
1444
1444
  <div class="chat-window__scroll-fade" aria-hidden="true"></div>
1445
1445
  <ng-content select="[chatFooter]" />
1446
1446
  </div>
1447
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text)}.chat-window__header{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--ngaf-chat-space-6);border-bottom:1px solid var(--ngaf-chat-separator);font-weight:500;color:var(--ngaf-chat-primary)}.chat-window__header:empty{display:none}.chat-window__header:empty+.chat-window__body{padding-top:var(--ngaf-chat-input-gap)}.chat-window__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-window__footer{position:relative;flex-shrink:0;margin-top:var(--ngaf-chat-input-gap)}.chat-window__footer:empty{display:none}.chat-window__scroll-fade{position:absolute;left:0;right:0;bottom:100%;height:32px;background:linear-gradient(180deg,transparent 0%,var(--ngaf-chat-bg) 100%);pointer-events:none}\n"] }]
1447
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--tplane-chat-bg);color:var(--tplane-chat-text)}.chat-window__header{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--tplane-chat-space-6);border-bottom:1px solid var(--tplane-chat-separator);font-weight:500;color:var(--tplane-chat-primary)}.chat-window__header:empty{display:none}.chat-window__header:empty+.chat-window__body{padding-top:var(--tplane-chat-input-gap)}.chat-window__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.chat-window__footer{position:relative;flex-shrink:0;margin-top:var(--tplane-chat-input-gap)}.chat-window__footer:empty{display:none}.chat-window__scroll-fade{position:absolute;left:0;right:0;bottom:100%;height:32px;background:linear-gradient(180deg,transparent 0%,var(--tplane-chat-bg) 100%);pointer-events:none}\n"] }]
1448
1448
  }] });
1449
1449
 
1450
1450
  // libs/chat/src/lib/styles/chat-trace.styles.ts
1451
1451
  // SPDX-License-Identifier: MIT
1452
1452
  const CHAT_TRACE_STYLES = `
1453
- :host { display: block; font-size: var(--ngaf-chat-font-size-sm); }
1453
+ :host { display: block; font-size: var(--tplane-chat-font-size-sm); }
1454
1454
  .chat-trace__header {
1455
1455
  display: flex;
1456
1456
  align-items: center;
1457
1457
  gap: 0.25rem;
1458
1458
  cursor: pointer;
1459
1459
  user-select: none;
1460
- color: var(--ngaf-chat-text-muted);
1460
+ color: var(--tplane-chat-text-muted);
1461
1461
  background: transparent;
1462
1462
  border: 0;
1463
1463
  padding: 0;
@@ -1473,13 +1473,13 @@ const CHAT_TRACE_STYLES = `
1473
1473
  }
1474
1474
  :host([data-expanded="true"]) .chat-trace__chevron { transform: rotate(90deg); }
1475
1475
  .chat-trace__label { display: flex; align-items: center; gap: 0.5rem; flex: 1; min-width: 0; }
1476
- :host([data-state="running"]) .chat-trace__label { animation: ngaf-chat-pulse 1.5s ease-in-out infinite; }
1477
- :host([data-state="error"]) .chat-trace__label { color: var(--ngaf-chat-error-text); }
1476
+ :host([data-state="running"]) .chat-trace__label { animation: tplane-chat-pulse 1.5s ease-in-out infinite; }
1477
+ :host([data-state="error"]) .chat-trace__label { color: var(--tplane-chat-error-text); }
1478
1478
  .chat-trace__content {
1479
1479
  padding-left: 1rem;
1480
1480
  padding-top: 0.375rem;
1481
1481
  margin-left: 0.375rem;
1482
- border-left: 1px solid var(--ngaf-chat-separator);
1482
+ border-left: 1px solid var(--tplane-chat-separator);
1483
1483
  max-height: 250px;
1484
1484
  overflow: auto;
1485
1485
  }
@@ -1538,7 +1538,7 @@ class ChatTraceComponent {
1538
1538
  @if (expanded()) {
1539
1539
  <div class="chat-trace__content"><ng-content /></div>
1540
1540
  }
1541
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;font-size:var(--ngaf-chat-font-size-sm)}.chat-trace__header{display:flex;align-items:center;gap:.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ngaf-chat-text-muted);background:transparent;border:0;padding:0;width:100%;text-align:left;font:inherit}.chat-trace__chevron{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}:host([data-expanded=\"true\"]) .chat-trace__chevron{transform:rotate(90deg)}.chat-trace__label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}:host([data-state=\"running\"]) .chat-trace__label{animation:ngaf-chat-pulse 1.5s ease-in-out infinite}:host([data-state=\"error\"]) .chat-trace__label{color:var(--ngaf-chat-error-text)}.chat-trace__content{padding-left:1rem;padding-top:.375rem;margin-left:.375rem;border-left:1px solid var(--ngaf-chat-separator);max-height:250px;overflow:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1541
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;font-size:var(--tplane-chat-font-size-sm)}.chat-trace__header{display:flex;align-items:center;gap:.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--tplane-chat-text-muted);background:transparent;border:0;padding:0;width:100%;text-align:left;font:inherit}.chat-trace__chevron{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}:host([data-expanded=\"true\"]) .chat-trace__chevron{transform:rotate(90deg)}.chat-trace__label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}:host([data-state=\"running\"]) .chat-trace__label{animation:tplane-chat-pulse 1.5s ease-in-out infinite}:host([data-state=\"error\"]) .chat-trace__label{color:var(--tplane-chat-error-text)}.chat-trace__content{padding-left:1rem;padding-top:.375rem;margin-left:.375rem;border-left:1px solid var(--tplane-chat-separator);max-height:250px;overflow:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1542
1542
  }
1543
1543
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatTraceComponent, decorators: [{
1544
1544
  type: Component,
@@ -1564,7 +1564,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
1564
1564
  @if (expanded()) {
1565
1565
  <div class="chat-trace__content"><ng-content /></div>
1566
1566
  }
1567
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;font-size:var(--ngaf-chat-font-size-sm)}.chat-trace__header{display:flex;align-items:center;gap:.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ngaf-chat-text-muted);background:transparent;border:0;padding:0;width:100%;text-align:left;font:inherit}.chat-trace__chevron{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}:host([data-expanded=\"true\"]) .chat-trace__chevron{transform:rotate(90deg)}.chat-trace__label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}:host([data-state=\"running\"]) .chat-trace__label{animation:ngaf-chat-pulse 1.5s ease-in-out infinite}:host([data-state=\"error\"]) .chat-trace__label{color:var(--ngaf-chat-error-text)}.chat-trace__content{padding-left:1rem;padding-top:.375rem;margin-left:.375rem;border-left:1px solid var(--ngaf-chat-separator);max-height:250px;overflow:auto}\n"] }]
1567
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;font-size:var(--tplane-chat-font-size-sm)}.chat-trace__header{display:flex;align-items:center;gap:.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--tplane-chat-text-muted);background:transparent;border:0;padding:0;width:100%;text-align:left;font:inherit}.chat-trace__chevron{width:12px;height:12px;transition:transform .2s ease;flex-shrink:0}:host([data-expanded=\"true\"]) .chat-trace__chevron{transform:rotate(90deg)}.chat-trace__label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}:host([data-state=\"running\"]) .chat-trace__label{animation:tplane-chat-pulse 1.5s ease-in-out infinite}:host([data-state=\"error\"]) .chat-trace__label{color:var(--tplane-chat-error-text)}.chat-trace__content{padding-left:1rem;padding-top:.375rem;margin-left:.375rem;border-left:1px solid var(--tplane-chat-separator);max-height:250px;overflow:auto}\n"] }]
1568
1568
  }], ctorParameters: () => [], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], defaultExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultExpanded", required: false }] }] } });
1569
1569
 
1570
1570
  // libs/chat/src/lib/styles/chat-reasoning.styles.ts
@@ -1584,16 +1584,16 @@ const CHAT_REASONING_STYLES = `
1584
1584
  align-items: center;
1585
1585
  gap: 0.5rem;
1586
1586
  padding: 4px 10px;
1587
- background: var(--ngaf-chat-surface-alt);
1588
- border: 1px solid var(--ngaf-chat-separator);
1587
+ background: var(--tplane-chat-surface-alt);
1588
+ border: 1px solid var(--tplane-chat-separator);
1589
1589
  border-radius: 9999px;
1590
- color: var(--ngaf-chat-text-muted);
1591
- font-size: var(--ngaf-chat-font-size-xs);
1590
+ color: var(--tplane-chat-text-muted);
1591
+ font-size: var(--tplane-chat-font-size-xs);
1592
1592
  font-family: inherit;
1593
1593
  cursor: pointer;
1594
1594
  line-height: 1.2;
1595
1595
  }
1596
- .chat-reasoning__header:hover { color: var(--ngaf-chat-text); }
1596
+ .chat-reasoning__header:hover { color: var(--tplane-chat-text); }
1597
1597
 
1598
1598
  .chat-reasoning__chevron {
1599
1599
  width: 10px;
@@ -1607,7 +1607,7 @@ const CHAT_REASONING_STYLES = `
1607
1607
  width: 6px;
1608
1608
  height: 6px;
1609
1609
  border-radius: 50%;
1610
- background: var(--ngaf-chat-text-muted);
1610
+ background: var(--tplane-chat-text-muted);
1611
1611
  animation: chat-reasoning-pulse 1.2s ease-in-out infinite;
1612
1612
  }
1613
1613
  @keyframes chat-reasoning-pulse {
@@ -1618,8 +1618,8 @@ const CHAT_REASONING_STYLES = `
1618
1618
  .chat-reasoning__body {
1619
1619
  margin-top: 0.5rem;
1620
1620
  padding-left: 12px;
1621
- border-left: 2px solid var(--ngaf-chat-separator);
1622
- color: var(--ngaf-chat-text-muted);
1621
+ border-left: 2px solid var(--tplane-chat-separator);
1622
+ color: var(--tplane-chat-text-muted);
1623
1623
  }
1624
1624
  .chat-reasoning__body chat-streaming-md { font-size: 0.95em; }
1625
1625
  `;
@@ -1639,7 +1639,7 @@ const CHAT_REASONING_STYLES = `
1639
1639
  // rules, tables, images, bold (`strong`), italic (`em`), strikethrough
1640
1640
  // (`del`/`s`).
1641
1641
  const CHAT_MARKDOWN_STYLES = `
1642
- chat-streaming-md { display: block; color: var(--ngaf-chat-text); line-height: var(--ngaf-chat-line-height); }
1642
+ chat-streaming-md { display: block; color: var(--tplane-chat-text); line-height: var(--tplane-chat-line-height); }
1643
1643
 
1644
1644
  /* Headings */
1645
1645
  chat-streaming-md h1, chat-streaming-md h2, chat-streaming-md h3, chat-streaming-md h4, chat-streaming-md h5, chat-streaming-md h6 {
@@ -1653,20 +1653,20 @@ const CHAT_MARKDOWN_STYLES = `
1653
1653
  chat-streaming-md h2 { font-size: 1.25em; }
1654
1654
  chat-streaming-md h3 { font-size: 1.1em; }
1655
1655
  chat-streaming-md h4 { font-size: 1em; }
1656
- chat-streaming-md h5, chat-streaming-md h6 { font-size: 0.95em; color: var(--ngaf-chat-text-muted); }
1656
+ chat-streaming-md h5, chat-streaming-md h6 { font-size: 0.95em; color: var(--tplane-chat-text-muted); }
1657
1657
 
1658
1658
  /* Paragraphs and inline emphasis */
1659
- chat-streaming-md p { margin: 0 0 0.75rem; line-height: 1.6; font-size: var(--ngaf-chat-font-size); }
1659
+ chat-streaming-md p { margin: 0 0 0.75rem; line-height: 1.6; font-size: var(--tplane-chat-font-size); }
1660
1660
  chat-streaming-md p:last-child { margin-bottom: 0; }
1661
1661
  chat-streaming-md strong, chat-streaming-md b { font-weight: 700; }
1662
1662
  chat-streaming-md em, chat-streaming-md i { font-style: italic; }
1663
- chat-streaming-md del, chat-streaming-md s { text-decoration: line-through; color: var(--ngaf-chat-text-muted); }
1664
- chat-streaming-md mark { background: var(--ngaf-chat-surface-alt); padding: 0 2px; border-radius: 2px; }
1663
+ chat-streaming-md del, chat-streaming-md s { text-decoration: line-through; color: var(--tplane-chat-text-muted); }
1664
+ chat-streaming-md mark { background: var(--tplane-chat-surface-alt); padding: 0 2px; border-radius: 2px; }
1665
1665
  chat-streaming-md sub { font-size: 0.75em; vertical-align: sub; }
1666
1666
  chat-streaming-md sup { font-size: 0.75em; vertical-align: super; }
1667
1667
 
1668
1668
  /* Links */
1669
- chat-streaming-md a { color: var(--ngaf-chat-primary); text-decoration: underline; text-underline-offset: 2px; }
1669
+ chat-streaming-md a { color: var(--tplane-chat-primary); text-decoration: underline; text-underline-offset: 2px; }
1670
1670
  chat-streaming-md a:hover { text-decoration-thickness: 2px; }
1671
1671
 
1672
1672
  /* Lists (CommonMark + GFM task lists) */
@@ -1676,7 +1676,7 @@ const CHAT_MARKDOWN_STYLES = `
1676
1676
  chat-streaming-md ul ul { list-style: circle outside; }
1677
1677
  chat-streaming-md ul ul ul { list-style: square outside; }
1678
1678
  chat-streaming-md li { margin: 0.2rem 0; }
1679
- chat-streaming-md li::marker { color: var(--ngaf-chat-text-muted); }
1679
+ chat-streaming-md li::marker { color: var(--tplane-chat-text-muted); }
1680
1680
  chat-streaming-md li > p { margin: 0 0 0.25rem; }
1681
1681
  chat-streaming-md li > ul, chat-streaming-md li > ol { margin: 0.25rem 0 0; }
1682
1682
  /* GFM task lists: marked emits <li><input type="checkbox" disabled> ... */
@@ -1685,21 +1685,21 @@ const CHAT_MARKDOWN_STYLES = `
1685
1685
 
1686
1686
  /* Code (inline + fenced) */
1687
1687
  chat-streaming-md code {
1688
- background: var(--ngaf-chat-surface-alt);
1689
- color: var(--ngaf-chat-text);
1688
+ background: var(--tplane-chat-surface-alt);
1689
+ color: var(--tplane-chat-text);
1690
1690
  padding: 1px 5px;
1691
1691
  border-radius: 4px;
1692
- font-family: var(--ngaf-chat-font-mono);
1692
+ font-family: var(--tplane-chat-font-mono);
1693
1693
  font-size: 0.9em;
1694
1694
  }
1695
1695
  chat-streaming-md pre {
1696
- background: var(--ngaf-chat-surface-alt);
1697
- color: var(--ngaf-chat-text);
1696
+ background: var(--tplane-chat-surface-alt);
1697
+ color: var(--tplane-chat-text);
1698
1698
  padding: 12px 14px;
1699
- border-radius: var(--ngaf-chat-radius-card);
1699
+ border-radius: var(--tplane-chat-radius-card);
1700
1700
  overflow-x: auto;
1701
- font-family: var(--ngaf-chat-font-mono);
1702
- font-size: var(--ngaf-chat-font-size-sm);
1701
+ font-family: var(--tplane-chat-font-mono);
1702
+ font-size: var(--tplane-chat-font-size-sm);
1703
1703
  line-height: 1.5;
1704
1704
  margin: 0 0 0.75rem;
1705
1705
  }
@@ -1707,17 +1707,17 @@ const CHAT_MARKDOWN_STYLES = `
1707
1707
 
1708
1708
  /* Blockquote */
1709
1709
  chat-streaming-md blockquote {
1710
- border-left: 3px solid var(--ngaf-chat-separator);
1710
+ border-left: 3px solid var(--tplane-chat-separator);
1711
1711
  padding: 0.25rem 0 0.25rem 12px;
1712
1712
  margin: 0 0 0.75rem;
1713
- color: var(--ngaf-chat-text-muted);
1713
+ color: var(--tplane-chat-text-muted);
1714
1714
  }
1715
1715
  chat-streaming-md blockquote > :last-child { margin-bottom: 0; }
1716
1716
 
1717
1717
  /* Horizontal rule */
1718
1718
  chat-streaming-md hr {
1719
1719
  border: none;
1720
- border-top: 1px solid var(--ngaf-chat-separator);
1720
+ border-top: 1px solid var(--tplane-chat-separator);
1721
1721
  margin: 1rem 0;
1722
1722
  }
1723
1723
 
@@ -1728,9 +1728,9 @@ const CHAT_MARKDOWN_STYLES = `
1728
1728
  width: 100%;
1729
1729
  font-size: 0.95em;
1730
1730
  }
1731
- chat-streaming-md thead { background: var(--ngaf-chat-surface-alt); }
1731
+ chat-streaming-md thead { background: var(--tplane-chat-surface-alt); }
1732
1732
  chat-streaming-md th, chat-streaming-md td {
1733
- border: 1px solid var(--ngaf-chat-separator);
1733
+ border: 1px solid var(--tplane-chat-separator);
1734
1734
  padding: 6px 10px;
1735
1735
  text-align: left;
1736
1736
  vertical-align: top;
@@ -1786,11 +1786,11 @@ const CHAT_MARKDOWN_STYLES = `
1786
1786
  align-items: center;
1787
1787
  gap: 0.4rem;
1788
1788
  padding: 0.25rem 0.5rem;
1789
- background: var(--ngaf-chat-surface-alt);
1790
- border: 1px dashed var(--ngaf-chat-separator);
1789
+ background: var(--tplane-chat-surface-alt);
1790
+ border: 1px dashed var(--tplane-chat-separator);
1791
1791
  border-radius: 6px;
1792
1792
  font-size: 0.9em;
1793
- color: var(--ngaf-chat-text-muted, currentColor);
1793
+ color: var(--tplane-chat-text-muted, currentColor);
1794
1794
  opacity: 0.85;
1795
1795
  }
1796
1796
  chat-streaming-md .chat-md-image__icon { font-size: 1em; line-height: 1; }
@@ -1799,7 +1799,7 @@ const CHAT_MARKDOWN_STYLES = `
1799
1799
  on overflow; the raw fallback (KaTeX missing or invalid LaTeX) reads as
1800
1800
  monospace so the source delimiters look intentional. */
1801
1801
  chat-streaming-md .chat-md-math--display { display: block; margin: 0.5em 0; overflow-x: auto; }
1802
- chat-streaming-md .chat-md-math--raw { font-family: var(--ngaf-chat-font-mono, ui-monospace, monospace); }
1802
+ chat-streaming-md .chat-md-math--raw { font-family: var(--tplane-chat-font-mono, ui-monospace, monospace); }
1803
1803
  `;
1804
1804
 
1805
1805
  // libs/chat/src/lib/markdown/markdown-view-registry.ts
@@ -2477,8 +2477,15 @@ const IS_HEADER_ROW = new InjectionToken('IS_HEADER_ROW', {
2477
2477
  // SPDX-License-Identifier: MIT
2478
2478
  class MarkdownTableRowComponent {
2479
2479
  node = input.required(...(ngDevMode ? [{ debugName: "node" }] : []));
2480
+ registry = inject(MARKDOWN_VIEW_REGISTRY);
2481
+ resolve(child) {
2482
+ const entry = this.registry[child.type];
2483
+ if (!entry)
2484
+ return null;
2485
+ return typeof entry === 'function' ? entry : entry.component;
2486
+ }
2480
2487
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MarkdownTableRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2481
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: MarkdownTableRowComponent, isStandalone: true, selector: "chat-md-table-row", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
2488
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: MarkdownTableRowComponent, isStandalone: true, selector: "chat-md-table-row", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
2482
2489
  {
2483
2490
  provide: IS_HEADER_ROW,
2484
2491
  useFactory: () => {
@@ -2488,20 +2495,30 @@ class MarkdownTableRowComponent {
2488
2495
  },
2489
2496
  ], ngImport: i0, template: `
2490
2497
  <tr class="chat-md-table-row" [class.chat-md-table-row--header]="node().isHeader">
2491
- <chat-md-children [parent]="node()" />
2498
+ @for (child of node().children; track $index) {
2499
+ @let comp = resolve(child);
2500
+ @if (comp) {
2501
+ <ng-container *ngComponentOutlet="comp; inputs: { node: child }" />
2502
+ }
2503
+ }
2492
2504
  </tr>
2493
- `, isInline: true, dependencies: [{ kind: "component", type: MarkdownChildrenComponent, selector: "chat-md-children", inputs: ["parent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2505
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2494
2506
  }
2495
2507
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: MarkdownTableRowComponent, decorators: [{
2496
2508
  type: Component,
2497
2509
  args: [{
2498
2510
  selector: 'chat-md-table-row',
2499
2511
  standalone: true,
2500
- imports: [MarkdownChildrenComponent],
2512
+ imports: [NgComponentOutlet],
2501
2513
  changeDetection: ChangeDetectionStrategy.OnPush,
2502
2514
  template: `
2503
2515
  <tr class="chat-md-table-row" [class.chat-md-table-row--header]="node().isHeader">
2504
- <chat-md-children [parent]="node()" />
2516
+ @for (child of node().children; track $index) {
2517
+ @let comp = resolve(child);
2518
+ @if (comp) {
2519
+ <ng-container *ngComponentOutlet="comp; inputs: { node: child }" />
2520
+ }
2521
+ }
2505
2522
  </tr>
2506
2523
  `,
2507
2524
  providers: [
@@ -2676,6 +2693,15 @@ const cacheplaneMarkdownViews = views({
2676
2693
 
2677
2694
  // libs/chat/src/lib/streaming/streaming-markdown.component.ts
2678
2695
  // SPDX-License-Identifier: MIT
2696
+ // How long streaming must be false AND content stable before we finalize the
2697
+ // parser. finish() is only needed to mark final node status (not used visually)
2698
+ // and to revert a genuinely-truncated trailing construct to CommonMark — the
2699
+ // live `parser.root` projection already renders everything during streaming, so
2700
+ // this delay has NO visual cost. It must comfortably exceed real inter-chunk
2701
+ // gaps (e.g. the pause between a table's header row and its delimiter row) and
2702
+ // any `streaming` flag flap, so finalize never fires mid-stream and reverts an
2703
+ // in-progress table to raw "| a | b |" text.
2704
+ const FINALIZE_DEBOUNCE_MS = 600;
2679
2705
  /**
2680
2706
  * Renders streaming markdown by walking a @cacheplane/partial-markdown AST
2681
2707
  * through @threadplane/render's view registry.
@@ -2706,6 +2732,44 @@ class ChatStreamingMdComponent {
2706
2732
  this.resolver.markdownDefs.set(r.citations ?? new Map());
2707
2733
  }
2708
2734
  });
2735
+ // Debounced finalization. `finish()` is terminal and DESTRUCTIVE: it reverts
2736
+ // an incomplete trailing construct to its CommonMark fallback — e.g. a table
2737
+ // header before its delimiter row becomes raw "| a | b |" paragraph text. We
2738
+ // must therefore never finalize while tokens are still arriving. The
2739
+ // `streaming` input is not a reliable "still arriving" signal — it can flap
2740
+ // false mid-stream, and at cold start it can read false for an entire live
2741
+ // stream — so we finalize only once streaming is false AND no new content
2742
+ // has arrived for a short, imperceptible window. Any new content or a
2743
+ // streaming=true flap re-arms the timer, so finalize fires exactly once,
2744
+ // after the stream truly stops. Until then the live `parser.root` projection
2745
+ // (0.5.x) renders the in-progress content, including streaming tables.
2746
+ let timer = null;
2747
+ effect((onCleanup) => {
2748
+ const isStreaming = this.streaming();
2749
+ this.content(); // re-arm whenever new content arrives
2750
+ if (timer) {
2751
+ clearTimeout(timer);
2752
+ timer = null;
2753
+ }
2754
+ if (isStreaming || this.finished)
2755
+ return;
2756
+ timer = setTimeout(() => {
2757
+ timer = null;
2758
+ if (this.streaming() || this.finished)
2759
+ return;
2760
+ if (!this.prior.endsWith('\n'))
2761
+ this.parser.push('\n');
2762
+ this.parser.finish();
2763
+ this.finished = true;
2764
+ this.finalizeTick.update((v) => v + 1);
2765
+ }, FINALIZE_DEBOUNCE_MS);
2766
+ onCleanup(() => {
2767
+ if (timer) {
2768
+ clearTimeout(timer);
2769
+ timer = null;
2770
+ }
2771
+ });
2772
+ });
2709
2773
  }
2710
2774
  // Parser instance is rebuilt only when content diverges from the prior
2711
2775
  // prefix (rare). For the common streaming case where content extends the
@@ -2713,41 +2777,29 @@ class ChatStreamingMdComponent {
2713
2777
  parser = createPartialMarkdownParser();
2714
2778
  prior = '';
2715
2779
  finished = false;
2780
+ // Bumped by the debounced finalizer so the `root` computed re-materializes
2781
+ // the now-finished parser tree.
2782
+ finalizeTick = signal(0, ...(ngDevMode ? [{ debugName: "finalizeTick" }] : []));
2716
2783
  root = computed(() => {
2717
2784
  const c = this.content();
2718
- const isStreaming = this.streaming();
2785
+ this.finalizeTick(); // re-materialize after a debounced finalize
2719
2786
  if (c !== this.prior) {
2720
- if (c.startsWith(this.prior)) {
2787
+ // Re-parse from scratch when the content diverged from the prior prefix,
2788
+ // OR when the parser was already finalized — finish() is terminal, so
2789
+ // pushing further deltas into a finished parser corrupts its state. A
2790
+ // transient `streaming=false` mid-stream that finalized early thus
2791
+ // recovers here: new content rebuilds an open, projecting parser.
2792
+ if (c.startsWith(this.prior) && !this.finished) {
2721
2793
  this.parser.push(c.slice(this.prior.length));
2722
2794
  }
2723
2795
  else {
2724
- // Content shrank or diverged — reset.
2725
2796
  this.parser = createPartialMarkdownParser();
2726
2797
  this.finished = false;
2727
2798
  if (c.length > 0)
2728
2799
  this.parser.push(c);
2729
2800
  }
2730
- if (!isStreaming && !this.finished) {
2731
- // @cacheplane/partial-markdown@0.3 does not flush trailing text on
2732
- // finish() unless the buffer ends with a newline. Plain LLM
2733
- // responses often omit the trailing newline, which causes the
2734
- // parser to emit a document with zero children — i.e. the message
2735
- // renders empty. Push a sentinel newline first to force the open
2736
- // paragraph closed before we finalize.
2737
- if (!c.endsWith('\n'))
2738
- this.parser.push('\n');
2739
- this.parser.finish();
2740
- this.finished = true;
2741
- }
2742
2801
  this.prior = c;
2743
2802
  }
2744
- else if (!isStreaming && !this.finished) {
2745
- // Streaming flipped to false without new content; ensure parser is finalized.
2746
- if (!this.prior.endsWith('\n'))
2747
- this.parser.push('\n');
2748
- this.parser.finish();
2749
- this.finished = true;
2750
- }
2751
2803
  // Materialize for Angular reactivity: produces a NEW root reference when
2752
2804
  // any descendant subtree changed; same reference when nothing changed
2753
2805
  // (structural sharing). This is what makes signal-based CD propagate
@@ -2765,7 +2817,7 @@ class ChatStreamingMdComponent {
2765
2817
  @if (root(); as r) {
2766
2818
  <chat-md-children [parent]="r" />
2767
2819
  }
2768
- `, isInline: true, styles: ["chat-streaming-md{display:block;color:var(--ngaf-chat-text);line-height:var(--ngaf-chat-line-height)}chat-streaming-md h1,chat-streaming-md h2,chat-streaming-md h3,chat-streaming-md h4,chat-streaming-md h5,chat-streaming-md h6{font-weight:600;line-height:1.25;margin:1.25rem 0 .75rem}chat-streaming-md h1:first-child,chat-streaming-md h2:first-child,chat-streaming-md h3:first-child,chat-streaming-md h4:first-child,chat-streaming-md h5:first-child,chat-streaming-md h6:first-child{margin-top:0}chat-streaming-md h1{font-size:1.5em;font-weight:700}chat-streaming-md h2{font-size:1.25em}chat-streaming-md h3{font-size:1.1em}chat-streaming-md h4{font-size:1em}chat-streaming-md h5,chat-streaming-md h6{font-size:.95em;color:var(--ngaf-chat-text-muted)}chat-streaming-md p{margin:0 0 .75rem;line-height:1.6;font-size:var(--ngaf-chat-font-size)}chat-streaming-md p:last-child{margin-bottom:0}chat-streaming-md strong,chat-streaming-md b{font-weight:700}chat-streaming-md em,chat-streaming-md i{font-style:italic}chat-streaming-md del,chat-streaming-md s{text-decoration:line-through;color:var(--ngaf-chat-text-muted)}chat-streaming-md mark{background:var(--ngaf-chat-surface-alt);padding:0 2px;border-radius:2px}chat-streaming-md sub{font-size:.75em;vertical-align:sub}chat-streaming-md sup{font-size:.75em;vertical-align:super}chat-streaming-md a{color:var(--ngaf-chat-primary);text-decoration:underline;text-underline-offset:2px}chat-streaming-md a:hover{text-decoration-thickness:2px}chat-streaming-md ul,chat-streaming-md ol{margin:0 0 .75rem;padding-left:1.5rem}chat-streaming-md ul{list-style:disc outside}chat-streaming-md ol{list-style:decimal outside}chat-streaming-md ul ul{list-style:circle outside}chat-streaming-md ul ul ul{list-style:square outside}chat-streaming-md li{margin:.2rem 0}chat-streaming-md li::marker{color:var(--ngaf-chat-text-muted)}chat-streaming-md li>p{margin:0 0 .25rem}chat-streaming-md li>ul,chat-streaming-md li>ol{margin:.25rem 0 0}chat-streaming-md li:has(>input[type=checkbox]){list-style:none;margin-left:-1.25rem}chat-streaming-md li>input[type=checkbox]{margin-right:.5rem;vertical-align:middle}chat-streaming-md code{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);padding:1px 5px;border-radius:4px;font-family:var(--ngaf-chat-font-mono);font-size:.9em}chat-streaming-md pre{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);padding:12px 14px;border-radius:var(--ngaf-chat-radius-card);overflow-x:auto;font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-sm);line-height:1.5;margin:0 0 .75rem}chat-streaming-md pre code{background:transparent;padding:0;border-radius:0;font-size:inherit}chat-streaming-md blockquote{border-left:3px solid var(--ngaf-chat-separator);padding:.25rem 0 .25rem 12px;margin:0 0 .75rem;color:var(--ngaf-chat-text-muted)}chat-streaming-md blockquote>:last-child{margin-bottom:0}chat-streaming-md hr{border:none;border-top:1px solid var(--ngaf-chat-separator);margin:1rem 0}chat-streaming-md table{border-collapse:collapse;margin:0 0 .75rem;width:100%;font-size:.95em}chat-streaming-md thead{background:var(--ngaf-chat-surface-alt)}chat-streaming-md th,chat-streaming-md td{border:1px solid var(--ngaf-chat-separator);padding:6px 10px;text-align:left;vertical-align:top}chat-streaming-md th{font-weight:600}chat-streaming-md chat-md-table{display:block;overflow-x:auto;max-width:100%;margin:0 0 .75rem}chat-streaming-md chat-md-table-row{display:contents}chat-streaming-md chat-md-table-cell{display:contents}chat-streaming-md chat-md-table>table{margin:0}chat-streaming-md li.chat-md-list-item--task{list-style:none;margin-left:-1.25rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}chat-streaming-md li.chat-md-list-item--task>input[type=checkbox]{margin:0;flex:0 0 auto;transform:translateY(2px)}chat-streaming-md li.chat-md-list-item--task>chat-md-children{flex:1 1 auto;min-width:0}chat-streaming-md li.chat-md-list-item--task>chat-md-children>chat-md-paragraph:first-child>p{margin:0}chat-streaming-md img{max-width:100%;height:auto;border-radius:6px}chat-streaming-md .chat-md-image--broken{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;background:var(--ngaf-chat-surface-alt);border:1px dashed var(--ngaf-chat-separator);border-radius:6px;font-size:.9em;color:var(--ngaf-chat-text-muted, currentColor);opacity:.85}chat-streaming-md .chat-md-image__icon{font-size:1em;line-height:1}chat-streaming-md .chat-md-image__alt{font-style:italic}chat-streaming-md .chat-md-math--display{display:block;margin:.5em 0;overflow-x:auto}chat-streaming-md .chat-md-math--raw{font-family:var(--ngaf-chat-font-mono, ui-monospace, monospace)}\n"], dependencies: [{ kind: "component", type: MarkdownChildrenComponent, selector: "chat-md-children", inputs: ["parent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2820
+ `, isInline: true, styles: ["chat-streaming-md{display:block;color:var(--tplane-chat-text);line-height:var(--tplane-chat-line-height)}chat-streaming-md h1,chat-streaming-md h2,chat-streaming-md h3,chat-streaming-md h4,chat-streaming-md h5,chat-streaming-md h6{font-weight:600;line-height:1.25;margin:1.25rem 0 .75rem}chat-streaming-md h1:first-child,chat-streaming-md h2:first-child,chat-streaming-md h3:first-child,chat-streaming-md h4:first-child,chat-streaming-md h5:first-child,chat-streaming-md h6:first-child{margin-top:0}chat-streaming-md h1{font-size:1.5em;font-weight:700}chat-streaming-md h2{font-size:1.25em}chat-streaming-md h3{font-size:1.1em}chat-streaming-md h4{font-size:1em}chat-streaming-md h5,chat-streaming-md h6{font-size:.95em;color:var(--tplane-chat-text-muted)}chat-streaming-md p{margin:0 0 .75rem;line-height:1.6;font-size:var(--tplane-chat-font-size)}chat-streaming-md p:last-child{margin-bottom:0}chat-streaming-md strong,chat-streaming-md b{font-weight:700}chat-streaming-md em,chat-streaming-md i{font-style:italic}chat-streaming-md del,chat-streaming-md s{text-decoration:line-through;color:var(--tplane-chat-text-muted)}chat-streaming-md mark{background:var(--tplane-chat-surface-alt);padding:0 2px;border-radius:2px}chat-streaming-md sub{font-size:.75em;vertical-align:sub}chat-streaming-md sup{font-size:.75em;vertical-align:super}chat-streaming-md a{color:var(--tplane-chat-primary);text-decoration:underline;text-underline-offset:2px}chat-streaming-md a:hover{text-decoration-thickness:2px}chat-streaming-md ul,chat-streaming-md ol{margin:0 0 .75rem;padding-left:1.5rem}chat-streaming-md ul{list-style:disc outside}chat-streaming-md ol{list-style:decimal outside}chat-streaming-md ul ul{list-style:circle outside}chat-streaming-md ul ul ul{list-style:square outside}chat-streaming-md li{margin:.2rem 0}chat-streaming-md li::marker{color:var(--tplane-chat-text-muted)}chat-streaming-md li>p{margin:0 0 .25rem}chat-streaming-md li>ul,chat-streaming-md li>ol{margin:.25rem 0 0}chat-streaming-md li:has(>input[type=checkbox]){list-style:none;margin-left:-1.25rem}chat-streaming-md li>input[type=checkbox]{margin-right:.5rem;vertical-align:middle}chat-streaming-md code{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);padding:1px 5px;border-radius:4px;font-family:var(--tplane-chat-font-mono);font-size:.9em}chat-streaming-md pre{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);padding:12px 14px;border-radius:var(--tplane-chat-radius-card);overflow-x:auto;font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-sm);line-height:1.5;margin:0 0 .75rem}chat-streaming-md pre code{background:transparent;padding:0;border-radius:0;font-size:inherit}chat-streaming-md blockquote{border-left:3px solid var(--tplane-chat-separator);padding:.25rem 0 .25rem 12px;margin:0 0 .75rem;color:var(--tplane-chat-text-muted)}chat-streaming-md blockquote>:last-child{margin-bottom:0}chat-streaming-md hr{border:none;border-top:1px solid var(--tplane-chat-separator);margin:1rem 0}chat-streaming-md table{border-collapse:collapse;margin:0 0 .75rem;width:100%;font-size:.95em}chat-streaming-md thead{background:var(--tplane-chat-surface-alt)}chat-streaming-md th,chat-streaming-md td{border:1px solid var(--tplane-chat-separator);padding:6px 10px;text-align:left;vertical-align:top}chat-streaming-md th{font-weight:600}chat-streaming-md chat-md-table{display:block;overflow-x:auto;max-width:100%;margin:0 0 .75rem}chat-streaming-md chat-md-table-row{display:contents}chat-streaming-md chat-md-table-cell{display:contents}chat-streaming-md chat-md-table>table{margin:0}chat-streaming-md li.chat-md-list-item--task{list-style:none;margin-left:-1.25rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}chat-streaming-md li.chat-md-list-item--task>input[type=checkbox]{margin:0;flex:0 0 auto;transform:translateY(2px)}chat-streaming-md li.chat-md-list-item--task>chat-md-children{flex:1 1 auto;min-width:0}chat-streaming-md li.chat-md-list-item--task>chat-md-children>chat-md-paragraph:first-child>p{margin:0}chat-streaming-md img{max-width:100%;height:auto;border-radius:6px}chat-streaming-md .chat-md-image--broken{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;background:var(--tplane-chat-surface-alt);border:1px dashed var(--tplane-chat-separator);border-radius:6px;font-size:.9em;color:var(--tplane-chat-text-muted, currentColor);opacity:.85}chat-streaming-md .chat-md-image__icon{font-size:1em;line-height:1}chat-streaming-md .chat-md-image__alt{font-style:italic}chat-streaming-md .chat-md-math--display{display:block;margin:.5em 0;overflow-x:auto}chat-streaming-md .chat-md-math--raw{font-family:var(--tplane-chat-font-mono, ui-monospace, monospace)}\n"], dependencies: [{ kind: "component", type: MarkdownChildrenComponent, selector: "chat-md-children", inputs: ["parent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2769
2821
  }
2770
2822
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatStreamingMdComponent, decorators: [{
2771
2823
  type: Component,
@@ -2779,7 +2831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2779
2831
  useFactory: (host) => host.resolvedRegistry(),
2780
2832
  deps: [ChatStreamingMdComponent],
2781
2833
  },
2782
- ], styles: ["chat-streaming-md{display:block;color:var(--ngaf-chat-text);line-height:var(--ngaf-chat-line-height)}chat-streaming-md h1,chat-streaming-md h2,chat-streaming-md h3,chat-streaming-md h4,chat-streaming-md h5,chat-streaming-md h6{font-weight:600;line-height:1.25;margin:1.25rem 0 .75rem}chat-streaming-md h1:first-child,chat-streaming-md h2:first-child,chat-streaming-md h3:first-child,chat-streaming-md h4:first-child,chat-streaming-md h5:first-child,chat-streaming-md h6:first-child{margin-top:0}chat-streaming-md h1{font-size:1.5em;font-weight:700}chat-streaming-md h2{font-size:1.25em}chat-streaming-md h3{font-size:1.1em}chat-streaming-md h4{font-size:1em}chat-streaming-md h5,chat-streaming-md h6{font-size:.95em;color:var(--ngaf-chat-text-muted)}chat-streaming-md p{margin:0 0 .75rem;line-height:1.6;font-size:var(--ngaf-chat-font-size)}chat-streaming-md p:last-child{margin-bottom:0}chat-streaming-md strong,chat-streaming-md b{font-weight:700}chat-streaming-md em,chat-streaming-md i{font-style:italic}chat-streaming-md del,chat-streaming-md s{text-decoration:line-through;color:var(--ngaf-chat-text-muted)}chat-streaming-md mark{background:var(--ngaf-chat-surface-alt);padding:0 2px;border-radius:2px}chat-streaming-md sub{font-size:.75em;vertical-align:sub}chat-streaming-md sup{font-size:.75em;vertical-align:super}chat-streaming-md a{color:var(--ngaf-chat-primary);text-decoration:underline;text-underline-offset:2px}chat-streaming-md a:hover{text-decoration-thickness:2px}chat-streaming-md ul,chat-streaming-md ol{margin:0 0 .75rem;padding-left:1.5rem}chat-streaming-md ul{list-style:disc outside}chat-streaming-md ol{list-style:decimal outside}chat-streaming-md ul ul{list-style:circle outside}chat-streaming-md ul ul ul{list-style:square outside}chat-streaming-md li{margin:.2rem 0}chat-streaming-md li::marker{color:var(--ngaf-chat-text-muted)}chat-streaming-md li>p{margin:0 0 .25rem}chat-streaming-md li>ul,chat-streaming-md li>ol{margin:.25rem 0 0}chat-streaming-md li:has(>input[type=checkbox]){list-style:none;margin-left:-1.25rem}chat-streaming-md li>input[type=checkbox]{margin-right:.5rem;vertical-align:middle}chat-streaming-md code{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);padding:1px 5px;border-radius:4px;font-family:var(--ngaf-chat-font-mono);font-size:.9em}chat-streaming-md pre{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);padding:12px 14px;border-radius:var(--ngaf-chat-radius-card);overflow-x:auto;font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-sm);line-height:1.5;margin:0 0 .75rem}chat-streaming-md pre code{background:transparent;padding:0;border-radius:0;font-size:inherit}chat-streaming-md blockquote{border-left:3px solid var(--ngaf-chat-separator);padding:.25rem 0 .25rem 12px;margin:0 0 .75rem;color:var(--ngaf-chat-text-muted)}chat-streaming-md blockquote>:last-child{margin-bottom:0}chat-streaming-md hr{border:none;border-top:1px solid var(--ngaf-chat-separator);margin:1rem 0}chat-streaming-md table{border-collapse:collapse;margin:0 0 .75rem;width:100%;font-size:.95em}chat-streaming-md thead{background:var(--ngaf-chat-surface-alt)}chat-streaming-md th,chat-streaming-md td{border:1px solid var(--ngaf-chat-separator);padding:6px 10px;text-align:left;vertical-align:top}chat-streaming-md th{font-weight:600}chat-streaming-md chat-md-table{display:block;overflow-x:auto;max-width:100%;margin:0 0 .75rem}chat-streaming-md chat-md-table-row{display:contents}chat-streaming-md chat-md-table-cell{display:contents}chat-streaming-md chat-md-table>table{margin:0}chat-streaming-md li.chat-md-list-item--task{list-style:none;margin-left:-1.25rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}chat-streaming-md li.chat-md-list-item--task>input[type=checkbox]{margin:0;flex:0 0 auto;transform:translateY(2px)}chat-streaming-md li.chat-md-list-item--task>chat-md-children{flex:1 1 auto;min-width:0}chat-streaming-md li.chat-md-list-item--task>chat-md-children>chat-md-paragraph:first-child>p{margin:0}chat-streaming-md img{max-width:100%;height:auto;border-radius:6px}chat-streaming-md .chat-md-image--broken{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;background:var(--ngaf-chat-surface-alt);border:1px dashed var(--ngaf-chat-separator);border-radius:6px;font-size:.9em;color:var(--ngaf-chat-text-muted, currentColor);opacity:.85}chat-streaming-md .chat-md-image__icon{font-size:1em;line-height:1}chat-streaming-md .chat-md-image__alt{font-style:italic}chat-streaming-md .chat-md-math--display{display:block;margin:.5em 0;overflow-x:auto}chat-streaming-md .chat-md-math--raw{font-family:var(--ngaf-chat-font-mono, ui-monospace, monospace)}\n"] }]
2834
+ ], styles: ["chat-streaming-md{display:block;color:var(--tplane-chat-text);line-height:var(--tplane-chat-line-height)}chat-streaming-md h1,chat-streaming-md h2,chat-streaming-md h3,chat-streaming-md h4,chat-streaming-md h5,chat-streaming-md h6{font-weight:600;line-height:1.25;margin:1.25rem 0 .75rem}chat-streaming-md h1:first-child,chat-streaming-md h2:first-child,chat-streaming-md h3:first-child,chat-streaming-md h4:first-child,chat-streaming-md h5:first-child,chat-streaming-md h6:first-child{margin-top:0}chat-streaming-md h1{font-size:1.5em;font-weight:700}chat-streaming-md h2{font-size:1.25em}chat-streaming-md h3{font-size:1.1em}chat-streaming-md h4{font-size:1em}chat-streaming-md h5,chat-streaming-md h6{font-size:.95em;color:var(--tplane-chat-text-muted)}chat-streaming-md p{margin:0 0 .75rem;line-height:1.6;font-size:var(--tplane-chat-font-size)}chat-streaming-md p:last-child{margin-bottom:0}chat-streaming-md strong,chat-streaming-md b{font-weight:700}chat-streaming-md em,chat-streaming-md i{font-style:italic}chat-streaming-md del,chat-streaming-md s{text-decoration:line-through;color:var(--tplane-chat-text-muted)}chat-streaming-md mark{background:var(--tplane-chat-surface-alt);padding:0 2px;border-radius:2px}chat-streaming-md sub{font-size:.75em;vertical-align:sub}chat-streaming-md sup{font-size:.75em;vertical-align:super}chat-streaming-md a{color:var(--tplane-chat-primary);text-decoration:underline;text-underline-offset:2px}chat-streaming-md a:hover{text-decoration-thickness:2px}chat-streaming-md ul,chat-streaming-md ol{margin:0 0 .75rem;padding-left:1.5rem}chat-streaming-md ul{list-style:disc outside}chat-streaming-md ol{list-style:decimal outside}chat-streaming-md ul ul{list-style:circle outside}chat-streaming-md ul ul ul{list-style:square outside}chat-streaming-md li{margin:.2rem 0}chat-streaming-md li::marker{color:var(--tplane-chat-text-muted)}chat-streaming-md li>p{margin:0 0 .25rem}chat-streaming-md li>ul,chat-streaming-md li>ol{margin:.25rem 0 0}chat-streaming-md li:has(>input[type=checkbox]){list-style:none;margin-left:-1.25rem}chat-streaming-md li>input[type=checkbox]{margin-right:.5rem;vertical-align:middle}chat-streaming-md code{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);padding:1px 5px;border-radius:4px;font-family:var(--tplane-chat-font-mono);font-size:.9em}chat-streaming-md pre{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);padding:12px 14px;border-radius:var(--tplane-chat-radius-card);overflow-x:auto;font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-sm);line-height:1.5;margin:0 0 .75rem}chat-streaming-md pre code{background:transparent;padding:0;border-radius:0;font-size:inherit}chat-streaming-md blockquote{border-left:3px solid var(--tplane-chat-separator);padding:.25rem 0 .25rem 12px;margin:0 0 .75rem;color:var(--tplane-chat-text-muted)}chat-streaming-md blockquote>:last-child{margin-bottom:0}chat-streaming-md hr{border:none;border-top:1px solid var(--tplane-chat-separator);margin:1rem 0}chat-streaming-md table{border-collapse:collapse;margin:0 0 .75rem;width:100%;font-size:.95em}chat-streaming-md thead{background:var(--tplane-chat-surface-alt)}chat-streaming-md th,chat-streaming-md td{border:1px solid var(--tplane-chat-separator);padding:6px 10px;text-align:left;vertical-align:top}chat-streaming-md th{font-weight:600}chat-streaming-md chat-md-table{display:block;overflow-x:auto;max-width:100%;margin:0 0 .75rem}chat-streaming-md chat-md-table-row{display:contents}chat-streaming-md chat-md-table-cell{display:contents}chat-streaming-md chat-md-table>table{margin:0}chat-streaming-md li.chat-md-list-item--task{list-style:none;margin-left:-1.25rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}chat-streaming-md li.chat-md-list-item--task>input[type=checkbox]{margin:0;flex:0 0 auto;transform:translateY(2px)}chat-streaming-md li.chat-md-list-item--task>chat-md-children{flex:1 1 auto;min-width:0}chat-streaming-md li.chat-md-list-item--task>chat-md-children>chat-md-paragraph:first-child>p{margin:0}chat-streaming-md img{max-width:100%;height:auto;border-radius:6px}chat-streaming-md .chat-md-image--broken{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;background:var(--tplane-chat-surface-alt);border:1px dashed var(--tplane-chat-separator);border-radius:6px;font-size:.9em;color:var(--tplane-chat-text-muted, currentColor);opacity:.85}chat-streaming-md .chat-md-image__icon{font-size:1em;line-height:1}chat-streaming-md .chat-md-image__alt{font-style:italic}chat-streaming-md .chat-md-math--display{display:block;margin:.5em 0;overflow-x:auto}chat-streaming-md .chat-md-math--raw{font-family:var(--tplane-chat-font-mono, ui-monospace, monospace)}\n"] }]
2783
2835
  }], ctorParameters: () => [], propDecorators: { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], streaming: [{ type: i0.Input, args: [{ isSignal: true, alias: "streaming", required: false }] }], viewRegistry: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewRegistry", required: false }] }] } });
2784
2836
 
2785
2837
  // SPDX-License-Identifier: MIT
@@ -2892,7 +2944,7 @@ class ChatReasoningComponent {
2892
2944
  <chat-streaming-md [content]="content()" [streaming]="isStreaming()" />
2893
2945
  </div>
2894
2946
  }
2895
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;margin:0 0 .5rem}:host([data-has-content=\"false\"]){display:none}.chat-reasoning__header{display:inline-flex;align-items:center;gap:.5rem;padding:4px 10px;background:var(--ngaf-chat-surface-alt);border:1px solid var(--ngaf-chat-separator);border-radius:9999px;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-xs);font-family:inherit;cursor:pointer;line-height:1.2}.chat-reasoning__header:hover{color:var(--ngaf-chat-text)}.chat-reasoning__chevron{width:10px;height:10px;transition:transform .12s ease}:host([data-expanded=\"true\"]) .chat-reasoning__chevron{transform:rotate(90deg)}.chat-reasoning__pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ngaf-chat-text-muted);animation:chat-reasoning-pulse 1.2s ease-in-out infinite}@keyframes chat-reasoning-pulse{0%,to{opacity:.3}50%{opacity:1}}.chat-reasoning__body{margin-top:.5rem;padding-left:12px;border-left:2px solid var(--ngaf-chat-separator);color:var(--ngaf-chat-text-muted)}.chat-reasoning__body chat-streaming-md{font-size:.95em}\n"], dependencies: [{ kind: "component", type: ChatStreamingMdComponent, selector: "chat-streaming-md", inputs: ["content", "streaming", "viewRegistry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2947
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;margin:0 0 .5rem}:host([data-has-content=\"false\"]){display:none}.chat-reasoning__header{display:inline-flex;align-items:center;gap:.5rem;padding:4px 10px;background:var(--tplane-chat-surface-alt);border:1px solid var(--tplane-chat-separator);border-radius:9999px;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-xs);font-family:inherit;cursor:pointer;line-height:1.2}.chat-reasoning__header:hover{color:var(--tplane-chat-text)}.chat-reasoning__chevron{width:10px;height:10px;transition:transform .12s ease}:host([data-expanded=\"true\"]) .chat-reasoning__chevron{transform:rotate(90deg)}.chat-reasoning__pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--tplane-chat-text-muted);animation:chat-reasoning-pulse 1.2s ease-in-out infinite}@keyframes chat-reasoning-pulse{0%,to{opacity:.3}50%{opacity:1}}.chat-reasoning__body{margin-top:.5rem;padding-left:12px;border-left:2px solid var(--tplane-chat-separator);color:var(--tplane-chat-text-muted)}.chat-reasoning__body chat-streaming-md{font-size:.95em}\n"], dependencies: [{ kind: "component", type: ChatStreamingMdComponent, selector: "chat-streaming-md", inputs: ["content", "streaming", "viewRegistry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2896
2948
  }
2897
2949
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatReasoningComponent, decorators: [{
2898
2950
  type: Component,
@@ -2920,7 +2972,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2920
2972
  <chat-streaming-md [content]="content()" [streaming]="isStreaming()" />
2921
2973
  </div>
2922
2974
  }
2923
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;margin:0 0 .5rem}:host([data-has-content=\"false\"]){display:none}.chat-reasoning__header{display:inline-flex;align-items:center;gap:.5rem;padding:4px 10px;background:var(--ngaf-chat-surface-alt);border:1px solid var(--ngaf-chat-separator);border-radius:9999px;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-xs);font-family:inherit;cursor:pointer;line-height:1.2}.chat-reasoning__header:hover{color:var(--ngaf-chat-text)}.chat-reasoning__chevron{width:10px;height:10px;transition:transform .12s ease}:host([data-expanded=\"true\"]) .chat-reasoning__chevron{transform:rotate(90deg)}.chat-reasoning__pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ngaf-chat-text-muted);animation:chat-reasoning-pulse 1.2s ease-in-out infinite}@keyframes chat-reasoning-pulse{0%,to{opacity:.3}50%{opacity:1}}.chat-reasoning__body{margin-top:.5rem;padding-left:12px;border-left:2px solid var(--ngaf-chat-separator);color:var(--ngaf-chat-text-muted)}.chat-reasoning__body chat-streaming-md{font-size:.95em}\n"] }]
2975
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;margin:0 0 .5rem}:host([data-has-content=\"false\"]){display:none}.chat-reasoning__header{display:inline-flex;align-items:center;gap:.5rem;padding:4px 10px;background:var(--tplane-chat-surface-alt);border:1px solid var(--tplane-chat-separator);border-radius:9999px;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-xs);font-family:inherit;cursor:pointer;line-height:1.2}.chat-reasoning__header:hover{color:var(--tplane-chat-text)}.chat-reasoning__chevron{width:10px;height:10px;transition:transform .12s ease}:host([data-expanded=\"true\"]) .chat-reasoning__chevron{transform:rotate(90deg)}.chat-reasoning__pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--tplane-chat-text-muted);animation:chat-reasoning-pulse 1.2s ease-in-out infinite}@keyframes chat-reasoning-pulse{0%,to{opacity:.3}50%{opacity:1}}.chat-reasoning__body{margin-top:.5rem;padding-left:12px;border-left:2px solid var(--tplane-chat-separator);color:var(--tplane-chat-text-muted)}.chat-reasoning__body chat-streaming-md{font-size:.95em}\n"] }]
2924
2976
  }], ctorParameters: () => [], propDecorators: { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], isStreaming: [{ type: i0.Input, args: [{ isSignal: true, alias: "isStreaming", required: false }] }], durationMs: [{ type: i0.Input, args: [{ isSignal: true, alias: "durationMs", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], defaultExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultExpanded", required: false }] }] } });
2925
2977
 
2926
2978
  // libs/chat/src/lib/styles/chat-launcher-button.styles.ts
@@ -2930,15 +2982,15 @@ const CHAT_LAUNCHER_BUTTON_STYLES = `
2930
2982
  .chat-launcher-button {
2931
2983
  width: 56px;
2932
2984
  height: 56px;
2933
- border-radius: var(--ngaf-chat-radius-launcher);
2934
- background: var(--ngaf-chat-primary);
2935
- color: var(--ngaf-chat-on-primary);
2985
+ border-radius: var(--tplane-chat-radius-launcher);
2986
+ background: var(--tplane-chat-primary);
2987
+ color: var(--tplane-chat-on-primary);
2936
2988
  border: 0;
2937
2989
  cursor: pointer;
2938
2990
  display: flex;
2939
2991
  align-items: center;
2940
2992
  justify-content: center;
2941
- box-shadow: var(--ngaf-chat-shadow-md);
2993
+ box-shadow: var(--tplane-chat-shadow-md);
2942
2994
  transition: transform 200ms ease;
2943
2995
  }
2944
2996
  .chat-launcher-button:hover { transform: scale(1.05); }
@@ -2961,7 +3013,7 @@ class ChatLauncherButtonComponent {
2961
3013
  <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
2962
3014
  </svg>
2963
3015
  </button>
2964
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:inline-block}.chat-launcher-button{width:56px;height:56px;border-radius:var(--ngaf-chat-radius-launcher);background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--ngaf-chat-shadow-md);transition:transform .2s ease}.chat-launcher-button:hover{transform:scale(1.05)}.chat-launcher-button svg{width:24px;height:24px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3016
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:inline-block}.chat-launcher-button{width:56px;height:56px;border-radius:var(--tplane-chat-radius-launcher);background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--tplane-chat-shadow-md);transition:transform .2s ease}.chat-launcher-button:hover{transform:scale(1.05)}.chat-launcher-button svg{width:24px;height:24px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2965
3017
  }
2966
3018
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatLauncherButtonComponent, decorators: [{
2967
3019
  type: Component,
@@ -2971,7 +3023,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2971
3023
  <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
2972
3024
  </svg>
2973
3025
  </button>
2974
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:inline-block}.chat-launcher-button{width:56px;height:56px;border-radius:var(--ngaf-chat-radius-launcher);background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--ngaf-chat-shadow-md);transition:transform .2s ease}.chat-launcher-button:hover{transform:scale(1.05)}.chat-launcher-button svg{width:24px;height:24px}\n"] }]
3026
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:inline-block}.chat-launcher-button{width:56px;height:56px;border-radius:var(--tplane-chat-radius-launcher);background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--tplane-chat-shadow-md);transition:transform .2s ease}.chat-launcher-button:hover{transform:scale(1.05)}.chat-launcher-button svg{width:24px;height:24px}\n"] }]
2975
3027
  }], propDecorators: { clicked: [{ type: i0.Output, args: ["clicked"] }] } });
2976
3028
 
2977
3029
  // SPDX-License-Identifier: MIT
@@ -2980,11 +3032,11 @@ const CHAT_SUGGESTIONS_STYLES = `
2980
3032
  .chat-suggestions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
2981
3033
  .chat-suggestion {
2982
3034
  padding: 6px 10px;
2983
- font-size: var(--ngaf-chat-font-size-xs);
2984
- border-radius: var(--ngaf-chat-radius-bubble);
2985
- border: 1px solid var(--ngaf-chat-muted);
3035
+ font-size: var(--tplane-chat-font-size-xs);
3036
+ border-radius: var(--tplane-chat-radius-bubble);
3037
+ border: 1px solid var(--tplane-chat-muted);
2986
3038
  background: transparent;
2987
- color: var(--ngaf-chat-text);
3039
+ color: var(--tplane-chat-text);
2988
3040
  cursor: pointer;
2989
3041
  transition: transform 200ms ease;
2990
3042
  }
@@ -3003,7 +3055,7 @@ class ChatSuggestionsComponent {
3003
3055
  <button type="button" class="chat-suggestion" (click)="selected.emit(s)">{{ s }}</button>
3004
3056
  }
3005
3057
  </div>
3006
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chat-suggestion{padding:6px 10px;font-size:var(--ngaf-chat-font-size-xs);border-radius:var(--ngaf-chat-radius-bubble);border:1px solid var(--ngaf-chat-muted);background:transparent;color:var(--ngaf-chat-text);cursor:pointer;transition:transform .2s ease}.chat-suggestion:hover{transform:scale(1.03)}.chat-suggestion:disabled{cursor:wait;opacity:.6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3058
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chat-suggestion{padding:6px 10px;font-size:var(--tplane-chat-font-size-xs);border-radius:var(--tplane-chat-radius-bubble);border:1px solid var(--tplane-chat-muted);background:transparent;color:var(--tplane-chat-text);cursor:pointer;transition:transform .2s ease}.chat-suggestion:hover{transform:scale(1.03)}.chat-suggestion:disabled{cursor:wait;opacity:.6}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3007
3059
  }
3008
3060
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSuggestionsComponent, decorators: [{
3009
3061
  type: Component,
@@ -3013,7 +3065,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3013
3065
  <button type="button" class="chat-suggestion" (click)="selected.emit(s)">{{ s }}</button>
3014
3066
  }
3015
3067
  </div>
3016
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chat-suggestion{padding:6px 10px;font-size:var(--ngaf-chat-font-size-xs);border-radius:var(--ngaf-chat-radius-bubble);border:1px solid var(--ngaf-chat-muted);background:transparent;color:var(--ngaf-chat-text);cursor:pointer;transition:transform .2s ease}.chat-suggestion:hover{transform:scale(1.03)}.chat-suggestion:disabled{cursor:wait;opacity:.6}\n"] }]
3068
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chat-suggestion{padding:6px 10px;font-size:var(--tplane-chat-font-size-xs);border-radius:var(--tplane-chat-radius-bubble);border:1px solid var(--tplane-chat-muted);background:transparent;color:var(--tplane-chat-text);cursor:pointer;transition:transform .2s ease}.chat-suggestion:hover{transform:scale(1.03)}.chat-suggestion:disabled{cursor:wait;opacity:.6}\n"] }]
3017
3069
  }], propDecorators: { suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
3018
3070
 
3019
3071
  // libs/chat/src/lib/styles/chat-input.styles.ts
@@ -3022,13 +3074,13 @@ const CHAT_INPUT_STYLES = `
3022
3074
  :host {
3023
3075
  display: block;
3024
3076
  width: 100%;
3025
- padding: 0 var(--ngaf-chat-edge-pad);
3077
+ padding: 0 var(--tplane-chat-edge-pad);
3026
3078
  box-sizing: border-box;
3027
3079
  }
3028
3080
 
3029
3081
  .chat-input__container {
3030
3082
  width: 100%;
3031
- max-width: var(--ngaf-chat-max-width);
3083
+ max-width: var(--tplane-chat-max-width);
3032
3084
  margin: 0 auto;
3033
3085
  }
3034
3086
 
@@ -3036,8 +3088,8 @@ const CHAT_INPUT_STYLES = `
3036
3088
  display: flex;
3037
3089
  align-items: center;
3038
3090
  gap: 8px;
3039
- background: var(--ngaf-chat-surface);
3040
- border: 1px solid var(--ngaf-chat-separator);
3091
+ background: var(--tplane-chat-surface);
3092
+ border: 1px solid var(--tplane-chat-separator);
3041
3093
  border-radius: 9999px;
3042
3094
  padding: 8px 8px 8px 16px;
3043
3095
  min-height: 56px;
@@ -3050,7 +3102,7 @@ const CHAT_INPUT_STYLES = `
3050
3102
  outline: none;
3051
3103
  resize: none;
3052
3104
  background: transparent;
3053
- color: var(--ngaf-chat-text);
3105
+ color: var(--tplane-chat-text);
3054
3106
  font: inherit;
3055
3107
  font-size: 1rem;
3056
3108
  line-height: 1.5;
@@ -3058,9 +3110,9 @@ const CHAT_INPUT_STYLES = `
3058
3110
  field-sizing: content;
3059
3111
  overflow-y: auto;
3060
3112
  }
3061
- .chat-input__textarea::placeholder { color: var(--ngaf-chat-text-muted); }
3113
+ .chat-input__textarea::placeholder { color: var(--tplane-chat-text-muted); }
3062
3114
  .chat-input__textarea::-webkit-scrollbar { width: 4px; }
3063
- .chat-input__textarea::-webkit-scrollbar-thumb { background: var(--ngaf-chat-separator); border-radius: 4px; }
3115
+ .chat-input__textarea::-webkit-scrollbar-thumb { background: var(--tplane-chat-separator); border-radius: 4px; }
3064
3116
 
3065
3117
  .chat-input__controls {
3066
3118
  display: flex;
@@ -3083,20 +3135,20 @@ const CHAT_INPUT_STYLES = `
3083
3135
  padding: 0;
3084
3136
  }
3085
3137
  .chat-input__send {
3086
- background: var(--ngaf-chat-text);
3087
- color: var(--ngaf-chat-bg);
3138
+ background: var(--tplane-chat-text);
3139
+ color: var(--tplane-chat-bg);
3088
3140
  }
3089
3141
  .chat-input__send:disabled {
3090
3142
  opacity: 0.35;
3091
3143
  cursor: not-allowed;
3092
- background: var(--ngaf-chat-text-muted);
3144
+ background: var(--tplane-chat-text-muted);
3093
3145
  }
3094
3146
  .chat-input__send:not(:disabled):hover { transform: scale(1.05); }
3095
3147
  .chat-input__send svg { width: 16px; height: 16px; }
3096
3148
 
3097
3149
  .chat-input__send--stop {
3098
- background: var(--ngaf-chat-text-muted);
3099
- color: var(--ngaf-chat-bg);
3150
+ background: var(--tplane-chat-text-muted);
3151
+ color: var(--tplane-chat-bg);
3100
3152
  }
3101
3153
  .chat-input__send--stop:hover { transform: scale(1.05); }
3102
3154
  .chat-input__send--stop svg { width: 14px; height: 14px; }
@@ -3256,7 +3308,7 @@ class ChatInputComponent {
3256
3308
  </div>
3257
3309
  <ng-content select="[chatInputFooter]" />
3258
3310
  </div>
3259
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;width:100%;padding:0 var(--ngaf-chat-edge-pad);box-sizing:border-box}.chat-input__container{width:100%;max-width:var(--ngaf-chat-max-width);margin:0 auto}.chat-input__pill{display:flex;align-items:center;gap:8px;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);border-radius:9999px;padding:8px 8px 8px 16px;min-height:56px;box-sizing:border-box}.chat-input__textarea{flex:1 1 auto;border:0;outline:none;resize:none;background:transparent;color:var(--ngaf-chat-text);font:inherit;font-size:1rem;line-height:1.5;padding:0;field-sizing:content;overflow-y:auto}.chat-input__textarea::placeholder{color:var(--ngaf-chat-text-muted)}.chat-input__textarea::-webkit-scrollbar{width:4px}.chat-input__textarea::-webkit-scrollbar-thumb{background:var(--ngaf-chat-separator);border-radius:4px}.chat-input__controls{display:flex;align-items:center;gap:4px;flex:none}.chat-input__send,.chat-input__send--stop{width:36px;height:36px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s ease,transform .15s ease,background .15s ease;padding:0}.chat-input__send{background:var(--ngaf-chat-text);color:var(--ngaf-chat-bg)}.chat-input__send:disabled{opacity:.35;cursor:not-allowed;background:var(--ngaf-chat-text-muted)}.chat-input__send:not(:disabled):hover{transform:scale(1.05)}.chat-input__send svg{width:16px;height:16px}.chat-input__send--stop{background:var(--ngaf-chat-text-muted);color:var(--ngaf-chat-bg)}.chat-input__send--stop:hover{transform:scale(1.05)}.chat-input__send--stop svg{width:14px;height:14px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3311
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;width:100%;padding:0 var(--tplane-chat-edge-pad);box-sizing:border-box}.chat-input__container{width:100%;max-width:var(--tplane-chat-max-width);margin:0 auto}.chat-input__pill{display:flex;align-items:center;gap:8px;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);border-radius:9999px;padding:8px 8px 8px 16px;min-height:56px;box-sizing:border-box}.chat-input__textarea{flex:1 1 auto;border:0;outline:none;resize:none;background:transparent;color:var(--tplane-chat-text);font:inherit;font-size:1rem;line-height:1.5;padding:0;field-sizing:content;overflow-y:auto}.chat-input__textarea::placeholder{color:var(--tplane-chat-text-muted)}.chat-input__textarea::-webkit-scrollbar{width:4px}.chat-input__textarea::-webkit-scrollbar-thumb{background:var(--tplane-chat-separator);border-radius:4px}.chat-input__controls{display:flex;align-items:center;gap:4px;flex:none}.chat-input__send,.chat-input__send--stop{width:36px;height:36px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s ease,transform .15s ease,background .15s ease;padding:0}.chat-input__send{background:var(--tplane-chat-text);color:var(--tplane-chat-bg)}.chat-input__send:disabled{opacity:.35;cursor:not-allowed;background:var(--tplane-chat-text-muted)}.chat-input__send:not(:disabled):hover{transform:scale(1.05)}.chat-input__send svg{width:16px;height:16px}.chat-input__send--stop{background:var(--tplane-chat-text-muted);color:var(--tplane-chat-bg)}.chat-input__send--stop:hover{transform:scale(1.05)}.chat-input__send--stop svg{width:14px;height:14px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3260
3312
  }
3261
3313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatInputComponent, decorators: [{
3262
3314
  type: Component,
@@ -3314,7 +3366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3314
3366
  </div>
3315
3367
  <ng-content select="[chatInputFooter]" />
3316
3368
  </div>
3317
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;width:100%;padding:0 var(--ngaf-chat-edge-pad);box-sizing:border-box}.chat-input__container{width:100%;max-width:var(--ngaf-chat-max-width);margin:0 auto}.chat-input__pill{display:flex;align-items:center;gap:8px;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);border-radius:9999px;padding:8px 8px 8px 16px;min-height:56px;box-sizing:border-box}.chat-input__textarea{flex:1 1 auto;border:0;outline:none;resize:none;background:transparent;color:var(--ngaf-chat-text);font:inherit;font-size:1rem;line-height:1.5;padding:0;field-sizing:content;overflow-y:auto}.chat-input__textarea::placeholder{color:var(--ngaf-chat-text-muted)}.chat-input__textarea::-webkit-scrollbar{width:4px}.chat-input__textarea::-webkit-scrollbar-thumb{background:var(--ngaf-chat-separator);border-radius:4px}.chat-input__controls{display:flex;align-items:center;gap:4px;flex:none}.chat-input__send,.chat-input__send--stop{width:36px;height:36px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s ease,transform .15s ease,background .15s ease;padding:0}.chat-input__send{background:var(--ngaf-chat-text);color:var(--ngaf-chat-bg)}.chat-input__send:disabled{opacity:.35;cursor:not-allowed;background:var(--ngaf-chat-text-muted)}.chat-input__send:not(:disabled):hover{transform:scale(1.05)}.chat-input__send svg{width:16px;height:16px}.chat-input__send--stop{background:var(--ngaf-chat-text-muted);color:var(--ngaf-chat-bg)}.chat-input__send--stop:hover{transform:scale(1.05)}.chat-input__send--stop svg{width:14px;height:14px}\n"] }]
3369
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;width:100%;padding:0 var(--tplane-chat-edge-pad);box-sizing:border-box}.chat-input__container{width:100%;max-width:var(--tplane-chat-max-width);margin:0 auto}.chat-input__pill{display:flex;align-items:center;gap:8px;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);border-radius:9999px;padding:8px 8px 8px 16px;min-height:56px;box-sizing:border-box}.chat-input__textarea{flex:1 1 auto;border:0;outline:none;resize:none;background:transparent;color:var(--tplane-chat-text);font:inherit;font-size:1rem;line-height:1.5;padding:0;field-sizing:content;overflow-y:auto}.chat-input__textarea::placeholder{color:var(--tplane-chat-text-muted)}.chat-input__textarea::-webkit-scrollbar{width:4px}.chat-input__textarea::-webkit-scrollbar-thumb{background:var(--tplane-chat-separator);border-radius:4px}.chat-input__controls{display:flex;align-items:center;gap:4px;flex:none}.chat-input__send,.chat-input__send--stop{width:36px;height:36px;border-radius:50%;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s ease,transform .15s ease,background .15s ease;padding:0}.chat-input__send{background:var(--tplane-chat-text);color:var(--tplane-chat-bg)}.chat-input__send:disabled{opacity:.35;cursor:not-allowed;background:var(--tplane-chat-text-muted)}.chat-input__send:not(:disabled):hover{transform:scale(1.05)}.chat-input__send svg{width:16px;height:16px}.chat-input__send--stop{background:var(--tplane-chat-text-muted);color:var(--tplane-chat-bg)}.chat-input__send--stop:hover{transform:scale(1.05)}.chat-input__send--stop svg{width:14px;height:14px}\n"] }]
3318
3370
  }], ctorParameters: () => [], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], submitOnEnter: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitOnEnter", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], showStopButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showStopButton", required: false }] }], submitted: [{ type: i0.Output, args: ["submitted"] }], stopped: [{ type: i0.Output, args: ["stopped"] }], textareaEl: [{ type: i0.ViewChild, args: ['textareaEl', { isSignal: true }] }] } });
3319
3371
 
3320
3372
  // SPDX-License-Identifier: MIT
@@ -3324,8 +3376,8 @@ const CHAT_TYPING_INDICATOR_STYLES = `
3324
3376
  message renders. */
3325
3377
  :host {
3326
3378
  display: block;
3327
- padding: 0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-3);
3328
- max-width: var(--ngaf-chat-max-width);
3379
+ padding: 0 var(--tplane-chat-space-6) var(--tplane-chat-space-3);
3380
+ max-width: var(--tplane-chat-max-width);
3329
3381
  margin: 0 auto;
3330
3382
  width: 100%;
3331
3383
  box-sizing: border-box;
@@ -3335,8 +3387,8 @@ const CHAT_TYPING_INDICATOR_STYLES = `
3335
3387
  width: 6px;
3336
3388
  height: 6px;
3337
3389
  border-radius: 50%;
3338
- background: var(--ngaf-chat-text-muted);
3339
- animation: ngaf-chat-typing-dot 1.4s ease-in-out infinite both;
3390
+ background: var(--tplane-chat-text-muted);
3391
+ animation: tplane-chat-typing-dot 1.4s ease-in-out infinite both;
3340
3392
  }
3341
3393
  .chat-typing__dot:nth-child(2) { animation-delay: 0.2s; }
3342
3394
  .chat-typing__dot:nth-child(3) { animation-delay: 0.4s; }
@@ -3384,7 +3436,7 @@ class ChatTypingIndicatorComponent {
3384
3436
  <span class="chat-typing__dot"></span>
3385
3437
  </div>
3386
3438
  }
3387
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-3);max-width:var(--ngaf-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}.chat-typing__dots{display:inline-flex;gap:4px;align-items:center}.chat-typing__dot{width:6px;height:6px;border-radius:50%;background:var(--ngaf-chat-text-muted);animation:ngaf-chat-typing-dot 1.4s ease-in-out infinite both}.chat-typing__dot:nth-child(2){animation-delay:.2s}.chat-typing__dot:nth-child(3){animation-delay:.4s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3439
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:0 var(--tplane-chat-space-6) var(--tplane-chat-space-3);max-width:var(--tplane-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}.chat-typing__dots{display:inline-flex;gap:4px;align-items:center}.chat-typing__dot{width:6px;height:6px;border-radius:50%;background:var(--tplane-chat-text-muted);animation:tplane-chat-typing-dot 1.4s ease-in-out infinite both}.chat-typing__dot:nth-child(2){animation-delay:.2s}.chat-typing__dot:nth-child(3){animation-delay:.4s}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3388
3440
  }
3389
3441
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatTypingIndicatorComponent, decorators: [{
3390
3442
  type: Component,
@@ -3396,7 +3448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3396
3448
  <span class="chat-typing__dot"></span>
3397
3449
  </div>
3398
3450
  }
3399
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-3);max-width:var(--ngaf-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}.chat-typing__dots{display:inline-flex;gap:4px;align-items:center}.chat-typing__dot{width:6px;height:6px;border-radius:50%;background:var(--ngaf-chat-text-muted);animation:ngaf-chat-typing-dot 1.4s ease-in-out infinite both}.chat-typing__dot:nth-child(2){animation-delay:.2s}.chat-typing__dot:nth-child(3){animation-delay:.4s}\n"] }]
3451
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:0 var(--tplane-chat-space-6) var(--tplane-chat-space-3);max-width:var(--tplane-chat-max-width);margin:0 auto;width:100%;box-sizing:border-box}.chat-typing__dots{display:inline-flex;gap:4px;align-items:center}.chat-typing__dot{width:6px;height:6px;border-radius:50%;background:var(--tplane-chat-text-muted);animation:tplane-chat-typing-dot 1.4s ease-in-out infinite both}.chat-typing__dot:nth-child(2){animation-delay:.2s}.chat-typing__dot:nth-child(3){animation-delay:.4s}\n"] }]
3400
3452
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }] } });
3401
3453
 
3402
3454
  // libs/chat/src/lib/styles/chat-history-search-palette.styles.ts
@@ -3407,7 +3459,7 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3407
3459
  position: fixed;
3408
3460
  inset: 0;
3409
3461
  background: rgba(0, 0, 0, 0.4);
3410
- z-index: var(--ngaf-chat-z-modal-scrim, 1100);
3462
+ z-index: var(--tplane-chat-z-modal-scrim, 1100);
3411
3463
  border: 0;
3412
3464
  padding: 0;
3413
3465
  cursor: pointer;
@@ -3419,11 +3471,11 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3419
3471
  transform: translateX(-50%);
3420
3472
  width: min(560px, 90vw);
3421
3473
  max-height: 70vh;
3422
- background: var(--ngaf-chat-bg);
3423
- border: 1px solid var(--ngaf-chat-separator);
3474
+ background: var(--tplane-chat-bg);
3475
+ border: 1px solid var(--tplane-chat-separator);
3424
3476
  border-radius: 12px;
3425
3477
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
3426
- z-index: var(--ngaf-chat-z-modal, 1101);
3478
+ z-index: var(--tplane-chat-z-modal, 1101);
3427
3479
  display: flex;
3428
3480
  flex-direction: column;
3429
3481
  overflow: hidden;
@@ -3433,12 +3485,12 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3433
3485
  align-items: center;
3434
3486
  gap: 8px;
3435
3487
  padding: 12px 16px;
3436
- border-bottom: 1px solid var(--ngaf-chat-separator);
3488
+ border-bottom: 1px solid var(--tplane-chat-separator);
3437
3489
  }
3438
3490
  .chat-history-search-palette__icon {
3439
3491
  width: 18px;
3440
3492
  height: 18px;
3441
- color: var(--ngaf-chat-text-muted);
3493
+ color: var(--tplane-chat-text-muted);
3442
3494
  flex-shrink: 0;
3443
3495
  }
3444
3496
  .chat-history-search-palette__input {
@@ -3446,22 +3498,22 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3446
3498
  border: 0;
3447
3499
  outline: none;
3448
3500
  background: transparent;
3449
- color: var(--ngaf-chat-text);
3501
+ color: var(--tplane-chat-text);
3450
3502
  font: inherit;
3451
3503
  font-size: 1rem;
3452
3504
  }
3453
3505
  .chat-history-search-palette__input::placeholder {
3454
- color: var(--ngaf-chat-text-muted);
3506
+ color: var(--tplane-chat-text-muted);
3455
3507
  }
3456
3508
  .chat-history-search-palette__close {
3457
3509
  background: transparent;
3458
3510
  border: 0;
3459
3511
  padding: 4px;
3460
- color: var(--ngaf-chat-text-muted);
3512
+ color: var(--tplane-chat-text-muted);
3461
3513
  cursor: pointer;
3462
3514
  border-radius: 4px;
3463
3515
  }
3464
- .chat-history-search-palette__close:hover { color: var(--ngaf-chat-text); }
3516
+ .chat-history-search-palette__close:hover { color: var(--tplane-chat-text); }
3465
3517
  .chat-history-search-palette__list {
3466
3518
  flex: 1 1 auto;
3467
3519
  overflow-y: auto;
@@ -3477,23 +3529,23 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3477
3529
  cursor: pointer;
3478
3530
  }
3479
3531
  .chat-history-search-palette__row[aria-selected="true"] {
3480
- background: var(--ngaf-chat-surface-alt);
3532
+ background: var(--tplane-chat-surface-alt);
3481
3533
  }
3482
3534
  .chat-history-search-palette__row-title {
3483
- color: var(--ngaf-chat-text);
3484
- font-size: var(--ngaf-chat-font-size);
3535
+ color: var(--tplane-chat-text);
3536
+ font-size: var(--tplane-chat-font-size);
3485
3537
  }
3486
3538
  .chat-history-search-palette__row-subtitle {
3487
- color: var(--ngaf-chat-text-muted);
3488
- font-size: var(--ngaf-chat-font-size-sm);
3539
+ color: var(--tplane-chat-text-muted);
3540
+ font-size: var(--tplane-chat-font-size-sm);
3489
3541
  margin-top: 2px;
3490
3542
  }
3491
3543
  .chat-history-search-palette__empty,
3492
3544
  .chat-history-search-palette__hint {
3493
3545
  padding: 24px 16px;
3494
- color: var(--ngaf-chat-text-muted);
3546
+ color: var(--tplane-chat-text-muted);
3495
3547
  text-align: center;
3496
- font-size: var(--ngaf-chat-font-size-sm);
3548
+ font-size: var(--tplane-chat-font-size-sm);
3497
3549
  }
3498
3550
  .chat-history-search-palette__skeleton {
3499
3551
  padding: 8px 4px;
@@ -3501,9 +3553,9 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3501
3553
  .chat-history-search-palette__skeleton-row {
3502
3554
  height: 36px;
3503
3555
  margin: 4px 0;
3504
- background: var(--ngaf-chat-surface-alt);
3556
+ background: var(--tplane-chat-surface-alt);
3505
3557
  border-radius: 8px;
3506
- animation: ngaf-chat-pulse 1.4s ease-in-out infinite;
3558
+ animation: tplane-chat-pulse 1.4s ease-in-out infinite;
3507
3559
  }
3508
3560
  `;
3509
3561
 
@@ -3656,7 +3708,7 @@ class ChatHistorySearchPaletteComponent {
3656
3708
  }
3657
3709
  </div>
3658
3710
  }
3659
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}.chat-history-search-palette__scrim{position:fixed;inset:0;background:#0006;z-index:var(--ngaf-chat-z-modal-scrim, 1100);border:0;padding:0;cursor:pointer}.chat-history-search-palette{position:fixed;top:15vh;left:50%;transform:translate(-50%);width:min(560px,90vw);max-height:70vh;background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040;z-index:var(--ngaf-chat-z-modal, 1101);display:flex;flex-direction:column;overflow:hidden}.chat-history-search-palette__input-row{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--ngaf-chat-separator)}.chat-history-search-palette__icon{width:18px;height:18px;color:var(--ngaf-chat-text-muted);flex-shrink:0}.chat-history-search-palette__input{flex:1 1 auto;border:0;outline:none;background:transparent;color:var(--ngaf-chat-text);font:inherit;font-size:1rem}.chat-history-search-palette__input::placeholder{color:var(--ngaf-chat-text-muted)}.chat-history-search-palette__close{background:transparent;border:0;padding:4px;color:var(--ngaf-chat-text-muted);cursor:pointer;border-radius:4px}.chat-history-search-palette__close:hover{color:var(--ngaf-chat-text)}.chat-history-search-palette__list{flex:1 1 auto;overflow-y:auto;padding:4px;margin:0;list-style:none}.chat-history-search-palette__row{display:flex;flex-direction:column;padding:10px 12px;border-radius:8px;cursor:pointer}.chat-history-search-palette__row[aria-selected=true]{background:var(--ngaf-chat-surface-alt)}.chat-history-search-palette__row-title{color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size)}.chat-history-search-palette__row-subtitle{color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm);margin-top:2px}.chat-history-search-palette__empty,.chat-history-search-palette__hint{padding:24px 16px;color:var(--ngaf-chat-text-muted);text-align:center;font-size:var(--ngaf-chat-font-size-sm)}.chat-history-search-palette__skeleton{padding:8px 4px}.chat-history-search-palette__skeleton-row{height:36px;margin:4px 0;background:var(--ngaf-chat-surface-alt);border-radius:8px;animation:ngaf-chat-pulse 1.4s ease-in-out infinite}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3711
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}.chat-history-search-palette__scrim{position:fixed;inset:0;background:#0006;z-index:var(--tplane-chat-z-modal-scrim, 1100);border:0;padding:0;cursor:pointer}.chat-history-search-palette{position:fixed;top:15vh;left:50%;transform:translate(-50%);width:min(560px,90vw);max-height:70vh;background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040;z-index:var(--tplane-chat-z-modal, 1101);display:flex;flex-direction:column;overflow:hidden}.chat-history-search-palette__input-row{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--tplane-chat-separator)}.chat-history-search-palette__icon{width:18px;height:18px;color:var(--tplane-chat-text-muted);flex-shrink:0}.chat-history-search-palette__input{flex:1 1 auto;border:0;outline:none;background:transparent;color:var(--tplane-chat-text);font:inherit;font-size:1rem}.chat-history-search-palette__input::placeholder{color:var(--tplane-chat-text-muted)}.chat-history-search-palette__close{background:transparent;border:0;padding:4px;color:var(--tplane-chat-text-muted);cursor:pointer;border-radius:4px}.chat-history-search-palette__close:hover{color:var(--tplane-chat-text)}.chat-history-search-palette__list{flex:1 1 auto;overflow-y:auto;padding:4px;margin:0;list-style:none}.chat-history-search-palette__row{display:flex;flex-direction:column;padding:10px 12px;border-radius:8px;cursor:pointer}.chat-history-search-palette__row[aria-selected=true]{background:var(--tplane-chat-surface-alt)}.chat-history-search-palette__row-title{color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size)}.chat-history-search-palette__row-subtitle{color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm);margin-top:2px}.chat-history-search-palette__empty,.chat-history-search-palette__hint{padding:24px 16px;color:var(--tplane-chat-text-muted);text-align:center;font-size:var(--tplane-chat-font-size-sm)}.chat-history-search-palette__skeleton{padding:8px 4px}.chat-history-search-palette__skeleton-row{height:36px;margin:4px 0;background:var(--tplane-chat-surface-alt);border-radius:8px;animation:tplane-chat-pulse 1.4s ease-in-out infinite}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3660
3712
  }
3661
3713
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatHistorySearchPaletteComponent, decorators: [{
3662
3714
  type: Component,
@@ -3738,7 +3790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3738
3790
  }
3739
3791
  </div>
3740
3792
  }
3741
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}.chat-history-search-palette__scrim{position:fixed;inset:0;background:#0006;z-index:var(--ngaf-chat-z-modal-scrim, 1100);border:0;padding:0;cursor:pointer}.chat-history-search-palette{position:fixed;top:15vh;left:50%;transform:translate(-50%);width:min(560px,90vw);max-height:70vh;background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040;z-index:var(--ngaf-chat-z-modal, 1101);display:flex;flex-direction:column;overflow:hidden}.chat-history-search-palette__input-row{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--ngaf-chat-separator)}.chat-history-search-palette__icon{width:18px;height:18px;color:var(--ngaf-chat-text-muted);flex-shrink:0}.chat-history-search-palette__input{flex:1 1 auto;border:0;outline:none;background:transparent;color:var(--ngaf-chat-text);font:inherit;font-size:1rem}.chat-history-search-palette__input::placeholder{color:var(--ngaf-chat-text-muted)}.chat-history-search-palette__close{background:transparent;border:0;padding:4px;color:var(--ngaf-chat-text-muted);cursor:pointer;border-radius:4px}.chat-history-search-palette__close:hover{color:var(--ngaf-chat-text)}.chat-history-search-palette__list{flex:1 1 auto;overflow-y:auto;padding:4px;margin:0;list-style:none}.chat-history-search-palette__row{display:flex;flex-direction:column;padding:10px 12px;border-radius:8px;cursor:pointer}.chat-history-search-palette__row[aria-selected=true]{background:var(--ngaf-chat-surface-alt)}.chat-history-search-palette__row-title{color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size)}.chat-history-search-palette__row-subtitle{color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm);margin-top:2px}.chat-history-search-palette__empty,.chat-history-search-palette__hint{padding:24px 16px;color:var(--ngaf-chat-text-muted);text-align:center;font-size:var(--ngaf-chat-font-size-sm)}.chat-history-search-palette__skeleton{padding:8px 4px}.chat-history-search-palette__skeleton-row{height:36px;margin:4px 0;background:var(--ngaf-chat-surface-alt);border-radius:8px;animation:ngaf-chat-pulse 1.4s ease-in-out infinite}\n"] }]
3793
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}.chat-history-search-palette__scrim{position:fixed;inset:0;background:#0006;z-index:var(--tplane-chat-z-modal-scrim, 1100);border:0;padding:0;cursor:pointer}.chat-history-search-palette{position:fixed;top:15vh;left:50%;transform:translate(-50%);width:min(560px,90vw);max-height:70vh;background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040;z-index:var(--tplane-chat-z-modal, 1101);display:flex;flex-direction:column;overflow:hidden}.chat-history-search-palette__input-row{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--tplane-chat-separator)}.chat-history-search-palette__icon{width:18px;height:18px;color:var(--tplane-chat-text-muted);flex-shrink:0}.chat-history-search-palette__input{flex:1 1 auto;border:0;outline:none;background:transparent;color:var(--tplane-chat-text);font:inherit;font-size:1rem}.chat-history-search-palette__input::placeholder{color:var(--tplane-chat-text-muted)}.chat-history-search-palette__close{background:transparent;border:0;padding:4px;color:var(--tplane-chat-text-muted);cursor:pointer;border-radius:4px}.chat-history-search-palette__close:hover{color:var(--tplane-chat-text)}.chat-history-search-palette__list{flex:1 1 auto;overflow-y:auto;padding:4px;margin:0;list-style:none}.chat-history-search-palette__row{display:flex;flex-direction:column;padding:10px 12px;border-radius:8px;cursor:pointer}.chat-history-search-palette__row[aria-selected=true]{background:var(--tplane-chat-surface-alt)}.chat-history-search-palette__row-title{color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size)}.chat-history-search-palette__row-subtitle{color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm);margin-top:2px}.chat-history-search-palette__empty,.chat-history-search-palette__hint{padding:24px 16px;color:var(--tplane-chat-text-muted);text-align:center;font-size:var(--tplane-chat-font-size-sm)}.chat-history-search-palette__skeleton{padding:8px 4px}.chat-history-search-palette__skeleton-row{height:36px;margin:4px 0;background:var(--tplane-chat-surface-alt);border-radius:8px;animation:tplane-chat-pulse 1.4s ease-in-out infinite}\n"] }]
3742
3794
  }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }, { type: i0.Output, args: ["queryChange"] }], results: [{ type: i0.Input, args: [{ isSignal: true, alias: "results", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], threadSelected: [{ type: i0.Output, args: ["threadSelected"] }], closed: [{ type: i0.Output, args: ["closed"] }], inputEl: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }] } });
3743
3795
 
3744
3796
  // libs/chat/src/lib/styles/chat-overflow-menu.styles.ts
@@ -3761,8 +3813,8 @@ const CHAT_OVERFLOW_MENU_STYLES = `
3761
3813
  padding: 4px;
3762
3814
  margin: 0;
3763
3815
  list-style: none;
3764
- background: var(--ngaf-chat-bg);
3765
- border: 1px solid var(--ngaf-chat-separator);
3816
+ background: var(--tplane-chat-bg);
3817
+ border: 1px solid var(--tplane-chat-separator);
3766
3818
  border-radius: 8px;
3767
3819
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
3768
3820
  }
@@ -3770,23 +3822,23 @@ const CHAT_OVERFLOW_MENU_STYLES = `
3770
3822
  display: block;
3771
3823
  padding: 8px 12px;
3772
3824
  border-radius: 4px;
3773
- color: var(--ngaf-chat-text);
3774
- font-size: var(--ngaf-chat-font-size-sm);
3825
+ color: var(--tplane-chat-text);
3826
+ font-size: var(--tplane-chat-font-size-sm);
3775
3827
  cursor: pointer;
3776
3828
  user-select: none;
3777
3829
  }
3778
3830
  .chat-overflow-menu__item:hover {
3779
- background: var(--ngaf-chat-surface-alt);
3831
+ background: var(--tplane-chat-surface-alt);
3780
3832
  }
3781
3833
  .chat-overflow-menu__item:focus-visible {
3782
- outline: 2px solid var(--ngaf-chat-primary);
3834
+ outline: 2px solid var(--tplane-chat-primary);
3783
3835
  outline-offset: -2px;
3784
3836
  }
3785
3837
  .chat-overflow-menu__item--destructive {
3786
- color: var(--ngaf-chat-error-text);
3838
+ color: var(--tplane-chat-error-text);
3787
3839
  }
3788
3840
  .chat-overflow-menu__item--disabled {
3789
- color: var(--ngaf-chat-text-muted);
3841
+ color: var(--tplane-chat-text-muted);
3790
3842
  cursor: not-allowed;
3791
3843
  pointer-events: none;
3792
3844
  }
@@ -3892,7 +3944,7 @@ class ChatOverflowMenuComponent {
3892
3944
  }
3893
3945
  </ul>
3894
3946
  }
3895
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}.chat-overflow-menu__scrim{position:fixed;inset:0;background:transparent;z-index:59;border:0;padding:0;cursor:default}.chat-overflow-menu{position:fixed;z-index:60;min-width:160px;padding:4px;margin:0;list-style:none;background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:8px;box-shadow:0 8px 24px #00000026}.chat-overflow-menu__item{display:block;padding:8px 12px;border-radius:4px;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.chat-overflow-menu__item:hover{background:var(--ngaf-chat-surface-alt)}.chat-overflow-menu__item:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:-2px}.chat-overflow-menu__item--destructive{color:var(--ngaf-chat-error-text)}.chat-overflow-menu__item--disabled{color:var(--ngaf-chat-text-muted);cursor:not-allowed;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3947
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}.chat-overflow-menu__scrim{position:fixed;inset:0;background:transparent;z-index:59;border:0;padding:0;cursor:default}.chat-overflow-menu{position:fixed;z-index:60;min-width:160px;padding:4px;margin:0;list-style:none;background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:8px;box-shadow:0 8px 24px #00000026}.chat-overflow-menu__item{display:block;padding:8px 12px;border-radius:4px;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.chat-overflow-menu__item:hover{background:var(--tplane-chat-surface-alt)}.chat-overflow-menu__item:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:-2px}.chat-overflow-menu__item--destructive{color:var(--tplane-chat-error-text)}.chat-overflow-menu__item--disabled{color:var(--tplane-chat-text-muted);cursor:not-allowed;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3896
3948
  }
3897
3949
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatOverflowMenuComponent, decorators: [{
3898
3950
  type: Component,
@@ -3930,7 +3982,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3930
3982
  }
3931
3983
  </ul>
3932
3984
  }
3933
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}.chat-overflow-menu__scrim{position:fixed;inset:0;background:transparent;z-index:59;border:0;padding:0;cursor:default}.chat-overflow-menu{position:fixed;z-index:60;min-width:160px;padding:4px;margin:0;list-style:none;background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:8px;box-shadow:0 8px 24px #00000026}.chat-overflow-menu__item{display:block;padding:8px 12px;border-radius:4px;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.chat-overflow-menu__item:hover{background:var(--ngaf-chat-surface-alt)}.chat-overflow-menu__item:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:-2px}.chat-overflow-menu__item--destructive{color:var(--ngaf-chat-error-text)}.chat-overflow-menu__item--disabled{color:var(--ngaf-chat-text-muted);cursor:not-allowed;pointer-events:none}\n"] }]
3985
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}.chat-overflow-menu__scrim{position:fixed;inset:0;background:transparent;z-index:59;border:0;padding:0;cursor:default}.chat-overflow-menu{position:fixed;z-index:60;min-width:160px;padding:4px;margin:0;list-style:none;background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:8px;box-shadow:0 8px 24px #00000026}.chat-overflow-menu__item{display:block;padding:8px 12px;border-radius:4px;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.chat-overflow-menu__item:hover{background:var(--tplane-chat-surface-alt)}.chat-overflow-menu__item:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:-2px}.chat-overflow-menu__item--destructive{color:var(--tplane-chat-error-text)}.chat-overflow-menu__item--disabled{color:var(--tplane-chat-text-muted);cursor:not-allowed;pointer-events:none}\n"] }]
3934
3986
  }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], anchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchor", required: false }] }], anchorPos: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchorPos", required: false }] }], itemSelected: [{ type: i0.Output, args: ["itemSelected"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
3935
3987
 
3936
3988
  // libs/chat/src/lib/styles/chat-confirm-dialog.styles.ts
@@ -3954,21 +4006,21 @@ const CHAT_CONFIRM_DIALOG_STYLES = `
3954
4006
  width: min(420px, 90vw);
3955
4007
  z-index: 71;
3956
4008
  padding: 20px;
3957
- background: var(--ngaf-chat-bg);
3958
- border: 1px solid var(--ngaf-chat-separator);
4009
+ background: var(--tplane-chat-bg);
4010
+ border: 1px solid var(--tplane-chat-separator);
3959
4011
  border-radius: 12px;
3960
4012
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
3961
4013
  }
3962
4014
  .chat-confirm-dialog__title {
3963
4015
  margin: 0 0 8px 0;
3964
- color: var(--ngaf-chat-text);
4016
+ color: var(--tplane-chat-text);
3965
4017
  font-size: 1.125rem;
3966
4018
  font-weight: 600;
3967
4019
  }
3968
4020
  .chat-confirm-dialog__body {
3969
4021
  margin: 0 0 16px 0;
3970
- color: var(--ngaf-chat-text-muted);
3971
- font-size: var(--ngaf-chat-font-size-sm);
4022
+ color: var(--tplane-chat-text-muted);
4023
+ font-size: var(--tplane-chat-font-size-sm);
3972
4024
  line-height: 1.5;
3973
4025
  }
3974
4026
  .chat-confirm-dialog__actions {
@@ -3981,20 +4033,20 @@ const CHAT_CONFIRM_DIALOG_STYLES = `
3981
4033
  padding: 8px 16px;
3982
4034
  border-radius: 6px;
3983
4035
  font: inherit;
3984
- font-size: var(--ngaf-chat-font-size-sm);
4036
+ font-size: var(--tplane-chat-font-size-sm);
3985
4037
  cursor: pointer;
3986
- border: 1px solid var(--ngaf-chat-separator);
3987
- background: var(--ngaf-chat-bg);
3988
- color: var(--ngaf-chat-text);
4038
+ border: 1px solid var(--tplane-chat-separator);
4039
+ background: var(--tplane-chat-bg);
4040
+ color: var(--tplane-chat-text);
3989
4041
  }
3990
- .chat-confirm-dialog__cancel:hover { background: var(--ngaf-chat-surface-alt); }
4042
+ .chat-confirm-dialog__cancel:hover { background: var(--tplane-chat-surface-alt); }
3991
4043
  .chat-confirm-dialog__confirm {
3992
- background: var(--ngaf-chat-text);
3993
- color: var(--ngaf-chat-bg);
4044
+ background: var(--tplane-chat-text);
4045
+ color: var(--tplane-chat-bg);
3994
4046
  border-color: transparent;
3995
4047
  }
3996
4048
  .chat-confirm-dialog__confirm--destructive {
3997
- background: var(--ngaf-chat-destructive);
4049
+ background: var(--tplane-chat-destructive);
3998
4050
  color: #fff;
3999
4051
  border-color: transparent;
4000
4052
  }
@@ -4003,7 +4055,7 @@ const CHAT_CONFIRM_DIALOG_STYLES = `
4003
4055
  }
4004
4056
  .chat-confirm-dialog__cancel:focus-visible,
4005
4057
  .chat-confirm-dialog__confirm:focus-visible {
4006
- outline: 2px solid var(--ngaf-chat-primary);
4058
+ outline: 2px solid var(--tplane-chat-primary);
4007
4059
  outline-offset: 2px;
4008
4060
  }
4009
4061
  `;
@@ -4075,7 +4127,7 @@ class ChatConfirmDialogComponent {
4075
4127
  </div>
4076
4128
  </div>
4077
4129
  }
4078
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}.chat-confirm-dialog__scrim{position:fixed;inset:0;background:#0006;z-index:70;border:0;padding:0;cursor:pointer}.chat-confirm-dialog{position:fixed;top:30vh;left:50%;transform:translate(-50%);width:min(420px,90vw);z-index:71;padding:20px;background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040}.chat-confirm-dialog__title{margin:0 0 8px;color:var(--ngaf-chat-text);font-size:1.125rem;font-weight:600}.chat-confirm-dialog__body{margin:0 0 16px;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm);line-height:1.5}.chat-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:8px}.chat-confirm-dialog__cancel,.chat-confirm-dialog__confirm{padding:8px 16px;border-radius:6px;font:inherit;font-size:var(--ngaf-chat-font-size-sm);cursor:pointer;border:1px solid var(--ngaf-chat-separator);background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text)}.chat-confirm-dialog__cancel:hover{background:var(--ngaf-chat-surface-alt)}.chat-confirm-dialog__confirm{background:var(--ngaf-chat-text);color:var(--ngaf-chat-bg);border-color:transparent}.chat-confirm-dialog__confirm--destructive{background:var(--ngaf-chat-destructive);color:#fff;border-color:transparent}.chat-confirm-dialog__confirm--destructive:hover{filter:brightness(1.1)}.chat-confirm-dialog__cancel:focus-visible,.chat-confirm-dialog__confirm:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4130
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}.chat-confirm-dialog__scrim{position:fixed;inset:0;background:#0006;z-index:70;border:0;padding:0;cursor:pointer}.chat-confirm-dialog{position:fixed;top:30vh;left:50%;transform:translate(-50%);width:min(420px,90vw);z-index:71;padding:20px;background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040}.chat-confirm-dialog__title{margin:0 0 8px;color:var(--tplane-chat-text);font-size:1.125rem;font-weight:600}.chat-confirm-dialog__body{margin:0 0 16px;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm);line-height:1.5}.chat-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:8px}.chat-confirm-dialog__cancel,.chat-confirm-dialog__confirm{padding:8px 16px;border-radius:6px;font:inherit;font-size:var(--tplane-chat-font-size-sm);cursor:pointer;border:1px solid var(--tplane-chat-separator);background:var(--tplane-chat-bg);color:var(--tplane-chat-text)}.chat-confirm-dialog__cancel:hover{background:var(--tplane-chat-surface-alt)}.chat-confirm-dialog__confirm{background:var(--tplane-chat-text);color:var(--tplane-chat-bg);border-color:transparent}.chat-confirm-dialog__confirm--destructive{background:var(--tplane-chat-destructive);color:#fff;border-color:transparent}.chat-confirm-dialog__confirm--destructive:hover{filter:brightness(1.1)}.chat-confirm-dialog__cancel:focus-visible,.chat-confirm-dialog__confirm:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4079
4131
  }
4080
4132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatConfirmDialogComponent, decorators: [{
4081
4133
  type: Component,
@@ -4116,7 +4168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4116
4168
  </div>
4117
4169
  </div>
4118
4170
  }
4119
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}.chat-confirm-dialog__scrim{position:fixed;inset:0;background:#0006;z-index:70;border:0;padding:0;cursor:pointer}.chat-confirm-dialog{position:fixed;top:30vh;left:50%;transform:translate(-50%);width:min(420px,90vw);z-index:71;padding:20px;background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040}.chat-confirm-dialog__title{margin:0 0 8px;color:var(--ngaf-chat-text);font-size:1.125rem;font-weight:600}.chat-confirm-dialog__body{margin:0 0 16px;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm);line-height:1.5}.chat-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:8px}.chat-confirm-dialog__cancel,.chat-confirm-dialog__confirm{padding:8px 16px;border-radius:6px;font:inherit;font-size:var(--ngaf-chat-font-size-sm);cursor:pointer;border:1px solid var(--ngaf-chat-separator);background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text)}.chat-confirm-dialog__cancel:hover{background:var(--ngaf-chat-surface-alt)}.chat-confirm-dialog__confirm{background:var(--ngaf-chat-text);color:var(--ngaf-chat-bg);border-color:transparent}.chat-confirm-dialog__confirm--destructive{background:var(--ngaf-chat-destructive);color:#fff;border-color:transparent}.chat-confirm-dialog__confirm--destructive:hover{filter:brightness(1.1)}.chat-confirm-dialog__cancel:focus-visible,.chat-confirm-dialog__confirm:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}\n"] }]
4171
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}.chat-confirm-dialog__scrim{position:fixed;inset:0;background:#0006;z-index:70;border:0;padding:0;cursor:pointer}.chat-confirm-dialog{position:fixed;top:30vh;left:50%;transform:translate(-50%);width:min(420px,90vw);z-index:71;padding:20px;background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:12px;box-shadow:0 16px 48px #00000040}.chat-confirm-dialog__title{margin:0 0 8px;color:var(--tplane-chat-text);font-size:1.125rem;font-weight:600}.chat-confirm-dialog__body{margin:0 0 16px;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm);line-height:1.5}.chat-confirm-dialog__actions{display:flex;justify-content:flex-end;gap:8px}.chat-confirm-dialog__cancel,.chat-confirm-dialog__confirm{padding:8px 16px;border-radius:6px;font:inherit;font-size:var(--tplane-chat-font-size-sm);cursor:pointer;border:1px solid var(--tplane-chat-separator);background:var(--tplane-chat-bg);color:var(--tplane-chat-text)}.chat-confirm-dialog__cancel:hover{background:var(--tplane-chat-surface-alt)}.chat-confirm-dialog__confirm{background:var(--tplane-chat-text);color:var(--tplane-chat-bg);border-color:transparent}.chat-confirm-dialog__confirm--destructive{background:var(--tplane-chat-destructive);color:#fff;border-color:transparent}.chat-confirm-dialog__confirm--destructive:hover{filter:brightness(1.1)}.chat-confirm-dialog__cancel:focus-visible,.chat-confirm-dialog__confirm:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}\n"] }]
4120
4172
  }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], body: [{ type: i0.Input, args: [{ isSignal: true, alias: "body", required: false }] }], confirmLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "confirmLabel", required: false }] }], cancelLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelLabel", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], confirmed: [{ type: i0.Output, args: ["confirmed"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }], cancelBtn: [{ type: i0.ViewChild, args: ['cancelBtn', { isSignal: true }] }] } });
4121
4173
 
4122
4174
  // libs/chat/src/lib/styles/chat-scroll-bubble.styles.ts
@@ -4140,9 +4192,9 @@ const CHAT_SCROLL_BUBBLE_STYLES = `
4140
4192
  height: 36px;
4141
4193
  padding: 0 12px;
4142
4194
  border-radius: 9999px;
4143
- background: var(--ngaf-chat-surface);
4144
- border: 1px solid var(--ngaf-chat-separator);
4145
- color: var(--ngaf-chat-text);
4195
+ background: var(--tplane-chat-surface);
4196
+ border: 1px solid var(--tplane-chat-separator);
4197
+ color: var(--tplane-chat-text);
4146
4198
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
4147
4199
  cursor: pointer;
4148
4200
  transition: transform 150ms ease, box-shadow 150ms ease;
@@ -4153,8 +4205,8 @@ const CHAT_SCROLL_BUBBLE_STYLES = `
4153
4205
  width: 6px;
4154
4206
  height: 6px;
4155
4207
  border-radius: 50%;
4156
- background: var(--ngaf-chat-text-muted);
4157
- animation: ngaf-chat-typing-dot 1.4s ease-in-out infinite both;
4208
+ background: var(--tplane-chat-text-muted);
4209
+ animation: tplane-chat-typing-dot 1.4s ease-in-out infinite both;
4158
4210
  }
4159
4211
  .chat-scroll-bubble__dot:nth-child(2) { animation-delay: 0.2s; }
4160
4212
  .chat-scroll-bubble__dot:nth-child(3) { animation-delay: 0.4s; }
@@ -4194,7 +4246,7 @@ class ChatScrollBubbleComponent {
4194
4246
  </svg>
4195
4247
  }
4196
4248
  </button>
4197
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;z-index:2;pointer-events:none}.chat-scroll-bubble{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:9999px;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);color:var(--ngaf-chat-text);box-shadow:0 2px 8px #0000001f;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chat-scroll-bubble:hover{transform:scale(1.05)}.chat-scroll-bubble__dots{display:inline-flex;gap:4px;align-items:center}.chat-scroll-bubble__dot{width:6px;height:6px;border-radius:50%;background:var(--ngaf-chat-text-muted);animation:ngaf-chat-typing-dot 1.4s ease-in-out infinite both}.chat-scroll-bubble__dot:nth-child(2){animation-delay:.2s}.chat-scroll-bubble__dot:nth-child(3){animation-delay:.4s}.chat-scroll-bubble__arrow{width:16px;height:16px;display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4249
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;z-index:2;pointer-events:none}.chat-scroll-bubble{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:9999px;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);color:var(--tplane-chat-text);box-shadow:0 2px 8px #0000001f;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chat-scroll-bubble:hover{transform:scale(1.05)}.chat-scroll-bubble__dots{display:inline-flex;gap:4px;align-items:center}.chat-scroll-bubble__dot{width:6px;height:6px;border-radius:50%;background:var(--tplane-chat-text-muted);animation:tplane-chat-typing-dot 1.4s ease-in-out infinite both}.chat-scroll-bubble__dot:nth-child(2){animation-delay:.2s}.chat-scroll-bubble__dot:nth-child(3){animation-delay:.4s}.chat-scroll-bubble__arrow{width:16px;height:16px;display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4198
4250
  }
4199
4251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatScrollBubbleComponent, decorators: [{
4200
4252
  type: Component,
@@ -4220,7 +4272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4220
4272
  </svg>
4221
4273
  }
4222
4274
  </button>
4223
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;z-index:2;pointer-events:none}.chat-scroll-bubble{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:9999px;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);color:var(--ngaf-chat-text);box-shadow:0 2px 8px #0000001f;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chat-scroll-bubble:hover{transform:scale(1.05)}.chat-scroll-bubble__dots{display:inline-flex;gap:4px;align-items:center}.chat-scroll-bubble__dot{width:6px;height:6px;border-radius:50%;background:var(--ngaf-chat-text-muted);animation:ngaf-chat-typing-dot 1.4s ease-in-out infinite both}.chat-scroll-bubble__dot:nth-child(2){animation-delay:.2s}.chat-scroll-bubble__dot:nth-child(3){animation-delay:.4s}.chat-scroll-bubble__arrow{width:16px;height:16px;display:block}\n"] }]
4275
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;z-index:2;pointer-events:none}.chat-scroll-bubble{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:9999px;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);color:var(--tplane-chat-text);box-shadow:0 2px 8px #0000001f;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.chat-scroll-bubble:hover{transform:scale(1.05)}.chat-scroll-bubble__dots{display:inline-flex;gap:4px;align-items:center}.chat-scroll-bubble__dot{width:6px;height:6px;border-radius:50%;background:var(--tplane-chat-text-muted);animation:tplane-chat-typing-dot 1.4s ease-in-out infinite both}.chat-scroll-bubble__dot:nth-child(2){animation-delay:.2s}.chat-scroll-bubble__dot:nth-child(3){animation-delay:.4s}.chat-scroll-bubble__arrow{width:16px;height:16px;display:block}\n"] }]
4224
4276
  }], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: true }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
4225
4277
 
4226
4278
  // SPDX-License-Identifier: MIT
@@ -4230,34 +4282,34 @@ const CHAT_ERROR_STYLES = `
4230
4282
  display: flex;
4231
4283
  align-items: flex-start;
4232
4284
  gap: 0.5rem;
4233
- background: var(--ngaf-chat-error-bg);
4234
- border: 1px solid var(--ngaf-chat-error-border);
4235
- color: var(--ngaf-chat-error-text);
4236
- border-radius: var(--ngaf-chat-radius-card);
4285
+ background: var(--tplane-chat-error-bg);
4286
+ border: 1px solid var(--tplane-chat-error-border);
4287
+ color: var(--tplane-chat-error-text);
4288
+ border-radius: var(--tplane-chat-radius-card);
4237
4289
  padding: 8px 12px;
4238
- font-size: var(--ngaf-chat-font-size-sm);
4239
- margin: 0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-2);
4290
+ font-size: var(--tplane-chat-font-size-sm);
4291
+ margin: 0 var(--tplane-chat-space-6) var(--tplane-chat-space-2);
4240
4292
  }
4241
4293
  .chat-error__icon { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; }
4242
4294
  .chat-error__msg { flex: 1; min-width: 0; word-break: break-word; }
4243
4295
  .chat-error__retry {
4244
4296
  flex-shrink: 0;
4245
4297
  background: transparent;
4246
- color: var(--ngaf-chat-error-text);
4247
- border: 1px solid var(--ngaf-chat-error-border);
4248
- border-radius: var(--ngaf-chat-radius-card);
4298
+ color: var(--tplane-chat-error-text);
4299
+ border: 1px solid var(--tplane-chat-error-border);
4300
+ border-radius: var(--tplane-chat-radius-card);
4249
4301
  padding: 2px 10px;
4250
- font-size: var(--ngaf-chat-font-size-sm);
4302
+ font-size: var(--tplane-chat-font-size-sm);
4251
4303
  cursor: pointer;
4252
4304
  transition: background 150ms ease, color 150ms ease;
4253
4305
  white-space: nowrap;
4254
4306
  }
4255
4307
  .chat-error__retry:hover {
4256
- background: var(--ngaf-chat-error-border);
4257
- color: var(--ngaf-chat-error-text);
4308
+ background: var(--tplane-chat-error-border);
4309
+ color: var(--tplane-chat-error-text);
4258
4310
  }
4259
4311
  .chat-error__retry:focus-visible {
4260
- outline: 2px solid var(--ngaf-chat-error-border);
4312
+ outline: 2px solid var(--tplane-chat-error-border);
4261
4313
  outline-offset: 2px;
4262
4314
  }
4263
4315
  `;
@@ -4301,7 +4353,7 @@ class ChatErrorComponent {
4301
4353
  }
4302
4354
  </div>
4303
4355
  }
4304
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-error{display:flex;align-items:flex-start;gap:.5rem;background:var(--ngaf-chat-error-bg);border:1px solid var(--ngaf-chat-error-border);color:var(--ngaf-chat-error-text);border-radius:var(--ngaf-chat-radius-card);padding:8px 12px;font-size:var(--ngaf-chat-font-size-sm);margin:0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-2)}.chat-error__icon{flex-shrink:0;width:16px;height:16px;margin-top:2px}.chat-error__msg{flex:1;min-width:0;word-break:break-word}.chat-error__retry{flex-shrink:0;background:transparent;color:var(--ngaf-chat-error-text);border:1px solid var(--ngaf-chat-error-border);border-radius:var(--ngaf-chat-radius-card);padding:2px 10px;font-size:var(--ngaf-chat-font-size-sm);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.chat-error__retry:hover{background:var(--ngaf-chat-error-border);color:var(--ngaf-chat-error-text)}.chat-error__retry:focus-visible{outline:2px solid var(--ngaf-chat-error-border);outline-offset:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4356
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.chat-error{display:flex;align-items:flex-start;gap:.5rem;background:var(--tplane-chat-error-bg);border:1px solid var(--tplane-chat-error-border);color:var(--tplane-chat-error-text);border-radius:var(--tplane-chat-radius-card);padding:8px 12px;font-size:var(--tplane-chat-font-size-sm);margin:0 var(--tplane-chat-space-6) var(--tplane-chat-space-2)}.chat-error__icon{flex-shrink:0;width:16px;height:16px;margin-top:2px}.chat-error__msg{flex:1;min-width:0;word-break:break-word}.chat-error__retry{flex-shrink:0;background:transparent;color:var(--tplane-chat-error-text);border:1px solid var(--tplane-chat-error-border);border-radius:var(--tplane-chat-radius-card);padding:2px 10px;font-size:var(--tplane-chat-font-size-sm);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.chat-error__retry:hover{background:var(--tplane-chat-error-border);color:var(--tplane-chat-error-text)}.chat-error__retry:focus-visible{outline:2px solid var(--tplane-chat-error-border);outline-offset:2px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4305
4357
  }
4306
4358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatErrorComponent, decorators: [{
4307
4359
  type: Component,
@@ -4317,20 +4369,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4317
4369
  }
4318
4370
  </div>
4319
4371
  }
4320
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-error{display:flex;align-items:flex-start;gap:.5rem;background:var(--ngaf-chat-error-bg);border:1px solid var(--ngaf-chat-error-border);color:var(--ngaf-chat-error-text);border-radius:var(--ngaf-chat-radius-card);padding:8px 12px;font-size:var(--ngaf-chat-font-size-sm);margin:0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-2)}.chat-error__icon{flex-shrink:0;width:16px;height:16px;margin-top:2px}.chat-error__msg{flex:1;min-width:0;word-break:break-word}.chat-error__retry{flex-shrink:0;background:transparent;color:var(--ngaf-chat-error-text);border:1px solid var(--ngaf-chat-error-border);border-radius:var(--ngaf-chat-radius-card);padding:2px 10px;font-size:var(--ngaf-chat-font-size-sm);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.chat-error__retry:hover{background:var(--ngaf-chat-error-border);color:var(--ngaf-chat-error-text)}.chat-error__retry:focus-visible{outline:2px solid var(--ngaf-chat-error-border);outline-offset:2px}\n"] }]
4372
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.chat-error{display:flex;align-items:flex-start;gap:.5rem;background:var(--tplane-chat-error-bg);border:1px solid var(--tplane-chat-error-border);color:var(--tplane-chat-error-text);border-radius:var(--tplane-chat-radius-card);padding:8px 12px;font-size:var(--tplane-chat-font-size-sm);margin:0 var(--tplane-chat-space-6) var(--tplane-chat-space-2)}.chat-error__icon{flex-shrink:0;width:16px;height:16px;margin-top:2px}.chat-error__msg{flex:1;min-width:0;word-break:break-word}.chat-error__retry{flex-shrink:0;background:transparent;color:var(--tplane-chat-error-text);border:1px solid var(--tplane-chat-error-border);border-radius:var(--tplane-chat-radius-card);padding:2px 10px;font-size:var(--tplane-chat-font-size-sm);cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.chat-error__retry:hover{background:var(--tplane-chat-error-border);color:var(--tplane-chat-error-text)}.chat-error__retry:focus-visible{outline:2px solid var(--tplane-chat-error-border);outline-offset:2px}\n"] }]
4321
4373
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }] } });
4322
4374
 
4323
4375
  // SPDX-License-Identifier: MIT
4324
4376
  const CHAT_INTERRUPT_STYLES = `
4325
4377
  :host { display: block; }
4326
4378
  .chat-interrupt {
4327
- background: var(--ngaf-chat-warning-bg);
4328
- color: var(--ngaf-chat-warning-text);
4329
- border-left: 3px solid var(--ngaf-chat-warning-text);
4330
- border-radius: var(--ngaf-chat-radius-card);
4379
+ background: var(--tplane-chat-warning-bg);
4380
+ color: var(--tplane-chat-warning-text);
4381
+ border-left: 3px solid var(--tplane-chat-warning-text);
4382
+ border-radius: var(--tplane-chat-radius-card);
4331
4383
  padding: 12px 16px;
4332
- margin: 0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-2);
4333
- font-size: var(--ngaf-chat-font-size-sm);
4384
+ margin: 0 var(--tplane-chat-space-6) var(--tplane-chat-space-2);
4385
+ font-size: var(--tplane-chat-font-size-sm);
4334
4386
  }
4335
4387
  .chat-interrupt__title { font-weight: 600; margin: 0 0 4px; display: flex; align-items: center; gap: 6px; }
4336
4388
  .chat-interrupt__body { margin: 0 0 8px; opacity: 0.95; }
@@ -4382,7 +4434,7 @@ class ChatInterruptComponent {
4382
4434
  }
4383
4435
  </div>
4384
4436
  }
4385
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-interrupt{background:var(--ngaf-chat-warning-bg);color:var(--ngaf-chat-warning-text);border-left:3px solid var(--ngaf-chat-warning-text);border-radius:var(--ngaf-chat-radius-card);padding:12px 16px;margin:0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-2);font-size:var(--ngaf-chat-font-size-sm)}.chat-interrupt__title{font-weight:600;margin:0 0 4px;display:flex;align-items:center;gap:6px}.chat-interrupt__body{margin:0 0 8px;opacity:.95}.chat-interrupt__actions{display:flex;gap:8px;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4437
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.chat-interrupt{background:var(--tplane-chat-warning-bg);color:var(--tplane-chat-warning-text);border-left:3px solid var(--tplane-chat-warning-text);border-radius:var(--tplane-chat-radius-card);padding:12px 16px;margin:0 var(--tplane-chat-space-6) var(--tplane-chat-space-2);font-size:var(--tplane-chat-font-size-sm)}.chat-interrupt__title{font-weight:600;margin:0 0 4px;display:flex;align-items:center;gap:6px}.chat-interrupt__body{margin:0 0 8px;opacity:.95}.chat-interrupt__actions{display:flex;gap:8px;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4386
4438
  }
4387
4439
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatInterruptComponent, decorators: [{
4388
4440
  type: Component,
@@ -4405,7 +4457,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4405
4457
  }
4406
4458
  </div>
4407
4459
  }
4408
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-interrupt{background:var(--ngaf-chat-warning-bg);color:var(--ngaf-chat-warning-text);border-left:3px solid var(--ngaf-chat-warning-text);border-radius:var(--ngaf-chat-radius-card);padding:12px 16px;margin:0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-2);font-size:var(--ngaf-chat-font-size-sm)}.chat-interrupt__title{font-weight:600;margin:0 0 4px;display:flex;align-items:center;gap:6px}.chat-interrupt__body{margin:0 0 8px;opacity:.95}.chat-interrupt__actions{display:flex;gap:8px;flex-wrap:wrap}\n"] }]
4460
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.chat-interrupt{background:var(--tplane-chat-warning-bg);color:var(--tplane-chat-warning-text);border-left:3px solid var(--tplane-chat-warning-text);border-radius:var(--tplane-chat-radius-card);padding:12px 16px;margin:0 var(--tplane-chat-space-6) var(--tplane-chat-space-2);font-size:var(--tplane-chat-font-size-sm)}.chat-interrupt__title{font-weight:600;margin:0 0 4px;display:flex;align-items:center;gap:6px}.chat-interrupt__body{margin:0 0 8px;opacity:.95}.chat-interrupt__actions{display:flex;gap:8px;flex-wrap:wrap}\n"] }]
4409
4461
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], templateRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
4410
4462
 
4411
4463
  // libs/chat/src/lib/compositions/chat-tool-call-card/chat-tool-call-card.component.ts
@@ -4488,7 +4540,7 @@ class ChatToolCallCardComponent {
4488
4540
  </div>
4489
4541
  }
4490
4542
  </chat-trace>
4491
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.tcc__name{font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-sm, 13px);color:var(--ngaf-chat-text-muted);font-weight:400;padding-left:2px}.tcc__pill{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:9999px;background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text-muted);font-size:10px;font-weight:500;margin-left:6px;line-height:1.4}.tcc__pill svg{width:10px;height:10px}.tcc__pill[data-status=running] svg{animation:tcc-spin .8s linear infinite}@keyframes tcc-spin{to{transform:rotate(360deg)}}.tcc__section{padding:8px 0}.tcc__section+.tcc__section{border-top:1px solid var(--ngaf-chat-separator)}.tcc__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ngaf-chat-text-muted);margin:0 0 4px}.tcc__section-body{font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text);white-space:pre-wrap;overflow-x:auto;margin:0}\n"], dependencies: [{ kind: "component", type: ChatTraceComponent, selector: "chat-trace", inputs: ["state", "defaultExpanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4543
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.tcc__name{font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-sm, 13px);color:var(--tplane-chat-text-muted);font-weight:400;padding-left:2px}.tcc__pill{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:9999px;background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text-muted);font-size:10px;font-weight:500;margin-left:6px;line-height:1.4}.tcc__pill svg{width:10px;height:10px}.tcc__pill[data-status=running] svg{animation:tcc-spin .8s linear infinite}@keyframes tcc-spin{to{transform:rotate(360deg)}}.tcc__section{padding:8px 0}.tcc__section+.tcc__section{border-top:1px solid var(--tplane-chat-separator)}.tcc__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tplane-chat-text-muted);margin:0 0 4px}.tcc__section-body{font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text);white-space:pre-wrap;overflow-x:auto;margin:0}\n"], dependencies: [{ kind: "component", type: ChatTraceComponent, selector: "chat-trace", inputs: ["state", "defaultExpanded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4492
4544
  }
4493
4545
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatToolCallCardComponent, decorators: [{
4494
4546
  type: Component,
@@ -4528,7 +4580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4528
4580
  </div>
4529
4581
  }
4530
4582
  </chat-trace>
4531
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.tcc__name{font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-sm, 13px);color:var(--ngaf-chat-text-muted);font-weight:400;padding-left:2px}.tcc__pill{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:9999px;background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text-muted);font-size:10px;font-weight:500;margin-left:6px;line-height:1.4}.tcc__pill svg{width:10px;height:10px}.tcc__pill[data-status=running] svg{animation:tcc-spin .8s linear infinite}@keyframes tcc-spin{to{transform:rotate(360deg)}}.tcc__section{padding:8px 0}.tcc__section+.tcc__section{border-top:1px solid var(--ngaf-chat-separator)}.tcc__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ngaf-chat-text-muted);margin:0 0 4px}.tcc__section-body{font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text);white-space:pre-wrap;overflow-x:auto;margin:0}\n"] }]
4583
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.tcc__name{font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-sm, 13px);color:var(--tplane-chat-text-muted);font-weight:400;padding-left:2px}.tcc__pill{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:9999px;background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text-muted);font-size:10px;font-weight:500;margin-left:6px;line-height:1.4}.tcc__pill svg{width:10px;height:10px}.tcc__pill[data-status=running] svg{animation:tcc-spin .8s linear infinite}@keyframes tcc-spin{to{transform:rotate(360deg)}}.tcc__section{padding:8px 0}.tcc__section+.tcc__section{border-top:1px solid var(--tplane-chat-separator)}.tcc__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tplane-chat-text-muted);margin:0 0 4px}.tcc__section-body{font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text);white-space:pre-wrap;overflow-x:auto;margin:0}\n"] }]
4532
4584
  }], propDecorators: { toolCall: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolCall", required: true }] }], defaultCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCollapsed", required: false }] }] } });
4533
4585
 
4534
4586
  // libs/chat/src/lib/compositions/chat-subagent-card/chat-subagent-card.component.ts
@@ -4541,10 +4593,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4541
4593
  */
4542
4594
  function statusColor(status) {
4543
4595
  switch (status) {
4544
- case 'pending': return 'background: var(--ngaf-chat-surface-alt); color: var(--ngaf-chat-text-muted);';
4545
- case 'running': return 'background: var(--ngaf-chat-warning-bg); color: var(--ngaf-chat-warning-text);';
4546
- case 'complete': return 'color: var(--ngaf-chat-success);';
4547
- case 'error': return 'background: var(--ngaf-chat-error-bg); color: var(--ngaf-chat-error-text);';
4596
+ case 'pending': return 'background: var(--tplane-chat-surface-alt); color: var(--tplane-chat-text-muted);';
4597
+ case 'running': return 'background: var(--tplane-chat-warning-bg); color: var(--tplane-chat-warning-text);';
4598
+ case 'complete': return 'color: var(--tplane-chat-success);';
4599
+ case 'error': return 'background: var(--tplane-chat-error-bg); color: var(--tplane-chat-error-text);';
4548
4600
  }
4549
4601
  }
4550
4602
  function statusToTraceState(s) {
@@ -4595,7 +4647,7 @@ class ChatSubagentCardComponent {
4595
4647
  </div>
4596
4648
  }
4597
4649
  </chat-trace>
4598
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.sac__name{color:var(--ngaf-chat-text);font-weight:500;font-size:var(--ngaf-chat-font-size-sm)}.sac__id{font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted);margin-left:4px}.sac__pill{padding:1px 8px;border-radius:9999px;font-size:11px;font-weight:500;margin-left:4px}.sac__pill[data-status=pending]{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text-muted)}.sac__pill[data-status=running]{background:var(--ngaf-chat-warning-bg);color:var(--ngaf-chat-warning-text)}.sac__pill[data-status=complete]{color:var(--ngaf-chat-success)}.sac__pill[data-status=error]{background:var(--ngaf-chat-error-bg);color:var(--ngaf-chat-error-text)}.sac__count{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted)}.sac__msg{padding:6px 0}.sac__msg+.sac__msg{border-top:1px solid var(--ngaf-chat-separator)}.sac__reasoning{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted);font-style:italic;margin-bottom:4px}\n"], dependencies: [{ kind: "component", type: ChatTraceComponent, selector: "chat-trace", inputs: ["state", "defaultExpanded"] }, { kind: "component", type: ChatToolCallCardComponent, selector: "chat-tool-call-card", inputs: ["toolCall", "defaultCollapsed"] }, { kind: "component", type: ChatStreamingMdComponent, selector: "chat-streaming-md", inputs: ["content", "streaming", "viewRegistry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4650
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.sac__name{color:var(--tplane-chat-text);font-weight:500;font-size:var(--tplane-chat-font-size-sm)}.sac__id{font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted);margin-left:4px}.sac__pill{padding:1px 8px;border-radius:9999px;font-size:11px;font-weight:500;margin-left:4px}.sac__pill[data-status=pending]{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text-muted)}.sac__pill[data-status=running]{background:var(--tplane-chat-warning-bg);color:var(--tplane-chat-warning-text)}.sac__pill[data-status=complete]{color:var(--tplane-chat-success)}.sac__pill[data-status=error]{background:var(--tplane-chat-error-bg);color:var(--tplane-chat-error-text)}.sac__count{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted)}.sac__msg{padding:6px 0}.sac__msg+.sac__msg{border-top:1px solid var(--tplane-chat-separator)}.sac__reasoning{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted);font-style:italic;margin-bottom:4px}\n"], dependencies: [{ kind: "component", type: ChatTraceComponent, selector: "chat-trace", inputs: ["state", "defaultExpanded"] }, { kind: "component", type: ChatToolCallCardComponent, selector: "chat-tool-call-card", inputs: ["toolCall", "defaultCollapsed"] }, { kind: "component", type: ChatStreamingMdComponent, selector: "chat-streaming-md", inputs: ["content", "streaming", "viewRegistry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4599
4651
  }
4600
4652
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSubagentCardComponent, decorators: [{
4601
4653
  type: Component,
@@ -4621,7 +4673,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4621
4673
  </div>
4622
4674
  }
4623
4675
  </chat-trace>
4624
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.sac__name{color:var(--ngaf-chat-text);font-weight:500;font-size:var(--ngaf-chat-font-size-sm)}.sac__id{font-family:var(--ngaf-chat-font-mono);font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted);margin-left:4px}.sac__pill{padding:1px 8px;border-radius:9999px;font-size:11px;font-weight:500;margin-left:4px}.sac__pill[data-status=pending]{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text-muted)}.sac__pill[data-status=running]{background:var(--ngaf-chat-warning-bg);color:var(--ngaf-chat-warning-text)}.sac__pill[data-status=complete]{color:var(--ngaf-chat-success)}.sac__pill[data-status=error]{background:var(--ngaf-chat-error-bg);color:var(--ngaf-chat-error-text)}.sac__count{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted)}.sac__msg{padding:6px 0}.sac__msg+.sac__msg{border-top:1px solid var(--ngaf-chat-separator)}.sac__reasoning{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted);font-style:italic;margin-bottom:4px}\n"] }]
4676
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block}.sac__name{color:var(--tplane-chat-text);font-weight:500;font-size:var(--tplane-chat-font-size-sm)}.sac__id{font-family:var(--tplane-chat-font-mono);font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted);margin-left:4px}.sac__pill{padding:1px 8px;border-radius:9999px;font-size:11px;font-weight:500;margin-left:4px}.sac__pill[data-status=pending]{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text-muted)}.sac__pill[data-status=running]{background:var(--tplane-chat-warning-bg);color:var(--tplane-chat-warning-text)}.sac__pill[data-status=complete]{color:var(--tplane-chat-success)}.sac__pill[data-status=error]{background:var(--tplane-chat-error-bg);color:var(--tplane-chat-error-text)}.sac__count{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted)}.sac__msg{padding:6px 0}.sac__msg+.sac__msg{border-top:1px solid var(--tplane-chat-separator)}.sac__reasoning{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted);font-style:italic;margin-bottom:4px}\n"] }]
4625
4677
  }], propDecorators: { subagent: [{ type: i0.Input, args: [{ isSignal: true, alias: "subagent", required: true }] }] } });
4626
4678
 
4627
4679
  // libs/chat/src/lib/primitives/chat-tool-calls/chat-tool-call-template.directive.ts
@@ -4835,7 +4887,7 @@ class ChatToolCallsComponent {
4835
4887
  }
4836
4888
  }
4837
4889
  }
4838
- `, isInline: true, styles: [":host{display:block;margin-bottom:20px}.ctc__group{border:1px solid var(--ngaf-chat-separator);border-radius:var(--ngaf-chat-radius-card);margin:0 0 4px}.ctc__group-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:8px 12px;background:transparent;border:0;font:inherit;color:var(--ngaf-chat-text);cursor:pointer;text-align:left}.ctc__group-chevron{width:10px;height:10px;transition:transform .12s ease}.ctc__group[data-expanded=true] .ctc__group-chevron{transform:rotate(90deg)}.ctc__group-body{padding:0 12px 8px;border-top:1px solid var(--ngaf-chat-separator)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChatToolCallCardComponent, selector: "chat-tool-call-card", inputs: ["toolCall", "defaultCollapsed"] }, { kind: "component", type: ChatSubagentCardComponent, selector: "chat-subagent-card", inputs: ["subagent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4890
+ `, isInline: true, styles: [":host{display:block;margin-bottom:20px}.ctc__group{border:1px solid var(--tplane-chat-separator);border-radius:var(--tplane-chat-radius-card);margin:0 0 4px}.ctc__group-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:8px 12px;background:transparent;border:0;font:inherit;color:var(--tplane-chat-text);cursor:pointer;text-align:left}.ctc__group-chevron{width:10px;height:10px;transition:transform .12s ease}.ctc__group[data-expanded=true] .ctc__group-chevron{transform:rotate(90deg)}.ctc__group-body{padding:0 12px 8px;border-top:1px solid var(--tplane-chat-separator)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChatToolCallCardComponent, selector: "chat-tool-call-card", inputs: ["toolCall", "defaultCollapsed"] }, { kind: "component", type: ChatSubagentCardComponent, selector: "chat-subagent-card", inputs: ["subagent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4839
4891
  }
4840
4892
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatToolCallsComponent, decorators: [{
4841
4893
  type: Component,
@@ -4874,24 +4926,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4874
4926
  }
4875
4927
  }
4876
4928
  }
4877
- `, styles: [":host{display:block;margin-bottom:20px}.ctc__group{border:1px solid var(--ngaf-chat-separator);border-radius:var(--ngaf-chat-radius-card);margin:0 0 4px}.ctc__group-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:8px 12px;background:transparent;border:0;font:inherit;color:var(--ngaf-chat-text);cursor:pointer;text-align:left}.ctc__group-chevron{width:10px;height:10px;transition:transform .12s ease}.ctc__group[data-expanded=true] .ctc__group-chevron{transform:rotate(90deg)}.ctc__group-body{padding:0 12px 8px;border-top:1px solid var(--ngaf-chat-separator)}\n"] }]
4929
+ `, styles: [":host{display:block;margin-bottom:20px}.ctc__group{border:1px solid var(--tplane-chat-separator);border-radius:var(--tplane-chat-radius-card);margin:0 0 4px}.ctc__group-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:8px 12px;background:transparent;border:0;font:inherit;color:var(--tplane-chat-text);cursor:pointer;text-align:left}.ctc__group-chevron{width:10px;height:10px;transition:transform .12s ease}.ctc__group[data-expanded=true] .ctc__group-chevron{transform:rotate(90deg)}.ctc__group-body{padding:0 12px 8px;border-top:1px solid var(--tplane-chat-separator)}\n"] }]
4878
4930
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], grouping: [{ type: i0.Input, args: [{ isSignal: true, alias: "grouping", required: false }] }], groupSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupSummary", required: false }] }], excludeToolNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "excludeToolNames", required: false }] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ChatToolCallTemplateDirective), { isSignal: true }] }] } });
4879
4931
 
4880
4932
  // SPDX-License-Identifier: MIT
4881
4933
  const CHAT_GENERATIVE_UI_STYLES = `
4882
4934
  :host {
4883
4935
  display: block;
4884
- color: var(--ngaf-chat-text);
4885
- font-size: var(--ngaf-chat-font-size);
4886
- line-height: var(--ngaf-chat-line-height);
4936
+ color: var(--tplane-chat-text);
4937
+ font-size: var(--tplane-chat-font-size);
4938
+ line-height: var(--tplane-chat-line-height);
4887
4939
  }
4888
4940
  .chat-generative-ui__error {
4889
- color: var(--ngaf-chat-error-text);
4890
- background: var(--ngaf-chat-error-bg);
4891
- border: 1px solid var(--ngaf-chat-error-border);
4892
- border-radius: var(--ngaf-chat-radius-card);
4941
+ color: var(--tplane-chat-error-text);
4942
+ background: var(--tplane-chat-error-bg);
4943
+ border: 1px solid var(--tplane-chat-error-border);
4944
+ border-radius: var(--tplane-chat-radius-card);
4893
4945
  padding: 8px 12px;
4894
- font-size: var(--ngaf-chat-font-size-sm);
4946
+ font-size: var(--tplane-chat-font-size-sm);
4895
4947
  }
4896
4948
  `;
4897
4949
 
@@ -5011,7 +5063,7 @@ class ChatGenerativeUiComponent {
5011
5063
  (events)="events.emit($event)"
5012
5064
  />
5013
5065
  }
5014
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size);line-height:var(--ngaf-chat-line-height)}.chat-generative-ui__error{color:var(--ngaf-chat-error-text);background:var(--ngaf-chat-error-bg);border:1px solid var(--ngaf-chat-error-border);border-radius:var(--ngaf-chat-radius-card);padding:8px 12px;font-size:var(--ngaf-chat-font-size-sm)}\n"], dependencies: [{ kind: "component", type: RenderSpecComponent, selector: "render-spec", inputs: ["spec", "registry", "store", "functions", "handlers", "loading"], outputs: ["events"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5066
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size);line-height:var(--tplane-chat-line-height)}.chat-generative-ui__error{color:var(--tplane-chat-error-text);background:var(--tplane-chat-error-bg);border:1px solid var(--tplane-chat-error-border);border-radius:var(--tplane-chat-radius-card);padding:8px 12px;font-size:var(--tplane-chat-font-size-sm)}\n"], dependencies: [{ kind: "component", type: RenderSpecComponent, selector: "render-spec", inputs: ["spec", "registry", "store", "functions", "handlers", "loading"], outputs: ["events"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5015
5067
  }
5016
5068
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatGenerativeUiComponent, decorators: [{
5017
5069
  type: Component,
@@ -5026,7 +5078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
5026
5078
  (events)="events.emit($event)"
5027
5079
  />
5028
5080
  }
5029
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size);line-height:var(--ngaf-chat-line-height)}.chat-generative-ui__error{color:var(--ngaf-chat-error-text);background:var(--ngaf-chat-error-bg);border:1px solid var(--ngaf-chat-error-border);border-radius:var(--ngaf-chat-radius-card);padding:8px 12px;font-size:var(--ngaf-chat-font-size-sm)}\n"] }]
5081
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size);line-height:var(--tplane-chat-line-height)}.chat-generative-ui__error{color:var(--tplane-chat-error-text);background:var(--tplane-chat-error-bg);border:1px solid var(--tplane-chat-error-border);border-radius:var(--tplane-chat-radius-card);padding:8px 12px;font-size:var(--tplane-chat-font-size-sm)}\n"] }]
5030
5082
  }], ctorParameters: () => [], propDecorators: { spec: [{ type: i0.Input, args: [{ isSignal: true, alias: "spec", required: false }] }], registry: [{ type: i0.Input, args: [{ isSignal: true, alias: "registry", required: false }] }], store: [{ type: i0.Input, args: [{ isSignal: true, alias: "store", required: false }] }], handlers: [{ type: i0.Input, args: [{ isSignal: true, alias: "handlers", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], events: [{ type: i0.Output, args: ["events"] }] } });
5031
5083
 
5032
5084
  // libs/chat/src/lib/primitives/chat-tool-views/chat-tool-views.component.ts
@@ -5167,7 +5219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
5167
5219
 
5168
5220
  // SPDX-License-Identifier: MIT
5169
5221
  const CHAT_THREAD_LIST_STYLES = `
5170
- :host { display: block; padding: var(--ngaf-chat-space-2); }
5222
+ :host { display: block; padding: var(--tplane-chat-space-2); }
5171
5223
  .chat-thread-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
5172
5224
  .chat-thread-list__item {
5173
5225
  display: flex;
@@ -5175,10 +5227,10 @@ const CHAT_THREAD_LIST_STYLES = `
5175
5227
  gap: 2px;
5176
5228
  min-height: 36px;
5177
5229
  padding: 8px 12px;
5178
- border-radius: var(--ngaf-chat-radius-button);
5230
+ border-radius: var(--tplane-chat-radius-button);
5179
5231
  cursor: pointer;
5180
- color: var(--ngaf-chat-text);
5181
- font-size: var(--ngaf-chat-font-size-sm);
5232
+ color: var(--tplane-chat-text);
5233
+ font-size: var(--tplane-chat-font-size-sm);
5182
5234
  background: transparent;
5183
5235
  border: 0;
5184
5236
  text-align: left;
@@ -5186,9 +5238,9 @@ const CHAT_THREAD_LIST_STYLES = `
5186
5238
  box-sizing: border-box;
5187
5239
  transition: background-color 150ms ease;
5188
5240
  }
5189
- .chat-thread-list__item:hover { background: color-mix(in srgb, var(--ngaf-chat-text) 5%, transparent); }
5241
+ .chat-thread-list__item:hover { background: color-mix(in srgb, var(--tplane-chat-text) 5%, transparent); }
5190
5242
  .chat-thread-list__item[data-active="true"] {
5191
- background: var(--ngaf-chat-surface-alt);
5243
+ background: var(--tplane-chat-surface-alt);
5192
5244
  font-weight: 500;
5193
5245
  }
5194
5246
  .chat-thread-list__item-title {
@@ -5199,24 +5251,24 @@ const CHAT_THREAD_LIST_STYLES = `
5199
5251
  }
5200
5252
  .chat-thread-list__item-time {
5201
5253
  font-size: 11px;
5202
- color: var(--ngaf-chat-text-muted);
5254
+ color: var(--tplane-chat-text-muted);
5203
5255
  display: block;
5204
5256
  }
5205
5257
  .chat-thread-list__new {
5206
5258
  display: block;
5207
5259
  width: 100%;
5208
5260
  height: 36px;
5209
- margin-bottom: var(--ngaf-chat-space-2);
5210
- border: 1px dashed var(--ngaf-chat-separator);
5211
- border-radius: var(--ngaf-chat-radius-button);
5261
+ margin-bottom: var(--tplane-chat-space-2);
5262
+ border: 1px dashed var(--tplane-chat-separator);
5263
+ border-radius: var(--tplane-chat-radius-button);
5212
5264
  background: transparent;
5213
- color: var(--ngaf-chat-primary);
5265
+ color: var(--tplane-chat-primary);
5214
5266
  cursor: pointer;
5215
- font-size: var(--ngaf-chat-font-size-sm);
5267
+ font-size: var(--tplane-chat-font-size-sm);
5216
5268
  box-sizing: border-box;
5217
5269
  transition: background 150ms ease;
5218
5270
  }
5219
- .chat-thread-list__new:hover { background: var(--ngaf-chat-surface-alt); }
5271
+ .chat-thread-list__new:hover { background: var(--tplane-chat-surface-alt); }
5220
5272
  .chat-thread-list__item-wrap {
5221
5273
  position: relative;
5222
5274
  display: flex;
@@ -5233,7 +5285,7 @@ const CHAT_THREAD_LIST_STYLES = `
5233
5285
  height: 28px;
5234
5286
  border: 0;
5235
5287
  background: transparent;
5236
- color: var(--ngaf-chat-text-muted);
5288
+ color: var(--tplane-chat-text-muted);
5237
5289
  border-radius: 4px;
5238
5290
  cursor: pointer;
5239
5291
  opacity: 0;
@@ -5247,12 +5299,12 @@ const CHAT_THREAD_LIST_STYLES = `
5247
5299
  opacity: 1;
5248
5300
  }
5249
5301
  .chat-thread-list__kebab:hover {
5250
- background: var(--ngaf-chat-surface-alt);
5251
- color: var(--ngaf-chat-text);
5302
+ background: var(--tplane-chat-surface-alt);
5303
+ color: var(--tplane-chat-text);
5252
5304
  }
5253
5305
  .chat-thread-list__kebab:focus-visible {
5254
5306
  opacity: 1;
5255
- outline: 2px solid var(--ngaf-chat-primary);
5307
+ outline: 2px solid var(--tplane-chat-primary);
5256
5308
  outline-offset: 2px;
5257
5309
  }
5258
5310
  .chat-thread-list__initial {
@@ -5262,8 +5314,8 @@ const CHAT_THREAD_LIST_STYLES = `
5262
5314
  border-radius: 50%;
5263
5315
  align-items: center;
5264
5316
  justify-content: center;
5265
- background: var(--ngaf-chat-surface-alt);
5266
- color: var(--ngaf-chat-text);
5317
+ background: var(--tplane-chat-surface-alt);
5318
+ color: var(--tplane-chat-text);
5267
5319
  font-weight: 500;
5268
5320
  font-size: 13px;
5269
5321
  flex-shrink: 0;
@@ -5272,18 +5324,18 @@ const CHAT_THREAD_LIST_STYLES = `
5272
5324
  width: 11px;
5273
5325
  height: 11px;
5274
5326
  margin-right: 4px;
5275
- color: var(--ngaf-chat-text-muted);
5327
+ color: var(--tplane-chat-text-muted);
5276
5328
  vertical-align: -1px;
5277
5329
  display: inline-block;
5278
5330
  }
5279
5331
  .chat-thread-list__edit {
5280
5332
  flex: 1 1 auto;
5281
- border: 1px solid var(--ngaf-chat-primary);
5282
- border-radius: var(--ngaf-chat-radius-button);
5283
- background: var(--ngaf-chat-bg);
5284
- color: var(--ngaf-chat-text);
5333
+ border: 1px solid var(--tplane-chat-primary);
5334
+ border-radius: var(--tplane-chat-radius-button);
5335
+ background: var(--tplane-chat-bg);
5336
+ color: var(--tplane-chat-text);
5285
5337
  font: inherit;
5286
- font-size: var(--ngaf-chat-font-size-sm);
5338
+ font-size: var(--tplane-chat-font-size-sm);
5287
5339
  padding: 6px 10px;
5288
5340
  min-height: 36px;
5289
5341
  outline: none;
@@ -5314,7 +5366,7 @@ const CHAT_THREAD_LIST_STYLES = `
5314
5366
  display: inline-flex;
5315
5367
  align-items: center;
5316
5368
  justify-content: center;
5317
- color: var(--ngaf-chat-text-muted);
5369
+ color: var(--tplane-chat-text-muted);
5318
5370
  font-size: 11px;
5319
5371
  line-height: 1;
5320
5372
  letter-spacing: -1px;
@@ -5345,7 +5397,7 @@ const CHAT_THREAD_LIST_STYLES = `
5345
5397
  left: 4px;
5346
5398
  right: 4px;
5347
5399
  height: 2px;
5348
- background: var(--ngaf-chat-primary);
5400
+ background: var(--tplane-chat-primary);
5349
5401
  border-radius: 1px;
5350
5402
  pointer-events: none;
5351
5403
  }
@@ -5913,7 +5965,7 @@ class ChatThreadListComponent {
5913
5965
  (confirmed)="performDelete()"
5914
5966
  (cancelled)="confirmDeleteId.set(null)"
5915
5967
  />
5916
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:var(--ngaf-chat-space-2)}.chat-thread-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-thread-list__item{display:flex;flex-direction:column;gap:2px;min-height:36px;padding:8px 12px;border-radius:var(--ngaf-chat-radius-button);cursor:pointer;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size-sm);background:transparent;border:0;text-align:left;width:100%;box-sizing:border-box;transition:background-color .15s ease}.chat-thread-list__item:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 5%,transparent)}.chat-thread-list__item[data-active=true]{background:var(--ngaf-chat-surface-alt);font-weight:500}.chat-thread-list__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.chat-thread-list__item-time{font-size:11px;color:var(--ngaf-chat-text-muted);display:block}.chat-thread-list__new{display:block;width:100%;height:36px;margin-bottom:var(--ngaf-chat-space-2);border:1px dashed var(--ngaf-chat-separator);border-radius:var(--ngaf-chat-radius-button);background:transparent;color:var(--ngaf-chat-primary);cursor:pointer;font-size:var(--ngaf-chat-font-size-sm);box-sizing:border-box;transition:background .15s ease}.chat-thread-list__new:hover{background:var(--ngaf-chat-surface-alt)}.chat-thread-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-thread-list__item-wrap .chat-thread-list__item{flex:1 1 auto;min-width:0}.chat-thread-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--ngaf-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-thread-list__item-wrap:hover .chat-thread-list__kebab,.chat-thread-list__item-wrap:focus-within .chat-thread-list__kebab{opacity:1}.chat-thread-list__kebab:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-thread-list__kebab:focus-visible{opacity:1;outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-thread-list__initial{display:none;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);font-weight:500;font-size:13px;flex-shrink:0}.chat-thread-list__item-pin{width:11px;height:11px;margin-right:4px;color:var(--ngaf-chat-text-muted);vertical-align:-1px;display:inline-block}.chat-thread-list__edit{flex:1 1 auto;border:1px solid var(--ngaf-chat-primary);border-radius:var(--ngaf-chat-radius-button);background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);padding:6px 10px;min-height:36px;outline:none;box-sizing:border-box}.chat-thread-list__pin-slot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-right:4px;flex-shrink:0;vertical-align:-1px}.chat-thread-list__pin-slot .chat-thread-list__item-pin{position:absolute;inset:0;width:13px;height:13px;opacity:1;transition:opacity .1s ease}.chat-thread-list__pin-slot .chat-thread-list__grip{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ngaf-chat-text-muted);font-size:11px;line-height:1;letter-spacing:-1px;opacity:0;transition:opacity .1s ease;-webkit-user-select:none;user-select:none;pointer-events:none}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__item-pin,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__item-pin{opacity:0}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__grip,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__grip{opacity:1}.chat-thread-list__item-wrap[draggable=true]{cursor:grab}.chat-thread-list__item-wrap[draggable=true]:active{cursor:grabbing}.chat-thread-list__item-wrap[data-dragging=true]{opacity:.4}.chat-thread-list__item-wrap[data-drop-position=before]:before,.chat-thread-list__item-wrap[data-drop-position=after]:after{content:\"\";position:absolute;left:4px;right:4px;height:2px;background:var(--ngaf-chat-primary);border-radius:1px;pointer-events:none}.chat-thread-list__item-wrap[data-drop-position=before]:before{top:-1px}.chat-thread-list__item-wrap[data-drop-position=after]:after{bottom:-1px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChatOverflowMenuComponent, selector: "chat-overflow-menu", inputs: ["open", "items", "anchor", "anchorPos"], outputs: ["itemSelected", "closed"] }, { kind: "component", type: ChatConfirmDialogComponent, selector: "chat-confirm-dialog", inputs: ["open", "title", "body", "confirmLabel", "cancelLabel", "tone"], outputs: ["confirmed", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5968
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:var(--tplane-chat-space-2)}.chat-thread-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-thread-list__item{display:flex;flex-direction:column;gap:2px;min-height:36px;padding:8px 12px;border-radius:var(--tplane-chat-radius-button);cursor:pointer;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size-sm);background:transparent;border:0;text-align:left;width:100%;box-sizing:border-box;transition:background-color .15s ease}.chat-thread-list__item:hover{background:color-mix(in srgb,var(--tplane-chat-text) 5%,transparent)}.chat-thread-list__item[data-active=true]{background:var(--tplane-chat-surface-alt);font-weight:500}.chat-thread-list__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.chat-thread-list__item-time{font-size:11px;color:var(--tplane-chat-text-muted);display:block}.chat-thread-list__new{display:block;width:100%;height:36px;margin-bottom:var(--tplane-chat-space-2);border:1px dashed var(--tplane-chat-separator);border-radius:var(--tplane-chat-radius-button);background:transparent;color:var(--tplane-chat-primary);cursor:pointer;font-size:var(--tplane-chat-font-size-sm);box-sizing:border-box;transition:background .15s ease}.chat-thread-list__new:hover{background:var(--tplane-chat-surface-alt)}.chat-thread-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-thread-list__item-wrap .chat-thread-list__item{flex:1 1 auto;min-width:0}.chat-thread-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--tplane-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-thread-list__item-wrap:hover .chat-thread-list__kebab,.chat-thread-list__item-wrap:focus-within .chat-thread-list__kebab{opacity:1}.chat-thread-list__kebab:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-thread-list__kebab:focus-visible{opacity:1;outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-thread-list__initial{display:none;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);font-weight:500;font-size:13px;flex-shrink:0}.chat-thread-list__item-pin{width:11px;height:11px;margin-right:4px;color:var(--tplane-chat-text-muted);vertical-align:-1px;display:inline-block}.chat-thread-list__edit{flex:1 1 auto;border:1px solid var(--tplane-chat-primary);border-radius:var(--tplane-chat-radius-button);background:var(--tplane-chat-bg);color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);padding:6px 10px;min-height:36px;outline:none;box-sizing:border-box}.chat-thread-list__pin-slot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-right:4px;flex-shrink:0;vertical-align:-1px}.chat-thread-list__pin-slot .chat-thread-list__item-pin{position:absolute;inset:0;width:13px;height:13px;opacity:1;transition:opacity .1s ease}.chat-thread-list__pin-slot .chat-thread-list__grip{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;color:var(--tplane-chat-text-muted);font-size:11px;line-height:1;letter-spacing:-1px;opacity:0;transition:opacity .1s ease;-webkit-user-select:none;user-select:none;pointer-events:none}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__item-pin,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__item-pin{opacity:0}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__grip,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__grip{opacity:1}.chat-thread-list__item-wrap[draggable=true]{cursor:grab}.chat-thread-list__item-wrap[draggable=true]:active{cursor:grabbing}.chat-thread-list__item-wrap[data-dragging=true]{opacity:.4}.chat-thread-list__item-wrap[data-drop-position=before]:before,.chat-thread-list__item-wrap[data-drop-position=after]:after{content:\"\";position:absolute;left:4px;right:4px;height:2px;background:var(--tplane-chat-primary);border-radius:1px;pointer-events:none}.chat-thread-list__item-wrap[data-drop-position=before]:before{top:-1px}.chat-thread-list__item-wrap[data-drop-position=after]:after{bottom:-1px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ChatOverflowMenuComponent, selector: "chat-overflow-menu", inputs: ["open", "items", "anchor", "anchorPos"], outputs: ["itemSelected", "closed"] }, { kind: "component", type: ChatConfirmDialogComponent, selector: "chat-confirm-dialog", inputs: ["open", "title", "body", "confirmLabel", "cancelLabel", "tone"], outputs: ["confirmed", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5917
5969
  }
5918
5970
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatThreadListComponent, decorators: [{
5919
5971
  type: Component,
@@ -6023,13 +6075,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6023
6075
  (confirmed)="performDelete()"
6024
6076
  (cancelled)="confirmDeleteId.set(null)"
6025
6077
  />
6026
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:var(--ngaf-chat-space-2)}.chat-thread-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-thread-list__item{display:flex;flex-direction:column;gap:2px;min-height:36px;padding:8px 12px;border-radius:var(--ngaf-chat-radius-button);cursor:pointer;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size-sm);background:transparent;border:0;text-align:left;width:100%;box-sizing:border-box;transition:background-color .15s ease}.chat-thread-list__item:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 5%,transparent)}.chat-thread-list__item[data-active=true]{background:var(--ngaf-chat-surface-alt);font-weight:500}.chat-thread-list__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.chat-thread-list__item-time{font-size:11px;color:var(--ngaf-chat-text-muted);display:block}.chat-thread-list__new{display:block;width:100%;height:36px;margin-bottom:var(--ngaf-chat-space-2);border:1px dashed var(--ngaf-chat-separator);border-radius:var(--ngaf-chat-radius-button);background:transparent;color:var(--ngaf-chat-primary);cursor:pointer;font-size:var(--ngaf-chat-font-size-sm);box-sizing:border-box;transition:background .15s ease}.chat-thread-list__new:hover{background:var(--ngaf-chat-surface-alt)}.chat-thread-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-thread-list__item-wrap .chat-thread-list__item{flex:1 1 auto;min-width:0}.chat-thread-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--ngaf-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-thread-list__item-wrap:hover .chat-thread-list__kebab,.chat-thread-list__item-wrap:focus-within .chat-thread-list__kebab{opacity:1}.chat-thread-list__kebab:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-thread-list__kebab:focus-visible{opacity:1;outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-thread-list__initial{display:none;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);font-weight:500;font-size:13px;flex-shrink:0}.chat-thread-list__item-pin{width:11px;height:11px;margin-right:4px;color:var(--ngaf-chat-text-muted);vertical-align:-1px;display:inline-block}.chat-thread-list__edit{flex:1 1 auto;border:1px solid var(--ngaf-chat-primary);border-radius:var(--ngaf-chat-radius-button);background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);padding:6px 10px;min-height:36px;outline:none;box-sizing:border-box}.chat-thread-list__pin-slot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-right:4px;flex-shrink:0;vertical-align:-1px}.chat-thread-list__pin-slot .chat-thread-list__item-pin{position:absolute;inset:0;width:13px;height:13px;opacity:1;transition:opacity .1s ease}.chat-thread-list__pin-slot .chat-thread-list__grip{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ngaf-chat-text-muted);font-size:11px;line-height:1;letter-spacing:-1px;opacity:0;transition:opacity .1s ease;-webkit-user-select:none;user-select:none;pointer-events:none}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__item-pin,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__item-pin{opacity:0}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__grip,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__grip{opacity:1}.chat-thread-list__item-wrap[draggable=true]{cursor:grab}.chat-thread-list__item-wrap[draggable=true]:active{cursor:grabbing}.chat-thread-list__item-wrap[data-dragging=true]{opacity:.4}.chat-thread-list__item-wrap[data-drop-position=before]:before,.chat-thread-list__item-wrap[data-drop-position=after]:after{content:\"\";position:absolute;left:4px;right:4px;height:2px;background:var(--ngaf-chat-primary);border-radius:1px;pointer-events:none}.chat-thread-list__item-wrap[data-drop-position=before]:before{top:-1px}.chat-thread-list__item-wrap[data-drop-position=after]:after{bottom:-1px}\n"] }]
6078
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:var(--tplane-chat-space-2)}.chat-thread-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-thread-list__item{display:flex;flex-direction:column;gap:2px;min-height:36px;padding:8px 12px;border-radius:var(--tplane-chat-radius-button);cursor:pointer;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size-sm);background:transparent;border:0;text-align:left;width:100%;box-sizing:border-box;transition:background-color .15s ease}.chat-thread-list__item:hover{background:color-mix(in srgb,var(--tplane-chat-text) 5%,transparent)}.chat-thread-list__item[data-active=true]{background:var(--tplane-chat-surface-alt);font-weight:500}.chat-thread-list__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.chat-thread-list__item-time{font-size:11px;color:var(--tplane-chat-text-muted);display:block}.chat-thread-list__new{display:block;width:100%;height:36px;margin-bottom:var(--tplane-chat-space-2);border:1px dashed var(--tplane-chat-separator);border-radius:var(--tplane-chat-radius-button);background:transparent;color:var(--tplane-chat-primary);cursor:pointer;font-size:var(--tplane-chat-font-size-sm);box-sizing:border-box;transition:background .15s ease}.chat-thread-list__new:hover{background:var(--tplane-chat-surface-alt)}.chat-thread-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-thread-list__item-wrap .chat-thread-list__item{flex:1 1 auto;min-width:0}.chat-thread-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--tplane-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-thread-list__item-wrap:hover .chat-thread-list__kebab,.chat-thread-list__item-wrap:focus-within .chat-thread-list__kebab{opacity:1}.chat-thread-list__kebab:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-thread-list__kebab:focus-visible{opacity:1;outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-thread-list__initial{display:none;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);font-weight:500;font-size:13px;flex-shrink:0}.chat-thread-list__item-pin{width:11px;height:11px;margin-right:4px;color:var(--tplane-chat-text-muted);vertical-align:-1px;display:inline-block}.chat-thread-list__edit{flex:1 1 auto;border:1px solid var(--tplane-chat-primary);border-radius:var(--tplane-chat-radius-button);background:var(--tplane-chat-bg);color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);padding:6px 10px;min-height:36px;outline:none;box-sizing:border-box}.chat-thread-list__pin-slot{position:relative;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-right:4px;flex-shrink:0;vertical-align:-1px}.chat-thread-list__pin-slot .chat-thread-list__item-pin{position:absolute;inset:0;width:13px;height:13px;opacity:1;transition:opacity .1s ease}.chat-thread-list__pin-slot .chat-thread-list__grip{position:absolute;inset:0;display:inline-flex;align-items:center;justify-content:center;color:var(--tplane-chat-text-muted);font-size:11px;line-height:1;letter-spacing:-1px;opacity:0;transition:opacity .1s ease;-webkit-user-select:none;user-select:none;pointer-events:none}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__item-pin,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__item-pin{opacity:0}.chat-thread-list__item-wrap:hover .chat-thread-list__pin-slot .chat-thread-list__grip,.chat-thread-list__item-wrap:focus-within .chat-thread-list__pin-slot .chat-thread-list__grip{opacity:1}.chat-thread-list__item-wrap[draggable=true]{cursor:grab}.chat-thread-list__item-wrap[draggable=true]:active{cursor:grabbing}.chat-thread-list__item-wrap[data-dragging=true]{opacity:.4}.chat-thread-list__item-wrap[data-drop-position=before]:before,.chat-thread-list__item-wrap[data-drop-position=after]:after{content:\"\";position:absolute;left:4px;right:4px;height:2px;background:var(--tplane-chat-primary);border-radius:1px;pointer-events:none}.chat-thread-list__item-wrap[data-drop-position=before]:before{top:-1px}.chat-thread-list__item-wrap[data-drop-position=after]:after{bottom:-1px}\n"] }]
6027
6079
  }], propDecorators: { threads: [{ type: i0.Input, args: [{ isSignal: true, alias: "threads", required: true }] }], activeThreadId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeThreadId", required: false }] }], showNewThreadButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNewThreadButton", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], projects: [{ type: i0.Input, args: [{ isSignal: true, alias: "projects", required: false }] }], threadSelected: [{ type: i0.Output, args: ["threadSelected"] }], newThreadRequested: [{ type: i0.Output, args: ["newThreadRequested"] }], templateRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], editInput: [{ type: i0.ViewChild, args: ['editInput', { isSignal: true }] }] } });
6028
6080
 
6029
6081
  // libs/chat/src/lib/styles/chat-project-list.styles.ts
6030
6082
  // SPDX-License-Identifier: MIT
6031
6083
  const CHAT_PROJECT_LIST_STYLES = `
6032
- :host { display: block; padding: var(--ngaf-chat-space-2); }
6084
+ :host { display: block; padding: var(--tplane-chat-space-2); }
6033
6085
  .chat-project-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
6034
6086
  .chat-project-list__item-wrap {
6035
6087
  position: relative;
@@ -6042,10 +6094,10 @@ const CHAT_PROJECT_LIST_STYLES = `
6042
6094
  min-width: 0;
6043
6095
  min-height: 32px;
6044
6096
  padding: 6px 12px;
6045
- border-radius: var(--ngaf-chat-radius-button);
6097
+ border-radius: var(--tplane-chat-radius-button);
6046
6098
  cursor: pointer;
6047
- color: var(--ngaf-chat-text);
6048
- font-size: var(--ngaf-chat-font-size-sm);
6099
+ color: var(--tplane-chat-text);
6100
+ font-size: var(--tplane-chat-font-size-sm);
6049
6101
  background: transparent;
6050
6102
  border: 0;
6051
6103
  text-align: left;
@@ -6055,9 +6107,9 @@ const CHAT_PROJECT_LIST_STYLES = `
6055
6107
  text-overflow: ellipsis;
6056
6108
  white-space: nowrap;
6057
6109
  }
6058
- .chat-project-list__item:hover { background: color-mix(in srgb, var(--ngaf-chat-text) 5%, transparent); }
6110
+ .chat-project-list__item:hover { background: color-mix(in srgb, var(--tplane-chat-text) 5%, transparent); }
6059
6111
  .chat-project-list__item[data-active="true"] {
6060
- background: var(--ngaf-chat-surface-alt);
6112
+ background: var(--tplane-chat-surface-alt);
6061
6113
  font-weight: 500;
6062
6114
  }
6063
6115
  .chat-project-list__kebab {
@@ -6066,7 +6118,7 @@ const CHAT_PROJECT_LIST_STYLES = `
6066
6118
  height: 28px;
6067
6119
  border: 0;
6068
6120
  background: transparent;
6069
- color: var(--ngaf-chat-text-muted);
6121
+ color: var(--tplane-chat-text-muted);
6070
6122
  border-radius: 4px;
6071
6123
  cursor: pointer;
6072
6124
  opacity: 0;
@@ -6080,35 +6132,35 @@ const CHAT_PROJECT_LIST_STYLES = `
6080
6132
  opacity: 1;
6081
6133
  }
6082
6134
  .chat-project-list__kebab:hover {
6083
- background: var(--ngaf-chat-surface-alt);
6084
- color: var(--ngaf-chat-text);
6135
+ background: var(--tplane-chat-surface-alt);
6136
+ color: var(--tplane-chat-text);
6085
6137
  }
6086
6138
  .chat-project-list__kebab:focus-visible {
6087
6139
  opacity: 1;
6088
- outline: 2px solid var(--ngaf-chat-primary);
6140
+ outline: 2px solid var(--tplane-chat-primary);
6089
6141
  outline-offset: 2px;
6090
6142
  }
6091
6143
  .chat-project-list__edit {
6092
6144
  flex: 1 1 auto;
6093
- border: 1px solid var(--ngaf-chat-primary);
6094
- border-radius: var(--ngaf-chat-radius-button);
6095
- background: var(--ngaf-chat-bg);
6096
- color: var(--ngaf-chat-text);
6145
+ border: 1px solid var(--tplane-chat-primary);
6146
+ border-radius: var(--tplane-chat-radius-button);
6147
+ background: var(--tplane-chat-bg);
6148
+ color: var(--tplane-chat-text);
6097
6149
  font: inherit;
6098
- font-size: var(--ngaf-chat-font-size-sm);
6150
+ font-size: var(--tplane-chat-font-size-sm);
6099
6151
  padding: 6px 10px;
6100
6152
  min-height: 32px;
6101
6153
  outline: none;
6102
6154
  box-sizing: border-box;
6103
6155
  }
6104
6156
  .chat-project-list__new {
6105
- background: var(--ngaf-chat-surface-alt);
6106
- color: var(--ngaf-chat-text);
6157
+ background: var(--tplane-chat-surface-alt);
6158
+ color: var(--tplane-chat-text);
6107
6159
  border: 0;
6108
6160
  padding: 10px 16px;
6109
6161
  border-radius: 8px;
6110
6162
  font-family: inherit;
6111
- font-size: var(--ngaf-chat-font-size-sm);
6163
+ font-size: var(--tplane-chat-font-size-sm);
6112
6164
  font-weight: 400;
6113
6165
  display: flex;
6114
6166
  align-items: center;
@@ -6117,8 +6169,8 @@ const CHAT_PROJECT_LIST_STYLES = `
6117
6169
  width: 100%;
6118
6170
  }
6119
6171
  .chat-project-list__new:hover {
6120
- background: color-mix(in srgb, var(--ngaf-chat-text) 8%, var(--ngaf-chat-surface-alt));
6121
- color: var(--ngaf-chat-text);
6172
+ background: color-mix(in srgb, var(--tplane-chat-text) 8%, var(--tplane-chat-surface-alt));
6173
+ color: var(--tplane-chat-text);
6122
6174
  }
6123
6175
  `;
6124
6176
 
@@ -6358,7 +6410,7 @@ class ChatProjectListComponent {
6358
6410
  (confirmed)="performDelete()"
6359
6411
  (cancelled)="confirmDeleteId.set(null)"
6360
6412
  />
6361
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:var(--ngaf-chat-space-2)}.chat-project-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-project-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-project-list__item{flex:1 1 auto;min-width:0;min-height:32px;padding:6px 12px;border-radius:var(--ngaf-chat-radius-button);cursor:pointer;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size-sm);background:transparent;border:0;text-align:left;box-sizing:border-box;transition:background-color .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-project-list__item:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 5%,transparent)}.chat-project-list__item[data-active=true]{background:var(--ngaf-chat-surface-alt);font-weight:500}.chat-project-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--ngaf-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-project-list__item-wrap:hover .chat-project-list__kebab,.chat-project-list__item-wrap:focus-within .chat-project-list__kebab{opacity:1}.chat-project-list__kebab:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-project-list__kebab:focus-visible{opacity:1;outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-project-list__edit{flex:1 1 auto;border:1px solid var(--ngaf-chat-primary);border-radius:var(--ngaf-chat-radius-button);background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);padding:6px 10px;min-height:32px;outline:none;box-sizing:border-box}.chat-project-list__new{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);border:0;padding:10px 16px;border-radius:8px;font-family:inherit;font-size:var(--ngaf-chat-font-size-sm);font-weight:400;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-project-list__new:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 8%,var(--ngaf-chat-surface-alt));color:var(--ngaf-chat-text)}\n"], dependencies: [{ kind: "component", type: ChatOverflowMenuComponent, selector: "chat-overflow-menu", inputs: ["open", "items", "anchor", "anchorPos"], outputs: ["itemSelected", "closed"] }, { kind: "component", type: ChatConfirmDialogComponent, selector: "chat-confirm-dialog", inputs: ["open", "title", "body", "confirmLabel", "cancelLabel", "tone"], outputs: ["confirmed", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6413
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:var(--tplane-chat-space-2)}.chat-project-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-project-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-project-list__item{flex:1 1 auto;min-width:0;min-height:32px;padding:6px 12px;border-radius:var(--tplane-chat-radius-button);cursor:pointer;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size-sm);background:transparent;border:0;text-align:left;box-sizing:border-box;transition:background-color .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-project-list__item:hover{background:color-mix(in srgb,var(--tplane-chat-text) 5%,transparent)}.chat-project-list__item[data-active=true]{background:var(--tplane-chat-surface-alt);font-weight:500}.chat-project-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--tplane-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-project-list__item-wrap:hover .chat-project-list__kebab,.chat-project-list__item-wrap:focus-within .chat-project-list__kebab{opacity:1}.chat-project-list__kebab:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-project-list__kebab:focus-visible{opacity:1;outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-project-list__edit{flex:1 1 auto;border:1px solid var(--tplane-chat-primary);border-radius:var(--tplane-chat-radius-button);background:var(--tplane-chat-bg);color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);padding:6px 10px;min-height:32px;outline:none;box-sizing:border-box}.chat-project-list__new{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);border:0;padding:10px 16px;border-radius:8px;font-family:inherit;font-size:var(--tplane-chat-font-size-sm);font-weight:400;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-project-list__new:hover{background:color-mix(in srgb,var(--tplane-chat-text) 8%,var(--tplane-chat-surface-alt));color:var(--tplane-chat-text)}\n"], dependencies: [{ kind: "component", type: ChatOverflowMenuComponent, selector: "chat-overflow-menu", inputs: ["open", "items", "anchor", "anchorPos"], outputs: ["itemSelected", "closed"] }, { kind: "component", type: ChatConfirmDialogComponent, selector: "chat-confirm-dialog", inputs: ["open", "title", "body", "confirmLabel", "cancelLabel", "tone"], outputs: ["confirmed", "cancelled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6362
6414
  }
6363
6415
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatProjectListComponent, decorators: [{
6364
6416
  type: Component,
@@ -6439,7 +6491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6439
6491
  (confirmed)="performDelete()"
6440
6492
  (cancelled)="confirmDeleteId.set(null)"
6441
6493
  />
6442
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:var(--ngaf-chat-space-2)}.chat-project-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-project-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-project-list__item{flex:1 1 auto;min-width:0;min-height:32px;padding:6px 12px;border-radius:var(--ngaf-chat-radius-button);cursor:pointer;color:var(--ngaf-chat-text);font-size:var(--ngaf-chat-font-size-sm);background:transparent;border:0;text-align:left;box-sizing:border-box;transition:background-color .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-project-list__item:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 5%,transparent)}.chat-project-list__item[data-active=true]{background:var(--ngaf-chat-surface-alt);font-weight:500}.chat-project-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--ngaf-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-project-list__item-wrap:hover .chat-project-list__kebab,.chat-project-list__item-wrap:focus-within .chat-project-list__kebab{opacity:1}.chat-project-list__kebab:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-project-list__kebab:focus-visible{opacity:1;outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-project-list__edit{flex:1 1 auto;border:1px solid var(--ngaf-chat-primary);border-radius:var(--ngaf-chat-radius-button);background:var(--ngaf-chat-bg);color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);padding:6px 10px;min-height:32px;outline:none;box-sizing:border-box}.chat-project-list__new{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);border:0;padding:10px 16px;border-radius:8px;font-family:inherit;font-size:var(--ngaf-chat-font-size-sm);font-weight:400;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-project-list__new:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 8%,var(--ngaf-chat-surface-alt));color:var(--ngaf-chat-text)}\n"] }]
6494
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:var(--tplane-chat-space-2)}.chat-project-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.chat-project-list__item-wrap{position:relative;display:flex;align-items:center;gap:4px}.chat-project-list__item{flex:1 1 auto;min-width:0;min-height:32px;padding:6px 12px;border-radius:var(--tplane-chat-radius-button);cursor:pointer;color:var(--tplane-chat-text);font-size:var(--tplane-chat-font-size-sm);background:transparent;border:0;text-align:left;box-sizing:border-box;transition:background-color .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-project-list__item:hover{background:color-mix(in srgb,var(--tplane-chat-text) 5%,transparent)}.chat-project-list__item[data-active=true]{background:var(--tplane-chat-surface-alt);font-weight:500}.chat-project-list__kebab{flex-shrink:0;width:28px;height:28px;border:0;background:transparent;color:var(--tplane-chat-text-muted);border-radius:4px;cursor:pointer;opacity:0;transition:opacity .1s ease;padding:0;line-height:1;font-size:18px}.chat-project-list__item-wrap:hover .chat-project-list__kebab,.chat-project-list__item-wrap:focus-within .chat-project-list__kebab{opacity:1}.chat-project-list__kebab:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-project-list__kebab:focus-visible{opacity:1;outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-project-list__edit{flex:1 1 auto;border:1px solid var(--tplane-chat-primary);border-radius:var(--tplane-chat-radius-button);background:var(--tplane-chat-bg);color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);padding:6px 10px;min-height:32px;outline:none;box-sizing:border-box}.chat-project-list__new{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);border:0;padding:10px 16px;border-radius:8px;font-family:inherit;font-size:var(--tplane-chat-font-size-sm);font-weight:400;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-project-list__new:hover{background:color-mix(in srgb,var(--tplane-chat-text) 8%,var(--tplane-chat-surface-alt));color:var(--tplane-chat-text)}\n"] }]
6443
6495
  }], ctorParameters: () => [], propDecorators: { projects: [{ type: i0.Input, args: [{ isSignal: true, alias: "projects", required: true }] }], activeProjectId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeProjectId", required: false }] }], showNewProjectButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNewProjectButton", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], projectSelected: [{ type: i0.Output, args: ["projectSelected"] }], newProjectRequested: [{ type: i0.Output, args: ["newProjectRequested"] }], createInput: [{ type: i0.ViewChild, args: ['createInput', { isSignal: true }] }], editInput: [{ type: i0.ViewChild, args: ['editInput', { isSignal: true }] }] } });
6444
6496
 
6445
6497
  // SPDX-License-Identifier: MIT
@@ -6457,7 +6509,7 @@ class ChatGenuiSkeletonComponent {
6457
6509
  <div class="chat-genui-skeleton__row"></div>
6458
6510
  </div>
6459
6511
  </div>
6460
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;width:100%}.chat-genui-skeleton{border:1px solid var(--ngaf-chat-separator);border-radius:10px;padding:14px;background:var(--ngaf-chat-surface-alt)}.chat-genui-skeleton__label{font-size:12px;color:var(--ngaf-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.chat-genui-skeleton__rows{display:flex;flex-direction:column;gap:8px}.chat-genui-skeleton__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--ngaf-chat-separator) 0%,color-mix(in srgb,var(--ngaf-chat-separator) 70%,transparent) 50%,var(--ngaf-chat-separator) 100%);background-size:200% 100%;animation:chat-genui-skeleton-shimmer 1.4s ease-in-out infinite}.chat-genui-skeleton__row:nth-child(1){width:70%}.chat-genui-skeleton__row:nth-child(2){width:90%}.chat-genui-skeleton__row:nth-child(3){width:50%}@keyframes chat-genui-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6512
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;width:100%}.chat-genui-skeleton{border:1px solid var(--tplane-chat-separator);border-radius:10px;padding:14px;background:var(--tplane-chat-surface-alt)}.chat-genui-skeleton__label{font-size:12px;color:var(--tplane-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.chat-genui-skeleton__rows{display:flex;flex-direction:column;gap:8px}.chat-genui-skeleton__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--tplane-chat-separator) 0%,color-mix(in srgb,var(--tplane-chat-separator) 70%,transparent) 50%,var(--tplane-chat-separator) 100%);background-size:200% 100%;animation:chat-genui-skeleton-shimmer 1.4s ease-in-out infinite}.chat-genui-skeleton__row:nth-child(1){width:70%}.chat-genui-skeleton__row:nth-child(2){width:90%}.chat-genui-skeleton__row:nth-child(3){width:50%}@keyframes chat-genui-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6461
6513
  }
6462
6514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatGenuiSkeletonComponent, decorators: [{
6463
6515
  type: Component,
@@ -6473,7 +6525,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6473
6525
  <div class="chat-genui-skeleton__row"></div>
6474
6526
  </div>
6475
6527
  </div>
6476
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;width:100%}.chat-genui-skeleton{border:1px solid var(--ngaf-chat-separator);border-radius:10px;padding:14px;background:var(--ngaf-chat-surface-alt)}.chat-genui-skeleton__label{font-size:12px;color:var(--ngaf-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.chat-genui-skeleton__rows{display:flex;flex-direction:column;gap:8px}.chat-genui-skeleton__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--ngaf-chat-separator) 0%,color-mix(in srgb,var(--ngaf-chat-separator) 70%,transparent) 50%,var(--ngaf-chat-separator) 100%);background-size:200% 100%;animation:chat-genui-skeleton-shimmer 1.4s ease-in-out infinite}.chat-genui-skeleton__row:nth-child(1){width:70%}.chat-genui-skeleton__row:nth-child(2){width:90%}.chat-genui-skeleton__row:nth-child(3){width:50%}@keyframes chat-genui-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
6528
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;width:100%}.chat-genui-skeleton{border:1px solid var(--tplane-chat-separator);border-radius:10px;padding:14px;background:var(--tplane-chat-surface-alt)}.chat-genui-skeleton__label{font-size:12px;color:var(--tplane-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.chat-genui-skeleton__rows{display:flex;flex-direction:column;gap:8px}.chat-genui-skeleton__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--tplane-chat-separator) 0%,color-mix(in srgb,var(--tplane-chat-separator) 70%,transparent) 50%,var(--tplane-chat-separator) 100%);background-size:200% 100%;animation:chat-genui-skeleton-shimmer 1.4s ease-in-out infinite}.chat-genui-skeleton__row:nth-child(1){width:70%}.chat-genui-skeleton__row:nth-child(2){width:90%}.chat-genui-skeleton__row:nth-child(3){width:50%}@keyframes chat-genui-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
6477
6529
  }] });
6478
6530
 
6479
6531
  // SPDX-License-Identifier: MIT
@@ -6527,17 +6579,17 @@ const CHAT_WELCOME_STYLES = `
6527
6579
  justify-content: center;
6528
6580
  width: 100%;
6529
6581
  min-height: 0;
6530
- padding: var(--ngaf-chat-welcome-padding, 24px);
6582
+ padding: var(--tplane-chat-welcome-padding, 24px);
6531
6583
  box-sizing: border-box;
6532
- animation: ngaf-chat-welcome-mount 200ms ease-out both;
6584
+ animation: tplane-chat-welcome-mount 200ms ease-out both;
6533
6585
  }
6534
6586
  .chat-welcome__inner {
6535
6587
  display: flex;
6536
6588
  flex-direction: column;
6537
6589
  align-items: center;
6538
- gap: var(--ngaf-chat-welcome-gap, 1.25rem);
6590
+ gap: var(--tplane-chat-welcome-gap, 1.25rem);
6539
6591
  width: 100%;
6540
- max-width: var(--ngaf-chat-welcome-max-width, 36rem);
6592
+ max-width: var(--tplane-chat-welcome-max-width, 36rem);
6541
6593
  text-align: center;
6542
6594
  }
6543
6595
  .chat-welcome__beacon {
@@ -6546,17 +6598,17 @@ const CHAT_WELCOME_STYLES = `
6546
6598
  height: 14px;
6547
6599
  border-radius: 50%;
6548
6600
  background: radial-gradient(circle at 30% 30%,
6549
- var(--ngaf-chat-text) 0%,
6550
- var(--ngaf-chat-text-muted) 70%,
6601
+ var(--tplane-chat-text) 0%,
6602
+ var(--tplane-chat-text-muted) 70%,
6551
6603
  transparent 100%);
6552
- animation: ngaf-chat-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
6604
+ animation: tplane-chat-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
6553
6605
  margin-bottom: 8px;
6554
6606
  }
6555
6607
  .chat-welcome__title {
6556
6608
  margin: 0;
6557
6609
  font-size: 1.25rem;
6558
6610
  font-weight: 500;
6559
- color: var(--ngaf-chat-text);
6611
+ color: var(--tplane-chat-text);
6560
6612
  line-height: 1.3;
6561
6613
  }
6562
6614
  @media (min-width: 768px) {
@@ -6594,23 +6646,23 @@ const CHAT_WELCOME_SUGGESTION_STYLES = `
6594
6646
  align-items: center;
6595
6647
  gap: 0.5rem;
6596
6648
  padding: 10px 16px;
6597
- background: var(--ngaf-chat-surface);
6598
- border: 1px solid var(--ngaf-chat-separator);
6649
+ background: var(--tplane-chat-surface);
6650
+ border: 1px solid var(--tplane-chat-separator);
6599
6651
  border-radius: 9999px;
6600
- color: var(--ngaf-chat-text);
6652
+ color: var(--tplane-chat-text);
6601
6653
  font-family: inherit;
6602
- font-size: var(--ngaf-chat-font-size-sm);
6654
+ font-size: var(--tplane-chat-font-size-sm);
6603
6655
  text-align: center;
6604
6656
  cursor: pointer;
6605
6657
  transition: background 150ms ease, border-color 150ms ease, transform 120ms ease;
6606
6658
  }
6607
6659
  .chat-welcome-suggestion:hover {
6608
- background: var(--ngaf-chat-surface-alt);
6609
- border-color: var(--ngaf-chat-text-muted);
6660
+ background: var(--tplane-chat-surface-alt);
6661
+ border-color: var(--tplane-chat-text-muted);
6610
6662
  }
6611
6663
  .chat-welcome-suggestion:active { transform: scale(0.98); }
6612
6664
  .chat-welcome-suggestion:focus-visible {
6613
- outline: 2px solid var(--ngaf-chat-text-muted);
6665
+ outline: 2px solid var(--tplane-chat-text-muted);
6614
6666
  outline-offset: 2px;
6615
6667
  }
6616
6668
  .chat-welcome-suggestion__label { white-space: nowrap; }
@@ -6629,9 +6681,9 @@ const CHAT_WELCOME_SUGGESTION_STYLES = `
6629
6681
  * [chatWelcomeSuggestions] — projects suggestion rows below the input
6630
6682
  *
6631
6683
  * Host CSS variables (override on :host or any ancestor):
6632
- * --ngaf-chat-welcome-max-width default 36rem
6633
- * --ngaf-chat-welcome-gap default 1.25rem
6634
- * --ngaf-chat-welcome-padding default 24px
6684
+ * --tplane-chat-welcome-max-width default 36rem
6685
+ * --tplane-chat-welcome-gap default 1.25rem
6686
+ * --tplane-chat-welcome-padding default 24px
6635
6687
  */
6636
6688
  class ChatWelcomeComponent {
6637
6689
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWelcomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -6646,7 +6698,7 @@ class ChatWelcomeComponent {
6646
6698
  <ng-content select="[chatWelcomeSuggestions]" />
6647
6699
  </div>
6648
6700
  </div>
6649
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex:1 1 auto;align-items:center;justify-content:center;width:100%;min-height:0;padding:var(--ngaf-chat-welcome-padding, 24px);box-sizing:border-box;animation:ngaf-chat-welcome-mount .2s ease-out both}.chat-welcome__inner{display:flex;flex-direction:column;align-items:center;gap:var(--ngaf-chat-welcome-gap, 1.25rem);width:100%;max-width:var(--ngaf-chat-welcome-max-width, 36rem);text-align:center}.chat-welcome__beacon{display:inline-block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--ngaf-chat-text) 0%,var(--ngaf-chat-text-muted) 70%,transparent 100%);animation:ngaf-chat-pulse 2s cubic-bezier(.4,0,.6,1) infinite;margin-bottom:8px}.chat-welcome__title{margin:0;font-size:1.25rem;font-weight:500;color:var(--ngaf-chat-text);line-height:1.3}@media(min-width:768px){.chat-welcome__title{font-size:1.5rem}}.chat-welcome__input{width:100%;margin-top:.5rem}.chat-welcome__suggestions{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.chat-welcome__suggestions>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chat-welcome__suggestions:empty{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6701
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex:1 1 auto;align-items:center;justify-content:center;width:100%;min-height:0;padding:var(--tplane-chat-welcome-padding, 24px);box-sizing:border-box;animation:tplane-chat-welcome-mount .2s ease-out both}.chat-welcome__inner{display:flex;flex-direction:column;align-items:center;gap:var(--tplane-chat-welcome-gap, 1.25rem);width:100%;max-width:var(--tplane-chat-welcome-max-width, 36rem);text-align:center}.chat-welcome__beacon{display:inline-block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--tplane-chat-text) 0%,var(--tplane-chat-text-muted) 70%,transparent 100%);animation:tplane-chat-pulse 2s cubic-bezier(.4,0,.6,1) infinite;margin-bottom:8px}.chat-welcome__title{margin:0;font-size:1.25rem;font-weight:500;color:var(--tplane-chat-text);line-height:1.3}@media(min-width:768px){.chat-welcome__title{font-size:1.5rem}}.chat-welcome__input{width:100%;margin-top:.5rem}.chat-welcome__suggestions{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.chat-welcome__suggestions>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chat-welcome__suggestions:empty{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6650
6702
  }
6651
6703
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWelcomeComponent, decorators: [{
6652
6704
  type: Component,
@@ -6661,7 +6713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6661
6713
  <ng-content select="[chatWelcomeSuggestions]" />
6662
6714
  </div>
6663
6715
  </div>
6664
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex:1 1 auto;align-items:center;justify-content:center;width:100%;min-height:0;padding:var(--ngaf-chat-welcome-padding, 24px);box-sizing:border-box;animation:ngaf-chat-welcome-mount .2s ease-out both}.chat-welcome__inner{display:flex;flex-direction:column;align-items:center;gap:var(--ngaf-chat-welcome-gap, 1.25rem);width:100%;max-width:var(--ngaf-chat-welcome-max-width, 36rem);text-align:center}.chat-welcome__beacon{display:inline-block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--ngaf-chat-text) 0%,var(--ngaf-chat-text-muted) 70%,transparent 100%);animation:ngaf-chat-pulse 2s cubic-bezier(.4,0,.6,1) infinite;margin-bottom:8px}.chat-welcome__title{margin:0;font-size:1.25rem;font-weight:500;color:var(--ngaf-chat-text);line-height:1.3}@media(min-width:768px){.chat-welcome__title{font-size:1.5rem}}.chat-welcome__input{width:100%;margin-top:.5rem}.chat-welcome__suggestions{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.chat-welcome__suggestions>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chat-welcome__suggestions:empty{display:none}\n"] }]
6716
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex:1 1 auto;align-items:center;justify-content:center;width:100%;min-height:0;padding:var(--tplane-chat-welcome-padding, 24px);box-sizing:border-box;animation:tplane-chat-welcome-mount .2s ease-out both}.chat-welcome__inner{display:flex;flex-direction:column;align-items:center;gap:var(--tplane-chat-welcome-gap, 1.25rem);width:100%;max-width:var(--tplane-chat-welcome-max-width, 36rem);text-align:center}.chat-welcome__beacon{display:inline-block;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--tplane-chat-text) 0%,var(--tplane-chat-text-muted) 70%,transparent 100%);animation:tplane-chat-pulse 2s cubic-bezier(.4,0,.6,1) infinite;margin-bottom:8px}.chat-welcome__title{margin:0;font-size:1.25rem;font-weight:500;color:var(--tplane-chat-text);line-height:1.3}@media(min-width:768px){.chat-welcome__title{font-size:1.5rem}}.chat-welcome__input{width:100%;margin-top:.5rem}.chat-welcome__suggestions{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.chat-welcome__suggestions>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chat-welcome__suggestions:empty{display:none}\n"] }]
6665
6717
  }] });
6666
6718
 
6667
6719
  // SPDX-License-Identifier: MIT
@@ -6684,7 +6736,7 @@ class ChatWelcomeSuggestionComponent {
6684
6736
  <span class="chat-welcome-suggestion__label">{{ label() }}</span>
6685
6737
  <span class="chat-welcome-suggestion__chevron" aria-hidden="true">›</span>
6686
6738
  </button>
6687
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:inline-block}.chat-welcome-suggestion{display:inline-flex;align-items:center;gap:.5rem;padding:10px 16px;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);border-radius:9999px;color:var(--ngaf-chat-text);font-family:inherit;font-size:var(--ngaf-chat-font-size-sm);text-align:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.chat-welcome-suggestion:hover{background:var(--ngaf-chat-surface-alt);border-color:var(--ngaf-chat-text-muted)}.chat-welcome-suggestion:active{transform:scale(.98)}.chat-welcome-suggestion:focus-visible{outline:2px solid var(--ngaf-chat-text-muted);outline-offset:2px}.chat-welcome-suggestion__label{white-space:nowrap}.chat-welcome-suggestion__chevron{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6739
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:inline-block}.chat-welcome-suggestion{display:inline-flex;align-items:center;gap:.5rem;padding:10px 16px;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);border-radius:9999px;color:var(--tplane-chat-text);font-family:inherit;font-size:var(--tplane-chat-font-size-sm);text-align:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.chat-welcome-suggestion:hover{background:var(--tplane-chat-surface-alt);border-color:var(--tplane-chat-text-muted)}.chat-welcome-suggestion:active{transform:scale(.98)}.chat-welcome-suggestion:focus-visible{outline:2px solid var(--tplane-chat-text-muted);outline-offset:2px}.chat-welcome-suggestion__label{white-space:nowrap}.chat-welcome-suggestion__chevron{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6688
6740
  }
6689
6741
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWelcomeSuggestionComponent, decorators: [{
6690
6742
  type: Component,
@@ -6700,9 +6752,286 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6700
6752
  <span class="chat-welcome-suggestion__label">{{ label() }}</span>
6701
6753
  <span class="chat-welcome-suggestion__chevron" aria-hidden="true">›</span>
6702
6754
  </button>
6703
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:inline-block}.chat-welcome-suggestion{display:inline-flex;align-items:center;gap:.5rem;padding:10px 16px;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);border-radius:9999px;color:var(--ngaf-chat-text);font-family:inherit;font-size:var(--ngaf-chat-font-size-sm);text-align:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.chat-welcome-suggestion:hover{background:var(--ngaf-chat-surface-alt);border-color:var(--ngaf-chat-text-muted)}.chat-welcome-suggestion:active{transform:scale(.98)}.chat-welcome-suggestion:focus-visible{outline:2px solid var(--ngaf-chat-text-muted);outline-offset:2px}.chat-welcome-suggestion__label{white-space:nowrap}.chat-welcome-suggestion__chevron{display:none}\n"] }]
6755
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:inline-block}.chat-welcome-suggestion{display:inline-flex;align-items:center;gap:.5rem;padding:10px 16px;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);border-radius:9999px;color:var(--tplane-chat-text);font-family:inherit;font-size:var(--tplane-chat-font-size-sm);text-align:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease}.chat-welcome-suggestion:hover{background:var(--tplane-chat-surface-alt);border-color:var(--tplane-chat-text-muted)}.chat-welcome-suggestion:active{transform:scale(.98)}.chat-welcome-suggestion:focus-visible{outline:2px solid var(--tplane-chat-text-muted);outline-offset:2px}.chat-welcome-suggestion__label{white-space:nowrap}.chat-welcome-suggestion__chevron{display:none}\n"] }]
6704
6756
  }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
6705
6757
 
6758
+ // libs/chat/src/lib/primitives/overlay/overlay-container.ts
6759
+ // SPDX-License-Identifier: MIT
6760
+ const CONTAINER_CLASS = 'chat-overlay-container';
6761
+ const STYLE_ID = 'chat-overlay-structure';
6762
+ // Structural CSS, injected once into <head> (same pattern as ROOT_TOKEN_STYLES
6763
+ // in chat-tokens.ts) so consumers need not import any stylesheet.
6764
+ const STRUCTURE_CSS = `
6765
+ .${CONTAINER_CLASS} {
6766
+ position: fixed;
6767
+ inset: 0;
6768
+ z-index: 1000;
6769
+ pointer-events: none;
6770
+ }
6771
+ .chat-overlay-pane {
6772
+ position: absolute;
6773
+ pointer-events: auto;
6774
+ }
6775
+ `;
6776
+ /** Returns the single shared overlay container appended to <body>, creating it
6777
+ * (and injecting structural CSS) on first call. */
6778
+ function getOverlayContainer(doc) {
6779
+ const existing = doc.querySelector('.' + CONTAINER_CLASS);
6780
+ if (existing)
6781
+ return existing;
6782
+ if (!doc.getElementById(STYLE_ID)) {
6783
+ const style = doc.createElement('style');
6784
+ style.id = STYLE_ID;
6785
+ style.textContent = STRUCTURE_CSS;
6786
+ doc.head.appendChild(style);
6787
+ }
6788
+ const container = doc.createElement('div');
6789
+ container.className = CONTAINER_CLASS;
6790
+ doc.body.appendChild(container);
6791
+ return container;
6792
+ }
6793
+
6794
+ // libs/chat/src/lib/primitives/overlay/connected-position.ts
6795
+ // SPDX-License-Identifier: MIT
6796
+ //
6797
+ // Minimal port of CDK's FlexibleConnectedPositionStrategy fit logic
6798
+ // (~/repos/components/src/cdk/overlay/position/flexible-connected-position-strategy.ts):
6799
+ // _getOriginPoint + _getOverlayPoint + _getOverlayFit + _pushOverlayOnScreen.
6800
+ // Omits flexible-dimensions, grow-after-open, RTL, and virtual-keyboard handling.
6801
+ function originPoint(origin, pos) {
6802
+ const x = pos.originX === 'center' ? origin.left + origin.width / 2 : pos.originX === 'start' ? origin.left : origin.right;
6803
+ const y = pos.originY === 'center' ? origin.top + origin.height / 2 : pos.originY === 'top' ? origin.top : origin.bottom;
6804
+ return { x, y };
6805
+ }
6806
+ function overlayPoint(origin, size, pos) {
6807
+ let x = origin.x;
6808
+ if (pos.overlayX === 'center')
6809
+ x -= size.width / 2;
6810
+ else if (pos.overlayX === 'end')
6811
+ x -= size.width;
6812
+ let y = origin.y;
6813
+ if (pos.overlayY === 'center')
6814
+ y -= size.height / 2;
6815
+ else if (pos.overlayY === 'bottom')
6816
+ y -= size.height;
6817
+ return { x: x + (pos.offsetX ?? 0), y: y + (pos.offsetY ?? 0) };
6818
+ }
6819
+ function fitArea(point, size, viewport) {
6820
+ const left = point.x;
6821
+ const right = point.x + size.width;
6822
+ const top = point.y;
6823
+ const bottom = point.y + size.height;
6824
+ const visibleW = Math.max(0, Math.min(right, viewport.right) - Math.max(left, viewport.left));
6825
+ const visibleH = Math.max(0, Math.min(bottom, viewport.bottom) - Math.max(top, viewport.top));
6826
+ const fits = left >= viewport.left && right <= viewport.right && top >= viewport.top && bottom <= viewport.bottom;
6827
+ return { area: visibleW * visibleH, fits };
6828
+ }
6829
+ function pushOnScreen(point, size, viewport) {
6830
+ const maxLeft = viewport.right - size.width;
6831
+ const maxTop = viewport.bottom - size.height;
6832
+ return {
6833
+ x: Math.max(viewport.left, Math.min(point.x, maxLeft)),
6834
+ y: Math.max(viewport.top, Math.min(point.y, maxTop)),
6835
+ };
6836
+ }
6837
+ /** Sensible fallback when no positions are supplied: below the origin, start-aligned. */
6838
+ const DEFAULT_POSITION = { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' };
6839
+ function computeConnectedPosition(args) {
6840
+ const { originRect, overlaySize, viewport, positions } = args;
6841
+ // An empty positions array (the directive's input default) must still anchor to
6842
+ // the trigger rather than crash on best! / render at 0,0.
6843
+ const list = positions.length ? positions : [DEFAULT_POSITION];
6844
+ let best = null;
6845
+ for (const pos of list) {
6846
+ const point = overlayPoint(originPoint(originRect, pos), overlaySize, pos);
6847
+ const { area, fits } = fitArea(point, overlaySize, viewport);
6848
+ if (fits) {
6849
+ return { top: point.y, left: point.x, position: pos };
6850
+ }
6851
+ if (!best || area > best.area)
6852
+ best = { point, pos, area };
6853
+ }
6854
+ const pushed = pushOnScreen(best.point, overlaySize, viewport);
6855
+ return { top: pushed.y, left: pushed.x, position: best.pos };
6856
+ }
6857
+ function narrowViewport(win, margin) {
6858
+ return {
6859
+ left: margin,
6860
+ top: margin,
6861
+ right: win.innerWidth - margin,
6862
+ bottom: win.innerHeight - margin,
6863
+ width: win.innerWidth - 2 * margin,
6864
+ height: win.innerHeight - 2 * margin,
6865
+ };
6866
+ }
6867
+
6868
+ // libs/chat/src/lib/primitives/overlay/connected-overlay.directive.ts
6869
+ // SPDX-License-Identifier: MIT
6870
+ /* eslint-disable @angular-eslint/no-input-rename, @angular-eslint/no-output-rename --
6871
+ * The `chatOverlay*` binding aliases ARE the intended public API: they namespace
6872
+ * the directive's inputs/outputs under the `chatOverlay` prefix (mirroring Angular
6873
+ * CDK's `cdkConnectedOverlay*` convention) rather than exposing bare names like
6874
+ * `open`/`positions` on an `<ng-template>`. The internal property names stay
6875
+ * concise, so aliasing here is deliberate, not a rename to avoid. */
6876
+ /** Marks the anchor element a connected overlay positions against. */
6877
+ class ChatOverlayOriginDirective {
6878
+ elementRef = inject(ElementRef);
6879
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatOverlayOriginDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6880
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: ChatOverlayOriginDirective, isStandalone: true, selector: "[chatOverlayOrigin]", exportAs: ["chatOverlayOrigin"], ngImport: i0 });
6881
+ }
6882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatOverlayOriginDirective, decorators: [{
6883
+ type: Directive,
6884
+ args: [{
6885
+ selector: '[chatOverlayOrigin]',
6886
+ standalone: true,
6887
+ exportAs: 'chatOverlayOrigin',
6888
+ }]
6889
+ }] });
6890
+ const VIEWPORT_MARGIN = 8;
6891
+ /**
6892
+ * Applied to an `<ng-template>`. When `chatOverlayOpen` is true, the template
6893
+ * content is portaled into the shared body-level overlay container and
6894
+ * positioned connected to `chatOverlayOrigin`, repositioning live on
6895
+ * scroll/resize. Closes on outside mousedown (via the `chatOverlayOutsideClick`
6896
+ * output) and Tab; returns focus to the origin when focus was inside the pane.
6897
+ *
6898
+ * NOTE: the directive does not own the open state — it only emits. To fully
6899
+ * close the overlay, consumers MUST handle BOTH `(chatOverlayOutsideClick)` and
6900
+ * `(chatOverlayDetach)`. Tab-close (and Escape, when the consumer routes it)
6901
+ * surface through `chatOverlayDetach`, so wiring only `chatOverlayOutsideClick`
6902
+ * leaves the overlay stuck open on Tab.
6903
+ */
6904
+ class ChatConnectedOverlayDirective {
6905
+ origin = input.required({ ...(ngDevMode ? { debugName: "origin" } : {}), alias: 'chatOverlayOrigin' });
6906
+ open = input(false, { ...(ngDevMode ? { debugName: "open" } : {}), alias: 'chatOverlayOpen' });
6907
+ positions = input([], { ...(ngDevMode ? { debugName: "positions" } : {}), alias: 'chatOverlayPositions' });
6908
+ panelClass = input('', { ...(ngDevMode ? { debugName: "panelClass" } : {}), alias: 'chatOverlayPanelClass' });
6909
+ /** Emits the pane element once attached (consumers focus content from it). */
6910
+ attached = output({ alias: 'chatOverlayAttached' });
6911
+ outsideClick = output({ alias: 'chatOverlayOutsideClick' });
6912
+ detached = output({ alias: 'chatOverlayDetach' });
6913
+ templateRef = inject((TemplateRef));
6914
+ viewContainerRef = inject(ViewContainerRef);
6915
+ document = inject(DOCUMENT);
6916
+ pane = null;
6917
+ viewRef = null;
6918
+ resizeObs = null;
6919
+ rafId = 0;
6920
+ previouslyFocused = null;
6921
+ onScrollOrResize = () => this.scheduleReposition();
6922
+ onDocMouseDown = (e) => {
6923
+ if (!this.pane)
6924
+ return;
6925
+ const path = e.composedPath();
6926
+ if (path.includes(this.pane) || path.includes(this.origin().elementRef.nativeElement))
6927
+ return;
6928
+ this.outsideClick.emit(e);
6929
+ };
6930
+ onKeydown = (e) => {
6931
+ if (e.key !== 'Tab' || !this.pane)
6932
+ return;
6933
+ const active = this.document.activeElement;
6934
+ if (this.pane.contains(active) || active === this.origin().elementRef.nativeElement) {
6935
+ this.detached.emit();
6936
+ }
6937
+ };
6938
+ constructor() {
6939
+ effect(() => {
6940
+ if (this.open())
6941
+ this.attach();
6942
+ else
6943
+ this.dispose();
6944
+ });
6945
+ inject(DestroyRef).onDestroy(() => this.dispose());
6946
+ }
6947
+ attach() {
6948
+ if (this.pane)
6949
+ return;
6950
+ const win = this.document.defaultView;
6951
+ if (!win)
6952
+ return; // SSR / detached document
6953
+ this.previouslyFocused = this.document.activeElement;
6954
+ const pane = this.document.createElement('div');
6955
+ pane.className = 'chat-overlay-pane';
6956
+ for (const c of this.normalizePanelClass())
6957
+ pane.classList.add(c);
6958
+ getOverlayContainer(this.document).appendChild(pane);
6959
+ this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef);
6960
+ this.viewRef.detectChanges();
6961
+ for (const node of this.viewRef.rootNodes)
6962
+ pane.appendChild(node);
6963
+ this.pane = pane;
6964
+ this.reposition();
6965
+ win.addEventListener('scroll', this.onScrollOrResize, { capture: true, passive: true });
6966
+ win.addEventListener('resize', this.onScrollOrResize, { passive: true });
6967
+ this.document.addEventListener('mousedown', this.onDocMouseDown, true);
6968
+ this.document.addEventListener('keydown', this.onKeydown, true);
6969
+ if (typeof win.ResizeObserver === 'function') {
6970
+ this.resizeObs = new win.ResizeObserver(() => this.scheduleReposition());
6971
+ this.resizeObs.observe(this.origin().elementRef.nativeElement);
6972
+ this.resizeObs.observe(pane);
6973
+ }
6974
+ this.attached.emit(pane);
6975
+ }
6976
+ scheduleReposition() {
6977
+ const win = this.document.defaultView;
6978
+ if (!win || !this.pane)
6979
+ return;
6980
+ if (this.rafId)
6981
+ win.cancelAnimationFrame(this.rafId);
6982
+ this.rafId = win.requestAnimationFrame(() => this.reposition());
6983
+ }
6984
+ reposition() {
6985
+ const win = this.document.defaultView;
6986
+ if (!win || !this.pane)
6987
+ return;
6988
+ const r = this.pane.getBoundingClientRect();
6989
+ const result = computeConnectedPosition({
6990
+ originRect: this.origin().elementRef.nativeElement.getBoundingClientRect(),
6991
+ overlaySize: { width: r.width, height: r.height },
6992
+ viewport: narrowViewport(win, VIEWPORT_MARGIN),
6993
+ positions: this.positions(),
6994
+ });
6995
+ this.pane.style.top = `${Math.round(result.top)}px`;
6996
+ this.pane.style.left = `${Math.round(result.left)}px`;
6997
+ }
6998
+ dispose() {
6999
+ const win = this.document.defaultView;
7000
+ if (this.rafId && win)
7001
+ win.cancelAnimationFrame(this.rafId);
7002
+ this.rafId = 0;
7003
+ if (win) {
7004
+ win.removeEventListener('scroll', this.onScrollOrResize, { capture: true });
7005
+ win.removeEventListener('resize', this.onScrollOrResize);
7006
+ }
7007
+ this.document.removeEventListener('mousedown', this.onDocMouseDown, true);
7008
+ this.document.removeEventListener('keydown', this.onKeydown, true);
7009
+ this.resizeObs?.disconnect();
7010
+ this.resizeObs = null;
7011
+ const focusWasInPane = !!this.pane && this.pane.contains(this.document.activeElement);
7012
+ this.viewRef?.destroy();
7013
+ this.viewRef = null;
7014
+ this.pane?.remove();
7015
+ this.pane = null;
7016
+ if (focusWasInPane && this.previouslyFocused)
7017
+ this.previouslyFocused.focus();
7018
+ this.previouslyFocused = null;
7019
+ }
7020
+ normalizePanelClass() {
7021
+ const pc = this.panelClass();
7022
+ return Array.isArray(pc) ? pc : pc ? [pc] : [];
7023
+ }
7024
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatConnectedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7025
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ChatConnectedOverlayDirective, isStandalone: true, selector: "[chatConnectedOverlay]", inputs: { origin: { classPropertyName: "origin", publicName: "chatOverlayOrigin", isSignal: true, isRequired: true, transformFunction: null }, open: { classPropertyName: "open", publicName: "chatOverlayOpen", isSignal: true, isRequired: false, transformFunction: null }, positions: { classPropertyName: "positions", publicName: "chatOverlayPositions", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "chatOverlayPanelClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { attached: "chatOverlayAttached", outsideClick: "chatOverlayOutsideClick", detached: "chatOverlayDetach" }, ngImport: i0 });
7026
+ }
7027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatConnectedOverlayDirective, decorators: [{
7028
+ type: Directive,
7029
+ args: [{
7030
+ selector: '[chatConnectedOverlay]',
7031
+ standalone: true,
7032
+ }]
7033
+ }], ctorParameters: () => [], propDecorators: { origin: [{ type: i0.Input, args: [{ isSignal: true, alias: "chatOverlayOrigin", required: true }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "chatOverlayOpen", required: false }] }], positions: [{ type: i0.Input, args: [{ isSignal: true, alias: "chatOverlayPositions", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "chatOverlayPanelClass", required: false }] }], attached: [{ type: i0.Output, args: ["chatOverlayAttached"] }], outsideClick: [{ type: i0.Output, args: ["chatOverlayOutsideClick"] }], detached: [{ type: i0.Output, args: ["chatOverlayDetach"] }] } });
7034
+
6706
7035
  // libs/chat/src/lib/styles/chat-select.styles.ts
6707
7036
  // SPDX-License-Identifier: MIT
6708
7037
  const CHAT_SELECT_STYLES = `
@@ -6716,9 +7045,9 @@ const CHAT_SELECT_STYLES = `
6716
7045
  border: 0;
6717
7046
  border-radius: 9999px;
6718
7047
  background: transparent;
6719
- color: var(--ngaf-chat-text-muted);
7048
+ color: var(--tplane-chat-text-muted);
6720
7049
  font: inherit;
6721
- font-size: var(--ngaf-chat-font-size-sm);
7050
+ font-size: var(--tplane-chat-font-size-sm);
6722
7051
  display: inline-flex;
6723
7052
  align-items: center;
6724
7053
  gap: 4px;
@@ -6726,8 +7055,8 @@ const CHAT_SELECT_STYLES = `
6726
7055
  transition: background 120ms ease, color 120ms ease;
6727
7056
  }
6728
7057
  .chat-select__trigger:hover:not(:disabled) {
6729
- background: var(--ngaf-chat-surface-alt);
6730
- color: var(--ngaf-chat-text);
7058
+ background: var(--tplane-chat-surface-alt);
7059
+ color: var(--tplane-chat-text);
6731
7060
  }
6732
7061
  .chat-select__trigger:disabled {
6733
7062
  opacity: 0.5;
@@ -6742,19 +7071,21 @@ const CHAT_SELECT_STYLES = `
6742
7071
  .chat-select__trigger.is-open .chat-select__chevron {
6743
7072
  transform: rotate(180deg);
6744
7073
  }
7074
+ /* The menu is rendered inside the chat connected-overlay pane (a body-level
7075
+ portal), so it no longer positions itself — the overlay primitive places
7076
+ the pane. It keeps only its own box styling here. Min/max width can be
7077
+ overridden per consumer via the overlay panelClass (see chat-select
7078
+ panelClass input). */
6745
7079
  .chat-select__menu {
6746
- position: absolute;
6747
- bottom: calc(100% + 8px);
6748
- right: 0;
6749
7080
  min-width: 180px;
6750
7081
  max-height: 320px;
6751
7082
  overflow-y: auto;
6752
- background: var(--ngaf-chat-surface);
6753
- border: 1px solid var(--ngaf-chat-separator);
7083
+ background: var(--tplane-chat-surface);
7084
+ border: 1px solid var(--tplane-chat-separator);
6754
7085
  border-radius: 12px;
6755
- box-shadow: var(--ngaf-chat-shadow-lg);
7086
+ box-shadow: var(--tplane-chat-shadow-lg);
6756
7087
  padding: 4px;
6757
- z-index: 10;
7088
+ box-sizing: border-box;
6758
7089
  }
6759
7090
  .chat-select__option {
6760
7091
  display: flex;
@@ -6767,24 +7098,24 @@ const CHAT_SELECT_STYLES = `
6767
7098
  background: transparent;
6768
7099
  padding: 8px 10px;
6769
7100
  border-radius: 8px;
6770
- color: var(--ngaf-chat-text);
7101
+ color: var(--tplane-chat-text);
6771
7102
  font: inherit;
6772
- font-size: var(--ngaf-chat-font-size-sm);
7103
+ font-size: var(--tplane-chat-font-size-sm);
6773
7104
  cursor: pointer;
6774
7105
  }
6775
7106
  .chat-select__option-desc {
6776
- font-size: var(--ngaf-chat-font-size-xs);
6777
- color: var(--ngaf-chat-text-muted);
7107
+ font-size: var(--tplane-chat-font-size-xs);
7108
+ color: var(--tplane-chat-text-muted);
6778
7109
  line-height: 1.3;
6779
7110
  white-space: normal;
6780
7111
  }
6781
7112
  .chat-select__option:hover:not(:disabled),
6782
7113
  .chat-select__option:focus-visible {
6783
- background: var(--ngaf-chat-surface-alt);
7114
+ background: var(--tplane-chat-surface-alt);
6784
7115
  outline: none;
6785
7116
  }
6786
7117
  .chat-select__option.is-active {
6787
- background: var(--ngaf-chat-surface-alt);
7118
+ background: var(--tplane-chat-surface-alt);
6788
7119
  font-weight: 500;
6789
7120
  }
6790
7121
  .chat-select__option:disabled {
@@ -6795,16 +7126,16 @@ const CHAT_SELECT_STYLES = `
6795
7126
 
6796
7127
  // libs/chat/src/lib/primitives/chat-select/chat-select.component.ts
6797
7128
  // SPDX-License-Identifier: MIT
7129
+ // Unique listbox id per instance, for aria-controls (multiple selects per page).
7130
+ let nextChatSelectId = 0;
6798
7131
  /**
6799
- * Generic single-select dropdown. Designed to slot into the chat input pill
6800
- * (via [chatInputModelSelect]) but usable anywhere.
7132
+ * Generic single-select dropdown. The menu renders through the chat
7133
+ * connected-overlay primitive (a body-level portal), so it is never clipped by
7134
+ * an ancestor's `overflow` and never trapped by an ancestor `transform`.
6801
7135
  *
6802
- * Inputs:
6803
- * options — array of { value, label, disabled? }; required
6804
- * value — currently selected value (two-way via model())
6805
- * placeholder — trigger label when no option matches; default 'Select'
6806
- * disabled — disables the trigger; default false
6807
- * menuLabel — aria-label for the popover; defaults to placeholder
7136
+ * Inputs: options (required), value (two-way), placeholder, disabled, menuLabel,
7137
+ * panelClass (extra class(es) on the overlay pane — the menu is portaled, so
7138
+ * `::ng-deep chat-select .chat-select__menu` no longer reaches it).
6808
7139
  */
6809
7140
  class ChatSelectComponent {
6810
7141
  options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
@@ -6812,43 +7143,34 @@ class ChatSelectComponent {
6812
7143
  placeholder = input('Select', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
6813
7144
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
6814
7145
  menuLabel = input(undefined, ...(ngDevMode ? [{ debugName: "menuLabel" }] : []));
7146
+ panelClass = input('', ...(ngDevMode ? [{ debugName: "panelClass" }] : []));
6815
7147
  open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
7148
+ menuId = `chat-select-menu-${nextChatSelectId++}`;
7149
+ // Above-right preferred (input pill sits at the bottom), then below, then the
7150
+ // left-aligned variants. The positioner flips/clamps to keep it in view.
7151
+ overlayPositions = [
7152
+ { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -8 },
7153
+ { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 8 },
7154
+ { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -8 },
7155
+ { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 },
7156
+ ];
7157
+ panelClasses = computed(() => {
7158
+ const extra = this.panelClass();
7159
+ const list = Array.isArray(extra) ? extra : extra ? [extra] : [];
7160
+ return ['chat-select__overlay', ...list];
7161
+ }, ...(ngDevMode ? [{ debugName: "panelClasses" }] : []));
6816
7162
  currentLabel = computed(() => {
6817
7163
  const v = this.value();
6818
- const match = this.options().find((o) => o.value === v);
6819
- return match?.label ?? this.placeholder();
7164
+ return this.options().find((o) => o.value === v)?.label ?? this.placeholder();
6820
7165
  }, ...(ngDevMode ? [{ debugName: "currentLabel" }] : []));
6821
7166
  hostEl = inject(ElementRef).nativeElement;
6822
7167
  document = inject(DOCUMENT);
6823
- destroyRef = inject(DestroyRef);
6824
- constructor() {
6825
- let onDocClick = null;
6826
- effect(() => {
6827
- const isOpen = this.open();
6828
- const win = this.document.defaultView;
6829
- if (!win)
6830
- return;
6831
- if (isOpen && !onDocClick) {
6832
- onDocClick = (e) => {
6833
- const path = e.composedPath?.() ?? [];
6834
- if (!path.includes(this.hostEl)) {
6835
- this.open.set(false);
6836
- }
6837
- };
6838
- win.addEventListener('mousedown', onDocClick, true);
6839
- }
6840
- else if (!isOpen && onDocClick) {
6841
- win.removeEventListener('mousedown', onDocClick, true);
6842
- onDocClick = null;
6843
- }
6844
- });
6845
- this.destroyRef.onDestroy(() => {
6846
- if (onDocClick) {
6847
- const win = this.document.defaultView;
6848
- win?.removeEventListener('mousedown', onDocClick, true);
6849
- onDocClick = null;
6850
- }
6851
- });
7168
+ // The overlay primitive emits the pane element on attach; options live there
7169
+ // (portaled out of the host), so option queries go through it.
7170
+ menuPane = null;
7171
+ onAttached(pane) {
7172
+ this.menuPane = pane;
7173
+ this.focusOption(0);
6852
7174
  }
6853
7175
  toggle() {
6854
7176
  if (this.disabled())
@@ -6864,10 +7186,6 @@ class ChatSelectComponent {
6864
7186
  onTriggerKeydown(e) {
6865
7187
  if (this.disabled())
6866
7188
  return;
6867
- // Escape closes an open menu when focus is still on the trigger
6868
- // (e.g. user clicked to open, then pressed Escape without arrowing
6869
- // into the menu). Caught by live browser smoke — without this, click
6870
- // + Escape leaves the menu open until the user clicks outside.
6871
7189
  if (e.key === 'Escape' && this.open()) {
6872
7190
  e.preventDefault();
6873
7191
  this.open.set(false);
@@ -6876,14 +7194,14 @@ class ChatSelectComponent {
6876
7194
  if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
6877
7195
  e.preventDefault();
6878
7196
  this.open.set(true);
6879
- requestAnimationFrame(() => this.focusOption(0));
7197
+ // focus happens in onAttached once the pane is live
6880
7198
  }
6881
7199
  }
6882
7200
  onMenuKeydown(e) {
6883
7201
  if (e.key === 'Escape') {
6884
7202
  e.preventDefault();
6885
7203
  this.open.set(false);
6886
- this.focusTrigger();
7204
+ this.queryTrigger()?.focus();
6887
7205
  return;
6888
7206
  }
6889
7207
  if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
@@ -6900,11 +7218,7 @@ class ChatSelectComponent {
6900
7218
  }
6901
7219
  }
6902
7220
  focusOption(index) {
6903
- const opts = this.queryOptions();
6904
- opts[index]?.focus();
6905
- }
6906
- focusTrigger() {
6907
- this.queryTrigger()?.focus();
7221
+ this.queryOptions()[index]?.focus();
6908
7222
  }
6909
7223
  moveFocus(dir) {
6910
7224
  const opts = this.queryOptions().filter((b) => !b.disabled);
@@ -6912,24 +7226,27 @@ class ChatSelectComponent {
6912
7226
  return;
6913
7227
  const active = this.document.activeElement;
6914
7228
  const idx = active ? opts.indexOf(active) : -1;
6915
- const next = (idx + dir + opts.length) % opts.length;
6916
- opts[next]?.focus();
7229
+ opts[(idx + dir + opts.length) % opts.length]?.focus();
6917
7230
  }
6918
7231
  queryOptions() {
6919
- return Array.from(this.hostEl.querySelectorAll('.chat-select__option'));
7232
+ const root = this.menuPane;
7233
+ return root ? Array.from(root.querySelectorAll('.chat-select__option')) : [];
6920
7234
  }
6921
7235
  queryTrigger() {
6922
7236
  return this.hostEl.querySelector('.chat-select__trigger');
6923
7237
  }
6924
7238
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6925
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: ChatSelectComponent, isStandalone: true, selector: "chat-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, menuLabel: { classPropertyName: "menuLabel", publicName: "menuLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0, template: `
7239
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.6", type: ChatSelectComponent, isStandalone: true, selector: "chat-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, menuLabel: { classPropertyName: "menuLabel", publicName: "menuLabel", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, ngImport: i0, template: `
6926
7240
  <button
6927
7241
  type="button"
6928
7242
  class="chat-select__trigger"
7243
+ chatOverlayOrigin
7244
+ #origin="chatOverlayOrigin"
6929
7245
  [class.is-open]="open()"
6930
7246
  [disabled]="disabled()"
6931
7247
  [attr.aria-haspopup]="'listbox'"
6932
7248
  [attr.aria-expanded]="open()"
7249
+ [attr.aria-controls]="open() ? menuId : null"
6933
7250
  (click)="toggle()"
6934
7251
  (keydown)="onTriggerKeydown($event)"
6935
7252
  >
@@ -6938,11 +7255,21 @@ class ChatSelectComponent {
6938
7255
  <path d="M4 6l4 4 4-4" stroke="currentColor" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
6939
7256
  </svg>
6940
7257
  </button>
6941
- @if (open()) {
7258
+ <ng-template
7259
+ chatConnectedOverlay
7260
+ [chatOverlayOrigin]="origin"
7261
+ [chatOverlayOpen]="open()"
7262
+ [chatOverlayPositions]="overlayPositions"
7263
+ [chatOverlayPanelClass]="panelClasses()"
7264
+ (chatOverlayAttached)="onAttached($event)"
7265
+ (chatOverlayOutsideClick)="open.set(false)"
7266
+ (chatOverlayDetach)="open.set(false)"
7267
+ >
6942
7268
  <div
6943
7269
  class="chat-select__menu"
6944
7270
  role="listbox"
6945
7271
  tabindex="-1"
7272
+ [id]="menuId"
6946
7273
  [attr.aria-label]="menuLabel() ?? placeholder()"
6947
7274
  (keydown)="onMenuKeydown($event)"
6948
7275
  >
@@ -6963,19 +7290,22 @@ class ChatSelectComponent {
6963
7290
  </button>
6964
7291
  }
6965
7292
  </div>
6966
- }
6967
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:inline-block;position:relative}.chat-select__trigger{height:32px;padding:0 10px;border:0;border-radius:9999px;background:transparent;color:var(--ngaf-chat-text-muted);font:inherit;font-size:var(--ngaf-chat-font-size-sm);display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:background .12s ease,color .12s ease}.chat-select__trigger:hover:not(:disabled){background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-select__trigger:disabled{opacity:.5;cursor:not-allowed}.chat-select__chevron{width:12px;height:12px;transition:transform .12s ease;flex:none}.chat-select__trigger.is-open .chat-select__chevron{transform:rotate(180deg)}.chat-select__menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:180px;max-height:320px;overflow-y:auto;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);border-radius:12px;box-shadow:var(--ngaf-chat-shadow-lg);padding:4px;z-index:10}.chat-select__option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);cursor:pointer}.chat-select__option-desc{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted);line-height:1.3;white-space:normal}.chat-select__option:hover:not(:disabled),.chat-select__option:focus-visible{background:var(--ngaf-chat-surface-alt);outline:none}.chat-select__option.is-active{background:var(--ngaf-chat-surface-alt);font-weight:500}.chat-select__option:disabled{opacity:.4;cursor:not-allowed}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7293
+ </ng-template>
7294
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:inline-block;position:relative}.chat-select__trigger{height:32px;padding:0 10px;border:0;border-radius:9999px;background:transparent;color:var(--tplane-chat-text-muted);font:inherit;font-size:var(--tplane-chat-font-size-sm);display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:background .12s ease,color .12s ease}.chat-select__trigger:hover:not(:disabled){background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-select__trigger:disabled{opacity:.5;cursor:not-allowed}.chat-select__chevron{width:12px;height:12px;transition:transform .12s ease;flex:none}.chat-select__trigger.is-open .chat-select__chevron{transform:rotate(180deg)}.chat-select__menu{min-width:180px;max-height:320px;overflow-y:auto;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);border-radius:12px;box-shadow:var(--tplane-chat-shadow-lg);padding:4px;box-sizing:border-box}.chat-select__option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);cursor:pointer}.chat-select__option-desc{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted);line-height:1.3;white-space:normal}.chat-select__option:hover:not(:disabled),.chat-select__option:focus-visible{background:var(--tplane-chat-surface-alt);outline:none}.chat-select__option.is-active{background:var(--tplane-chat-surface-alt);font-weight:500}.chat-select__option:disabled{opacity:.4;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: ChatConnectedOverlayDirective, selector: "[chatConnectedOverlay]", inputs: ["chatOverlayOrigin", "chatOverlayOpen", "chatOverlayPositions", "chatOverlayPanelClass"], outputs: ["chatOverlayAttached", "chatOverlayOutsideClick", "chatOverlayDetach"] }, { kind: "directive", type: ChatOverlayOriginDirective, selector: "[chatOverlayOrigin]", exportAs: ["chatOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6968
7295
  }
6969
7296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSelectComponent, decorators: [{
6970
7297
  type: Component,
6971
- args: [{ selector: 'chat-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
7298
+ args: [{ selector: 'chat-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChatConnectedOverlayDirective, ChatOverlayOriginDirective], template: `
6972
7299
  <button
6973
7300
  type="button"
6974
7301
  class="chat-select__trigger"
7302
+ chatOverlayOrigin
7303
+ #origin="chatOverlayOrigin"
6975
7304
  [class.is-open]="open()"
6976
7305
  [disabled]="disabled()"
6977
7306
  [attr.aria-haspopup]="'listbox'"
6978
7307
  [attr.aria-expanded]="open()"
7308
+ [attr.aria-controls]="open() ? menuId : null"
6979
7309
  (click)="toggle()"
6980
7310
  (keydown)="onTriggerKeydown($event)"
6981
7311
  >
@@ -6984,11 +7314,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6984
7314
  <path d="M4 6l4 4 4-4" stroke="currentColor" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
6985
7315
  </svg>
6986
7316
  </button>
6987
- @if (open()) {
7317
+ <ng-template
7318
+ chatConnectedOverlay
7319
+ [chatOverlayOrigin]="origin"
7320
+ [chatOverlayOpen]="open()"
7321
+ [chatOverlayPositions]="overlayPositions"
7322
+ [chatOverlayPanelClass]="panelClasses()"
7323
+ (chatOverlayAttached)="onAttached($event)"
7324
+ (chatOverlayOutsideClick)="open.set(false)"
7325
+ (chatOverlayDetach)="open.set(false)"
7326
+ >
6988
7327
  <div
6989
7328
  class="chat-select__menu"
6990
7329
  role="listbox"
6991
7330
  tabindex="-1"
7331
+ [id]="menuId"
6992
7332
  [attr.aria-label]="menuLabel() ?? placeholder()"
6993
7333
  (keydown)="onMenuKeydown($event)"
6994
7334
  >
@@ -7009,9 +7349,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
7009
7349
  </button>
7010
7350
  }
7011
7351
  </div>
7012
- }
7013
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:inline-block;position:relative}.chat-select__trigger{height:32px;padding:0 10px;border:0;border-radius:9999px;background:transparent;color:var(--ngaf-chat-text-muted);font:inherit;font-size:var(--ngaf-chat-font-size-sm);display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:background .12s ease,color .12s ease}.chat-select__trigger:hover:not(:disabled){background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-select__trigger:disabled{opacity:.5;cursor:not-allowed}.chat-select__chevron{width:12px;height:12px;transition:transform .12s ease;flex:none}.chat-select__trigger.is-open .chat-select__chevron{transform:rotate(180deg)}.chat-select__menu{position:absolute;bottom:calc(100% + 8px);right:0;min-width:180px;max-height:320px;overflow-y:auto;background:var(--ngaf-chat-surface);border:1px solid var(--ngaf-chat-separator);border-radius:12px;box-shadow:var(--ngaf-chat-shadow-lg);padding:4px;z-index:10}.chat-select__option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);cursor:pointer}.chat-select__option-desc{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted);line-height:1.3;white-space:normal}.chat-select__option:hover:not(:disabled),.chat-select__option:focus-visible{background:var(--ngaf-chat-surface-alt);outline:none}.chat-select__option.is-active{background:var(--ngaf-chat-surface-alt);font-weight:500}.chat-select__option:disabled{opacity:.4;cursor:not-allowed}\n"] }]
7014
- }], ctorParameters: () => [], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], menuLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuLabel", required: false }] }] } });
7352
+ </ng-template>
7353
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:inline-block;position:relative}.chat-select__trigger{height:32px;padding:0 10px;border:0;border-radius:9999px;background:transparent;color:var(--tplane-chat-text-muted);font:inherit;font-size:var(--tplane-chat-font-size-sm);display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:background .12s ease,color .12s ease}.chat-select__trigger:hover:not(:disabled){background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-select__trigger:disabled{opacity:.5;cursor:not-allowed}.chat-select__chevron{width:12px;height:12px;transition:transform .12s ease;flex:none}.chat-select__trigger.is-open .chat-select__chevron{transform:rotate(180deg)}.chat-select__menu{min-width:180px;max-height:320px;overflow-y:auto;background:var(--tplane-chat-surface);border:1px solid var(--tplane-chat-separator);border-radius:12px;box-shadow:var(--tplane-chat-shadow-lg);padding:4px;box-sizing:border-box}.chat-select__option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);cursor:pointer}.chat-select__option-desc{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted);line-height:1.3;white-space:normal}.chat-select__option:hover:not(:disabled),.chat-select__option:focus-visible{background:var(--tplane-chat-surface-alt);outline:none}.chat-select__option.is-active{background:var(--tplane-chat-surface-alt);font-weight:500}.chat-select__option:disabled{opacity:.4;cursor:not-allowed}\n"] }]
7354
+ }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], menuLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuLabel", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }] } });
7015
7355
 
7016
7356
  // SPDX-License-Identifier: MIT
7017
7357
  const PACKAGE_NAME = '@threadplane/chat';
@@ -7513,7 +7853,7 @@ class A2uiDefaultFallbackComponent {
7513
7853
  <div class="a2ui-default-fallback__row"></div>
7514
7854
  </div>
7515
7855
  </div>
7516
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;width:100%}.a2ui-default-fallback{border:1px solid var(--ngaf-chat-separator);border-radius:10px;padding:14px;background:var(--ngaf-chat-surface-alt)}.a2ui-default-fallback__label{font-size:12px;color:var(--ngaf-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.a2ui-default-fallback__rows{display:flex;flex-direction:column;gap:8px}.a2ui-default-fallback__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--ngaf-chat-separator) 0%,color-mix(in srgb,var(--ngaf-chat-separator) 70%,transparent) 50%,var(--ngaf-chat-separator) 100%);background-size:200% 100%;animation:a2ui-default-fallback-shimmer 1.4s ease-in-out infinite}.a2ui-default-fallback__row:nth-child(1){width:70%}.a2ui-default-fallback__row:nth-child(2){width:90%}.a2ui-default-fallback__row:nth-child(3){width:50%}@keyframes a2ui-default-fallback-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7856
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;width:100%}.a2ui-default-fallback{border:1px solid var(--tplane-chat-separator);border-radius:10px;padding:14px;background:var(--tplane-chat-surface-alt)}.a2ui-default-fallback__label{font-size:12px;color:var(--tplane-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.a2ui-default-fallback__rows{display:flex;flex-direction:column;gap:8px}.a2ui-default-fallback__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--tplane-chat-separator) 0%,color-mix(in srgb,var(--tplane-chat-separator) 70%,transparent) 50%,var(--tplane-chat-separator) 100%);background-size:200% 100%;animation:a2ui-default-fallback-shimmer 1.4s ease-in-out infinite}.a2ui-default-fallback__row:nth-child(1){width:70%}.a2ui-default-fallback__row:nth-child(2){width:90%}.a2ui-default-fallback__row:nth-child(3){width:50%}@keyframes a2ui-default-fallback-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7517
7857
  }
7518
7858
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: A2uiDefaultFallbackComponent, decorators: [{
7519
7859
  type: Component,
@@ -7529,7 +7869,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
7529
7869
  <div class="a2ui-default-fallback__row"></div>
7530
7870
  </div>
7531
7871
  </div>
7532
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;width:100%}.a2ui-default-fallback{border:1px solid var(--ngaf-chat-separator);border-radius:10px;padding:14px;background:var(--ngaf-chat-surface-alt)}.a2ui-default-fallback__label{font-size:12px;color:var(--ngaf-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.a2ui-default-fallback__rows{display:flex;flex-direction:column;gap:8px}.a2ui-default-fallback__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--ngaf-chat-separator) 0%,color-mix(in srgb,var(--ngaf-chat-separator) 70%,transparent) 50%,var(--ngaf-chat-separator) 100%);background-size:200% 100%;animation:a2ui-default-fallback-shimmer 1.4s ease-in-out infinite}.a2ui-default-fallback__row:nth-child(1){width:70%}.a2ui-default-fallback__row:nth-child(2){width:90%}.a2ui-default-fallback__row:nth-child(3){width:50%}@keyframes a2ui-default-fallback-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
7872
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;width:100%}.a2ui-default-fallback{border:1px solid var(--tplane-chat-separator);border-radius:10px;padding:14px;background:var(--tplane-chat-surface-alt)}.a2ui-default-fallback__label{font-size:12px;color:var(--tplane-chat-text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.a2ui-default-fallback__rows{display:flex;flex-direction:column;gap:8px}.a2ui-default-fallback__row{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--tplane-chat-separator) 0%,color-mix(in srgb,var(--tplane-chat-separator) 70%,transparent) 50%,var(--tplane-chat-separator) 100%);background-size:200% 100%;animation:a2ui-default-fallback-shimmer 1.4s ease-in-out infinite}.a2ui-default-fallback__row:nth-child(1){width:70%}.a2ui-default-fallback__row:nth-child(2){width:90%}.a2ui-default-fallback__row:nth-child(3){width:50%}@keyframes a2ui-default-fallback-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
7533
7873
  }] });
7534
7874
 
7535
7875
  // SPDX-License-Identifier: MIT
@@ -8070,7 +8410,7 @@ function isTraceEnabled() {
8070
8410
  function trace(...args) {
8071
8411
  if (isTraceEnabled()) {
8072
8412
  // eslint-disable-next-line no-console
8073
- console.debug('[ngaf-chat-stream]', ...args);
8413
+ console.debug('[tplane-chat-stream]', ...args);
8074
8414
  }
8075
8415
  }
8076
8416
 
@@ -9064,8 +9404,8 @@ class ChatComponent {
9064
9404
  return last?.role === 'assistant';
9065
9405
  }, ...(ngDevMode ? [{ debugName: "currentAssistantStreaming" }] : []));
9066
9406
  constructor() {
9067
- // Inject the chat lib's root CSS custom properties (--ngaf-chat-bg,
9068
- // --ngaf-chat-surface, --ngaf-chat-radius-input, etc.) the first
9407
+ // Inject the chat lib's root CSS custom properties (--tplane-chat-bg,
9408
+ // --tplane-chat-surface, --tplane-chat-radius-input, etc.) the first
9069
9409
  // time any chat composition is constructed. The module-eval side
9070
9410
  // effect that previously handled this is unreliable under
9071
9411
  // aggressive production tree-shaking — bundlers that don't see
@@ -9697,7 +10037,7 @@ class ChatComponent {
9697
10037
  </div>
9698
10038
  </div>
9699
10039
  }
9700
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;max-height:100%;overflow:hidden;background:var(--ngaf-chat-bg)}:host>chat-welcome{display:flex;flex:1 1 auto;width:100%}.chat-shell{display:flex;flex:1;min-height:0;overflow:hidden}.chat-shell__sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--ngaf-chat-separator);background:var(--ngaf-chat-surface-alt);overflow-y:auto;display:none}@media(min-width:768px){.chat-shell__sidebar{display:block}}.chat-shell__main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--ngaf-chat-text-muted);text-align:center;flex:1;min-height:0}.chat-empty[hidden]{display:none}.chat-empty__title{font-size:1.125rem;font-weight:500;color:var(--ngaf-chat-text);margin:0}.chat-empty__sub{margin:0;font-size:var(--ngaf-chat-font-size-sm)}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding-top:var(--ngaf-chat-edge-pad)}.chat-scroll::-webkit-scrollbar{width:6px}.chat-scroll::-webkit-scrollbar-thumb{background:var(--ngaf-chat-separator);border-radius:10px}[chatFooter]{padding-bottom:var(--ngaf-chat-edge-pad)}.chat-footer-wrap{position:relative}\n"], dependencies: [{ kind: "component", type: ChatWindowComponent, selector: "chat-window" }, { kind: "component", type: ChatMessageListComponent, selector: "chat-message-list", inputs: ["agent"] }, { kind: "directive", type: MessageTemplateDirective, selector: "ng-template[chatMessageTemplate]", inputs: ["chatMessageTemplate"] }, { kind: "component", type: ChatMessageComponent, selector: "chat-message", inputs: ["role", "current", "streaming", "prevRole", "message"] }, { kind: "component", type: ChatInputComponent, selector: "chat-input", inputs: ["agent", "submitOnEnter", "placeholder", "showStopButton"], outputs: ["submitted", "stopped"] }, { kind: "component", type: ChatTypingIndicatorComponent, selector: "chat-typing-indicator", inputs: ["agent"] }, { kind: "component", type: ChatErrorComponent, selector: "chat-error", inputs: ["agent"] }, { kind: "component", type: ChatThreadListComponent, selector: "chat-thread-list", inputs: ["threads", "activeThreadId", "showNewThreadButton", "actions", "mode", "projects"], outputs: ["threadSelected", "newThreadRequested"] }, { kind: "component", type: ChatGenerativeUiComponent, selector: "chat-generative-ui", inputs: ["spec", "registry", "store", "handlers", "loading"], outputs: ["events"] }, { kind: "component", type: ChatStreamingMdComponent, selector: "chat-streaming-md", inputs: ["content", "streaming", "viewRegistry"] }, { kind: "component", type: ChatToolCallsComponent, selector: "chat-tool-calls", inputs: ["agent", "message", "grouping", "groupSummary", "excludeToolNames"] }, { kind: "component", type: ChatToolViewsComponent, selector: "chat-tool-views", inputs: ["agent", "message", "views", "store", "handlers"], outputs: ["events"] }, { kind: "component", type: A2uiSurfaceComponent, selector: "a2ui-surface", inputs: ["surface", "state", "catalog", "handlers", "surfaceFallback"], outputs: ["events", "action"] }, { kind: "component", type: ChatMessageActionsComponent, selector: "chat-message-actions", inputs: ["content", "disabled"], outputs: ["regenerate", "rate", "contentCopied"] }, { kind: "component", type: ChatWelcomeComponent, selector: "chat-welcome" }, { kind: "component", type: ChatSelectComponent, selector: "chat-select", inputs: ["options", "value", "placeholder", "disabled", "menuLabel"], outputs: ["valueChange"] }, { kind: "component", type: ChatReasoningComponent, selector: "chat-reasoning", inputs: ["content", "isStreaming", "durationMs", "label", "defaultExpanded"] }, { kind: "component", type: ChatScrollBubbleComponent, selector: "chat-scroll-bubble", inputs: ["mode"], outputs: ["clicked"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10040
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;max-height:100%;overflow:hidden;background:var(--tplane-chat-bg)}:host>chat-welcome{display:flex;flex:1 1 auto;width:100%}.chat-shell{display:flex;flex:1;min-height:0;overflow:hidden}.chat-shell__sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--tplane-chat-separator);background:var(--tplane-chat-surface-alt);overflow-y:auto;display:none}@media(min-width:768px){.chat-shell__sidebar{display:block}}.chat-shell__main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--tplane-chat-text-muted);text-align:center;flex:1;min-height:0}.chat-empty[hidden]{display:none}.chat-empty__title{font-size:1.125rem;font-weight:500;color:var(--tplane-chat-text);margin:0}.chat-empty__sub{margin:0;font-size:var(--tplane-chat-font-size-sm)}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding-top:var(--tplane-chat-edge-pad)}.chat-scroll::-webkit-scrollbar{width:6px}.chat-scroll::-webkit-scrollbar-thumb{background:var(--tplane-chat-separator);border-radius:10px}[chatFooter]{padding-bottom:var(--tplane-chat-edge-pad)}.chat-footer-wrap{position:relative}\n"], dependencies: [{ kind: "component", type: ChatWindowComponent, selector: "chat-window" }, { kind: "component", type: ChatMessageListComponent, selector: "chat-message-list", inputs: ["agent"] }, { kind: "directive", type: MessageTemplateDirective, selector: "ng-template[chatMessageTemplate]", inputs: ["chatMessageTemplate"] }, { kind: "component", type: ChatMessageComponent, selector: "chat-message", inputs: ["role", "current", "streaming", "prevRole", "message"] }, { kind: "component", type: ChatInputComponent, selector: "chat-input", inputs: ["agent", "submitOnEnter", "placeholder", "showStopButton"], outputs: ["submitted", "stopped"] }, { kind: "component", type: ChatTypingIndicatorComponent, selector: "chat-typing-indicator", inputs: ["agent"] }, { kind: "component", type: ChatErrorComponent, selector: "chat-error", inputs: ["agent"] }, { kind: "component", type: ChatThreadListComponent, selector: "chat-thread-list", inputs: ["threads", "activeThreadId", "showNewThreadButton", "actions", "mode", "projects"], outputs: ["threadSelected", "newThreadRequested"] }, { kind: "component", type: ChatGenerativeUiComponent, selector: "chat-generative-ui", inputs: ["spec", "registry", "store", "handlers", "loading"], outputs: ["events"] }, { kind: "component", type: ChatStreamingMdComponent, selector: "chat-streaming-md", inputs: ["content", "streaming", "viewRegistry"] }, { kind: "component", type: ChatToolCallsComponent, selector: "chat-tool-calls", inputs: ["agent", "message", "grouping", "groupSummary", "excludeToolNames"] }, { kind: "component", type: ChatToolViewsComponent, selector: "chat-tool-views", inputs: ["agent", "message", "views", "store", "handlers"], outputs: ["events"] }, { kind: "component", type: A2uiSurfaceComponent, selector: "a2ui-surface", inputs: ["surface", "state", "catalog", "handlers", "surfaceFallback"], outputs: ["events", "action"] }, { kind: "component", type: ChatMessageActionsComponent, selector: "chat-message-actions", inputs: ["content", "disabled"], outputs: ["regenerate", "rate", "contentCopied"] }, { kind: "component", type: ChatWelcomeComponent, selector: "chat-welcome" }, { kind: "component", type: ChatSelectComponent, selector: "chat-select", inputs: ["options", "value", "placeholder", "disabled", "menuLabel", "panelClass"], outputs: ["valueChange"] }, { kind: "component", type: ChatReasoningComponent, selector: "chat-reasoning", inputs: ["content", "isStreaming", "durationMs", "label", "defaultExpanded"] }, { kind: "component", type: ChatScrollBubbleComponent, selector: "chat-scroll-bubble", inputs: ["mode"], outputs: ["clicked"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9701
10041
  }
9702
10042
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatComponent, decorators: [{
9703
10043
  type: Component,
@@ -9881,7 +10221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
9881
10221
  </div>
9882
10222
  </div>
9883
10223
  }
9884
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;max-height:100%;overflow:hidden;background:var(--ngaf-chat-bg)}:host>chat-welcome{display:flex;flex:1 1 auto;width:100%}.chat-shell{display:flex;flex:1;min-height:0;overflow:hidden}.chat-shell__sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--ngaf-chat-separator);background:var(--ngaf-chat-surface-alt);overflow-y:auto;display:none}@media(min-width:768px){.chat-shell__sidebar{display:block}}.chat-shell__main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--ngaf-chat-text-muted);text-align:center;flex:1;min-height:0}.chat-empty[hidden]{display:none}.chat-empty__title{font-size:1.125rem;font-weight:500;color:var(--ngaf-chat-text);margin:0}.chat-empty__sub{margin:0;font-size:var(--ngaf-chat-font-size-sm)}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding-top:var(--ngaf-chat-edge-pad)}.chat-scroll::-webkit-scrollbar{width:6px}.chat-scroll::-webkit-scrollbar-thumb{background:var(--ngaf-chat-separator);border-radius:10px}[chatFooter]{padding-bottom:var(--ngaf-chat-edge-pad)}.chat-footer-wrap{position:relative}\n"] }]
10224
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;flex-direction:column;flex:1 1 auto;height:100%;min-height:0;max-height:100%;overflow:hidden;background:var(--tplane-chat-bg)}:host>chat-welcome{display:flex;flex:1 1 auto;width:100%}.chat-shell{display:flex;flex:1;min-height:0;overflow:hidden}.chat-shell__sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--tplane-chat-separator);background:var(--tplane-chat-surface-alt);overflow-y:auto;display:none}@media(min-width:768px){.chat-shell__sidebar{display:block}}.chat-shell__main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--tplane-chat-text-muted);text-align:center;flex:1;min-height:0}.chat-empty[hidden]{display:none}.chat-empty__title{font-size:1.125rem;font-weight:500;color:var(--tplane-chat-text);margin:0}.chat-empty__sub{margin:0;font-size:var(--tplane-chat-font-size-sm)}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding-top:var(--tplane-chat-edge-pad)}.chat-scroll::-webkit-scrollbar{width:6px}.chat-scroll::-webkit-scrollbar-thumb{background:var(--tplane-chat-separator);border-radius:10px}[chatFooter]{padding-bottom:var(--tplane-chat-edge-pad)}.chat-footer-wrap{position:relative}\n"] }]
9885
10225
  }], ctorParameters: () => [], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], views: [{ type: i0.Input, args: [{ isSignal: true, alias: "views", required: false }] }], clientTools: [{ type: i0.Input, args: [{ isSignal: true, alias: "clientTools", required: false }] }], store: [{ type: i0.Input, args: [{ isSignal: true, alias: "store", required: false }] }], handlers: [{ type: i0.Input, args: [{ isSignal: true, alias: "handlers", required: false }] }], threads: [{ type: i0.Input, args: [{ isSignal: true, alias: "threads", required: false }] }], activeThreadId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeThreadId", required: false }] }], welcomeDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "welcomeDisabled", required: false }] }], modelOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "modelOptions", required: false }] }], showModelPicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "showModelPicker", required: false }] }], selectedModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedModel", required: false }] }, { type: i0.Output, args: ["selectedModelChange"] }], modelPickerPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "modelPickerPlaceholder", required: false }] }], genuiToolNames: [{ type: i0.Input, args: [{ isSignal: true, alias: "genuiToolNames", required: false }] }], threadSelected: [{ type: i0.Output, args: ["threadSelected"] }], renderEvent: [{ type: i0.Output, args: ["renderEvent"] }], regenerate: [{ type: i0.Output, args: ["regenerate"] }], rate: [{ type: i0.Output, args: ["rate"] }], messageCopy: [{ type: i0.Output, args: ["messageCopy"] }], scrollContainer: [{ type: i0.ViewChild, args: ['scrollContainer', { isSignal: true }] }] } });
9886
10226
 
9887
10227
  // libs/chat/src/lib/compositions/chat-popup/chat-popup.component.ts
@@ -9969,7 +10309,7 @@ class ChatPopupComponent {
9969
10309
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
9970
10310
  </chat>
9971
10311
  </div>
9972
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{position:fixed;bottom:1rem;right:1rem;z-index:var(--ngaf-chat-z-overlay-content, 30)}.chat-popup__launcher{position:relative}.chat-popup__window{position:fixed;bottom:5rem;right:1rem;width:24rem;height:600px;max-height:calc(100vh - 6rem);background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:.75rem;box-shadow:0 5px 40px #00000029;transform-origin:bottom right;transform:scale(.95) translateY(20px);opacity:0;pointer-events:none;transition:transform .2s ease-out,opacity .1s ease-out;overflow:hidden;display:flex;flex-direction:column}.chat-popup__window[data-open=true]{transform:scale(1) translateY(0);opacity:1;pointer-events:auto}@media(max-width:640px){.chat-popup__window{inset:0 auto auto 0;width:100vw;height:100vh;max-height:100vh;border-radius:0}}.chat-popup__close{position:absolute;top:8px;right:8px;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--ngaf-chat-text-muted);border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center}.chat-popup__close:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}\n"], dependencies: [{ kind: "component", type: ChatComponent, selector: "chat", inputs: ["agent", "views", "clientTools", "store", "handlers", "threads", "activeThreadId", "welcomeDisabled", "modelOptions", "showModelPicker", "selectedModel", "modelPickerPlaceholder", "genuiToolNames"], outputs: ["selectedModelChange", "threadSelected", "renderEvent", "regenerate", "rate", "messageCopy"] }, { kind: "component", type: ChatLauncherButtonComponent, selector: "chat-launcher-button", outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10312
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{position:fixed;bottom:1rem;right:1rem;z-index:var(--tplane-chat-z-overlay-content, 30)}.chat-popup__launcher{position:relative}.chat-popup__window{position:fixed;bottom:5rem;right:1rem;width:24rem;height:600px;max-height:calc(100vh - 6rem);background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:.75rem;box-shadow:0 5px 40px #00000029;transform-origin:bottom right;transform:scale(.95) translateY(20px);opacity:0;pointer-events:none;transition:transform .2s ease-out,opacity .1s ease-out;overflow:hidden;display:flex;flex-direction:column}.chat-popup__window[data-open=true]{transform:scale(1) translateY(0);opacity:1;pointer-events:auto}@media(max-width:640px){.chat-popup__window{inset:0 auto auto 0;width:100vw;height:100vh;max-height:100vh;border-radius:0}}.chat-popup__close{position:absolute;top:8px;right:8px;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--tplane-chat-text-muted);border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center}.chat-popup__close:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}\n"], dependencies: [{ kind: "component", type: ChatComponent, selector: "chat", inputs: ["agent", "views", "clientTools", "store", "handlers", "threads", "activeThreadId", "welcomeDisabled", "modelOptions", "showModelPicker", "selectedModel", "modelPickerPlaceholder", "genuiToolNames"], outputs: ["selectedModelChange", "threadSelected", "renderEvent", "regenerate", "rate", "messageCopy"] }, { kind: "component", type: ChatLauncherButtonComponent, selector: "chat-launcher-button", outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9973
10313
  }
9974
10314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatPopupComponent, decorators: [{
9975
10315
  type: Component,
@@ -9994,7 +10334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
9994
10334
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
9995
10335
  </chat>
9996
10336
  </div>
9997
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{position:fixed;bottom:1rem;right:1rem;z-index:var(--ngaf-chat-z-overlay-content, 30)}.chat-popup__launcher{position:relative}.chat-popup__window{position:fixed;bottom:5rem;right:1rem;width:24rem;height:600px;max-height:calc(100vh - 6rem);background:var(--ngaf-chat-bg);border:1px solid var(--ngaf-chat-separator);border-radius:.75rem;box-shadow:0 5px 40px #00000029;transform-origin:bottom right;transform:scale(.95) translateY(20px);opacity:0;pointer-events:none;transition:transform .2s ease-out,opacity .1s ease-out;overflow:hidden;display:flex;flex-direction:column}.chat-popup__window[data-open=true]{transform:scale(1) translateY(0);opacity:1;pointer-events:auto}@media(max-width:640px){.chat-popup__window{inset:0 auto auto 0;width:100vw;height:100vh;max-height:100vh;border-radius:0}}.chat-popup__close{position:absolute;top:8px;right:8px;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--ngaf-chat-text-muted);border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center}.chat-popup__close:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}\n"] }]
10337
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{position:fixed;bottom:1rem;right:1rem;z-index:var(--tplane-chat-z-overlay-content, 30)}.chat-popup__launcher{position:relative}.chat-popup__window{position:fixed;bottom:5rem;right:1rem;width:24rem;height:600px;max-height:calc(100vh - 6rem);background:var(--tplane-chat-bg);border:1px solid var(--tplane-chat-separator);border-radius:.75rem;box-shadow:0 5px 40px #00000029;transform-origin:bottom right;transform:scale(.95) translateY(20px);opacity:0;pointer-events:none;transition:transform .2s ease-out,opacity .1s ease-out;overflow:hidden;display:flex;flex-direction:column}.chat-popup__window[data-open=true]{transform:scale(1) translateY(0);opacity:1;pointer-events:auto}@media(max-width:640px){.chat-popup__window{inset:0 auto auto 0;width:100vw;height:100vh;max-height:100vh;border-radius:0}}.chat-popup__close{position:absolute;top:8px;right:8px;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--tplane-chat-text-muted);border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center}.chat-popup__close:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}\n"] }]
9998
10338
  }], ctorParameters: () => [], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], views: [{ type: i0.Input, args: [{ isSignal: true, alias: "views", required: false }] }], clientTools: [{ type: i0.Input, args: [{ isSignal: true, alias: "clientTools", required: false }] }], modelOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "modelOptions", required: false }] }], showModelPicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "showModelPicker", required: false }] }], selectedModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedModel", required: false }] }, { type: i0.Output, args: ["selectedModelChange"] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], shortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortcut", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }] } });
9999
10339
 
10000
10340
  // libs/chat/src/lib/compositions/chat-sidebar/chat-sidebar.component.ts
@@ -10030,8 +10370,8 @@ class ChatSidebarComponent {
10030
10370
  // for the full rationale. Idempotent + lifecycle-guaranteed.
10031
10371
  ensureChatRootStyles();
10032
10372
  // Publish the right-edge claim while the panel is open. Peer panels
10033
- // (e.g. chat-debug) read --ngaf-chat-occupy-right to leave room.
10034
- effect(() => {
10373
+ // (e.g. chat-debug) read --tplane-chat-occupy-right to leave room.
10374
+ effect((onCleanup) => {
10035
10375
  if (typeof document === 'undefined')
10036
10376
  return;
10037
10377
  const html = document.documentElement;
@@ -10041,6 +10381,11 @@ class ChatSidebarComponent {
10041
10381
  else {
10042
10382
  delete html.dataset['threadplaneChatSidebar'];
10043
10383
  }
10384
+ // Clear the global claim when the sidebar is destroyed (not just closed).
10385
+ // Without this, unmounting while open (e.g. switching demo modes) leaves
10386
+ // data-threadplane-chat-sidebar="open" stuck on <html>, so peer panels
10387
+ // keep reserving --tplane-chat-occupy-right and a phantom gap persists.
10388
+ onCleanup(() => { delete html.dataset['threadplaneChatSidebar']; });
10044
10389
  });
10045
10390
  effect((onCleanup) => {
10046
10391
  const closeOnEscape = this.closeOnEscape();
@@ -10087,7 +10432,7 @@ class ChatSidebarComponent {
10087
10432
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
10088
10433
  </chat>
10089
10434
  </aside>
10090
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-sidebar__content{transition:margin-right .3s ease;min-height:100vh}:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:28rem}@media(max-width:640px){:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:0}}.chat-sidebar__panel{position:fixed;top:0;right:0;bottom:var(--ngaf-chat-debug-claim-bottom, 0);width:28rem;background:var(--ngaf-chat-bg);border-left:1px solid var(--ngaf-chat-separator);box-shadow:-8px 0 32px #00000014;transform:translate(100%);transition:transform .2s ease-out,bottom .2s ease-out;z-index:var(--ngaf-chat-z-overlay-content, 30);display:flex;flex-direction:column}.chat-sidebar__panel[data-open=true]{transform:translate(0)}@media(max-width:640px){.chat-sidebar__panel{width:100vw}}.chat-sidebar__panel-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--ngaf-chat-separator);min-height:48px}.chat-sidebar__panel-title{min-width:0;flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ngaf-chat-text);font-weight:500;font-size:var(--ngaf-chat-font-size-sm)}.chat-sidebar__close{flex:0 0 auto;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--ngaf-chat-text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center}.chat-sidebar__close:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-sidebar__launcher{position:fixed;bottom:calc(1rem + var(--ngaf-chat-debug-claim-bottom, 0));right:1rem;z-index:var(--ngaf-chat-z-overlay-content, 30);transition:bottom .2s ease-out}:host([data-open=\"true\"]) .chat-sidebar__launcher{display:none}\n"], dependencies: [{ kind: "component", type: ChatComponent, selector: "chat", inputs: ["agent", "views", "clientTools", "store", "handlers", "threads", "activeThreadId", "welcomeDisabled", "modelOptions", "showModelPicker", "selectedModel", "modelPickerPlaceholder", "genuiToolNames"], outputs: ["selectedModelChange", "threadSelected", "renderEvent", "regenerate", "rate", "messageCopy"] }, { kind: "component", type: ChatLauncherButtonComponent, selector: "chat-launcher-button", outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10435
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;height:100%;min-height:0}.chat-sidebar__content{flex:1 1 auto;min-width:0;min-height:0;transition:margin-right .3s ease}:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:var(--tplane-chat-sidebar-width-drawer, 28rem)}@media(max-width:640px){:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:0}}.chat-sidebar__panel{position:fixed;top:0;right:0;bottom:var(--tplane-chat-debug-claim-bottom, 0);width:var(--tplane-chat-sidebar-width-drawer, 28rem);background:var(--tplane-chat-bg);border-left:1px solid var(--tplane-chat-separator);box-shadow:-8px 0 32px #00000014;transform:translate(100%);transition:transform .2s ease-out,bottom .2s ease-out;z-index:var(--tplane-chat-z-overlay-content, 30);display:flex;flex-direction:column}.chat-sidebar__panel[data-open=true]{transform:translate(0)}@media(max-width:640px){.chat-sidebar__panel{width:100vw}}.chat-sidebar__panel-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--tplane-chat-separator);min-height:48px}.chat-sidebar__panel-title{min-width:0;flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--tplane-chat-text);font-weight:500;font-size:var(--tplane-chat-font-size-sm)}.chat-sidebar__close{flex:0 0 auto;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--tplane-chat-text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center}.chat-sidebar__close:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-sidebar__launcher{position:fixed;bottom:calc(1rem + var(--tplane-chat-debug-claim-bottom, 0));right:1rem;z-index:var(--tplane-chat-z-overlay-content, 30);transition:bottom .2s ease-out}:host([data-open=\"true\"]) .chat-sidebar__launcher{display:none}\n"], dependencies: [{ kind: "component", type: ChatComponent, selector: "chat", inputs: ["agent", "views", "clientTools", "store", "handlers", "threads", "activeThreadId", "welcomeDisabled", "modelOptions", "showModelPicker", "selectedModel", "modelPickerPlaceholder", "genuiToolNames"], outputs: ["selectedModelChange", "threadSelected", "renderEvent", "regenerate", "rate", "messageCopy"] }, { kind: "component", type: ChatLauncherButtonComponent, selector: "chat-launcher-button", outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10091
10436
  }
10092
10437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSidebarComponent, decorators: [{
10093
10438
  type: Component,
@@ -10121,7 +10466,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
10121
10466
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
10122
10467
  </chat>
10123
10468
  </aside>
10124
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block}.chat-sidebar__content{transition:margin-right .3s ease;min-height:100vh}:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:28rem}@media(max-width:640px){:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:0}}.chat-sidebar__panel{position:fixed;top:0;right:0;bottom:var(--ngaf-chat-debug-claim-bottom, 0);width:28rem;background:var(--ngaf-chat-bg);border-left:1px solid var(--ngaf-chat-separator);box-shadow:-8px 0 32px #00000014;transform:translate(100%);transition:transform .2s ease-out,bottom .2s ease-out;z-index:var(--ngaf-chat-z-overlay-content, 30);display:flex;flex-direction:column}.chat-sidebar__panel[data-open=true]{transform:translate(0)}@media(max-width:640px){.chat-sidebar__panel{width:100vw}}.chat-sidebar__panel-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--ngaf-chat-separator);min-height:48px}.chat-sidebar__panel-title{min-width:0;flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ngaf-chat-text);font-weight:500;font-size:var(--ngaf-chat-font-size-sm)}.chat-sidebar__close{flex:0 0 auto;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--ngaf-chat-text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center}.chat-sidebar__close:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-sidebar__launcher{position:fixed;bottom:calc(1rem + var(--ngaf-chat-debug-claim-bottom, 0));right:1rem;z-index:var(--ngaf-chat-z-overlay-content, 30);transition:bottom .2s ease-out}:host([data-open=\"true\"]) .chat-sidebar__launcher{display:none}\n"] }]
10469
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:flex;height:100%;min-height:0}.chat-sidebar__content{flex:1 1 auto;min-width:0;min-height:0;transition:margin-right .3s ease}:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:var(--tplane-chat-sidebar-width-drawer, 28rem)}@media(max-width:640px){:host([data-push=\"true\"][data-open=\"true\"]) .chat-sidebar__content{margin-right:0}}.chat-sidebar__panel{position:fixed;top:0;right:0;bottom:var(--tplane-chat-debug-claim-bottom, 0);width:var(--tplane-chat-sidebar-width-drawer, 28rem);background:var(--tplane-chat-bg);border-left:1px solid var(--tplane-chat-separator);box-shadow:-8px 0 32px #00000014;transform:translate(100%);transition:transform .2s ease-out,bottom .2s ease-out;z-index:var(--tplane-chat-z-overlay-content, 30);display:flex;flex-direction:column}.chat-sidebar__panel[data-open=true]{transform:translate(0)}@media(max-width:640px){.chat-sidebar__panel{width:100vw}}.chat-sidebar__panel-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--tplane-chat-separator);min-height:48px}.chat-sidebar__panel-title{min-width:0;flex:1 1 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--tplane-chat-text);font-weight:500;font-size:var(--tplane-chat-font-size-sm)}.chat-sidebar__close{flex:0 0 auto;width:32px;height:32px;background:transparent;border:0;cursor:pointer;color:var(--tplane-chat-text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center}.chat-sidebar__close:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-sidebar__launcher{position:fixed;bottom:calc(1rem + var(--tplane-chat-debug-claim-bottom, 0));right:1rem;z-index:var(--tplane-chat-z-overlay-content, 30);transition:bottom .2s ease-out}:host([data-open=\"true\"]) .chat-sidebar__launcher{display:none}\n"] }]
10125
10470
  }], ctorParameters: () => [], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], views: [{ type: i0.Input, args: [{ isSignal: true, alias: "views", required: false }] }], clientTools: [{ type: i0.Input, args: [{ isSignal: true, alias: "clientTools", required: false }] }], modelOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "modelOptions", required: false }] }], showModelPicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "showModelPicker", required: false }] }], selectedModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedModel", required: false }] }, { type: i0.Output, args: ["selectedModelChange"] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], pushContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "pushContent", required: false }] }] } });
10126
10471
 
10127
10472
  // libs/chat/src/lib/compositions/chat-timeline-slider/chat-timeline-slider.component.ts
@@ -10172,7 +10517,7 @@ class ChatTimelineSliderComponent {
10172
10517
  }
10173
10518
  </ul>
10174
10519
  }
10175
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:var(--ngaf-chat-space-2)}.timeline-slider__header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--ngaf-chat-space-1) var(--ngaf-chat-space-2)}.timeline-slider__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ngaf-chat-text-muted);margin:0}.timeline-slider__count{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted)}.timeline-slider__empty{text-align:center;padding:var(--ngaf-chat-space-4);color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-xs)}.timeline-slider__list{list-style:none;padding-left:12px;margin:0;border-left:1px solid var(--ngaf-chat-separator);display:flex;flex-direction:column;gap:2px}.timeline-slider__entry{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-left:-1px;border-left:2px solid transparent;border-radius:var(--ngaf-chat-radius-button);cursor:default;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm);transition:background .15s ease}.timeline-slider__entry:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 5%,transparent)}.timeline-slider__entry[data-active=true]{border-left-color:var(--ngaf-chat-primary);color:var(--ngaf-chat-text)}.timeline-slider__index{width:22px;height:22px;border-radius:9999px;background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text-muted);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.timeline-slider__entry[data-active=true] .timeline-slider__index{background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary)}.timeline-slider__body{flex:1;min-width:0}.timeline-slider__label{font-weight:500;color:var(--ngaf-chat-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ngaf-chat-font-size-sm)}.timeline-slider__id{font-family:var(--ngaf-chat-font-mono);font-size:11px;color:var(--ngaf-chat-text-muted);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-slider__actions{display:flex;gap:4px;flex-shrink:0}.timeline-slider__btn{padding:2px 8px;font-size:var(--ngaf-chat-font-size-xs);border-radius:var(--ngaf-chat-radius-button);background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);border:0;cursor:pointer;transition:background .15s ease}.timeline-slider__btn:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 8%,transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10520
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:var(--tplane-chat-space-2)}.timeline-slider__header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--tplane-chat-space-1) var(--tplane-chat-space-2)}.timeline-slider__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tplane-chat-text-muted);margin:0}.timeline-slider__count{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted)}.timeline-slider__empty{text-align:center;padding:var(--tplane-chat-space-4);color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-xs)}.timeline-slider__list{list-style:none;padding-left:12px;margin:0;border-left:1px solid var(--tplane-chat-separator);display:flex;flex-direction:column;gap:2px}.timeline-slider__entry{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-left:-1px;border-left:2px solid transparent;border-radius:var(--tplane-chat-radius-button);cursor:default;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm);transition:background .15s ease}.timeline-slider__entry:hover{background:color-mix(in srgb,var(--tplane-chat-text) 5%,transparent)}.timeline-slider__entry[data-active=true]{border-left-color:var(--tplane-chat-primary);color:var(--tplane-chat-text)}.timeline-slider__index{width:22px;height:22px;border-radius:9999px;background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text-muted);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.timeline-slider__entry[data-active=true] .timeline-slider__index{background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary)}.timeline-slider__body{flex:1;min-width:0}.timeline-slider__label{font-weight:500;color:var(--tplane-chat-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--tplane-chat-font-size-sm)}.timeline-slider__id{font-family:var(--tplane-chat-font-mono);font-size:11px;color:var(--tplane-chat-text-muted);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-slider__actions{display:flex;gap:4px;flex-shrink:0}.timeline-slider__btn{padding:2px 8px;font-size:var(--tplane-chat-font-size-xs);border-radius:var(--tplane-chat-radius-button);background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);border:0;cursor:pointer;transition:background .15s ease}.timeline-slider__btn:hover{background:color-mix(in srgb,var(--tplane-chat-text) 8%,transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10176
10521
  }
10177
10522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatTimelineSliderComponent, decorators: [{
10178
10523
  type: Component,
@@ -10206,7 +10551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
10206
10551
  }
10207
10552
  </ul>
10208
10553
  }
10209
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;padding:var(--ngaf-chat-space-2)}.timeline-slider__header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--ngaf-chat-space-1) var(--ngaf-chat-space-2)}.timeline-slider__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ngaf-chat-text-muted);margin:0}.timeline-slider__count{font-size:var(--ngaf-chat-font-size-xs);color:var(--ngaf-chat-text-muted)}.timeline-slider__empty{text-align:center;padding:var(--ngaf-chat-space-4);color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-xs)}.timeline-slider__list{list-style:none;padding-left:12px;margin:0;border-left:1px solid var(--ngaf-chat-separator);display:flex;flex-direction:column;gap:2px}.timeline-slider__entry{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-left:-1px;border-left:2px solid transparent;border-radius:var(--ngaf-chat-radius-button);cursor:default;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm);transition:background .15s ease}.timeline-slider__entry:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 5%,transparent)}.timeline-slider__entry[data-active=true]{border-left-color:var(--ngaf-chat-primary);color:var(--ngaf-chat-text)}.timeline-slider__index{width:22px;height:22px;border-radius:9999px;background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text-muted);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.timeline-slider__entry[data-active=true] .timeline-slider__index{background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary)}.timeline-slider__body{flex:1;min-width:0}.timeline-slider__label{font-weight:500;color:var(--ngaf-chat-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ngaf-chat-font-size-sm)}.timeline-slider__id{font-family:var(--ngaf-chat-font-mono);font-size:11px;color:var(--ngaf-chat-text-muted);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-slider__actions{display:flex;gap:4px;flex-shrink:0}.timeline-slider__btn{padding:2px 8px;font-size:var(--ngaf-chat-font-size-xs);border-radius:var(--ngaf-chat-radius-button);background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text);border:0;cursor:pointer;transition:background .15s ease}.timeline-slider__btn:hover{background:color-mix(in srgb,var(--ngaf-chat-text) 8%,transparent)}\n"] }]
10554
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;padding:var(--tplane-chat-space-2)}.timeline-slider__header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--tplane-chat-space-1) var(--tplane-chat-space-2)}.timeline-slider__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--tplane-chat-text-muted);margin:0}.timeline-slider__count{font-size:var(--tplane-chat-font-size-xs);color:var(--tplane-chat-text-muted)}.timeline-slider__empty{text-align:center;padding:var(--tplane-chat-space-4);color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-xs)}.timeline-slider__list{list-style:none;padding-left:12px;margin:0;border-left:1px solid var(--tplane-chat-separator);display:flex;flex-direction:column;gap:2px}.timeline-slider__entry{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-left:-1px;border-left:2px solid transparent;border-radius:var(--tplane-chat-radius-button);cursor:default;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm);transition:background .15s ease}.timeline-slider__entry:hover{background:color-mix(in srgb,var(--tplane-chat-text) 5%,transparent)}.timeline-slider__entry[data-active=true]{border-left-color:var(--tplane-chat-primary);color:var(--tplane-chat-text)}.timeline-slider__index{width:22px;height:22px;border-radius:9999px;background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text-muted);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.timeline-slider__entry[data-active=true] .timeline-slider__index{background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary)}.timeline-slider__body{flex:1;min-width:0}.timeline-slider__label{font-weight:500;color:var(--tplane-chat-text);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--tplane-chat-font-size-sm)}.timeline-slider__id{font-family:var(--tplane-chat-font-mono);font-size:11px;color:var(--tplane-chat-text-muted);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-slider__actions{display:flex;gap:4px;flex-shrink:0}.timeline-slider__btn{padding:2px 8px;font-size:var(--tplane-chat-font-size-xs);border-radius:var(--tplane-chat-radius-button);background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text);border:0;cursor:pointer;transition:background .15s ease}.timeline-slider__btn:hover{background:color-mix(in srgb,var(--tplane-chat-text) 8%,transparent)}\n"] }]
10210
10555
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], replayRequested: [{ type: i0.Output, args: ["replayRequested"] }], forkRequested: [{ type: i0.Output, args: ["forkRequested"] }] } });
10211
10556
 
10212
10557
  // libs/chat/src/lib/styles/chat-sidenav.styles.ts
@@ -10232,10 +10577,10 @@ const CHAT_SIDENAV_STYLES = `
10232
10577
  z-index: 100;
10233
10578
  }
10234
10579
  :host([data-mode="expanded"]) {
10235
- width: var(--ngaf-chat-sidenav-width-expanded);
10580
+ width: var(--tplane-chat-sidenav-width-expanded);
10236
10581
  }
10237
10582
  :host([data-mode="collapsed"]) {
10238
- width: var(--ngaf-chat-sidenav-width-collapsed);
10583
+ width: var(--tplane-chat-sidenav-width-collapsed);
10239
10584
  }
10240
10585
  :host([data-mode="expanded"]) .chat-sidenav {
10241
10586
  width: 100%;
@@ -10248,8 +10593,8 @@ const CHAT_SIDENAV_STYLES = `
10248
10593
  top: 0;
10249
10594
  left: 0;
10250
10595
  bottom: 0;
10251
- width: var(--ngaf-chat-sidenav-width-drawer);
10252
- z-index: var(--ngaf-chat-z-drawer, 1001);
10596
+ width: var(--tplane-chat-sidenav-width-drawer);
10597
+ z-index: var(--tplane-chat-z-drawer, 1001);
10253
10598
  }
10254
10599
  :host([data-mode="drawer"][data-open="true"]) {
10255
10600
  box-shadow: 8px 0 32px rgba(0, 0, 0, 0.18);
@@ -10258,8 +10603,8 @@ const CHAT_SIDENAV_STYLES = `
10258
10603
  display: flex;
10259
10604
  flex-direction: column;
10260
10605
  height: 100%;
10261
- background: var(--ngaf-chat-bg);
10262
- border-right: 1px solid var(--ngaf-chat-separator);
10606
+ background: var(--tplane-chat-bg);
10607
+ border-right: 1px solid var(--tplane-chat-separator);
10263
10608
  box-sizing: border-box;
10264
10609
  overflow: hidden;
10265
10610
  }
@@ -10274,7 +10619,7 @@ const CHAT_SIDENAV_STYLES = `
10274
10619
  }
10275
10620
  .chat-sidenav__header {
10276
10621
  flex-shrink: 0;
10277
- padding: var(--ngaf-chat-space-3);
10622
+ padding: var(--tplane-chat-space-3);
10278
10623
  }
10279
10624
  /* Collapse the header slot when the consumer doesn't project content
10280
10625
  * — matches the chat-window pattern. Avoids 24px of dead space above
@@ -10287,15 +10632,15 @@ const CHAT_SIDENAV_STYLES = `
10287
10632
  align-items: center;
10288
10633
  justify-content: space-between;
10289
10634
  gap: 4px;
10290
- padding: var(--ngaf-chat-space-2) var(--ngaf-chat-space-3);
10291
- border-bottom: 1px solid var(--ngaf-chat-separator);
10635
+ padding: var(--tplane-chat-space-2) var(--tplane-chat-space-3);
10636
+ border-bottom: 1px solid var(--tplane-chat-separator);
10292
10637
  }
10293
10638
  :host([data-mode="collapsed"]) .chat-sidenav__topbar {
10294
10639
  flex-direction: column;
10295
10640
  align-items: center;
10296
10641
  justify-content: center;
10297
10642
  gap: 4px;
10298
- padding: var(--ngaf-chat-space-2) 0;
10643
+ padding: var(--tplane-chat-space-2) 0;
10299
10644
  }
10300
10645
  .chat-sidenav__topbar .chat-sidenav__action--close {
10301
10646
  width: 36px;
@@ -10313,7 +10658,7 @@ const CHAT_SIDENAV_STYLES = `
10313
10658
  border: 0;
10314
10659
  padding: 12px 18px;
10315
10660
  border-radius: 8px;
10316
- font-size: var(--ngaf-chat-font-size-sm);
10661
+ font-size: var(--tplane-chat-font-size-sm);
10317
10662
  font-weight: 600;
10318
10663
  display: flex;
10319
10664
  align-items: center;
@@ -10322,7 +10667,7 @@ const CHAT_SIDENAV_STYLES = `
10322
10667
  width: 100%;
10323
10668
  }
10324
10669
  .chat-sidenav__action--new:focus-visible {
10325
- outline: 2px solid var(--ngaf-chat-primary);
10670
+ outline: 2px solid var(--tplane-chat-primary);
10326
10671
  outline-offset: 2px;
10327
10672
  }
10328
10673
  /* Collapsed mode: shrink to 32×32 icon-only square. */
@@ -10341,11 +10686,11 @@ const CHAT_SIDENAV_STYLES = `
10341
10686
  display: flex;
10342
10687
  flex-direction: column;
10343
10688
  gap: 4px;
10344
- padding: var(--ngaf-chat-space-3);
10689
+ padding: var(--tplane-chat-space-3);
10345
10690
  }
10346
10691
  :host([data-mode="collapsed"]) .chat-sidenav__actions {
10347
10692
  align-items: center;
10348
- padding: var(--ngaf-chat-space-2);
10693
+ padding: var(--tplane-chat-space-2);
10349
10694
  }
10350
10695
  .chat-sidenav__action {
10351
10696
  display: flex;
@@ -10355,17 +10700,17 @@ const CHAT_SIDENAV_STYLES = `
10355
10700
  padding: 8px 12px;
10356
10701
  border: 0;
10357
10702
  background: transparent;
10358
- color: var(--ngaf-chat-text);
10703
+ color: var(--tplane-chat-text);
10359
10704
  border-radius: 8px;
10360
10705
  cursor: pointer;
10361
10706
  font-family: inherit;
10362
- font-size: var(--ngaf-chat-font-size-sm);
10707
+ font-size: var(--tplane-chat-font-size-sm);
10363
10708
  font-weight: 400;
10364
10709
  text-align: left;
10365
10710
  }
10366
- .chat-sidenav__action:hover { background: var(--ngaf-chat-surface-alt); }
10711
+ .chat-sidenav__action:hover { background: var(--tplane-chat-surface-alt); }
10367
10712
  .chat-sidenav__action:focus-visible {
10368
- outline: 2px solid var(--ngaf-chat-primary);
10713
+ outline: 2px solid var(--tplane-chat-primary);
10369
10714
  outline-offset: 2px;
10370
10715
  }
10371
10716
  :host([data-mode="collapsed"]) .chat-sidenav__action {
@@ -10383,15 +10728,15 @@ const CHAT_SIDENAV_STYLES = `
10383
10728
  collapsed-mode overrides (which are :host-prefixed, higher
10384
10729
  specificity, so they still apply). */
10385
10730
  .chat-sidenav__action.chat-sidenav__action--new {
10386
- background: var(--ngaf-chat-text);
10387
- color: var(--ngaf-chat-bg);
10731
+ background: var(--tplane-chat-text);
10732
+ color: var(--tplane-chat-bg);
10388
10733
  border-radius: 8px;
10389
10734
  padding: 12px 18px;
10390
10735
  font-weight: 600;
10391
- font-size: var(--ngaf-chat-font-size-sm);
10736
+ font-size: var(--tplane-chat-font-size-sm);
10392
10737
  }
10393
10738
  .chat-sidenav__action.chat-sidenav__action--new:hover {
10394
- background: var(--ngaf-chat-text);
10739
+ background: var(--tplane-chat-text);
10395
10740
  filter: brightness(0.92);
10396
10741
  }
10397
10742
  .chat-sidenav__action-icon {
@@ -10411,7 +10756,7 @@ const CHAT_SIDENAV_STYLES = `
10411
10756
  .chat-sidenav__threads-heading {
10412
10757
  padding: 8px 12px 4px;
10413
10758
  font-size: 11px;
10414
- color: var(--ngaf-chat-text-muted);
10759
+ color: var(--tplane-chat-text-muted);
10415
10760
  text-transform: uppercase;
10416
10761
  letter-spacing: 0.4px;
10417
10762
  }
@@ -10423,7 +10768,7 @@ const CHAT_SIDENAV_STYLES = `
10423
10768
  align-items: center;
10424
10769
  justify-content: space-between;
10425
10770
  padding: 10px 12px;
10426
- border-top: 1px solid var(--ngaf-chat-separator);
10771
+ border-top: 1px solid var(--tplane-chat-separator);
10427
10772
  gap: 8px;
10428
10773
  flex-shrink: 0;
10429
10774
  }
@@ -10444,18 +10789,18 @@ const CHAT_SIDENAV_STYLES = `
10444
10789
  border: 0;
10445
10790
  border-radius: 8px;
10446
10791
  background: transparent;
10447
- color: var(--ngaf-chat-text-muted);
10792
+ color: var(--tplane-chat-text-muted);
10448
10793
  cursor: pointer;
10449
10794
  font: inherit;
10450
10795
  font-size: 12px;
10451
10796
  font-weight: 500;
10452
10797
  }
10453
10798
  .chat-sidenav__debug:hover {
10454
- background: var(--ngaf-chat-surface-alt);
10455
- color: var(--ngaf-chat-text);
10799
+ background: var(--tplane-chat-surface-alt);
10800
+ color: var(--tplane-chat-text);
10456
10801
  }
10457
10802
  .chat-sidenav__debug:focus-visible {
10458
- outline: 2px solid var(--ngaf-chat-primary);
10803
+ outline: 2px solid var(--tplane-chat-primary);
10459
10804
  outline-offset: 2px;
10460
10805
  }
10461
10806
  .chat-sidenav__debug-dot {
@@ -10486,15 +10831,15 @@ const CHAT_SIDENAV_STYLES = `
10486
10831
  border-radius: 8px;
10487
10832
  border: 0;
10488
10833
  background: transparent;
10489
- color: var(--ngaf-chat-text-muted);
10834
+ color: var(--tplane-chat-text-muted);
10490
10835
  cursor: pointer;
10491
10836
  display: flex;
10492
10837
  align-items: center;
10493
10838
  justify-content: center;
10494
10839
  }
10495
10840
  .chat-sidenav__toggle:hover {
10496
- background: var(--ngaf-chat-surface-alt);
10497
- color: var(--ngaf-chat-text);
10841
+ background: var(--tplane-chat-surface-alt);
10842
+ color: var(--tplane-chat-text);
10498
10843
  }
10499
10844
  /* Collapsed mode: footer becomes a vertical stack; debug stays visible. */
10500
10845
  :host([data-mode="collapsed"]) .chat-sidenav__footer {
@@ -10540,18 +10885,18 @@ const CHAT_SIDENAV_STYLES = `
10540
10885
  border: 0;
10541
10886
  border-radius: 8px;
10542
10887
  background: transparent;
10543
- color: var(--ngaf-chat-text);
10888
+ color: var(--tplane-chat-text);
10544
10889
  font: inherit;
10545
- font-size: var(--ngaf-chat-font-size-sm);
10890
+ font-size: var(--tplane-chat-font-size-sm);
10546
10891
  text-align: left;
10547
10892
  cursor: pointer;
10548
10893
  }
10549
10894
  .chat-sidenav__archived-heading:hover {
10550
- background: var(--ngaf-chat-surface-alt);
10551
- color: var(--ngaf-chat-text);
10895
+ background: var(--tplane-chat-surface-alt);
10896
+ color: var(--tplane-chat-text);
10552
10897
  }
10553
10898
  .chat-sidenav__archived-heading:focus-visible {
10554
- outline: 2px solid var(--ngaf-chat-primary);
10899
+ outline: 2px solid var(--tplane-chat-primary);
10555
10900
  outline-offset: 2px;
10556
10901
  }
10557
10902
  .chat-sidenav__archived-chevron {
@@ -10565,8 +10910,8 @@ const CHAT_SIDENAV_STYLES = `
10565
10910
  }
10566
10911
  .chat-sidenav__archived-empty {
10567
10912
  padding: 8px 12px;
10568
- color: var(--ngaf-chat-text-muted);
10569
- font-size: var(--ngaf-chat-font-size-sm);
10913
+ color: var(--tplane-chat-text-muted);
10914
+ font-size: var(--tplane-chat-font-size-sm);
10570
10915
  }
10571
10916
  :host([data-mode="collapsed"]) .chat-sidenav__archived { display: none; }
10572
10917
  .chat-sidenav__projects { flex-shrink: 0; }
@@ -11018,7 +11363,7 @@ class ChatSidenavComponent {
11018
11363
  </div>
11019
11364
  </nav>
11020
11365
  <ng-container #debugHost />
11021
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;height:100%}:host([data-mode=\"expanded\"]),:host([data-mode=\"collapsed\"]){position:fixed;top:0;left:0;bottom:0;z-index:100}:host([data-mode=\"expanded\"]){width:var(--ngaf-chat-sidenav-width-expanded)}:host([data-mode=\"collapsed\"]){width:var(--ngaf-chat-sidenav-width-collapsed)}:host([data-mode=\"expanded\"]) .chat-sidenav{width:100%}:host([data-mode=\"collapsed\"]) .chat-sidenav{width:100%}:host([data-mode=\"drawer\"]){position:fixed;top:0;left:0;bottom:0;width:var(--ngaf-chat-sidenav-width-drawer);z-index:var(--ngaf-chat-z-drawer, 1001)}:host([data-mode=\"drawer\"][data-open=\"true\"]){box-shadow:8px 0 32px #0000002e}.chat-sidenav{display:flex;flex-direction:column;height:100%;background:var(--ngaf-chat-bg);border-right:1px solid var(--ngaf-chat-separator);box-sizing:border-box;overflow:hidden}:host([data-mode=\"drawer\"]) .chat-sidenav{width:100%;height:100%;transition:transform .2s ease;transform:translate(-100%)}:host([data-mode=\"drawer\"][data-open=\"true\"]) .chat-sidenav{transform:translate(0)}.chat-sidenav__header{flex-shrink:0;padding:var(--ngaf-chat-space-3)}.chat-sidenav__header:empty{display:none}.chat-sidenav__topbar{flex-shrink:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:4px;padding:var(--ngaf-chat-space-2) var(--ngaf-chat-space-3);border-bottom:1px solid var(--ngaf-chat-separator)}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--ngaf-chat-space-2) 0}.chat-sidenav__topbar .chat-sidenav__action--close{width:36px;height:36px;padding:0;justify-content:center;flex:0 0 auto}.chat-sidenav__topbar .chat-sidenav__action--close .chat-sidenav__action-label{display:none}.chat-sidenav__action--new{border:0;padding:12px 18px;border-radius:8px;font-size:var(--ngaf-chat-font-size-sm);font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-sidenav__action--new:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new .chat-sidenav__action-label{display:none}.chat-sidenav__actions{flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:var(--ngaf-chat-space-3)}:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{align-items:center;padding:var(--ngaf-chat-space-2)}.chat-sidenav__action{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;background:transparent;color:var(--ngaf-chat-text);border-radius:8px;cursor:pointer;font-family:inherit;font-size:var(--ngaf-chat-font-size-sm);font-weight:400;text-align:left}.chat-sidenav__action:hover{background:var(--ngaf-chat-surface-alt)}.chat-sidenav__action:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action{width:36px;height:36px;padding:0;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action-label{display:none}.chat-sidenav__action.chat-sidenav__action--new{background:var(--ngaf-chat-text);color:var(--ngaf-chat-bg);border-radius:8px;padding:12px 18px;font-weight:600;font-size:var(--ngaf-chat-font-size-sm)}.chat-sidenav__action.chat-sidenav__action--new:hover{background:var(--ngaf-chat-text);filter:brightness(.92)}.chat-sidenav__action-icon{width:16px;height:16px;flex-shrink:0}.chat-sidenav__primary,.chat-sidenav__sections{flex-shrink:0}.chat-sidenav__threads{flex:1 1 auto;min-height:0;overflow-y:auto}.chat-sidenav__threads-heading{padding:8px 12px 4px;font-size:11px;color:var(--ngaf-chat-text-muted);text-transform:uppercase;letter-spacing:.4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads-heading{display:none}.chat-sidenav__footer{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--ngaf-chat-separator);gap:8px;flex-shrink:0}.chat-sidenav__footer-left{display:flex;align-items:center;gap:4px;min-height:28px}.chat-sidenav__debug{height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--ngaf-chat-text-muted);cursor:pointer;font:inherit;font-size:12px;font-weight:500}.chat-sidenav__debug:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-sidenav__debug:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-sidenav__debug-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px color-mix(in srgb,#22c55e 60%,transparent);flex:0 0 auto}.chat-sidenav__debug-dot--streaming{animation:chat-sidenav-debug-pulse 1.2s ease-in-out infinite}@keyframes chat-sidenav-debug-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.chat-sidenav__footer-right{display:flex;align-items:center;gap:4px;margin-left:auto}.chat-sidenav__toggle{width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--ngaf-chat-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-sidenav__toggle:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer{flex-direction:column;align-items:center;padding:10px 4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left{display:flex;flex-direction:column;align-items:center;min-height:28px}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug{width:28px;padding:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug-label,:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left>:not(.chat-sidenav__debug){display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-right{flex-direction:column}.chat-sidenav__account{display:none}.chat-sidenav__account:has(>*){display:flex;align-items:center;gap:4px}.chat-sidenav__archived{flex-shrink:0}.chat-sidenav__archived-heading{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);text-align:left;cursor:pointer}.chat-sidenav__archived-heading:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-sidenav__archived-heading:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-sidenav__archived-chevron{width:12px;height:12px;transition:transform .15s ease;flex-shrink:0}.chat-sidenav__archived[data-open=true] .chat-sidenav__archived-chevron{transform:rotate(90deg)}.chat-sidenav__archived-empty{padding:8px 12px;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm)}:host([data-mode=\"collapsed\"]) .chat-sidenav__archived{display:none}.chat-sidenav__projects{flex-shrink:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__projects{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__initial{display:inline-flex}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-title{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-time{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__kebab{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__grip{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-wrap{justify-content:center}:host([data-mode=\"collapsed\"]) .chat-thread-list__item{padding:6px;justify-content:center;align-items:center;flex-direction:row}:host([data-mode=\"collapsed\"]) .chat-thread-list__new{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center;background:transparent}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search .chat-sidenav__action-label{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads,:host([data-mode=\"collapsed\"]) .chat-sidenav__projects,:host([data-mode=\"collapsed\"]) .chat-sidenav__archived,:host([data-mode=\"collapsed\"]) .chat-sidenav__sections,:host([data-mode=\"collapsed\"]) .chat-sidenav__primary{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar,:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{padding:8px 4px;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: ChatThreadListComponent, selector: "chat-thread-list", inputs: ["threads", "activeThreadId", "showNewThreadButton", "actions", "mode", "projects"], outputs: ["threadSelected", "newThreadRequested"] }, { kind: "component", type: ChatProjectListComponent, selector: "chat-project-list", inputs: ["projects", "activeProjectId", "showNewProjectButton", "actions"], outputs: ["projectSelected", "newProjectRequested"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11366
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;height:100%}:host([data-mode=\"expanded\"]),:host([data-mode=\"collapsed\"]){position:fixed;top:0;left:0;bottom:0;z-index:100}:host([data-mode=\"expanded\"]){width:var(--tplane-chat-sidenav-width-expanded)}:host([data-mode=\"collapsed\"]){width:var(--tplane-chat-sidenav-width-collapsed)}:host([data-mode=\"expanded\"]) .chat-sidenav{width:100%}:host([data-mode=\"collapsed\"]) .chat-sidenav{width:100%}:host([data-mode=\"drawer\"]){position:fixed;top:0;left:0;bottom:0;width:var(--tplane-chat-sidenav-width-drawer);z-index:var(--tplane-chat-z-drawer, 1001)}:host([data-mode=\"drawer\"][data-open=\"true\"]){box-shadow:8px 0 32px #0000002e}.chat-sidenav{display:flex;flex-direction:column;height:100%;background:var(--tplane-chat-bg);border-right:1px solid var(--tplane-chat-separator);box-sizing:border-box;overflow:hidden}:host([data-mode=\"drawer\"]) .chat-sidenav{width:100%;height:100%;transition:transform .2s ease;transform:translate(-100%)}:host([data-mode=\"drawer\"][data-open=\"true\"]) .chat-sidenav{transform:translate(0)}.chat-sidenav__header{flex-shrink:0;padding:var(--tplane-chat-space-3)}.chat-sidenav__header:empty{display:none}.chat-sidenav__topbar{flex-shrink:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:4px;padding:var(--tplane-chat-space-2) var(--tplane-chat-space-3);border-bottom:1px solid var(--tplane-chat-separator)}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--tplane-chat-space-2) 0}.chat-sidenav__topbar .chat-sidenav__action--close{width:36px;height:36px;padding:0;justify-content:center;flex:0 0 auto}.chat-sidenav__topbar .chat-sidenav__action--close .chat-sidenav__action-label{display:none}.chat-sidenav__action--new{border:0;padding:12px 18px;border-radius:8px;font-size:var(--tplane-chat-font-size-sm);font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-sidenav__action--new:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new .chat-sidenav__action-label{display:none}.chat-sidenav__actions{flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:var(--tplane-chat-space-3)}:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{align-items:center;padding:var(--tplane-chat-space-2)}.chat-sidenav__action{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;background:transparent;color:var(--tplane-chat-text);border-radius:8px;cursor:pointer;font-family:inherit;font-size:var(--tplane-chat-font-size-sm);font-weight:400;text-align:left}.chat-sidenav__action:hover{background:var(--tplane-chat-surface-alt)}.chat-sidenav__action:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action{width:36px;height:36px;padding:0;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action-label{display:none}.chat-sidenav__action.chat-sidenav__action--new{background:var(--tplane-chat-text);color:var(--tplane-chat-bg);border-radius:8px;padding:12px 18px;font-weight:600;font-size:var(--tplane-chat-font-size-sm)}.chat-sidenav__action.chat-sidenav__action--new:hover{background:var(--tplane-chat-text);filter:brightness(.92)}.chat-sidenav__action-icon{width:16px;height:16px;flex-shrink:0}.chat-sidenav__primary,.chat-sidenav__sections{flex-shrink:0}.chat-sidenav__threads{flex:1 1 auto;min-height:0;overflow-y:auto}.chat-sidenav__threads-heading{padding:8px 12px 4px;font-size:11px;color:var(--tplane-chat-text-muted);text-transform:uppercase;letter-spacing:.4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads-heading{display:none}.chat-sidenav__footer{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--tplane-chat-separator);gap:8px;flex-shrink:0}.chat-sidenav__footer-left{display:flex;align-items:center;gap:4px;min-height:28px}.chat-sidenav__debug{height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--tplane-chat-text-muted);cursor:pointer;font:inherit;font-size:12px;font-weight:500}.chat-sidenav__debug:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-sidenav__debug:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-sidenav__debug-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px color-mix(in srgb,#22c55e 60%,transparent);flex:0 0 auto}.chat-sidenav__debug-dot--streaming{animation:chat-sidenav-debug-pulse 1.2s ease-in-out infinite}@keyframes chat-sidenav-debug-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.chat-sidenav__footer-right{display:flex;align-items:center;gap:4px;margin-left:auto}.chat-sidenav__toggle{width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--tplane-chat-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-sidenav__toggle:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer{flex-direction:column;align-items:center;padding:10px 4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left{display:flex;flex-direction:column;align-items:center;min-height:28px}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug{width:28px;padding:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug-label,:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left>:not(.chat-sidenav__debug){display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-right{flex-direction:column}.chat-sidenav__account{display:none}.chat-sidenav__account:has(>*){display:flex;align-items:center;gap:4px}.chat-sidenav__archived{flex-shrink:0}.chat-sidenav__archived-heading{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);text-align:left;cursor:pointer}.chat-sidenav__archived-heading:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-sidenav__archived-heading:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-sidenav__archived-chevron{width:12px;height:12px;transition:transform .15s ease;flex-shrink:0}.chat-sidenav__archived[data-open=true] .chat-sidenav__archived-chevron{transform:rotate(90deg)}.chat-sidenav__archived-empty{padding:8px 12px;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm)}:host([data-mode=\"collapsed\"]) .chat-sidenav__archived{display:none}.chat-sidenav__projects{flex-shrink:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__projects{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__initial{display:inline-flex}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-title{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-time{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__kebab{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__grip{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-wrap{justify-content:center}:host([data-mode=\"collapsed\"]) .chat-thread-list__item{padding:6px;justify-content:center;align-items:center;flex-direction:row}:host([data-mode=\"collapsed\"]) .chat-thread-list__new{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center;background:transparent}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search .chat-sidenav__action-label{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads,:host([data-mode=\"collapsed\"]) .chat-sidenav__projects,:host([data-mode=\"collapsed\"]) .chat-sidenav__archived,:host([data-mode=\"collapsed\"]) .chat-sidenav__sections,:host([data-mode=\"collapsed\"]) .chat-sidenav__primary{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar,:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{padding:8px 4px;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: ChatThreadListComponent, selector: "chat-thread-list", inputs: ["threads", "activeThreadId", "showNewThreadButton", "actions", "mode", "projects"], outputs: ["threadSelected", "newThreadRequested"] }, { kind: "component", type: ChatProjectListComponent, selector: "chat-project-list", inputs: ["projects", "activeProjectId", "showNewProjectButton", "actions"], outputs: ["projectSelected", "newProjectRequested"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11022
11367
  }
11023
11368
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSidenavComponent, decorators: [{
11024
11369
  type: Component,
@@ -11262,7 +11607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11262
11607
  </div>
11263
11608
  </nav>
11264
11609
  <ng-container #debugHost />
11265
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:block;height:100%}:host([data-mode=\"expanded\"]),:host([data-mode=\"collapsed\"]){position:fixed;top:0;left:0;bottom:0;z-index:100}:host([data-mode=\"expanded\"]){width:var(--ngaf-chat-sidenav-width-expanded)}:host([data-mode=\"collapsed\"]){width:var(--ngaf-chat-sidenav-width-collapsed)}:host([data-mode=\"expanded\"]) .chat-sidenav{width:100%}:host([data-mode=\"collapsed\"]) .chat-sidenav{width:100%}:host([data-mode=\"drawer\"]){position:fixed;top:0;left:0;bottom:0;width:var(--ngaf-chat-sidenav-width-drawer);z-index:var(--ngaf-chat-z-drawer, 1001)}:host([data-mode=\"drawer\"][data-open=\"true\"]){box-shadow:8px 0 32px #0000002e}.chat-sidenav{display:flex;flex-direction:column;height:100%;background:var(--ngaf-chat-bg);border-right:1px solid var(--ngaf-chat-separator);box-sizing:border-box;overflow:hidden}:host([data-mode=\"drawer\"]) .chat-sidenav{width:100%;height:100%;transition:transform .2s ease;transform:translate(-100%)}:host([data-mode=\"drawer\"][data-open=\"true\"]) .chat-sidenav{transform:translate(0)}.chat-sidenav__header{flex-shrink:0;padding:var(--ngaf-chat-space-3)}.chat-sidenav__header:empty{display:none}.chat-sidenav__topbar{flex-shrink:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:4px;padding:var(--ngaf-chat-space-2) var(--ngaf-chat-space-3);border-bottom:1px solid var(--ngaf-chat-separator)}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--ngaf-chat-space-2) 0}.chat-sidenav__topbar .chat-sidenav__action--close{width:36px;height:36px;padding:0;justify-content:center;flex:0 0 auto}.chat-sidenav__topbar .chat-sidenav__action--close .chat-sidenav__action-label{display:none}.chat-sidenav__action--new{border:0;padding:12px 18px;border-radius:8px;font-size:var(--ngaf-chat-font-size-sm);font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-sidenav__action--new:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new .chat-sidenav__action-label{display:none}.chat-sidenav__actions{flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:var(--ngaf-chat-space-3)}:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{align-items:center;padding:var(--ngaf-chat-space-2)}.chat-sidenav__action{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;background:transparent;color:var(--ngaf-chat-text);border-radius:8px;cursor:pointer;font-family:inherit;font-size:var(--ngaf-chat-font-size-sm);font-weight:400;text-align:left}.chat-sidenav__action:hover{background:var(--ngaf-chat-surface-alt)}.chat-sidenav__action:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action{width:36px;height:36px;padding:0;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action-label{display:none}.chat-sidenav__action.chat-sidenav__action--new{background:var(--ngaf-chat-text);color:var(--ngaf-chat-bg);border-radius:8px;padding:12px 18px;font-weight:600;font-size:var(--ngaf-chat-font-size-sm)}.chat-sidenav__action.chat-sidenav__action--new:hover{background:var(--ngaf-chat-text);filter:brightness(.92)}.chat-sidenav__action-icon{width:16px;height:16px;flex-shrink:0}.chat-sidenav__primary,.chat-sidenav__sections{flex-shrink:0}.chat-sidenav__threads{flex:1 1 auto;min-height:0;overflow-y:auto}.chat-sidenav__threads-heading{padding:8px 12px 4px;font-size:11px;color:var(--ngaf-chat-text-muted);text-transform:uppercase;letter-spacing:.4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads-heading{display:none}.chat-sidenav__footer{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--ngaf-chat-separator);gap:8px;flex-shrink:0}.chat-sidenav__footer-left{display:flex;align-items:center;gap:4px;min-height:28px}.chat-sidenav__debug{height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--ngaf-chat-text-muted);cursor:pointer;font:inherit;font-size:12px;font-weight:500}.chat-sidenav__debug:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-sidenav__debug:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-sidenav__debug-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px color-mix(in srgb,#22c55e 60%,transparent);flex:0 0 auto}.chat-sidenav__debug-dot--streaming{animation:chat-sidenav-debug-pulse 1.2s ease-in-out infinite}@keyframes chat-sidenav-debug-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.chat-sidenav__footer-right{display:flex;align-items:center;gap:4px;margin-left:auto}.chat-sidenav__toggle{width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--ngaf-chat-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-sidenav__toggle:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer{flex-direction:column;align-items:center;padding:10px 4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left{display:flex;flex-direction:column;align-items:center;min-height:28px}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug{width:28px;padding:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug-label,:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left>:not(.chat-sidenav__debug){display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-right{flex-direction:column}.chat-sidenav__account{display:none}.chat-sidenav__account:has(>*){display:flex;align-items:center;gap:4px}.chat-sidenav__archived{flex-shrink:0}.chat-sidenav__archived-heading{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--ngaf-chat-text);font:inherit;font-size:var(--ngaf-chat-font-size-sm);text-align:left;cursor:pointer}.chat-sidenav__archived-heading:hover{background:var(--ngaf-chat-surface-alt);color:var(--ngaf-chat-text)}.chat-sidenav__archived-heading:focus-visible{outline:2px solid var(--ngaf-chat-primary);outline-offset:2px}.chat-sidenav__archived-chevron{width:12px;height:12px;transition:transform .15s ease;flex-shrink:0}.chat-sidenav__archived[data-open=true] .chat-sidenav__archived-chevron{transform:rotate(90deg)}.chat-sidenav__archived-empty{padding:8px 12px;color:var(--ngaf-chat-text-muted);font-size:var(--ngaf-chat-font-size-sm)}:host([data-mode=\"collapsed\"]) .chat-sidenav__archived{display:none}.chat-sidenav__projects{flex-shrink:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__projects{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__initial{display:inline-flex}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-title{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-time{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__kebab{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__grip{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-wrap{justify-content:center}:host([data-mode=\"collapsed\"]) .chat-thread-list__item{padding:6px;justify-content:center;align-items:center;flex-direction:row}:host([data-mode=\"collapsed\"]) .chat-thread-list__new{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center;background:transparent}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search .chat-sidenav__action-label{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads,:host([data-mode=\"collapsed\"]) .chat-sidenav__projects,:host([data-mode=\"collapsed\"]) .chat-sidenav__archived,:host([data-mode=\"collapsed\"]) .chat-sidenav__sections,:host([data-mode=\"collapsed\"]) .chat-sidenav__primary{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar,:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{padding:8px 4px;align-items:center;justify-content:center}\n"] }]
11610
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:block;height:100%}:host([data-mode=\"expanded\"]),:host([data-mode=\"collapsed\"]){position:fixed;top:0;left:0;bottom:0;z-index:100}:host([data-mode=\"expanded\"]){width:var(--tplane-chat-sidenav-width-expanded)}:host([data-mode=\"collapsed\"]){width:var(--tplane-chat-sidenav-width-collapsed)}:host([data-mode=\"expanded\"]) .chat-sidenav{width:100%}:host([data-mode=\"collapsed\"]) .chat-sidenav{width:100%}:host([data-mode=\"drawer\"]){position:fixed;top:0;left:0;bottom:0;width:var(--tplane-chat-sidenav-width-drawer);z-index:var(--tplane-chat-z-drawer, 1001)}:host([data-mode=\"drawer\"][data-open=\"true\"]){box-shadow:8px 0 32px #0000002e}.chat-sidenav{display:flex;flex-direction:column;height:100%;background:var(--tplane-chat-bg);border-right:1px solid var(--tplane-chat-separator);box-sizing:border-box;overflow:hidden}:host([data-mode=\"drawer\"]) .chat-sidenav{width:100%;height:100%;transition:transform .2s ease;transform:translate(-100%)}:host([data-mode=\"drawer\"][data-open=\"true\"]) .chat-sidenav{transform:translate(0)}.chat-sidenav__header{flex-shrink:0;padding:var(--tplane-chat-space-3)}.chat-sidenav__header:empty{display:none}.chat-sidenav__topbar{flex-shrink:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:4px;padding:var(--tplane-chat-space-2) var(--tplane-chat-space-3);border-bottom:1px solid var(--tplane-chat-separator)}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--tplane-chat-space-2) 0}.chat-sidenav__topbar .chat-sidenav__action--close{width:36px;height:36px;padding:0;justify-content:center;flex:0 0 auto}.chat-sidenav__topbar .chat-sidenav__action--close .chat-sidenav__action-label{display:none}.chat-sidenav__action--new{border:0;padding:12px 18px;border-radius:8px;font-size:var(--tplane-chat-font-size-sm);font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;width:100%}.chat-sidenav__action--new:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--new .chat-sidenav__action-label{display:none}.chat-sidenav__actions{flex-shrink:0;display:flex;flex-direction:column;gap:4px;padding:var(--tplane-chat-space-3)}:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{align-items:center;padding:var(--tplane-chat-space-2)}.chat-sidenav__action{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;background:transparent;color:var(--tplane-chat-text);border-radius:8px;cursor:pointer;font-family:inherit;font-size:var(--tplane-chat-font-size-sm);font-weight:400;text-align:left}.chat-sidenav__action:hover{background:var(--tplane-chat-surface-alt)}.chat-sidenav__action:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}:host([data-mode=\"collapsed\"]) .chat-sidenav__action{width:36px;height:36px;padding:0;justify-content:center}:host([data-mode=\"collapsed\"]) .chat-sidenav__action-label{display:none}.chat-sidenav__action.chat-sidenav__action--new{background:var(--tplane-chat-text);color:var(--tplane-chat-bg);border-radius:8px;padding:12px 18px;font-weight:600;font-size:var(--tplane-chat-font-size-sm)}.chat-sidenav__action.chat-sidenav__action--new:hover{background:var(--tplane-chat-text);filter:brightness(.92)}.chat-sidenav__action-icon{width:16px;height:16px;flex-shrink:0}.chat-sidenav__primary,.chat-sidenav__sections{flex-shrink:0}.chat-sidenav__threads{flex:1 1 auto;min-height:0;overflow-y:auto}.chat-sidenav__threads-heading{padding:8px 12px 4px;font-size:11px;color:var(--tplane-chat-text-muted);text-transform:uppercase;letter-spacing:.4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads-heading{display:none}.chat-sidenav__footer{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--tplane-chat-separator);gap:8px;flex-shrink:0}.chat-sidenav__footer-left{display:flex;align-items:center;gap:4px;min-height:28px}.chat-sidenav__debug{height:28px;min-width:28px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:var(--tplane-chat-text-muted);cursor:pointer;font:inherit;font-size:12px;font-weight:500}.chat-sidenav__debug:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-sidenav__debug:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-sidenav__debug-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px color-mix(in srgb,#22c55e 60%,transparent);flex:0 0 auto}.chat-sidenav__debug-dot--streaming{animation:chat-sidenav-debug-pulse 1.2s ease-in-out infinite}@keyframes chat-sidenav-debug-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.chat-sidenav__footer-right{display:flex;align-items:center;gap:4px;margin-left:auto}.chat-sidenav__toggle{width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--tplane-chat-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-sidenav__toggle:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer{flex-direction:column;align-items:center;padding:10px 4px}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left{display:flex;flex-direction:column;align-items:center;min-height:28px}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug{width:28px;padding:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__debug-label,:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-left>:not(.chat-sidenav__debug){display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__footer-right{flex-direction:column}.chat-sidenav__account{display:none}.chat-sidenav__account:has(>*){display:flex;align-items:center;gap:4px}.chat-sidenav__archived{flex-shrink:0}.chat-sidenav__archived-heading{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--tplane-chat-text);font:inherit;font-size:var(--tplane-chat-font-size-sm);text-align:left;cursor:pointer}.chat-sidenav__archived-heading:hover{background:var(--tplane-chat-surface-alt);color:var(--tplane-chat-text)}.chat-sidenav__archived-heading:focus-visible{outline:2px solid var(--tplane-chat-primary);outline-offset:2px}.chat-sidenav__archived-chevron{width:12px;height:12px;transition:transform .15s ease;flex-shrink:0}.chat-sidenav__archived[data-open=true] .chat-sidenav__archived-chevron{transform:rotate(90deg)}.chat-sidenav__archived-empty{padding:8px 12px;color:var(--tplane-chat-text-muted);font-size:var(--tplane-chat-font-size-sm)}:host([data-mode=\"collapsed\"]) .chat-sidenav__archived{display:none}.chat-sidenav__projects{flex-shrink:0}:host([data-mode=\"collapsed\"]) .chat-sidenav__projects{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__initial{display:inline-flex}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-title{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-time{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__kebab{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__grip{display:none}:host([data-mode=\"collapsed\"]) .chat-thread-list__item-wrap{justify-content:center}:host([data-mode=\"collapsed\"]) .chat-thread-list__item{padding:6px;justify-content:center;align-items:center;flex-direction:row}:host([data-mode=\"collapsed\"]) .chat-thread-list__new{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search{width:32px;height:32px;padding:0;border-radius:10px;justify-content:center;background:transparent}:host([data-mode=\"collapsed\"]) .chat-sidenav__action--search .chat-sidenav__action-label{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__threads,:host([data-mode=\"collapsed\"]) .chat-sidenav__projects,:host([data-mode=\"collapsed\"]) .chat-sidenav__archived,:host([data-mode=\"collapsed\"]) .chat-sidenav__sections,:host([data-mode=\"collapsed\"]) .chat-sidenav__primary{display:none}:host([data-mode=\"collapsed\"]) .chat-sidenav__topbar,:host([data-mode=\"collapsed\"]) .chat-sidenav__actions{padding:8px 4px;align-items:center;justify-content:center}\n"] }]
11266
11611
  }], ctorParameters: () => [], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], threads: [{ type: i0.Input, args: [{ isSignal: true, alias: "threads", required: false }] }], activeThreadId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeThreadId", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], archivedThreads: [{ type: i0.Input, args: [{ isSignal: true, alias: "archivedThreads", required: false }] }], projects: [{ type: i0.Input, args: [{ isSignal: true, alias: "projects", required: false }] }], selectedProjectId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedProjectId", required: false }] }], projectActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "projectActions", required: false }] }], agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: false }] }], debug: [{ type: i0.Input, args: [{ isSignal: true, alias: "debug", required: false }] }], newChat: [{ type: i0.Output, args: ["newChat"] }], threadSelected: [{ type: i0.Output, args: ["threadSelected"] }], searchOpened: [{ type: i0.Output, args: ["searchOpened"] }], openChange: [{ type: i0.Output, args: ["openChange"] }], modeChange: [{ type: i0.Output, args: ["modeChange"] }], projectSelected: [{ type: i0.Output, args: ["projectSelected"] }], newProjectRequested: [{ type: i0.Output, args: ["newProjectRequested"] }], debugHost: [{ type: i0.ViewChild, args: ['debugHost', { ...{
11267
11612
  read: ViewContainerRef,
11268
11613
  }, isSignal: true }] }] } });
@@ -11293,7 +11638,7 @@ class ChatSidenavScrimComponent {
11293
11638
  (click)="dismiss.emit()"
11294
11639
  ></button>
11295
11640
  }
11296
- `, isInline: true, styles: [":host{display:contents}.chat-sidenav-scrim__button{position:fixed;inset:0;background:#0006;z-index:var(--ngaf-chat-z-drawer-scrim, 1000);border:0;padding:0;cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11641
+ `, isInline: true, styles: [":host{display:contents}.chat-sidenav-scrim__button{position:fixed;inset:0;background:#0006;z-index:var(--tplane-chat-z-drawer-scrim, 1000);border:0;padding:0;cursor:pointer}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11297
11642
  }
11298
11643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSidenavScrimComponent, decorators: [{
11299
11644
  type: Component,
@@ -11306,7 +11651,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11306
11651
  (click)="dismiss.emit()"
11307
11652
  ></button>
11308
11653
  }
11309
- `, styles: [":host{display:contents}.chat-sidenav-scrim__button{position:fixed;inset:0;background:#0006;z-index:var(--ngaf-chat-z-drawer-scrim, 1000);border:0;padding:0;cursor:pointer}\n"] }]
11654
+ `, styles: [":host{display:contents}.chat-sidenav-scrim__button{position:fixed;inset:0;background:#0006;z-index:var(--tplane-chat-z-drawer-scrim, 1000);border:0;padding:0;cursor:pointer}\n"] }]
11310
11655
  }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], dismiss: [{ type: i0.Output, args: ["dismiss"] }] } });
11311
11656
 
11312
11657
  // SPDX-License-Identifier: MIT
@@ -11357,7 +11702,7 @@ class ChatInterruptPanelComponent {
11357
11702
  </div>
11358
11703
  </div>
11359
11704
  }
11360
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ".chat-interrupt-panel{background:var(--ngaf-chat-surface);color:var(--ngaf-chat-text);border:1px solid var(--ngaf-chat-separator);border-radius:var(--ngaf-chat-radius-card);padding:14px 16px;font-size:var(--ngaf-chat-font-size-sm)}.chat-interrupt-panel__eyebrow{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ngaf-chat-warning-text);margin:0 0 8px;display:flex;align-items:center;gap:6px}.chat-interrupt-panel__dot{width:6px;height:6px;border-radius:999px;background:var(--ngaf-chat-warning-text);flex:0 0 6px}.chat-interrupt-panel__body{margin:0 0 12px;color:var(--ngaf-chat-text);white-space:pre-wrap}.chat-interrupt-panel__actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn{border:0;padding:6px 14px;border-radius:var(--ngaf-chat-radius-button);font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary)}.btn-secondary{background:transparent;color:var(--ngaf-chat-text);border:1px solid var(--ngaf-chat-separator)}.btn-text{background:transparent;color:var(--ngaf-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--ngaf-chat-text)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11705
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ".chat-interrupt-panel{background:var(--tplane-chat-surface);color:var(--tplane-chat-text);border:1px solid var(--tplane-chat-separator);border-radius:var(--tplane-chat-radius-card);padding:14px 16px;font-size:var(--tplane-chat-font-size-sm)}.chat-interrupt-panel__eyebrow{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--tplane-chat-warning-text);margin:0 0 8px;display:flex;align-items:center;gap:6px}.chat-interrupt-panel__dot{width:6px;height:6px;border-radius:999px;background:var(--tplane-chat-warning-text);flex:0 0 6px}.chat-interrupt-panel__body{margin:0 0 12px;color:var(--tplane-chat-text);white-space:pre-wrap}.chat-interrupt-panel__actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn{border:0;padding:6px 14px;border-radius:var(--tplane-chat-radius-button);font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary)}.btn-secondary{background:transparent;color:var(--tplane-chat-text);border:1px solid var(--tplane-chat-separator)}.btn-text{background:transparent;color:var(--tplane-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--tplane-chat-text)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11361
11706
  }
11362
11707
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatInterruptPanelComponent, decorators: [{
11363
11708
  type: Component,
@@ -11377,7 +11722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11377
11722
  </div>
11378
11723
  </div>
11379
11724
  }
11380
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ".chat-interrupt-panel{background:var(--ngaf-chat-surface);color:var(--ngaf-chat-text);border:1px solid var(--ngaf-chat-separator);border-radius:var(--ngaf-chat-radius-card);padding:14px 16px;font-size:var(--ngaf-chat-font-size-sm)}.chat-interrupt-panel__eyebrow{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ngaf-chat-warning-text);margin:0 0 8px;display:flex;align-items:center;gap:6px}.chat-interrupt-panel__dot{width:6px;height:6px;border-radius:999px;background:var(--ngaf-chat-warning-text);flex:0 0 6px}.chat-interrupt-panel__body{margin:0 0 12px;color:var(--ngaf-chat-text);white-space:pre-wrap}.chat-interrupt-panel__actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn{border:0;padding:6px 14px;border-radius:var(--ngaf-chat-radius-button);font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary)}.btn-secondary{background:transparent;color:var(--ngaf-chat-text);border:1px solid var(--ngaf-chat-separator)}.btn-text{background:transparent;color:var(--ngaf-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--ngaf-chat-text)}\n"] }]
11725
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ".chat-interrupt-panel{background:var(--tplane-chat-surface);color:var(--tplane-chat-text);border:1px solid var(--tplane-chat-separator);border-radius:var(--tplane-chat-radius-card);padding:14px 16px;font-size:var(--tplane-chat-font-size-sm)}.chat-interrupt-panel__eyebrow{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--tplane-chat-warning-text);margin:0 0 8px;display:flex;align-items:center;gap:6px}.chat-interrupt-panel__dot{width:6px;height:6px;border-radius:999px;background:var(--tplane-chat-warning-text);flex:0 0 6px}.chat-interrupt-panel__body{margin:0 0 12px;color:var(--tplane-chat-text);white-space:pre-wrap}.chat-interrupt-panel__actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.btn{border:0;padding:6px 14px;border-radius:var(--tplane-chat-radius-button);font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary)}.btn-secondary{background:transparent;color:var(--tplane-chat-text);border:1px solid var(--tplane-chat-separator)}.btn-text{background:transparent;color:var(--tplane-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--tplane-chat-text)}\n"] }]
11381
11726
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], action: [{ type: i0.Output, args: ["action"] }] } });
11382
11727
 
11383
11728
  // SPDX-License-Identifier: MIT
@@ -11465,7 +11810,7 @@ class ChatApprovalCardComponent {
11465
11810
  <button type="button" class="btn btn-primary" (click)="emit('approve')">Approve</button>
11466
11811
  </div>
11467
11812
  </dialog>
11468
- `, isInline: true, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}dialog.chat-approval-card{width:440px;max-width:calc(100vw - 32px);margin:auto;padding:0;border:0;border-radius:12px;background:var(--ngaf-chat-surface);color:var(--ngaf-chat-text);box-shadow:0 20px 50px #0000002e}dialog.chat-approval-card::backdrop{background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.chat-approval-card__header{padding:14px 16px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--ngaf-chat-separator)}.chat-approval-card__header h4{margin:0;font-size:14px;font-weight:600;color:var(--ngaf-chat-text)}.chat-approval-card__header svg{color:var(--ngaf-chat-warning-text);width:16px;height:16px;flex:0 0 16px}.chat-approval-card__body{padding:14px 16px;font-size:var(--ngaf-chat-font-size-sm, 13px);color:var(--ngaf-chat-text)}.chat-approval-card__actions{padding:8px 16px 14px;display:flex;gap:6px;justify-content:flex-end;align-items:center}.btn{border:0;padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary)}.btn-secondary{background:transparent;color:var(--ngaf-chat-text);border:1px solid var(--ngaf-chat-separator)}.btn-text{background:transparent;color:var(--ngaf-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--ngaf-chat-text)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11813
+ `, isInline: true, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}dialog.chat-approval-card{width:440px;max-width:calc(100vw - 32px);margin:auto;padding:0;border:0;border-radius:12px;background:var(--tplane-chat-surface);color:var(--tplane-chat-text);box-shadow:0 20px 50px #0000002e}dialog.chat-approval-card::backdrop{background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.chat-approval-card__header{padding:14px 16px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--tplane-chat-separator)}.chat-approval-card__header h4{margin:0;font-size:14px;font-weight:600;color:var(--tplane-chat-text)}.chat-approval-card__header svg{color:var(--tplane-chat-warning-text);width:16px;height:16px;flex:0 0 16px}.chat-approval-card__body{padding:14px 16px;font-size:var(--tplane-chat-font-size-sm, 13px);color:var(--tplane-chat-text)}.chat-approval-card__actions{padding:8px 16px 14px;display:flex;gap:6px;justify-content:flex-end;align-items:center}.btn{border:0;padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary)}.btn-secondary{background:transparent;color:var(--tplane-chat-text);border:1px solid var(--tplane-chat-separator)}.btn-text{background:transparent;color:var(--tplane-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--tplane-chat-text)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11469
11814
  }
11470
11815
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatApprovalCardComponent, decorators: [{
11471
11816
  type: Component,
@@ -11490,7 +11835,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11490
11835
  <button type="button" class="btn btn-primary" (click)="emit('approve')">Approve</button>
11491
11836
  </div>
11492
11837
  </dialog>
11493
- `, styles: [":host{font-family:var(--ngaf-chat-font-family);color:var(--ngaf-chat-text)}\n", ":host{display:contents}dialog.chat-approval-card{width:440px;max-width:calc(100vw - 32px);margin:auto;padding:0;border:0;border-radius:12px;background:var(--ngaf-chat-surface);color:var(--ngaf-chat-text);box-shadow:0 20px 50px #0000002e}dialog.chat-approval-card::backdrop{background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.chat-approval-card__header{padding:14px 16px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--ngaf-chat-separator)}.chat-approval-card__header h4{margin:0;font-size:14px;font-weight:600;color:var(--ngaf-chat-text)}.chat-approval-card__header svg{color:var(--ngaf-chat-warning-text);width:16px;height:16px;flex:0 0 16px}.chat-approval-card__body{padding:14px 16px;font-size:var(--ngaf-chat-font-size-sm, 13px);color:var(--ngaf-chat-text)}.chat-approval-card__actions{padding:8px 16px 14px;display:flex;gap:6px;justify-content:flex-end;align-items:center}.btn{border:0;padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--ngaf-chat-primary);color:var(--ngaf-chat-on-primary)}.btn-secondary{background:transparent;color:var(--ngaf-chat-text);border:1px solid var(--ngaf-chat-separator)}.btn-text{background:transparent;color:var(--ngaf-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--ngaf-chat-text)}\n"] }]
11838
+ `, styles: [":host{font-family:var(--tplane-chat-font-family);color:var(--tplane-chat-text)}\n", ":host{display:contents}dialog.chat-approval-card{width:440px;max-width:calc(100vw - 32px);margin:auto;padding:0;border:0;border-radius:12px;background:var(--tplane-chat-surface);color:var(--tplane-chat-text);box-shadow:0 20px 50px #0000002e}dialog.chat-approval-card::backdrop{background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.chat-approval-card__header{padding:14px 16px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--tplane-chat-separator)}.chat-approval-card__header h4{margin:0;font-size:14px;font-weight:600;color:var(--tplane-chat-text)}.chat-approval-card__header svg{color:var(--tplane-chat-warning-text);width:16px;height:16px;flex:0 0 16px}.chat-approval-card__body{padding:14px 16px;font-size:var(--tplane-chat-font-size-sm, 13px);color:var(--tplane-chat-text)}.chat-approval-card__actions{padding:8px 16px 14px;display:flex;gap:6px;justify-content:flex-end;align-items:center}.btn{border:0;padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.btn:hover{transform:scale(1.03)}.btn-primary{background:var(--tplane-chat-primary);color:var(--tplane-chat-on-primary)}.btn-secondary{background:transparent;color:var(--tplane-chat-text);border:1px solid var(--tplane-chat-separator)}.btn-text{background:transparent;color:var(--tplane-chat-text-muted);padding:6px 10px}.btn-text:hover{color:var(--tplane-chat-text)}\n"] }]
11494
11839
  }], ctorParameters: () => [], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], matchKind: [{ type: i0.Input, args: [{ isSignal: true, alias: "matchKind", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], showEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEdit", required: false }] }], action: [{ type: i0.Output, args: ["action"] }], bodyTemplate: [{ type: i0.ContentChild, args: ['body', { isSignal: true }] }], dialogRef: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }] } });
11495
11840
 
11496
11841
  // SPDX-License-Identifier: MIT
@@ -12813,5 +13158,5 @@ function mockAgent(opts = {}) {
12813
13158
  * Generated bundle index. Do not edit.
12814
13159
  */
12815
13160
 
12816
- export { A2uiAudioPlayerComponent, A2uiButtonComponent, A2uiCardComponent, A2uiCheckBoxComponent, A2uiColumnComponent, A2uiDateTimeInputComponent, A2uiDividerComponent, A2uiIconComponent, A2uiImageComponent, A2uiListComponent, A2uiModalComponent, A2uiMultipleChoiceComponent, A2uiRowComponent, A2uiSliderComponent, A2uiSurfaceComponent, A2uiTabsComponent, A2uiTextComponent, A2uiTextFieldComponent, A2uiVideoComponent, AGENT_ERROR_MESSAGES, AgentError, CHAT_CONFIG, CHAT_LIFECYCLE, ChatApprovalCardComponent, ChatCitationCardTemplateDirective, ChatCitationsCardComponent, ChatCitationsComponent, ChatComponent, ChatConfirmDialogComponent, ChatErrorComponent, ChatGenerativeUiComponent, ChatGenuiSkeletonComponent, ChatHistorySearchPaletteComponent, ChatInputComponent, ChatInterruptComponent, ChatInterruptPanelComponent, ChatLauncherButtonComponent, ChatMessageActionsComponent, ChatMessageComponent, ChatMessageListComponent, ChatOverflowMenuComponent, ChatPopupComponent, ChatProjectListComponent, ChatReasoningComponent, ChatScrollBubbleComponent, ChatSelectComponent, ChatSidebarComponent, ChatSidenavComponent, ChatSidenavScrimComponent, ChatStreamingMdComponent, ChatSubagentCardComponent, ChatSubagentsComponent, ChatSuggestionsComponent, ChatThreadListComponent, ChatTimelineComponent, ChatTimelineSliderComponent, ChatToolCallCardComponent, ChatToolCallTemplateDirective, ChatToolCallsComponent, ChatToolViewsComponent, ChatTraceComponent, ChatTypingIndicatorComponent, ChatWelcomeComponent, ChatWelcomeSuggestionComponent, ChatWindowComponent, CitationsResolverService, IS_HEADER_ROW, MARKDOWN_VIEW_REGISTRY, MarkdownAutolinkComponent, MarkdownBlockquoteComponent, MarkdownChildrenComponent, MarkdownCitationReferenceComponent, MarkdownCodeBlockComponent, MarkdownDocumentComponent, MarkdownEmphasisComponent, MarkdownHardBreakComponent, MarkdownHeadingComponent, MarkdownHtmlComponent, MarkdownImageComponent, MarkdownInlineCodeComponent, MarkdownLinkComponent, MarkdownListComponent, MarkdownListItemComponent, MarkdownMathComponent, MarkdownParagraphComponent, MarkdownSoftBreakComponent, MarkdownStrikethroughComponent, MarkdownStrongComponent, MarkdownTableCellComponent, MarkdownTableComponent, MarkdownTableRowComponent, MarkdownTextComponent, MarkdownThematicBreakComponent, MessageTemplateDirective, a2uiBasicCatalog, action, ask, buildA2uiActionMessage, cacheplaneMarkdownViews, createA2uiSurfaceStore, createAgentRef, createContentClassifier, createParseTreeStore, createPartialArgsBridge, deriveJsonSchema, emitBinding, executeFunctionTool, extractErrorMessage, formatDuration, getInterrupt, getMessageType, injectThreadRouting, isAbortError, isAssistantMessage, isSystemMessage, isToolMessage, isTyping, isUserMessage, messageContent, mockAgent, normalizeEnvelopeArgs, normalizeViewEntry, provideChat, renderMarkdown, startClientToolExecutor, statusColor, submitMessage, toAgentError, toClientToolSpecs, tools, validateArgs, view };
13161
+ export { A2uiAudioPlayerComponent, A2uiButtonComponent, A2uiCardComponent, A2uiCheckBoxComponent, A2uiColumnComponent, A2uiDateTimeInputComponent, A2uiDividerComponent, A2uiIconComponent, A2uiImageComponent, A2uiListComponent, A2uiModalComponent, A2uiMultipleChoiceComponent, A2uiRowComponent, A2uiSliderComponent, A2uiSurfaceComponent, A2uiTabsComponent, A2uiTextComponent, A2uiTextFieldComponent, A2uiVideoComponent, AGENT_ERROR_MESSAGES, AgentError, CHAT_CONFIG, CHAT_LIFECYCLE, ChatApprovalCardComponent, ChatCitationCardTemplateDirective, ChatCitationsCardComponent, ChatCitationsComponent, ChatComponent, ChatConfirmDialogComponent, ChatConnectedOverlayDirective, ChatErrorComponent, ChatGenerativeUiComponent, ChatGenuiSkeletonComponent, ChatHistorySearchPaletteComponent, ChatInputComponent, ChatInterruptComponent, ChatInterruptPanelComponent, ChatLauncherButtonComponent, ChatMessageActionsComponent, ChatMessageComponent, ChatMessageListComponent, ChatOverflowMenuComponent, ChatOverlayOriginDirective, ChatPopupComponent, ChatProjectListComponent, ChatReasoningComponent, ChatScrollBubbleComponent, ChatSelectComponent, ChatSidebarComponent, ChatSidenavComponent, ChatSidenavScrimComponent, ChatStreamingMdComponent, ChatSubagentCardComponent, ChatSubagentsComponent, ChatSuggestionsComponent, ChatThreadListComponent, ChatTimelineComponent, ChatTimelineSliderComponent, ChatToolCallCardComponent, ChatToolCallTemplateDirective, ChatToolCallsComponent, ChatToolViewsComponent, ChatTraceComponent, ChatTypingIndicatorComponent, ChatWelcomeComponent, ChatWelcomeSuggestionComponent, ChatWindowComponent, CitationsResolverService, IS_HEADER_ROW, MARKDOWN_VIEW_REGISTRY, MarkdownAutolinkComponent, MarkdownBlockquoteComponent, MarkdownChildrenComponent, MarkdownCitationReferenceComponent, MarkdownCodeBlockComponent, MarkdownDocumentComponent, MarkdownEmphasisComponent, MarkdownHardBreakComponent, MarkdownHeadingComponent, MarkdownHtmlComponent, MarkdownImageComponent, MarkdownInlineCodeComponent, MarkdownLinkComponent, MarkdownListComponent, MarkdownListItemComponent, MarkdownMathComponent, MarkdownParagraphComponent, MarkdownSoftBreakComponent, MarkdownStrikethroughComponent, MarkdownStrongComponent, MarkdownTableCellComponent, MarkdownTableComponent, MarkdownTableRowComponent, MarkdownTextComponent, MarkdownThematicBreakComponent, MessageTemplateDirective, a2uiBasicCatalog, action, ask, buildA2uiActionMessage, cacheplaneMarkdownViews, createA2uiSurfaceStore, createAgentRef, createContentClassifier, createParseTreeStore, createPartialArgsBridge, deriveJsonSchema, emitBinding, executeFunctionTool, extractErrorMessage, formatDuration, getInterrupt, getMessageType, injectThreadRouting, isAbortError, isAssistantMessage, isSystemMessage, isToolMessage, isTyping, isUserMessage, messageContent, mockAgent, normalizeEnvelopeArgs, normalizeViewEntry, provideChat, renderMarkdown, startClientToolExecutor, statusColor, submitMessage, toAgentError, toClientToolSpecs, tools, validateArgs, view };
12817
13162
  //# sourceMappingURL=threadplane-chat.mjs.map