@atelier-ui/angular 0.0.2 → 0.0.4
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.
|
@@ -2668,6 +2668,8 @@ const LLM_BREADCRUMBS = new InjectionToken('LLM_BREADCRUMBS');
|
|
|
2668
2668
|
* ```
|
|
2669
2669
|
*/
|
|
2670
2670
|
class LlmBreadcrumbs {
|
|
2671
|
+
separator = input('/', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
|
|
2672
|
+
separatorCssVar = computed(() => `'${this.separator()}'`, ...(ngDevMode ? [{ debugName: "separatorCssVar" }] : /* istanbul ignore next */ []));
|
|
2671
2673
|
_itemIds = signal([], ...(ngDevMode ? [{ debugName: "_itemIds" }] : /* istanbul ignore next */ []));
|
|
2672
2674
|
_nextId = 0;
|
|
2673
2675
|
/** @internal — used by LlmBreadcrumbItem via LLM_BREADCRUMBS token */
|
|
@@ -2686,7 +2688,7 @@ class LlmBreadcrumbs {
|
|
|
2686
2688
|
this._itemIds.update((ids) => ids.filter((i) => i !== id));
|
|
2687
2689
|
}
|
|
2688
2690
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2689
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2691
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmBreadcrumbs, isStandalone: true, selector: "llm-breadcrumbs", inputs: { separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--llm-separator": "separatorCssVar()" } }, providers: [
|
|
2690
2692
|
{
|
|
2691
2693
|
provide: LLM_BREADCRUMBS,
|
|
2692
2694
|
useFactory: (bc) => ({
|
|
@@ -2702,7 +2704,7 @@ class LlmBreadcrumbs {
|
|
|
2702
2704
|
<ng-content />
|
|
2703
2705
|
</ol>
|
|
2704
2706
|
</nav>
|
|
2705
|
-
`, 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
|
|
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 });
|
|
2706
2708
|
}
|
|
2707
2709
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbs, decorators: [{
|
|
2708
2710
|
type: Component,
|
|
@@ -2722,8 +2724,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
2722
2724
|
<ng-content />
|
|
2723
2725
|
</ol>
|
|
2724
2726
|
</nav>
|
|
2725
|
-
`,
|
|
2726
|
-
|
|
2727
|
+
`, host: {
|
|
2728
|
+
'[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"] }]
|
|
2730
|
+
}], propDecorators: { separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
2727
2731
|
/**
|
|
2728
2732
|
* A single breadcrumb step. The last item is automatically treated as
|
|
2729
2733
|
* `aria-current="page"` and rendered as plain text (no link).
|
|
@@ -2750,7 +2754,7 @@ class LlmBreadcrumbItem {
|
|
|
2750
2754
|
[attr.aria-current]="isCurrent() ? 'page' : null"
|
|
2751
2755
|
><ng-content /></a>
|
|
2752
2756
|
</li>
|
|
2753
|
-
`, 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
|
|
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 });
|
|
2754
2758
|
}
|
|
2755
2759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmBreadcrumbItem, decorators: [{
|
|
2756
2760
|
type: Component,
|
|
@@ -2763,7 +2767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
2763
2767
|
</li>
|
|
2764
2768
|
`, host: {
|
|
2765
2769
|
'[class.is-current]': 'isCurrent()',
|
|
2766
|
-
}, 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
|
|
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"] }]
|
|
2767
2771
|
}], propDecorators: { href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }] } });
|
|
2768
2772
|
|
|
2769
2773
|
/**
|
|
@@ -3171,6 +3175,343 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3171
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"] }]
|
|
3172
3176
|
}] });
|
|
3173
3177
|
|
|
3178
|
+
const LLM_TABLE = new InjectionToken('LLM_TABLE');
|
|
3179
|
+
// ---------------------------------------------------------------------------
|
|
3180
|
+
// LlmTable
|
|
3181
|
+
// ---------------------------------------------------------------------------
|
|
3182
|
+
/**
|
|
3183
|
+
* Accessible data table with sorting, row selection, sticky header, and empty state.
|
|
3184
|
+
* Compose with `llm-thead`, `llm-tbody`, `llm-tr`, `llm-th`, and `llm-td`.
|
|
3185
|
+
*
|
|
3186
|
+
* Usage:
|
|
3187
|
+
* ```html
|
|
3188
|
+
* <llm-table variant="striped" [stickyHeader]="true">
|
|
3189
|
+
* <llm-thead>
|
|
3190
|
+
* <llm-tr>
|
|
3191
|
+
* <llm-th sortable [sortDirection]="sort" (sort)="sort = $event">Name</llm-th>
|
|
3192
|
+
* <llm-th>Status</llm-th>
|
|
3193
|
+
* </llm-tr>
|
|
3194
|
+
* </llm-thead>
|
|
3195
|
+
* <llm-tbody [empty]="rows.length === 0" [colSpan]="2">
|
|
3196
|
+
* @for (row of rows; track row.id) {
|
|
3197
|
+
* <llm-tr selectable [selected]="selection.has(row.id)" (selectedChange)="toggle(row.id, $event)">
|
|
3198
|
+
* <llm-td>{{ row.name }}</llm-td>
|
|
3199
|
+
* <llm-td>{{ row.status }}</llm-td>
|
|
3200
|
+
* </llm-tr>
|
|
3201
|
+
* }
|
|
3202
|
+
* <div llmTableEmpty>No results found.</div>
|
|
3203
|
+
* </llm-tbody>
|
|
3204
|
+
* </llm-table>
|
|
3205
|
+
* ```
|
|
3206
|
+
*/
|
|
3207
|
+
class LlmTable {
|
|
3208
|
+
/** Visual style of the table rows. */
|
|
3209
|
+
variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
3210
|
+
/** Row density. */
|
|
3211
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3212
|
+
/** Whether the header row sticks to the top when the table scrolls. */
|
|
3213
|
+
stickyHeader = input(false, ...(ngDevMode ? [{ debugName: "stickyHeader" }] : /* istanbul ignore next */ []));
|
|
3214
|
+
/** @internal */
|
|
3215
|
+
hostClasses = computed(() => {
|
|
3216
|
+
const classes = [`variant-${this.variant()}`, `size-${this.size()}`];
|
|
3217
|
+
if (this.stickyHeader())
|
|
3218
|
+
classes.push('is-sticky-header');
|
|
3219
|
+
return classes.join(' ');
|
|
3220
|
+
}, ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
3221
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3222
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: LlmTable, isStandalone: true, selector: "llm-table", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClasses()" } }, providers: [{ provide: LLM_TABLE, useExisting: LlmTable }], ngImport: i0, template: `
|
|
3223
|
+
<div class="llm-table-wrapper">
|
|
3224
|
+
<table>
|
|
3225
|
+
<ng-content />
|
|
3226
|
+
</table>
|
|
3227
|
+
</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 });
|
|
3229
|
+
}
|
|
3230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTable, decorators: [{
|
|
3231
|
+
type: Component,
|
|
3232
|
+
args: [{ selector: 'llm-table', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
3233
|
+
<div class="llm-table-wrapper">
|
|
3234
|
+
<table>
|
|
3235
|
+
<ng-content />
|
|
3236
|
+
</table>
|
|
3237
|
+
</div>
|
|
3238
|
+
`, host: {
|
|
3239
|
+
'[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"] }]
|
|
3241
|
+
}], 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
|
+
// ---------------------------------------------------------------------------
|
|
3243
|
+
// LlmThead
|
|
3244
|
+
// ---------------------------------------------------------------------------
|
|
3245
|
+
/**
|
|
3246
|
+
* Table head section. Contains header rows with `llm-tr` and `llm-th`.
|
|
3247
|
+
*
|
|
3248
|
+
* Usage:
|
|
3249
|
+
* ```html
|
|
3250
|
+
* <llm-thead>
|
|
3251
|
+
* <llm-tr>
|
|
3252
|
+
* <llm-th sortable [sortDirection]="sort" (sort)="sort = $event">Name</llm-th>
|
|
3253
|
+
* </llm-tr>
|
|
3254
|
+
* </llm-thead>
|
|
3255
|
+
* ```
|
|
3256
|
+
*/
|
|
3257
|
+
class LlmThead {
|
|
3258
|
+
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 });
|
|
3260
|
+
}
|
|
3261
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmThead, decorators: [{
|
|
3262
|
+
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"] }]
|
|
3264
|
+
}] });
|
|
3265
|
+
// ---------------------------------------------------------------------------
|
|
3266
|
+
// LlmTbody
|
|
3267
|
+
// ---------------------------------------------------------------------------
|
|
3268
|
+
/**
|
|
3269
|
+
* Table body section. Shows rows or an empty state.
|
|
3270
|
+
*
|
|
3271
|
+
* Usage:
|
|
3272
|
+
* ```html
|
|
3273
|
+
* <llm-tbody [empty]="rows.length === 0" [colSpan]="3">
|
|
3274
|
+
* @for (row of rows; track row.id) {
|
|
3275
|
+
* <llm-tr><llm-td>{{ row.name }}</llm-td></llm-tr>
|
|
3276
|
+
* }
|
|
3277
|
+
* <div llmTableEmpty>No results found.</div>
|
|
3278
|
+
* </llm-tbody>
|
|
3279
|
+
* ```
|
|
3280
|
+
*/
|
|
3281
|
+
class LlmTbody {
|
|
3282
|
+
/** When true, hides rows and shows the `[llmTableEmpty]` slot content instead. */
|
|
3283
|
+
empty = input(false, ...(ngDevMode ? [{ debugName: "empty" }] : /* istanbul ignore next */ []));
|
|
3284
|
+
/** Number of columns to span in the empty-state row. Should match total column count. */
|
|
3285
|
+
colSpan = input(1, ...(ngDevMode ? [{ debugName: "colSpan" }] : /* istanbul ignore next */ []));
|
|
3286
|
+
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: `
|
|
3288
|
+
<tbody>
|
|
3289
|
+
@if (!empty()) {
|
|
3290
|
+
<ng-content />
|
|
3291
|
+
} @else {
|
|
3292
|
+
<tr>
|
|
3293
|
+
<td [attr.colspan]="colSpan()" class="llm-tbody-empty-cell">
|
|
3294
|
+
<ng-content select="[llmTableEmpty]" />
|
|
3295
|
+
</td>
|
|
3296
|
+
</tr>
|
|
3297
|
+
}
|
|
3298
|
+
</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 });
|
|
3300
|
+
}
|
|
3301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTbody, decorators: [{
|
|
3302
|
+
type: Component,
|
|
3303
|
+
args: [{ selector: 'llm-tbody', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
3304
|
+
<tbody>
|
|
3305
|
+
@if (!empty()) {
|
|
3306
|
+
<ng-content />
|
|
3307
|
+
} @else {
|
|
3308
|
+
<tr>
|
|
3309
|
+
<td [attr.colspan]="colSpan()" class="llm-tbody-empty-cell">
|
|
3310
|
+
<ng-content select="[llmTableEmpty]" />
|
|
3311
|
+
</td>
|
|
3312
|
+
</tr>
|
|
3313
|
+
}
|
|
3314
|
+
</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"] }]
|
|
3316
|
+
}], propDecorators: { empty: [{ type: i0.Input, args: [{ isSignal: true, alias: "empty", required: false }] }], colSpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "colSpan", required: false }] }] } });
|
|
3317
|
+
// ---------------------------------------------------------------------------
|
|
3318
|
+
// LlmTr
|
|
3319
|
+
// ---------------------------------------------------------------------------
|
|
3320
|
+
/**
|
|
3321
|
+
* Table row. Use inside `llm-thead` or `llm-tbody`.
|
|
3322
|
+
* Set `selectable` to auto-add a checkbox column for row selection.
|
|
3323
|
+
*
|
|
3324
|
+
* Usage:
|
|
3325
|
+
* ```html
|
|
3326
|
+
* <llm-tr selectable [selected]="isSelected" (selectedChange)="toggle($event)">
|
|
3327
|
+
* <llm-td>Cell content</llm-td>
|
|
3328
|
+
* </llm-tr>
|
|
3329
|
+
* ```
|
|
3330
|
+
*/
|
|
3331
|
+
class LlmTr {
|
|
3332
|
+
/** Whether this row is currently selected. */
|
|
3333
|
+
selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
3334
|
+
/** Whether this row shows a selection checkbox. */
|
|
3335
|
+
selectable = input(false, ...(ngDevMode ? [{ debugName: "selectable" }] : /* istanbul ignore next */ []));
|
|
3336
|
+
/** Optional identifier for this row. Useful for tracking selection. */
|
|
3337
|
+
rowId = input(undefined, ...(ngDevMode ? [{ debugName: "rowId" }] : /* istanbul ignore next */ []));
|
|
3338
|
+
/** Emits when the row's checkbox is toggled. */
|
|
3339
|
+
selectedChange = output();
|
|
3340
|
+
/** @internal */
|
|
3341
|
+
hostClasses = computed(() => this.selectable() ? 'is-selectable' : '', ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
|
|
3342
|
+
/** @internal — applied to inner <tr> for CSS selection styling */
|
|
3343
|
+
innerClasses = computed(() => this.selected() ? 'is-selected' : '', ...(ngDevMode ? [{ debugName: "innerClasses" }] : /* istanbul ignore next */ []));
|
|
3344
|
+
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: `
|
|
3346
|
+
<tr
|
|
3347
|
+
[attr.aria-selected]="selectable() ? selected() : null"
|
|
3348
|
+
[class]="innerClasses()"
|
|
3349
|
+
>
|
|
3350
|
+
@if (selectable()) {
|
|
3351
|
+
<td class="llm-tr-select-cell">
|
|
3352
|
+
<llm-checkbox [checked]="selected()" (checkedChange)="selectedChange.emit($event)" />
|
|
3353
|
+
</td>
|
|
3354
|
+
}
|
|
3355
|
+
<ng-content />
|
|
3356
|
+
</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 });
|
|
3358
|
+
}
|
|
3359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTr, decorators: [{
|
|
3360
|
+
type: Component,
|
|
3361
|
+
args: [{ selector: 'llm-tr', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LlmCheckbox], template: `
|
|
3362
|
+
<tr
|
|
3363
|
+
[attr.aria-selected]="selectable() ? selected() : null"
|
|
3364
|
+
[class]="innerClasses()"
|
|
3365
|
+
>
|
|
3366
|
+
@if (selectable()) {
|
|
3367
|
+
<td class="llm-tr-select-cell">
|
|
3368
|
+
<llm-checkbox [checked]="selected()" (checkedChange)="selectedChange.emit($event)" />
|
|
3369
|
+
</td>
|
|
3370
|
+
}
|
|
3371
|
+
<ng-content />
|
|
3372
|
+
</tr>
|
|
3373
|
+
`, host: {
|
|
3374
|
+
'[class]': 'hostClasses()',
|
|
3375
|
+
}, 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"] }]
|
|
3376
|
+
}], 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
|
+
/**
|
|
3378
|
+
* Table header cell. Set `sortable` to enable sort cycling.
|
|
3379
|
+
* The consumer controls `sortDirection` (fully controlled — no internal state).
|
|
3380
|
+
*
|
|
3381
|
+
* Usage:
|
|
3382
|
+
* ```html
|
|
3383
|
+
* <llm-th sortable [sortDirection]="nameSortDir" (sort)="nameSortDir = $event">Name</llm-th>
|
|
3384
|
+
* ```
|
|
3385
|
+
*/
|
|
3386
|
+
class LlmTh {
|
|
3387
|
+
/** Whether this column is sortable. Renders a sort button when true. */
|
|
3388
|
+
sortable = input(false, ...(ngDevMode ? [{ debugName: "sortable" }] : /* istanbul ignore next */ []));
|
|
3389
|
+
/** Current sort direction. Fully controlled — the consumer owns this state. */
|
|
3390
|
+
sortDirection = input(null, ...(ngDevMode ? [{ debugName: "sortDirection" }] : /* istanbul ignore next */ []));
|
|
3391
|
+
/** Text alignment of the header cell content. */
|
|
3392
|
+
align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3393
|
+
/** Fixed column width (e.g. `'120px'`, `'10rem'`). */
|
|
3394
|
+
width = input(undefined, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
3395
|
+
/**
|
|
3396
|
+
* Emits when the header is clicked.
|
|
3397
|
+
* Cycles: `null` → `'asc'` → `'desc'` → `null`.
|
|
3398
|
+
*/
|
|
3399
|
+
sort = output();
|
|
3400
|
+
/** @internal */
|
|
3401
|
+
ariaSort = computed(() => {
|
|
3402
|
+
if (!this.sortable())
|
|
3403
|
+
return undefined;
|
|
3404
|
+
const d = this.sortDirection();
|
|
3405
|
+
if (d === 'asc')
|
|
3406
|
+
return 'ascending';
|
|
3407
|
+
if (d === 'desc')
|
|
3408
|
+
return 'descending';
|
|
3409
|
+
return 'none';
|
|
3410
|
+
}, ...(ngDevMode ? [{ debugName: "ariaSort" }] : /* istanbul ignore next */ []));
|
|
3411
|
+
/** @internal */
|
|
3412
|
+
cellClasses = computed(() => {
|
|
3413
|
+
const classes = [`align-${this.align()}`];
|
|
3414
|
+
if (this.sortDirection())
|
|
3415
|
+
classes.push('is-sorted');
|
|
3416
|
+
if (this.sortDirection() === 'asc')
|
|
3417
|
+
classes.push('sort-asc');
|
|
3418
|
+
if (this.sortDirection() === 'desc')
|
|
3419
|
+
classes.push('sort-desc');
|
|
3420
|
+
return classes.join(' ');
|
|
3421
|
+
}, ...(ngDevMode ? [{ debugName: "cellClasses" }] : /* istanbul ignore next */ []));
|
|
3422
|
+
/** @internal */
|
|
3423
|
+
cycleSort() {
|
|
3424
|
+
const current = this.sortDirection();
|
|
3425
|
+
const next = current === null ? 'asc' : current === 'asc' ? 'desc' : null;
|
|
3426
|
+
this.sort.emit(next);
|
|
3427
|
+
}
|
|
3428
|
+
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: `
|
|
3430
|
+
<th
|
|
3431
|
+
[attr.aria-sort]="ariaSort()"
|
|
3432
|
+
[style.width]="width() ?? null"
|
|
3433
|
+
[class]="cellClasses()"
|
|
3434
|
+
>
|
|
3435
|
+
@if (sortable()) {
|
|
3436
|
+
<button type="button" class="llm-th-sort-btn" (click)="cycleSort()">
|
|
3437
|
+
<ng-content />
|
|
3438
|
+
<svg
|
|
3439
|
+
class="llm-th-sort-icon"
|
|
3440
|
+
aria-hidden="true"
|
|
3441
|
+
width="12"
|
|
3442
|
+
height="16"
|
|
3443
|
+
viewBox="0 0 12 16"
|
|
3444
|
+
fill="none"
|
|
3445
|
+
>
|
|
3446
|
+
<path class="llm-th-sort-asc-arrow" d="M6 2L11 8H1L6 2Z" fill="currentColor" />
|
|
3447
|
+
<path class="llm-th-sort-desc-arrow" d="M6 14L1 8H11L6 14Z" fill="currentColor" />
|
|
3448
|
+
</svg>
|
|
3449
|
+
</button>
|
|
3450
|
+
} @else {
|
|
3451
|
+
<ng-content />
|
|
3452
|
+
}
|
|
3453
|
+
</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 });
|
|
3455
|
+
}
|
|
3456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTh, decorators: [{
|
|
3457
|
+
type: Component,
|
|
3458
|
+
args: [{ selector: 'llm-th', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
3459
|
+
<th
|
|
3460
|
+
[attr.aria-sort]="ariaSort()"
|
|
3461
|
+
[style.width]="width() ?? null"
|
|
3462
|
+
[class]="cellClasses()"
|
|
3463
|
+
>
|
|
3464
|
+
@if (sortable()) {
|
|
3465
|
+
<button type="button" class="llm-th-sort-btn" (click)="cycleSort()">
|
|
3466
|
+
<ng-content />
|
|
3467
|
+
<svg
|
|
3468
|
+
class="llm-th-sort-icon"
|
|
3469
|
+
aria-hidden="true"
|
|
3470
|
+
width="12"
|
|
3471
|
+
height="16"
|
|
3472
|
+
viewBox="0 0 12 16"
|
|
3473
|
+
fill="none"
|
|
3474
|
+
>
|
|
3475
|
+
<path class="llm-th-sort-asc-arrow" d="M6 2L11 8H1L6 2Z" fill="currentColor" />
|
|
3476
|
+
<path class="llm-th-sort-desc-arrow" d="M6 14L1 8H11L6 14Z" fill="currentColor" />
|
|
3477
|
+
</svg>
|
|
3478
|
+
</button>
|
|
3479
|
+
} @else {
|
|
3480
|
+
<ng-content />
|
|
3481
|
+
}
|
|
3482
|
+
</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"] }]
|
|
3484
|
+
}], 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
|
+
// ---------------------------------------------------------------------------
|
|
3486
|
+
// LlmTd
|
|
3487
|
+
// ---------------------------------------------------------------------------
|
|
3488
|
+
/**
|
|
3489
|
+
* Table data cell. Use inside `llm-tr` inside `llm-tbody`.
|
|
3490
|
+
*
|
|
3491
|
+
* Usage:
|
|
3492
|
+
* ```html
|
|
3493
|
+
* <llm-td align="end">{{ value }}</llm-td>
|
|
3494
|
+
* ```
|
|
3495
|
+
*/
|
|
3496
|
+
class LlmTd {
|
|
3497
|
+
/** Text alignment of the cell content. */
|
|
3498
|
+
align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3499
|
+
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: `
|
|
3501
|
+
<td [class]="'align-' + align()">
|
|
3502
|
+
<ng-content />
|
|
3503
|
+
</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 });
|
|
3505
|
+
}
|
|
3506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: LlmTd, decorators: [{
|
|
3507
|
+
type: Component,
|
|
3508
|
+
args: [{ selector: 'llm-td', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
3509
|
+
<td [class]="'align-' + align()">
|
|
3510
|
+
<ng-content />
|
|
3511
|
+
</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"] }]
|
|
3513
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }] } });
|
|
3514
|
+
|
|
3174
3515
|
// Design tokens stylesheet — consumers should import:
|
|
3175
3516
|
// @import '@atelier-ui/angular/styles/tokens.css';
|
|
3176
3517
|
|
|
@@ -3178,5 +3519,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
3178
3519
|
* Generated bundle index. Do not edit.
|
|
3179
3520
|
*/
|
|
3180
3521
|
|
|
3181
|
-
export { LLM_ACCORDION_GROUP, LLM_BREADCRUMBS, LLM_DIALOG, LLM_DRAWER, LLM_RADIO_GROUP, LLM_SELECT, 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, LlmTextarea, LlmToast, LlmToastContainer, LlmToastService, LlmToggle, LlmTooltip };
|
|
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 };
|
|
3182
3523
|
//# sourceMappingURL=atelier-ui-angular.mjs.map
|