@threadplane/chat 0.0.53 → 0.0.54

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
@@ -2676,6 +2676,15 @@ const cacheplaneMarkdownViews = views({
2676
2676
 
2677
2677
  // libs/chat/src/lib/streaming/streaming-markdown.component.ts
2678
2678
  // SPDX-License-Identifier: MIT
2679
+ // How long streaming must be false AND content stable before we finalize the
2680
+ // parser. finish() is only needed to mark final node status (not used visually)
2681
+ // and to revert a genuinely-truncated trailing construct to CommonMark — the
2682
+ // live `parser.root` projection already renders everything during streaming, so
2683
+ // this delay has NO visual cost. It must comfortably exceed real inter-chunk
2684
+ // gaps (e.g. the pause between a table's header row and its delimiter row) and
2685
+ // any `streaming` flag flap, so finalize never fires mid-stream and reverts an
2686
+ // in-progress table to raw "| a | b |" text.
2687
+ const FINALIZE_DEBOUNCE_MS = 600;
2679
2688
  /**
2680
2689
  * Renders streaming markdown by walking a @cacheplane/partial-markdown AST
2681
2690
  * through @threadplane/render's view registry.
@@ -2706,6 +2715,44 @@ class ChatStreamingMdComponent {
2706
2715
  this.resolver.markdownDefs.set(r.citations ?? new Map());
2707
2716
  }
2708
2717
  });
2718
+ // Debounced finalization. `finish()` is terminal and DESTRUCTIVE: it reverts
2719
+ // an incomplete trailing construct to its CommonMark fallback — e.g. a table
2720
+ // header before its delimiter row becomes raw "| a | b |" paragraph text. We
2721
+ // must therefore never finalize while tokens are still arriving. The
2722
+ // `streaming` input is not a reliable "still arriving" signal — it can flap
2723
+ // false mid-stream, and at cold start it can read false for an entire live
2724
+ // stream — so we finalize only once streaming is false AND no new content
2725
+ // has arrived for a short, imperceptible window. Any new content or a
2726
+ // streaming=true flap re-arms the timer, so finalize fires exactly once,
2727
+ // after the stream truly stops. Until then the live `parser.root` projection
2728
+ // (0.5.x) renders the in-progress content, including streaming tables.
2729
+ let timer = null;
2730
+ effect((onCleanup) => {
2731
+ const isStreaming = this.streaming();
2732
+ this.content(); // re-arm whenever new content arrives
2733
+ if (timer) {
2734
+ clearTimeout(timer);
2735
+ timer = null;
2736
+ }
2737
+ if (isStreaming || this.finished)
2738
+ return;
2739
+ timer = setTimeout(() => {
2740
+ timer = null;
2741
+ if (this.streaming() || this.finished)
2742
+ return;
2743
+ if (!this.prior.endsWith('\n'))
2744
+ this.parser.push('\n');
2745
+ this.parser.finish();
2746
+ this.finished = true;
2747
+ this.finalizeTick.update((v) => v + 1);
2748
+ }, FINALIZE_DEBOUNCE_MS);
2749
+ onCleanup(() => {
2750
+ if (timer) {
2751
+ clearTimeout(timer);
2752
+ timer = null;
2753
+ }
2754
+ });
2755
+ });
2709
2756
  }
2710
2757
  // Parser instance is rebuilt only when content diverges from the prior
2711
2758
  // prefix (rare). For the common streaming case where content extends the
@@ -2713,41 +2760,29 @@ class ChatStreamingMdComponent {
2713
2760
  parser = createPartialMarkdownParser();
2714
2761
  prior = '';
2715
2762
  finished = false;
2763
+ // Bumped by the debounced finalizer so the `root` computed re-materializes
2764
+ // the now-finished parser tree.
2765
+ finalizeTick = signal(0, ...(ngDevMode ? [{ debugName: "finalizeTick" }] : []));
2716
2766
  root = computed(() => {
2717
2767
  const c = this.content();
2718
- const isStreaming = this.streaming();
2768
+ this.finalizeTick(); // re-materialize after a debounced finalize
2719
2769
  if (c !== this.prior) {
2720
- if (c.startsWith(this.prior)) {
2770
+ // Re-parse from scratch when the content diverged from the prior prefix,
2771
+ // OR when the parser was already finalized — finish() is terminal, so
2772
+ // pushing further deltas into a finished parser corrupts its state. A
2773
+ // transient `streaming=false` mid-stream that finalized early thus
2774
+ // recovers here: new content rebuilds an open, projecting parser.
2775
+ if (c.startsWith(this.prior) && !this.finished) {
2721
2776
  this.parser.push(c.slice(this.prior.length));
2722
2777
  }
2723
2778
  else {
2724
- // Content shrank or diverged — reset.
2725
2779
  this.parser = createPartialMarkdownParser();
2726
2780
  this.finished = false;
2727
2781
  if (c.length > 0)
2728
2782
  this.parser.push(c);
2729
2783
  }
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
2784
  this.prior = c;
2743
2785
  }
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
2786
  // Materialize for Angular reactivity: produces a NEW root reference when
2752
2787
  // any descendant subtree changed; same reference when nothing changed
2753
2788
  // (structural sharing). This is what makes signal-based CD propagate
@@ -2765,7 +2800,7 @@ class ChatStreamingMdComponent {
2765
2800
  @if (root(); as r) {
2766
2801
  <chat-md-children [parent]="r" />
2767
2802
  }
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 });
2803
+ `, 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
2804
  }
2770
2805
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatStreamingMdComponent, decorators: [{
2771
2806
  type: Component,
@@ -2779,7 +2814,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2779
2814
  useFactory: (host) => host.resolvedRegistry(),
2780
2815
  deps: [ChatStreamingMdComponent],
2781
2816
  },
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"] }]
2817
+ ], 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
2818
  }], 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
2819
 
2785
2820
  // SPDX-License-Identifier: MIT
@@ -2892,7 +2927,7 @@ class ChatReasoningComponent {
2892
2927
  <chat-streaming-md [content]="content()" [streaming]="isStreaming()" />
2893
2928
  </div>
2894
2929
  }
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 });
2930
+ `, 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
2931
  }
2897
2932
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatReasoningComponent, decorators: [{
2898
2933
  type: Component,
@@ -2920,7 +2955,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2920
2955
  <chat-streaming-md [content]="content()" [streaming]="isStreaming()" />
2921
2956
  </div>
2922
2957
  }
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"] }]
2958
+ `, 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
2959
  }], 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
2960
 
2926
2961
  // libs/chat/src/lib/styles/chat-launcher-button.styles.ts
@@ -2930,15 +2965,15 @@ const CHAT_LAUNCHER_BUTTON_STYLES = `
2930
2965
  .chat-launcher-button {
2931
2966
  width: 56px;
2932
2967
  height: 56px;
2933
- border-radius: var(--ngaf-chat-radius-launcher);
2934
- background: var(--ngaf-chat-primary);
2935
- color: var(--ngaf-chat-on-primary);
2968
+ border-radius: var(--tplane-chat-radius-launcher);
2969
+ background: var(--tplane-chat-primary);
2970
+ color: var(--tplane-chat-on-primary);
2936
2971
  border: 0;
2937
2972
  cursor: pointer;
2938
2973
  display: flex;
2939
2974
  align-items: center;
2940
2975
  justify-content: center;
2941
- box-shadow: var(--ngaf-chat-shadow-md);
2976
+ box-shadow: var(--tplane-chat-shadow-md);
2942
2977
  transition: transform 200ms ease;
2943
2978
  }
2944
2979
  .chat-launcher-button:hover { transform: scale(1.05); }
@@ -2961,7 +2996,7 @@ class ChatLauncherButtonComponent {
2961
2996
  <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
2997
  </svg>
2963
2998
  </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 });
2999
+ `, 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
3000
  }
2966
3001
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatLauncherButtonComponent, decorators: [{
2967
3002
  type: Component,
@@ -2971,7 +3006,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
2971
3006
  <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
3007
  </svg>
2973
3008
  </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"] }]
3009
+ `, 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
3010
  }], propDecorators: { clicked: [{ type: i0.Output, args: ["clicked"] }] } });
2976
3011
 
2977
3012
  // SPDX-License-Identifier: MIT
@@ -2980,11 +3015,11 @@ const CHAT_SUGGESTIONS_STYLES = `
2980
3015
  .chat-suggestions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
2981
3016
  .chat-suggestion {
2982
3017
  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);
3018
+ font-size: var(--tplane-chat-font-size-xs);
3019
+ border-radius: var(--tplane-chat-radius-bubble);
3020
+ border: 1px solid var(--tplane-chat-muted);
2986
3021
  background: transparent;
2987
- color: var(--ngaf-chat-text);
3022
+ color: var(--tplane-chat-text);
2988
3023
  cursor: pointer;
2989
3024
  transition: transform 200ms ease;
2990
3025
  }
@@ -3003,7 +3038,7 @@ class ChatSuggestionsComponent {
3003
3038
  <button type="button" class="chat-suggestion" (click)="selected.emit(s)">{{ s }}</button>
3004
3039
  }
3005
3040
  </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 });
3041
+ `, 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
3042
  }
3008
3043
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSuggestionsComponent, decorators: [{
3009
3044
  type: Component,
@@ -3013,7 +3048,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3013
3048
  <button type="button" class="chat-suggestion" (click)="selected.emit(s)">{{ s }}</button>
3014
3049
  }
3015
3050
  </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"] }]
3051
+ `, 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
3052
  }], propDecorators: { suggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "suggestions", required: false }] }], selected: [{ type: i0.Output, args: ["selected"] }] } });
3018
3053
 
3019
3054
  // libs/chat/src/lib/styles/chat-input.styles.ts
@@ -3022,13 +3057,13 @@ const CHAT_INPUT_STYLES = `
3022
3057
  :host {
3023
3058
  display: block;
3024
3059
  width: 100%;
3025
- padding: 0 var(--ngaf-chat-edge-pad);
3060
+ padding: 0 var(--tplane-chat-edge-pad);
3026
3061
  box-sizing: border-box;
3027
3062
  }
3028
3063
 
3029
3064
  .chat-input__container {
3030
3065
  width: 100%;
3031
- max-width: var(--ngaf-chat-max-width);
3066
+ max-width: var(--tplane-chat-max-width);
3032
3067
  margin: 0 auto;
3033
3068
  }
3034
3069
 
@@ -3036,8 +3071,8 @@ const CHAT_INPUT_STYLES = `
3036
3071
  display: flex;
3037
3072
  align-items: center;
3038
3073
  gap: 8px;
3039
- background: var(--ngaf-chat-surface);
3040
- border: 1px solid var(--ngaf-chat-separator);
3074
+ background: var(--tplane-chat-surface);
3075
+ border: 1px solid var(--tplane-chat-separator);
3041
3076
  border-radius: 9999px;
3042
3077
  padding: 8px 8px 8px 16px;
3043
3078
  min-height: 56px;
@@ -3050,7 +3085,7 @@ const CHAT_INPUT_STYLES = `
3050
3085
  outline: none;
3051
3086
  resize: none;
3052
3087
  background: transparent;
3053
- color: var(--ngaf-chat-text);
3088
+ color: var(--tplane-chat-text);
3054
3089
  font: inherit;
3055
3090
  font-size: 1rem;
3056
3091
  line-height: 1.5;
@@ -3058,9 +3093,9 @@ const CHAT_INPUT_STYLES = `
3058
3093
  field-sizing: content;
3059
3094
  overflow-y: auto;
3060
3095
  }
3061
- .chat-input__textarea::placeholder { color: var(--ngaf-chat-text-muted); }
3096
+ .chat-input__textarea::placeholder { color: var(--tplane-chat-text-muted); }
3062
3097
  .chat-input__textarea::-webkit-scrollbar { width: 4px; }
3063
- .chat-input__textarea::-webkit-scrollbar-thumb { background: var(--ngaf-chat-separator); border-radius: 4px; }
3098
+ .chat-input__textarea::-webkit-scrollbar-thumb { background: var(--tplane-chat-separator); border-radius: 4px; }
3064
3099
 
3065
3100
  .chat-input__controls {
3066
3101
  display: flex;
@@ -3083,20 +3118,20 @@ const CHAT_INPUT_STYLES = `
3083
3118
  padding: 0;
3084
3119
  }
3085
3120
  .chat-input__send {
3086
- background: var(--ngaf-chat-text);
3087
- color: var(--ngaf-chat-bg);
3121
+ background: var(--tplane-chat-text);
3122
+ color: var(--tplane-chat-bg);
3088
3123
  }
3089
3124
  .chat-input__send:disabled {
3090
3125
  opacity: 0.35;
3091
3126
  cursor: not-allowed;
3092
- background: var(--ngaf-chat-text-muted);
3127
+ background: var(--tplane-chat-text-muted);
3093
3128
  }
3094
3129
  .chat-input__send:not(:disabled):hover { transform: scale(1.05); }
3095
3130
  .chat-input__send svg { width: 16px; height: 16px; }
3096
3131
 
3097
3132
  .chat-input__send--stop {
3098
- background: var(--ngaf-chat-text-muted);
3099
- color: var(--ngaf-chat-bg);
3133
+ background: var(--tplane-chat-text-muted);
3134
+ color: var(--tplane-chat-bg);
3100
3135
  }
3101
3136
  .chat-input__send--stop:hover { transform: scale(1.05); }
3102
3137
  .chat-input__send--stop svg { width: 14px; height: 14px; }
@@ -3256,7 +3291,7 @@ class ChatInputComponent {
3256
3291
  </div>
3257
3292
  <ng-content select="[chatInputFooter]" />
3258
3293
  </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 });
3294
+ `, 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
3295
  }
3261
3296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatInputComponent, decorators: [{
3262
3297
  type: Component,
@@ -3314,7 +3349,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3314
3349
  </div>
3315
3350
  <ng-content select="[chatInputFooter]" />
3316
3351
  </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"] }]
3352
+ `, 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
3353
  }], 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
3354
 
3320
3355
  // SPDX-License-Identifier: MIT
@@ -3324,8 +3359,8 @@ const CHAT_TYPING_INDICATOR_STYLES = `
3324
3359
  message renders. */
3325
3360
  :host {
3326
3361
  display: block;
3327
- padding: 0 var(--ngaf-chat-space-6) var(--ngaf-chat-space-3);
3328
- max-width: var(--ngaf-chat-max-width);
3362
+ padding: 0 var(--tplane-chat-space-6) var(--tplane-chat-space-3);
3363
+ max-width: var(--tplane-chat-max-width);
3329
3364
  margin: 0 auto;
3330
3365
  width: 100%;
3331
3366
  box-sizing: border-box;
@@ -3335,8 +3370,8 @@ const CHAT_TYPING_INDICATOR_STYLES = `
3335
3370
  width: 6px;
3336
3371
  height: 6px;
3337
3372
  border-radius: 50%;
3338
- background: var(--ngaf-chat-text-muted);
3339
- animation: ngaf-chat-typing-dot 1.4s ease-in-out infinite both;
3373
+ background: var(--tplane-chat-text-muted);
3374
+ animation: tplane-chat-typing-dot 1.4s ease-in-out infinite both;
3340
3375
  }
3341
3376
  .chat-typing__dot:nth-child(2) { animation-delay: 0.2s; }
3342
3377
  .chat-typing__dot:nth-child(3) { animation-delay: 0.4s; }
@@ -3384,7 +3419,7 @@ class ChatTypingIndicatorComponent {
3384
3419
  <span class="chat-typing__dot"></span>
3385
3420
  </div>
3386
3421
  }
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 });
3422
+ `, 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
3423
  }
3389
3424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatTypingIndicatorComponent, decorators: [{
3390
3425
  type: Component,
@@ -3396,7 +3431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3396
3431
  <span class="chat-typing__dot"></span>
3397
3432
  </div>
3398
3433
  }
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"] }]
3434
+ `, 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
3435
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }] } });
3401
3436
 
3402
3437
  // libs/chat/src/lib/styles/chat-history-search-palette.styles.ts
@@ -3407,7 +3442,7 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3407
3442
  position: fixed;
3408
3443
  inset: 0;
3409
3444
  background: rgba(0, 0, 0, 0.4);
3410
- z-index: var(--ngaf-chat-z-modal-scrim, 1100);
3445
+ z-index: var(--tplane-chat-z-modal-scrim, 1100);
3411
3446
  border: 0;
3412
3447
  padding: 0;
3413
3448
  cursor: pointer;
@@ -3419,11 +3454,11 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3419
3454
  transform: translateX(-50%);
3420
3455
  width: min(560px, 90vw);
3421
3456
  max-height: 70vh;
3422
- background: var(--ngaf-chat-bg);
3423
- border: 1px solid var(--ngaf-chat-separator);
3457
+ background: var(--tplane-chat-bg);
3458
+ border: 1px solid var(--tplane-chat-separator);
3424
3459
  border-radius: 12px;
3425
3460
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
3426
- z-index: var(--ngaf-chat-z-modal, 1101);
3461
+ z-index: var(--tplane-chat-z-modal, 1101);
3427
3462
  display: flex;
3428
3463
  flex-direction: column;
3429
3464
  overflow: hidden;
@@ -3433,12 +3468,12 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3433
3468
  align-items: center;
3434
3469
  gap: 8px;
3435
3470
  padding: 12px 16px;
3436
- border-bottom: 1px solid var(--ngaf-chat-separator);
3471
+ border-bottom: 1px solid var(--tplane-chat-separator);
3437
3472
  }
3438
3473
  .chat-history-search-palette__icon {
3439
3474
  width: 18px;
3440
3475
  height: 18px;
3441
- color: var(--ngaf-chat-text-muted);
3476
+ color: var(--tplane-chat-text-muted);
3442
3477
  flex-shrink: 0;
3443
3478
  }
3444
3479
  .chat-history-search-palette__input {
@@ -3446,22 +3481,22 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3446
3481
  border: 0;
3447
3482
  outline: none;
3448
3483
  background: transparent;
3449
- color: var(--ngaf-chat-text);
3484
+ color: var(--tplane-chat-text);
3450
3485
  font: inherit;
3451
3486
  font-size: 1rem;
3452
3487
  }
3453
3488
  .chat-history-search-palette__input::placeholder {
3454
- color: var(--ngaf-chat-text-muted);
3489
+ color: var(--tplane-chat-text-muted);
3455
3490
  }
3456
3491
  .chat-history-search-palette__close {
3457
3492
  background: transparent;
3458
3493
  border: 0;
3459
3494
  padding: 4px;
3460
- color: var(--ngaf-chat-text-muted);
3495
+ color: var(--tplane-chat-text-muted);
3461
3496
  cursor: pointer;
3462
3497
  border-radius: 4px;
3463
3498
  }
3464
- .chat-history-search-palette__close:hover { color: var(--ngaf-chat-text); }
3499
+ .chat-history-search-palette__close:hover { color: var(--tplane-chat-text); }
3465
3500
  .chat-history-search-palette__list {
3466
3501
  flex: 1 1 auto;
3467
3502
  overflow-y: auto;
@@ -3477,23 +3512,23 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3477
3512
  cursor: pointer;
3478
3513
  }
3479
3514
  .chat-history-search-palette__row[aria-selected="true"] {
3480
- background: var(--ngaf-chat-surface-alt);
3515
+ background: var(--tplane-chat-surface-alt);
3481
3516
  }
3482
3517
  .chat-history-search-palette__row-title {
3483
- color: var(--ngaf-chat-text);
3484
- font-size: var(--ngaf-chat-font-size);
3518
+ color: var(--tplane-chat-text);
3519
+ font-size: var(--tplane-chat-font-size);
3485
3520
  }
3486
3521
  .chat-history-search-palette__row-subtitle {
3487
- color: var(--ngaf-chat-text-muted);
3488
- font-size: var(--ngaf-chat-font-size-sm);
3522
+ color: var(--tplane-chat-text-muted);
3523
+ font-size: var(--tplane-chat-font-size-sm);
3489
3524
  margin-top: 2px;
3490
3525
  }
3491
3526
  .chat-history-search-palette__empty,
3492
3527
  .chat-history-search-palette__hint {
3493
3528
  padding: 24px 16px;
3494
- color: var(--ngaf-chat-text-muted);
3529
+ color: var(--tplane-chat-text-muted);
3495
3530
  text-align: center;
3496
- font-size: var(--ngaf-chat-font-size-sm);
3531
+ font-size: var(--tplane-chat-font-size-sm);
3497
3532
  }
3498
3533
  .chat-history-search-palette__skeleton {
3499
3534
  padding: 8px 4px;
@@ -3501,9 +3536,9 @@ const CHAT_HISTORY_SEARCH_PALETTE_STYLES = `
3501
3536
  .chat-history-search-palette__skeleton-row {
3502
3537
  height: 36px;
3503
3538
  margin: 4px 0;
3504
- background: var(--ngaf-chat-surface-alt);
3539
+ background: var(--tplane-chat-surface-alt);
3505
3540
  border-radius: 8px;
3506
- animation: ngaf-chat-pulse 1.4s ease-in-out infinite;
3541
+ animation: tplane-chat-pulse 1.4s ease-in-out infinite;
3507
3542
  }
3508
3543
  `;
3509
3544
 
@@ -3656,7 +3691,7 @@ class ChatHistorySearchPaletteComponent {
3656
3691
  }
3657
3692
  </div>
3658
3693
  }
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 });
3694
+ `, 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
3695
  }
3661
3696
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatHistorySearchPaletteComponent, decorators: [{
3662
3697
  type: Component,
@@ -3738,7 +3773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3738
3773
  }
3739
3774
  </div>
3740
3775
  }
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"] }]
3776
+ `, 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
3777
  }], 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
3778
 
3744
3779
  // libs/chat/src/lib/styles/chat-overflow-menu.styles.ts
@@ -3761,8 +3796,8 @@ const CHAT_OVERFLOW_MENU_STYLES = `
3761
3796
  padding: 4px;
3762
3797
  margin: 0;
3763
3798
  list-style: none;
3764
- background: var(--ngaf-chat-bg);
3765
- border: 1px solid var(--ngaf-chat-separator);
3799
+ background: var(--tplane-chat-bg);
3800
+ border: 1px solid var(--tplane-chat-separator);
3766
3801
  border-radius: 8px;
3767
3802
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
3768
3803
  }
@@ -3770,23 +3805,23 @@ const CHAT_OVERFLOW_MENU_STYLES = `
3770
3805
  display: block;
3771
3806
  padding: 8px 12px;
3772
3807
  border-radius: 4px;
3773
- color: var(--ngaf-chat-text);
3774
- font-size: var(--ngaf-chat-font-size-sm);
3808
+ color: var(--tplane-chat-text);
3809
+ font-size: var(--tplane-chat-font-size-sm);
3775
3810
  cursor: pointer;
3776
3811
  user-select: none;
3777
3812
  }
3778
3813
  .chat-overflow-menu__item:hover {
3779
- background: var(--ngaf-chat-surface-alt);
3814
+ background: var(--tplane-chat-surface-alt);
3780
3815
  }
3781
3816
  .chat-overflow-menu__item:focus-visible {
3782
- outline: 2px solid var(--ngaf-chat-primary);
3817
+ outline: 2px solid var(--tplane-chat-primary);
3783
3818
  outline-offset: -2px;
3784
3819
  }
3785
3820
  .chat-overflow-menu__item--destructive {
3786
- color: var(--ngaf-chat-error-text);
3821
+ color: var(--tplane-chat-error-text);
3787
3822
  }
3788
3823
  .chat-overflow-menu__item--disabled {
3789
- color: var(--ngaf-chat-text-muted);
3824
+ color: var(--tplane-chat-text-muted);
3790
3825
  cursor: not-allowed;
3791
3826
  pointer-events: none;
3792
3827
  }
@@ -3892,7 +3927,7 @@ class ChatOverflowMenuComponent {
3892
3927
  }
3893
3928
  </ul>
3894
3929
  }
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 });
3930
+ `, 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
3931
  }
3897
3932
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatOverflowMenuComponent, decorators: [{
3898
3933
  type: Component,
@@ -3930,7 +3965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
3930
3965
  }
3931
3966
  </ul>
3932
3967
  }
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"] }]
3968
+ `, 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
3969
  }], 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
3970
 
3936
3971
  // libs/chat/src/lib/styles/chat-confirm-dialog.styles.ts
@@ -3954,21 +3989,21 @@ const CHAT_CONFIRM_DIALOG_STYLES = `
3954
3989
  width: min(420px, 90vw);
3955
3990
  z-index: 71;
3956
3991
  padding: 20px;
3957
- background: var(--ngaf-chat-bg);
3958
- border: 1px solid var(--ngaf-chat-separator);
3992
+ background: var(--tplane-chat-bg);
3993
+ border: 1px solid var(--tplane-chat-separator);
3959
3994
  border-radius: 12px;
3960
3995
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.25);
3961
3996
  }
3962
3997
  .chat-confirm-dialog__title {
3963
3998
  margin: 0 0 8px 0;
3964
- color: var(--ngaf-chat-text);
3999
+ color: var(--tplane-chat-text);
3965
4000
  font-size: 1.125rem;
3966
4001
  font-weight: 600;
3967
4002
  }
3968
4003
  .chat-confirm-dialog__body {
3969
4004
  margin: 0 0 16px 0;
3970
- color: var(--ngaf-chat-text-muted);
3971
- font-size: var(--ngaf-chat-font-size-sm);
4005
+ color: var(--tplane-chat-text-muted);
4006
+ font-size: var(--tplane-chat-font-size-sm);
3972
4007
  line-height: 1.5;
3973
4008
  }
3974
4009
  .chat-confirm-dialog__actions {
@@ -3981,20 +4016,20 @@ const CHAT_CONFIRM_DIALOG_STYLES = `
3981
4016
  padding: 8px 16px;
3982
4017
  border-radius: 6px;
3983
4018
  font: inherit;
3984
- font-size: var(--ngaf-chat-font-size-sm);
4019
+ font-size: var(--tplane-chat-font-size-sm);
3985
4020
  cursor: pointer;
3986
- border: 1px solid var(--ngaf-chat-separator);
3987
- background: var(--ngaf-chat-bg);
3988
- color: var(--ngaf-chat-text);
4021
+ border: 1px solid var(--tplane-chat-separator);
4022
+ background: var(--tplane-chat-bg);
4023
+ color: var(--tplane-chat-text);
3989
4024
  }
3990
- .chat-confirm-dialog__cancel:hover { background: var(--ngaf-chat-surface-alt); }
4025
+ .chat-confirm-dialog__cancel:hover { background: var(--tplane-chat-surface-alt); }
3991
4026
  .chat-confirm-dialog__confirm {
3992
- background: var(--ngaf-chat-text);
3993
- color: var(--ngaf-chat-bg);
4027
+ background: var(--tplane-chat-text);
4028
+ color: var(--tplane-chat-bg);
3994
4029
  border-color: transparent;
3995
4030
  }
3996
4031
  .chat-confirm-dialog__confirm--destructive {
3997
- background: var(--ngaf-chat-destructive);
4032
+ background: var(--tplane-chat-destructive);
3998
4033
  color: #fff;
3999
4034
  border-color: transparent;
4000
4035
  }
@@ -4003,7 +4038,7 @@ const CHAT_CONFIRM_DIALOG_STYLES = `
4003
4038
  }
4004
4039
  .chat-confirm-dialog__cancel:focus-visible,
4005
4040
  .chat-confirm-dialog__confirm:focus-visible {
4006
- outline: 2px solid var(--ngaf-chat-primary);
4041
+ outline: 2px solid var(--tplane-chat-primary);
4007
4042
  outline-offset: 2px;
4008
4043
  }
4009
4044
  `;
@@ -4075,7 +4110,7 @@ class ChatConfirmDialogComponent {
4075
4110
  </div>
4076
4111
  </div>
4077
4112
  }
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 });
4113
+ `, 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
4114
  }
4080
4115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatConfirmDialogComponent, decorators: [{
4081
4116
  type: Component,
@@ -4116,7 +4151,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4116
4151
  </div>
4117
4152
  </div>
4118
4153
  }
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"] }]
4154
+ `, 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
4155
  }], 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
4156
 
4122
4157
  // libs/chat/src/lib/styles/chat-scroll-bubble.styles.ts
@@ -4140,9 +4175,9 @@ const CHAT_SCROLL_BUBBLE_STYLES = `
4140
4175
  height: 36px;
4141
4176
  padding: 0 12px;
4142
4177
  border-radius: 9999px;
4143
- background: var(--ngaf-chat-surface);
4144
- border: 1px solid var(--ngaf-chat-separator);
4145
- color: var(--ngaf-chat-text);
4178
+ background: var(--tplane-chat-surface);
4179
+ border: 1px solid var(--tplane-chat-separator);
4180
+ color: var(--tplane-chat-text);
4146
4181
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
4147
4182
  cursor: pointer;
4148
4183
  transition: transform 150ms ease, box-shadow 150ms ease;
@@ -4153,8 +4188,8 @@ const CHAT_SCROLL_BUBBLE_STYLES = `
4153
4188
  width: 6px;
4154
4189
  height: 6px;
4155
4190
  border-radius: 50%;
4156
- background: var(--ngaf-chat-text-muted);
4157
- animation: ngaf-chat-typing-dot 1.4s ease-in-out infinite both;
4191
+ background: var(--tplane-chat-text-muted);
4192
+ animation: tplane-chat-typing-dot 1.4s ease-in-out infinite both;
4158
4193
  }
4159
4194
  .chat-scroll-bubble__dot:nth-child(2) { animation-delay: 0.2s; }
4160
4195
  .chat-scroll-bubble__dot:nth-child(3) { animation-delay: 0.4s; }
@@ -4194,7 +4229,7 @@ class ChatScrollBubbleComponent {
4194
4229
  </svg>
4195
4230
  }
4196
4231
  </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 });
4232
+ `, 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
4233
  }
4199
4234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatScrollBubbleComponent, decorators: [{
4200
4235
  type: Component,
@@ -4220,7 +4255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4220
4255
  </svg>
4221
4256
  }
4222
4257
  </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"] }]
4258
+ `, 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
4259
  }], propDecorators: { mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: true }] }], clicked: [{ type: i0.Output, args: ["clicked"] }] } });
4225
4260
 
4226
4261
  // SPDX-License-Identifier: MIT
@@ -4230,34 +4265,34 @@ const CHAT_ERROR_STYLES = `
4230
4265
  display: flex;
4231
4266
  align-items: flex-start;
4232
4267
  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);
4268
+ background: var(--tplane-chat-error-bg);
4269
+ border: 1px solid var(--tplane-chat-error-border);
4270
+ color: var(--tplane-chat-error-text);
4271
+ border-radius: var(--tplane-chat-radius-card);
4237
4272
  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);
4273
+ font-size: var(--tplane-chat-font-size-sm);
4274
+ margin: 0 var(--tplane-chat-space-6) var(--tplane-chat-space-2);
4240
4275
  }
4241
4276
  .chat-error__icon { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; }
4242
4277
  .chat-error__msg { flex: 1; min-width: 0; word-break: break-word; }
4243
4278
  .chat-error__retry {
4244
4279
  flex-shrink: 0;
4245
4280
  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);
4281
+ color: var(--tplane-chat-error-text);
4282
+ border: 1px solid var(--tplane-chat-error-border);
4283
+ border-radius: var(--tplane-chat-radius-card);
4249
4284
  padding: 2px 10px;
4250
- font-size: var(--ngaf-chat-font-size-sm);
4285
+ font-size: var(--tplane-chat-font-size-sm);
4251
4286
  cursor: pointer;
4252
4287
  transition: background 150ms ease, color 150ms ease;
4253
4288
  white-space: nowrap;
4254
4289
  }
4255
4290
  .chat-error__retry:hover {
4256
- background: var(--ngaf-chat-error-border);
4257
- color: var(--ngaf-chat-error-text);
4291
+ background: var(--tplane-chat-error-border);
4292
+ color: var(--tplane-chat-error-text);
4258
4293
  }
4259
4294
  .chat-error__retry:focus-visible {
4260
- outline: 2px solid var(--ngaf-chat-error-border);
4295
+ outline: 2px solid var(--tplane-chat-error-border);
4261
4296
  outline-offset: 2px;
4262
4297
  }
4263
4298
  `;
@@ -4301,7 +4336,7 @@ class ChatErrorComponent {
4301
4336
  }
4302
4337
  </div>
4303
4338
  }
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 });
4339
+ `, 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
4340
  }
4306
4341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatErrorComponent, decorators: [{
4307
4342
  type: Component,
@@ -4317,20 +4352,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4317
4352
  }
4318
4353
  </div>
4319
4354
  }
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"] }]
4355
+ `, 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
4356
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }] } });
4322
4357
 
4323
4358
  // SPDX-License-Identifier: MIT
4324
4359
  const CHAT_INTERRUPT_STYLES = `
4325
4360
  :host { display: block; }
4326
4361
  .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);
4362
+ background: var(--tplane-chat-warning-bg);
4363
+ color: var(--tplane-chat-warning-text);
4364
+ border-left: 3px solid var(--tplane-chat-warning-text);
4365
+ border-radius: var(--tplane-chat-radius-card);
4331
4366
  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);
4367
+ margin: 0 var(--tplane-chat-space-6) var(--tplane-chat-space-2);
4368
+ font-size: var(--tplane-chat-font-size-sm);
4334
4369
  }
4335
4370
  .chat-interrupt__title { font-weight: 600; margin: 0 0 4px; display: flex; align-items: center; gap: 6px; }
4336
4371
  .chat-interrupt__body { margin: 0 0 8px; opacity: 0.95; }
@@ -4382,7 +4417,7 @@ class ChatInterruptComponent {
4382
4417
  }
4383
4418
  </div>
4384
4419
  }
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 });
4420
+ `, 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
4421
  }
4387
4422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatInterruptComponent, decorators: [{
4388
4423
  type: Component,
@@ -4405,7 +4440,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4405
4440
  }
4406
4441
  </div>
4407
4442
  }
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"] }]
4443
+ `, 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
4444
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], templateRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
4410
4445
 
4411
4446
  // libs/chat/src/lib/compositions/chat-tool-call-card/chat-tool-call-card.component.ts
@@ -4488,7 +4523,7 @@ class ChatToolCallCardComponent {
4488
4523
  </div>
4489
4524
  }
4490
4525
  </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 });
4526
+ `, 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
4527
  }
4493
4528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatToolCallCardComponent, decorators: [{
4494
4529
  type: Component,
@@ -4528,7 +4563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4528
4563
  </div>
4529
4564
  }
4530
4565
  </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"] }]
4566
+ `, 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
4567
  }], propDecorators: { toolCall: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolCall", required: true }] }], defaultCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultCollapsed", required: false }] }] } });
4533
4568
 
4534
4569
  // libs/chat/src/lib/compositions/chat-subagent-card/chat-subagent-card.component.ts
@@ -4541,10 +4576,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4541
4576
  */
4542
4577
  function statusColor(status) {
4543
4578
  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);';
4579
+ case 'pending': return 'background: var(--tplane-chat-surface-alt); color: var(--tplane-chat-text-muted);';
4580
+ case 'running': return 'background: var(--tplane-chat-warning-bg); color: var(--tplane-chat-warning-text);';
4581
+ case 'complete': return 'color: var(--tplane-chat-success);';
4582
+ case 'error': return 'background: var(--tplane-chat-error-bg); color: var(--tplane-chat-error-text);';
4548
4583
  }
4549
4584
  }
4550
4585
  function statusToTraceState(s) {
@@ -4595,7 +4630,7 @@ class ChatSubagentCardComponent {
4595
4630
  </div>
4596
4631
  }
4597
4632
  </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 });
4633
+ `, 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
4634
  }
4600
4635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSubagentCardComponent, decorators: [{
4601
4636
  type: Component,
@@ -4621,7 +4656,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4621
4656
  </div>
4622
4657
  }
4623
4658
  </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"] }]
4659
+ `, 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
4660
  }], propDecorators: { subagent: [{ type: i0.Input, args: [{ isSignal: true, alias: "subagent", required: true }] }] } });
4626
4661
 
4627
4662
  // libs/chat/src/lib/primitives/chat-tool-calls/chat-tool-call-template.directive.ts
@@ -4835,7 +4870,7 @@ class ChatToolCallsComponent {
4835
4870
  }
4836
4871
  }
4837
4872
  }
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 });
4873
+ `, 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
4874
  }
4840
4875
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatToolCallsComponent, decorators: [{
4841
4876
  type: Component,
@@ -4874,24 +4909,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
4874
4909
  }
4875
4910
  }
4876
4911
  }
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"] }]
4912
+ `, 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
4913
  }], 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
4914
 
4880
4915
  // SPDX-License-Identifier: MIT
4881
4916
  const CHAT_GENERATIVE_UI_STYLES = `
4882
4917
  :host {
4883
4918
  display: block;
4884
- color: var(--ngaf-chat-text);
4885
- font-size: var(--ngaf-chat-font-size);
4886
- line-height: var(--ngaf-chat-line-height);
4919
+ color: var(--tplane-chat-text);
4920
+ font-size: var(--tplane-chat-font-size);
4921
+ line-height: var(--tplane-chat-line-height);
4887
4922
  }
4888
4923
  .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);
4924
+ color: var(--tplane-chat-error-text);
4925
+ background: var(--tplane-chat-error-bg);
4926
+ border: 1px solid var(--tplane-chat-error-border);
4927
+ border-radius: var(--tplane-chat-radius-card);
4893
4928
  padding: 8px 12px;
4894
- font-size: var(--ngaf-chat-font-size-sm);
4929
+ font-size: var(--tplane-chat-font-size-sm);
4895
4930
  }
4896
4931
  `;
4897
4932
 
@@ -5011,7 +5046,7 @@ class ChatGenerativeUiComponent {
5011
5046
  (events)="events.emit($event)"
5012
5047
  />
5013
5048
  }
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 });
5049
+ `, 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
5050
  }
5016
5051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatGenerativeUiComponent, decorators: [{
5017
5052
  type: Component,
@@ -5026,7 +5061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
5026
5061
  (events)="events.emit($event)"
5027
5062
  />
5028
5063
  }
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"] }]
5064
+ `, 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
5065
  }], 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
5066
 
5032
5067
  // libs/chat/src/lib/primitives/chat-tool-views/chat-tool-views.component.ts
@@ -5167,7 +5202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
5167
5202
 
5168
5203
  // SPDX-License-Identifier: MIT
5169
5204
  const CHAT_THREAD_LIST_STYLES = `
5170
- :host { display: block; padding: var(--ngaf-chat-space-2); }
5205
+ :host { display: block; padding: var(--tplane-chat-space-2); }
5171
5206
  .chat-thread-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
5172
5207
  .chat-thread-list__item {
5173
5208
  display: flex;
@@ -5175,10 +5210,10 @@ const CHAT_THREAD_LIST_STYLES = `
5175
5210
  gap: 2px;
5176
5211
  min-height: 36px;
5177
5212
  padding: 8px 12px;
5178
- border-radius: var(--ngaf-chat-radius-button);
5213
+ border-radius: var(--tplane-chat-radius-button);
5179
5214
  cursor: pointer;
5180
- color: var(--ngaf-chat-text);
5181
- font-size: var(--ngaf-chat-font-size-sm);
5215
+ color: var(--tplane-chat-text);
5216
+ font-size: var(--tplane-chat-font-size-sm);
5182
5217
  background: transparent;
5183
5218
  border: 0;
5184
5219
  text-align: left;
@@ -5186,9 +5221,9 @@ const CHAT_THREAD_LIST_STYLES = `
5186
5221
  box-sizing: border-box;
5187
5222
  transition: background-color 150ms ease;
5188
5223
  }
5189
- .chat-thread-list__item:hover { background: color-mix(in srgb, var(--ngaf-chat-text) 5%, transparent); }
5224
+ .chat-thread-list__item:hover { background: color-mix(in srgb, var(--tplane-chat-text) 5%, transparent); }
5190
5225
  .chat-thread-list__item[data-active="true"] {
5191
- background: var(--ngaf-chat-surface-alt);
5226
+ background: var(--tplane-chat-surface-alt);
5192
5227
  font-weight: 500;
5193
5228
  }
5194
5229
  .chat-thread-list__item-title {
@@ -5199,24 +5234,24 @@ const CHAT_THREAD_LIST_STYLES = `
5199
5234
  }
5200
5235
  .chat-thread-list__item-time {
5201
5236
  font-size: 11px;
5202
- color: var(--ngaf-chat-text-muted);
5237
+ color: var(--tplane-chat-text-muted);
5203
5238
  display: block;
5204
5239
  }
5205
5240
  .chat-thread-list__new {
5206
5241
  display: block;
5207
5242
  width: 100%;
5208
5243
  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);
5244
+ margin-bottom: var(--tplane-chat-space-2);
5245
+ border: 1px dashed var(--tplane-chat-separator);
5246
+ border-radius: var(--tplane-chat-radius-button);
5212
5247
  background: transparent;
5213
- color: var(--ngaf-chat-primary);
5248
+ color: var(--tplane-chat-primary);
5214
5249
  cursor: pointer;
5215
- font-size: var(--ngaf-chat-font-size-sm);
5250
+ font-size: var(--tplane-chat-font-size-sm);
5216
5251
  box-sizing: border-box;
5217
5252
  transition: background 150ms ease;
5218
5253
  }
5219
- .chat-thread-list__new:hover { background: var(--ngaf-chat-surface-alt); }
5254
+ .chat-thread-list__new:hover { background: var(--tplane-chat-surface-alt); }
5220
5255
  .chat-thread-list__item-wrap {
5221
5256
  position: relative;
5222
5257
  display: flex;
@@ -5233,7 +5268,7 @@ const CHAT_THREAD_LIST_STYLES = `
5233
5268
  height: 28px;
5234
5269
  border: 0;
5235
5270
  background: transparent;
5236
- color: var(--ngaf-chat-text-muted);
5271
+ color: var(--tplane-chat-text-muted);
5237
5272
  border-radius: 4px;
5238
5273
  cursor: pointer;
5239
5274
  opacity: 0;
@@ -5247,12 +5282,12 @@ const CHAT_THREAD_LIST_STYLES = `
5247
5282
  opacity: 1;
5248
5283
  }
5249
5284
  .chat-thread-list__kebab:hover {
5250
- background: var(--ngaf-chat-surface-alt);
5251
- color: var(--ngaf-chat-text);
5285
+ background: var(--tplane-chat-surface-alt);
5286
+ color: var(--tplane-chat-text);
5252
5287
  }
5253
5288
  .chat-thread-list__kebab:focus-visible {
5254
5289
  opacity: 1;
5255
- outline: 2px solid var(--ngaf-chat-primary);
5290
+ outline: 2px solid var(--tplane-chat-primary);
5256
5291
  outline-offset: 2px;
5257
5292
  }
5258
5293
  .chat-thread-list__initial {
@@ -5262,8 +5297,8 @@ const CHAT_THREAD_LIST_STYLES = `
5262
5297
  border-radius: 50%;
5263
5298
  align-items: center;
5264
5299
  justify-content: center;
5265
- background: var(--ngaf-chat-surface-alt);
5266
- color: var(--ngaf-chat-text);
5300
+ background: var(--tplane-chat-surface-alt);
5301
+ color: var(--tplane-chat-text);
5267
5302
  font-weight: 500;
5268
5303
  font-size: 13px;
5269
5304
  flex-shrink: 0;
@@ -5272,18 +5307,18 @@ const CHAT_THREAD_LIST_STYLES = `
5272
5307
  width: 11px;
5273
5308
  height: 11px;
5274
5309
  margin-right: 4px;
5275
- color: var(--ngaf-chat-text-muted);
5310
+ color: var(--tplane-chat-text-muted);
5276
5311
  vertical-align: -1px;
5277
5312
  display: inline-block;
5278
5313
  }
5279
5314
  .chat-thread-list__edit {
5280
5315
  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);
5316
+ border: 1px solid var(--tplane-chat-primary);
5317
+ border-radius: var(--tplane-chat-radius-button);
5318
+ background: var(--tplane-chat-bg);
5319
+ color: var(--tplane-chat-text);
5285
5320
  font: inherit;
5286
- font-size: var(--ngaf-chat-font-size-sm);
5321
+ font-size: var(--tplane-chat-font-size-sm);
5287
5322
  padding: 6px 10px;
5288
5323
  min-height: 36px;
5289
5324
  outline: none;
@@ -5314,7 +5349,7 @@ const CHAT_THREAD_LIST_STYLES = `
5314
5349
  display: inline-flex;
5315
5350
  align-items: center;
5316
5351
  justify-content: center;
5317
- color: var(--ngaf-chat-text-muted);
5352
+ color: var(--tplane-chat-text-muted);
5318
5353
  font-size: 11px;
5319
5354
  line-height: 1;
5320
5355
  letter-spacing: -1px;
@@ -5345,7 +5380,7 @@ const CHAT_THREAD_LIST_STYLES = `
5345
5380
  left: 4px;
5346
5381
  right: 4px;
5347
5382
  height: 2px;
5348
- background: var(--ngaf-chat-primary);
5383
+ background: var(--tplane-chat-primary);
5349
5384
  border-radius: 1px;
5350
5385
  pointer-events: none;
5351
5386
  }
@@ -5913,7 +5948,7 @@ class ChatThreadListComponent {
5913
5948
  (confirmed)="performDelete()"
5914
5949
  (cancelled)="confirmDeleteId.set(null)"
5915
5950
  />
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 });
5951
+ `, 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
5952
  }
5918
5953
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatThreadListComponent, decorators: [{
5919
5954
  type: Component,
@@ -6023,13 +6058,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6023
6058
  (confirmed)="performDelete()"
6024
6059
  (cancelled)="confirmDeleteId.set(null)"
6025
6060
  />
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"] }]
6061
+ `, 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
6062
  }], 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
6063
 
6029
6064
  // libs/chat/src/lib/styles/chat-project-list.styles.ts
6030
6065
  // SPDX-License-Identifier: MIT
6031
6066
  const CHAT_PROJECT_LIST_STYLES = `
6032
- :host { display: block; padding: var(--ngaf-chat-space-2); }
6067
+ :host { display: block; padding: var(--tplane-chat-space-2); }
6033
6068
  .chat-project-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 2px; }
6034
6069
  .chat-project-list__item-wrap {
6035
6070
  position: relative;
@@ -6042,10 +6077,10 @@ const CHAT_PROJECT_LIST_STYLES = `
6042
6077
  min-width: 0;
6043
6078
  min-height: 32px;
6044
6079
  padding: 6px 12px;
6045
- border-radius: var(--ngaf-chat-radius-button);
6080
+ border-radius: var(--tplane-chat-radius-button);
6046
6081
  cursor: pointer;
6047
- color: var(--ngaf-chat-text);
6048
- font-size: var(--ngaf-chat-font-size-sm);
6082
+ color: var(--tplane-chat-text);
6083
+ font-size: var(--tplane-chat-font-size-sm);
6049
6084
  background: transparent;
6050
6085
  border: 0;
6051
6086
  text-align: left;
@@ -6055,9 +6090,9 @@ const CHAT_PROJECT_LIST_STYLES = `
6055
6090
  text-overflow: ellipsis;
6056
6091
  white-space: nowrap;
6057
6092
  }
6058
- .chat-project-list__item:hover { background: color-mix(in srgb, var(--ngaf-chat-text) 5%, transparent); }
6093
+ .chat-project-list__item:hover { background: color-mix(in srgb, var(--tplane-chat-text) 5%, transparent); }
6059
6094
  .chat-project-list__item[data-active="true"] {
6060
- background: var(--ngaf-chat-surface-alt);
6095
+ background: var(--tplane-chat-surface-alt);
6061
6096
  font-weight: 500;
6062
6097
  }
6063
6098
  .chat-project-list__kebab {
@@ -6066,7 +6101,7 @@ const CHAT_PROJECT_LIST_STYLES = `
6066
6101
  height: 28px;
6067
6102
  border: 0;
6068
6103
  background: transparent;
6069
- color: var(--ngaf-chat-text-muted);
6104
+ color: var(--tplane-chat-text-muted);
6070
6105
  border-radius: 4px;
6071
6106
  cursor: pointer;
6072
6107
  opacity: 0;
@@ -6080,35 +6115,35 @@ const CHAT_PROJECT_LIST_STYLES = `
6080
6115
  opacity: 1;
6081
6116
  }
6082
6117
  .chat-project-list__kebab:hover {
6083
- background: var(--ngaf-chat-surface-alt);
6084
- color: var(--ngaf-chat-text);
6118
+ background: var(--tplane-chat-surface-alt);
6119
+ color: var(--tplane-chat-text);
6085
6120
  }
6086
6121
  .chat-project-list__kebab:focus-visible {
6087
6122
  opacity: 1;
6088
- outline: 2px solid var(--ngaf-chat-primary);
6123
+ outline: 2px solid var(--tplane-chat-primary);
6089
6124
  outline-offset: 2px;
6090
6125
  }
6091
6126
  .chat-project-list__edit {
6092
6127
  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);
6128
+ border: 1px solid var(--tplane-chat-primary);
6129
+ border-radius: var(--tplane-chat-radius-button);
6130
+ background: var(--tplane-chat-bg);
6131
+ color: var(--tplane-chat-text);
6097
6132
  font: inherit;
6098
- font-size: var(--ngaf-chat-font-size-sm);
6133
+ font-size: var(--tplane-chat-font-size-sm);
6099
6134
  padding: 6px 10px;
6100
6135
  min-height: 32px;
6101
6136
  outline: none;
6102
6137
  box-sizing: border-box;
6103
6138
  }
6104
6139
  .chat-project-list__new {
6105
- background: var(--ngaf-chat-surface-alt);
6106
- color: var(--ngaf-chat-text);
6140
+ background: var(--tplane-chat-surface-alt);
6141
+ color: var(--tplane-chat-text);
6107
6142
  border: 0;
6108
6143
  padding: 10px 16px;
6109
6144
  border-radius: 8px;
6110
6145
  font-family: inherit;
6111
- font-size: var(--ngaf-chat-font-size-sm);
6146
+ font-size: var(--tplane-chat-font-size-sm);
6112
6147
  font-weight: 400;
6113
6148
  display: flex;
6114
6149
  align-items: center;
@@ -6117,8 +6152,8 @@ const CHAT_PROJECT_LIST_STYLES = `
6117
6152
  width: 100%;
6118
6153
  }
6119
6154
  .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);
6155
+ background: color-mix(in srgb, var(--tplane-chat-text) 8%, var(--tplane-chat-surface-alt));
6156
+ color: var(--tplane-chat-text);
6122
6157
  }
6123
6158
  `;
6124
6159
 
@@ -6358,7 +6393,7 @@ class ChatProjectListComponent {
6358
6393
  (confirmed)="performDelete()"
6359
6394
  (cancelled)="confirmDeleteId.set(null)"
6360
6395
  />
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 });
6396
+ `, 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
6397
  }
6363
6398
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatProjectListComponent, decorators: [{
6364
6399
  type: Component,
@@ -6439,7 +6474,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6439
6474
  (confirmed)="performDelete()"
6440
6475
  (cancelled)="confirmDeleteId.set(null)"
6441
6476
  />
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"] }]
6477
+ `, 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
6478
  }], 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
6479
 
6445
6480
  // SPDX-License-Identifier: MIT
@@ -6457,7 +6492,7 @@ class ChatGenuiSkeletonComponent {
6457
6492
  <div class="chat-genui-skeleton__row"></div>
6458
6493
  </div>
6459
6494
  </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 });
6495
+ `, 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
6496
  }
6462
6497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatGenuiSkeletonComponent, decorators: [{
6463
6498
  type: Component,
@@ -6473,7 +6508,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6473
6508
  <div class="chat-genui-skeleton__row"></div>
6474
6509
  </div>
6475
6510
  </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"] }]
6511
+ `, 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
6512
  }] });
6478
6513
 
6479
6514
  // SPDX-License-Identifier: MIT
@@ -6527,17 +6562,17 @@ const CHAT_WELCOME_STYLES = `
6527
6562
  justify-content: center;
6528
6563
  width: 100%;
6529
6564
  min-height: 0;
6530
- padding: var(--ngaf-chat-welcome-padding, 24px);
6565
+ padding: var(--tplane-chat-welcome-padding, 24px);
6531
6566
  box-sizing: border-box;
6532
- animation: ngaf-chat-welcome-mount 200ms ease-out both;
6567
+ animation: tplane-chat-welcome-mount 200ms ease-out both;
6533
6568
  }
6534
6569
  .chat-welcome__inner {
6535
6570
  display: flex;
6536
6571
  flex-direction: column;
6537
6572
  align-items: center;
6538
- gap: var(--ngaf-chat-welcome-gap, 1.25rem);
6573
+ gap: var(--tplane-chat-welcome-gap, 1.25rem);
6539
6574
  width: 100%;
6540
- max-width: var(--ngaf-chat-welcome-max-width, 36rem);
6575
+ max-width: var(--tplane-chat-welcome-max-width, 36rem);
6541
6576
  text-align: center;
6542
6577
  }
6543
6578
  .chat-welcome__beacon {
@@ -6546,17 +6581,17 @@ const CHAT_WELCOME_STYLES = `
6546
6581
  height: 14px;
6547
6582
  border-radius: 50%;
6548
6583
  background: radial-gradient(circle at 30% 30%,
6549
- var(--ngaf-chat-text) 0%,
6550
- var(--ngaf-chat-text-muted) 70%,
6584
+ var(--tplane-chat-text) 0%,
6585
+ var(--tplane-chat-text-muted) 70%,
6551
6586
  transparent 100%);
6552
- animation: ngaf-chat-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
6587
+ animation: tplane-chat-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
6553
6588
  margin-bottom: 8px;
6554
6589
  }
6555
6590
  .chat-welcome__title {
6556
6591
  margin: 0;
6557
6592
  font-size: 1.25rem;
6558
6593
  font-weight: 500;
6559
- color: var(--ngaf-chat-text);
6594
+ color: var(--tplane-chat-text);
6560
6595
  line-height: 1.3;
6561
6596
  }
6562
6597
  @media (min-width: 768px) {
@@ -6594,23 +6629,23 @@ const CHAT_WELCOME_SUGGESTION_STYLES = `
6594
6629
  align-items: center;
6595
6630
  gap: 0.5rem;
6596
6631
  padding: 10px 16px;
6597
- background: var(--ngaf-chat-surface);
6598
- border: 1px solid var(--ngaf-chat-separator);
6632
+ background: var(--tplane-chat-surface);
6633
+ border: 1px solid var(--tplane-chat-separator);
6599
6634
  border-radius: 9999px;
6600
- color: var(--ngaf-chat-text);
6635
+ color: var(--tplane-chat-text);
6601
6636
  font-family: inherit;
6602
- font-size: var(--ngaf-chat-font-size-sm);
6637
+ font-size: var(--tplane-chat-font-size-sm);
6603
6638
  text-align: center;
6604
6639
  cursor: pointer;
6605
6640
  transition: background 150ms ease, border-color 150ms ease, transform 120ms ease;
6606
6641
  }
6607
6642
  .chat-welcome-suggestion:hover {
6608
- background: var(--ngaf-chat-surface-alt);
6609
- border-color: var(--ngaf-chat-text-muted);
6643
+ background: var(--tplane-chat-surface-alt);
6644
+ border-color: var(--tplane-chat-text-muted);
6610
6645
  }
6611
6646
  .chat-welcome-suggestion:active { transform: scale(0.98); }
6612
6647
  .chat-welcome-suggestion:focus-visible {
6613
- outline: 2px solid var(--ngaf-chat-text-muted);
6648
+ outline: 2px solid var(--tplane-chat-text-muted);
6614
6649
  outline-offset: 2px;
6615
6650
  }
6616
6651
  .chat-welcome-suggestion__label { white-space: nowrap; }
@@ -6629,9 +6664,9 @@ const CHAT_WELCOME_SUGGESTION_STYLES = `
6629
6664
  * [chatWelcomeSuggestions] — projects suggestion rows below the input
6630
6665
  *
6631
6666
  * 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
6667
+ * --tplane-chat-welcome-max-width default 36rem
6668
+ * --tplane-chat-welcome-gap default 1.25rem
6669
+ * --tplane-chat-welcome-padding default 24px
6635
6670
  */
6636
6671
  class ChatWelcomeComponent {
6637
6672
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWelcomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -6646,7 +6681,7 @@ class ChatWelcomeComponent {
6646
6681
  <ng-content select="[chatWelcomeSuggestions]" />
6647
6682
  </div>
6648
6683
  </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 });
6684
+ `, 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
6685
  }
6651
6686
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWelcomeComponent, decorators: [{
6652
6687
  type: Component,
@@ -6661,7 +6696,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6661
6696
  <ng-content select="[chatWelcomeSuggestions]" />
6662
6697
  </div>
6663
6698
  </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"] }]
6699
+ `, 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
6700
  }] });
6666
6701
 
6667
6702
  // SPDX-License-Identifier: MIT
@@ -6684,7 +6719,7 @@ class ChatWelcomeSuggestionComponent {
6684
6719
  <span class="chat-welcome-suggestion__label">{{ label() }}</span>
6685
6720
  <span class="chat-welcome-suggestion__chevron" aria-hidden="true">›</span>
6686
6721
  </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 });
6722
+ `, 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
6723
  }
6689
6724
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatWelcomeSuggestionComponent, decorators: [{
6690
6725
  type: Component,
@@ -6700,9 +6735,286 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6700
6735
  <span class="chat-welcome-suggestion__label">{{ label() }}</span>
6701
6736
  <span class="chat-welcome-suggestion__chevron" aria-hidden="true">›</span>
6702
6737
  </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"] }]
6738
+ `, 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
6739
  }], 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
6740
 
6741
+ // libs/chat/src/lib/primitives/overlay/overlay-container.ts
6742
+ // SPDX-License-Identifier: MIT
6743
+ const CONTAINER_CLASS = 'chat-overlay-container';
6744
+ const STYLE_ID = 'chat-overlay-structure';
6745
+ // Structural CSS, injected once into <head> (same pattern as ROOT_TOKEN_STYLES
6746
+ // in chat-tokens.ts) so consumers need not import any stylesheet.
6747
+ const STRUCTURE_CSS = `
6748
+ .${CONTAINER_CLASS} {
6749
+ position: fixed;
6750
+ inset: 0;
6751
+ z-index: 1000;
6752
+ pointer-events: none;
6753
+ }
6754
+ .chat-overlay-pane {
6755
+ position: absolute;
6756
+ pointer-events: auto;
6757
+ }
6758
+ `;
6759
+ /** Returns the single shared overlay container appended to <body>, creating it
6760
+ * (and injecting structural CSS) on first call. */
6761
+ function getOverlayContainer(doc) {
6762
+ const existing = doc.querySelector('.' + CONTAINER_CLASS);
6763
+ if (existing)
6764
+ return existing;
6765
+ if (!doc.getElementById(STYLE_ID)) {
6766
+ const style = doc.createElement('style');
6767
+ style.id = STYLE_ID;
6768
+ style.textContent = STRUCTURE_CSS;
6769
+ doc.head.appendChild(style);
6770
+ }
6771
+ const container = doc.createElement('div');
6772
+ container.className = CONTAINER_CLASS;
6773
+ doc.body.appendChild(container);
6774
+ return container;
6775
+ }
6776
+
6777
+ // libs/chat/src/lib/primitives/overlay/connected-position.ts
6778
+ // SPDX-License-Identifier: MIT
6779
+ //
6780
+ // Minimal port of CDK's FlexibleConnectedPositionStrategy fit logic
6781
+ // (~/repos/components/src/cdk/overlay/position/flexible-connected-position-strategy.ts):
6782
+ // _getOriginPoint + _getOverlayPoint + _getOverlayFit + _pushOverlayOnScreen.
6783
+ // Omits flexible-dimensions, grow-after-open, RTL, and virtual-keyboard handling.
6784
+ function originPoint(origin, pos) {
6785
+ const x = pos.originX === 'center' ? origin.left + origin.width / 2 : pos.originX === 'start' ? origin.left : origin.right;
6786
+ const y = pos.originY === 'center' ? origin.top + origin.height / 2 : pos.originY === 'top' ? origin.top : origin.bottom;
6787
+ return { x, y };
6788
+ }
6789
+ function overlayPoint(origin, size, pos) {
6790
+ let x = origin.x;
6791
+ if (pos.overlayX === 'center')
6792
+ x -= size.width / 2;
6793
+ else if (pos.overlayX === 'end')
6794
+ x -= size.width;
6795
+ let y = origin.y;
6796
+ if (pos.overlayY === 'center')
6797
+ y -= size.height / 2;
6798
+ else if (pos.overlayY === 'bottom')
6799
+ y -= size.height;
6800
+ return { x: x + (pos.offsetX ?? 0), y: y + (pos.offsetY ?? 0) };
6801
+ }
6802
+ function fitArea(point, size, viewport) {
6803
+ const left = point.x;
6804
+ const right = point.x + size.width;
6805
+ const top = point.y;
6806
+ const bottom = point.y + size.height;
6807
+ const visibleW = Math.max(0, Math.min(right, viewport.right) - Math.max(left, viewport.left));
6808
+ const visibleH = Math.max(0, Math.min(bottom, viewport.bottom) - Math.max(top, viewport.top));
6809
+ const fits = left >= viewport.left && right <= viewport.right && top >= viewport.top && bottom <= viewport.bottom;
6810
+ return { area: visibleW * visibleH, fits };
6811
+ }
6812
+ function pushOnScreen(point, size, viewport) {
6813
+ const maxLeft = viewport.right - size.width;
6814
+ const maxTop = viewport.bottom - size.height;
6815
+ return {
6816
+ x: Math.max(viewport.left, Math.min(point.x, maxLeft)),
6817
+ y: Math.max(viewport.top, Math.min(point.y, maxTop)),
6818
+ };
6819
+ }
6820
+ /** Sensible fallback when no positions are supplied: below the origin, start-aligned. */
6821
+ const DEFAULT_POSITION = { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' };
6822
+ function computeConnectedPosition(args) {
6823
+ const { originRect, overlaySize, viewport, positions } = args;
6824
+ // An empty positions array (the directive's input default) must still anchor to
6825
+ // the trigger rather than crash on best! / render at 0,0.
6826
+ const list = positions.length ? positions : [DEFAULT_POSITION];
6827
+ let best = null;
6828
+ for (const pos of list) {
6829
+ const point = overlayPoint(originPoint(originRect, pos), overlaySize, pos);
6830
+ const { area, fits } = fitArea(point, overlaySize, viewport);
6831
+ if (fits) {
6832
+ return { top: point.y, left: point.x, position: pos };
6833
+ }
6834
+ if (!best || area > best.area)
6835
+ best = { point, pos, area };
6836
+ }
6837
+ const pushed = pushOnScreen(best.point, overlaySize, viewport);
6838
+ return { top: pushed.y, left: pushed.x, position: best.pos };
6839
+ }
6840
+ function narrowViewport(win, margin) {
6841
+ return {
6842
+ left: margin,
6843
+ top: margin,
6844
+ right: win.innerWidth - margin,
6845
+ bottom: win.innerHeight - margin,
6846
+ width: win.innerWidth - 2 * margin,
6847
+ height: win.innerHeight - 2 * margin,
6848
+ };
6849
+ }
6850
+
6851
+ // libs/chat/src/lib/primitives/overlay/connected-overlay.directive.ts
6852
+ // SPDX-License-Identifier: MIT
6853
+ /* eslint-disable @angular-eslint/no-input-rename, @angular-eslint/no-output-rename --
6854
+ * The `chatOverlay*` binding aliases ARE the intended public API: they namespace
6855
+ * the directive's inputs/outputs under the `chatOverlay` prefix (mirroring Angular
6856
+ * CDK's `cdkConnectedOverlay*` convention) rather than exposing bare names like
6857
+ * `open`/`positions` on an `<ng-template>`. The internal property names stay
6858
+ * concise, so aliasing here is deliberate, not a rename to avoid. */
6859
+ /** Marks the anchor element a connected overlay positions against. */
6860
+ class ChatOverlayOriginDirective {
6861
+ elementRef = inject(ElementRef);
6862
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatOverlayOriginDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6863
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.6", type: ChatOverlayOriginDirective, isStandalone: true, selector: "[chatOverlayOrigin]", exportAs: ["chatOverlayOrigin"], ngImport: i0 });
6864
+ }
6865
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatOverlayOriginDirective, decorators: [{
6866
+ type: Directive,
6867
+ args: [{
6868
+ selector: '[chatOverlayOrigin]',
6869
+ standalone: true,
6870
+ exportAs: 'chatOverlayOrigin',
6871
+ }]
6872
+ }] });
6873
+ const VIEWPORT_MARGIN = 8;
6874
+ /**
6875
+ * Applied to an `<ng-template>`. When `chatOverlayOpen` is true, the template
6876
+ * content is portaled into the shared body-level overlay container and
6877
+ * positioned connected to `chatOverlayOrigin`, repositioning live on
6878
+ * scroll/resize. Closes on outside mousedown (via the `chatOverlayOutsideClick`
6879
+ * output) and Tab; returns focus to the origin when focus was inside the pane.
6880
+ *
6881
+ * NOTE: the directive does not own the open state — it only emits. To fully
6882
+ * close the overlay, consumers MUST handle BOTH `(chatOverlayOutsideClick)` and
6883
+ * `(chatOverlayDetach)`. Tab-close (and Escape, when the consumer routes it)
6884
+ * surface through `chatOverlayDetach`, so wiring only `chatOverlayOutsideClick`
6885
+ * leaves the overlay stuck open on Tab.
6886
+ */
6887
+ class ChatConnectedOverlayDirective {
6888
+ origin = input.required({ ...(ngDevMode ? { debugName: "origin" } : {}), alias: 'chatOverlayOrigin' });
6889
+ open = input(false, { ...(ngDevMode ? { debugName: "open" } : {}), alias: 'chatOverlayOpen' });
6890
+ positions = input([], { ...(ngDevMode ? { debugName: "positions" } : {}), alias: 'chatOverlayPositions' });
6891
+ panelClass = input('', { ...(ngDevMode ? { debugName: "panelClass" } : {}), alias: 'chatOverlayPanelClass' });
6892
+ /** Emits the pane element once attached (consumers focus content from it). */
6893
+ attached = output({ alias: 'chatOverlayAttached' });
6894
+ outsideClick = output({ alias: 'chatOverlayOutsideClick' });
6895
+ detached = output({ alias: 'chatOverlayDetach' });
6896
+ templateRef = inject((TemplateRef));
6897
+ viewContainerRef = inject(ViewContainerRef);
6898
+ document = inject(DOCUMENT);
6899
+ pane = null;
6900
+ viewRef = null;
6901
+ resizeObs = null;
6902
+ rafId = 0;
6903
+ previouslyFocused = null;
6904
+ onScrollOrResize = () => this.scheduleReposition();
6905
+ onDocMouseDown = (e) => {
6906
+ if (!this.pane)
6907
+ return;
6908
+ const path = e.composedPath();
6909
+ if (path.includes(this.pane) || path.includes(this.origin().elementRef.nativeElement))
6910
+ return;
6911
+ this.outsideClick.emit(e);
6912
+ };
6913
+ onKeydown = (e) => {
6914
+ if (e.key !== 'Tab' || !this.pane)
6915
+ return;
6916
+ const active = this.document.activeElement;
6917
+ if (this.pane.contains(active) || active === this.origin().elementRef.nativeElement) {
6918
+ this.detached.emit();
6919
+ }
6920
+ };
6921
+ constructor() {
6922
+ effect(() => {
6923
+ if (this.open())
6924
+ this.attach();
6925
+ else
6926
+ this.dispose();
6927
+ });
6928
+ inject(DestroyRef).onDestroy(() => this.dispose());
6929
+ }
6930
+ attach() {
6931
+ if (this.pane)
6932
+ return;
6933
+ const win = this.document.defaultView;
6934
+ if (!win)
6935
+ return; // SSR / detached document
6936
+ this.previouslyFocused = this.document.activeElement;
6937
+ const pane = this.document.createElement('div');
6938
+ pane.className = 'chat-overlay-pane';
6939
+ for (const c of this.normalizePanelClass())
6940
+ pane.classList.add(c);
6941
+ getOverlayContainer(this.document).appendChild(pane);
6942
+ this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef);
6943
+ this.viewRef.detectChanges();
6944
+ for (const node of this.viewRef.rootNodes)
6945
+ pane.appendChild(node);
6946
+ this.pane = pane;
6947
+ this.reposition();
6948
+ win.addEventListener('scroll', this.onScrollOrResize, { capture: true, passive: true });
6949
+ win.addEventListener('resize', this.onScrollOrResize, { passive: true });
6950
+ this.document.addEventListener('mousedown', this.onDocMouseDown, true);
6951
+ this.document.addEventListener('keydown', this.onKeydown, true);
6952
+ if (typeof win.ResizeObserver === 'function') {
6953
+ this.resizeObs = new win.ResizeObserver(() => this.scheduleReposition());
6954
+ this.resizeObs.observe(this.origin().elementRef.nativeElement);
6955
+ this.resizeObs.observe(pane);
6956
+ }
6957
+ this.attached.emit(pane);
6958
+ }
6959
+ scheduleReposition() {
6960
+ const win = this.document.defaultView;
6961
+ if (!win || !this.pane)
6962
+ return;
6963
+ if (this.rafId)
6964
+ win.cancelAnimationFrame(this.rafId);
6965
+ this.rafId = win.requestAnimationFrame(() => this.reposition());
6966
+ }
6967
+ reposition() {
6968
+ const win = this.document.defaultView;
6969
+ if (!win || !this.pane)
6970
+ return;
6971
+ const r = this.pane.getBoundingClientRect();
6972
+ const result = computeConnectedPosition({
6973
+ originRect: this.origin().elementRef.nativeElement.getBoundingClientRect(),
6974
+ overlaySize: { width: r.width, height: r.height },
6975
+ viewport: narrowViewport(win, VIEWPORT_MARGIN),
6976
+ positions: this.positions(),
6977
+ });
6978
+ this.pane.style.top = `${Math.round(result.top)}px`;
6979
+ this.pane.style.left = `${Math.round(result.left)}px`;
6980
+ }
6981
+ dispose() {
6982
+ const win = this.document.defaultView;
6983
+ if (this.rafId && win)
6984
+ win.cancelAnimationFrame(this.rafId);
6985
+ this.rafId = 0;
6986
+ if (win) {
6987
+ win.removeEventListener('scroll', this.onScrollOrResize, { capture: true });
6988
+ win.removeEventListener('resize', this.onScrollOrResize);
6989
+ }
6990
+ this.document.removeEventListener('mousedown', this.onDocMouseDown, true);
6991
+ this.document.removeEventListener('keydown', this.onKeydown, true);
6992
+ this.resizeObs?.disconnect();
6993
+ this.resizeObs = null;
6994
+ const focusWasInPane = !!this.pane && this.pane.contains(this.document.activeElement);
6995
+ this.viewRef?.destroy();
6996
+ this.viewRef = null;
6997
+ this.pane?.remove();
6998
+ this.pane = null;
6999
+ if (focusWasInPane && this.previouslyFocused)
7000
+ this.previouslyFocused.focus();
7001
+ this.previouslyFocused = null;
7002
+ }
7003
+ normalizePanelClass() {
7004
+ const pc = this.panelClass();
7005
+ return Array.isArray(pc) ? pc : pc ? [pc] : [];
7006
+ }
7007
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatConnectedOverlayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7008
+ 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 });
7009
+ }
7010
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatConnectedOverlayDirective, decorators: [{
7011
+ type: Directive,
7012
+ args: [{
7013
+ selector: '[chatConnectedOverlay]',
7014
+ standalone: true,
7015
+ }]
7016
+ }], 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"] }] } });
7017
+
6706
7018
  // libs/chat/src/lib/styles/chat-select.styles.ts
6707
7019
  // SPDX-License-Identifier: MIT
6708
7020
  const CHAT_SELECT_STYLES = `
@@ -6716,9 +7028,9 @@ const CHAT_SELECT_STYLES = `
6716
7028
  border: 0;
6717
7029
  border-radius: 9999px;
6718
7030
  background: transparent;
6719
- color: var(--ngaf-chat-text-muted);
7031
+ color: var(--tplane-chat-text-muted);
6720
7032
  font: inherit;
6721
- font-size: var(--ngaf-chat-font-size-sm);
7033
+ font-size: var(--tplane-chat-font-size-sm);
6722
7034
  display: inline-flex;
6723
7035
  align-items: center;
6724
7036
  gap: 4px;
@@ -6726,8 +7038,8 @@ const CHAT_SELECT_STYLES = `
6726
7038
  transition: background 120ms ease, color 120ms ease;
6727
7039
  }
6728
7040
  .chat-select__trigger:hover:not(:disabled) {
6729
- background: var(--ngaf-chat-surface-alt);
6730
- color: var(--ngaf-chat-text);
7041
+ background: var(--tplane-chat-surface-alt);
7042
+ color: var(--tplane-chat-text);
6731
7043
  }
6732
7044
  .chat-select__trigger:disabled {
6733
7045
  opacity: 0.5;
@@ -6742,19 +7054,21 @@ const CHAT_SELECT_STYLES = `
6742
7054
  .chat-select__trigger.is-open .chat-select__chevron {
6743
7055
  transform: rotate(180deg);
6744
7056
  }
7057
+ /* The menu is rendered inside the chat connected-overlay pane (a body-level
7058
+ portal), so it no longer positions itself — the overlay primitive places
7059
+ the pane. It keeps only its own box styling here. Min/max width can be
7060
+ overridden per consumer via the overlay panelClass (see chat-select
7061
+ panelClass input). */
6745
7062
  .chat-select__menu {
6746
- position: absolute;
6747
- bottom: calc(100% + 8px);
6748
- right: 0;
6749
7063
  min-width: 180px;
6750
7064
  max-height: 320px;
6751
7065
  overflow-y: auto;
6752
- background: var(--ngaf-chat-surface);
6753
- border: 1px solid var(--ngaf-chat-separator);
7066
+ background: var(--tplane-chat-surface);
7067
+ border: 1px solid var(--tplane-chat-separator);
6754
7068
  border-radius: 12px;
6755
- box-shadow: var(--ngaf-chat-shadow-lg);
7069
+ box-shadow: var(--tplane-chat-shadow-lg);
6756
7070
  padding: 4px;
6757
- z-index: 10;
7071
+ box-sizing: border-box;
6758
7072
  }
6759
7073
  .chat-select__option {
6760
7074
  display: flex;
@@ -6767,24 +7081,24 @@ const CHAT_SELECT_STYLES = `
6767
7081
  background: transparent;
6768
7082
  padding: 8px 10px;
6769
7083
  border-radius: 8px;
6770
- color: var(--ngaf-chat-text);
7084
+ color: var(--tplane-chat-text);
6771
7085
  font: inherit;
6772
- font-size: var(--ngaf-chat-font-size-sm);
7086
+ font-size: var(--tplane-chat-font-size-sm);
6773
7087
  cursor: pointer;
6774
7088
  }
6775
7089
  .chat-select__option-desc {
6776
- font-size: var(--ngaf-chat-font-size-xs);
6777
- color: var(--ngaf-chat-text-muted);
7090
+ font-size: var(--tplane-chat-font-size-xs);
7091
+ color: var(--tplane-chat-text-muted);
6778
7092
  line-height: 1.3;
6779
7093
  white-space: normal;
6780
7094
  }
6781
7095
  .chat-select__option:hover:not(:disabled),
6782
7096
  .chat-select__option:focus-visible {
6783
- background: var(--ngaf-chat-surface-alt);
7097
+ background: var(--tplane-chat-surface-alt);
6784
7098
  outline: none;
6785
7099
  }
6786
7100
  .chat-select__option.is-active {
6787
- background: var(--ngaf-chat-surface-alt);
7101
+ background: var(--tplane-chat-surface-alt);
6788
7102
  font-weight: 500;
6789
7103
  }
6790
7104
  .chat-select__option:disabled {
@@ -6795,16 +7109,16 @@ const CHAT_SELECT_STYLES = `
6795
7109
 
6796
7110
  // libs/chat/src/lib/primitives/chat-select/chat-select.component.ts
6797
7111
  // SPDX-License-Identifier: MIT
7112
+ // Unique listbox id per instance, for aria-controls (multiple selects per page).
7113
+ let nextChatSelectId = 0;
6798
7114
  /**
6799
- * Generic single-select dropdown. Designed to slot into the chat input pill
6800
- * (via [chatInputModelSelect]) but usable anywhere.
7115
+ * Generic single-select dropdown. The menu renders through the chat
7116
+ * connected-overlay primitive (a body-level portal), so it is never clipped by
7117
+ * an ancestor's `overflow` and never trapped by an ancestor `transform`.
6801
7118
  *
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
7119
+ * Inputs: options (required), value (two-way), placeholder, disabled, menuLabel,
7120
+ * panelClass (extra class(es) on the overlay pane — the menu is portaled, so
7121
+ * `::ng-deep chat-select .chat-select__menu` no longer reaches it).
6808
7122
  */
6809
7123
  class ChatSelectComponent {
6810
7124
  options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
@@ -6812,43 +7126,34 @@ class ChatSelectComponent {
6812
7126
  placeholder = input('Select', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
6813
7127
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
6814
7128
  menuLabel = input(undefined, ...(ngDevMode ? [{ debugName: "menuLabel" }] : []));
7129
+ panelClass = input('', ...(ngDevMode ? [{ debugName: "panelClass" }] : []));
6815
7130
  open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
7131
+ menuId = `chat-select-menu-${nextChatSelectId++}`;
7132
+ // Above-right preferred (input pill sits at the bottom), then below, then the
7133
+ // left-aligned variants. The positioner flips/clamps to keep it in view.
7134
+ overlayPositions = [
7135
+ { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -8 },
7136
+ { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 8 },
7137
+ { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -8 },
7138
+ { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 },
7139
+ ];
7140
+ panelClasses = computed(() => {
7141
+ const extra = this.panelClass();
7142
+ const list = Array.isArray(extra) ? extra : extra ? [extra] : [];
7143
+ return ['chat-select__overlay', ...list];
7144
+ }, ...(ngDevMode ? [{ debugName: "panelClasses" }] : []));
6816
7145
  currentLabel = computed(() => {
6817
7146
  const v = this.value();
6818
- const match = this.options().find((o) => o.value === v);
6819
- return match?.label ?? this.placeholder();
7147
+ return this.options().find((o) => o.value === v)?.label ?? this.placeholder();
6820
7148
  }, ...(ngDevMode ? [{ debugName: "currentLabel" }] : []));
6821
7149
  hostEl = inject(ElementRef).nativeElement;
6822
7150
  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
- });
7151
+ // The overlay primitive emits the pane element on attach; options live there
7152
+ // (portaled out of the host), so option queries go through it.
7153
+ menuPane = null;
7154
+ onAttached(pane) {
7155
+ this.menuPane = pane;
7156
+ this.focusOption(0);
6852
7157
  }
6853
7158
  toggle() {
6854
7159
  if (this.disabled())
@@ -6864,10 +7169,6 @@ class ChatSelectComponent {
6864
7169
  onTriggerKeydown(e) {
6865
7170
  if (this.disabled())
6866
7171
  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
7172
  if (e.key === 'Escape' && this.open()) {
6872
7173
  e.preventDefault();
6873
7174
  this.open.set(false);
@@ -6876,14 +7177,14 @@ class ChatSelectComponent {
6876
7177
  if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
6877
7178
  e.preventDefault();
6878
7179
  this.open.set(true);
6879
- requestAnimationFrame(() => this.focusOption(0));
7180
+ // focus happens in onAttached once the pane is live
6880
7181
  }
6881
7182
  }
6882
7183
  onMenuKeydown(e) {
6883
7184
  if (e.key === 'Escape') {
6884
7185
  e.preventDefault();
6885
7186
  this.open.set(false);
6886
- this.focusTrigger();
7187
+ this.queryTrigger()?.focus();
6887
7188
  return;
6888
7189
  }
6889
7190
  if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
@@ -6900,11 +7201,7 @@ class ChatSelectComponent {
6900
7201
  }
6901
7202
  }
6902
7203
  focusOption(index) {
6903
- const opts = this.queryOptions();
6904
- opts[index]?.focus();
6905
- }
6906
- focusTrigger() {
6907
- this.queryTrigger()?.focus();
7204
+ this.queryOptions()[index]?.focus();
6908
7205
  }
6909
7206
  moveFocus(dir) {
6910
7207
  const opts = this.queryOptions().filter((b) => !b.disabled);
@@ -6912,24 +7209,27 @@ class ChatSelectComponent {
6912
7209
  return;
6913
7210
  const active = this.document.activeElement;
6914
7211
  const idx = active ? opts.indexOf(active) : -1;
6915
- const next = (idx + dir + opts.length) % opts.length;
6916
- opts[next]?.focus();
7212
+ opts[(idx + dir + opts.length) % opts.length]?.focus();
6917
7213
  }
6918
7214
  queryOptions() {
6919
- return Array.from(this.hostEl.querySelectorAll('.chat-select__option'));
7215
+ const root = this.menuPane;
7216
+ return root ? Array.from(root.querySelectorAll('.chat-select__option')) : [];
6920
7217
  }
6921
7218
  queryTrigger() {
6922
7219
  return this.hostEl.querySelector('.chat-select__trigger');
6923
7220
  }
6924
7221
  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: `
7222
+ 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
7223
  <button
6927
7224
  type="button"
6928
7225
  class="chat-select__trigger"
7226
+ chatOverlayOrigin
7227
+ #origin="chatOverlayOrigin"
6929
7228
  [class.is-open]="open()"
6930
7229
  [disabled]="disabled()"
6931
7230
  [attr.aria-haspopup]="'listbox'"
6932
7231
  [attr.aria-expanded]="open()"
7232
+ [attr.aria-controls]="open() ? menuId : null"
6933
7233
  (click)="toggle()"
6934
7234
  (keydown)="onTriggerKeydown($event)"
6935
7235
  >
@@ -6938,11 +7238,21 @@ class ChatSelectComponent {
6938
7238
  <path d="M4 6l4 4 4-4" stroke="currentColor" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
6939
7239
  </svg>
6940
7240
  </button>
6941
- @if (open()) {
7241
+ <ng-template
7242
+ chatConnectedOverlay
7243
+ [chatOverlayOrigin]="origin"
7244
+ [chatOverlayOpen]="open()"
7245
+ [chatOverlayPositions]="overlayPositions"
7246
+ [chatOverlayPanelClass]="panelClasses()"
7247
+ (chatOverlayAttached)="onAttached($event)"
7248
+ (chatOverlayOutsideClick)="open.set(false)"
7249
+ (chatOverlayDetach)="open.set(false)"
7250
+ >
6942
7251
  <div
6943
7252
  class="chat-select__menu"
6944
7253
  role="listbox"
6945
7254
  tabindex="-1"
7255
+ [id]="menuId"
6946
7256
  [attr.aria-label]="menuLabel() ?? placeholder()"
6947
7257
  (keydown)="onMenuKeydown($event)"
6948
7258
  >
@@ -6963,19 +7273,22 @@ class ChatSelectComponent {
6963
7273
  </button>
6964
7274
  }
6965
7275
  </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 });
7276
+ </ng-template>
7277
+ `, 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
7278
  }
6969
7279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSelectComponent, decorators: [{
6970
7280
  type: Component,
6971
- args: [{ selector: 'chat-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
7281
+ args: [{ selector: 'chat-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ChatConnectedOverlayDirective, ChatOverlayOriginDirective], template: `
6972
7282
  <button
6973
7283
  type="button"
6974
7284
  class="chat-select__trigger"
7285
+ chatOverlayOrigin
7286
+ #origin="chatOverlayOrigin"
6975
7287
  [class.is-open]="open()"
6976
7288
  [disabled]="disabled()"
6977
7289
  [attr.aria-haspopup]="'listbox'"
6978
7290
  [attr.aria-expanded]="open()"
7291
+ [attr.aria-controls]="open() ? menuId : null"
6979
7292
  (click)="toggle()"
6980
7293
  (keydown)="onTriggerKeydown($event)"
6981
7294
  >
@@ -6984,11 +7297,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
6984
7297
  <path d="M4 6l4 4 4-4" stroke="currentColor" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" />
6985
7298
  </svg>
6986
7299
  </button>
6987
- @if (open()) {
7300
+ <ng-template
7301
+ chatConnectedOverlay
7302
+ [chatOverlayOrigin]="origin"
7303
+ [chatOverlayOpen]="open()"
7304
+ [chatOverlayPositions]="overlayPositions"
7305
+ [chatOverlayPanelClass]="panelClasses()"
7306
+ (chatOverlayAttached)="onAttached($event)"
7307
+ (chatOverlayOutsideClick)="open.set(false)"
7308
+ (chatOverlayDetach)="open.set(false)"
7309
+ >
6988
7310
  <div
6989
7311
  class="chat-select__menu"
6990
7312
  role="listbox"
6991
7313
  tabindex="-1"
7314
+ [id]="menuId"
6992
7315
  [attr.aria-label]="menuLabel() ?? placeholder()"
6993
7316
  (keydown)="onMenuKeydown($event)"
6994
7317
  >
@@ -7009,9 +7332,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
7009
7332
  </button>
7010
7333
  }
7011
7334
  </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 }] }] } });
7335
+ </ng-template>
7336
+ `, 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"] }]
7337
+ }], 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
7338
 
7016
7339
  // SPDX-License-Identifier: MIT
7017
7340
  const PACKAGE_NAME = '@threadplane/chat';
@@ -7513,7 +7836,7 @@ class A2uiDefaultFallbackComponent {
7513
7836
  <div class="a2ui-default-fallback__row"></div>
7514
7837
  </div>
7515
7838
  </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 });
7839
+ `, 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
7840
  }
7518
7841
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: A2uiDefaultFallbackComponent, decorators: [{
7519
7842
  type: Component,
@@ -7529,7 +7852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
7529
7852
  <div class="a2ui-default-fallback__row"></div>
7530
7853
  </div>
7531
7854
  </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"] }]
7855
+ `, 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
7856
  }] });
7534
7857
 
7535
7858
  // SPDX-License-Identifier: MIT
@@ -8070,7 +8393,7 @@ function isTraceEnabled() {
8070
8393
  function trace(...args) {
8071
8394
  if (isTraceEnabled()) {
8072
8395
  // eslint-disable-next-line no-console
8073
- console.debug('[ngaf-chat-stream]', ...args);
8396
+ console.debug('[tplane-chat-stream]', ...args);
8074
8397
  }
8075
8398
  }
8076
8399
 
@@ -9064,8 +9387,8 @@ class ChatComponent {
9064
9387
  return last?.role === 'assistant';
9065
9388
  }, ...(ngDevMode ? [{ debugName: "currentAssistantStreaming" }] : []));
9066
9389
  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
9390
+ // Inject the chat lib's root CSS custom properties (--tplane-chat-bg,
9391
+ // --tplane-chat-surface, --tplane-chat-radius-input, etc.) the first
9069
9392
  // time any chat composition is constructed. The module-eval side
9070
9393
  // effect that previously handled this is unreliable under
9071
9394
  // aggressive production tree-shaking — bundlers that don't see
@@ -9697,7 +10020,7 @@ class ChatComponent {
9697
10020
  </div>
9698
10021
  </div>
9699
10022
  }
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 });
10023
+ `, 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
10024
  }
9702
10025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatComponent, decorators: [{
9703
10026
  type: Component,
@@ -9881,7 +10204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
9881
10204
  </div>
9882
10205
  </div>
9883
10206
  }
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"] }]
10207
+ `, 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
10208
  }], 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
10209
 
9887
10210
  // libs/chat/src/lib/compositions/chat-popup/chat-popup.component.ts
@@ -9969,7 +10292,7 @@ class ChatPopupComponent {
9969
10292
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
9970
10293
  </chat>
9971
10294
  </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 });
10295
+ `, 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
10296
  }
9974
10297
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatPopupComponent, decorators: [{
9975
10298
  type: Component,
@@ -9994,7 +10317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
9994
10317
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
9995
10318
  </chat>
9996
10319
  </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"] }]
10320
+ `, 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
10321
  }], 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
10322
 
10000
10323
  // libs/chat/src/lib/compositions/chat-sidebar/chat-sidebar.component.ts
@@ -10030,8 +10353,8 @@ class ChatSidebarComponent {
10030
10353
  // for the full rationale. Idempotent + lifecycle-guaranteed.
10031
10354
  ensureChatRootStyles();
10032
10355
  // 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(() => {
10356
+ // (e.g. chat-debug) read --tplane-chat-occupy-right to leave room.
10357
+ effect((onCleanup) => {
10035
10358
  if (typeof document === 'undefined')
10036
10359
  return;
10037
10360
  const html = document.documentElement;
@@ -10041,6 +10364,11 @@ class ChatSidebarComponent {
10041
10364
  else {
10042
10365
  delete html.dataset['threadplaneChatSidebar'];
10043
10366
  }
10367
+ // Clear the global claim when the sidebar is destroyed (not just closed).
10368
+ // Without this, unmounting while open (e.g. switching demo modes) leaves
10369
+ // data-threadplane-chat-sidebar="open" stuck on <html>, so peer panels
10370
+ // keep reserving --tplane-chat-occupy-right and a phantom gap persists.
10371
+ onCleanup(() => { delete html.dataset['threadplaneChatSidebar']; });
10044
10372
  });
10045
10373
  effect((onCleanup) => {
10046
10374
  const closeOnEscape = this.closeOnEscape();
@@ -10087,7 +10415,7 @@ class ChatSidebarComponent {
10087
10415
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
10088
10416
  </chat>
10089
10417
  </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 });
10418
+ `, 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
10419
  }
10092
10420
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSidebarComponent, decorators: [{
10093
10421
  type: Component,
@@ -10121,7 +10449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
10121
10449
  <ng-content select="[chatWelcomeSuggestions]" chatWelcomeSuggestions />
10122
10450
  </chat>
10123
10451
  </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"] }]
10452
+ `, 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
10453
  }], 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
10454
 
10127
10455
  // libs/chat/src/lib/compositions/chat-timeline-slider/chat-timeline-slider.component.ts
@@ -10172,7 +10500,7 @@ class ChatTimelineSliderComponent {
10172
10500
  }
10173
10501
  </ul>
10174
10502
  }
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 });
10503
+ `, 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
10504
  }
10177
10505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatTimelineSliderComponent, decorators: [{
10178
10506
  type: Component,
@@ -10206,7 +10534,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
10206
10534
  }
10207
10535
  </ul>
10208
10536
  }
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"] }]
10537
+ `, 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
10538
  }], 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
10539
 
10212
10540
  // libs/chat/src/lib/styles/chat-sidenav.styles.ts
@@ -10232,10 +10560,10 @@ const CHAT_SIDENAV_STYLES = `
10232
10560
  z-index: 100;
10233
10561
  }
10234
10562
  :host([data-mode="expanded"]) {
10235
- width: var(--ngaf-chat-sidenav-width-expanded);
10563
+ width: var(--tplane-chat-sidenav-width-expanded);
10236
10564
  }
10237
10565
  :host([data-mode="collapsed"]) {
10238
- width: var(--ngaf-chat-sidenav-width-collapsed);
10566
+ width: var(--tplane-chat-sidenav-width-collapsed);
10239
10567
  }
10240
10568
  :host([data-mode="expanded"]) .chat-sidenav {
10241
10569
  width: 100%;
@@ -10248,8 +10576,8 @@ const CHAT_SIDENAV_STYLES = `
10248
10576
  top: 0;
10249
10577
  left: 0;
10250
10578
  bottom: 0;
10251
- width: var(--ngaf-chat-sidenav-width-drawer);
10252
- z-index: var(--ngaf-chat-z-drawer, 1001);
10579
+ width: var(--tplane-chat-sidenav-width-drawer);
10580
+ z-index: var(--tplane-chat-z-drawer, 1001);
10253
10581
  }
10254
10582
  :host([data-mode="drawer"][data-open="true"]) {
10255
10583
  box-shadow: 8px 0 32px rgba(0, 0, 0, 0.18);
@@ -10258,8 +10586,8 @@ const CHAT_SIDENAV_STYLES = `
10258
10586
  display: flex;
10259
10587
  flex-direction: column;
10260
10588
  height: 100%;
10261
- background: var(--ngaf-chat-bg);
10262
- border-right: 1px solid var(--ngaf-chat-separator);
10589
+ background: var(--tplane-chat-bg);
10590
+ border-right: 1px solid var(--tplane-chat-separator);
10263
10591
  box-sizing: border-box;
10264
10592
  overflow: hidden;
10265
10593
  }
@@ -10274,7 +10602,7 @@ const CHAT_SIDENAV_STYLES = `
10274
10602
  }
10275
10603
  .chat-sidenav__header {
10276
10604
  flex-shrink: 0;
10277
- padding: var(--ngaf-chat-space-3);
10605
+ padding: var(--tplane-chat-space-3);
10278
10606
  }
10279
10607
  /* Collapse the header slot when the consumer doesn't project content
10280
10608
  * — matches the chat-window pattern. Avoids 24px of dead space above
@@ -10287,15 +10615,15 @@ const CHAT_SIDENAV_STYLES = `
10287
10615
  align-items: center;
10288
10616
  justify-content: space-between;
10289
10617
  gap: 4px;
10290
- padding: var(--ngaf-chat-space-2) var(--ngaf-chat-space-3);
10291
- border-bottom: 1px solid var(--ngaf-chat-separator);
10618
+ padding: var(--tplane-chat-space-2) var(--tplane-chat-space-3);
10619
+ border-bottom: 1px solid var(--tplane-chat-separator);
10292
10620
  }
10293
10621
  :host([data-mode="collapsed"]) .chat-sidenav__topbar {
10294
10622
  flex-direction: column;
10295
10623
  align-items: center;
10296
10624
  justify-content: center;
10297
10625
  gap: 4px;
10298
- padding: var(--ngaf-chat-space-2) 0;
10626
+ padding: var(--tplane-chat-space-2) 0;
10299
10627
  }
10300
10628
  .chat-sidenav__topbar .chat-sidenav__action--close {
10301
10629
  width: 36px;
@@ -10313,7 +10641,7 @@ const CHAT_SIDENAV_STYLES = `
10313
10641
  border: 0;
10314
10642
  padding: 12px 18px;
10315
10643
  border-radius: 8px;
10316
- font-size: var(--ngaf-chat-font-size-sm);
10644
+ font-size: var(--tplane-chat-font-size-sm);
10317
10645
  font-weight: 600;
10318
10646
  display: flex;
10319
10647
  align-items: center;
@@ -10322,7 +10650,7 @@ const CHAT_SIDENAV_STYLES = `
10322
10650
  width: 100%;
10323
10651
  }
10324
10652
  .chat-sidenav__action--new:focus-visible {
10325
- outline: 2px solid var(--ngaf-chat-primary);
10653
+ outline: 2px solid var(--tplane-chat-primary);
10326
10654
  outline-offset: 2px;
10327
10655
  }
10328
10656
  /* Collapsed mode: shrink to 32×32 icon-only square. */
@@ -10341,11 +10669,11 @@ const CHAT_SIDENAV_STYLES = `
10341
10669
  display: flex;
10342
10670
  flex-direction: column;
10343
10671
  gap: 4px;
10344
- padding: var(--ngaf-chat-space-3);
10672
+ padding: var(--tplane-chat-space-3);
10345
10673
  }
10346
10674
  :host([data-mode="collapsed"]) .chat-sidenav__actions {
10347
10675
  align-items: center;
10348
- padding: var(--ngaf-chat-space-2);
10676
+ padding: var(--tplane-chat-space-2);
10349
10677
  }
10350
10678
  .chat-sidenav__action {
10351
10679
  display: flex;
@@ -10355,17 +10683,17 @@ const CHAT_SIDENAV_STYLES = `
10355
10683
  padding: 8px 12px;
10356
10684
  border: 0;
10357
10685
  background: transparent;
10358
- color: var(--ngaf-chat-text);
10686
+ color: var(--tplane-chat-text);
10359
10687
  border-radius: 8px;
10360
10688
  cursor: pointer;
10361
10689
  font-family: inherit;
10362
- font-size: var(--ngaf-chat-font-size-sm);
10690
+ font-size: var(--tplane-chat-font-size-sm);
10363
10691
  font-weight: 400;
10364
10692
  text-align: left;
10365
10693
  }
10366
- .chat-sidenav__action:hover { background: var(--ngaf-chat-surface-alt); }
10694
+ .chat-sidenav__action:hover { background: var(--tplane-chat-surface-alt); }
10367
10695
  .chat-sidenav__action:focus-visible {
10368
- outline: 2px solid var(--ngaf-chat-primary);
10696
+ outline: 2px solid var(--tplane-chat-primary);
10369
10697
  outline-offset: 2px;
10370
10698
  }
10371
10699
  :host([data-mode="collapsed"]) .chat-sidenav__action {
@@ -10383,15 +10711,15 @@ const CHAT_SIDENAV_STYLES = `
10383
10711
  collapsed-mode overrides (which are :host-prefixed, higher
10384
10712
  specificity, so they still apply). */
10385
10713
  .chat-sidenav__action.chat-sidenav__action--new {
10386
- background: var(--ngaf-chat-text);
10387
- color: var(--ngaf-chat-bg);
10714
+ background: var(--tplane-chat-text);
10715
+ color: var(--tplane-chat-bg);
10388
10716
  border-radius: 8px;
10389
10717
  padding: 12px 18px;
10390
10718
  font-weight: 600;
10391
- font-size: var(--ngaf-chat-font-size-sm);
10719
+ font-size: var(--tplane-chat-font-size-sm);
10392
10720
  }
10393
10721
  .chat-sidenav__action.chat-sidenav__action--new:hover {
10394
- background: var(--ngaf-chat-text);
10722
+ background: var(--tplane-chat-text);
10395
10723
  filter: brightness(0.92);
10396
10724
  }
10397
10725
  .chat-sidenav__action-icon {
@@ -10411,7 +10739,7 @@ const CHAT_SIDENAV_STYLES = `
10411
10739
  .chat-sidenav__threads-heading {
10412
10740
  padding: 8px 12px 4px;
10413
10741
  font-size: 11px;
10414
- color: var(--ngaf-chat-text-muted);
10742
+ color: var(--tplane-chat-text-muted);
10415
10743
  text-transform: uppercase;
10416
10744
  letter-spacing: 0.4px;
10417
10745
  }
@@ -10423,7 +10751,7 @@ const CHAT_SIDENAV_STYLES = `
10423
10751
  align-items: center;
10424
10752
  justify-content: space-between;
10425
10753
  padding: 10px 12px;
10426
- border-top: 1px solid var(--ngaf-chat-separator);
10754
+ border-top: 1px solid var(--tplane-chat-separator);
10427
10755
  gap: 8px;
10428
10756
  flex-shrink: 0;
10429
10757
  }
@@ -10444,18 +10772,18 @@ const CHAT_SIDENAV_STYLES = `
10444
10772
  border: 0;
10445
10773
  border-radius: 8px;
10446
10774
  background: transparent;
10447
- color: var(--ngaf-chat-text-muted);
10775
+ color: var(--tplane-chat-text-muted);
10448
10776
  cursor: pointer;
10449
10777
  font: inherit;
10450
10778
  font-size: 12px;
10451
10779
  font-weight: 500;
10452
10780
  }
10453
10781
  .chat-sidenav__debug:hover {
10454
- background: var(--ngaf-chat-surface-alt);
10455
- color: var(--ngaf-chat-text);
10782
+ background: var(--tplane-chat-surface-alt);
10783
+ color: var(--tplane-chat-text);
10456
10784
  }
10457
10785
  .chat-sidenav__debug:focus-visible {
10458
- outline: 2px solid var(--ngaf-chat-primary);
10786
+ outline: 2px solid var(--tplane-chat-primary);
10459
10787
  outline-offset: 2px;
10460
10788
  }
10461
10789
  .chat-sidenav__debug-dot {
@@ -10486,15 +10814,15 @@ const CHAT_SIDENAV_STYLES = `
10486
10814
  border-radius: 8px;
10487
10815
  border: 0;
10488
10816
  background: transparent;
10489
- color: var(--ngaf-chat-text-muted);
10817
+ color: var(--tplane-chat-text-muted);
10490
10818
  cursor: pointer;
10491
10819
  display: flex;
10492
10820
  align-items: center;
10493
10821
  justify-content: center;
10494
10822
  }
10495
10823
  .chat-sidenav__toggle:hover {
10496
- background: var(--ngaf-chat-surface-alt);
10497
- color: var(--ngaf-chat-text);
10824
+ background: var(--tplane-chat-surface-alt);
10825
+ color: var(--tplane-chat-text);
10498
10826
  }
10499
10827
  /* Collapsed mode: footer becomes a vertical stack; debug stays visible. */
10500
10828
  :host([data-mode="collapsed"]) .chat-sidenav__footer {
@@ -10540,18 +10868,18 @@ const CHAT_SIDENAV_STYLES = `
10540
10868
  border: 0;
10541
10869
  border-radius: 8px;
10542
10870
  background: transparent;
10543
- color: var(--ngaf-chat-text);
10871
+ color: var(--tplane-chat-text);
10544
10872
  font: inherit;
10545
- font-size: var(--ngaf-chat-font-size-sm);
10873
+ font-size: var(--tplane-chat-font-size-sm);
10546
10874
  text-align: left;
10547
10875
  cursor: pointer;
10548
10876
  }
10549
10877
  .chat-sidenav__archived-heading:hover {
10550
- background: var(--ngaf-chat-surface-alt);
10551
- color: var(--ngaf-chat-text);
10878
+ background: var(--tplane-chat-surface-alt);
10879
+ color: var(--tplane-chat-text);
10552
10880
  }
10553
10881
  .chat-sidenav__archived-heading:focus-visible {
10554
- outline: 2px solid var(--ngaf-chat-primary);
10882
+ outline: 2px solid var(--tplane-chat-primary);
10555
10883
  outline-offset: 2px;
10556
10884
  }
10557
10885
  .chat-sidenav__archived-chevron {
@@ -10565,8 +10893,8 @@ const CHAT_SIDENAV_STYLES = `
10565
10893
  }
10566
10894
  .chat-sidenav__archived-empty {
10567
10895
  padding: 8px 12px;
10568
- color: var(--ngaf-chat-text-muted);
10569
- font-size: var(--ngaf-chat-font-size-sm);
10896
+ color: var(--tplane-chat-text-muted);
10897
+ font-size: var(--tplane-chat-font-size-sm);
10570
10898
  }
10571
10899
  :host([data-mode="collapsed"]) .chat-sidenav__archived { display: none; }
10572
10900
  .chat-sidenav__projects { flex-shrink: 0; }
@@ -11018,7 +11346,7 @@ class ChatSidenavComponent {
11018
11346
  </div>
11019
11347
  </nav>
11020
11348
  <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 });
11349
+ `, 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
11350
  }
11023
11351
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSidenavComponent, decorators: [{
11024
11352
  type: Component,
@@ -11262,7 +11590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11262
11590
  </div>
11263
11591
  </nav>
11264
11592
  <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"] }]
11593
+ `, 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
11594
  }], 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
11595
  read: ViewContainerRef,
11268
11596
  }, isSignal: true }] }] } });
@@ -11293,7 +11621,7 @@ class ChatSidenavScrimComponent {
11293
11621
  (click)="dismiss.emit()"
11294
11622
  ></button>
11295
11623
  }
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 });
11624
+ `, 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
11625
  }
11298
11626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatSidenavScrimComponent, decorators: [{
11299
11627
  type: Component,
@@ -11306,7 +11634,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11306
11634
  (click)="dismiss.emit()"
11307
11635
  ></button>
11308
11636
  }
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"] }]
11637
+ `, 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
11638
  }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], dismiss: [{ type: i0.Output, args: ["dismiss"] }] } });
11311
11639
 
11312
11640
  // SPDX-License-Identifier: MIT
@@ -11357,7 +11685,7 @@ class ChatInterruptPanelComponent {
11357
11685
  </div>
11358
11686
  </div>
11359
11687
  }
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 });
11688
+ `, 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
11689
  }
11362
11690
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatInterruptPanelComponent, decorators: [{
11363
11691
  type: Component,
@@ -11377,7 +11705,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11377
11705
  </div>
11378
11706
  </div>
11379
11707
  }
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"] }]
11708
+ `, 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
11709
  }], propDecorators: { agent: [{ type: i0.Input, args: [{ isSignal: true, alias: "agent", required: true }] }], action: [{ type: i0.Output, args: ["action"] }] } });
11382
11710
 
11383
11711
  // SPDX-License-Identifier: MIT
@@ -11465,7 +11793,7 @@ class ChatApprovalCardComponent {
11465
11793
  <button type="button" class="btn btn-primary" (click)="emit('approve')">Approve</button>
11466
11794
  </div>
11467
11795
  </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 });
11796
+ `, 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
11797
  }
11470
11798
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ChatApprovalCardComponent, decorators: [{
11471
11799
  type: Component,
@@ -11490,7 +11818,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
11490
11818
  <button type="button" class="btn btn-primary" (click)="emit('approve')">Approve</button>
11491
11819
  </div>
11492
11820
  </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"] }]
11821
+ `, 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
11822
  }], 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
11823
 
11496
11824
  // SPDX-License-Identifier: MIT
@@ -12813,5 +13141,5 @@ function mockAgent(opts = {}) {
12813
13141
  * Generated bundle index. Do not edit.
12814
13142
  */
12815
13143
 
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 };
13144
+ 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
13145
  //# sourceMappingURL=threadplane-chat.mjs.map