@atelier-ui/angular 0.0.11 → 0.0.13
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.
- package/README.md +34 -4
- package/fesm2022/atelier-ui-angular.mjs +944 -183
- package/fesm2022/atelier-ui-angular.mjs.map +1 -1
- package/package.json +3 -3
- package/types/atelier-ui-angular.d.ts +238 -23
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, ChangeDetectionStrategy, Component, model, viewChild, effect, InjectionToken, inject, ElementRef, signal, output, Directive, ViewEncapsulation,
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component, model, viewChild, effect, InjectionToken, inject, ElementRef, signal, output, Injector, viewChildren, Directive, ViewEncapsulation, Injectable, DestroyRef, untracked, contentChildren } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/cdk/text-field';
|
|
4
4
|
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
5
5
|
import * as i1$1 from '@angular/cdk/a11y';
|
|
6
|
-
import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
|
6
|
+
import { FocusKeyManager, ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
|
7
|
+
import { createFlexibleConnectedPositionStrategy, createRepositionScrollStrategy, createOverlayRef } from '@angular/cdk/overlay';
|
|
8
|
+
import { DomPortal, ComponentPortal } from '@angular/cdk/portal';
|
|
7
9
|
import * as i1$2 from '@angular/cdk/accordion';
|
|
8
10
|
import { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';
|
|
9
11
|
import * as i1$3 from '@angular/cdk/menu';
|
|
10
12
|
import { CdkMenuTrigger, CdkMenu, CdkMenuItem } from '@angular/cdk/menu';
|
|
11
|
-
import { createFlexibleConnectedPositionStrategy, createRepositionScrollStrategy, createOverlayRef } from '@angular/cdk/overlay';
|
|
12
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Accessible button component with visual variants and sizes.
|
|
@@ -77,13 +77,13 @@ class LlmCard {
|
|
|
77
77
|
padding = input('md', ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
|
|
78
78
|
hostClasses = computed(() => `variant-${this.variant()} padding-${this.padding()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
79
79
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
-
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 } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: ["llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
80
|
+
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 } }, host: { properties: { "class": "hostClasses()" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
81
81
|
}
|
|
82
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCard, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'llm-card', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, host: {
|
|
85
85
|
'[class]': 'hostClasses()',
|
|
86
|
-
}, styles: ["llm-card{display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
86
|
+
}, styles: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"] }]
|
|
87
87
|
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }] } });
|
|
88
88
|
/**
|
|
89
89
|
* Header slot for `llm-card`. Renders above the main content with a bottom separator.
|
|
@@ -95,11 +95,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
95
95
|
*/
|
|
96
96
|
class LlmCardHeader {
|
|
97
97
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
98
|
-
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);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
98
|
+
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: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
99
99
|
}
|
|
100
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardHeader, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
|
-
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);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
102
|
+
args: [{ selector: 'llm-card-header', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"] }]
|
|
103
103
|
}] });
|
|
104
104
|
/**
|
|
105
105
|
* Content slot for `llm-card`. Primary content area of the card.
|
|
@@ -111,11 +111,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
111
111
|
*/
|
|
112
112
|
class LlmCardContent {
|
|
113
113
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
-
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);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
114
|
+
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: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
115
115
|
}
|
|
116
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardContent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
|
-
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);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
118
|
+
args: [{ selector: 'llm-card-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"] }]
|
|
119
119
|
}] });
|
|
120
120
|
/**
|
|
121
121
|
* Footer slot for `llm-card`. Renders below the main content, typically holds actions.
|
|
@@ -129,11 +129,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
129
129
|
*/
|
|
130
130
|
class LlmCardFooter {
|
|
131
131
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
132
|
-
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);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
132
|
+
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: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
133
133
|
}
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCardFooter, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
|
-
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);overflow:hidden}llm-card.variant-elevated{box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}llm-card.variant-outlined{border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}llm-card.variant-flat{background-color:var(--ui-color-surface-sunken)}llm-card.padding-none
|
|
136
|
+
args: [{ selector: 'llm-card-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-card){display:block;border-radius:var(--ui-radius-xl);background-color:var(--ui-color-surface);overflow:hidden}:host(llm-card.variant-elevated){box-shadow:var(--ui-shadow-md);border:1px solid var(--ui-color-border)}:host(llm-card.variant-outlined){border:1px solid var(--ui-color-border);background-color:var(--ui-color-surface)}:host(llm-card.variant-flat){background-color:var(--ui-color-surface-sunken)}:host(llm-card.padding-none){--llm-card-padding: 0}:host(llm-card.padding-sm){--llm-card-padding: var(--ui-spacing-3)}:host(llm-card.padding-md){--llm-card-padding: var(--ui-spacing-4)}:host(llm-card.padding-lg){--llm-card-padding: var(--ui-spacing-6)}:host(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);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-content){display:block;color:var(--ui-color-text);line-height:var(--ui-line-height-normal);padding:var(--llm-card-padding, var(--ui-spacing-4))}:host(llm-card-footer){display:flex;align-items:center;gap:var(--ui-spacing-2);border-top:1px solid var(--ui-color-border);padding:var(--llm-card-padding, var(--ui-spacing-4))}\n"] }]
|
|
137
137
|
}] });
|
|
138
138
|
|
|
139
139
|
/**
|
|
@@ -163,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
163
163
|
}, 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:color-mix(in srgb,var(--ui-color-success) 12%,transparent);color:var(--ui-color-success);border:1px solid color-mix(in srgb,var(--ui-color-success) 25%,transparent)}:host(.variant-warning){background-color:color-mix(in srgb,var(--ui-color-warning) 12%,transparent);color:var(--ui-color-warning);border:1px solid color-mix(in srgb,var(--ui-color-warning) 25%,transparent)}:host(.variant-danger){background-color:color-mix(in srgb,var(--ui-color-danger) 12%,transparent);color:var(--ui-color-danger);border:1px solid color-mix(in srgb,var(--ui-color-danger) 25%,transparent)}:host(.variant-info){background-color:color-mix(in srgb,var(--ui-color-info) 12%,transparent);color:var(--ui-color-info);border:1px solid color-mix(in srgb,var(--ui-color-info) 25%,transparent)}\n"] }]
|
|
164
164
|
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
|
|
165
165
|
|
|
166
|
-
let nextId$
|
|
166
|
+
let nextId$c = 0;
|
|
167
167
|
/**
|
|
168
168
|
* Accessible text input component for use with Angular Signal Forms.
|
|
169
169
|
*
|
|
@@ -195,7 +195,7 @@ class LlmInput {
|
|
|
195
195
|
/** The input's name attribute. Bound by [formField] directive. */
|
|
196
196
|
name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
197
197
|
/** @internal */
|
|
198
|
-
errorId = `llm-input-errors-${nextId$
|
|
198
|
+
errorId = `llm-input-errors-${nextId$c++}`;
|
|
199
199
|
/** @internal */
|
|
200
200
|
showErrors = computed(() => this.touched() && this.invalid() && this.errors().length > 0, ...(ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []));
|
|
201
201
|
/** @internal */
|
|
@@ -268,7 +268,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
268
268
|
}, styles: [":host{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}input{display:block;width:100%;padding:.625rem var(--ui-spacing-3);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);box-shadow:inset 0 1px 2px #0000000a;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}input::placeholder{color:var(--ui-color-placeholder)}input:hover:not(:disabled):not(:read-only){border-color:var(--ui-color-input-border-hover)}input:focus{border-color:var(--ui-color-input-border-focus);background-color:var(--ui-color-input-bg-focus);box-shadow:var(--ui-focus-ring)}:host(.is-invalid) input{border-color:var(--ui-color-input-border-invalid)}:host(.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)}:host(.is-disabled){opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-disabled) input{cursor:not-allowed}:host(.is-readonly) input{background-color:var(--ui-color-surface-sunken);cursor:default;box-shadow:none}.errors{margin-top:var(--ui-spacing-1)}.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"] }]
|
|
269
269
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }] } });
|
|
270
270
|
|
|
271
|
-
let nextId$
|
|
271
|
+
let nextId$b = 0;
|
|
272
272
|
/**
|
|
273
273
|
* Accessible multiline text input component for use with Angular Signal Forms.
|
|
274
274
|
*
|
|
@@ -302,7 +302,7 @@ class LlmTextarea {
|
|
|
302
302
|
/** Whether to auto-resize the textarea height to fit its content. */
|
|
303
303
|
autoResize = input(false, ...(ngDevMode ? [{ debugName: "autoResize" }] : /* istanbul ignore next */ []));
|
|
304
304
|
/** @internal */
|
|
305
|
-
errorId = `llm-textarea-errors-${nextId$
|
|
305
|
+
errorId = `llm-textarea-errors-${nextId$b++}`;
|
|
306
306
|
/** @internal */
|
|
307
307
|
showErrors = computed(() => this.touched() && this.invalid() && this.errors().length > 0, ...(ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []));
|
|
308
308
|
/** @internal */
|
|
@@ -381,7 +381,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
381
381
|
}, styles: [":host{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}textarea{display:block;width:100%;padding:.625rem var(--ui-spacing-3);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);box-shadow:inset 0 1px 2px #0000000a;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:80px}textarea::placeholder{color:var(--ui-color-placeholder)}textarea:hover:not(:disabled):not(:read-only){border-color:var(--ui-color-input-border-hover)}textarea:focus{border-color:var(--ui-color-input-border-focus);background-color:var(--ui-color-input-bg-focus);box-shadow:var(--ui-focus-ring)}:host(.is-invalid) textarea{border-color:var(--ui-color-input-border-invalid)}:host(.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)}:host(.is-disabled){opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-disabled) textarea{cursor:not-allowed}:host(.is-readonly) textarea{background-color:var(--ui-color-surface-sunken);cursor:default;box-shadow:none}:host(.is-auto-resize) textarea{resize:none;overflow:hidden}.errors{margin-top:var(--ui-spacing-1)}.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"] }]
|
|
382
382
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], autoResize: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoResize", required: false }] }] } });
|
|
383
383
|
|
|
384
|
-
let nextId$
|
|
384
|
+
let nextId$a = 0;
|
|
385
385
|
/**
|
|
386
386
|
* Accessible checkbox component for use with Angular Signal Forms.
|
|
387
387
|
*
|
|
@@ -409,9 +409,9 @@ class LlmCheckbox {
|
|
|
409
409
|
/** Validation errors from the form system. Bound by [formField] directive. */
|
|
410
410
|
errors = input([], ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
411
411
|
/** @internal */
|
|
412
|
-
inputId = `llm-checkbox-${nextId$
|
|
412
|
+
inputId = `llm-checkbox-${nextId$a++}`;
|
|
413
413
|
/** @internal */
|
|
414
|
-
errorId = `llm-checkbox-errors-${nextId$
|
|
414
|
+
errorId = `llm-checkbox-errors-${nextId$a++}`;
|
|
415
415
|
/** @internal */
|
|
416
416
|
nativeInput = viewChild('nativeInput', ...(ngDevMode ? [{ debugName: "nativeInput" }] : /* istanbul ignore next */ []));
|
|
417
417
|
/** @internal */
|
|
@@ -502,7 +502,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
502
502
|
|
|
503
503
|
const LLM_RADIO_GROUP = new InjectionToken('LLM_RADIO_GROUP');
|
|
504
504
|
|
|
505
|
-
let nextId$
|
|
505
|
+
let nextId$9 = 0;
|
|
506
506
|
/**
|
|
507
507
|
* Individual radio button. Must be placed inside an `llm-radio-group`.
|
|
508
508
|
*
|
|
@@ -518,17 +518,18 @@ class LlmRadio {
|
|
|
518
518
|
/** The value this radio option represents within the group. */
|
|
519
519
|
radioValue = input.required(...(ngDevMode ? [{ debugName: "radioValue" }] : /* istanbul ignore next */ []));
|
|
520
520
|
/** Whether this specific radio is individually disabled (stacked with group disabled). */
|
|
521
|
-
|
|
521
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
522
|
+
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
522
523
|
/** @internal */
|
|
523
524
|
group = inject(LLM_RADIO_GROUP, { optional: true });
|
|
524
525
|
/** @internal */
|
|
525
526
|
el = inject(ElementRef);
|
|
526
527
|
/** @internal */
|
|
527
|
-
inputId = `llm-radio-${nextId$
|
|
528
|
+
inputId = `llm-radio-${nextId$9++}`;
|
|
528
529
|
/** @internal */
|
|
529
530
|
isChecked = computed(() => this.group?.value() === this.radioValue(), ...(ngDevMode ? [{ debugName: "isChecked" }] : /* istanbul ignore next */ []));
|
|
530
531
|
/** @internal */
|
|
531
|
-
isDisabled = computed(() => this.
|
|
532
|
+
isDisabled = computed(() => this.disabledInput() || (this.group?.disabled() ?? false), ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
532
533
|
/** @internal */
|
|
533
534
|
effectiveName = computed(() => this.group?.name() ?? '', ...(ngDevMode ? [{ debugName: "effectiveName" }] : /* istanbul ignore next */ []));
|
|
534
535
|
/** @internal */
|
|
@@ -541,7 +542,11 @@ class LlmRadio {
|
|
|
541
542
|
return classes.join(' ');
|
|
542
543
|
}, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
543
544
|
/** @internal — for FocusKeyManager */
|
|
544
|
-
|
|
545
|
+
get disabled() {
|
|
546
|
+
return this.isDisabled();
|
|
547
|
+
}
|
|
548
|
+
/** @internal — for FocusKeyManager */
|
|
549
|
+
focus() {
|
|
545
550
|
this.el.nativeElement.querySelector('input')?.focus();
|
|
546
551
|
}
|
|
547
552
|
ngOnInit() {
|
|
@@ -559,7 +564,7 @@ class LlmRadio {
|
|
|
559
564
|
this.group?.markTouched();
|
|
560
565
|
}
|
|
561
566
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmRadio, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
562
|
-
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 },
|
|
567
|
+
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: `
|
|
563
568
|
<label [attr.for]="inputId">
|
|
564
569
|
<input
|
|
565
570
|
type="radio"
|
|
@@ -594,9 +599,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
594
599
|
`, host: {
|
|
595
600
|
'[class]': 'hostClasses()',
|
|
596
601
|
}, styles: [":host{display:block;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}label{display:inline-flex;align-items:center;gap:var(--ui-spacing-2);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ui-color-text);line-height:var(--ui-line-height-normal)}input[type=radio]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.25rem;height:1.25rem;border:1.5px solid var(--ui-color-input-border);border-radius:50%;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}input[type=radio]:hover:not(:disabled){border-color:var(--ui-color-input-border-hover);background-color:var(--ui-color-primary-light)}input[type=radio]:focus-visible{box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-input-border-focus)}input[type=radio]:checked{background-color:var(--ui-color-primary);border-color:var(--ui-color-primary)}input[type=radio]:checked:after{content:\"\";position:absolute;inset:0;margin:auto;width:.45rem;height:.45rem;border-radius:50%;background-color:var(--ui-color-on-primary);animation:llm-radio-pop var(--ui-duration-normal) var(--ui-ease-spring)}:host-context(llm-radio-group.is-invalid) input[type=radio],:host(.is-invalid) input[type=radio]{border-color:var(--ui-color-input-border-invalid)}:host-context(llm-radio-group.is-invalid) input[type=radio]:focus-visible,:host(.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)}:host(.is-disabled){opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-disabled) label{cursor:not-allowed}:host(.is-disabled) input[type=radio]{cursor:not-allowed}@keyframes llm-radio-pop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}\n"] }]
|
|
597
|
-
}], propDecorators: { radioValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "radioValue", required: true }] }],
|
|
602
|
+
}], propDecorators: { radioValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "radioValue", required: true }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
598
603
|
|
|
599
|
-
let nextId$
|
|
604
|
+
let nextId$8 = 0;
|
|
600
605
|
/**
|
|
601
606
|
* Container for a group of radio buttons. Manages keyboard navigation, shared name,
|
|
602
607
|
* and Signal Forms integration.
|
|
@@ -631,10 +636,12 @@ class LlmRadioGroup {
|
|
|
631
636
|
/** Validation errors from the form system. Bound by [formField] directive. */
|
|
632
637
|
errors = input([], ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
633
638
|
/** @internal */
|
|
634
|
-
errorId = `llm-radio-group-errors-${nextId$
|
|
639
|
+
errorId = `llm-radio-group-errors-${nextId$8++}`;
|
|
635
640
|
/** @internal */
|
|
636
641
|
items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
637
642
|
/** @internal */
|
|
643
|
+
keyManager = null;
|
|
644
|
+
/** @internal */
|
|
638
645
|
showErrors = computed(() => this.touched() && this.invalid() && this.errors().length > 0, ...(ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []));
|
|
639
646
|
/** @internal */
|
|
640
647
|
hostClasses = computed(() => {
|
|
@@ -667,24 +674,20 @@ class LlmRadioGroup {
|
|
|
667
674
|
}
|
|
668
675
|
/** @internal */
|
|
669
676
|
onKeydown(event) {
|
|
670
|
-
|
|
671
|
-
if (key !== 'ArrowDown' && key !== 'ArrowRight' && key !== 'ArrowUp' && key !== 'ArrowLeft')
|
|
672
|
-
return;
|
|
673
|
-
event.preventDefault();
|
|
674
|
-
const radioItems = this.items();
|
|
675
|
-
const enabled = radioItems.filter((item) => !item.isDisabled());
|
|
676
|
-
if (enabled.length === 0)
|
|
677
|
+
if (this.disabled())
|
|
677
678
|
return;
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
const
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
679
|
+
if (!this.keyManager) {
|
|
680
|
+
this.keyManager = new FocusKeyManager(this.items())
|
|
681
|
+
.withHorizontalOrientation('ltr')
|
|
682
|
+
.withVerticalOrientation()
|
|
683
|
+
.withWrap();
|
|
684
|
+
}
|
|
685
|
+
const currentIdx = this.items().findIndex((i) => i.radioValue() === this.value());
|
|
686
|
+
this.keyManager.setActiveItem(currentIdx);
|
|
687
|
+
this.keyManager.onKeydown(event);
|
|
688
|
+
const activeIdx = this.keyManager.activeItemIndex;
|
|
689
|
+
if (activeIdx !== null && activeIdx !== -1 && activeIdx !== currentIdx) {
|
|
690
|
+
const target = this.items()[activeIdx];
|
|
688
691
|
this.value.set(target.radioValue());
|
|
689
692
|
this.touched.set(true);
|
|
690
693
|
}
|
|
@@ -722,7 +725,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
722
725
|
}, providers: [{ provide: LLM_RADIO_GROUP, useExisting: LlmRadioGroup }], styles: [":host{display:block;font-family:var(--ui-font-family)}:host(.is-disabled){opacity:var(--ui-opacity-disabled);cursor:not-allowed}.errors{margin-top:var(--ui-spacing-1)}.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"] }]
|
|
723
726
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }] } });
|
|
724
727
|
|
|
725
|
-
let nextId$
|
|
728
|
+
let nextId$7 = 0;
|
|
726
729
|
/**
|
|
727
730
|
* Accessible toggle (switch) component for use with Angular Signal Forms.
|
|
728
731
|
* Presents as a pill-shaped on/off slider instead of a checkbox box,
|
|
@@ -750,9 +753,9 @@ class LlmToggle {
|
|
|
750
753
|
/** Validation errors from the form system. Bound by [formField] directive. */
|
|
751
754
|
errors = input([], ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
752
755
|
/** @internal */
|
|
753
|
-
inputId = `llm-toggle-${nextId$
|
|
756
|
+
inputId = `llm-toggle-${nextId$7++}`;
|
|
754
757
|
/** @internal */
|
|
755
|
-
errorId = `llm-toggle-errors-${nextId$
|
|
758
|
+
errorId = `llm-toggle-errors-${nextId$7++}`;
|
|
756
759
|
/** @internal */
|
|
757
760
|
showErrors = computed(() => this.touched() && this.invalid() && this.errors().length > 0, ...(ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []));
|
|
758
761
|
/** @internal */
|
|
@@ -931,10 +934,10 @@ class SelectOptionItem {
|
|
|
931
934
|
// Handled by key manager — no-op here
|
|
932
935
|
}
|
|
933
936
|
}
|
|
934
|
-
let nextId$
|
|
937
|
+
let nextId$6 = 0;
|
|
935
938
|
/**
|
|
936
939
|
* Accessible dropdown select component for use with Angular Signal Forms.
|
|
937
|
-
* Uses the
|
|
940
|
+
* Uses the CDK Overlay for viewport-aware panel positioning.
|
|
938
941
|
*
|
|
939
942
|
* Usage:
|
|
940
943
|
* ```html
|
|
@@ -975,11 +978,11 @@ class LlmSelect {
|
|
|
975
978
|
/** @internal */
|
|
976
979
|
panelRef = viewChild('panel', ...(ngDevMode ? [{ debugName: "panelRef" }] : /* istanbul ignore next */ []));
|
|
977
980
|
/** @internal */
|
|
978
|
-
triggerId = `llm-select-trigger-${nextId$
|
|
981
|
+
triggerId = `llm-select-trigger-${nextId$6}`;
|
|
979
982
|
/** @internal */
|
|
980
|
-
panelId = `llm-select-panel-${nextId$
|
|
983
|
+
panelId = `llm-select-panel-${nextId$6}`;
|
|
981
984
|
/** @internal */
|
|
982
|
-
errorId = `llm-select-errors-${nextId$
|
|
985
|
+
errorId = `llm-select-errors-${nextId$6++}`;
|
|
983
986
|
/** @internal */
|
|
984
987
|
selectedLabel = computed(() => this.optionsList().find((o) => o.value === this.value())?.labelText ?? '', ...(ngDevMode ? [{ debugName: "selectedLabel" }] : /* istanbul ignore next */ []));
|
|
985
988
|
/** @internal */
|
|
@@ -999,8 +1002,10 @@ class LlmSelect {
|
|
|
999
1002
|
}, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
1000
1003
|
/** @internal */
|
|
1001
1004
|
keyManager = null;
|
|
1005
|
+
overlayRef = null;
|
|
1002
1006
|
outsideClickHandler = null;
|
|
1003
1007
|
elementRef = inject(ElementRef);
|
|
1008
|
+
injector = inject(Injector);
|
|
1004
1009
|
/** @internal — called by LlmOption on init */
|
|
1005
1010
|
registerOption(id, value, labelText, disabled) {
|
|
1006
1011
|
this.optionsList.update((list) => [...list, { id, value, labelText, disabled }]);
|
|
@@ -1038,14 +1043,6 @@ class LlmSelect {
|
|
|
1038
1043
|
}
|
|
1039
1044
|
}
|
|
1040
1045
|
/** @internal */
|
|
1041
|
-
onPanelToggle(event) {
|
|
1042
|
-
const toggleEvent = event;
|
|
1043
|
-
if (toggleEvent.newState === 'closed') {
|
|
1044
|
-
this.isOpen.set(false);
|
|
1045
|
-
this.activeOptionId.set(null);
|
|
1046
|
-
}
|
|
1047
|
-
}
|
|
1048
|
-
/** @internal */
|
|
1049
1046
|
onKeydown(event) {
|
|
1050
1047
|
if (this.disabled())
|
|
1051
1048
|
return;
|
|
@@ -1081,11 +1078,24 @@ class LlmSelect {
|
|
|
1081
1078
|
}
|
|
1082
1079
|
}
|
|
1083
1080
|
}
|
|
1081
|
+
ngOnDestroy() {
|
|
1082
|
+
this.overlayRef?.dispose();
|
|
1083
|
+
this.overlayRef = null;
|
|
1084
|
+
if (this.outsideClickHandler) {
|
|
1085
|
+
document.removeEventListener('click', this.outsideClickHandler);
|
|
1086
|
+
this.outsideClickHandler = null;
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1084
1089
|
open() {
|
|
1085
1090
|
const panel = this.panelRef();
|
|
1086
1091
|
if (!panel)
|
|
1087
1092
|
return;
|
|
1088
|
-
|
|
1093
|
+
if (!this.overlayRef) {
|
|
1094
|
+
this.overlayRef = this.createOverlay();
|
|
1095
|
+
}
|
|
1096
|
+
this.overlayRef.attach(new DomPortal(panel.nativeElement));
|
|
1097
|
+
panel.nativeElement.classList.add('is-open');
|
|
1098
|
+
this.overlayRef.updatePosition();
|
|
1089
1099
|
this.isOpen.set(true);
|
|
1090
1100
|
// (Re)create key manager with current options
|
|
1091
1101
|
const items = this.optionsList().map((o) => new SelectOptionItem(o.id, o.value, o.labelText, o.disabled, this.activeOptionId));
|
|
@@ -1101,9 +1111,11 @@ class LlmSelect {
|
|
|
1101
1111
|
if (activeIdx >= 0) {
|
|
1102
1112
|
this.keyManager.setActiveItem(activeIdx);
|
|
1103
1113
|
}
|
|
1104
|
-
// Outside click
|
|
1114
|
+
// Outside click — check host AND panel (panel is in overlay container, outside host)
|
|
1105
1115
|
this.outsideClickHandler = (e) => {
|
|
1106
|
-
|
|
1116
|
+
const target = e.target;
|
|
1117
|
+
if (!this.elementRef.nativeElement.contains(target) &&
|
|
1118
|
+
!panel.nativeElement.contains(target)) {
|
|
1107
1119
|
this.close();
|
|
1108
1120
|
}
|
|
1109
1121
|
};
|
|
@@ -1111,14 +1123,10 @@ class LlmSelect {
|
|
|
1111
1123
|
}
|
|
1112
1124
|
close() {
|
|
1113
1125
|
const panel = this.panelRef();
|
|
1114
|
-
if (
|
|
1115
|
-
|
|
1116
|
-
try {
|
|
1117
|
-
panel.nativeElement.hidePopover();
|
|
1118
|
-
}
|
|
1119
|
-
catch {
|
|
1120
|
-
// Panel may already be hidden
|
|
1126
|
+
if (panel) {
|
|
1127
|
+
panel.nativeElement.classList.remove('is-open');
|
|
1121
1128
|
}
|
|
1129
|
+
this.overlayRef?.detach();
|
|
1122
1130
|
this.isOpen.set(false);
|
|
1123
1131
|
this.activeOptionId.set(null);
|
|
1124
1132
|
this.keyManager = null;
|
|
@@ -1127,6 +1135,24 @@ class LlmSelect {
|
|
|
1127
1135
|
this.outsideClickHandler = null;
|
|
1128
1136
|
}
|
|
1129
1137
|
}
|
|
1138
|
+
createOverlay() {
|
|
1139
|
+
const triggerEl = this.elementRef.nativeElement.querySelector('.trigger');
|
|
1140
|
+
if (!triggerEl)
|
|
1141
|
+
throw new Error('LlmSelect: trigger element not found');
|
|
1142
|
+
const positionStrategy = createFlexibleConnectedPositionStrategy(this.injector, triggerEl)
|
|
1143
|
+
.withPositions([
|
|
1144
|
+
{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },
|
|
1145
|
+
{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },
|
|
1146
|
+
])
|
|
1147
|
+
.withFlexibleDimensions(false)
|
|
1148
|
+
.withPush(true);
|
|
1149
|
+
const scrollStrategy = createRepositionScrollStrategy(this.injector);
|
|
1150
|
+
return createOverlayRef(this.injector, {
|
|
1151
|
+
positionStrategy,
|
|
1152
|
+
scrollStrategy,
|
|
1153
|
+
minWidth: triggerEl.offsetWidth,
|
|
1154
|
+
});
|
|
1155
|
+
}
|
|
1130
1156
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1131
1157
|
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: `
|
|
1132
1158
|
<button
|
|
@@ -1149,11 +1175,9 @@ class LlmSelect {
|
|
|
1149
1175
|
<div
|
|
1150
1176
|
#panel
|
|
1151
1177
|
[id]="panelId"
|
|
1152
|
-
popover="manual"
|
|
1153
1178
|
role="listbox"
|
|
1154
1179
|
class="panel"
|
|
1155
1180
|
[attr.aria-labelledby]="triggerId"
|
|
1156
|
-
(toggle)="onPanelToggle($event)"
|
|
1157
1181
|
>
|
|
1158
1182
|
<ng-content />
|
|
1159
1183
|
</div>
|
|
@@ -1165,7 +1189,7 @@ class LlmSelect {
|
|
|
1165
1189
|
}
|
|
1166
1190
|
</div>
|
|
1167
1191
|
}
|
|
1168
|
-
`, isInline: true, styles: [":host{display:inline-block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-2);width:100%;padding:var(--ui-spacing-2) var(--ui-spacing-3);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;transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast)
|
|
1192
|
+
`, isInline: true, styles: [":host{display:inline-block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-2);width:100%;padding:var(--ui-spacing-2) var(--ui-spacing-3);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;transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast)}.trigger:hover:not(:disabled){border-color:var(--ui-color-input-border-hover)}.trigger:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-input-border-focus)}.trigger:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-invalid) .trigger{border-color:var(--ui-color-input-border-invalid)}:host(.is-open) .trigger{border-color:var(--ui-color-input-border-focus);box-shadow:var(--ui-focus-ring)}.trigger-text{flex:1;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-color-text)}.trigger-text:empty,.trigger[data-placeholder] .trigger-text{color:var(--ui-color-placeholder)}.trigger-icon{flex-shrink:0;font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);transition:transform var(--ui-transition-fast)}:host(.is-open) .trigger-icon{transform:rotate(180deg)}.panel{visibility:hidden;pointer-events:none;padding:var(--ui-spacing-1) 0;background:var(--ui-color-surface-raised);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-lg);max-height:16rem;overflow-y:auto;opacity:0;transform:translateY(-4px);transition:opacity var(--ui-transition-normal),transform var(--ui-transition-normal)}.panel.is-open{visibility:visible;pointer-events:auto;opacity:1;transform:translateY(0)}llm-option [role=option]{padding:var(--ui-spacing-2) var(--ui-spacing-3);cursor:pointer;color:var(--ui-color-text);transition:background var(--ui-transition-fast)}llm-option [role=option]:hover,llm-option [role=option].is-active{background:var(--ui-color-surface-sunken)}llm-option [role=option].is-selected{background:var(--ui-color-primary-light);color:var(--ui-color-primary);font-weight:var(--ui-font-weight-medium)}llm-option [role=option].is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.errors{margin-top:var(--ui-spacing-1)}.error-message{margin:0;font-size:var(--ui-font-size-xs);color:var(--ui-color-error-text)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1169
1193
|
}
|
|
1170
1194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmSelect, decorators: [{
|
|
1171
1195
|
type: Component,
|
|
@@ -1190,11 +1214,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1190
1214
|
<div
|
|
1191
1215
|
#panel
|
|
1192
1216
|
[id]="panelId"
|
|
1193
|
-
popover="manual"
|
|
1194
1217
|
role="listbox"
|
|
1195
1218
|
class="panel"
|
|
1196
1219
|
[attr.aria-labelledby]="triggerId"
|
|
1197
|
-
(toggle)="onPanelToggle($event)"
|
|
1198
1220
|
>
|
|
1199
1221
|
<ng-content />
|
|
1200
1222
|
</div>
|
|
@@ -1210,7 +1232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1210
1232
|
role: 'combobox',
|
|
1211
1233
|
'[class]': 'hostClasses()',
|
|
1212
1234
|
'(keydown)': 'onKeydown($event)',
|
|
1213
|
-
}, providers: [{ provide: LLM_SELECT, useExisting: LlmSelect }], styles: [":host{display:inline-block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-2);width:100%;padding:var(--ui-spacing-2) var(--ui-spacing-3);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;transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast)
|
|
1235
|
+
}, providers: [{ provide: LLM_SELECT, useExisting: LlmSelect }], styles: [":host{display:inline-block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--ui-spacing-2);width:100%;padding:var(--ui-spacing-2) var(--ui-spacing-3);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;transition:border-color var(--ui-transition-fast),box-shadow var(--ui-transition-fast)}.trigger:hover:not(:disabled){border-color:var(--ui-color-input-border-hover)}.trigger:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-color:var(--ui-color-input-border-focus)}.trigger:disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-invalid) .trigger{border-color:var(--ui-color-input-border-invalid)}:host(.is-open) .trigger{border-color:var(--ui-color-input-border-focus);box-shadow:var(--ui-focus-ring)}.trigger-text{flex:1;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-color-text)}.trigger-text:empty,.trigger[data-placeholder] .trigger-text{color:var(--ui-color-placeholder)}.trigger-icon{flex-shrink:0;font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);transition:transform var(--ui-transition-fast)}:host(.is-open) .trigger-icon{transform:rotate(180deg)}.panel{visibility:hidden;pointer-events:none;padding:var(--ui-spacing-1) 0;background:var(--ui-color-surface-raised);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-lg);max-height:16rem;overflow-y:auto;opacity:0;transform:translateY(-4px);transition:opacity var(--ui-transition-normal),transform var(--ui-transition-normal)}.panel.is-open{visibility:visible;pointer-events:auto;opacity:1;transform:translateY(0)}llm-option [role=option]{padding:var(--ui-spacing-2) var(--ui-spacing-3);cursor:pointer;color:var(--ui-color-text);transition:background var(--ui-transition-fast)}llm-option [role=option]:hover,llm-option [role=option].is-active{background:var(--ui-color-surface-sunken)}llm-option [role=option].is-selected{background:var(--ui-color-primary-light);color:var(--ui-color-primary);font-weight:var(--ui-font-weight-medium)}llm-option [role=option].is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.errors{margin-top:var(--ui-spacing-1)}.error-message{margin:0;font-size:var(--ui-font-size-xs);color:var(--ui-color-error-text)}\n"] }]
|
|
1214
1236
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], panelRef: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }] } });
|
|
1215
1237
|
|
|
1216
1238
|
let nextOptionId = 0;
|
|
@@ -1301,9 +1323,358 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1301
1323
|
}]
|
|
1302
1324
|
}], propDecorators: { optionValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionValue", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
1303
1325
|
|
|
1326
|
+
let nextId$5 = 0;
|
|
1327
|
+
/**
|
|
1328
|
+
* Filterable autocomplete combobox. Accepts an `options` array and emits the
|
|
1329
|
+
* selected option's `value`. The user types to narrow the list; selecting an
|
|
1330
|
+
* option commits the value and displays its label.
|
|
1331
|
+
*
|
|
1332
|
+
* Usage:
|
|
1333
|
+
* ```html
|
|
1334
|
+
* <llm-combobox
|
|
1335
|
+
* [(value)]="country"
|
|
1336
|
+
* [options]="countryOptions"
|
|
1337
|
+
* placeholder="Search country…"
|
|
1338
|
+
* />
|
|
1339
|
+
*
|
|
1340
|
+
* <!-- With Signal Forms -->
|
|
1341
|
+
* <llm-combobox [formField]="form.country" [options]="countryOptions" />
|
|
1342
|
+
* ```
|
|
1343
|
+
*/
|
|
1344
|
+
class LlmCombobox {
|
|
1345
|
+
/** The selected value. Supports [(value)] two-way binding and [formField] directive. */
|
|
1346
|
+
value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
1347
|
+
/** Whether the user has interacted. Bound by [formField] directive. */
|
|
1348
|
+
touched = model(false, ...(ngDevMode ? [{ debugName: "touched" }] : /* istanbul ignore next */ []));
|
|
1349
|
+
/** Options to display and filter. */
|
|
1350
|
+
options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
1351
|
+
/** Placeholder text for the input. */
|
|
1352
|
+
placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
1353
|
+
/** Whether the combobox is disabled. */
|
|
1354
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
1355
|
+
/** Whether the combobox has validation errors. */
|
|
1356
|
+
invalid = input(false, ...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
|
|
1357
|
+
/** Whether the combobox is required. */
|
|
1358
|
+
required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
|
|
1359
|
+
/** The input's name attribute. */
|
|
1360
|
+
name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
1361
|
+
/** Validation errors from the form system. */
|
|
1362
|
+
errors = input([], ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
1363
|
+
/** @internal */
|
|
1364
|
+
query = signal('', ...(ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []));
|
|
1365
|
+
/** @internal */
|
|
1366
|
+
isOpen = signal(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
1367
|
+
/** @internal */
|
|
1368
|
+
activeIndex = signal(-1, ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
|
|
1369
|
+
/** @internal */
|
|
1370
|
+
panelRef = viewChild('panel', ...(ngDevMode ? [{ debugName: "panelRef" }] : /* istanbul ignore next */ []));
|
|
1371
|
+
/** @internal */
|
|
1372
|
+
inputEl = viewChild('inputEl', ...(ngDevMode ? [{ debugName: "inputEl" }] : /* istanbul ignore next */ []));
|
|
1373
|
+
/** @internal */
|
|
1374
|
+
inputId = `llm-combobox-input-${nextId$5}`;
|
|
1375
|
+
/** @internal */
|
|
1376
|
+
panelId = `llm-combobox-panel-${nextId$5}`;
|
|
1377
|
+
/** @internal */
|
|
1378
|
+
errorId = `llm-combobox-errors-${nextId$5++}`;
|
|
1379
|
+
/** @internal */
|
|
1380
|
+
filteredOptions = computed(() => {
|
|
1381
|
+
const q = this.query().toLowerCase();
|
|
1382
|
+
if (!q)
|
|
1383
|
+
return this.options();
|
|
1384
|
+
return this.options().filter((o) => o.label.toLowerCase().includes(q));
|
|
1385
|
+
}, ...(ngDevMode ? [{ debugName: "filteredOptions" }] : /* istanbul ignore next */ []));
|
|
1386
|
+
/** @internal */
|
|
1387
|
+
activeOptionId = computed(() => {
|
|
1388
|
+
const idx = this.activeIndex();
|
|
1389
|
+
return idx >= 0 ? this.optionId(idx) : null;
|
|
1390
|
+
}, ...(ngDevMode ? [{ debugName: "activeOptionId" }] : /* istanbul ignore next */ []));
|
|
1391
|
+
/** @internal */
|
|
1392
|
+
showErrors = computed(() => this.touched() && this.invalid() && this.errors().length > 0, ...(ngDevMode ? [{ debugName: "showErrors" }] : /* istanbul ignore next */ []));
|
|
1393
|
+
/** @internal */
|
|
1394
|
+
hostClasses = computed(() => {
|
|
1395
|
+
const classes = [];
|
|
1396
|
+
if (this.isOpen())
|
|
1397
|
+
classes.push('is-open');
|
|
1398
|
+
if (this.disabled())
|
|
1399
|
+
classes.push('is-disabled');
|
|
1400
|
+
if (this.invalid())
|
|
1401
|
+
classes.push('is-invalid');
|
|
1402
|
+
if (this.touched())
|
|
1403
|
+
classes.push('is-touched');
|
|
1404
|
+
return classes.join(' ');
|
|
1405
|
+
}, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
1406
|
+
outsideClickHandler = null;
|
|
1407
|
+
elementRef = inject(ElementRef);
|
|
1408
|
+
/** @internal */
|
|
1409
|
+
optionId(index) {
|
|
1410
|
+
return `${this.panelId}-option-${index}`;
|
|
1411
|
+
}
|
|
1412
|
+
/** @internal */
|
|
1413
|
+
onInput(event) {
|
|
1414
|
+
const q = event.target.value;
|
|
1415
|
+
this.query.set(q);
|
|
1416
|
+
this.activeIndex.set(-1);
|
|
1417
|
+
if (q === '') {
|
|
1418
|
+
this.value.set('');
|
|
1419
|
+
}
|
|
1420
|
+
if (!this.isOpen())
|
|
1421
|
+
this.open();
|
|
1422
|
+
}
|
|
1423
|
+
/** @internal */
|
|
1424
|
+
onFocus() {
|
|
1425
|
+
if (!this.disabled())
|
|
1426
|
+
this.open();
|
|
1427
|
+
}
|
|
1428
|
+
/** @internal */
|
|
1429
|
+
onBlur() {
|
|
1430
|
+
const selectedOption = this.options().find((o) => o.value === this.value());
|
|
1431
|
+
this.query.set(selectedOption?.label ?? '');
|
|
1432
|
+
this.touched.set(true);
|
|
1433
|
+
}
|
|
1434
|
+
/** @internal */
|
|
1435
|
+
onOptionSelect(option) {
|
|
1436
|
+
if (option.disabled || this.disabled())
|
|
1437
|
+
return;
|
|
1438
|
+
this.value.set(option.value);
|
|
1439
|
+
this.query.set(option.label);
|
|
1440
|
+
this.touched.set(true);
|
|
1441
|
+
this.close();
|
|
1442
|
+
this.inputEl()?.nativeElement.focus();
|
|
1443
|
+
}
|
|
1444
|
+
/** @internal */
|
|
1445
|
+
onKeydown(event) {
|
|
1446
|
+
if (this.disabled())
|
|
1447
|
+
return;
|
|
1448
|
+
switch (event.key) {
|
|
1449
|
+
case 'Enter': {
|
|
1450
|
+
const activeIdx = this.activeIndex();
|
|
1451
|
+
if (this.isOpen() && activeIdx >= 0) {
|
|
1452
|
+
event.preventDefault();
|
|
1453
|
+
const option = this.filteredOptions()[activeIdx];
|
|
1454
|
+
this.onOptionSelect(option);
|
|
1455
|
+
}
|
|
1456
|
+
break;
|
|
1457
|
+
}
|
|
1458
|
+
case 'Escape': {
|
|
1459
|
+
event.preventDefault();
|
|
1460
|
+
const selectedOption = this.options().find((o) => o.value === this.value());
|
|
1461
|
+
this.query.set(selectedOption?.label ?? '');
|
|
1462
|
+
this.close();
|
|
1463
|
+
break;
|
|
1464
|
+
}
|
|
1465
|
+
case 'Tab': {
|
|
1466
|
+
this.close();
|
|
1467
|
+
break;
|
|
1468
|
+
}
|
|
1469
|
+
case 'ArrowDown':
|
|
1470
|
+
case 'ArrowUp': {
|
|
1471
|
+
if (!this.isOpen()) {
|
|
1472
|
+
this.open();
|
|
1473
|
+
break;
|
|
1474
|
+
}
|
|
1475
|
+
event.preventDefault();
|
|
1476
|
+
const opts = this.filteredOptions();
|
|
1477
|
+
const enabledIndices = opts.map((_, i) => i).filter((i) => !opts[i].disabled);
|
|
1478
|
+
if (enabledIndices.length === 0)
|
|
1479
|
+
break;
|
|
1480
|
+
const currentPos = enabledIndices.indexOf(this.activeIndex());
|
|
1481
|
+
const len = enabledIndices.length;
|
|
1482
|
+
const nextPos = event.key === 'ArrowDown'
|
|
1483
|
+
? (currentPos + 1) % len
|
|
1484
|
+
: (currentPos - 1 + len) % len;
|
|
1485
|
+
this.activeIndex.set(enabledIndices[nextPos]);
|
|
1486
|
+
break;
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
open() {
|
|
1491
|
+
const panel = this.panelRef();
|
|
1492
|
+
if (!panel || this.isOpen())
|
|
1493
|
+
return;
|
|
1494
|
+
panel.nativeElement.showPopover();
|
|
1495
|
+
this.isOpen.set(true);
|
|
1496
|
+
this.activeIndex.set(-1);
|
|
1497
|
+
this.outsideClickHandler = (e) => {
|
|
1498
|
+
if (!this.elementRef.nativeElement.contains(e.target)) {
|
|
1499
|
+
this.close();
|
|
1500
|
+
}
|
|
1501
|
+
};
|
|
1502
|
+
document.addEventListener('click', this.outsideClickHandler);
|
|
1503
|
+
}
|
|
1504
|
+
close() {
|
|
1505
|
+
const panel = this.panelRef();
|
|
1506
|
+
if (!panel || !this.isOpen())
|
|
1507
|
+
return;
|
|
1508
|
+
try {
|
|
1509
|
+
panel.nativeElement.hidePopover();
|
|
1510
|
+
}
|
|
1511
|
+
catch {
|
|
1512
|
+
// Panel may already be hidden
|
|
1513
|
+
}
|
|
1514
|
+
this.isOpen.set(false);
|
|
1515
|
+
this.activeIndex.set(-1);
|
|
1516
|
+
if (this.outsideClickHandler) {
|
|
1517
|
+
document.removeEventListener('click', this.outsideClickHandler);
|
|
1518
|
+
this.outsideClickHandler = null;
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCombobox, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1522
|
+
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: `
|
|
1523
|
+
<div class="combobox-wrapper">
|
|
1524
|
+
<input
|
|
1525
|
+
#inputEl
|
|
1526
|
+
class="combobox-input"
|
|
1527
|
+
type="text"
|
|
1528
|
+
autocomplete="off"
|
|
1529
|
+
role="combobox"
|
|
1530
|
+
[id]="inputId"
|
|
1531
|
+
[attr.aria-expanded]="isOpen()"
|
|
1532
|
+
[attr.aria-controls]="panelId"
|
|
1533
|
+
aria-autocomplete="list"
|
|
1534
|
+
[attr.aria-activedescendant]="activeOptionId()"
|
|
1535
|
+
[attr.aria-invalid]="invalid() || null"
|
|
1536
|
+
[attr.disabled]="disabled() || null"
|
|
1537
|
+
[attr.required]="required() || null"
|
|
1538
|
+
[attr.name]="name() || null"
|
|
1539
|
+
[placeholder]="placeholder()"
|
|
1540
|
+
[value]="query()"
|
|
1541
|
+
(input)="onInput($event)"
|
|
1542
|
+
(focus)="onFocus()"
|
|
1543
|
+
(blur)="onBlur()"
|
|
1544
|
+
(keydown)="onKeydown($event)"
|
|
1545
|
+
/>
|
|
1546
|
+
<span class="combobox-icon" aria-hidden="true">
|
|
1547
|
+
<svg width="12" height="12" viewBox="0 0 12 12" fill="none">
|
|
1548
|
+
<path d="M2 4l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1549
|
+
</svg>
|
|
1550
|
+
</span>
|
|
1551
|
+
</div>
|
|
1552
|
+
|
|
1553
|
+
<ul
|
|
1554
|
+
#panel
|
|
1555
|
+
[id]="panelId"
|
|
1556
|
+
popover="manual"
|
|
1557
|
+
role="listbox"
|
|
1558
|
+
class="panel"
|
|
1559
|
+
[attr.aria-labelledby]="inputId"
|
|
1560
|
+
>
|
|
1561
|
+
@for (option of filteredOptions(); track option.value; let i = $index) {
|
|
1562
|
+
<li
|
|
1563
|
+
[id]="optionId(i)"
|
|
1564
|
+
role="option"
|
|
1565
|
+
class="option"
|
|
1566
|
+
[class.is-active]="activeIndex() === i"
|
|
1567
|
+
[class.is-selected]="option.value === value()"
|
|
1568
|
+
[class.is-disabled]="option.disabled"
|
|
1569
|
+
[attr.aria-selected]="option.value === value()"
|
|
1570
|
+
[attr.aria-disabled]="option.disabled || null"
|
|
1571
|
+
(mousedown)="onOptionSelect(option)"
|
|
1572
|
+
(mouseenter)="activeIndex.set(i)"
|
|
1573
|
+
>
|
|
1574
|
+
<span>{{ option.label }}</span>
|
|
1575
|
+
@if (option.value === value()) {
|
|
1576
|
+
<svg class="option-check" width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
1577
|
+
<path d="M2 7l4 4 6-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1578
|
+
</svg>
|
|
1579
|
+
}
|
|
1580
|
+
</li>
|
|
1581
|
+
}
|
|
1582
|
+
@if (filteredOptions().length === 0) {
|
|
1583
|
+
<li class="no-results" role="option" aria-selected="false" aria-disabled="true">No results found.</li>
|
|
1584
|
+
}
|
|
1585
|
+
</ul>
|
|
1586
|
+
|
|
1587
|
+
@if (showErrors()) {
|
|
1588
|
+
<div class="errors" [id]="errorId" aria-live="polite">
|
|
1589
|
+
@for (error of errors(); track error.kind) {
|
|
1590
|
+
<p class="error-message">{{ error.message }}</p>
|
|
1591
|
+
}
|
|
1592
|
+
</div>
|
|
1593
|
+
}
|
|
1594
|
+
`, isInline: true, styles: [":host{display:block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.combobox-wrapper{position:relative;display:flex;align-items:center}input.combobox-input{width:100%;box-sizing:border-box;padding:var(--ui-spacing-2) var(--ui-spacing-8) var(--ui-spacing-2) var(--ui-spacing-3);font-family:inherit;font-size:inherit;color:var(--ui-color-text);background-color:var(--ui-color-input-bg);border:1.5px 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);cursor:text}input.combobox-input::placeholder{color:var(--ui-color-text-muted)}input.combobox-input:hover:not(:disabled){border-color:var(--ui-color-input-border-hover)}input.combobox-input:focus-visible,:host(.is-open) input.combobox-input{border-color:var(--ui-color-input-border-focus);box-shadow:var(--ui-focus-ring)}:host(.is-invalid) input.combobox-input{border-color:var(--ui-color-input-border-invalid)}:host(.is-invalid) input.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)}:host(.is-disabled){opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-disabled) input.combobox-input{cursor:not-allowed}.combobox-icon{position:absolute;right:var(--ui-spacing-3);pointer-events:none;color:var(--ui-color-text-muted);transition:transform var(--ui-transition-fast);display:flex;align-items:center}:host(.is-open) .combobox-icon{transform:rotate(180deg)}.panel{position:absolute;inset-inline-start:0;inset-block-start:calc(100% + var(--ui-spacing-1));width:100%;max-height:16rem;overflow-y:auto;margin:0;padding:var(--ui-spacing-1) 0;background-color:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-md);z-index:100;list-style:none}.panel:not(:popover-open){display:none}.option{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-2) var(--ui-spacing-3);cursor:pointer;color:var(--ui-color-text);font-size:var(--ui-font-size-md);transition:background-color var(--ui-transition-fast)}.option:hover:not(.is-disabled){background-color:var(--ui-color-surface-sunken)}.option.is-active{background-color:var(--ui-color-primary-light);color:var(--ui-color-primary)}.option.is-selected{font-weight:var(--ui-font-weight-semibold)}.option.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.option-check{color:var(--ui-color-primary);flex-shrink:0}.no-results{padding:var(--ui-spacing-4) var(--ui-spacing-3);text-align:center;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-sm)}.errors{margin-top:var(--ui-spacing-1)}.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 });
|
|
1595
|
+
}
|
|
1596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCombobox, decorators: [{
|
|
1597
|
+
type: Component,
|
|
1598
|
+
args: [{ selector: 'llm-combobox', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
1599
|
+
<div class="combobox-wrapper">
|
|
1600
|
+
<input
|
|
1601
|
+
#inputEl
|
|
1602
|
+
class="combobox-input"
|
|
1603
|
+
type="text"
|
|
1604
|
+
autocomplete="off"
|
|
1605
|
+
role="combobox"
|
|
1606
|
+
[id]="inputId"
|
|
1607
|
+
[attr.aria-expanded]="isOpen()"
|
|
1608
|
+
[attr.aria-controls]="panelId"
|
|
1609
|
+
aria-autocomplete="list"
|
|
1610
|
+
[attr.aria-activedescendant]="activeOptionId()"
|
|
1611
|
+
[attr.aria-invalid]="invalid() || null"
|
|
1612
|
+
[attr.disabled]="disabled() || null"
|
|
1613
|
+
[attr.required]="required() || null"
|
|
1614
|
+
[attr.name]="name() || null"
|
|
1615
|
+
[placeholder]="placeholder()"
|
|
1616
|
+
[value]="query()"
|
|
1617
|
+
(input)="onInput($event)"
|
|
1618
|
+
(focus)="onFocus()"
|
|
1619
|
+
(blur)="onBlur()"
|
|
1620
|
+
(keydown)="onKeydown($event)"
|
|
1621
|
+
/>
|
|
1622
|
+
<span class="combobox-icon" aria-hidden="true">
|
|
1623
|
+
<svg width="12" height="12" viewBox="0 0 12 12" fill="none">
|
|
1624
|
+
<path d="M2 4l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1625
|
+
</svg>
|
|
1626
|
+
</span>
|
|
1627
|
+
</div>
|
|
1628
|
+
|
|
1629
|
+
<ul
|
|
1630
|
+
#panel
|
|
1631
|
+
[id]="panelId"
|
|
1632
|
+
popover="manual"
|
|
1633
|
+
role="listbox"
|
|
1634
|
+
class="panel"
|
|
1635
|
+
[attr.aria-labelledby]="inputId"
|
|
1636
|
+
>
|
|
1637
|
+
@for (option of filteredOptions(); track option.value; let i = $index) {
|
|
1638
|
+
<li
|
|
1639
|
+
[id]="optionId(i)"
|
|
1640
|
+
role="option"
|
|
1641
|
+
class="option"
|
|
1642
|
+
[class.is-active]="activeIndex() === i"
|
|
1643
|
+
[class.is-selected]="option.value === value()"
|
|
1644
|
+
[class.is-disabled]="option.disabled"
|
|
1645
|
+
[attr.aria-selected]="option.value === value()"
|
|
1646
|
+
[attr.aria-disabled]="option.disabled || null"
|
|
1647
|
+
(mousedown)="onOptionSelect(option)"
|
|
1648
|
+
(mouseenter)="activeIndex.set(i)"
|
|
1649
|
+
>
|
|
1650
|
+
<span>{{ option.label }}</span>
|
|
1651
|
+
@if (option.value === value()) {
|
|
1652
|
+
<svg class="option-check" width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
1653
|
+
<path d="M2 7l4 4 6-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
1654
|
+
</svg>
|
|
1655
|
+
}
|
|
1656
|
+
</li>
|
|
1657
|
+
}
|
|
1658
|
+
@if (filteredOptions().length === 0) {
|
|
1659
|
+
<li class="no-results" role="option" aria-selected="false" aria-disabled="true">No results found.</li>
|
|
1660
|
+
}
|
|
1661
|
+
</ul>
|
|
1662
|
+
|
|
1663
|
+
@if (showErrors()) {
|
|
1664
|
+
<div class="errors" [id]="errorId" aria-live="polite">
|
|
1665
|
+
@for (error of errors(); track error.kind) {
|
|
1666
|
+
<p class="error-message">{{ error.message }}</p>
|
|
1667
|
+
}
|
|
1668
|
+
</div>
|
|
1669
|
+
}
|
|
1670
|
+
`, host: {
|
|
1671
|
+
'[class]': 'hostClasses()',
|
|
1672
|
+
}, styles: [":host{display:block;position:relative;font-family:var(--ui-font-family);font-size:var(--ui-font-size-md)}.combobox-wrapper{position:relative;display:flex;align-items:center}input.combobox-input{width:100%;box-sizing:border-box;padding:var(--ui-spacing-2) var(--ui-spacing-8) var(--ui-spacing-2) var(--ui-spacing-3);font-family:inherit;font-size:inherit;color:var(--ui-color-text);background-color:var(--ui-color-input-bg);border:1.5px 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);cursor:text}input.combobox-input::placeholder{color:var(--ui-color-text-muted)}input.combobox-input:hover:not(:disabled){border-color:var(--ui-color-input-border-hover)}input.combobox-input:focus-visible,:host(.is-open) input.combobox-input{border-color:var(--ui-color-input-border-focus);box-shadow:var(--ui-focus-ring)}:host(.is-invalid) input.combobox-input{border-color:var(--ui-color-input-border-invalid)}:host(.is-invalid) input.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)}:host(.is-disabled){opacity:var(--ui-opacity-disabled);cursor:not-allowed}:host(.is-disabled) input.combobox-input{cursor:not-allowed}.combobox-icon{position:absolute;right:var(--ui-spacing-3);pointer-events:none;color:var(--ui-color-text-muted);transition:transform var(--ui-transition-fast);display:flex;align-items:center}:host(.is-open) .combobox-icon{transform:rotate(180deg)}.panel{position:absolute;inset-inline-start:0;inset-block-start:calc(100% + var(--ui-spacing-1));width:100%;max-height:16rem;overflow-y:auto;margin:0;padding:var(--ui-spacing-1) 0;background-color:var(--ui-color-surface);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);box-shadow:var(--ui-shadow-md);z-index:100;list-style:none}.panel:not(:popover-open){display:none}.option{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-2) var(--ui-spacing-3);cursor:pointer;color:var(--ui-color-text);font-size:var(--ui-font-size-md);transition:background-color var(--ui-transition-fast)}.option:hover:not(.is-disabled){background-color:var(--ui-color-surface-sunken)}.option.is-active{background-color:var(--ui-color-primary-light);color:var(--ui-color-primary)}.option.is-selected{font-weight:var(--ui-font-weight-semibold)}.option.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}.option-check{color:var(--ui-color-primary);flex-shrink:0}.no-results{padding:var(--ui-spacing-4) var(--ui-spacing-3);text-align:center;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-sm)}.errors{margin-top:var(--ui-spacing-1)}.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"] }]
|
|
1673
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], panelRef: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], inputEl: [{ type: i0.ViewChild, args: ['inputEl', { isSignal: true }] }] } });
|
|
1674
|
+
|
|
1304
1675
|
const LLM_DIALOG = new InjectionToken('LLM_DIALOG');
|
|
1305
1676
|
|
|
1306
|
-
let nextId$
|
|
1677
|
+
let nextId$4 = 0;
|
|
1307
1678
|
/**
|
|
1308
1679
|
* Accessible modal dialog using the native `<dialog>` element.
|
|
1309
1680
|
* Includes focus trap, Escape to close, backdrop click to close, and animation.
|
|
@@ -1332,8 +1703,8 @@ class LlmDialog {
|
|
|
1332
1703
|
/** ID of the element that labels the dialog (defaults to the llm-dialog-header id). */
|
|
1333
1704
|
ariaLabelledby = input('', { ...(ngDevMode ? { debugName: "ariaLabelledby" } : /* istanbul ignore next */ {}), alias: 'aria-labelledby' });
|
|
1334
1705
|
/** @internal — referenced by LlmDialogHeader via LLM_DIALOG token */
|
|
1335
|
-
headerId = `llm-dialog-header-${nextId$
|
|
1336
|
-
dialogId = `llm-dialog-${nextId$
|
|
1706
|
+
headerId = `llm-dialog-header-${nextId$4}`;
|
|
1707
|
+
dialogId = `llm-dialog-${nextId$4++}`;
|
|
1337
1708
|
dialogRef = viewChild('dialogEl', ...(ngDevMode ? [{ debugName: "dialogRef" }] : /* istanbul ignore next */ []));
|
|
1338
1709
|
triggerEl = signal(null, ...(ngDevMode ? [{ debugName: "triggerEl" }] : /* istanbul ignore next */ []));
|
|
1339
1710
|
panelClass = computed(() => `panel size-${this.size()}`, ...(ngDevMode ? [{ debugName: "panelClass" }] : /* istanbul ignore next */ []));
|
|
@@ -1389,7 +1760,7 @@ class LlmDialog {
|
|
|
1389
1760
|
<ng-content />
|
|
1390
1761
|
</div>
|
|
1391
1762
|
</dialog>
|
|
1392
|
-
`, isInline: true, styles: ["llm-dialog{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1763
|
+
`, isInline: true, styles: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1393
1764
|
}
|
|
1394
1765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialog, decorators: [{
|
|
1395
1766
|
type: Component,
|
|
@@ -1419,7 +1790,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1419
1790
|
</dialog>
|
|
1420
1791
|
`, host: {
|
|
1421
1792
|
'[class]': 'hostClasses()',
|
|
1422
|
-
}, styles: ["llm-dialog{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1793
|
+
}, styles: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1423
1794
|
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], dialogRef: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }] } });
|
|
1424
1795
|
/**
|
|
1425
1796
|
* Header slot for `llm-dialog`. Renders above content with a bottom separator.
|
|
@@ -1453,7 +1824,7 @@ class LlmDialogHeader {
|
|
|
1453
1824
|
<line x1="6" y1="6" x2="18" y2="18" />
|
|
1454
1825
|
</svg>
|
|
1455
1826
|
</button>
|
|
1456
|
-
`, isInline: true, styles: ["llm-dialog{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1827
|
+
`, isInline: true, styles: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1457
1828
|
}
|
|
1458
1829
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogHeader, decorators: [{
|
|
1459
1830
|
type: Component,
|
|
@@ -1484,34 +1855,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1484
1855
|
</button>
|
|
1485
1856
|
`, host: {
|
|
1486
1857
|
'[attr.id]': 'context.headerId',
|
|
1487
|
-
}, styles: ["llm-dialog{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1858
|
+
}, styles: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1488
1859
|
}] });
|
|
1489
1860
|
/**
|
|
1490
1861
|
* Content slot for `llm-dialog`. Scrollable primary content area.
|
|
1491
1862
|
*/
|
|
1492
1863
|
class LlmDialogContent {
|
|
1493
1864
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1494
|
-
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{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1865
|
+
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: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1495
1866
|
}
|
|
1496
1867
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogContent, decorators: [{
|
|
1497
1868
|
type: Component,
|
|
1498
|
-
args: [{ selector: 'llm-dialog-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: ["llm-dialog{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1869
|
+
args: [{ selector: 'llm-dialog-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1499
1870
|
}] });
|
|
1500
1871
|
/**
|
|
1501
1872
|
* Footer slot for `llm-dialog`. Renders below content, typically holds action buttons.
|
|
1502
1873
|
*/
|
|
1503
1874
|
class LlmDialogFooter {
|
|
1504
1875
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1505
|
-
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{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1876
|
+
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: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
1506
1877
|
}
|
|
1507
1878
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDialogFooter, decorators: [{
|
|
1508
1879
|
type: Component,
|
|
1509
|
-
args: [{ selector: 'llm-dialog-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: ["llm-dialog{display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}llm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1880
|
+
args: [{ selector: 'llm-dialog-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-dialog){display:contents}dialog{all:unset;position:fixed;inset:0;margin:auto;display:none;flex-direction:column;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}dialog[open]{display:flex;opacity:1;transform:scale(1)}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] 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-height:100dvh;border-radius:0;margin:0}:host(llm-dialog-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-dialog-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-dialog-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
1510
1881
|
}] });
|
|
1511
1882
|
|
|
1512
1883
|
const LLM_TAB_GROUP = new InjectionToken('LLM_TAB_GROUP');
|
|
1513
1884
|
|
|
1514
|
-
let nextId$
|
|
1885
|
+
let nextId$3 = 0;
|
|
1515
1886
|
/**
|
|
1516
1887
|
* Accessible tabbed interface container. Renders a tab list and manages
|
|
1517
1888
|
* keyboard navigation with roving tabindex.
|
|
@@ -1533,7 +1904,7 @@ class LlmTabGroup {
|
|
|
1533
1904
|
/** @internal */
|
|
1534
1905
|
tabs = signal([], ...(ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []));
|
|
1535
1906
|
/** @internal */
|
|
1536
|
-
|
|
1907
|
+
tabBtns = viewChildren('tabBtn', ...(ngDevMode ? [{ debugName: "tabBtns" }] : /* istanbul ignore next */ []));
|
|
1537
1908
|
/** @internal */
|
|
1538
1909
|
hostClasses = computed(() => `variant-${this.variant()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
1539
1910
|
/** @internal — called by LlmTab on init */
|
|
@@ -1554,43 +1925,39 @@ class LlmTabGroup {
|
|
|
1554
1925
|
}
|
|
1555
1926
|
/** @internal */
|
|
1556
1927
|
onTabKeydown(event) {
|
|
1557
|
-
const
|
|
1558
|
-
const
|
|
1559
|
-
|
|
1928
|
+
const allTabs = this.tabs();
|
|
1929
|
+
const enabledIndices = allTabs.map((_, i) => i).filter((i) => !allTabs[i].disabled);
|
|
1930
|
+
const len = enabledIndices.length;
|
|
1931
|
+
if (len === 0)
|
|
1560
1932
|
return;
|
|
1561
|
-
const
|
|
1562
|
-
|
|
1563
|
-
let targetEntry = null;
|
|
1933
|
+
const currentPosInEnabled = enabledIndices.indexOf(this.selectedIndex());
|
|
1934
|
+
let targetIdx = null;
|
|
1564
1935
|
switch (event.key) {
|
|
1565
1936
|
case 'ArrowRight':
|
|
1566
|
-
|
|
1567
|
-
targetEntry = enabled[(currentPos + 1) % n];
|
|
1937
|
+
targetIdx = enabledIndices[(currentPosInEnabled + 1) % len];
|
|
1568
1938
|
break;
|
|
1569
1939
|
case 'ArrowLeft':
|
|
1570
|
-
|
|
1571
|
-
targetEntry = enabled[(currentPos - 1 + n) % n];
|
|
1940
|
+
targetIdx = enabledIndices[(currentPosInEnabled - 1 + len) % len];
|
|
1572
1941
|
break;
|
|
1573
1942
|
case 'Home':
|
|
1574
|
-
|
|
1575
|
-
targetEntry = enabled[0];
|
|
1943
|
+
targetIdx = enabledIndices[0];
|
|
1576
1944
|
break;
|
|
1577
1945
|
case 'End':
|
|
1578
|
-
|
|
1579
|
-
targetEntry = enabled[n - 1];
|
|
1946
|
+
targetIdx = enabledIndices[len - 1];
|
|
1580
1947
|
break;
|
|
1948
|
+
default:
|
|
1949
|
+
return;
|
|
1581
1950
|
}
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1586
|
-
buttons[targetEntry.i]?.focus();
|
|
1587
|
-
}
|
|
1951
|
+
event.preventDefault();
|
|
1952
|
+
this.selectTab(targetIdx);
|
|
1953
|
+
this.tabBtns()[targetIdx]?.nativeElement.focus();
|
|
1588
1954
|
}
|
|
1589
1955
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTabGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1590
|
-
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 }], ngImport: i0, template: `
|
|
1956
|
+
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: `
|
|
1591
1957
|
<div class="tablist" role="tablist">
|
|
1592
1958
|
@for (tab of tabs(); track tab.id; let i = $index) {
|
|
1593
1959
|
<button
|
|
1960
|
+
#tabBtn
|
|
1594
1961
|
type="button"
|
|
1595
1962
|
role="tab"
|
|
1596
1963
|
[id]="tab.tabId"
|
|
@@ -1608,7 +1975,7 @@ class LlmTabGroup {
|
|
|
1608
1975
|
}
|
|
1609
1976
|
</div>
|
|
1610
1977
|
<ng-content />
|
|
1611
|
-
`, isInline: true, styles: [":host{display:block;font-family:var(--ui-font-family)}.tablist{display:flex;gap:var(--ui-spacing-1);border-bottom:1px solid var(--ui-color-border);overflow-x:auto;scrollbar-width:none}.tablist::-webkit-scrollbar{display:none}.tablist button{all:unset;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;padding:var(--ui-spacing-2) 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}.tablist button:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:transparent;border-radius:var(--ui-radius-full);transition:background var(--ui-transition-fast)}.tablist button.is-active{color:var(--ui-color-primary)}.tablist button.is-active:after{background:var(--ui-color-primary)}.tablist button:hover:not(.is-disabled):not(.is-active){color:var(--ui-color-text);background:var(--ui-color-surface-sunken)}.tablist button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}.tablist button.is-disabled{opacity
|
|
1978
|
+
`, isInline: true, styles: [":host{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.tablist{display:flex;gap:var(--ui-spacing-1);border-bottom:1px solid var(--ui-color-border);overflow-x:auto;scrollbar-width:none}.tablist::-webkit-scrollbar{display:none}.tablist button{all:unset;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;padding:var(--ui-spacing-2) 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}.tablist button:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:transparent;border-radius:var(--ui-radius-full);transition:background var(--ui-transition-fast)}.tablist button.is-active{color:var(--ui-color-primary)}.tablist button.is-active:after{background:var(--ui-color-primary)}.tablist button:hover:not(.is-disabled):not(.is-active){color:var(--ui-color-text);background:var(--ui-color-surface-sunken)}.tablist button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}.tablist button.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}llm-tab [role=tabpanel]{padding:var(--ui-spacing-4) 0}llm-tab [role=tabpanel]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}:host(.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)}:host(.variant-pills) .tablist button{border-radius:var(--ui-radius-md);padding:var(--ui-spacing-1) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}:host(.variant-pills) .tablist button:after{display:none}:host(.variant-pills) .tablist button.is-active{background:var(--ui-color-surface);color:var(--ui-color-text);box-shadow:var(--ui-shadow-sm)}:host(.variant-pills) .tablist button:hover:not(.is-disabled):not(.is-active){background:transparent;color:var(--ui-color-text)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1612
1979
|
}
|
|
1613
1980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTabGroup, decorators: [{
|
|
1614
1981
|
type: Component,
|
|
@@ -1616,6 +1983,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1616
1983
|
<div class="tablist" role="tablist">
|
|
1617
1984
|
@for (tab of tabs(); track tab.id; let i = $index) {
|
|
1618
1985
|
<button
|
|
1986
|
+
#tabBtn
|
|
1619
1987
|
type="button"
|
|
1620
1988
|
role="tab"
|
|
1621
1989
|
[id]="tab.tabId"
|
|
@@ -1635,8 +2003,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1635
2003
|
<ng-content />
|
|
1636
2004
|
`, host: {
|
|
1637
2005
|
'[class]': 'hostClasses()',
|
|
1638
|
-
}, providers: [{ provide: LLM_TAB_GROUP, useExisting: LlmTabGroup }], styles: [":host{display:block;font-family:var(--ui-font-family)}.tablist{display:flex;gap:var(--ui-spacing-1);border-bottom:1px solid var(--ui-color-border);overflow-x:auto;scrollbar-width:none}.tablist::-webkit-scrollbar{display:none}.tablist button{all:unset;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;padding:var(--ui-spacing-2) 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}.tablist button:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:transparent;border-radius:var(--ui-radius-full);transition:background var(--ui-transition-fast)}.tablist button.is-active{color:var(--ui-color-primary)}.tablist button.is-active:after{background:var(--ui-color-primary)}.tablist button:hover:not(.is-disabled):not(.is-active){color:var(--ui-color-text);background:var(--ui-color-surface-sunken)}.tablist button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}.tablist button.is-disabled{opacity
|
|
1639
|
-
}], propDecorators: { selectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIndex", required: false }] }, { type: i0.Output, args: ["selectedIndexChange"] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
2006
|
+
}, providers: [{ provide: LLM_TAB_GROUP, useExisting: LlmTabGroup }], styles: [":host{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}.tablist{display:flex;gap:var(--ui-spacing-1);border-bottom:1px solid var(--ui-color-border);overflow-x:auto;scrollbar-width:none}.tablist::-webkit-scrollbar{display:none}.tablist button{all:unset;box-sizing:border-box;position:relative;display:inline-flex;align-items:center;padding:var(--ui-spacing-2) 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}.tablist button:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:transparent;border-radius:var(--ui-radius-full);transition:background var(--ui-transition-fast)}.tablist button.is-active{color:var(--ui-color-primary)}.tablist button.is-active:after{background:var(--ui-color-primary)}.tablist button:hover:not(.is-disabled):not(.is-active){color:var(--ui-color-text);background:var(--ui-color-surface-sunken)}.tablist button:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}.tablist button.is-disabled{opacity:var(--ui-opacity-disabled);cursor:not-allowed}llm-tab [role=tabpanel]{padding:var(--ui-spacing-4) 0}llm-tab [role=tabpanel]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring);border-radius:var(--ui-radius-md)}:host(.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)}:host(.variant-pills) .tablist button{border-radius:var(--ui-radius-md);padding:var(--ui-spacing-1) var(--ui-spacing-4);font-size:var(--ui-font-size-sm)}:host(.variant-pills) .tablist button:after{display:none}:host(.variant-pills) .tablist button.is-active{background:var(--ui-color-surface);color:var(--ui-color-text);box-shadow:var(--ui-shadow-sm)}:host(.variant-pills) .tablist button:hover:not(.is-disabled):not(.is-active){background:transparent;color:var(--ui-color-text)}\n"] }]
|
|
2007
|
+
}], propDecorators: { selectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIndex", required: false }] }, { type: i0.Output, args: ["selectedIndexChange"] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], tabBtns: [{ type: i0.ViewChildren, args: ['tabBtn', { isSignal: true }] }] } });
|
|
1640
2008
|
/**
|
|
1641
2009
|
* Individual tab definition. Place inside `<llm-tab-group>`.
|
|
1642
2010
|
*
|
|
@@ -1651,11 +2019,11 @@ class LlmTab {
|
|
|
1651
2019
|
/** Whether this tab is disabled. */
|
|
1652
2020
|
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
1653
2021
|
/** @internal */
|
|
1654
|
-
tabId = `llm-tab-${nextId$
|
|
2022
|
+
tabId = `llm-tab-${nextId$3}`;
|
|
1655
2023
|
/** @internal */
|
|
1656
|
-
panelId = `llm-tab-panel-${nextId$
|
|
2024
|
+
panelId = `llm-tab-panel-${nextId$3}`;
|
|
1657
2025
|
/** @internal */
|
|
1658
|
-
id = `llm-tab-instance-${nextId$
|
|
2026
|
+
id = `llm-tab-instance-${nextId$3++}`;
|
|
1659
2027
|
/** @internal */
|
|
1660
2028
|
context = inject(LLM_TAB_GROUP);
|
|
1661
2029
|
/** @internal */
|
|
@@ -1707,7 +2075,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1707
2075
|
|
|
1708
2076
|
const LLM_ACCORDION_GROUP = new InjectionToken('LLM_ACCORDION_GROUP');
|
|
1709
2077
|
|
|
1710
|
-
let nextId$
|
|
2078
|
+
let nextId$2 = 0;
|
|
1711
2079
|
/**
|
|
1712
2080
|
* Container that manages accordion items. Controls single vs multi expansion
|
|
1713
2081
|
* and provides keyboard navigation across items.
|
|
@@ -1742,42 +2110,40 @@ class LlmAccordionGroup {
|
|
|
1742
2110
|
this.items.update((list) => list.filter((i) => i !== item));
|
|
1743
2111
|
}
|
|
1744
2112
|
handleKeydown(event, item) {
|
|
1745
|
-
const
|
|
1746
|
-
const
|
|
1747
|
-
if (
|
|
2113
|
+
const enabledItems = this.items().filter((i) => !i.disabled);
|
|
2114
|
+
const len = enabledItems.length;
|
|
2115
|
+
if (len === 0)
|
|
1748
2116
|
return;
|
|
1749
|
-
const
|
|
1750
|
-
|
|
1751
|
-
let target = null;
|
|
2117
|
+
const currentIdx = enabledItems.indexOf(item);
|
|
2118
|
+
let targetItem = null;
|
|
1752
2119
|
switch (event.key) {
|
|
1753
2120
|
case 'ArrowDown':
|
|
1754
|
-
|
|
1755
|
-
target = enabled[(pos + 1) % n];
|
|
2121
|
+
targetItem = enabledItems[(currentIdx + 1) % len];
|
|
1756
2122
|
break;
|
|
1757
2123
|
case 'ArrowUp':
|
|
1758
|
-
|
|
1759
|
-
target = enabled[(pos - 1 + n) % n];
|
|
2124
|
+
targetItem = enabledItems[(currentIdx - 1 + len) % len];
|
|
1760
2125
|
break;
|
|
1761
2126
|
case 'Home':
|
|
1762
|
-
|
|
1763
|
-
target = enabled[0];
|
|
2127
|
+
targetItem = enabledItems[0];
|
|
1764
2128
|
break;
|
|
1765
2129
|
case 'End':
|
|
1766
|
-
|
|
1767
|
-
target = enabled[n - 1];
|
|
2130
|
+
targetItem = enabledItems[len - 1];
|
|
1768
2131
|
break;
|
|
2132
|
+
default:
|
|
2133
|
+
return;
|
|
1769
2134
|
}
|
|
1770
|
-
|
|
2135
|
+
event.preventDefault();
|
|
2136
|
+
targetItem.focus();
|
|
1771
2137
|
}
|
|
1772
2138
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1773
|
-
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: [":host{display:block;font-family:var(--ui-font-family)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2139
|
+
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: [":host{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1774
2140
|
}
|
|
1775
2141
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionGroup, decorators: [{
|
|
1776
2142
|
type: Component,
|
|
1777
2143
|
args: [{ selector: 'llm-accordion-group', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, hostDirectives: [{ directive: CdkAccordion, inputs: ['multi'] }], host: {
|
|
1778
2144
|
'[class]': 'hostClassesValue',
|
|
1779
2145
|
role: 'presentation',
|
|
1780
|
-
}, providers: [{ provide: LLM_ACCORDION_GROUP, useExisting: LlmAccordionGroup }], styles: [":host{display:block;font-family:var(--ui-font-family)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"] }]
|
|
2146
|
+
}, providers: [{ provide: LLM_ACCORDION_GROUP, useExisting: LlmAccordionGroup }], styles: [":host{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"] }]
|
|
1781
2147
|
}], propDecorators: { multi: [{ type: i0.Input, args: [{ isSignal: true, alias: "multi", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
1782
2148
|
/**
|
|
1783
2149
|
* Directive to mark the accordion header content.
|
|
@@ -1808,9 +2174,14 @@ class LlmAccordionItem {
|
|
|
1808
2174
|
/** Whether this item is expanded. Supports two-way binding. */
|
|
1809
2175
|
expanded = model(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
1810
2176
|
/** Whether this item is disabled. */
|
|
1811
|
-
|
|
2177
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2178
|
+
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
2179
|
+
/** @internal — satisfies AccordionItem / FocusableOption interface */
|
|
2180
|
+
get disabled() {
|
|
2181
|
+
return this.disabledInput();
|
|
2182
|
+
}
|
|
1812
2183
|
/** @internal */
|
|
1813
|
-
id = `llm-accordion-item-${nextId$
|
|
2184
|
+
id = `llm-accordion-item-${nextId$2++}`;
|
|
1814
2185
|
/** @internal */
|
|
1815
2186
|
triggerId = `${this.id}-trigger`;
|
|
1816
2187
|
/** @internal */
|
|
@@ -1829,11 +2200,11 @@ class LlmAccordionItem {
|
|
|
1829
2200
|
}
|
|
1830
2201
|
/** @internal */
|
|
1831
2202
|
get isDisabled() {
|
|
1832
|
-
return this.
|
|
2203
|
+
return this.disabledInput();
|
|
1833
2204
|
}
|
|
1834
2205
|
/** @internal */
|
|
1835
2206
|
get ariaDisabled() {
|
|
1836
|
-
return this.
|
|
2207
|
+
return this.disabledInput() || null;
|
|
1837
2208
|
}
|
|
1838
2209
|
constructor() {
|
|
1839
2210
|
this.cdkItem.expandedChange.subscribe((expanded) => {
|
|
@@ -1852,16 +2223,12 @@ class LlmAccordionItem {
|
|
|
1852
2223
|
this.group.unregister(this);
|
|
1853
2224
|
}
|
|
1854
2225
|
/** @internal — for FocusKeyManager */
|
|
1855
|
-
|
|
2226
|
+
focus() {
|
|
1856
2227
|
this.el.nativeElement.querySelector('.accordion-trigger')?.focus();
|
|
1857
2228
|
}
|
|
1858
|
-
/** @internal — for FocusKeyManager */
|
|
1859
|
-
isItemDisabled() {
|
|
1860
|
-
return this.disabled();
|
|
1861
|
-
}
|
|
1862
2229
|
/** @internal */
|
|
1863
2230
|
onToggle() {
|
|
1864
|
-
if (this.
|
|
2231
|
+
if (this.disabledInput())
|
|
1865
2232
|
return;
|
|
1866
2233
|
this.cdkItem.toggle();
|
|
1867
2234
|
}
|
|
@@ -1870,7 +2237,7 @@ class LlmAccordionItem {
|
|
|
1870
2237
|
this.group.handleKeydown(event, this);
|
|
1871
2238
|
}
|
|
1872
2239
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1873
|
-
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 },
|
|
2240
|
+
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 } }, outputs: { expanded: "expandedChange" }, host: { properties: { "attr.data-accordion-id": "id" } }, hostDirectives: [{ directive: i1$2.CdkAccordionItem }], ngImport: i0, template: `
|
|
1874
2241
|
<h3 class="accordion-heading">
|
|
1875
2242
|
<button
|
|
1876
2243
|
type="button"
|
|
@@ -1916,7 +2283,7 @@ class LlmAccordionItem {
|
|
|
1916
2283
|
<ng-content />
|
|
1917
2284
|
</div>
|
|
1918
2285
|
</div>
|
|
1919
|
-
`, isInline: true, styles: [":host{display:block;font-family:var(--ui-font-family)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2286
|
+
`, isInline: true, styles: [":host{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1920
2287
|
}
|
|
1921
2288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmAccordionItem, decorators: [{
|
|
1922
2289
|
type: Component,
|
|
@@ -1968,8 +2335,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
1968
2335
|
</div>
|
|
1969
2336
|
`, host: {
|
|
1970
2337
|
'[attr.data-accordion-id]': 'id',
|
|
1971
|
-
}, styles: [":host{display:block;font-family:var(--ui-font-family)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"] }]
|
|
1972
|
-
}], ctorParameters: () => [], propDecorators: { expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }],
|
|
2338
|
+
}, styles: [":host{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text)}:host(.variant-default){border-top:1px solid var(--ui-color-border)}:host(.variant-default) llm-accordion-item{border-bottom:1px solid var(--ui-color-border)}:host(.variant-bordered){border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-lg);overflow:hidden}:host(.variant-bordered) llm-accordion-item:not(:last-child){border-bottom:1px solid var(--ui-color-border)}:host(.variant-separated){display:flex;flex-direction:column;gap:var(--ui-spacing-2)}:host(.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;width:100%;padding:var(--ui-spacing-4);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-medium);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-4) var(--ui-spacing-4)}.accordion-panel-wrapper:not(.is-expanded) .accordion-panel{padding:0 var(--ui-spacing-4)}\n"] }]
|
|
2339
|
+
}], ctorParameters: () => [], propDecorators: { expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
1973
2340
|
|
|
1974
2341
|
/**
|
|
1975
2342
|
* Trigger directive that opens an `<llm-menu>` dropdown.
|
|
@@ -2704,7 +3071,7 @@ class LlmBreadcrumbs {
|
|
|
2704
3071
|
<ng-content />
|
|
2705
3072
|
</ol>
|
|
2706
3073
|
</nav>
|
|
2707
|
-
`, isInline: true, styles: ["llm-breadcrumbs{display:block;font-family:var(--ui-font-family)}nav{display:block}.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:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3074
|
+
`, isInline: true, styles: [":host(llm-breadcrumbs){display:block;font-family:var(--ui-font-family)}nav{display:block}.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)}:host(llm-breadcrumb-item){display:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2708
3075
|
}
|
|
2709
3076
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbs, decorators: [{
|
|
2710
3077
|
type: Component,
|
|
@@ -2726,7 +3093,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
2726
3093
|
</nav>
|
|
2727
3094
|
`, host: {
|
|
2728
3095
|
'[style.--llm-separator]': 'separatorCssVar()',
|
|
2729
|
-
}, styles: ["llm-breadcrumbs{display:block;font-family:var(--ui-font-family)}nav{display:block}.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:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"] }]
|
|
3096
|
+
}, styles: [":host(llm-breadcrumbs){display:block;font-family:var(--ui-font-family)}nav{display:block}.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)}:host(llm-breadcrumb-item){display:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"] }]
|
|
2730
3097
|
}], propDecorators: { separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
2731
3098
|
/**
|
|
2732
3099
|
* A single breadcrumb step. The last item is automatically treated as
|
|
@@ -2754,7 +3121,7 @@ class LlmBreadcrumbItem {
|
|
|
2754
3121
|
[attr.aria-current]="isCurrent() ? 'page' : null"
|
|
2755
3122
|
><ng-content /></a>
|
|
2756
3123
|
</li>
|
|
2757
|
-
`, isInline: true, styles: ["llm-breadcrumbs{display:block;font-family:var(--ui-font-family)}nav{display:block}.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:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3124
|
+
`, isInline: true, styles: [":host(llm-breadcrumbs){display:block;font-family:var(--ui-font-family)}nav{display:block}.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)}:host(llm-breadcrumb-item){display:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2758
3125
|
}
|
|
2759
3126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbItem, decorators: [{
|
|
2760
3127
|
type: Component,
|
|
@@ -2767,7 +3134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
2767
3134
|
</li>
|
|
2768
3135
|
`, host: {
|
|
2769
3136
|
'[class.is-current]': 'isCurrent()',
|
|
2770
|
-
}, styles: ["llm-breadcrumbs{display:block;font-family:var(--ui-font-family)}nav{display:block}.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:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"] }]
|
|
3137
|
+
}, styles: [":host(llm-breadcrumbs){display:block;font-family:var(--ui-font-family)}nav{display:block}.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)}:host(llm-breadcrumb-item){display:contents}.item{display:flex;align-items:center}.item:after{content:var(--llm-separator, \"/\");margin:0 var(--ui-spacing-2);color:var(--ui-color-border-hover);font-size:var(--ui-font-size-md);line-height:1}:host(.is-current) .item:after{display:none}.item a[href]{color:var(--ui-color-text-muted);text-decoration:none;border-radius:var(--ui-radius-sm);padding:.125rem .25rem;margin:-.125rem -.25rem;transition:color var(--ui-transition-fast)}.item a[href]:hover{color:var(--ui-color-text);text-decoration:underline}.item a[href]:focus-visible{outline:none;box-shadow:var(--ui-focus-ring)}.item a:not([href]){color:var(--ui-color-text);font-weight:var(--ui-font-weight-semibold)}\n"] }]
|
|
2771
3138
|
}], propDecorators: { href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }] } });
|
|
2772
3139
|
|
|
2773
3140
|
/**
|
|
@@ -2895,7 +3262,7 @@ class LlmPagination {
|
|
|
2895
3262
|
}
|
|
2896
3263
|
</ul>
|
|
2897
3264
|
</nav>
|
|
2898
|
-
`, isInline: true, styles: [":host{display:block;font-family:var(--ui-font-family)}nav{display:block}.page-list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-spacing-1);list-style:none;margin:0;padding:0}.page-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--ui-radius-md);border:1px solid var(--ui-color-border);background:var(--ui-color-surface);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);border-color:var(--ui-color-border-hover)}.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)}.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
|
|
3265
|
+
`, isInline: true, styles: [":host{display:block;font-family:var(--ui-font-family)}nav{display:block}.page-list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-spacing-1);list-style:none;margin:0;padding:0}.page-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--ui-radius-md);border:1px solid var(--ui-color-border);background:var(--ui-color-surface);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);border-color:var(--ui-color-border-hover)}.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)}.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;width:2rem;height:2rem;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 });
|
|
2899
3266
|
}
|
|
2900
3267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmPagination, decorators: [{
|
|
2901
3268
|
type: Component,
|
|
@@ -2963,12 +3330,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
2963
3330
|
}
|
|
2964
3331
|
</ul>
|
|
2965
3332
|
</nav>
|
|
2966
|
-
`, styles: [":host{display:block;font-family:var(--ui-font-family)}nav{display:block}.page-list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-spacing-1);list-style:none;margin:0;padding:0}.page-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--ui-radius-md);border:1px solid var(--ui-color-border);background:var(--ui-color-surface);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);border-color:var(--ui-color-border-hover)}.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)}.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
|
|
3333
|
+
`, styles: [":host{display:block;font-family:var(--ui-font-family)}nav{display:block}.page-list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-spacing-1);list-style:none;margin:0;padding:0}.page-btn{all:unset;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--ui-radius-md);border:1px solid var(--ui-color-border);background:var(--ui-color-surface);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);border-color:var(--ui-color-border-hover)}.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)}.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;width:2rem;height:2rem;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-sm);-webkit-user-select:none;user-select:none}\n"] }]
|
|
2967
3334
|
}], propDecorators: { page: [{ type: i0.Input, args: [{ isSignal: true, alias: "page", required: false }] }, { type: i0.Output, args: ["pageChange"] }], pageCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageCount", required: false }] }], siblingCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "siblingCount", required: false }] }], showFirstLast: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLast", required: false }] }] } });
|
|
2968
3335
|
|
|
2969
3336
|
const LLM_DRAWER = new InjectionToken('LLM_DRAWER');
|
|
2970
3337
|
|
|
2971
|
-
let nextId = 0;
|
|
3338
|
+
let nextId$1 = 0;
|
|
2972
3339
|
/**
|
|
2973
3340
|
* Slide-in drawer panel using the native `<dialog>` element.
|
|
2974
3341
|
* Supports left, right, top, and bottom positions with focus trap,
|
|
@@ -2997,8 +3364,8 @@ class LlmDrawer {
|
|
|
2997
3364
|
/** Whether clicking the backdrop closes the drawer. */
|
|
2998
3365
|
closeOnBackdrop = input(true, ...(ngDevMode ? [{ debugName: "closeOnBackdrop" }] : /* istanbul ignore next */ []));
|
|
2999
3366
|
/** @internal — referenced by LlmDrawerHeader via LLM_DRAWER token */
|
|
3000
|
-
headerId = `llm-drawer-header-${nextId}`;
|
|
3001
|
-
drawerId = `llm-drawer-${nextId++}`;
|
|
3367
|
+
headerId = `llm-drawer-header-${nextId$1}`;
|
|
3368
|
+
drawerId = `llm-drawer-${nextId$1++}`;
|
|
3002
3369
|
dialogRef = viewChild('dialogEl', ...(ngDevMode ? [{ debugName: "dialogRef" }] : /* istanbul ignore next */ []));
|
|
3003
3370
|
triggerEl = signal(null, ...(ngDevMode ? [{ debugName: "triggerEl" }] : /* istanbul ignore next */ []));
|
|
3004
3371
|
hostClasses = computed(() => `position-${this.position()} size-${this.size()}${this.open() ? ' is-open' : ''}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
@@ -3054,7 +3421,7 @@ class LlmDrawer {
|
|
|
3054
3421
|
<ng-content />
|
|
3055
3422
|
</div>
|
|
3056
3423
|
</dialog>
|
|
3057
|
-
`, isInline: true, styles: ["llm-drawer{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3424
|
+
`, isInline: true, styles: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3058
3425
|
}
|
|
3059
3426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawer, decorators: [{
|
|
3060
3427
|
type: Component,
|
|
@@ -3085,7 +3452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3085
3452
|
</dialog>
|
|
3086
3453
|
`, host: {
|
|
3087
3454
|
'[class]': 'hostClasses()',
|
|
3088
|
-
}, styles: ["llm-drawer{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3455
|
+
}, styles: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3089
3456
|
}], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], dialogRef: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }] } });
|
|
3090
3457
|
/**
|
|
3091
3458
|
* Header slot for `llm-drawer`. Contains the title and a close button.
|
|
@@ -3119,7 +3486,7 @@ class LlmDrawerHeader {
|
|
|
3119
3486
|
<line x1="6" y1="6" x2="18" y2="18" />
|
|
3120
3487
|
</svg>
|
|
3121
3488
|
</button>
|
|
3122
|
-
`, isInline: true, styles: ["llm-drawer{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3489
|
+
`, isInline: true, styles: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3123
3490
|
}
|
|
3124
3491
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerHeader, decorators: [{
|
|
3125
3492
|
type: Component,
|
|
@@ -3150,29 +3517,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3150
3517
|
</button>
|
|
3151
3518
|
`, host: {
|
|
3152
3519
|
'[attr.id]': 'context.headerId',
|
|
3153
|
-
}, styles: ["llm-drawer{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3520
|
+
}, styles: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3154
3521
|
}] });
|
|
3155
3522
|
/**
|
|
3156
3523
|
* Content slot for `llm-drawer`. Scrollable primary content area.
|
|
3157
3524
|
*/
|
|
3158
3525
|
class LlmDrawerContent {
|
|
3159
3526
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3160
|
-
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{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3527
|
+
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: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3161
3528
|
}
|
|
3162
3529
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerContent, decorators: [{
|
|
3163
3530
|
type: Component,
|
|
3164
|
-
args: [{ selector: 'llm-drawer-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: ["llm-drawer{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3531
|
+
args: [{ selector: 'llm-drawer-content', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3165
3532
|
}] });
|
|
3166
3533
|
/**
|
|
3167
3534
|
* Footer slot for `llm-drawer`. Renders at the bottom with action buttons.
|
|
3168
3535
|
*/
|
|
3169
3536
|
class LlmDrawerFooter {
|
|
3170
3537
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerFooter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3171
|
-
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{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3538
|
+
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: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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 });
|
|
3172
3539
|
}
|
|
3173
3540
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmDrawerFooter, decorators: [{
|
|
3174
3541
|
type: Component,
|
|
3175
|
-
args: [{ selector: 'llm-drawer-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: ["llm-drawer{display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}llm-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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-5);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-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3542
|
+
args: [{ selector: 'llm-drawer-footer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<ng-content />`, styles: [":host(llm-drawer){display:contents}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}dialog[open]{display:flex;transform:translate(0)!important}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{dialog[open]::backdrop{opacity:0}}@media(prefers-color-scheme:dark){dialog::backdrop{background:#000000b3}}[data-theme=dark] dialog::backdrop{background:#000000b3}.panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}:host(.position-right) dialog{inset:0 0 0 auto;height:100dvh;transform:translate(100%)}@starting-style{:host(.position-right) dialog[open]{transform:translate(100%)}}:host(.position-left) dialog{inset:0 auto 0 0;height:100dvh;transform:translate(-100%)}@starting-style{:host(.position-left) dialog[open]{transform:translate(-100%)}}:host(.position-top) dialog{inset:0 0 auto;width:100vw;transform:translateY(-100%)}@starting-style{:host(.position-top) dialog[open]{transform:translateY(-100%)}}:host(.position-bottom) dialog{inset:auto 0 0;width:100vw;transform:translateY(100%)}@starting-style{:host(.position-bottom) dialog[open]{transform:translateY(100%)}}:host(.position-right.size-sm) dialog,:host(.position-left.size-sm) dialog{width:20rem}:host(.position-right.size-md) dialog,:host(.position-left.size-md) dialog{width:28rem}:host(.position-right.size-lg) dialog,:host(.position-left.size-lg) dialog{width:40rem}:host(.position-right.size-full) dialog,:host(.position-left.size-full) dialog{width:100vw}:host(.position-top.size-sm) dialog,:host(.position-bottom.size-sm) dialog{height:12rem}:host(.position-top.size-md) dialog,:host(.position-bottom.size-md) dialog{height:20rem}:host(.position-top.size-lg) dialog,:host(.position-bottom.size-lg) dialog{height:32rem}:host(.position-top.size-full) dialog,:host(.position-bottom.size-full) dialog{height:100dvh}:host(llm-drawer-header){display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-4) var(--ui-spacing-5);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}:host(llm-drawer-content){display:block;padding:var(--ui-spacing-5);overflow-y:auto;flex:1;color:var(--ui-color-text)}:host(llm-drawer-footer){display:flex;align-items:center;justify-content:flex-end;gap:var(--ui-spacing-2);padding:var(--ui-spacing-4) var(--ui-spacing-5);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:1.75rem;height:1.75rem;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"] }]
|
|
3176
3543
|
}] });
|
|
3177
3544
|
|
|
3178
3545
|
const LLM_TABLE = new InjectionToken('LLM_TABLE');
|
|
@@ -3225,7 +3592,7 @@ class LlmTable {
|
|
|
3225
3592
|
<ng-content />
|
|
3226
3593
|
</table>
|
|
3227
3594
|
</div>
|
|
3228
|
-
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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 });
|
|
3595
|
+
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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 });
|
|
3229
3596
|
}
|
|
3230
3597
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTable, decorators: [{
|
|
3231
3598
|
type: Component,
|
|
@@ -3237,7 +3604,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3237
3604
|
</div>
|
|
3238
3605
|
`, host: {
|
|
3239
3606
|
'[class]': 'hostClasses()',
|
|
3240
|
-
}, providers: [{ provide: LLM_TABLE, useExisting: LlmTable }], styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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"] }]
|
|
3607
|
+
}, providers: [{ provide: LLM_TABLE, useExisting: LlmTable }], encapsulation: ViewEncapsulation.None, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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"] }]
|
|
3241
3608
|
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], stickyHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyHeader", required: false }] }] } });
|
|
3242
3609
|
// ---------------------------------------------------------------------------
|
|
3243
3610
|
// LlmThead
|
|
@@ -3256,11 +3623,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3256
3623
|
*/
|
|
3257
3624
|
class LlmThead {
|
|
3258
3625
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmThead, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3259
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: LlmThead, isStandalone: true, selector: "llm-thead", ngImport: i0, template: `<thead><ng-content /></thead>`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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 });
|
|
3626
|
+
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-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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 });
|
|
3260
3627
|
}
|
|
3261
3628
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmThead, decorators: [{
|
|
3262
3629
|
type: Component,
|
|
3263
|
-
args: [{ selector: 'llm-thead', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<thead><ng-content /></thead>`, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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"] }]
|
|
3630
|
+
args: [{ selector: 'llm-thead', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `<thead><ng-content /></thead>`, host: { '[style.display]': '"contents"' }, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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"] }]
|
|
3264
3631
|
}] });
|
|
3265
3632
|
// ---------------------------------------------------------------------------
|
|
3266
3633
|
// LlmTbody
|
|
@@ -3284,7 +3651,7 @@ class LlmTbody {
|
|
|
3284
3651
|
/** Number of columns to span in the empty-state row. Should match total column count. */
|
|
3285
3652
|
colSpan = input(1, ...(ngDevMode ? [{ debugName: "colSpan" }] : /* istanbul ignore next */ []));
|
|
3286
3653
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTbody, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3287
|
-
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 } }, ngImport: i0, template: `
|
|
3654
|
+
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: `
|
|
3288
3655
|
<tbody>
|
|
3289
3656
|
@if (!empty()) {
|
|
3290
3657
|
<ng-content />
|
|
@@ -3296,7 +3663,7 @@ class LlmTbody {
|
|
|
3296
3663
|
</tr>
|
|
3297
3664
|
}
|
|
3298
3665
|
</tbody>
|
|
3299
|
-
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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 });
|
|
3666
|
+
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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 });
|
|
3300
3667
|
}
|
|
3301
3668
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTbody, decorators: [{
|
|
3302
3669
|
type: Component,
|
|
@@ -3312,7 +3679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3312
3679
|
</tr>
|
|
3313
3680
|
}
|
|
3314
3681
|
</tbody>
|
|
3315
|
-
`, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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"] }]
|
|
3682
|
+
`, host: { '[style.display]': '"contents"' }, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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"] }]
|
|
3316
3683
|
}], propDecorators: { empty: [{ type: i0.Input, args: [{ isSignal: true, alias: "empty", required: false }] }], colSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "colSpan", required: false }] }] } });
|
|
3317
3684
|
// ---------------------------------------------------------------------------
|
|
3318
3685
|
// LlmTr
|
|
@@ -3342,7 +3709,7 @@ class LlmTr {
|
|
|
3342
3709
|
/** @internal — applied to inner <tr> for CSS selection styling */
|
|
3343
3710
|
innerClasses = computed(() => this.selected() ? 'is-selected' : '', ...(ngDevMode ? [{ debugName: "innerClasses" }] : /* istanbul ignore next */ []));
|
|
3344
3711
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTr, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3345
|
-
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()" } }, ngImport: i0, template: `
|
|
3712
|
+
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: `
|
|
3346
3713
|
<tr
|
|
3347
3714
|
[attr.aria-selected]="selectable() ? selected() : null"
|
|
3348
3715
|
[class]="innerClasses()"
|
|
@@ -3354,7 +3721,7 @@ class LlmTr {
|
|
|
3354
3721
|
}
|
|
3355
3722
|
<ng-content />
|
|
3356
3723
|
</tr>
|
|
3357
|
-
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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 });
|
|
3724
|
+
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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 });
|
|
3358
3725
|
}
|
|
3359
3726
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTr, decorators: [{
|
|
3360
3727
|
type: Component,
|
|
@@ -3372,7 +3739,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3372
3739
|
</tr>
|
|
3373
3740
|
`, host: {
|
|
3374
3741
|
'[class]': 'hostClasses()',
|
|
3375
|
-
|
|
3742
|
+
'[style.display]': '"contents"',
|
|
3743
|
+
}, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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"] }]
|
|
3376
3744
|
}], propDecorators: { selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], selectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectable", required: false }] }], rowId: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowId", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }] } });
|
|
3377
3745
|
/**
|
|
3378
3746
|
* Table header cell. Set `sortable` to enable sort cycling.
|
|
@@ -3426,7 +3794,7 @@ class LlmTh {
|
|
|
3426
3794
|
this.sort.emit(next);
|
|
3427
3795
|
}
|
|
3428
3796
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTh, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3429
|
-
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" }, ngImport: i0, template: `
|
|
3797
|
+
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: `
|
|
3430
3798
|
<th
|
|
3431
3799
|
[attr.aria-sort]="ariaSort()"
|
|
3432
3800
|
[style.width]="width() ?? null"
|
|
@@ -3451,7 +3819,7 @@ class LlmTh {
|
|
|
3451
3819
|
<ng-content />
|
|
3452
3820
|
}
|
|
3453
3821
|
</th>
|
|
3454
|
-
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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 });
|
|
3822
|
+
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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 });
|
|
3455
3823
|
}
|
|
3456
3824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTh, decorators: [{
|
|
3457
3825
|
type: Component,
|
|
@@ -3480,7 +3848,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3480
3848
|
<ng-content />
|
|
3481
3849
|
}
|
|
3482
3850
|
</th>
|
|
3483
|
-
`, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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"] }]
|
|
3851
|
+
`, host: { '[style.display]': '"contents"' }, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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"] }]
|
|
3484
3852
|
}], propDecorators: { sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], sortDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortDirection", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], sort: [{ type: i0.Output, args: ["sort"] }] } });
|
|
3485
3853
|
// ---------------------------------------------------------------------------
|
|
3486
3854
|
// LlmTd
|
|
@@ -3497,11 +3865,11 @@ class LlmTd {
|
|
|
3497
3865
|
/** Text alignment of the cell content. */
|
|
3498
3866
|
align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3499
3867
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTd, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3500
|
-
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 } }, ngImport: i0, template: `
|
|
3868
|
+
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: `
|
|
3501
3869
|
<td [class]="'align-' + align()">
|
|
3502
3870
|
<ng-content />
|
|
3503
3871
|
</td>
|
|
3504
|
-
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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 });
|
|
3872
|
+
`, isInline: true, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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 });
|
|
3505
3873
|
}
|
|
3506
3874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTd, decorators: [{
|
|
3507
3875
|
type: Component,
|
|
@@ -3509,9 +3877,402 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3509
3877
|
<td [class]="'align-' + align()">
|
|
3510
3878
|
<ng-content />
|
|
3511
3879
|
</td>
|
|
3512
|
-
`, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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"] }]
|
|
3880
|
+
`, host: { '[style.display]': '"contents"' }, styles: ["llm-thead,llm-tbody,llm-tr,llm-th,llm-td{display:contents}llm-table{display:block;font-family:var(--ui-font-family);color:var(--ui-color-text);border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden}.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 llm-tbody llm-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{background-color:var(--ui-color-primary-light)}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: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-table llm-tbody llm-tr:last-child td{border-bottom:none}.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"] }]
|
|
3513
3881
|
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
3514
3882
|
|
|
3883
|
+
const LLM_STEPPER = new InjectionToken('LLM_STEPPER');
|
|
3884
|
+
|
|
3885
|
+
let nextId = 0;
|
|
3886
|
+
/**
|
|
3887
|
+
* Multi-step wizard container.
|
|
3888
|
+
*
|
|
3889
|
+
* Usage:
|
|
3890
|
+
* ```html
|
|
3891
|
+
* <llm-stepper [(activeStep)]="step">
|
|
3892
|
+
* <llm-step label="Account">Account form here.</llm-step>
|
|
3893
|
+
* <llm-step label="Profile">Profile form here.</llm-step>
|
|
3894
|
+
* <llm-step label="Review">Review and submit.</llm-step>
|
|
3895
|
+
* </llm-stepper>
|
|
3896
|
+
* ```
|
|
3897
|
+
*/
|
|
3898
|
+
class LlmStepper {
|
|
3899
|
+
/** Index of the currently active step. Supports two-way binding. */
|
|
3900
|
+
activeStep = model(0, ...(ngDevMode ? [{ debugName: "activeStep" }] : /* istanbul ignore next */ []));
|
|
3901
|
+
/** Layout orientation. */
|
|
3902
|
+
orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
3903
|
+
/**
|
|
3904
|
+
* When true, users can only navigate to completed steps or the next pending step.
|
|
3905
|
+
* Use `goTo()` / `next()` in your step content to advance programmatically.
|
|
3906
|
+
*/
|
|
3907
|
+
linear = input(false, ...(ngDevMode ? [{ debugName: "linear" }] : /* istanbul ignore next */ []));
|
|
3908
|
+
/** @internal */
|
|
3909
|
+
steps = signal([], ...(ngDevMode ? [{ debugName: "steps" }] : /* istanbul ignore next */ []));
|
|
3910
|
+
/** @internal */
|
|
3911
|
+
hostClasses = computed(() => `orientation-${this.orientation()}`, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
3912
|
+
/** @internal — called by LlmStep on init */
|
|
3913
|
+
registerStep(info) {
|
|
3914
|
+
this.steps.update((list) => [...list, info]);
|
|
3915
|
+
}
|
|
3916
|
+
/** @internal — called by LlmStep on destroy */
|
|
3917
|
+
unregisterStep(id) {
|
|
3918
|
+
this.steps.update((list) => list.filter((s) => s.id !== id));
|
|
3919
|
+
}
|
|
3920
|
+
/** @internal — called by LlmStep effect when inputs change */
|
|
3921
|
+
updateStep(id, info) {
|
|
3922
|
+
this.steps.update((list) => list.map((s) => (s.id === id ? { ...s, ...info } : s)));
|
|
3923
|
+
}
|
|
3924
|
+
/** Navigate to a specific step index. Respects linear mode. */
|
|
3925
|
+
goTo(index) {
|
|
3926
|
+
const steps = this.steps();
|
|
3927
|
+
if (index < 0 || index >= steps.length)
|
|
3928
|
+
return;
|
|
3929
|
+
if (steps[index].disabled)
|
|
3930
|
+
return;
|
|
3931
|
+
if (this.linear()) {
|
|
3932
|
+
// In linear mode, only allow going back or to the next uncompleted step
|
|
3933
|
+
const canGoForward = steps.slice(0, index).every((s) => s.completed || s.optional);
|
|
3934
|
+
if (index > this.activeStep() && !canGoForward)
|
|
3935
|
+
return;
|
|
3936
|
+
}
|
|
3937
|
+
this.activeStep.set(index);
|
|
3938
|
+
}
|
|
3939
|
+
/** Advance to the next step. */
|
|
3940
|
+
next() {
|
|
3941
|
+
this.goTo(this.activeStep() + 1);
|
|
3942
|
+
}
|
|
3943
|
+
/** Go back to the previous step. */
|
|
3944
|
+
prev() {
|
|
3945
|
+
const prev = this.activeStep() - 1;
|
|
3946
|
+
if (prev < 0)
|
|
3947
|
+
return;
|
|
3948
|
+
const steps = this.steps();
|
|
3949
|
+
if (steps[prev]?.disabled)
|
|
3950
|
+
return;
|
|
3951
|
+
this.activeStep.set(prev);
|
|
3952
|
+
}
|
|
3953
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3954
|
+
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: `
|
|
3955
|
+
<div class="stepper-header" role="tablist">
|
|
3956
|
+
@for (step of steps(); track step.id; let i = $index; let last = $last) {
|
|
3957
|
+
<div
|
|
3958
|
+
class="step-item"
|
|
3959
|
+
[class.is-active]="activeStep() === i"
|
|
3960
|
+
[class.is-completed]="step.completed && activeStep() !== i"
|
|
3961
|
+
[class.is-error]="step.error"
|
|
3962
|
+
[class.is-disabled]="step.disabled"
|
|
3963
|
+
>
|
|
3964
|
+
<button
|
|
3965
|
+
type="button"
|
|
3966
|
+
role="tab"
|
|
3967
|
+
class="step-circle"
|
|
3968
|
+
[id]="'llm-step-' + i"
|
|
3969
|
+
[attr.aria-label]="step.label"
|
|
3970
|
+
[attr.aria-selected]="activeStep() === i"
|
|
3971
|
+
[attr.aria-controls]="'llm-step-panel-' + i"
|
|
3972
|
+
[attr.aria-disabled]="step.disabled || null"
|
|
3973
|
+
[attr.tabindex]="activeStep() === i ? 0 : -1"
|
|
3974
|
+
[disabled]="step.disabled || null"
|
|
3975
|
+
(click)="goTo(i)"
|
|
3976
|
+
>
|
|
3977
|
+
@if (step.completed && !step.error) {
|
|
3978
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
3979
|
+
<path d="M2 7L5.5 10.5L12 3.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3980
|
+
</svg>
|
|
3981
|
+
} @else if (step.error) {
|
|
3982
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
3983
|
+
<path d="M3 3L11 11M11 3L3 11" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
3984
|
+
</svg>
|
|
3985
|
+
} @else {
|
|
3986
|
+
{{ i + 1 }}
|
|
3987
|
+
}
|
|
3988
|
+
</button>
|
|
3989
|
+
<div class="step-text">
|
|
3990
|
+
<span class="step-label">{{ step.label }}</span>
|
|
3991
|
+
@if (step.description) {
|
|
3992
|
+
<span class="step-description">{{ step.description }}</span>
|
|
3993
|
+
}
|
|
3994
|
+
@if (step.optional && !step.completed) {
|
|
3995
|
+
<span class="step-optional">Optional</span>
|
|
3996
|
+
}
|
|
3997
|
+
</div>
|
|
3998
|
+
</div>
|
|
3999
|
+
@if (!last) {
|
|
4000
|
+
<div
|
|
4001
|
+
class="step-connector"
|
|
4002
|
+
[class.is-active]="activeStep() > i || step.completed"
|
|
4003
|
+
></div>
|
|
4004
|
+
}
|
|
4005
|
+
}
|
|
4006
|
+
</div>
|
|
4007
|
+
<div class="stepper-content">
|
|
4008
|
+
<ng-content />
|
|
4009
|
+
</div>
|
|
4010
|
+
`, isInline: true, styles: [":host{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);transition:background var(--ui-transition-fast);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:32px;height:32px;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-fast);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)}.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)}.step-item.is-completed .step-circle{border-color:var(--ui-color-primary);background:var(--ui-color-primary);color:var(--ui-color-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)}:host(.orientation-vertical) .stepper-header{flex-direction:column;align-items:stretch}:host(.orientation-vertical) .step-item{flex-direction:row;align-items:flex-start;gap:var(--ui-spacing-3)}:host(.orientation-vertical) .step-text{align-items:flex-start;text-align:left;margin-top:0;padding-top:var(--ui-spacing-1)}:host(.orientation-vertical) .step-connector{flex:none;width:2px;height:var(--ui-spacing-6);margin-left:15px;min-width:0;align-self:auto}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4011
|
+
}
|
|
4012
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStepper, decorators: [{
|
|
4013
|
+
type: Component,
|
|
4014
|
+
args: [{ selector: 'llm-stepper', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
4015
|
+
<div class="stepper-header" role="tablist">
|
|
4016
|
+
@for (step of steps(); track step.id; let i = $index; let last = $last) {
|
|
4017
|
+
<div
|
|
4018
|
+
class="step-item"
|
|
4019
|
+
[class.is-active]="activeStep() === i"
|
|
4020
|
+
[class.is-completed]="step.completed && activeStep() !== i"
|
|
4021
|
+
[class.is-error]="step.error"
|
|
4022
|
+
[class.is-disabled]="step.disabled"
|
|
4023
|
+
>
|
|
4024
|
+
<button
|
|
4025
|
+
type="button"
|
|
4026
|
+
role="tab"
|
|
4027
|
+
class="step-circle"
|
|
4028
|
+
[id]="'llm-step-' + i"
|
|
4029
|
+
[attr.aria-label]="step.label"
|
|
4030
|
+
[attr.aria-selected]="activeStep() === i"
|
|
4031
|
+
[attr.aria-controls]="'llm-step-panel-' + i"
|
|
4032
|
+
[attr.aria-disabled]="step.disabled || null"
|
|
4033
|
+
[attr.tabindex]="activeStep() === i ? 0 : -1"
|
|
4034
|
+
[disabled]="step.disabled || null"
|
|
4035
|
+
(click)="goTo(i)"
|
|
4036
|
+
>
|
|
4037
|
+
@if (step.completed && !step.error) {
|
|
4038
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
4039
|
+
<path d="M2 7L5.5 10.5L12 3.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4040
|
+
</svg>
|
|
4041
|
+
} @else if (step.error) {
|
|
4042
|
+
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
|
4043
|
+
<path d="M3 3L11 11M11 3L3 11" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
4044
|
+
</svg>
|
|
4045
|
+
} @else {
|
|
4046
|
+
{{ i + 1 }}
|
|
4047
|
+
}
|
|
4048
|
+
</button>
|
|
4049
|
+
<div class="step-text">
|
|
4050
|
+
<span class="step-label">{{ step.label }}</span>
|
|
4051
|
+
@if (step.description) {
|
|
4052
|
+
<span class="step-description">{{ step.description }}</span>
|
|
4053
|
+
}
|
|
4054
|
+
@if (step.optional && !step.completed) {
|
|
4055
|
+
<span class="step-optional">Optional</span>
|
|
4056
|
+
}
|
|
4057
|
+
</div>
|
|
4058
|
+
</div>
|
|
4059
|
+
@if (!last) {
|
|
4060
|
+
<div
|
|
4061
|
+
class="step-connector"
|
|
4062
|
+
[class.is-active]="activeStep() > i || step.completed"
|
|
4063
|
+
></div>
|
|
4064
|
+
}
|
|
4065
|
+
}
|
|
4066
|
+
</div>
|
|
4067
|
+
<div class="stepper-content">
|
|
4068
|
+
<ng-content />
|
|
4069
|
+
</div>
|
|
4070
|
+
`, host: {
|
|
4071
|
+
'[class]': 'hostClasses()',
|
|
4072
|
+
}, providers: [{ provide: LLM_STEPPER, useExisting: LlmStepper }], styles: [":host{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);transition:background var(--ui-transition-fast);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:32px;height:32px;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-fast);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)}.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)}.step-item.is-completed .step-circle{border-color:var(--ui-color-primary);background:var(--ui-color-primary);color:var(--ui-color-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)}:host(.orientation-vertical) .stepper-header{flex-direction:column;align-items:stretch}:host(.orientation-vertical) .step-item{flex-direction:row;align-items:flex-start;gap:var(--ui-spacing-3)}:host(.orientation-vertical) .step-text{align-items:flex-start;text-align:left;margin-top:0;padding-top:var(--ui-spacing-1)}:host(.orientation-vertical) .step-connector{flex:none;width:2px;height:var(--ui-spacing-6);margin-left:15px;min-width:0;align-self:auto}\n"] }]
|
|
4073
|
+
}], propDecorators: { activeStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeStep", required: false }] }, { type: i0.Output, args: ["activeStepChange"] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], linear: [{ type: i0.Input, args: [{ isSignal: true, alias: "linear", required: false }] }] } });
|
|
4074
|
+
/**
|
|
4075
|
+
* Individual step. Place inside `<llm-stepper>`.
|
|
4076
|
+
*
|
|
4077
|
+
* Usage:
|
|
4078
|
+
* ```html
|
|
4079
|
+
* <llm-step label="Account">Account form here.</llm-step>
|
|
4080
|
+
* ```
|
|
4081
|
+
*/
|
|
4082
|
+
class LlmStep {
|
|
4083
|
+
/** Text displayed on the step indicator. Required. */
|
|
4084
|
+
label = input.required(...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
4085
|
+
/** Optional subtitle shown below the label. */
|
|
4086
|
+
description = input(undefined, ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
|
|
4087
|
+
/** Mark this step as completed (shows a checkmark). */
|
|
4088
|
+
completed = input(false, ...(ngDevMode ? [{ debugName: "completed" }] : /* istanbul ignore next */ []));
|
|
4089
|
+
/** Mark this step as having an error (shows an X). */
|
|
4090
|
+
error = input(false, ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
|
|
4091
|
+
/** Mark this step as optional. */
|
|
4092
|
+
optional = input(false, ...(ngDevMode ? [{ debugName: "optional" }] : /* istanbul ignore next */ []));
|
|
4093
|
+
/** Whether this step is disabled. */
|
|
4094
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
4095
|
+
/** @internal */
|
|
4096
|
+
id = `llm-step-instance-${nextId++}`;
|
|
4097
|
+
/** @internal */
|
|
4098
|
+
context = inject(LLM_STEPPER);
|
|
4099
|
+
/** @internal */
|
|
4100
|
+
myIndex = computed(() => this.context.steps().findIndex((s) => s.id === this.id), ...(ngDevMode ? [{ debugName: "myIndex" }] : /* istanbul ignore next */ []));
|
|
4101
|
+
/** @internal */
|
|
4102
|
+
isActive = computed(() => this.context.activeStep() === this.myIndex(), ...(ngDevMode ? [{ debugName: "isActive" }] : /* istanbul ignore next */ []));
|
|
4103
|
+
constructor() {
|
|
4104
|
+
// Keep step info in sync when inputs change
|
|
4105
|
+
effect(() => {
|
|
4106
|
+
if (this.myIndex() === -1)
|
|
4107
|
+
return;
|
|
4108
|
+
this.context.updateStep(this.id, {
|
|
4109
|
+
label: this.label(),
|
|
4110
|
+
description: this.description(),
|
|
4111
|
+
completed: this.completed(),
|
|
4112
|
+
error: this.error(),
|
|
4113
|
+
optional: this.optional(),
|
|
4114
|
+
disabled: this.disabled(),
|
|
4115
|
+
});
|
|
4116
|
+
});
|
|
4117
|
+
}
|
|
4118
|
+
ngOnInit() {
|
|
4119
|
+
this.context.registerStep({
|
|
4120
|
+
id: this.id,
|
|
4121
|
+
label: this.label(),
|
|
4122
|
+
description: this.description(),
|
|
4123
|
+
completed: this.completed(),
|
|
4124
|
+
error: this.error(),
|
|
4125
|
+
optional: this.optional(),
|
|
4126
|
+
disabled: this.disabled(),
|
|
4127
|
+
});
|
|
4128
|
+
}
|
|
4129
|
+
ngOnDestroy() {
|
|
4130
|
+
this.context.unregisterStep(this.id);
|
|
4131
|
+
}
|
|
4132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStep, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4133
|
+
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: `
|
|
4134
|
+
@if (isActive()) {
|
|
4135
|
+
<div
|
|
4136
|
+
role="tabpanel"
|
|
4137
|
+
[id]="'llm-step-panel-' + myIndex()"
|
|
4138
|
+
[attr.aria-labelledby]="'llm-step-' + myIndex()"
|
|
4139
|
+
tabindex="0"
|
|
4140
|
+
>
|
|
4141
|
+
<ng-content />
|
|
4142
|
+
</div>
|
|
4143
|
+
}
|
|
4144
|
+
`, isInline: true, styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4145
|
+
}
|
|
4146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmStep, decorators: [{
|
|
4147
|
+
type: Component,
|
|
4148
|
+
args: [{ selector: 'llm-step', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
4149
|
+
@if (isActive()) {
|
|
4150
|
+
<div
|
|
4151
|
+
role="tabpanel"
|
|
4152
|
+
[id]="'llm-step-panel-' + myIndex()"
|
|
4153
|
+
[attr.aria-labelledby]="'llm-step-' + myIndex()"
|
|
4154
|
+
tabindex="0"
|
|
4155
|
+
>
|
|
4156
|
+
<ng-content />
|
|
4157
|
+
</div>
|
|
4158
|
+
}
|
|
4159
|
+
`, styles: [":host{display:contents}\n"] }]
|
|
4160
|
+
}], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], completed: [{ type: i0.Input, args: [{ isSignal: true, alias: "completed", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], optional: [{ type: i0.Input, args: [{ isSignal: true, alias: "optional", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
4161
|
+
|
|
4162
|
+
/**
|
|
4163
|
+
* Displays a block of code with an optional header, language label, and copy button.
|
|
4164
|
+
* Designed for rendering LLM-generated code output, inline snippets, and API examples.
|
|
4165
|
+
*
|
|
4166
|
+
* Usage:
|
|
4167
|
+
* ```html
|
|
4168
|
+
* <llm-code-block code="const x = 1;" language="typescript" />
|
|
4169
|
+
* <llm-code-block [code]="generatedCode" filename="app.component.ts" [showLineNumbers]="true" />
|
|
4170
|
+
* ```
|
|
4171
|
+
*/
|
|
4172
|
+
class LlmCodeBlock {
|
|
4173
|
+
/** The code string to display. */
|
|
4174
|
+
code = input('', ...(ngDevMode ? [{ debugName: "code" }] : /* istanbul ignore next */ []));
|
|
4175
|
+
/** Language label shown in the header. Ignored if filename is set. */
|
|
4176
|
+
language = input('text', ...(ngDevMode ? [{ debugName: "language" }] : /* istanbul ignore next */ []));
|
|
4177
|
+
/** Optional filename shown in the header instead of the language label. */
|
|
4178
|
+
filename = input('', ...(ngDevMode ? [{ debugName: "filename" }] : /* istanbul ignore next */ []));
|
|
4179
|
+
/** Whether to show a copy-to-clipboard button. */
|
|
4180
|
+
copyable = input(true, ...(ngDevMode ? [{ debugName: "copyable" }] : /* istanbul ignore next */ []));
|
|
4181
|
+
/** Whether to display line numbers alongside the code. */
|
|
4182
|
+
showLineNumbers = input(false, ...(ngDevMode ? [{ debugName: "showLineNumbers" }] : /* istanbul ignore next */ []));
|
|
4183
|
+
copied = signal(false, ...(ngDevMode ? [{ debugName: "copied" }] : /* istanbul ignore next */ []));
|
|
4184
|
+
displayLabel = computed(() => this.filename() || this.language(), ...(ngDevMode ? [{ debugName: "displayLabel" }] : /* istanbul ignore next */ []));
|
|
4185
|
+
lines = computed(() => this.code().split('\n'), ...(ngDevMode ? [{ debugName: "lines" }] : /* istanbul ignore next */ []));
|
|
4186
|
+
copy() {
|
|
4187
|
+
void navigator.clipboard.writeText(this.code()).then(() => {
|
|
4188
|
+
this.copied.set(true);
|
|
4189
|
+
setTimeout(() => this.copied.set(false), 1800);
|
|
4190
|
+
});
|
|
4191
|
+
}
|
|
4192
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCodeBlock, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4193
|
+
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: `
|
|
4194
|
+
<div class="code-block-header">
|
|
4195
|
+
<span class="code-block-label">{{ displayLabel() }}</span>
|
|
4196
|
+
@if (copyable()) {
|
|
4197
|
+
<button
|
|
4198
|
+
class="code-block-copy"
|
|
4199
|
+
type="button"
|
|
4200
|
+
[attr.aria-label]="copied() ? 'Copied' : 'Copy code'"
|
|
4201
|
+
(click)="copy()"
|
|
4202
|
+
>
|
|
4203
|
+
@if (copied()) {
|
|
4204
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
4205
|
+
<polyline points="20 6 9 17 4 12" />
|
|
4206
|
+
</svg>
|
|
4207
|
+
Copied
|
|
4208
|
+
} @else {
|
|
4209
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
4210
|
+
<rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
|
|
4211
|
+
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
|
|
4212
|
+
</svg>
|
|
4213
|
+
Copy
|
|
4214
|
+
}
|
|
4215
|
+
</button>
|
|
4216
|
+
}
|
|
4217
|
+
</div>
|
|
4218
|
+
<div class="code-block-body">
|
|
4219
|
+
<pre class="code-block-pre"><code>@if (showLineNumbers()) {
|
|
4220
|
+
@for (line of lines(); track $index) {
|
|
4221
|
+
<span class="code-line">
|
|
4222
|
+
<span class="code-line-number">{{ $index + 1 }}</span>
|
|
4223
|
+
<span class="code-line-text">{{ line }}</span>
|
|
4224
|
+
</span>
|
|
4225
|
+
}
|
|
4226
|
+
} @else {
|
|
4227
|
+
{{ code() }}
|
|
4228
|
+
}</code></pre>
|
|
4229
|
+
</div>
|
|
4230
|
+
`, isInline: true, styles: [":host{display:block;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden;font-family:var(--ui-font-family)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-raised);border-bottom:1px solid var(--ui-color-border);min-height:2.25rem}.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:var(--ui-focus-ring);outline-offset:2px}.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 });
|
|
4231
|
+
}
|
|
4232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmCodeBlock, decorators: [{
|
|
4233
|
+
type: Component,
|
|
4234
|
+
args: [{ selector: 'llm-code-block', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
4235
|
+
<div class="code-block-header">
|
|
4236
|
+
<span class="code-block-label">{{ displayLabel() }}</span>
|
|
4237
|
+
@if (copyable()) {
|
|
4238
|
+
<button
|
|
4239
|
+
class="code-block-copy"
|
|
4240
|
+
type="button"
|
|
4241
|
+
[attr.aria-label]="copied() ? 'Copied' : 'Copy code'"
|
|
4242
|
+
(click)="copy()"
|
|
4243
|
+
>
|
|
4244
|
+
@if (copied()) {
|
|
4245
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
4246
|
+
<polyline points="20 6 9 17 4 12" />
|
|
4247
|
+
</svg>
|
|
4248
|
+
Copied
|
|
4249
|
+
} @else {
|
|
4250
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
4251
|
+
<rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
|
|
4252
|
+
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
|
|
4253
|
+
</svg>
|
|
4254
|
+
Copy
|
|
4255
|
+
}
|
|
4256
|
+
</button>
|
|
4257
|
+
}
|
|
4258
|
+
</div>
|
|
4259
|
+
<div class="code-block-body">
|
|
4260
|
+
<pre class="code-block-pre"><code>@if (showLineNumbers()) {
|
|
4261
|
+
@for (line of lines(); track $index) {
|
|
4262
|
+
<span class="code-line">
|
|
4263
|
+
<span class="code-line-number">{{ $index + 1 }}</span>
|
|
4264
|
+
<span class="code-line-text">{{ line }}</span>
|
|
4265
|
+
</span>
|
|
4266
|
+
}
|
|
4267
|
+
} @else {
|
|
4268
|
+
{{ code() }}
|
|
4269
|
+
}</code></pre>
|
|
4270
|
+
</div>
|
|
4271
|
+
`, host: {
|
|
4272
|
+
'[class]': '"llm-code-block"',
|
|
4273
|
+
}, styles: [":host{display:block;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md);overflow:hidden;font-family:var(--ui-font-family)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ui-spacing-2) var(--ui-spacing-3);background:var(--ui-color-surface-raised);border-bottom:1px solid var(--ui-color-border);min-height:2.25rem}.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:var(--ui-focus-ring);outline-offset:2px}.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"] }]
|
|
4274
|
+
}], propDecorators: { code: [{ type: i0.Input, args: [{ isSignal: true, alias: "code", required: false }] }], language: [{ type: i0.Input, args: [{ isSignal: true, alias: "language", required: false }] }], filename: [{ type: i0.Input, args: [{ isSignal: true, alias: "filename", required: false }] }], copyable: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyable", required: false }] }], showLineNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLineNumbers", required: false }] }] } });
|
|
4275
|
+
|
|
3515
4276
|
// Design tokens stylesheet — consumers should import:
|
|
3516
4277
|
// @import '@atelier-ui/angular/styles/tokens.css';
|
|
3517
4278
|
|
|
@@ -3519,5 +4280,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3519
4280
|
* Generated bundle index. Do not edit.
|
|
3520
4281
|
*/
|
|
3521
4282
|
|
|
3522
|
-
export { LLM_ACCORDION_GROUP, LLM_BREADCRUMBS, LLM_DIALOG, LLM_DRAWER, LLM_RADIO_GROUP, LLM_SELECT, LLM_TABLE, LLM_TAB_GROUP, LlmAccordionGroup, LlmAccordionHeader, LlmAccordionItem, LlmAlert, LlmAvatar, LlmAvatarGroup, LlmBadge, LlmBreadcrumbItem, LlmBreadcrumbs, LlmButton, LlmCard, LlmCardContent, LlmCardFooter, LlmCardHeader, LlmCheckbox, LlmDialog, LlmDialogContent, LlmDialogFooter, LlmDialogHeader, LlmDrawer, LlmDrawerContent, LlmDrawerFooter, LlmDrawerHeader, LlmInput, LlmMenu, LlmMenuItem, LlmMenuSeparator, LlmMenuTrigger, LlmOption, LlmPagination, LlmProgress, LlmRadio, LlmRadioGroup, LlmSelect, LlmSkeleton, LlmTab, LlmTabGroup, LlmTable, LlmTbody, LlmTd, LlmTextarea, LlmTh, LlmThead, LlmToast, LlmToastContainer, LlmToastService, LlmToggle, LlmTooltip, LlmTr };
|
|
4283
|
+
export { LLM_ACCORDION_GROUP, LLM_BREADCRUMBS, LLM_DIALOG, LLM_DRAWER, LLM_RADIO_GROUP, LLM_SELECT, LLM_STEPPER, LLM_TABLE, LLM_TAB_GROUP, LlmAccordionGroup, LlmAccordionHeader, LlmAccordionItem, LlmAlert, LlmAvatar, LlmAvatarGroup, LlmBadge, LlmBreadcrumbItem, LlmBreadcrumbs, LlmButton, LlmCard, LlmCardContent, LlmCardFooter, LlmCardHeader, LlmCheckbox, LlmCodeBlock, LlmCombobox, LlmDialog, LlmDialogContent, LlmDialogFooter, LlmDialogHeader, LlmDrawer, LlmDrawerContent, LlmDrawerFooter, LlmDrawerHeader, LlmInput, LlmMenu, LlmMenuItem, LlmMenuSeparator, LlmMenuTrigger, LlmOption, LlmPagination, LlmProgress, LlmRadio, LlmRadioGroup, LlmSelect, LlmSkeleton, LlmStep, LlmStepper, LlmTab, LlmTabGroup, LlmTable, LlmTbody, LlmTd, LlmTextarea, LlmTh, LlmThead, LlmToast, LlmToastContainer, LlmToastService, LlmToggle, LlmTooltip, LlmTr };
|
|
3523
4284
|
//# sourceMappingURL=atelier-ui-angular.mjs.map
|