@atelier-ui/angular 0.1.1 → 0.1.3

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.
@@ -52,15 +52,15 @@ class LlmButton {
52
52
  });
53
53
  }
54
54
  }
55
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmButton, isStandalone: true, selector: "llm-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "button" }, properties: { "class": "hostClasses()", "attr.aria-disabled": "isDisabled()", "attr.disabled": "isDisabled() ? true : null" } }, ngImport: i0, template: `
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmButton, isStandalone: true, selector: "llm-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "button" }, properties: { "class": "hostClasses()", "attr.aria-disabled": "isDisabled()", "attr.disabled": "isDisabled() ? true : null" } }, ngImport: i0, template: `
57
57
  @if (loading()) {
58
58
  <span class="spinner" aria-hidden="true"></span>
59
59
  }
60
60
  <ng-content />
61
61
  `, isInline: true, styles: [".llm-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--ui-spacing-2);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);line-height:var(--ui-line-height-tight);letter-spacing:-.01em;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),color var(--ui-transition-fast),box-shadow var(--ui-transition-fast);white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none}.llm-button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.llm-button.variant-primary{background-color:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}.llm-button.variant-primary:hover:not(.is-disabled){background-color:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}.llm-button.variant-primary:active:not(.is-disabled){background-color:var(--ui-color-primary-active);border-color:var(--ui-color-primary-active)}.llm-button.variant-secondary{background-color:var(--ui-color-secondary);color:var(--ui-color-text-on-secondary);border-color:var(--ui-color-secondary)}.llm-button.variant-secondary:hover:not(.is-disabled){background-color:var(--ui-color-secondary-hover);border-color:var(--ui-color-secondary-hover)}.llm-button.variant-secondary:active:not(.is-disabled){background-color:var(--ui-color-secondary-active);border-color:var(--ui-color-secondary-active)}.llm-button.variant-outline{background-color:var(--ui-color-surface-raised);color:var(--ui-color-primary);border-color:var(--ui-color-border-strong)}.llm-button.variant-outline:hover:not(.is-disabled){background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-primary)}.llm-button.variant-outline:active:not(.is-disabled){background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-primary-active)}.llm-button.variant-danger{background-color:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger);box-shadow:inset 0 0 0 1px #0000002e}.llm-button.variant-danger:hover:not(.is-disabled){background-color:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover);box-shadow:inset 0 0 0 1px #0000002e}.llm-button.variant-danger:active:not(.is-disabled){background-color:var(--ui-color-danger-active);border-color:var(--ui-color-danger-active);box-shadow:inset 0 0 0 1px #0000002e}.llm-button.size-sm{padding:.375rem .875rem;font-size:var(--ui-font-size-sm);min-height:2rem}.llm-button.size-md{padding:.5625rem 1.125rem;font-size:var(--ui-font-size-md);min-height:2.5rem}.llm-button.size-lg{padding:.75rem 1.5rem;font-size:var(--ui-font-size-lg);min-height:3rem}.llm-button.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed;pointer-events:none}.spinner{display:inline-block;width:1em;height:1em;border:1.5px solid currentColor;border-top-color:transparent;border-radius:var(--ui-radius-full);animation:llm-spin .7s linear infinite;flex-shrink:0}@keyframes llm-spin{to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmButton, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmButton, decorators: [{
64
64
  type: Component,
65
65
  args: [{ selector: 'llm-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
66
66
  @if (loading()) {
@@ -108,10 +108,10 @@ class LlmCard {
108
108
  */
109
109
  role = input(undefined, ...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
110
110
  hostClasses = computed(() => `variant-${this.variant()} padding-${this.padding()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmCard, isStandalone: true, selector: "llm-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
111
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmCard, isStandalone: true, selector: "llm-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "role() || null" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCard, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCard, decorators: [{
115
115
  type: Component,
116
116
  args: [{ selector: 'llm-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, host: {
117
117
  '[class]': 'hostClasses()',
@@ -127,10 +127,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
127
127
  * ```
128
128
  */
129
129
  class LlmCardHeader {
130
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmCardHeader, isStandalone: true, selector: "llm-card-header", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmCardHeader, isStandalone: true, selector: "llm-card-header", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
132
132
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardHeader, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCardHeader, decorators: [{
134
134
  type: Component,
135
135
  args: [{ selector: 'llm-card-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"] }]
136
136
  }] });
@@ -143,10 +143,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
143
143
  * ```
144
144
  */
145
145
  class LlmCardContent {
146
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
147
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmCardContent, isStandalone: true, selector: "llm-card-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmCardContent, isStandalone: true, selector: "llm-card-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardContent, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCardContent, decorators: [{
150
150
  type: Component,
151
151
  args: [{ selector: 'llm-card-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"] }]
152
152
  }] });
@@ -161,10 +161,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
161
161
  * ```
162
162
  */
163
163
  class LlmCardFooter {
164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
165
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmCardFooter, isStandalone: true, selector: "llm-card-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCardFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmCardFooter, isStandalone: true, selector: "llm-card-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
166
166
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardFooter, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCardFooter, decorators: [{
168
168
  type: Component,
169
169
  args: [{ selector: 'llm-card-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface-raised);overflow:hidden}.llm-card.variant-elevated{box-shadow:var(--ui-shadow-sm);border:1px solid var(--ui-color-border)}.llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface-raised)}.llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}.llm-card.padding-none .llm-card-header,.llm-card.padding-none .llm-card-content,.llm-card.padding-none .llm-card-footer{padding:0}.llm-card.padding-sm .llm-card-header,.llm-card.padding-sm .llm-card-content,.llm-card.padding-sm .llm-card-footer{padding:var(--ui-spacing-4)}.llm-card.padding-md .llm-card-header,.llm-card.padding-md .llm-card-content,.llm-card.padding-md .llm-card-footer{padding:var(--ui-spacing-6)}.llm-card.padding-lg .llm-card-header,.llm-card.padding-lg .llm-card-content,.llm-card.padding-lg .llm-card-footer{padding:var(--ui-spacing-8)}.llm-card-header{display:block;font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);border-bottom:1px solid var(--ui-color-border);letter-spacing:var(--ui-letter-spacing-tight)}.llm-card-content{display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}.llm-card-footer{display:flex;align-items:center;gap:var(--ui-spacing-3);border-top:1px solid var(--ui-color-border)}\n"] }]
170
170
  }] });
@@ -193,15 +193,15 @@ class LlmBadge {
193
193
  size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
194
194
  hostClasses = computed(() => `variant-${this.variant()} size-${this.size()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
195
195
  variantIcon = computed(() => VARIANT_ICONS$1[this.variant()], ...(ngDevMode ? [{ debugName: "variantIcon" }] : /* istanbul ignore next */ []));
196
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
197
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmBadge, isStandalone: true, selector: "llm-badge", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
196
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
197
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmBadge, isStandalone: true, selector: "llm-badge", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
198
198
  @if (variantIcon(); as icon) {
199
199
  <span class="variant-icon" aria-hidden="true">{{ icon }}</span>
200
200
  }
201
201
  <ng-content />
202
202
  `, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ui-radius-full);font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-semibold);line-height:var(--ui-line-height-tight);white-space:nowrap;letter-spacing:.01em}:host(.size-sm){padding:.1875rem var(--ui-spacing-2);font-size:var(--ui-font-size-xs)}:host(.size-md){padding:.3125rem var(--ui-spacing-3);font-size:var(--ui-font-size-sm)}:host(.variant-default){background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text-muted);border:1px solid var(--ui-color-border)}:host(.variant-success){background-color:var(--ui-color-success-bg);color:var(--ui-color-success-text);border:1px solid color-mix(in srgb,var(--ui-color-success-text) 25%,transparent)}:host(.variant-warning){background-color:var(--ui-color-warning-bg);color:var(--ui-color-warning-text);border:1px solid color-mix(in srgb,var(--ui-color-warning-text) 25%,transparent)}:host(.variant-danger){background-color:var(--ui-color-danger-bg);color:var(--ui-color-danger-text);border:1px solid color-mix(in srgb,var(--ui-color-danger-text) 25%,transparent)}:host(.variant-info){background-color:var(--ui-color-info-bg);color:var(--ui-color-info-text);border:1px solid color-mix(in srgb,var(--ui-color-info-text) 25%,transparent)}.variant-icon{font-weight:700;margin-right:.3em;line-height:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
203
203
  }
204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBadge, decorators: [{
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmBadge, decorators: [{
205
205
  type: Component,
206
206
  args: [{ selector: 'llm-badge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
207
207
  @if (variantIcon(); as icon) {
@@ -254,10 +254,10 @@ class LlmIcon {
254
254
  label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
255
255
  glyph = computed(() => ICON_GLYPHS[this.name()], ...(ngDevMode ? [{ debugName: "glyph" }] : /* istanbul ignore next */ []));
256
256
  hostClasses = computed(() => `size-${this.size()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
257
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmIcon, deps: [], target: i0.ɵɵFactoryTarget.Component });
258
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmIcon, isStandalone: true, selector: "llm-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "label() ? \"img\" : null", "attr.aria-label": "label() || null", "attr.aria-hidden": "label() ? null : \"true\"" } }, ngImport: i0, template: `{{ glyph() }}`, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-medium);line-height:1;color:currentColor;-webkit-user-select:none;user-select:none;flex-shrink:0}:host(.size-sm){width:1rem;height:1rem;font-size:var(--ui-font-size-sm)}:host(.size-md){width:1.25rem;height:1.25rem;font-size:var(--ui-font-size-md)}:host(.size-lg){width:1.5rem;height:1.5rem;font-size:var(--ui-font-size-lg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
257
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmIcon, deps: [], target: i0.ɵɵFactoryTarget.Component });
258
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmIcon, isStandalone: true, selector: "llm-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "label() ? \"img\" : null", "attr.aria-label": "label() || null", "attr.aria-hidden": "label() ? null : \"true\"" } }, ngImport: i0, template: `{{ glyph() }}`, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-medium);line-height:1;color:currentColor;-webkit-user-select:none;user-select:none;flex-shrink:0}:host(.size-sm){width:1rem;height:1rem;font-size:var(--ui-font-size-sm)}:host(.size-md){width:1.25rem;height:1.25rem;font-size:var(--ui-font-size-md)}:host(.size-lg){width:1.5rem;height:1.5rem;font-size:var(--ui-font-size-lg)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmIcon, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmIcon, decorators: [{
261
261
  type: Component,
262
262
  args: [{ selector: 'llm-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `{{ glyph() }}`, host: {
263
263
  '[class]': 'hostClasses()',
@@ -320,8 +320,8 @@ class LlmInput {
320
320
  const target = event.target;
321
321
  this.value.set(target.value);
322
322
  }
323
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmInput, isStandalone: true, selector: "llm-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", 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 }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
324
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmInput, isStandalone: true, selector: "llm-input", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", 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 }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
325
325
  <div class="input-field">
326
326
  <input
327
327
  [type]="type()"
@@ -346,7 +346,7 @@ class LlmInput {
346
346
  }
347
347
  `, isInline: true, styles: [".llm-input{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.llm-input input{display:block;width:100%;min-height:2.5rem;padding:.625rem var(--ui-spacing-4);font-size:inherit;font-family:inherit;line-height:var(--ui-line-height-normal);color:var(--ui-color-text);background-color:var(--ui-color-input-bg);border:1px solid var(--ui-color-input-border);border-radius:var(--ui-radius-md);transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast),background-color var(--ui-transition-fast);outline:none;box-sizing:border-box}.llm-input input::placeholder{color:var(--ui-color-placeholder)}.llm-input input:hover:not(:disabled):not(:read-only){border-color:var(--ui-color-input-border-hover)}.llm-input input:focus{border-color:var(--ui-color-input-border-focus);background-color:var(--ui-color-input-bg-focus);box-shadow:var(--ui-focus-ring)}.llm-input .input-field{position:relative}.llm-input.is-invalid input{border-color:var(--ui-color-input-border-invalid);padding-right:2.25rem}.llm-input.is-invalid input:focus{border-color:var(--ui-color-input-border-invalid);box-shadow:0 0 0 2px var(--ui-color-surface),0 0 0 4px var(--ui-color-danger)}.llm-input.is-invalid .input-field:before{content:\"\\2715\";position:absolute;top:50%;transform:translateY(-50%);right:.875rem;color:var(--ui-color-danger);font-weight:700;line-height:1;pointer-events:none}.llm-input.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-input.is-disabled input{cursor:not-allowed}.llm-input.is-readonly input{background-color:var(--ui-color-surface-sunken);cursor:default}.llm-input .errors{margin-top:var(--ui-spacing-2)}.llm-input .error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text);line-height:var(--ui-line-height-normal)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
348
348
  }
349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmInput, decorators: [{
349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmInput, decorators: [{
350
350
  type: Component,
351
351
  args: [{ selector: 'llm-input', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
352
352
  <div class="input-field">
@@ -433,8 +433,8 @@ class LlmTextarea {
433
433
  const target = event.target;
434
434
  this.value.set(target.value);
435
435
  }
436
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTextarea, deps: [], target: i0.ɵɵFactoryTarget.Component });
437
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmTextarea, isStandalone: true, selector: "llm-textarea", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", 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 }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, autoResize: { classPropertyName: "autoResize", publicName: "autoResize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
436
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTextarea, deps: [], target: i0.ɵɵFactoryTarget.Component });
437
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmTextarea, isStandalone: true, selector: "llm-textarea", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", 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 }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, autoResize: { classPropertyName: "autoResize", publicName: "autoResize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
438
438
  <div class="textarea-field">
439
439
  <textarea
440
440
  [value]="value()"
@@ -461,7 +461,7 @@ class LlmTextarea {
461
461
  }
462
462
  `, isInline: true, styles: [".llm-textarea{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.llm-textarea textarea{display:block;width:100%;padding:.625rem var(--ui-spacing-4);font-size:inherit;font-family:inherit;line-height:var(--ui-line-height-normal);color:var(--ui-color-text);background-color:var(--ui-color-input-bg);border:1px solid var(--ui-color-input-border);border-radius:var(--ui-radius-md);transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast),background-color var(--ui-transition-fast);outline:none;box-sizing:border-box;resize:vertical;min-height:5rem}.llm-textarea textarea::placeholder{color:var(--ui-color-placeholder)}.llm-textarea textarea:hover:not(:disabled):not(:read-only){border-color:var(--ui-color-input-border-hover)}.llm-textarea textarea:focus{border-color:var(--ui-color-input-border-focus);background-color:var(--ui-color-input-bg-focus);box-shadow:var(--ui-focus-ring)}.llm-textarea .textarea-field{position:relative}.llm-textarea.is-invalid textarea{border-color:var(--ui-color-input-border-invalid);padding-right:2.25rem}.llm-textarea.is-invalid textarea:focus{border-color:var(--ui-color-input-border-invalid);box-shadow:0 0 0 2px var(--ui-color-surface),0 0 0 4px var(--ui-color-danger)}.llm-textarea.is-invalid .textarea-field:before{content:\"\\2715\";position:absolute;top:.75rem;right:.875rem;color:var(--ui-color-danger);font-weight:700;line-height:1;pointer-events:none}.llm-textarea.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-textarea.is-disabled textarea{cursor:not-allowed}.llm-textarea.is-readonly textarea{background-color:var(--ui-color-surface-sunken);cursor:default}.llm-textarea.is-auto-resize textarea{resize:none;overflow:hidden}.llm-textarea .errors{margin-top:var(--ui-spacing-2)}.llm-textarea .error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text);line-height:var(--ui-line-height-normal)}\n"], dependencies: [{ kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
463
463
  }
464
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTextarea, decorators: [{
464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTextarea, decorators: [{
465
465
  type: Component,
466
466
  args: [{ selector: 'llm-textarea', standalone: true, imports: [TextFieldModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
467
467
  <div class="textarea-field">
@@ -554,8 +554,8 @@ class LlmCheckbox {
554
554
  const target = event.target;
555
555
  this.checked.set(target.checked);
556
556
  }
557
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
558
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmCheckbox, isStandalone: true, selector: "llm-checkbox", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "nativeInput", first: true, predicate: ["nativeInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
557
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
558
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmCheckbox, isStandalone: true, selector: "llm-checkbox", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "nativeInput", first: true, predicate: ["nativeInput"], descendants: true, isSignal: true }], ngImport: i0, template: `
559
559
  <label [attr.for]="inputId">
560
560
  <input
561
561
  #nativeInput
@@ -581,7 +581,7 @@ class LlmCheckbox {
581
581
  }
582
582
  `, isInline: true, styles: [".llm-checkbox{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.llm-checkbox label{display:inline-flex;align-items:center;gap:var(--ui-spacing-3);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);min-height:1.5rem}.llm-checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.25rem;height:1.25rem;border:1.5px solid var(--ui-color-border-strong);border-radius:var(--ui-radius-sm);background-color:var(--ui-color-input-bg);cursor:pointer;position:relative;transition:border-color var(--ui-transition-fast),background-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast);outline:none}.llm-checkbox input[type=checkbox]:hover:not(:disabled){border-color:var(--ui-color-primary);background-color:var(--ui-color-primary-light)}.llm-checkbox input[type=checkbox]:focus-visible{box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-primary)}.llm-checkbox input[type=checkbox]:checked{background-color:var(--ui-color-primary);border-color:var(--ui-color-primary)}.llm-checkbox input[type=checkbox]:checked:after{content:\"\";position:absolute;inset:0;margin:auto;width:.35rem;height:.6rem;border:2px solid var(--ui-color-text-on-primary);border-top:none;border-left:none;transform:rotate(45deg) translate(-1px,-1px);animation:llm-check-pop var(--ui-duration-normal) var(--ui-ease-spring)}.llm-checkbox input[type=checkbox]:indeterminate{background-color:var(--ui-color-primary);border-color:var(--ui-color-primary)}.llm-checkbox input[type=checkbox]:indeterminate:after{content:\"\";position:absolute;inset:0;margin:auto;width:.5rem;height:2px;background-color:var(--ui-color-text-on-primary);animation:llm-check-pop var(--ui-duration-normal) var(--ui-ease-spring)}.llm-checkbox.is-invalid input[type=checkbox]{border-color:var(--ui-color-input-border-invalid)}.llm-checkbox.is-invalid input[type=checkbox]:focus-visible{border-color:var(--ui-color-input-border-invalid);box-shadow:0 0 0 2px var(--ui-color-surface),0 0 0 4px var(--ui-color-danger)}.llm-checkbox.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-checkbox.is-disabled label,.llm-checkbox.is-disabled input[type=checkbox]{cursor:not-allowed}.llm-checkbox .errors{margin-top:var(--ui-spacing-2)}.llm-checkbox .error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text);line-height:var(--ui-line-height-normal)}@keyframes llm-check-pop{0%{transform:rotate(45deg) translate(-1px,-1px) scale(0)}60%{transform:rotate(45deg) translate(-1px,-1px) scale(1.15)}to{transform:rotate(45deg) translate(-1px,-1px) scale(1)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
583
583
  }
584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCheckbox, decorators: [{
584
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCheckbox, decorators: [{
585
585
  type: Component,
586
586
  args: [{ selector: 'llm-checkbox', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
587
587
  <label [attr.for]="inputId">
@@ -675,8 +675,8 @@ class LlmRadio {
675
675
  onBlur() {
676
676
  this.group?.markTouched();
677
677
  }
678
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmRadio, deps: [], target: i0.ɵɵFactoryTarget.Component });
679
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmRadio, isStandalone: true, selector: "llm-radio", inputs: { radioValue: { classPropertyName: "radioValue", publicName: "radioValue", isSignal: true, isRequired: true, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
678
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmRadio, deps: [], target: i0.ɵɵFactoryTarget.Component });
679
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmRadio, isStandalone: true, selector: "llm-radio", inputs: { radioValue: { classPropertyName: "radioValue", publicName: "radioValue", isSignal: true, isRequired: true, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
680
680
  <label [attr.for]="inputId">
681
681
  <input
682
682
  type="radio"
@@ -692,7 +692,7 @@ class LlmRadio {
692
692
  </label>
693
693
  `, isInline: true, styles: [".llm-radio{display:inline-flex;align-items:center;gap:var(--ui-spacing-3);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);font-family:var(--ui-font-family);font-size:var(--ui-font-size-md);padding:var(--ui-spacing-1) 0;min-height:1.5rem;transition:color var(--ui-transition-fast)}.llm-radio:hover:not(.is-disabled){color:var(--ui-color-primary)}.llm-radio input[type=radio]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.25rem;height:1.25rem;border:1.5px solid var(--ui-color-border-strong);border-radius:50%;background-color:var(--ui-color-input-bg);cursor:pointer;position:relative;transition:border-color var(--ui-transition-fast),border-width var(--ui-transition-fast) var(--ui-ease-out),background-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast);outline:none;margin:0}.llm-radio:hover input[type=radio]:not(:disabled){border-color:var(--ui-color-primary)}.llm-radio input[type=radio]:focus-visible{box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-primary)}.llm-radio input[type=radio]:checked{border-color:var(--ui-color-primary);border-width:6px}.llm-radio.is-invalid input[type=radio]{border-color:var(--ui-color-input-border-invalid)}.llm-radio.is-invalid:hover input[type=radio]{border-color:var(--ui-color-danger-hover)}.llm-radio.is-invalid input[type=radio]:focus-visible{border-color:var(--ui-color-input-border-invalid);box-shadow:0 0 0 2px var(--ui-color-surface),0 0 0 4px var(--ui-color-danger)}.llm-radio.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed;color:var(--ui-color-text-muted)}.llm-radio.is-disabled input[type=radio]{cursor:not-allowed;border-color:var(--ui-color-border)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
694
694
  }
695
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmRadio, decorators: [{
695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmRadio, decorators: [{
696
696
  type: Component,
697
697
  args: [{ selector: 'llm-radio', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
698
698
  <label [attr.for]="inputId">
@@ -804,8 +804,8 @@ class LlmRadioGroup {
804
804
  this.touched.set(true);
805
805
  }
806
806
  }
807
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
808
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmRadioGroup, isStandalone: true, selector: "llm-radio-group", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "hostClasses()", "attr.aria-invalid": "invalid() || null", "attr.aria-required": "required() || null", "attr.aria-describedby": "showErrors() ? errorId : null" } }, providers: [{ provide: LLM_RADIO_GROUP, useExisting: LlmRadioGroup }], ngImport: i0, template: `
807
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
808
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmRadioGroup, isStandalone: true, selector: "llm-radio-group", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { attributes: { "role": "radiogroup" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "hostClasses()", "attr.aria-invalid": "invalid() || null", "attr.aria-required": "required() || null", "attr.aria-describedby": "showErrors() ? errorId : null" } }, providers: [{ provide: LLM_RADIO_GROUP, useExisting: LlmRadioGroup }], ngImport: i0, template: `
809
809
  <ng-content />
810
810
  @if (showErrors()) {
811
811
  <div class="errors" [id]="errorId" aria-live="polite">
@@ -816,7 +816,7 @@ class LlmRadioGroup {
816
816
  }
817
817
  `, isInline: true, styles: [".llm-radio-group{display:flex;font-family:var(--ui-font-family);gap:var(--ui-spacing-3)}.llm-radio-group.orientation-vertical{flex-direction:column}.llm-radio-group.orientation-horizontal{flex-direction:row;flex-wrap:wrap}.llm-radio-group.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-radio-group .errors{margin-top:var(--ui-spacing-2)}.llm-radio-group .error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text);line-height:var(--ui-line-height-normal)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
818
818
  }
819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmRadioGroup, decorators: [{
819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmRadioGroup, decorators: [{
820
820
  type: Component,
821
821
  args: [{ selector: 'llm-radio-group', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
822
822
  <ng-content />
@@ -888,8 +888,8 @@ class LlmToggle {
888
888
  const target = event.target;
889
889
  this.checked.set(target.checked);
890
890
  }
891
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToggle, deps: [], target: i0.ɵɵFactoryTarget.Component });
892
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmToggle, isStandalone: true, selector: "llm-toggle", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
891
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToggle, deps: [], target: i0.ɵɵFactoryTarget.Component });
892
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmToggle, isStandalone: true, selector: "llm-toggle", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
893
893
  <label [attr.for]="inputId">
894
894
  <input
895
895
  type="checkbox"
@@ -919,7 +919,7 @@ class LlmToggle {
919
919
  }
920
920
  `, isInline: true, styles: [".llm-toggle{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.llm-toggle label{display:inline-flex;align-items:center;gap:var(--ui-spacing-3);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);min-height:1.5rem}.llm-toggle input[type=checkbox]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.llm-toggle .track{position:relative;display:inline-flex;align-items:center;flex-shrink:0;width:2.75rem;height:1.5rem;border-radius:var(--ui-radius-full);border:1px solid var(--ui-color-border-strong);background-color:var(--ui-color-input-bg);transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast);cursor:pointer}.llm-toggle .thumb{position:absolute;left:.125rem;width:1.125rem;height:1.125rem;border-radius:var(--ui-radius-full);background-color:var(--ui-color-border-strong);box-shadow:var(--ui-shadow-xs);transition:transform var(--ui-transition-normal) var(--ui-ease-out),background-color var(--ui-transition-fast)}.llm-toggle label:hover:not(:has(input:disabled)) .track{border-color:var(--ui-color-primary)}.llm-toggle input[type=checkbox]:focus-visible+.track{box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-primary)}.llm-toggle.is-checked .track{background-color:var(--ui-color-primary);border-color:var(--ui-color-primary)}.llm-toggle.is-checked .thumb{transform:translate(1.25rem);background-color:var(--ui-color-text-on-primary)}.llm-toggle.is-invalid .track{border-color:var(--ui-color-input-border-invalid)}.llm-toggle.is-invalid input[type=checkbox]:focus-visible+.track{border-color:var(--ui-color-input-border-invalid);box-shadow:0 0 0 2px var(--ui-color-surface),0 0 0 4px var(--ui-color-danger)}.llm-toggle.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-toggle.is-disabled label,.llm-toggle.is-disabled .track{cursor:not-allowed}.llm-toggle .errors{margin-top:var(--ui-spacing-2)}.llm-toggle .error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text);line-height:var(--ui-line-height-normal)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
921
921
  }
922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToggle, decorators: [{
922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToggle, decorators: [{
923
923
  type: Component,
924
924
  args: [{ selector: 'llm-toggle', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
925
925
  <label [attr.for]="inputId">
@@ -995,8 +995,8 @@ class LlmAlert {
995
995
  dismiss() {
996
996
  this.dismissed.emit();
997
997
  }
998
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAlert, deps: [], target: i0.ɵɵFactoryTarget.Component });
999
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmAlert, isStandalone: true, selector: "llm-alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismissed: "dismissed" }, host: { attributes: { "role": "alert" }, properties: { "class": "hostClassesValue", "attr.aria-live": "ariaLive" } }, ngImport: i0, template: `
998
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAlert, deps: [], target: i0.ɵɵFactoryTarget.Component });
999
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmAlert, isStandalone: true, selector: "llm-alert", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismissed: "dismissed" }, host: { attributes: { "role": "alert" }, properties: { "class": "hostClassesValue", "attr.aria-live": "ariaLive" } }, ngImport: i0, template: `
1000
1000
  <span class="content">
1001
1001
  <span class="variant-icon" aria-hidden="true">{{ variantIcon() }}</span>
1002
1002
  <ng-content />
@@ -1011,7 +1011,7 @@ class LlmAlert {
1011
1011
  }
1012
1012
  `, isInline: true, styles: [".llm-alert{display:flex;align-items:flex-start;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4) var(--ui-spacing-5);border-radius:var(--ui-radius-lg);border:1px solid transparent;font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);box-sizing:border-box;width:100%}.llm-alert .content{flex:1}.llm-alert.variant-info{background-color:var(--ui-color-info-bg);color:var(--ui-color-info-text);border-color:color-mix(in srgb,var(--ui-color-info-text) 20%,transparent)}.llm-alert.variant-success{background-color:var(--ui-color-success-bg);color:var(--ui-color-success-text);border-color:color-mix(in srgb,var(--ui-color-success-text) 20%,transparent)}.llm-alert.variant-warning{background-color:var(--ui-color-warning-bg);color:var(--ui-color-warning-text);border-color:color-mix(in srgb,var(--ui-color-warning-text) 20%,transparent)}.llm-alert.variant-danger{background-color:var(--ui-color-danger-bg);color:var(--ui-color-danger-text);border-color:color-mix(in srgb,var(--ui-color-danger-text) 20%,transparent)}.llm-alert .dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:inherit;opacity:.7;transition:opacity var(--ui-transition-fast),background-color var(--ui-transition-fast);line-height:1}.llm-alert .dismiss:hover{opacity:1;background-color:color-mix(in srgb,currentColor 10%,transparent)}.llm-alert .dismiss:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);opacity:1}.llm-alert .content .variant-icon{display:inline-block;font-weight:700;margin-right:.4em;line-height:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1013
1013
  }
1014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAlert, decorators: [{
1014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAlert, decorators: [{
1015
1015
  type: Component,
1016
1016
  args: [{ selector: 'llm-alert', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
1017
1017
  <span class="content">
@@ -1278,8 +1278,8 @@ class LlmSelect {
1278
1278
  minWidth: triggerEl.offsetWidth,
1279
1279
  });
1280
1280
  }
1281
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
1282
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmSelect, isStandalone: true, selector: "llm-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", 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 }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { attributes: { "role": "combobox" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_SELECT, useExisting: LlmSelect }], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true, isSignal: true }], ngImport: i0, template: `
1281
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
1282
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmSelect, isStandalone: true, selector: "llm-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", 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 }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { attributes: { "role": "combobox" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_SELECT, useExisting: LlmSelect }], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true, isSignal: true }], ngImport: i0, template: `
1283
1283
  <button
1284
1284
  type="button"
1285
1285
  class="trigger"
@@ -1316,7 +1316,7 @@ class LlmSelect {
1316
1316
  }
1317
1317
  `, isInline: true, styles: [".llm-select{display:inline-block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.llm-select label{display:block;margin-bottom:var(--ui-spacing-2);font-size:var(--ui-font-size-sm);color:var(--ui-color-text);font-weight:var(--ui-font-weight-medium)}.llm-select .select-wrapper{position:relative;display:flex;align-items:center}.llm-select select{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:2.5rem;padding:.625rem var(--ui-spacing-4);padding-inline-end:calc(var(--ui-spacing-4) + 1.25rem);background:var(--ui-color-input-bg);border:1px solid var(--ui-color-input-border);border-radius:var(--ui-radius-md);color:var(--ui-color-text);font-family:inherit;font-size:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast),background-color var(--ui-transition-fast)}.llm-select select:hover:not(:disabled){border-color:var(--ui-color-input-border-hover)}.llm-select select:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-input-border-focus)}.llm-select select:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-select.is-invalid select{border-color:var(--ui-color-input-border-invalid)}.llm-select .select-arrow{position:absolute;inset-inline-end:var(--ui-spacing-4);pointer-events:none;font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}.llm-select .errors{margin-top:var(--ui-spacing-2)}.llm-select .error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1318
1318
  }
1319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmSelect, decorators: [{
1319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmSelect, decorators: [{
1320
1320
  type: Component,
1321
1321
  args: [{ selector: 'llm-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
1322
1322
  <button
@@ -1405,8 +1405,8 @@ class LlmOption {
1405
1405
  this.context.activeOptionId.set(this.optionId);
1406
1406
  }
1407
1407
  }
1408
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmOption, deps: [], target: i0.ɵɵFactoryTarget.Component });
1409
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmOption, isStandalone: true, selector: "llm-option", inputs: { optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmOption, deps: [], target: i0.ɵɵFactoryTarget.Component });
1409
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmOption, isStandalone: true, selector: "llm-option", inputs: { optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
1410
1410
  <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->
1411
1411
  <div
1412
1412
  role="option"
@@ -1423,7 +1423,7 @@ class LlmOption {
1423
1423
  </div>
1424
1424
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1425
1425
  }
1426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmOption, decorators: [{
1426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmOption, decorators: [{
1427
1427
  type: Component,
1428
1428
  args: [{
1429
1429
  selector: 'llm-option',
@@ -1643,8 +1643,8 @@ class LlmCombobox {
1643
1643
  this.outsideClickHandler = null;
1644
1644
  }
1645
1645
  }
1646
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCombobox, deps: [], target: i0.ɵɵFactoryTarget.Component });
1647
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmCombobox, isStandalone: true, selector: "llm-combobox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", 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 }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
1646
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCombobox, deps: [], target: i0.ɵɵFactoryTarget.Component });
1647
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmCombobox, isStandalone: true, selector: "llm-combobox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", 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 }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, host: { properties: { "class": "hostClasses()" } }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: `
1648
1648
  <div class="combobox-wrapper">
1649
1649
  <input
1650
1650
  #inputEl
@@ -1718,7 +1718,7 @@ class LlmCombobox {
1718
1718
  }
1719
1719
  `, isInline: true, styles: [".llm-combobox{display:block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.llm-combobox-wrapper{position:relative;display:flex;align-items:center}.llm-combobox-input{width:100%;min-height:2.5rem;box-sizing:border-box;padding:.625rem var(--ui-spacing-8) .625rem var(--ui-spacing-4);font-family:inherit;font-size:inherit;color:var(--ui-color-text);background-color:var(--ui-color-input-bg);border:1px solid var(--ui-color-input-border);border-radius:var(--ui-radius-md);outline:none;transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast),background-color var(--ui-transition-fast);cursor:text}.llm-combobox-input::placeholder{color:var(--ui-color-placeholder)}.llm-combobox-input:hover:not(:disabled){border-color:var(--ui-color-input-border-hover)}.llm-combobox-input:focus-visible,.llm-combobox.is-open .llm-combobox-input{border-color:var(--ui-color-input-border-focus);box-shadow:var(--ui-focus-ring)}.llm-combobox.is-invalid .llm-combobox-input{border-color:var(--ui-color-input-border-invalid)}.llm-combobox.is-invalid .llm-combobox-input:focus-visible{border-color:var(--ui-color-input-border-invalid);box-shadow:0 0 0 2px var(--ui-color-surface),0 0 0 4px var(--ui-color-danger)}.llm-combobox.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-combobox.is-disabled .llm-combobox-input{cursor:not-allowed}.llm-combobox-icon{position:absolute;right:var(--ui-spacing-4);pointer-events:none;color:var(--ui-color-text-muted);transition:transform var(--ui-transition-fast);display:flex;align-items:center}.llm-combobox.is-open .llm-combobox-icon{transform:rotate(180deg)}.llm-combobox-panel{position:absolute;left:0;top:calc(100% + var(--ui-spacing-2));width:100%;max-height:16rem;overflow-y:auto;margin:0;padding:var(--ui-spacing-2) 0;background-color:var(--ui-color-surface-raised);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-lg);z-index:100;list-style:none}.llm-combobox-option{display:flex;align-items:center;justify-content:space-between;min-height:2.25rem;padding:var(--ui-spacing-2) var(--ui-spacing-4);cursor:pointer;color:var(--ui-color-text);font-size:var(--ui-font-size-md);transition:background-color var(--ui-transition-fast)}.llm-combobox-option:hover:not(.is-disabled){background-color:var(--ui-color-surface-sunken)}.llm-combobox-option.is-active{background-color:var(--ui-color-primary-light);color:var(--ui-color-primary)}.llm-combobox-option.is-selected{font-weight:var(--ui-font-weight-semibold)}.llm-combobox-option.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-combobox-check{color:var(--ui-color-primary);flex-shrink:0}.llm-combobox-no-results{padding:var(--ui-spacing-4);text-align:center;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-sm)}.llm-combobox-errors{margin-top:var(--ui-spacing-2)}.llm-combobox-error-message{margin:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-error-text);line-height:var(--ui-line-height-normal)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1720
1720
  }
1721
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCombobox, decorators: [{
1721
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCombobox, decorators: [{
1722
1722
  type: Component,
1723
1723
  args: [{ selector: 'llm-combobox', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
1724
1724
  <div class="combobox-wrapper">
@@ -1860,8 +1860,8 @@ class LlmDialog {
1860
1860
  this.open.set(false);
1861
1861
  }
1862
1862
  }
1863
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
1864
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: LlmDialog, isStandalone: true, selector: "llm-dialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
1863
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
1864
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.13", type: LlmDialog, isStandalone: true, selector: "llm-dialog", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
1865
1865
  {
1866
1866
  provide: LLM_DIALOG,
1867
1867
  useFactory: (dialog) => ({
@@ -1887,7 +1887,7 @@ class LlmDialog {
1887
1887
  </dialog>
1888
1888
  `, isInline: true, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1889
1889
  }
1890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialog, decorators: [{
1890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialog, decorators: [{
1891
1891
  type: Component,
1892
1892
  args: [{ selector: 'llm-dialog', standalone: true, imports: [A11yModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1893
1893
  {
@@ -1923,8 +1923,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
1923
1923
  */
1924
1924
  class LlmDialogHeader {
1925
1925
  context = inject(LLM_DIALOG);
1926
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
1927
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmDialogHeader, isStandalone: true, selector: "llm-dialog-header", host: { properties: { "attr.id": "context.headerId" } }, ngImport: i0, template: `
1926
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialogHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
1927
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmDialogHeader, isStandalone: true, selector: "llm-dialog-header", host: { properties: { "attr.id": "context.headerId" } }, ngImport: i0, template: `
1928
1928
  <ng-content />
1929
1929
  <button
1930
1930
  class="close-btn"
@@ -1951,7 +1951,7 @@ class LlmDialogHeader {
1951
1951
  </button>
1952
1952
  `, isInline: true, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1953
1953
  }
1954
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogHeader, decorators: [{
1954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialogHeader, decorators: [{
1955
1955
  type: Component,
1956
1956
  args: [{ selector: 'llm-dialog-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
1957
1957
  <ng-content />
@@ -1986,10 +1986,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
1986
1986
  * Content slot for `llm-dialog`. Scrollable primary content area.
1987
1987
  */
1988
1988
  class LlmDialogContent {
1989
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1990
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmDialogContent, isStandalone: true, selector: "llm-dialog-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1989
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialogContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1990
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmDialogContent, isStandalone: true, selector: "llm-dialog-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1991
1991
  }
1992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogContent, decorators: [{
1992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialogContent, decorators: [{
1993
1993
  type: Component,
1994
1994
  args: [{ selector: 'llm-dialog-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"] }]
1995
1995
  }] });
@@ -1997,10 +1997,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
1997
1997
  * Footer slot for `llm-dialog`. Renders below content, typically holds action buttons.
1998
1998
  */
1999
1999
  class LlmDialogFooter {
2000
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
2001
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmDialogFooter, isStandalone: true, selector: "llm-dialog-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2000
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialogFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
2001
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmDialogFooter, isStandalone: true, selector: "llm-dialog-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2002
2002
  }
2003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogFooter, decorators: [{
2003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDialogFooter, decorators: [{
2004
2004
  type: Component,
2005
2005
  args: [{ selector: 'llm-dialog-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-dialog{all:unset;position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;display:none;flex-direction:column;max-width:100vw;max-height:calc(100dvh - var(--ui-spacing-8));border-radius:var(--ui-radius-lg);background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;opacity:0;transform:scale(.95);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{.llm-dialog[open]{opacity:0;transform:scale(.95)}}.llm-dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;max-height:inherit;overflow:hidden}.size-sm{width:min(24rem,90vw)}.size-md{width:min(36rem,90vw)}.size-lg{width:min(48rem,90vw)}.size-xl{width:min(64rem,90vw)}.size-full{width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border-radius:0;margin:0}.llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-dialog-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"] }]
2006
2006
  }] });
@@ -2077,8 +2077,8 @@ class LlmTabGroup {
2077
2077
  this.selectTab(targetIdx);
2078
2078
  this.tabBtns()[targetIdx]?.nativeElement.focus();
2079
2079
  }
2080
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
2081
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmTabGroup, isStandalone: true, selector: "llm-tab-group", inputs: { selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIndex: "selectedIndexChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_TAB_GROUP, useExisting: LlmTabGroup }], viewQueries: [{ propertyName: "tabBtns", predicate: ["tabBtn"], descendants: true, isSignal: true }], ngImport: i0, template: `
2080
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
2081
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmTabGroup, isStandalone: true, selector: "llm-tab-group", inputs: { selectedIndex: { classPropertyName: "selectedIndex", publicName: "selectedIndex", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedIndex: "selectedIndexChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_TAB_GROUP, useExisting: LlmTabGroup }], viewQueries: [{ propertyName: "tabBtns", predicate: ["tabBtn"], descendants: true, isSignal: true }], ngImport: i0, template: `
2082
2082
  <div class="tablist" role="tablist">
2083
2083
  @for (tab of tabs(); track tab.id; let i = $index) {
2084
2084
  <button
@@ -2102,7 +2102,7 @@ class LlmTabGroup {
2102
2102
  <ng-content />
2103
2103
  `, isInline: true, styles: [".llm-tab-group{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-tab-group .tablist{display:flex;gap:var(--ui-spacing-2);border-bottom:1px solid var(--ui-color-border);overflow-x:auto;scrollbar-width:none}.llm-tab-group .tablist::-webkit-scrollbar{display:none}.llm-tab-group .tablist button{all:unset;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;min-height:2.5rem;padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text-muted);cursor:pointer;transition:var(--ui-transition-fast);transition-property:color,background-color;border-radius:var(--ui-radius-md) var(--ui-radius-md) 0 0;white-space:nowrap;-webkit-user-select:none;user-select:none}.llm-tab-group .tablist button:after{content:\"\";position:absolute;bottom:-1px;left:var(--ui-spacing-2);right:var(--ui-spacing-2);height:3px;background:transparent;border-radius:var(--ui-radius-full) var(--ui-radius-full) 0 0;transition:background var(--ui-transition-fast)}.llm-tab-group .tablist button.is-active{color:var(--ui-color-primary)}.llm-tab-group .tablist button.is-active:after{background:var(--ui-color-primary)}.llm-tab-group .tablist button:hover:not(.is-disabled):not(.is-active){color:var(--ui-color-text);background:var(--ui-color-surface-sunken)}.llm-tab-group .tablist button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}.llm-tab-group .tablist button.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-tab-group [role=tabpanel]{padding:var(--ui-spacing-5) 0}.llm-tab-group [role=tabpanel]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}.llm-tab-group.variant-pills .tablist{border-bottom:none;gap:var(--ui-spacing-2);padding:var(--ui-spacing-1);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg)}.llm-tab-group.variant-pills .tablist button{border-radius:var(--ui-radius-md);min-height:2rem;padding:var(--ui-spacing-2) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-tab-group.variant-pills .tablist button:after{display:none}.llm-tab-group.variant-pills .tablist button.is-active{background:var(--ui-color-surface);color:var(--ui-color-text);box-shadow:var(--ui-shadow-sm)}.llm-tab-group.variant-pills .tablist button:hover:not(.is-disabled):not(.is-active){background:transparent;color:var(--ui-color-text)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2104
2104
  }
2105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTabGroup, decorators: [{
2105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTabGroup, decorators: [{
2106
2106
  type: Component,
2107
2107
  args: [{ selector: 'llm-tab-group', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
2108
2108
  <div class="tablist" role="tablist">
@@ -2168,8 +2168,8 @@ class LlmTab {
2168
2168
  ngOnDestroy() {
2169
2169
  this.context.unregisterTab(this.id);
2170
2170
  }
2171
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTab, deps: [], target: i0.ɵɵFactoryTarget.Component });
2172
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmTab, isStandalone: true, selector: "llm-tab", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
2171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTab, deps: [], target: i0.ɵɵFactoryTarget.Component });
2172
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmTab, isStandalone: true, selector: "llm-tab", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
2173
2173
  @if (isActive()) {
2174
2174
  <div
2175
2175
  role="tabpanel"
@@ -2182,7 +2182,7 @@ class LlmTab {
2182
2182
  }
2183
2183
  `, isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2184
2184
  }
2185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTab, decorators: [{
2185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTab, decorators: [{
2186
2186
  type: Component,
2187
2187
  args: [{ selector: 'llm-tab', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
2188
2188
  @if (isActive()) {
@@ -2260,10 +2260,10 @@ class LlmAccordionGroup {
2260
2260
  event.preventDefault();
2261
2261
  targetItem.focus();
2262
2262
  }
2263
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
2264
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmAccordionGroup, isStandalone: true, selector: "llm-accordion-group", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "class": "hostClassesValue" } }, providers: [{ provide: LLM_ACCORDION_GROUP, useExisting: LlmAccordionGroup }], hostDirectives: [{ directive: i1$2.CdkAccordion, inputs: ["multi", "multi"] }], ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-accordion-group{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-accordion-group.variant-default{border-top:1px solid var(--ui-color-border)}.llm-accordion-group.variant-default .llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}.llm-accordion-group.variant-bordered{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.llm-accordion-group.variant-bordered .llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}.llm-accordion-group.variant-separated{display:flex;flex-direction:column;gap:var(--ui-spacing-2)}.llm-accordion-group.variant-separated .llm-accordion-item{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.llm-accordion-item{display:block}.accordion-heading{all:unset;display:block}.accordion-trigger{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);width:100%;min-height:3.25rem;padding:var(--ui-spacing-4) var(--ui-spacing-5);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);cursor:pointer;transition:background-color var(--ui-transition-fast);-webkit-user-select:none;user-select:none}.accordion-trigger:hover:not(.is-disabled){background:var(--ui-color-surface-sunken)}.accordion-trigger:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);position:relative;z-index:1}.accordion-trigger.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.chevron{flex-shrink:0;color:var(--ui-color-text-muted);transition:transform var(--ui-duration-normal) var(--ui-ease-out)}.chevron.is-expanded{transform:rotate(180deg)}.accordion-panel-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ui-duration-normal) var(--ui-ease-out)}.accordion-panel-wrapper.is-expanded{grid-template-rows:1fr}.accordion-panel{overflow:hidden}.accordion-panel-wrapper.is-expanded .accordion-panel{padding:0 var(--ui-spacing-5) var(--ui-spacing-5)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-5)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2263
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAccordionGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
2264
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmAccordionGroup, isStandalone: true, selector: "llm-accordion-group", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "class": "hostClassesValue" } }, providers: [{ provide: LLM_ACCORDION_GROUP, useExisting: LlmAccordionGroup }], hostDirectives: [{ directive: i1$2.CdkAccordion, inputs: ["multi", "multi"] }], ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-accordion-group{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-accordion-group.variant-default{border-top:1px solid var(--ui-color-border)}.llm-accordion-group.variant-default .llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}.llm-accordion-group.variant-bordered{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.llm-accordion-group.variant-bordered .llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}.llm-accordion-group.variant-separated{display:flex;flex-direction:column;gap:var(--ui-spacing-2)}.llm-accordion-group.variant-separated .llm-accordion-item{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.llm-accordion-item{display:block}.accordion-heading{all:unset;display:block}.accordion-trigger{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);width:100%;min-height:3.25rem;padding:var(--ui-spacing-4) var(--ui-spacing-5);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);cursor:pointer;transition:background-color var(--ui-transition-fast);-webkit-user-select:none;user-select:none}.accordion-trigger:hover:not(.is-disabled){background:var(--ui-color-surface-sunken)}.accordion-trigger:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);position:relative;z-index:1}.accordion-trigger.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.chevron{flex-shrink:0;color:var(--ui-color-text-muted);transition:transform var(--ui-duration-normal) var(--ui-ease-out)}.chevron.is-expanded{transform:rotate(180deg)}.accordion-panel-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ui-duration-normal) var(--ui-ease-out)}.accordion-panel-wrapper.is-expanded{grid-template-rows:1fr}.accordion-panel{overflow:hidden}.accordion-panel-wrapper.is-expanded .accordion-panel{padding:0 var(--ui-spacing-5) var(--ui-spacing-5)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-5)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2265
2265
  }
2266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionGroup, decorators: [{
2266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAccordionGroup, decorators: [{
2267
2267
  type: Component,
2268
2268
  args: [{ selector: 'llm-accordion-group', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, hostDirectives: [{ directive: CdkAccordion, inputs: ['multi'] }], host: {
2269
2269
  '[class]': 'hostClassesValue',
@@ -2274,10 +2274,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
2274
2274
  * Directive to mark the accordion header content.
2275
2275
  */
2276
2276
  class LlmAccordionHeader {
2277
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2278
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: LlmAccordionHeader, isStandalone: true, selector: "[llmAccordionHeader]", ngImport: i0 });
2277
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAccordionHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2278
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: LlmAccordionHeader, isStandalone: true, selector: "[llmAccordionHeader]", ngImport: i0 });
2279
2279
  }
2280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionHeader, decorators: [{
2280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAccordionHeader, decorators: [{
2281
2281
  type: Directive,
2282
2282
  args: [{
2283
2283
  selector: '[llmAccordionHeader]',
@@ -2368,8 +2368,8 @@ class LlmAccordionItem {
2368
2368
  onKeydown(event) {
2369
2369
  this.group.handleKeydown(event, this);
2370
2370
  }
2371
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
2372
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmAccordionItem, isStandalone: true, selector: "llm-accordion-item", inputs: { expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, host: { properties: { "attr.data-accordion-id": "id" } }, hostDirectives: [{ directive: i1$2.CdkAccordionItem }], ngImport: i0, template: `
2371
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
2372
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmAccordionItem, isStandalone: true, selector: "llm-accordion-item", inputs: { expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, headingLevel: { classPropertyName: "headingLevel", publicName: "headingLevel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, host: { properties: { "attr.data-accordion-id": "id" } }, hostDirectives: [{ directive: i1$2.CdkAccordionItem }], ngImport: i0, template: `
2373
2373
  <div role="heading" [attr.aria-level]="headingLevel()" class="accordion-heading">
2374
2374
  <button
2375
2375
  type="button"
@@ -2417,7 +2417,7 @@ class LlmAccordionItem {
2417
2417
  </div>
2418
2418
  `, isInline: true, styles: [".llm-accordion-group{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-accordion-group.variant-default{border-top:1px solid var(--ui-color-border)}.llm-accordion-group.variant-default .llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}.llm-accordion-group.variant-bordered{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.llm-accordion-group.variant-bordered .llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}.llm-accordion-group.variant-separated{display:flex;flex-direction:column;gap:var(--ui-spacing-2)}.llm-accordion-group.variant-separated .llm-accordion-item{border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}.llm-accordion-item{display:block}.accordion-heading{all:unset;display:block}.accordion-trigger{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);width:100%;min-height:3.25rem;padding:var(--ui-spacing-4) var(--ui-spacing-5);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);cursor:pointer;transition:background-color var(--ui-transition-fast);-webkit-user-select:none;user-select:none}.accordion-trigger:hover:not(.is-disabled){background:var(--ui-color-surface-sunken)}.accordion-trigger:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);position:relative;z-index:1}.accordion-trigger.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.chevron{flex-shrink:0;color:var(--ui-color-text-muted);transition:transform var(--ui-duration-normal) var(--ui-ease-out)}.chevron.is-expanded{transform:rotate(180deg)}.accordion-panel-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--ui-duration-normal) var(--ui-ease-out)}.accordion-panel-wrapper.is-expanded{grid-template-rows:1fr}.accordion-panel{overflow:hidden}.accordion-panel-wrapper.is-expanded .accordion-panel{padding:0 var(--ui-spacing-5) var(--ui-spacing-5)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-5)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2419
2419
  }
2420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionItem, decorators: [{
2420
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAccordionItem, decorators: [{
2421
2421
  type: Component,
2422
2422
  args: [{ selector: 'llm-accordion-item', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [CdkAccordionItem], template: `
2423
2423
  <div role="heading" [attr.aria-level]="headingLevel()" class="accordion-heading">
@@ -2485,10 +2485,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
2485
2485
  * ```
2486
2486
  */
2487
2487
  class LlmMenuTrigger {
2488
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2489
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: LlmMenuTrigger, isStandalone: true, selector: "[llmMenuTriggerFor]", hostDirectives: [{ directive: i1$3.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "llmMenuTriggerFor"] }], ngImport: i0 });
2488
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2489
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: LlmMenuTrigger, isStandalone: true, selector: "[llmMenuTriggerFor]", hostDirectives: [{ directive: i1$3.CdkMenuTrigger, inputs: ["cdkMenuTriggerFor", "llmMenuTriggerFor"] }], ngImport: i0 });
2490
2490
  }
2491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenuTrigger, decorators: [{
2491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenuTrigger, decorators: [{
2492
2492
  type: Directive,
2493
2493
  args: [{
2494
2494
  selector: '[llmMenuTriggerFor]',
@@ -2522,10 +2522,10 @@ class LlmMenu {
2522
2522
  variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
2523
2523
  /** @internal */
2524
2524
  hostClasses = computed(() => `llm-menu variant-${this.variant()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
2525
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
2526
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmMenu, isStandalone: true, selector: "llm-menu", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, hostDirectives: [{ directive: i1$3.CdkMenu }], ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-menu{display:block;min-width:12rem;padding:var(--ui-spacing-2) 0;background:var(--ui-color-surface-raised);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg);font-family:var(--ui-font-family);font-size:var(--ui-font-size-md);color:var(--ui-color-text);outline:none;overflow:hidden;animation:llm-menu-enter var(--ui-duration-normal) var(--ui-ease-out) forwards}.llm-menu.variant-compact{font-size:var(--ui-font-size-sm);padding:var(--ui-spacing-1) 0}.llm-menu.variant-compact .llm-menu-item{min-height:2rem;padding:var(--ui-spacing-1) var(--ui-spacing-3)}@keyframes llm-menu-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.llm-menu-item{display:flex;align-items:center;gap:var(--ui-spacing-3);min-height:2.25rem;padding:var(--ui-spacing-2) var(--ui-spacing-4);cursor:pointer;color:var(--ui-color-text);transition:background var(--ui-transition-fast);outline:none;border:none;background:none;font:inherit;width:100%;text-align:start}.llm-menu-item:hover,.llm-menu-item:focus-visible{background:var(--ui-color-surface-sunken)}.llm-menu-item.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-menu-separator{display:block;height:1px;margin:var(--ui-spacing-2) 0;background:var(--ui-color-border);border:none}.llm-menu-panel{position:absolute;z-index:var(--ui-z-dropdown, 100);top:calc(100% + var(--ui-spacing-2));left:0;min-width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2525
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
2526
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmMenu, isStandalone: true, selector: "llm-menu", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, hostDirectives: [{ directive: i1$3.CdkMenu }], ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-menu{display:block;min-width:12rem;padding:var(--ui-spacing-2) 0;background:var(--ui-color-surface-raised);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg);font-family:var(--ui-font-family);font-size:var(--ui-font-size-md);color:var(--ui-color-text);outline:none;overflow:hidden;animation:llm-menu-enter var(--ui-duration-normal) var(--ui-ease-out) forwards}.llm-menu.variant-compact{font-size:var(--ui-font-size-sm);padding:var(--ui-spacing-1) 0}.llm-menu.variant-compact .llm-menu-item{min-height:2rem;padding:var(--ui-spacing-1) var(--ui-spacing-3)}@keyframes llm-menu-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.llm-menu-item{display:flex;align-items:center;gap:var(--ui-spacing-3);min-height:2.25rem;padding:var(--ui-spacing-2) var(--ui-spacing-4);cursor:pointer;color:var(--ui-color-text);transition:background var(--ui-transition-fast);outline:none;border:none;background:none;font:inherit;width:100%;text-align:start}.llm-menu-item:hover,.llm-menu-item:focus-visible{background:var(--ui-color-surface-sunken)}.llm-menu-item.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.llm-menu-separator{display:block;height:1px;margin:var(--ui-spacing-2) 0;background:var(--ui-color-border);border:none}.llm-menu-panel{position:absolute;z-index:var(--ui-z-dropdown, 100);top:calc(100% + var(--ui-spacing-2));left:0;min-width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2527
2527
  }
2528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenu, decorators: [{
2528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenu, decorators: [{
2529
2529
  type: Component,
2530
2530
  args: [{ selector: 'llm-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [CdkMenu], template: `<ng-content />`, host: {
2531
2531
  '[class]': 'hostClasses()',
@@ -2548,15 +2548,15 @@ class LlmMenuItem {
2548
2548
  menuTrigger = inject(CdkMenuTrigger, { optional: true, self: true });
2549
2549
  /** @internal */
2550
2550
  hasSubmenu = computed(() => !!this.menuTrigger, ...(ngDevMode ? [{ debugName: "hasSubmenu" }] : /* istanbul ignore next */ []));
2551
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
2552
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmMenuItem, isStandalone: true, selector: "llm-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-disabled": "disabled()" }, classAttribute: "llm-menu-item" }, hostDirectives: [{ directive: i1$3.CdkMenuItem, inputs: ["cdkMenuItemDisabled", "disabled"], outputs: ["cdkMenuItemTriggered", "triggered"] }], ngImport: i0, template: `
2551
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
2552
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmMenuItem, isStandalone: true, selector: "llm-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-disabled": "disabled()" }, classAttribute: "llm-menu-item" }, hostDirectives: [{ directive: i1$3.CdkMenuItem, inputs: ["cdkMenuItemDisabled", "disabled"], outputs: ["cdkMenuItemTriggered", "triggered"] }], ngImport: i0, template: `
2553
2553
  <ng-content />
2554
2554
  @if (hasSubmenu()) {
2555
2555
  <span class="llm-menu-item-chevron" aria-hidden="true">&#x203A;</span>
2556
2556
  }
2557
2557
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2558
2558
  }
2559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenuItem, decorators: [{
2559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenuItem, decorators: [{
2560
2560
  type: Component,
2561
2561
  args: [{
2562
2562
  selector: 'llm-menu-item',
@@ -2592,10 +2592,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
2592
2592
  * ```
2593
2593
  */
2594
2594
  class LlmMenuSeparator {
2595
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenuSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
2596
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmMenuSeparator, isStandalone: true, selector: "llm-menu-separator", host: { attributes: { "role": "separator" }, classAttribute: "llm-menu-separator" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenuSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
2596
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmMenuSeparator, isStandalone: true, selector: "llm-menu-separator", host: { attributes: { "role": "separator" }, classAttribute: "llm-menu-separator" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2597
2597
  }
2598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmMenuSeparator, decorators: [{
2598
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmMenuSeparator, decorators: [{
2599
2599
  type: Component,
2600
2600
  args: [{
2601
2601
  selector: 'llm-menu-separator',
@@ -2616,10 +2616,10 @@ class LlmTooltipContent {
2616
2616
  text = input('', ...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
2617
2617
  /** @internal */
2618
2618
  tooltipId = input('', ...(ngDevMode ? [{ debugName: "tooltipId" }] : /* istanbul ignore next */ []));
2619
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTooltipContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2620
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmTooltipContent, isStandalone: true, selector: "llm-tooltip-content", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltipId: { classPropertyName: "tooltipId", publicName: "tooltipId", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "tooltip" }, properties: { "id": "tooltipId()" }, classAttribute: "llm-tooltip" }, ngImport: i0, template: `{{ text() }}`, isInline: true, styles: [".llm-tooltip{display:block;padding:var(--ui-spacing-1) var(--ui-spacing-2);background:var(--ui-color-text);color:var(--ui-color-surface);font-family:var(--ui-font-family);font-size:var(--ui-font-size-xs);line-height:var(--ui-line-height-normal);border-radius:var(--ui-radius-sm);box-shadow:var(--ui-shadow-md);max-width:20rem;word-wrap:break-word;pointer-events:none;animation:llm-tooltip-enter var(--ui-duration-fast) var(--ui-ease-out) forwards}@keyframes llm-tooltip-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2619
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTooltipContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2620
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmTooltipContent, isStandalone: true, selector: "llm-tooltip-content", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltipId: { classPropertyName: "tooltipId", publicName: "tooltipId", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "tooltip" }, properties: { "id": "tooltipId()" }, classAttribute: "llm-tooltip" }, ngImport: i0, template: `{{ text() }}`, isInline: true, styles: [".llm-tooltip{display:block;padding:var(--ui-spacing-1) var(--ui-spacing-2);background:var(--ui-color-text);color:var(--ui-color-surface);font-family:var(--ui-font-family);font-size:var(--ui-font-size-xs);line-height:var(--ui-line-height-normal);border-radius:var(--ui-radius-sm);box-shadow:var(--ui-shadow-md);max-width:20rem;word-wrap:break-word;pointer-events:none;animation:llm-tooltip-enter var(--ui-duration-fast) var(--ui-ease-out) forwards}@keyframes llm-tooltip-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2621
2621
  }
2622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTooltipContent, decorators: [{
2622
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTooltipContent, decorators: [{
2623
2623
  type: Component,
2624
2624
  args: [{ selector: 'llm-tooltip-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `{{ text() }}`, host: {
2625
2625
  class: 'llm-tooltip',
@@ -2740,10 +2740,10 @@ class LlmTooltip {
2740
2740
  this.hideTimer = null;
2741
2741
  }
2742
2742
  }
2743
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2744
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.4", type: LlmTooltip, isStandalone: true, selector: "[llmTooltip]", inputs: { llmTooltip: { classPropertyName: "llmTooltip", publicName: "llmTooltip", isSignal: true, isRequired: true, transformFunction: null }, llmTooltipPosition: { classPropertyName: "llmTooltipPosition", publicName: "llmTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, llmTooltipDisabled: { classPropertyName: "llmTooltipDisabled", publicName: "llmTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, llmTooltipShowDelay: { classPropertyName: "llmTooltipShowDelay", publicName: "llmTooltipShowDelay", isSignal: true, isRequired: false, transformFunction: null }, llmTooltipHideDelay: { classPropertyName: "llmTooltipHideDelay", publicName: "llmTooltipHideDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()", "focusin": "show()", "focusout": "hide()", "keydown.escape": "hide()" }, properties: { "attr.aria-describedby": "activeTooltipId()" } }, ngImport: i0 });
2743
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2744
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.13", type: LlmTooltip, isStandalone: true, selector: "[llmTooltip]", inputs: { llmTooltip: { classPropertyName: "llmTooltip", publicName: "llmTooltip", isSignal: true, isRequired: true, transformFunction: null }, llmTooltipPosition: { classPropertyName: "llmTooltipPosition", publicName: "llmTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, llmTooltipDisabled: { classPropertyName: "llmTooltipDisabled", publicName: "llmTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, llmTooltipShowDelay: { classPropertyName: "llmTooltipShowDelay", publicName: "llmTooltipShowDelay", isSignal: true, isRequired: false, transformFunction: null }, llmTooltipHideDelay: { classPropertyName: "llmTooltipHideDelay", publicName: "llmTooltipHideDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()", "focusin": "show()", "focusout": "hide()", "keydown.escape": "hide()" }, properties: { "attr.aria-describedby": "activeTooltipId()" } }, ngImport: i0 });
2745
2745
  }
2746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTooltip, decorators: [{
2746
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTooltip, decorators: [{
2747
2747
  type: Directive,
2748
2748
  args: [{
2749
2749
  selector: '[llmTooltip]',
@@ -2796,10 +2796,10 @@ class LlmSkeleton {
2796
2796
  classes.push('is-animated');
2797
2797
  return classes.join(' ');
2798
2798
  }, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
2799
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmSkeleton, deps: [], target: i0.ɵɵFactoryTarget.Component });
2800
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmSkeleton, isStandalone: true, selector: "llm-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "class": "hostClasses()", "style.width": "width()", "style.height": "computedHeight()" } }, ngImport: i0, template: ``, isInline: true, styles: [".llm-skeleton{display:block;background:var(--ui-color-border);overflow:hidden;position:relative}.llm-skeleton.variant-text{border-radius:var(--ui-radius-sm)}.llm-skeleton.variant-circular{border-radius:var(--ui-radius-full, 9999px)}.llm-skeleton.variant-rectangular{border-radius:var(--ui-radius-md)}.llm-skeleton.is-animated:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--ui-color-surface-raised) 80%,transparent) 50%,transparent 100%);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.llm-skeleton.is-animated:after{animation:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmSkeleton, deps: [], target: i0.ɵɵFactoryTarget.Component });
2800
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmSkeleton, isStandalone: true, selector: "llm-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "class": "hostClasses()", "style.width": "width()", "style.height": "computedHeight()" } }, ngImport: i0, template: ``, isInline: true, styles: [".llm-skeleton{display:block;background:var(--ui-color-border);overflow:hidden;position:relative}.llm-skeleton.variant-text{border-radius:var(--ui-radius-sm)}.llm-skeleton.variant-circular{border-radius:var(--ui-radius-full, 9999px)}.llm-skeleton.variant-rectangular{border-radius:var(--ui-radius-md)}.llm-skeleton.is-animated:after{content:\"\";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--ui-color-surface-raised) 80%,transparent) 50%,transparent 100%);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.llm-skeleton.is-animated:after{animation:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2801
2801
  }
2802
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmSkeleton, decorators: [{
2802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmSkeleton, decorators: [{
2803
2803
  type: Component,
2804
2804
  args: [{ selector: 'llm-skeleton', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: ``, host: {
2805
2805
  '[class]': 'hostClasses()',
@@ -2859,10 +2859,10 @@ class LlmToastService {
2859
2859
  this.timers.clear();
2860
2860
  this.toasts.set([]);
2861
2861
  }
2862
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2863
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToastService, providedIn: 'root' });
2862
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2863
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToastService, providedIn: 'root' });
2864
2864
  }
2865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToastService, decorators: [{
2865
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToastService, decorators: [{
2866
2866
  type: Injectable,
2867
2867
  args: [{ providedIn: 'root' }]
2868
2868
  }] });
@@ -2886,8 +2886,8 @@ class LlmToast {
2886
2886
  onDismiss() {
2887
2887
  this.dismissed.emit(this.toastId());
2888
2888
  }
2889
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToast, deps: [], target: i0.ɵɵFactoryTarget.Component });
2890
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmToast, isStandalone: true, selector: "llm-toast", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, toastId: { classPropertyName: "toastId", publicName: "toastId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismissed: "dismissed" }, host: { attributes: { "role": "status" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
2889
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToast, deps: [], target: i0.ɵɵFactoryTarget.Component });
2890
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmToast, isStandalone: true, selector: "llm-toast", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, toastId: { classPropertyName: "toastId", publicName: "toastId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dismissed: "dismissed" }, host: { attributes: { "role": "status" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
2891
2891
  <span class="message">{{ message() }}</span>
2892
2892
  @if (dismissible()) {
2893
2893
  <button class="dismiss" type="button" aria-label="Dismiss" (click)="onDismiss()">
@@ -2899,7 +2899,7 @@ class LlmToast {
2899
2899
  }
2900
2900
  `, isInline: true, styles: [":host{display:flex;align-items:center;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4) var(--ui-spacing-5);border-radius:var(--ui-radius-lg);border-left:4px solid transparent;font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);box-shadow:var(--ui-shadow-lg);background-color:var(--ui-color-surface-raised, var(--ui-color-surface));color:var(--ui-color-text);pointer-events:auto;min-width:18rem;max-width:100%;box-sizing:border-box;animation:toast-enter .3s ease-out}:host(.variant-default){border-left-color:var(--ui-color-border)}:host(.variant-success){border-left-color:var(--ui-color-success);background-color:color-mix(in srgb,var(--ui-color-success) 8%,var(--ui-color-surface-raised, var(--ui-color-surface)))}:host(.variant-warning){border-left-color:var(--ui-color-warning);background-color:color-mix(in srgb,var(--ui-color-warning) 8%,var(--ui-color-surface-raised, var(--ui-color-surface)))}:host(.variant-danger){border-left-color:var(--ui-color-danger);background-color:color-mix(in srgb,var(--ui-color-danger) 8%,var(--ui-color-surface-raised, var(--ui-color-surface)))}:host(.variant-info){border-left-color:var(--ui-color-info);background-color:color-mix(in srgb,var(--ui-color-info) 8%,var(--ui-color-surface-raised, var(--ui-color-surface)))}.message{flex:1}.dismiss{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted, currentColor);opacity:.7;transition:opacity var(--ui-transition-fast, .15s),background-color var(--ui-transition-fast, .15s);line-height:1}.dismiss:hover{opacity:1;background-color:color-mix(in srgb,currentColor 10%,transparent)}.dismiss:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);opacity:1}@keyframes toast-enter{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){:host{animation:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2901
2901
  }
2902
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToast, decorators: [{
2902
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToast, decorators: [{
2903
2903
  type: Component,
2904
2904
  args: [{ selector: 'llm-toast', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
2905
2905
  <span class="message">{{ message() }}</span>
@@ -2934,8 +2934,8 @@ class LlmToastContainer {
2934
2934
  constructor() {
2935
2935
  this.destroyRef.onDestroy(() => this.toastService.clear());
2936
2936
  }
2937
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToastContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
2938
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmToastContainer, isStandalone: true, selector: "llm-toast-container", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-live": "polite", "role": "status" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
2937
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToastContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
2938
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmToastContainer, isStandalone: true, selector: "llm-toast-container", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-live": "polite", "role": "status" }, properties: { "class": "hostClasses()" } }, ngImport: i0, template: `
2939
2939
  @for (toast of toastService.toasts(); track toast.id) {
2940
2940
  <llm-toast
2941
2941
  [variant]="toast.variant"
@@ -2947,7 +2947,7 @@ class LlmToastContainer {
2947
2947
  }
2948
2948
  `, isInline: true, styles: [":host{position:fixed;z-index:var(--ui-z-toast, 400);display:flex;flex-direction:column;gap:var(--ui-spacing-2);pointer-events:none;max-width:min(24rem,calc(100vw - 2rem));box-sizing:border-box}:host(.position-bottom-right){bottom:var(--ui-spacing-4);right:var(--ui-spacing-4);align-items:flex-end}:host(.position-bottom-center){bottom:var(--ui-spacing-4);left:50%;transform:translate(-50%);align-items:center}:host(.position-top-right){top:var(--ui-spacing-4);right:var(--ui-spacing-4);align-items:flex-end}:host(.position-top-center){top:var(--ui-spacing-4);left:50%;transform:translate(-50%);align-items:center}\n"], dependencies: [{ kind: "component", type: LlmToast, selector: "llm-toast", inputs: ["variant", "dismissible", "message", "toastId"], outputs: ["dismissed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2949
2949
  }
2950
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmToastContainer, decorators: [{
2950
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmToastContainer, decorators: [{
2951
2951
  type: Component,
2952
2952
  args: [{ selector: 'llm-toast-container', standalone: true, imports: [LlmToast], changeDetection: ChangeDetectionStrategy.OnPush, template: `
2953
2953
  @for (toast of toastService.toasts(); track toast.id) {
@@ -3015,8 +3015,8 @@ class LlmAvatar {
3015
3015
  untracked(() => this.showImage.set(true));
3016
3016
  });
3017
3017
  }
3018
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
3019
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmAvatar, isStandalone: true, selector: "llm-avatar", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "img" }, properties: { "class": "hostClasses()", "attr.aria-label": "ariaLabel()" } }, ngImport: i0, template: `
3018
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
3019
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmAvatar, isStandalone: true, selector: "llm-avatar", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "img" }, properties: { "class": "hostClasses()", "attr.aria-label": "ariaLabel()" } }, ngImport: i0, template: `
3020
3020
  <!-- eslint-disable -->
3021
3021
  @if (src() && showImage()) {
3022
3022
  <img [src]="src()" [alt]="alt()" (error)="showImage.set(false)" />
@@ -3032,7 +3032,7 @@ class LlmAvatar {
3032
3032
  }
3033
3033
  `, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0;font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-semibold);background-color:color-mix(in srgb,var(--ui-color-primary) 12%,var(--ui-color-surface-sunken));color:var(--ui-color-primary);-webkit-user-select:none;user-select:none}:host(.size-xs){width:24px;height:24px;font-size:.625rem}:host(.size-sm){width:32px;height:32px;font-size:var(--ui-font-size-xs)}:host(.size-md){width:40px;height:40px;font-size:var(--ui-font-size-sm)}:host(.size-lg){width:48px;height:48px;font-size:var(--ui-font-size-md)}:host(.size-xl){width:64px;height:64px;font-size:var(--ui-font-size-lg)}:host(.shape-circle){border-radius:var(--ui-radius-full)}:host(.shape-square){border-radius:var(--ui-radius-md)}img{width:100%;height:100%;object-fit:cover;display:block}.initials{line-height:1;letter-spacing:.02em}.icon{width:55%;height:55%;opacity:.6}.status-dot{position:absolute;bottom:0;right:0;width:25%;height:25%;min-width:6px;min-height:6px;max-width:14px;max-height:14px;border-radius:var(--ui-radius-full);border:2px solid var(--ui-color-surface);box-sizing:content-box}.status-dot.status-online{background-color:var(--ui-color-success)}.status-dot.status-offline{background-color:var(--ui-color-text-muted)}.status-dot.status-away{background-color:var(--ui-color-warning)}.status-dot.status-busy{background-color:var(--ui-color-danger)}:host(.group){display:inline-flex;align-items:center;background:none;overflow:visible;padding-inline-start:4px}:host-context(llm-avatar-group){box-shadow:0 0 0 2px var(--ui-color-surface);margin-inline-start:-8px}.overflow-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text-muted);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-full);font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-semibold);box-shadow:0 0 0 2px var(--ui-color-surface);margin-inline-start:-8px}.overflow-badge.size-xs{width:24px;height:24px;font-size:.5625rem}.overflow-badge.size-sm{width:32px;height:32px;font-size:var(--ui-font-size-xs)}.overflow-badge.size-md{width:40px;height:40px;font-size:var(--ui-font-size-sm)}.overflow-badge.size-lg{width:48px;height:48px;font-size:var(--ui-font-size-sm)}.overflow-badge.size-xl{width:64px;height:64px;font-size:var(--ui-font-size-md)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3034
3034
  }
3035
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAvatar, decorators: [{
3035
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAvatar, decorators: [{
3036
3036
  type: Component,
3037
3037
  args: [{ selector: 'llm-avatar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3038
3038
  <!-- eslint-disable -->
@@ -3082,15 +3082,15 @@ class LlmAvatarGroup {
3082
3082
  });
3083
3083
  });
3084
3084
  }
3085
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAvatarGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
3086
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmAvatarGroup, isStandalone: true, selector: "llm-avatar-group", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"group size-\" + size()" }, classAttribute: "group" }, queries: [{ propertyName: "avatarEls", predicate: LlmAvatar, read: ElementRef, isSignal: true }], ngImport: i0, template: `
3085
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAvatarGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
3086
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmAvatarGroup, isStandalone: true, selector: "llm-avatar-group", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"group size-\" + size()" }, classAttribute: "group" }, queries: [{ propertyName: "avatarEls", predicate: LlmAvatar, read: ElementRef, isSignal: true }], ngImport: i0, template: `
3087
3087
  <ng-content />
3088
3088
  @if (overflowCount() > 0) {
3089
3089
  <span [class]="'overflow-badge size-' + size()">+{{ overflowCount() }}</span>
3090
3090
  }
3091
3091
  `, isInline: true, styles: [":host{display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0;font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-semibold);background-color:color-mix(in srgb,var(--ui-color-primary) 12%,var(--ui-color-surface-sunken));color:var(--ui-color-primary);-webkit-user-select:none;user-select:none}:host(.size-xs){width:24px;height:24px;font-size:.625rem}:host(.size-sm){width:32px;height:32px;font-size:var(--ui-font-size-xs)}:host(.size-md){width:40px;height:40px;font-size:var(--ui-font-size-sm)}:host(.size-lg){width:48px;height:48px;font-size:var(--ui-font-size-md)}:host(.size-xl){width:64px;height:64px;font-size:var(--ui-font-size-lg)}:host(.shape-circle){border-radius:var(--ui-radius-full)}:host(.shape-square){border-radius:var(--ui-radius-md)}img{width:100%;height:100%;object-fit:cover;display:block}.initials{line-height:1;letter-spacing:.02em}.icon{width:55%;height:55%;opacity:.6}.status-dot{position:absolute;bottom:0;right:0;width:25%;height:25%;min-width:6px;min-height:6px;max-width:14px;max-height:14px;border-radius:var(--ui-radius-full);border:2px solid var(--ui-color-surface);box-sizing:content-box}.status-dot.status-online{background-color:var(--ui-color-success)}.status-dot.status-offline{background-color:var(--ui-color-text-muted)}.status-dot.status-away{background-color:var(--ui-color-warning)}.status-dot.status-busy{background-color:var(--ui-color-danger)}:host(.group){display:inline-flex;align-items:center;background:none;overflow:visible;padding-inline-start:4px}:host-context(llm-avatar-group){box-shadow:0 0 0 2px var(--ui-color-surface);margin-inline-start:-8px}.overflow-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text-muted);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-full);font-family:var(--ui-font-family);font-weight:var(--ui-font-weight-semibold);box-shadow:0 0 0 2px var(--ui-color-surface);margin-inline-start:-8px}.overflow-badge.size-xs{width:24px;height:24px;font-size:.5625rem}.overflow-badge.size-sm{width:32px;height:32px;font-size:var(--ui-font-size-xs)}.overflow-badge.size-md{width:40px;height:40px;font-size:var(--ui-font-size-sm)}.overflow-badge.size-lg{width:48px;height:48px;font-size:var(--ui-font-size-sm)}.overflow-badge.size-xl{width:64px;height:64px;font-size:var(--ui-font-size-md)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3092
3092
  }
3093
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAvatarGroup, decorators: [{
3093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmAvatarGroup, decorators: [{
3094
3094
  type: Component,
3095
3095
  args: [{ selector: 'llm-avatar-group', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3096
3096
  <ng-content />
@@ -3134,14 +3134,14 @@ class LlmProgress {
3134
3134
  ? '100%'
3135
3135
  : `${(this.clampedValue() / this.max()) * 100}%`, ...(ngDevMode ? [{ debugName: "fillWidth" }] : /* istanbul ignore next */ []));
3136
3136
  hostClasses = computed(() => `variant-${this.variant()} size-${this.size()}${this.indeterminate() ? ' is-indeterminate' : ''}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
3137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
3138
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmProgress, isStandalone: true, selector: "llm-progress", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar", "aria-valuemin": "0" }, properties: { "attr.aria-valuenow": "indeterminate() ? null : clampedValue()", "attr.aria-valuemax": "indeterminate() ? null : max()", "attr.aria-label": "label() || null", "class": "hostClasses()" } }, ngImport: i0, template: `
3137
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
3138
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmProgress, isStandalone: true, selector: "llm-progress", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar", "aria-valuemin": "0" }, properties: { "attr.aria-valuenow": "indeterminate() ? null : clampedValue()", "attr.aria-valuemax": "indeterminate() ? null : max()", "attr.aria-label": "label() || null", "class": "hostClasses()" } }, ngImport: i0, template: `
3139
3139
  <div class="track">
3140
3140
  <div class="fill" [style.width]="fillWidth()"></div>
3141
3141
  </div>
3142
3142
  `, isInline: true, styles: [".llm-progress{display:block;width:100%;font-family:var(--ui-font-family)}.track{position:relative;width:100%;border-radius:var(--ui-radius-full);background-color:var(--ui-color-surface-sunken);overflow:hidden}.llm-progress.size-sm .track{height:6px}.llm-progress.size-md .track{height:10px}.llm-progress.size-lg .track{height:14px}.fill{height:100%;border-radius:var(--ui-radius-full);background-color:var(--ui-color-primary);transition:width var(--ui-transition-normal)}.llm-progress.variant-success .fill{background-color:var(--ui-color-success)}.llm-progress.variant-warning .fill{background-color:var(--ui-color-warning)}.llm-progress.variant-danger .fill{background-color:var(--ui-color-danger)}@keyframes progress-indeterminate{0%{transform:translate(-150%)}to{transform:translate(350%)}}.llm-progress.is-indeterminate .fill{width:40%!important;animation:progress-indeterminate 1.4s var(--ui-ease-in-out) infinite}@media(prefers-reduced-motion:reduce){.llm-progress.is-indeterminate .fill{animation:none;opacity:.5}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3143
3143
  }
3144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmProgress, decorators: [{
3144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmProgress, decorators: [{
3145
3145
  type: Component,
3146
3146
  args: [{ selector: 'llm-progress', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3147
3147
  <div class="track">
@@ -3192,8 +3192,8 @@ class LlmBreadcrumbs {
3192
3192
  unregisterItem(id) {
3193
3193
  this._itemIds.update((ids) => ids.filter((i) => i !== id));
3194
3194
  }
3195
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
3196
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmBreadcrumbs, isStandalone: true, selector: "llm-breadcrumbs", inputs: { separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--llm-separator": "separatorCssVar()" } }, providers: [
3195
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
3196
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmBreadcrumbs, isStandalone: true, selector: "llm-breadcrumbs", inputs: { separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--llm-separator": "separatorCssVar()" } }, providers: [
3197
3197
  {
3198
3198
  provide: LLM_BREADCRUMBS,
3199
3199
  useFactory: (bc) => ({
@@ -3211,7 +3211,7 @@ class LlmBreadcrumbs {
3211
3211
  </nav>
3212
3212
  `, isInline: true, styles: [".llm-breadcrumbs{display:block;font-family:var(--ui-font-family)}.breadcrumbs-list{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0;padding:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-muted)}.llm-breadcrumb-item{display:flex;align-items:center}.llm-breadcrumb-item:after{content:var(--llm-separator, \"\\203a\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}.llm-breadcrumb-item.is-current:after{display:none}.llm-breadcrumb-item .breadcrumb-link{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:var(--ui-spacing-1) var(--ui-spacing-2);margin:calc(var(--ui-spacing-1) * -1) calc(var(--ui-spacing-2) * -1);transition:color var(--ui-transition-fast),background-color var(--ui-transition-fast)}.llm-breadcrumb-item .breadcrumb-link:hover{color:var(--ui-color-text);background-color:var(--ui-color-surface-sunken)}.llm-breadcrumb-item .breadcrumb-link:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.llm-breadcrumb-item .breadcrumb-current{color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3213
3213
  }
3214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbs, decorators: [{
3214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmBreadcrumbs, decorators: [{
3215
3215
  type: Component,
3216
3216
  args: [{ selector: 'llm-breadcrumbs', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
3217
3217
  {
@@ -3251,8 +3251,8 @@ class LlmBreadcrumbItem {
3251
3251
  this.context.unregisterItem(this.myIndex());
3252
3252
  }
3253
3253
  }
3254
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
3255
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmBreadcrumbItem, isStandalone: true, selector: "llm-breadcrumb-item", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-current": "isCurrent()" } }, ngImport: i0, template: `
3254
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
3255
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmBreadcrumbItem, isStandalone: true, selector: "llm-breadcrumb-item", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-current": "isCurrent()" } }, ngImport: i0, template: `
3256
3256
  <li class="item">
3257
3257
  <a
3258
3258
  [attr.href]="href() && !isCurrent() ? href() : null"
@@ -3261,7 +3261,7 @@ class LlmBreadcrumbItem {
3261
3261
  </li>
3262
3262
  `, isInline: true, styles: [".llm-breadcrumbs{display:block;font-family:var(--ui-font-family)}.breadcrumbs-list{display:flex;flex-wrap:wrap;align-items:center;gap:0;list-style:none;margin:0;padding:0;font-size:var(--ui-font-size-sm);color:var(--ui-color-text-muted)}.llm-breadcrumb-item{display:flex;align-items:center}.llm-breadcrumb-item:after{content:var(--llm-separator, \"\\203a\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}.llm-breadcrumb-item.is-current:after{display:none}.llm-breadcrumb-item .breadcrumb-link{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:var(--ui-spacing-1) var(--ui-spacing-2);margin:calc(var(--ui-spacing-1) * -1) calc(var(--ui-spacing-2) * -1);transition:color var(--ui-transition-fast),background-color var(--ui-transition-fast)}.llm-breadcrumb-item .breadcrumb-link:hover{color:var(--ui-color-text);background-color:var(--ui-color-surface-sunken)}.llm-breadcrumb-item .breadcrumb-link:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.llm-breadcrumb-item .breadcrumb-current{color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3263
3263
  }
3264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbItem, decorators: [{
3264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmBreadcrumbItem, decorators: [{
3265
3265
  type: Component,
3266
3266
  args: [{ selector: 'llm-breadcrumb-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3267
3267
  <li class="item">
@@ -3335,8 +3335,8 @@ class LlmPagination {
3335
3335
  goLast() {
3336
3336
  this.goTo(this.pageCount());
3337
3337
  }
3338
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmPagination, deps: [], target: i0.ɵɵFactoryTarget.Component });
3339
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmPagination, isStandalone: true, selector: "llm-pagination", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, pageCount: { classPropertyName: "pageCount", publicName: "pageCount", isSignal: true, isRequired: false, transformFunction: null }, siblingCount: { classPropertyName: "siblingCount", publicName: "siblingCount", isSignal: true, isRequired: false, transformFunction: null }, showFirstLast: { classPropertyName: "showFirstLast", publicName: "showFirstLast", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange" }, ngImport: i0, template: `
3338
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmPagination, deps: [], target: i0.ɵɵFactoryTarget.Component });
3339
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmPagination, isStandalone: true, selector: "llm-pagination", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null }, pageCount: { classPropertyName: "pageCount", publicName: "pageCount", isSignal: true, isRequired: false, transformFunction: null }, siblingCount: { classPropertyName: "siblingCount", publicName: "siblingCount", isSignal: true, isRequired: false, transformFunction: null }, showFirstLast: { classPropertyName: "showFirstLast", publicName: "showFirstLast", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { page: "pageChange" }, ngImport: i0, template: `
3340
3340
  <nav aria-label="Pagination">
3341
3341
  <ul role="list" class="page-list">
3342
3342
  @if (showFirstLast()) {
@@ -3402,7 +3402,7 @@ class LlmPagination {
3402
3402
  </nav>
3403
3403
  `, isInline: true, styles: [".llm-pagination{display:block;font-family:var(--ui-font-family)}.page-list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-spacing-2);list-style:none;margin:0;padding:0}.page-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 var(--ui-spacing-2);border-radius:var(--ui-radius-md);border:1px solid transparent;background:transparent;color:var(--ui-color-text);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),color var(--ui-transition-fast)}.page-btn:hover:not(:disabled){background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.page-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.page-btn.is-active{background-color:var(--ui-color-primary);border-color:var(--ui-color-primary);color:var(--ui-color-text-on-primary);font-weight:var(--ui-font-weight-semibold)}.page-btn.is-active:hover{background-color:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}.page-btn.is-disabled,.page-btn:disabled{opacity:var(--ui-opacity-disabled);pointer-events:none;cursor:default}.ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-sm);-webkit-user-select:none;user-select:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3404
3404
  }
3405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmPagination, decorators: [{
3405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmPagination, decorators: [{
3406
3406
  type: Component,
3407
3407
  args: [{ selector: 'llm-pagination', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3408
3408
  <nav aria-label="Pagination">
@@ -3533,8 +3533,8 @@ class LlmDrawer {
3533
3533
  this.open.set(false);
3534
3534
  }
3535
3535
  }
3536
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawer, deps: [], target: i0.ɵɵFactoryTarget.Component });
3537
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", type: LlmDrawer, isStandalone: true, selector: "llm-drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
3536
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawer, deps: [], target: i0.ɵɵFactoryTarget.Component });
3537
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.13", type: LlmDrawer, isStandalone: true, selector: "llm-drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
3538
3538
  {
3539
3539
  provide: LLM_DRAWER,
3540
3540
  useFactory: (drawer) => ({
@@ -3561,7 +3561,7 @@ class LlmDrawer {
3561
3561
  </dialog>
3562
3562
  `, isInline: true, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3563
3563
  }
3564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawer, decorators: [{
3564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawer, decorators: [{
3565
3565
  type: Component,
3566
3566
  args: [{ selector: 'llm-drawer', standalone: true, imports: [A11yModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
3567
3567
  {
@@ -3598,8 +3598,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
3598
3598
  */
3599
3599
  class LlmDrawerHeader {
3600
3600
  context = inject(LLM_DRAWER);
3601
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
3602
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmDrawerHeader, isStandalone: true, selector: "llm-drawer-header", host: { properties: { "attr.id": "context.headerId" } }, ngImport: i0, template: `
3601
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawerHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
3602
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmDrawerHeader, isStandalone: true, selector: "llm-drawer-header", host: { properties: { "attr.id": "context.headerId" } }, ngImport: i0, template: `
3603
3603
  <ng-content />
3604
3604
  <button
3605
3605
  class="close-btn"
@@ -3626,7 +3626,7 @@ class LlmDrawerHeader {
3626
3626
  </button>
3627
3627
  `, isInline: true, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3628
3628
  }
3629
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerHeader, decorators: [{
3629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawerHeader, decorators: [{
3630
3630
  type: Component,
3631
3631
  args: [{ selector: 'llm-drawer-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3632
3632
  <ng-content />
@@ -3661,10 +3661,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
3661
3661
  * Content slot for `llm-drawer`. Scrollable primary content area.
3662
3662
  */
3663
3663
  class LlmDrawerContent {
3664
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3665
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmDrawerContent, isStandalone: true, selector: "llm-drawer-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3664
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawerContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3665
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmDrawerContent, isStandalone: true, selector: "llm-drawer-content", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3666
3666
  }
3667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerContent, decorators: [{
3667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawerContent, decorators: [{
3668
3668
  type: Component,
3669
3669
  args: [{ selector: 'llm-drawer-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"] }]
3670
3670
  }] });
@@ -3672,10 +3672,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
3672
3672
  * Footer slot for `llm-drawer`. Renders at the bottom with action buttons.
3673
3673
  */
3674
3674
  class LlmDrawerFooter {
3675
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
3676
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmDrawerFooter, isStandalone: true, selector: "llm-drawer-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3675
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawerFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
3676
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmDrawerFooter, isStandalone: true, selector: "llm-drawer-footer", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3677
3677
  }
3678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerFooter, decorators: [{
3678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmDrawerFooter, decorators: [{
3679
3679
  type: Component,
3680
3680
  args: [{ selector: 'llm-drawer-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [".llm-drawer-host{display:contents}.llm-drawer-host dialog{all:unset;position:fixed;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, 0 20px 60px rgba(0, 0, 0, .3));color:var(--ui-color-text);overflow:hidden;transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}.llm-drawer-host dialog[open]{display:flex;transform:translate(0)!important}.llm-drawer-host dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}@starting-style{.llm-drawer-host dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){.llm-drawer-host dialog::backdrop{background:#000000b3}}[data-theme=dark] .llm-drawer-host dialog::backdrop{background:#000000b3}.llm-drawer-host .panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.llm-drawer-host.position-right dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{.llm-drawer-host.position-right dialog[open]{transform:translate(100%)}}.llm-drawer-host.position-left dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{.llm-drawer-host.position-left dialog[open]{transform:translate(-100%)}}.llm-drawer-host.position-top dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{.llm-drawer-host.position-top dialog[open]{transform:translateY(-100%)}}.llm-drawer-host.position-bottom dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{.llm-drawer-host.position-bottom dialog[open]{transform:translateY(100%)}}.llm-drawer-host.position-right.size-sm dialog,.llm-drawer-host.position-left.size-sm dialog{width:20rem}.llm-drawer-host.position-right.size-md dialog,.llm-drawer-host.position-left.size-md dialog{width:28rem}.llm-drawer-host.position-right.size-lg dialog,.llm-drawer-host.position-left.size-lg dialog{width:40rem}.llm-drawer-host.position-right.size-full dialog,.llm-drawer-host.position-left.size-full dialog{width:100vw}.llm-drawer-host.position-top.size-sm dialog,.llm-drawer-host.position-bottom.size-sm dialog{height:12rem}.llm-drawer-host.position-top.size-md dialog,.llm-drawer-host.position-bottom.size-md dialog{height:20rem}.llm-drawer-host.position-top.size-lg dialog,.llm-drawer-host.position-bottom.size-lg dialog{height:32rem}.llm-drawer-host.position-top.size-full dialog,.llm-drawer-host.position-bottom.size-full dialog{height:100dvh}.llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-5) var(--ui-spacing-6);border-bottom:1px solid var(--ui-color-border);font-size:var(--ui-font-size-xl);font-weight:600;letter-spacing:var(--ui-letter-spacing-tight);color:var(--ui-color-text);flex-shrink:0}.llm-drawer-content{display:block;padding:var(--ui-spacing-6);overflow-y:auto;flex:1;color:var(--ui-color-text)}.llm-drawer-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-3);padding:var(--ui-spacing-5) var(--ui-spacing-6);border-top:1px solid var(--ui-color-border);flex-shrink:0}.close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;margin-left:var(--ui-spacing-3);background:transparent;border:none;border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast);line-height:1}.close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}.close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}\n"] }]
3681
3681
  }] });
@@ -3730,8 +3730,8 @@ class LlmTable {
3730
3730
  classes.push('is-sticky-header');
3731
3731
  return classes.join(' ');
3732
3732
  }, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
3733
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
3734
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmTable, isStandalone: true, selector: "llm-table", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_TABLE, useExisting: LlmTable }], ngImport: i0, template: `
3733
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
3734
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmTable, isStandalone: true, selector: "llm-table", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_TABLE, useExisting: LlmTable }], ngImport: i0, template: `
3735
3735
  <!-- The wrapper is the scrollable region — tabindex=0 lets keyboard
3736
3736
  users scroll horizontally through wide tables. role=region +
3737
3737
  aria-label expose it as a labelled landmark for screen readers
@@ -3748,7 +3748,7 @@ class LlmTable {
3748
3748
  </div>
3749
3749
  `, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
3750
3750
  }
3751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTable, decorators: [{
3751
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTable, decorators: [{
3752
3752
  type: Component,
3753
3753
  args: [{ selector: 'llm-table', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3754
3754
  <!-- The wrapper is the scrollable region — tabindex=0 lets keyboard
@@ -3785,10 +3785,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
3785
3785
  * ```
3786
3786
  */
3787
3787
  class LlmThead {
3788
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmThead, deps: [], target: i0.ɵɵFactoryTarget.Component });
3789
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmThead, isStandalone: true, selector: "llm-thead", host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `<thead><ng-content /></thead>`, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3788
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmThead, deps: [], target: i0.ɵɵFactoryTarget.Component });
3789
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmThead, isStandalone: true, selector: "llm-thead", host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `<thead><ng-content /></thead>`, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3790
3790
  }
3791
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmThead, decorators: [{
3791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmThead, decorators: [{
3792
3792
  type: Component,
3793
3793
  args: [{ selector: 'llm-thead', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<thead><ng-content /></thead>`, host: { '[style.display]': '"contents"' }, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"] }]
3794
3794
  }] });
@@ -3813,8 +3813,8 @@ class LlmTbody {
3813
3813
  empty = input(false, ...(ngDevMode ? [{ debugName: "empty" }] : /* istanbul ignore next */ []));
3814
3814
  /** Number of columns to span in the empty-state row. Should match total column count. */
3815
3815
  colSpan = input(1, ...(ngDevMode ? [{ debugName: "colSpan" }] : /* istanbul ignore next */ []));
3816
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTbody, deps: [], target: i0.ɵɵFactoryTarget.Component });
3817
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmTbody, isStandalone: true, selector: "llm-tbody", inputs: { empty: { classPropertyName: "empty", publicName: "empty", isSignal: true, isRequired: false, transformFunction: null }, colSpan: { classPropertyName: "colSpan", publicName: "colSpan", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `
3816
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTbody, deps: [], target: i0.ɵɵFactoryTarget.Component });
3817
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmTbody, isStandalone: true, selector: "llm-tbody", inputs: { empty: { classPropertyName: "empty", publicName: "empty", isSignal: true, isRequired: false, transformFunction: null }, colSpan: { classPropertyName: "colSpan", publicName: "colSpan", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `
3818
3818
  <tbody>
3819
3819
  @if (!empty()) {
3820
3820
  <ng-content />
@@ -3828,7 +3828,7 @@ class LlmTbody {
3828
3828
  </tbody>
3829
3829
  `, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3830
3830
  }
3831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTbody, decorators: [{
3831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTbody, decorators: [{
3832
3832
  type: Component,
3833
3833
  args: [{ selector: 'llm-tbody', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3834
3834
  <tbody>
@@ -3871,8 +3871,8 @@ class LlmTr {
3871
3871
  hostClasses = computed(() => this.selectable() ? 'is-selectable' : '', ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
3872
3872
  /** @internal — applied to inner <tr> for CSS selection styling */
3873
3873
  innerClasses = computed(() => this.selected() ? 'is-selected' : '', ...(ngDevMode ? [{ debugName: "innerClasses" }] : /* istanbul ignore next */ []));
3874
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTr, deps: [], target: i0.ɵɵFactoryTarget.Component });
3875
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmTr, isStandalone: true, selector: "llm-tr", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, rowId: { classPropertyName: "rowId", publicName: "rowId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class": "hostClasses()", "style.display": "\"contents\"" } }, ngImport: i0, template: `
3874
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTr, deps: [], target: i0.ɵɵFactoryTarget.Component });
3875
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmTr, isStandalone: true, selector: "llm-tr", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, rowId: { classPropertyName: "rowId", publicName: "rowId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class": "hostClasses()", "style.display": "\"contents\"" } }, ngImport: i0, template: `
3876
3876
  <tr
3877
3877
  [attr.aria-selected]="selectable() ? selected() : null"
3878
3878
  [class]="innerClasses()"
@@ -3886,7 +3886,7 @@ class LlmTr {
3886
3886
  </tr>
3887
3887
  `, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], dependencies: [{ kind: "component", type: LlmCheckbox, selector: "llm-checkbox", inputs: ["checked", "touched", "indeterminate", "disabled", "invalid", "required", "name", "errors"], outputs: ["checkedChange", "touchedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3888
3888
  }
3889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTr, decorators: [{
3889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTr, decorators: [{
3890
3890
  type: Component,
3891
3891
  args: [{ selector: 'llm-tr', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LlmCheckbox], template: `
3892
3892
  <tr
@@ -3956,8 +3956,8 @@ class LlmTh {
3956
3956
  const next = current === null ? 'asc' : current === 'asc' ? 'desc' : null;
3957
3957
  this.sort.emit(next);
3958
3958
  }
3959
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTh, deps: [], target: i0.ɵɵFactoryTarget.Component });
3960
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmTh, isStandalone: true, selector: "llm-th", inputs: { sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sort" }, host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `
3959
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTh, deps: [], target: i0.ɵɵFactoryTarget.Component });
3960
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmTh, isStandalone: true, selector: "llm-th", inputs: { sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, sortDirection: { classPropertyName: "sortDirection", publicName: "sortDirection", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sort" }, host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `
3961
3961
  <th
3962
3962
  [attr.aria-sort]="ariaSort()"
3963
3963
  [style.width]="width() ?? null"
@@ -3984,7 +3984,7 @@ class LlmTh {
3984
3984
  </th>
3985
3985
  `, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3986
3986
  }
3987
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTh, decorators: [{
3987
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTh, decorators: [{
3988
3988
  type: Component,
3989
3989
  args: [{ selector: 'llm-th', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
3990
3990
  <th
@@ -4027,14 +4027,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
4027
4027
  class LlmTd {
4028
4028
  /** Text alignment of the cell content. */
4029
4029
  align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
4030
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTd, deps: [], target: i0.ɵɵFactoryTarget.Component });
4031
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmTd, isStandalone: true, selector: "llm-td", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `
4030
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTd, deps: [], target: i0.ɵɵFactoryTarget.Component });
4031
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmTd, isStandalone: true, selector: "llm-td", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "\"contents\"" } }, ngImport: i0, template: `
4032
4032
  <td [class]="'align-' + align()">
4033
4033
  <ng-content />
4034
4034
  </td>
4035
4035
  `, isInline: true, styles: [".llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.llm-table-wrapper{width:100%;overflow-x:auto}.llm-table table{width:100%;border-collapse:collapse}.llm-table thead th{font-size:var(--ui-font-size-xs);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text-muted);letter-spacing:var(--ui-letter-spacing-wide);text-transform:uppercase;border-bottom:2px solid var(--ui-color-border);background-color:var(--ui-color-surface);padding:var(--ui-spacing-3) var(--ui-spacing-4);text-align:start;white-space:nowrap}.llm-table tbody td{border-bottom:1px solid var(--ui-color-border);padding:var(--ui-spacing-3) var(--ui-spacing-4);vertical-align:middle;background-color:var(--ui-color-surface);transition:background-color var(--ui-transition-fast)}.llm-table.size-sm thead th,.llm-table.size-sm tbody td{padding:var(--ui-spacing-2) var(--ui-spacing-3);font-size:var(--ui-font-size-xs)}.llm-table.size-md thead th,.llm-table.size-md tbody td{padding:var(--ui-spacing-3) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}.llm-table.size-lg thead th,.llm-table.size-lg tbody td{padding:var(--ui-spacing-4) var(--ui-spacing-6);font-size:var(--ui-font-size-md)}.llm-table.variant-striped tbody tr:nth-child(2n) td{background-color:var(--ui-color-surface-sunken)}.llm-table.variant-bordered thead th,.llm-table.variant-bordered tbody td{border:1px solid var(--ui-color-border)}th.align-start,td.align-start{text-align:start}th.align-center,td.align-center{text-align:center}th.align-end,td.align-end{text-align:end}.llm-table tbody tr:hover td{background-color:var(--ui-color-surface-sunken)}.llm-table tbody tr.is-selected td,.llm-table tbody tr.is-selected:hover td{background-color:var(--ui-color-primary-light)}.llm-tr-select-cell{width:2.75rem;text-align:center}.llm-tr-select-cell .llm-checkbox label{justify-content:center}.llm-table.is-sticky-header thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 0 var(--ui-color-border)}.llm-th-sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;font:inherit;color:inherit;font-weight:inherit;width:100%}.llm-th-sort-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-sm)}.llm-th-sort-icon{flex-shrink:0}.llm-th-sort-asc-arrow,.llm-th-sort-desc-arrow{opacity:.25;transition:opacity var(--ui-transition-fast)}th.is-sorted .llm-th-sort-icon{color:var(--ui-color-primary)}th.sort-asc .llm-th-sort-asc-arrow,th.sort-desc .llm-th-sort-desc-arrow{opacity:1}.llm-tbody-empty-cell{text-align:center;padding:var(--ui-spacing-12) var(--ui-spacing-4)!important;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-md);background-color:var(--ui-color-surface)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4036
4036
  }
4037
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTd, decorators: [{
4037
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmTd, decorators: [{
4038
4038
  type: Component,
4039
4039
  args: [{ selector: 'llm-td', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4040
4040
  <td [class]="'align-' + align()">
@@ -4113,8 +4113,8 @@ class LlmStepper {
4113
4113
  return;
4114
4114
  this.activeStep.set(prev);
4115
4115
  }
4116
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
4117
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmStepper, isStandalone: true, selector: "llm-stepper", inputs: { activeStep: { classPropertyName: "activeStep", publicName: "activeStep", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeStep: "activeStepChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_STEPPER, useExisting: LlmStepper }], ngImport: i0, template: `
4116
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
4117
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmStepper, isStandalone: true, selector: "llm-stepper", inputs: { activeStep: { classPropertyName: "activeStep", publicName: "activeStep", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeStep: "activeStepChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_STEPPER, useExisting: LlmStepper }], ngImport: i0, template: `
4118
4118
  <div class="stepper-header" role="tablist">
4119
4119
  @for (step of steps(); track step.id; let i = $index; let last = $last) {
4120
4120
  <div
@@ -4172,7 +4172,7 @@ class LlmStepper {
4172
4172
  </div>
4173
4173
  `, isInline: true, styles: [".llm-stepper{display:block;font-family:var(--ui-font-family)}.stepper-header{display:flex;align-items:center}.step-item{display:flex;flex-direction:column;align-items:center;min-width:0}.step-connector{flex:1;height:2px;background:var(--ui-color-border);border-radius:var(--ui-radius-full);transition:background var(--ui-transition-normal) var(--ui-ease-out);min-width:var(--ui-spacing-4)}.step-connector.is-active{background:var(--ui-color-primary)}.step-circle{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:2px solid var(--ui-color-border);background:var(--ui-color-surface);color:var(--ui-color-text-muted);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-semibold);cursor:pointer;transition:var(--ui-transition-normal) var(--ui-ease-out);transition-property:border-color,background-color,color,box-shadow;-webkit-user-select:none;user-select:none;flex-shrink:0}.step-circle:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.step-circle:disabled{cursor:not-allowed}.step-text{display:flex;flex-direction:column;align-items:center;margin-top:var(--ui-spacing-2);text-align:center}.step-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text-muted);white-space:nowrap}.step-description{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);margin-top:2px}.step-optional{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);font-style:italic;margin-top:2px}.stepper-content{margin-top:var(--ui-spacing-6)}.stepper-content [role=tabpanel][hidden]{display:none}.step-item.is-active .step-circle{border-color:var(--ui-color-primary);color:var(--ui-color-primary)}.step-item.is-active .step-label{color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}.step-item.is-completed .step-circle{border-color:var(--ui-color-primary);background:var(--ui-color-primary);color:var(--ui-color-text-on-primary)}.step-item.is-completed .step-label{color:var(--ui-color-text)}.step-item.is-error .step-circle{border-color:var(--ui-color-danger);background:var(--ui-color-danger);color:var(--ui-color-text-on-danger, #ffffff)}.step-item.is-error .step-label{color:var(--ui-color-danger)}.step-item.is-disabled .step-circle{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.step-item.is-disabled .step-label{opacity:var(--ui-opacity-disabled)}.llm-stepper.orientation-vertical .stepper-header{flex-direction:column;align-items:stretch}.llm-stepper.orientation-vertical .step-item{flex-direction:row;align-items:flex-start;gap:var(--ui-spacing-3)}.llm-stepper.orientation-vertical .step-text{align-items:flex-start;text-align:left;margin-top:0;padding-top:var(--ui-spacing-1)}.llm-stepper.orientation-vertical .step-connector{flex:none;width:2px;height:var(--ui-spacing-6);margin-left:17px;min-width:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4174
4174
  }
4175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStepper, decorators: [{
4175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmStepper, decorators: [{
4176
4176
  type: Component,
4177
4177
  args: [{ selector: 'llm-stepper', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4178
4178
  <div class="stepper-header" role="tablist">
@@ -4292,8 +4292,8 @@ class LlmStep {
4292
4292
  ngOnDestroy() {
4293
4293
  this.context.unregisterStep(this.id);
4294
4294
  }
4295
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStep, deps: [], target: i0.ɵɵFactoryTarget.Component });
4296
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmStep, isStandalone: true, selector: "llm-step", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, completed: { classPropertyName: "completed", publicName: "completed", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "optional", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
4295
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmStep, deps: [], target: i0.ɵɵFactoryTarget.Component });
4296
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmStep, isStandalone: true, selector: "llm-step", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, completed: { classPropertyName: "completed", publicName: "completed", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, optional: { classPropertyName: "optional", publicName: "optional", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
4297
4297
  @if (isActive()) {
4298
4298
  <div
4299
4299
  role="tabpanel"
@@ -4306,7 +4306,7 @@ class LlmStep {
4306
4306
  }
4307
4307
  `, isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4308
4308
  }
4309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStep, decorators: [{
4309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmStep, decorators: [{
4310
4310
  type: Component,
4311
4311
  args: [{ selector: 'llm-step', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4312
4312
  @if (isActive()) {
@@ -4352,8 +4352,8 @@ class LlmCodeBlock {
4352
4352
  setTimeout(() => this.copied.set(false), 1800);
4353
4353
  });
4354
4354
  }
4355
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCodeBlock, deps: [], target: i0.ɵɵFactoryTarget.Component });
4356
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmCodeBlock, isStandalone: true, selector: "llm-code-block", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, filename: { classPropertyName: "filename", publicName: "filename", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, showLineNumbers: { classPropertyName: "showLineNumbers", publicName: "showLineNumbers", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"llm-code-block\"" } }, ngImport: i0, template: `
4355
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCodeBlock, deps: [], target: i0.ɵɵFactoryTarget.Component });
4356
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmCodeBlock, isStandalone: true, selector: "llm-code-block", inputs: { code: { classPropertyName: "code", publicName: "code", isSignal: true, isRequired: false, transformFunction: null }, language: { classPropertyName: "language", publicName: "language", isSignal: true, isRequired: false, transformFunction: null }, filename: { classPropertyName: "filename", publicName: "filename", isSignal: true, isRequired: false, transformFunction: null }, copyable: { classPropertyName: "copyable", publicName: "copyable", isSignal: true, isRequired: false, transformFunction: null }, showLineNumbers: { classPropertyName: "showLineNumbers", publicName: "showLineNumbers", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"llm-code-block\"" } }, ngImport: i0, template: `
4357
4357
  <div class="code-block-header">
4358
4358
  <span class="code-block-label">{{ displayLabel() }}</span>
4359
4359
  @if (copyable()) {
@@ -4392,7 +4392,7 @@ class LlmCodeBlock {
4392
4392
  </div>
4393
4393
  `, isInline: true, styles: [".llm-code-block{display:block;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden;font-family:var(--ui-font-family)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface-raised);border-bottom:1px solid var(--ui-color-border);min-height:2.5rem}.code-block-label{font-family:var(--ui-font-mono, \"Menlo\", \"Monaco\", \"Courier New\", monospace);font-size:.72rem;font-weight:600;letter-spacing:.03em;color:var(--ui-color-text-muted);text-transform:lowercase;-webkit-user-select:none;user-select:none}.code-block-copy{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);background:transparent;color:var(--ui-color-text-muted);font-family:inherit;font-size:.72rem;font-weight:500;cursor:pointer;transition:color var(--ui-transition-fast),background var(--ui-transition-fast),border-color var(--ui-transition-fast);white-space:nowrap}.code-block-copy:hover{color:var(--ui-color-text);background:var(--ui-color-surface);border-color:var(--ui-color-input-border)}.code-block-copy:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.code-block-body{background:var(--ui-color-surface);overflow-x:auto}.code-block-pre{margin:0;padding:var(--ui-spacing-4);font-family:var(--ui-font-mono, \"Menlo\", \"Monaco\", \"Courier New\", monospace);font-size:var(--ui-font-size-sm);line-height:1.65;color:var(--ui-color-text);white-space:pre;tab-size:2}.code-line{display:flex}.code-line-number{display:inline-block;min-width:2rem;padding-right:var(--ui-spacing-3);color:var(--ui-color-text-muted);text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid var(--ui-color-border);margin-right:var(--ui-spacing-3);flex-shrink:0;opacity:.6}.code-line-text{flex:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4394
4394
  }
4395
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCodeBlock, decorators: [{
4395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmCodeBlock, decorators: [{
4396
4396
  type: Component,
4397
4397
  args: [{ selector: 'llm-code-block', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4398
4398
  <div class="code-block-header">
@@ -4516,8 +4516,8 @@ class LlmChat {
4516
4516
  this.open.set(false);
4517
4517
  }
4518
4518
  }
4519
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChat, deps: [], target: i0.ɵɵFactoryTarget.Component });
4520
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmChat, isStandalone: true, selector: "llm-chat", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
4519
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChat, deps: [], target: i0.ɵɵFactoryTarget.Component });
4520
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmChat, isStandalone: true, selector: "llm-chat", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange" }, host: { properties: { "class": "hostClasses()" } }, providers: [
4521
4521
  {
4522
4522
  provide: LLM_CHAT,
4523
4523
  useFactory: (chat) => ({
@@ -4573,7 +4573,7 @@ class LlmChat {
4573
4573
  }
4574
4574
  `, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4575
4575
  }
4576
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChat, decorators: [{
4576
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChat, decorators: [{
4577
4577
  type: Component,
4578
4578
  args: [{ selector: 'llm-chat', standalone: true, imports: [A11yModule, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
4579
4579
  {
@@ -4639,8 +4639,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
4639
4639
  */
4640
4640
  class LlmChatHeader {
4641
4641
  context = inject(LLM_CHAT);
4642
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
4643
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmChatHeader, isStandalone: true, selector: "llm-chat-header", host: { properties: { "attr.id": "context.headerId" } }, ngImport: i0, template: `
4642
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
4643
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmChatHeader, isStandalone: true, selector: "llm-chat-header", host: { properties: { "attr.id": "context.headerId" } }, ngImport: i0, template: `
4644
4644
  <div class="title-block">
4645
4645
  <ng-content />
4646
4646
  </div>
@@ -4671,7 +4671,7 @@ class LlmChatHeader {
4671
4671
  }
4672
4672
  `, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4673
4673
  }
4674
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatHeader, decorators: [{
4674
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatHeader, decorators: [{
4675
4675
  type: Component,
4676
4676
  args: [{ selector: 'llm-chat-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4677
4677
  <div class="title-block">
@@ -4725,10 +4725,10 @@ class LlmChatMessages {
4725
4725
  this.destroyRef.onDestroy(() => observer.disconnect());
4726
4726
  });
4727
4727
  }
4728
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatMessages, deps: [], target: i0.ɵɵFactoryTarget.Component });
4729
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmChatMessages, isStandalone: true, selector: "llm-chat-messages", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4728
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatMessages, deps: [], target: i0.ɵɵFactoryTarget.Component });
4729
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: LlmChatMessages, isStandalone: true, selector: "llm-chat-messages", ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4730
4730
  }
4731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatMessages, decorators: [{
4731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatMessages, decorators: [{
4732
4732
  type: Component,
4733
4733
  args: [{ selector: 'llm-chat-messages', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"] }]
4734
4734
  }], ctorParameters: () => [] });
@@ -4748,10 +4748,10 @@ class LlmChatMessage {
4748
4748
  /** Marks the message as failed (red dashed border, used in error state). */
4749
4749
  failed = input(false, ...(ngDevMode ? [{ debugName: "failed" }] : /* istanbul ignore next */ []));
4750
4750
  hostClasses = computed(() => `role-${this.role()}${this.failed() ? ' is-failed' : ''}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
4751
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatMessage, deps: [], target: i0.ɵɵFactoryTarget.Component });
4752
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmChatMessage, isStandalone: true, selector: "llm-chat-message", inputs: { role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, failed: { classPropertyName: "failed", publicName: "failed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "\"listitem\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4751
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatMessage, deps: [], target: i0.ɵɵFactoryTarget.Component });
4752
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmChatMessage, isStandalone: true, selector: "llm-chat-message", inputs: { role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, failed: { classPropertyName: "failed", publicName: "failed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "\"listitem\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4753
4753
  }
4754
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatMessage, decorators: [{
4754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatMessage, decorators: [{
4755
4755
  type: Component,
4756
4756
  args: [{ selector: 'llm-chat-message', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, host: {
4757
4757
  '[class]': 'hostClasses()',
@@ -4774,15 +4774,15 @@ class LlmChatTyping {
4774
4774
  /** When true, renders as an inline cursor without bubble chrome. */
4775
4775
  inline = input(false, ...(ngDevMode ? [{ debugName: "inline" }] : /* istanbul ignore next */ []));
4776
4776
  hostClasses = computed(() => this.inline() ? 'is-inline' : '', ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
4777
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatTyping, deps: [], target: i0.ɵɵFactoryTarget.Component });
4778
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmChatTyping, isStandalone: true, selector: "llm-chat-typing", inputs: { inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "\"status\"", "attr.aria-live": "\"polite\"" } }, ngImport: i0, template: `
4777
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatTyping, deps: [], target: i0.ɵɵFactoryTarget.Component });
4778
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LlmChatTyping, isStandalone: true, selector: "llm-chat-typing", inputs: { inline: { classPropertyName: "inline", publicName: "inline", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()", "attr.role": "\"status\"", "attr.aria-live": "\"polite\"" } }, ngImport: i0, template: `
4779
4779
  <span class="dot"></span>
4780
4780
  <span class="dot"></span>
4781
4781
  <span class="dot"></span>
4782
4782
  <span class="sr-only">Assistant is typing</span>
4783
4783
  `, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4784
4784
  }
4785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatTyping, decorators: [{
4785
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatTyping, decorators: [{
4786
4786
  type: Component,
4787
4787
  args: [{ selector: 'llm-chat-typing', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4788
4788
  <span class="dot"></span>
@@ -4810,8 +4810,8 @@ class LlmChatSuggestion {
4810
4810
  hint = input('', ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
4811
4811
  /** Fires the label string when the chip is activated. */
4812
4812
  selected = output();
4813
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatSuggestion, deps: [], target: i0.ɵɵFactoryTarget.Component });
4814
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmChatSuggestion, isStandalone: true, selector: "llm-chat-suggestion", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: `
4813
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatSuggestion, deps: [], target: i0.ɵɵFactoryTarget.Component });
4814
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmChatSuggestion, isStandalone: true, selector: "llm-chat-suggestion", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, ngImport: i0, template: `
4815
4815
  <button type="button" class="chip" (click)="selected.emit(label())">
4816
4816
  <span class="chip-label">{{ label() }}</span>
4817
4817
  @if (hint()) {
@@ -4820,7 +4820,7 @@ class LlmChatSuggestion {
4820
4820
  </button>
4821
4821
  `, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4822
4822
  }
4823
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatSuggestion, decorators: [{
4823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatSuggestion, decorators: [{
4824
4824
  type: Component,
4825
4825
  args: [{ selector: 'llm-chat-suggestion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4826
4826
  <button type="button" class="chip" (click)="selected.emit(label())">
@@ -4887,8 +4887,8 @@ class LlmChatInput {
4887
4887
  this.send.emit(text);
4888
4888
  this.value.set('');
4889
4889
  }
4890
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
4891
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: LlmChatInput, isStandalone: true, selector: "llm-chat-input", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", send: "send", stop: "stop" }, ngImport: i0, template: `
4890
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatInput, deps: [], target: i0.ɵɵFactoryTarget.Component });
4891
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LlmChatInput, isStandalone: true, selector: "llm-chat-input", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", send: "send", stop: "stop" }, ngImport: i0, template: `
4892
4892
  <textarea
4893
4893
  class="field"
4894
4894
  [value]="value()"
@@ -4919,7 +4919,7 @@ class LlmChatInput {
4919
4919
  }
4920
4920
  `, isInline: true, styles: [":host(llm-chat){display:contents}.surface{display:flex;flex-direction:column;background:var(--ui-color-surface);color:var(--ui-color-text);overflow:hidden}:host(.variant-drawer) dialog{all:unset;position:fixed;inset:0 0 0 auto;height:100dvh;width:28rem;display:none;flex-direction:column;background:var(--ui-color-surface);box-shadow:var(--ui-shadow-xl, -8px 0 32px rgba(0, 0, 0, .12));color:var(--ui-color-text);overflow:hidden;transform:translate(100%);transition:transform var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) dialog[open]{display:flex;transform:translate(0)}@starting-style{:host(.variant-drawer) dialog[open]{transform:translate(100%)}}:host(.variant-drawer) dialog::backdrop{background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity var(--ui-duration-slow) var(--ui-ease-out, ease-out),display var(--ui-duration-slow) allow-discrete,overlay var(--ui-duration-slow) allow-discrete}:host(.variant-drawer) .drawer-surface{width:100%;height:100%}:host(.variant-popup) .popup-surface{position:fixed;bottom:calc(var(--ui-spacing-6) + 3.5rem + var(--ui-spacing-4));right:var(--ui-spacing-6);width:23.75rem;height:35rem;border-radius:var(--ui-radius-xl);box-shadow:0 12px 32px #0000002e;z-index:100}:host(.variant-popup) .fab-bubble{position:fixed;bottom:var(--ui-spacing-6);right:var(--ui-spacing-6);width:3.5rem;height:3.5rem;border-radius:var(--ui-radius-full);background:var(--ui-color-brand-ai, #b5e61c);color:var(--ui-color-text);border:none;font-family:var(--ui-font-family);font-size:var(--ui-font-size-lg);font-weight:var(--ui-font-weight-semibold);cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform var(--ui-transition-fast),box-shadow var(--ui-transition-fast);z-index:101}:host(.variant-popup) .fab-bubble:hover{transform:scale(1.05);box-shadow:0 8px 20px #00000038}:host(.variant-popup) .fab-bubble:focus-visible{outline:none;box-shadow:var(--ui-focus-ring),0 6px 16px #0000002e}:host(.variant-inline) .inline-surface{width:100%;height:100%;min-height:24rem;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-xl)}:host(.variant-inline) llm-chat-header .close-btn{display:none}:host(llm-chat-header){display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-3);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-bottom:1px solid var(--ui-color-border);flex-shrink:0}:host(llm-chat-header) .title-block{display:flex;align-items:center;gap:var(--ui-spacing-3);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);color:var(--ui-color-text);letter-spacing:var(--ui-letter-spacing-tight);flex:1;min-width:0}:host(llm-chat-header) .close-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-sm);cursor:pointer;color:var(--ui-color-text-muted);transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast)}:host(llm-chat-header) .close-btn:hover{background-color:var(--ui-color-surface-sunken);color:var(--ui-color-text)}:host(llm-chat-header) .close-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-messages){display:flex;flex-direction:column;gap:var(--ui-spacing-3);padding:var(--ui-spacing-4);overflow-y:auto;overflow-anchor:auto;scroll-behavior:smooth;flex:1;background:var(--ui-color-surface)}:host(llm-chat-message){display:block;max-width:85%;padding:var(--ui-spacing-3) var(--ui-spacing-4);border-radius:var(--ui-radius-lg);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);word-wrap:break-word}:host(llm-chat-message.role-assistant),:host(llm-chat-message.role-system){background:var(--ui-color-surface-sunken);color:var(--ui-color-text);align-self:flex-start}:host(llm-chat-message.role-user){background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);align-self:flex-end}:host(llm-chat-message.role-system){font-style:italic;color:var(--ui-color-text-muted)}:host(llm-chat-message.is-failed){background:var(--ui-color-surface-sunken);border:1px dashed var(--ui-color-danger);color:var(--ui-color-text)}:host(llm-chat-typing){display:inline-flex;align-items:center;gap:var(--ui-spacing-1);padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-sunken);border-radius:var(--ui-radius-lg);align-self:flex-start}:host(llm-chat-typing) .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--ui-color-text-muted);animation:llm-chat-typing 1.4s infinite ease-in-out}:host(llm-chat-typing) .dot:nth-child(2){animation-delay:.16s}:host(llm-chat-typing) .dot:nth-child(3){animation-delay:.32s}:host(llm-chat-typing.is-inline){display:inline-flex;padding:0;margin-left:var(--ui-spacing-1);background:transparent;border-radius:0;vertical-align:baseline;align-self:auto}:host(llm-chat-typing.is-inline) .dot{width:.25rem;height:.25rem}@keyframes llm-chat-typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){:host(llm-chat-typing) .dot{animation:none;opacity:.6}}:host(llm-chat-typing) .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:host(llm-chat-suggestion){display:block}:host(llm-chat-suggestion) .chip{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ui-spacing-1);width:100%;padding:var(--ui-spacing-3) var(--ui-spacing-4);background:var(--ui-color-surface);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);font-family:var(--ui-font-family);text-align:left;cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}:host(llm-chat-suggestion) .chip:hover{background-color:var(--ui-color-surface-sunken);border-color:var(--ui-color-border-hover)}:host(llm-chat-suggestion) .chip:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(llm-chat-suggestion) .chip-label{font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text)}:host(llm-chat-suggestion) .chip-hint{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted)}:host(llm-chat-input){display:flex;align-items:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-3) var(--ui-spacing-4);border-top:1px solid var(--ui-color-border);background:var(--ui-color-surface);flex-shrink:0}:host(llm-chat-input) .field{flex:1;min-width:0;padding:var(--ui-spacing-2) var(--ui-spacing-3);border:1px solid var(--ui-color-input-border, var(--ui-color-border));border-radius:var(--ui-radius-md);background:var(--ui-color-surface-sunken);color:var(--ui-color-text);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);line-height:var(--ui-line-height-normal);resize:none;transition:border-color var(--ui-transition-fast)}:host(llm-chat-input) .field::placeholder{color:var(--ui-color-text-muted)}:host(llm-chat-input) .field:hover:not(:disabled){border-color:var(--ui-color-input-border-hover, var(--ui-color-border-hover))}:host(llm-chat-input) .field:focus-visible{outline:none;border-color:var(--ui-color-primary);box-shadow:var(--ui-focus-ring)}:host(llm-chat-input) .field:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:var(--ui-spacing-2) var(--ui-spacing-4);border:1px solid transparent;border-radius:var(--ui-radius-md);font-family:var(--ui-font-family);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);cursor:pointer;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),transform var(--ui-transition-fast)}:host(llm-chat-input) .action-btn.variant-primary{background:var(--ui-color-primary);color:var(--ui-color-text-on-primary);border-color:var(--ui-color-primary)}:host(llm-chat-input) .action-btn.variant-primary:hover:not(:disabled){background:var(--ui-color-primary-hover);border-color:var(--ui-color-primary-hover)}:host(llm-chat-input) .action-btn.variant-danger{background:var(--ui-color-danger);color:var(--ui-color-text-on-danger);border-color:var(--ui-color-danger)}:host(llm-chat-input) .action-btn.variant-danger:hover{background:var(--ui-color-danger-hover);border-color:var(--ui-color-danger-hover)}:host(llm-chat-input) .action-btn:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(llm-chat-input) .action-btn:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}:host(.status-streaming) llm-chat-input .field{cursor:wait}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4921
4921
  }
4922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmChatInput, decorators: [{
4922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LlmChatInput, decorators: [{
4923
4923
  type: Component,
4924
4924
  args: [{ selector: 'llm-chat-input', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
4925
4925
  <textarea