@akcelik/strct 4.5.0 → 4.7.0
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/fesm2022/akcelik-strct.mjs +338 -28
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/types/akcelik-strct.d.ts +131 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, DOCUMENT, signal, computed, Injectable, input, isDevMode, ViewEncapsulation, ChangeDetectionStrategy, Component, ElementRef, NgZone, booleanAttribute, afterNextRender, Directive, model, output,
|
|
2
|
+
import { inject, DOCUMENT, signal, computed, Injectable, input, isDevMode, ViewEncapsulation, ChangeDetectionStrategy, Component, ElementRef, NgZone, booleanAttribute, afterNextRender, Directive, model, output, contentChildren, HostListener, effect, ApplicationRef, EnvironmentInjector, createComponent, PLATFORM_ID, forwardRef, DestroyRef, TemplateRef, contentChild, viewChild, InjectionToken, untracked, ViewContainerRef, Injector, viewChildren, Renderer2, Pipe, afterRenderEffect } from '@angular/core';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
4
|
import { NgTemplateOutlet, DOCUMENT as DOCUMENT$1, isPlatformBrowser } from '@angular/common';
|
|
5
5
|
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
@@ -1587,6 +1587,172 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
1587
1587
|
}, styles: [".strct-ph{display:block}.strct-ph--divider{padding-bottom:16px;border-bottom:1px solid var(--b1)}.strct-ph__crumbs:empty{display:none}.strct-ph__crumbs{margin-bottom:6px}.strct-ph__row{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.strct-ph__text{flex:1;min-width:0}.strct-ph__titlerow{display:flex;align-items:baseline;gap:var(--space-2);min-width:0;flex-wrap:wrap}.strct-ph__icon{align-self:center;color:var(--t2);flex:none}.strct-ph__titlemeta:empty{display:none}.strct-ph__titlemeta{display:inline-flex;align-items:center;gap:var(--space-2)}.strct-ph--pane .strct-ph__title{font-size:var(--text-lg);font-weight:600;letter-spacing:0}.strct-ph__title{margin:0;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.01em;color:var(--t1);text-wrap:balance}.strct-ph__subtitle{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--t2);max-width:72ch}.strct-ph__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.strct-ph__actions:empty{display:none}\n"] }]
|
|
1588
1588
|
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], divider: [{ type: i0.Input, args: [{ isSignal: true, alias: "divider", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
|
|
1589
1589
|
|
|
1590
|
+
/** Leading marker of a row — a badge, a status dot, an icon. */
|
|
1591
|
+
class StrctListItemLeading {
|
|
1592
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemLeading, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1593
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctListItemLeading, isStandalone: true, selector: "[strctListItemLeading]", ngImport: i0 });
|
|
1594
|
+
}
|
|
1595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemLeading, decorators: [{
|
|
1596
|
+
type: Directive,
|
|
1597
|
+
args: [{ selector: '[strctListItemLeading]' }]
|
|
1598
|
+
}] });
|
|
1599
|
+
/** Secondary line under the row's title. */
|
|
1600
|
+
class StrctListItemDescription {
|
|
1601
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1602
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctListItemDescription, isStandalone: true, selector: "[strctListItemDescription]", ngImport: i0 });
|
|
1603
|
+
}
|
|
1604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemDescription, decorators: [{
|
|
1605
|
+
type: Directive,
|
|
1606
|
+
args: [{ selector: '[strctListItemDescription]' }]
|
|
1607
|
+
}] });
|
|
1608
|
+
/** Quiet text at the end of the row — a time, a count. */
|
|
1609
|
+
class StrctListItemMeta {
|
|
1610
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemMeta, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1611
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctListItemMeta, isStandalone: true, selector: "[strctListItemMeta]", ngImport: i0 });
|
|
1612
|
+
}
|
|
1613
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemMeta, decorators: [{
|
|
1614
|
+
type: Directive,
|
|
1615
|
+
args: [{ selector: '[strctListItemMeta]' }]
|
|
1616
|
+
}] });
|
|
1617
|
+
/** Controls after the meta — a button, a menu trigger. Its own tab stop. */
|
|
1618
|
+
class StrctListItemTrailing {
|
|
1619
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemTrailing, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1620
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: StrctListItemTrailing, isStandalone: true, selector: "[strctListItemTrailing]", ngImport: i0 });
|
|
1621
|
+
}
|
|
1622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItemTrailing, decorators: [{
|
|
1623
|
+
type: Directive,
|
|
1624
|
+
args: [{ selector: '[strctListItemTrailing]' }]
|
|
1625
|
+
}] });
|
|
1626
|
+
/**
|
|
1627
|
+
* One row of a {@link StrctList}: leading · title / description · meta ·
|
|
1628
|
+
* trailing.
|
|
1629
|
+
*
|
|
1630
|
+
* `interactive` makes the row itself activate (click, Enter or Space) and emit
|
|
1631
|
+
* `activated`, while anything in `[strctListItemTrailing]` stays a separate tab
|
|
1632
|
+
* stop — so "open this alarm" and "acknowledge it" are two different targets.
|
|
1633
|
+
*
|
|
1634
|
+
* The row carries `role="button"` rather than being a `<button>` element: a
|
|
1635
|
+
* template can project the same content into only one place, so branching the
|
|
1636
|
+
* markup on `interactive` would drop it in the other branch. `strct-tree` rows
|
|
1637
|
+
* work the same way.
|
|
1638
|
+
*/
|
|
1639
|
+
class StrctListItem {
|
|
1640
|
+
/** The row activates on click / Enter / Space and emits `activated`. */
|
|
1641
|
+
interactive = input(false, { ...(ngDevMode ? { debugName: "interactive" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1642
|
+
/** Marks the current row (`aria-current`). */
|
|
1643
|
+
selected = input(false, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1644
|
+
/** Optional leading rail, as `strct-card [status]`. */
|
|
1645
|
+
status = input(null, /* @ts-ignore */
|
|
1646
|
+
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
1647
|
+
/** Emitted when an `interactive` row is activated. */
|
|
1648
|
+
activated = output();
|
|
1649
|
+
onActivate() {
|
|
1650
|
+
if (this.interactive())
|
|
1651
|
+
this.activated.emit();
|
|
1652
|
+
}
|
|
1653
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1654
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: StrctListItem, isStandalone: true, selector: "strct-list-item", inputs: { interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activated: "activated" }, host: { attributes: { "role": "listitem" }, properties: { "class.strct-li--interactive": "interactive()", "class.strct-li--selected": "selected()", "class.strct-li--status": "status()", "attr.data-status": "status()" }, classAttribute: "strct-li" }, ngImport: i0, template: `
|
|
1655
|
+
<div
|
|
1656
|
+
class="strct-li__main"
|
|
1657
|
+
[attr.role]="interactive() ? 'button' : null"
|
|
1658
|
+
[attr.tabindex]="interactive() ? 0 : null"
|
|
1659
|
+
[attr.aria-current]="selected() ? 'true' : null"
|
|
1660
|
+
(click)="onActivate()"
|
|
1661
|
+
(keydown.enter)="onActivate()"
|
|
1662
|
+
(keydown.space)="$event.preventDefault(); onActivate()"
|
|
1663
|
+
>
|
|
1664
|
+
<span class="strct-li__leading"><ng-content select="[strctListItemLeading]" /></span>
|
|
1665
|
+
<span class="strct-li__text">
|
|
1666
|
+
<span class="strct-li__title"><ng-content /></span>
|
|
1667
|
+
<span class="strct-li__desc"><ng-content select="[strctListItemDescription]" /></span>
|
|
1668
|
+
</span>
|
|
1669
|
+
<span class="strct-li__meta"><ng-content select="[strctListItemMeta]" /></span>
|
|
1670
|
+
</div>
|
|
1671
|
+
<span class="strct-li__trailing"><ng-content select="[strctListItemTrailing]" /></span>
|
|
1672
|
+
`, isInline: true, styles: [".strct-li{display:flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-3);position:relative}.strct-list--dividers .strct-li+.strct-li{border-block-start:1px solid var(--b1)}.strct-li__main{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;min-height:44px;padding-block:6px;text-align:start;border-radius:var(--radius-sm)}.strct-list--dense .strct-li__main{min-height:32px;padding-block:2px}.strct-li--interactive .strct-li__main{cursor:pointer}.strct-li--interactive:hover{background:var(--bg-2)}.strct-li--selected{background:var(--acc-s)}.strct-li__main:focus-visible{outline:2px solid var(--acc50);outline-offset:-2px}.strct-li--status:before{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;width:2px;background:var(--t3)}.strct-li[data-status=accent]:before{background:var(--acc)}.strct-li[data-status=success]:before{background:var(--success)}.strct-li[data-status=warning]:before{background:var(--warning)}.strct-li[data-status=critical]:before{background:var(--critical)}.strct-li__leading:empty,.strct-li__meta:empty,.strct-li__desc:empty,.strct-li__trailing:empty{display:none}.strct-li__leading{display:inline-flex;align-items:center;flex:none}.strct-li__text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.strct-li__title{font-size:var(--text-md);color:var(--t1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-li__desc{font-size:var(--text-sm);color:var(--t3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-li__meta{display:inline-flex;align-items:center;flex:none;font-size:var(--text-sm);color:var(--t3);white-space:nowrap}.strct-li__trailing{display:inline-flex;align-items:center;gap:var(--space-2);flex:none}@container (max-width: 360px){.strct-li__main{flex-wrap:wrap}.strct-li__meta{flex-basis:100%;padding-inline-start:0}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1673
|
+
}
|
|
1674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctListItem, decorators: [{
|
|
1675
|
+
type: Component,
|
|
1676
|
+
args: [{ selector: 'strct-list-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
1677
|
+
<div
|
|
1678
|
+
class="strct-li__main"
|
|
1679
|
+
[attr.role]="interactive() ? 'button' : null"
|
|
1680
|
+
[attr.tabindex]="interactive() ? 0 : null"
|
|
1681
|
+
[attr.aria-current]="selected() ? 'true' : null"
|
|
1682
|
+
(click)="onActivate()"
|
|
1683
|
+
(keydown.enter)="onActivate()"
|
|
1684
|
+
(keydown.space)="$event.preventDefault(); onActivate()"
|
|
1685
|
+
>
|
|
1686
|
+
<span class="strct-li__leading"><ng-content select="[strctListItemLeading]" /></span>
|
|
1687
|
+
<span class="strct-li__text">
|
|
1688
|
+
<span class="strct-li__title"><ng-content /></span>
|
|
1689
|
+
<span class="strct-li__desc"><ng-content select="[strctListItemDescription]" /></span>
|
|
1690
|
+
</span>
|
|
1691
|
+
<span class="strct-li__meta"><ng-content select="[strctListItemMeta]" /></span>
|
|
1692
|
+
</div>
|
|
1693
|
+
<span class="strct-li__trailing"><ng-content select="[strctListItemTrailing]" /></span>
|
|
1694
|
+
`, host: {
|
|
1695
|
+
class: 'strct-li',
|
|
1696
|
+
role: 'listitem',
|
|
1697
|
+
'[class.strct-li--interactive]': 'interactive()',
|
|
1698
|
+
'[class.strct-li--selected]': 'selected()',
|
|
1699
|
+
'[class.strct-li--status]': 'status()',
|
|
1700
|
+
'[attr.data-status]': 'status()',
|
|
1701
|
+
}, styles: [".strct-li{display:flex;align-items:center;gap:var(--space-2);padding-inline:var(--space-3);position:relative}.strct-list--dividers .strct-li+.strct-li{border-block-start:1px solid var(--b1)}.strct-li__main{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;min-height:44px;padding-block:6px;text-align:start;border-radius:var(--radius-sm)}.strct-list--dense .strct-li__main{min-height:32px;padding-block:2px}.strct-li--interactive .strct-li__main{cursor:pointer}.strct-li--interactive:hover{background:var(--bg-2)}.strct-li--selected{background:var(--acc-s)}.strct-li__main:focus-visible{outline:2px solid var(--acc50);outline-offset:-2px}.strct-li--status:before{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;width:2px;background:var(--t3)}.strct-li[data-status=accent]:before{background:var(--acc)}.strct-li[data-status=success]:before{background:var(--success)}.strct-li[data-status=warning]:before{background:var(--warning)}.strct-li[data-status=critical]:before{background:var(--critical)}.strct-li__leading:empty,.strct-li__meta:empty,.strct-li__desc:empty,.strct-li__trailing:empty{display:none}.strct-li__leading{display:inline-flex;align-items:center;flex:none}.strct-li__text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.strct-li__title{font-size:var(--text-md);color:var(--t1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-li__desc{font-size:var(--text-sm);color:var(--t3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-li__meta{display:inline-flex;align-items:center;flex:none;font-size:var(--text-sm);color:var(--t3);white-space:nowrap}.strct-li__trailing{display:inline-flex;align-items:center;gap:var(--space-2);flex:none}@container (max-width: 360px){.strct-li__main{flex-wrap:wrap}.strct-li__meta{flex-basis:100%;padding-inline-start:0}}\n"] }]
|
|
1702
|
+
}], propDecorators: { interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], activated: [{ type: i0.Output, args: ["activated"] }] } });
|
|
1703
|
+
/**
|
|
1704
|
+
* A short list of things with a status — alarms, findings, clusters in a
|
|
1705
|
+
* summary. A table needs a header row and columns, a timeline implies time
|
|
1706
|
+
* order, and an alert per item is too heavy; without a list every screen
|
|
1707
|
+
* invents its own rows.
|
|
1708
|
+
*
|
|
1709
|
+
* <strct-list dense [label]="'Active alarms'">
|
|
1710
|
+
* <strct-list-item interactive (activated)="open(a)">
|
|
1711
|
+
* <strct-badge strctListItemLeading status="critical">Critical</strct-badge>
|
|
1712
|
+
* {{ a.name }}
|
|
1713
|
+
* <span strctListItemDescription>{{ a.object }}</span>
|
|
1714
|
+
* <span strctListItemMeta>{{ a.when }}</span>
|
|
1715
|
+
* <button strctListItemTrailing strct-button size="mini" variant="flat">Acknowledge</button>
|
|
1716
|
+
* </strct-list-item>
|
|
1717
|
+
* </strct-list>
|
|
1718
|
+
*/
|
|
1719
|
+
class StrctList {
|
|
1720
|
+
/** 32px rows instead of 44px. */
|
|
1721
|
+
dense = input(false, { ...(ngDevMode ? { debugName: "dense" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1722
|
+
/** Hairline between rows. */
|
|
1723
|
+
dividers = input(true, { ...(ngDevMode ? { debugName: "dividers" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1724
|
+
/** Shown when the list has no items. */
|
|
1725
|
+
emptyText = input('', /* @ts-ignore */
|
|
1726
|
+
...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
|
|
1727
|
+
/** Accessible name of the list. */
|
|
1728
|
+
label = input('', /* @ts-ignore */
|
|
1729
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
1730
|
+
items = contentChildren(StrctListItem, /* @ts-ignore */
|
|
1731
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
1732
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1733
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctList, isStandalone: true, selector: "strct-list", inputs: { dense: { classPropertyName: "dense", publicName: "dense", isSignal: true, isRequired: false, transformFunction: null }, dividers: { classPropertyName: "dividers", publicName: "dividers", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "list" }, properties: { "attr.aria-label": "label() || null", "class.strct-list--dense": "dense()", "class.strct-list--dividers": "dividers()" }, classAttribute: "strct-list" }, queries: [{ propertyName: "items", predicate: StrctListItem, isSignal: true }], ngImport: i0, template: `
|
|
1734
|
+
<ng-content />
|
|
1735
|
+
@if (emptyText() && !items().length) {
|
|
1736
|
+
<p class="strct-list__empty">{{ emptyText() }}</p>
|
|
1737
|
+
}
|
|
1738
|
+
`, isInline: true, styles: [".strct-list{display:block;container-type:inline-size}.strct-list__empty{margin:0;padding:var(--space-3);font-size:var(--text-sm);color:var(--t3)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1739
|
+
}
|
|
1740
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctList, decorators: [{
|
|
1741
|
+
type: Component,
|
|
1742
|
+
args: [{ selector: 'strct-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
1743
|
+
<ng-content />
|
|
1744
|
+
@if (emptyText() && !items().length) {
|
|
1745
|
+
<p class="strct-list__empty">{{ emptyText() }}</p>
|
|
1746
|
+
}
|
|
1747
|
+
`, host: {
|
|
1748
|
+
class: 'strct-list',
|
|
1749
|
+
role: 'list',
|
|
1750
|
+
'[attr.aria-label]': 'label() || null',
|
|
1751
|
+
'[class.strct-list--dense]': 'dense()',
|
|
1752
|
+
'[class.strct-list--dividers]': 'dividers()',
|
|
1753
|
+
}, styles: [".strct-list{display:block;container-type:inline-size}.strct-list__empty{margin:0;padding:var(--space-3);font-size:var(--text-sm);color:var(--t3)}\n"] }]
|
|
1754
|
+
}], propDecorators: { dense: [{ type: i0.Input, args: [{ isSignal: true, alias: "dense", required: false }] }], dividers: [{ type: i0.Input, args: [{ isSignal: true, alias: "dividers", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StrctListItem), { isSignal: true }] }] } });
|
|
1755
|
+
|
|
1590
1756
|
/** Follows the heading on its line — a badge, a count, a status dot. */
|
|
1591
1757
|
class StrctSectionHeaderMeta {
|
|
1592
1758
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctSectionHeaderMeta, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -1890,7 +2056,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
1890
2056
|
}, styles: [".strct-av{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--bg-3);color:var(--t1);overflow:visible;font-size:13px;font-weight:600;-webkit-user-select:none;user-select:none;border:1px solid var(--b2)}.strct-av--sm{width:26px;height:26px;font-size:12px}.strct-av--lg{width:48px;height:48px;font-size:17px}.strct-av__img{width:100%;height:100%;border-radius:50%;object-fit:cover}.strct-av__initials{line-height:1}.strct-av__status{position:absolute;inset-inline-end:-1px;bottom:-1px;width:30%;height:30%;min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--bg-1);background:var(--t3)}.strct-av--online .strct-av__status{background:var(--success)}.strct-av--busy .strct-av__status{background:var(--critical)}.strct-av--offline .strct-av__status{background:var(--t3)}\n"] }]
|
|
1891
2057
|
}], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }] } });
|
|
1892
2058
|
|
|
1893
|
-
/**
|
|
2059
|
+
/**
|
|
2060
|
+
* Horizontal value/usage bar. `<strct-progress [value]="72" status="warning" />`.
|
|
2061
|
+
*
|
|
2062
|
+
* **Meter mode.** A capacity bar says what it measures and how much, next to
|
|
2063
|
+
* the bar: `visibleLabel` puts `label` at the start of a row above the track,
|
|
2064
|
+
* `showValue` puts `valueText` (default `${value}%`) at its end, and `caption`
|
|
2065
|
+
* adds a quiet line under it. `segments` stacks more than one fill, and
|
|
2066
|
+
* `indeterminate` is a task that is running but reports no percentage. Every
|
|
2067
|
+
* one of these is off by default, so a plain bar renders exactly as before.
|
|
2068
|
+
*/
|
|
1894
2069
|
class StrctProgress {
|
|
1895
2070
|
/** Current value. */
|
|
1896
2071
|
value = input(0, /* @ts-ignore */
|
|
@@ -1901,6 +2076,21 @@ class StrctProgress {
|
|
|
1901
2076
|
/** Visual status color. */
|
|
1902
2077
|
status = input('accent', /* @ts-ignore */
|
|
1903
2078
|
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
2079
|
+
/** Show `label` above the bar as well as announcing it. */
|
|
2080
|
+
visibleLabel = input(false, { ...(ngDevMode ? { debugName: "visibleLabel" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
2081
|
+
/** Show the value at the end of the row above the bar. */
|
|
2082
|
+
showValue = input(false, { ...(ngDevMode ? { debugName: "showValue" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
2083
|
+
/** What `showValue` prints — "293 GB of 512 GB". Defaults to `${value}%`. */
|
|
2084
|
+
valueText = input('', /* @ts-ignore */
|
|
2085
|
+
...(ngDevMode ? [{ debugName: "valueText" }] : /* istanbul ignore next */ []));
|
|
2086
|
+
/** A quiet line under the bar — "219 GB free across 2 nodes". */
|
|
2087
|
+
caption = input('', /* @ts-ignore */
|
|
2088
|
+
...(ngDevMode ? [{ debugName: "caption" }] : /* istanbul ignore next */ []));
|
|
2089
|
+
/** Running, but with no percentage to report. */
|
|
2090
|
+
indeterminate = input(false, { ...(ngDevMode ? { debugName: "indeterminate" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
2091
|
+
/** Stack several fills (used now + what would arrive); clamped to 100 total. */
|
|
2092
|
+
segments = input(null, /* @ts-ignore */
|
|
2093
|
+
...(ngDevMode ? [{ debugName: "segments" }] : /* istanbul ignore next */ []));
|
|
1904
2094
|
/**
|
|
1905
2095
|
* Optional value-driven thresholds. When set, the component picks its own
|
|
1906
2096
|
* status from the value instead of the caller computing it: `value >= critical`
|
|
@@ -1912,6 +2102,30 @@ class StrctProgress {
|
|
|
1912
2102
|
...(ngDevMode ? [{ debugName: "thresholds" }] : /* istanbul ignore next */ []));
|
|
1913
2103
|
clamped = computed(() => Math.max(0, Math.min(100, this.value())), /* @ts-ignore */
|
|
1914
2104
|
...(ngDevMode ? [{ debugName: "clamped" }] : /* istanbul ignore next */ []));
|
|
2105
|
+
/** Segments as widths that together never exceed the track. */
|
|
2106
|
+
stacked = computed(() => {
|
|
2107
|
+
const segments = this.segments();
|
|
2108
|
+
if (!segments?.length)
|
|
2109
|
+
return null;
|
|
2110
|
+
let left = 100;
|
|
2111
|
+
return segments.map((s) => {
|
|
2112
|
+
const width = Math.max(0, Math.min(s.value, left));
|
|
2113
|
+
left -= width;
|
|
2114
|
+
return { width, status: s.status ?? this.resolvedStatus() };
|
|
2115
|
+
});
|
|
2116
|
+
}, /* @ts-ignore */
|
|
2117
|
+
...(ngDevMode ? [{ debugName: "stacked" }] : /* istanbul ignore next */ []));
|
|
2118
|
+
/** What a screen reader reads instead of the bare number. */
|
|
2119
|
+
valueDescription = computed(() => {
|
|
2120
|
+
if (this.indeterminate())
|
|
2121
|
+
return 'In progress';
|
|
2122
|
+
const segments = this.segments();
|
|
2123
|
+
if (segments?.length) {
|
|
2124
|
+
return segments.map((s) => `${s.label ? s.label + ' ' : ''}${s.value}%`).join(', ');
|
|
2125
|
+
}
|
|
2126
|
+
return this.valueText() || null;
|
|
2127
|
+
}, /* @ts-ignore */
|
|
2128
|
+
...(ngDevMode ? [{ debugName: "valueDescription" }] : /* istanbul ignore next */ []));
|
|
1915
2129
|
/** Status after applying thresholds (falls back to `status` when none set). */
|
|
1916
2130
|
resolvedStatus = computed(() => {
|
|
1917
2131
|
const t = this.thresholds();
|
|
@@ -1927,39 +2141,90 @@ class StrctProgress {
|
|
|
1927
2141
|
}, /* @ts-ignore */
|
|
1928
2142
|
...(ngDevMode ? [{ debugName: "resolvedStatus" }] : /* istanbul ignore next */ []));
|
|
1929
2143
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1930
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
2144
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctProgress, isStandalone: true, selector: "strct-progress", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, visibleLabel: { classPropertyName: "visibleLabel", publicName: "visibleLabel", isSignal: true, isRequired: false, transformFunction: null }, showValue: { classPropertyName: "showValue", publicName: "showValue", isSignal: true, isRequired: false, transformFunction: null }, valueText: { classPropertyName: "valueText", publicName: "valueText", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, segments: { classPropertyName: "segments", publicName: "segments", isSignal: true, isRequired: false, transformFunction: null }, thresholds: { classPropertyName: "thresholds", publicName: "thresholds", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-progress--neutral": "resolvedStatus() === 'neutral'", "class.strct-progress--success": "resolvedStatus() === 'success'", "class.strct-progress--warning": "resolvedStatus() === 'warning'", "class.strct-progress--critical": "resolvedStatus() === 'critical'" }, classAttribute: "strct-progress" }, ngImport: i0, template: `
|
|
2145
|
+
@if (visibleLabel() || showValue()) {
|
|
2146
|
+
<div class="strct-progress__row">
|
|
2147
|
+
@if (visibleLabel()) {
|
|
2148
|
+
<span class="strct-progress__label">{{ label() }}</span>
|
|
2149
|
+
}
|
|
2150
|
+
@if (showValue()) {
|
|
2151
|
+
<span class="strct-progress__value">{{ valueText() || clamped() + '%' }}</span>
|
|
2152
|
+
}
|
|
2153
|
+
</div>
|
|
2154
|
+
}
|
|
1931
2155
|
<div
|
|
1932
2156
|
class="strct-progress__track"
|
|
1933
2157
|
role="progressbar"
|
|
1934
2158
|
[attr.aria-label]="label() || 'Progress'"
|
|
1935
|
-
[attr.aria-valuenow]="clamped()"
|
|
1936
|
-
aria-
|
|
1937
|
-
aria-
|
|
2159
|
+
[attr.aria-valuenow]="indeterminate() ? null : clamped()"
|
|
2160
|
+
[attr.aria-valuetext]="valueDescription()"
|
|
2161
|
+
[attr.aria-valuemin]="indeterminate() ? null : 0"
|
|
2162
|
+
[attr.aria-valuemax]="indeterminate() ? null : 100"
|
|
1938
2163
|
>
|
|
1939
|
-
|
|
2164
|
+
@if (indeterminate()) {
|
|
2165
|
+
<div class="strct-progress__fill strct-progress__fill--indeterminate"></div>
|
|
2166
|
+
} @else if (stacked(); as parts) {
|
|
2167
|
+
@for (part of parts; track $index) {
|
|
2168
|
+
<div
|
|
2169
|
+
class="strct-progress__fill strct-progress__fill--{{ part.status }}"
|
|
2170
|
+
[style.width.%]="part.width"
|
|
2171
|
+
></div>
|
|
2172
|
+
}
|
|
2173
|
+
} @else {
|
|
2174
|
+
<div class="strct-progress__fill" [style.width.%]="clamped()"></div>
|
|
2175
|
+
}
|
|
1940
2176
|
</div>
|
|
1941
|
-
|
|
2177
|
+
@if (caption()) {
|
|
2178
|
+
<p class="strct-progress__caption">{{ caption() }}</p>
|
|
2179
|
+
}
|
|
2180
|
+
`, isInline: true, styles: [".strct-progress{display:block}.strct-progress__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin-block-end:4px;font-size:var(--text-sm)}.strct-progress__label{color:var(--t2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-progress__value{color:var(--t1);font-variant-numeric:tabular-nums;white-space:nowrap}.strct-progress__caption{margin:4px 0 0;font-size:var(--text-sm);line-height:1.5;color:var(--t3)}.strct-progress__track{position:relative;display:flex;height:6px;border-radius:var(--radius-sm);background:var(--strct-progress-track, color-mix(in srgb, var(--t1) 12%, transparent));box-shadow:inset 0 0 0 1px var(--b2);overflow:hidden}.strct-progress__fill{height:100%;border-radius:var(--radius-sm);background:var(--acc);transition:width .3s ease}.strct-progress--neutral .strct-progress__fill{background:var(--t3)}.strct-progress--success .strct-progress__fill{background:var(--success)}.strct-progress--warning .strct-progress__fill{background:var(--warning)}.strct-progress--critical .strct-progress__fill{background:var(--critical)}.strct-progress .strct-progress__fill--neutral{background:var(--t3)}.strct-progress .strct-progress__fill--accent{background:var(--acc)}.strct-progress .strct-progress__fill--success{background:var(--success)}.strct-progress .strct-progress__fill--warning{background:var(--warning)}.strct-progress .strct-progress__fill--critical{background:var(--critical)}.strct-progress__track .strct-progress__fill+.strct-progress__fill{border-start-start-radius:0;border-end-start-radius:0}.strct-progress .strct-progress__fill--indeterminate{width:35%;animation:strct-progress-sweep 1.1s ease-in-out infinite}@keyframes strct-progress-sweep{0%{transform:translate(-120%)}to{transform:translate(340%)}}@media(prefers-reduced-motion:reduce){.strct-progress .strct-progress__fill--indeterminate{width:100%;animation:none;background:repeating-linear-gradient(135deg,var(--acc) 0 6px,color-mix(in srgb,var(--acc) 45%,transparent) 6px 12px)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1942
2181
|
}
|
|
1943
2182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctProgress, decorators: [{
|
|
1944
2183
|
type: Component,
|
|
1945
2184
|
args: [{ selector: 'strct-progress', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
2185
|
+
@if (visibleLabel() || showValue()) {
|
|
2186
|
+
<div class="strct-progress__row">
|
|
2187
|
+
@if (visibleLabel()) {
|
|
2188
|
+
<span class="strct-progress__label">{{ label() }}</span>
|
|
2189
|
+
}
|
|
2190
|
+
@if (showValue()) {
|
|
2191
|
+
<span class="strct-progress__value">{{ valueText() || clamped() + '%' }}</span>
|
|
2192
|
+
}
|
|
2193
|
+
</div>
|
|
2194
|
+
}
|
|
1946
2195
|
<div
|
|
1947
2196
|
class="strct-progress__track"
|
|
1948
2197
|
role="progressbar"
|
|
1949
2198
|
[attr.aria-label]="label() || 'Progress'"
|
|
1950
|
-
[attr.aria-valuenow]="clamped()"
|
|
1951
|
-
aria-
|
|
1952
|
-
aria-
|
|
2199
|
+
[attr.aria-valuenow]="indeterminate() ? null : clamped()"
|
|
2200
|
+
[attr.aria-valuetext]="valueDescription()"
|
|
2201
|
+
[attr.aria-valuemin]="indeterminate() ? null : 0"
|
|
2202
|
+
[attr.aria-valuemax]="indeterminate() ? null : 100"
|
|
1953
2203
|
>
|
|
1954
|
-
|
|
2204
|
+
@if (indeterminate()) {
|
|
2205
|
+
<div class="strct-progress__fill strct-progress__fill--indeterminate"></div>
|
|
2206
|
+
} @else if (stacked(); as parts) {
|
|
2207
|
+
@for (part of parts; track $index) {
|
|
2208
|
+
<div
|
|
2209
|
+
class="strct-progress__fill strct-progress__fill--{{ part.status }}"
|
|
2210
|
+
[style.width.%]="part.width"
|
|
2211
|
+
></div>
|
|
2212
|
+
}
|
|
2213
|
+
} @else {
|
|
2214
|
+
<div class="strct-progress__fill" [style.width.%]="clamped()"></div>
|
|
2215
|
+
}
|
|
1955
2216
|
</div>
|
|
2217
|
+
@if (caption()) {
|
|
2218
|
+
<p class="strct-progress__caption">{{ caption() }}</p>
|
|
2219
|
+
}
|
|
1956
2220
|
`, host: {
|
|
1957
2221
|
class: 'strct-progress',
|
|
2222
|
+
'[class.strct-progress--neutral]': "resolvedStatus() === 'neutral'",
|
|
1958
2223
|
'[class.strct-progress--success]': "resolvedStatus() === 'success'",
|
|
1959
2224
|
'[class.strct-progress--warning]': "resolvedStatus() === 'warning'",
|
|
1960
2225
|
'[class.strct-progress--critical]': "resolvedStatus() === 'critical'",
|
|
1961
|
-
}, styles: [".strct-progress{display:block}.strct-progress__track{height:6px;border-radius:var(--radius-sm);background:var(--strct-progress-track, color-mix(in srgb, var(--t1) 12%, transparent));box-shadow:inset 0 0 0 1px var(--b2);overflow:hidden}.strct-progress__fill{height:100%;border-radius:var(--radius-sm);background:var(--acc);transition:width .3s ease}.strct-progress--success .strct-progress__fill{background:var(--success)}.strct-progress--warning .strct-progress__fill{background:var(--warning)}.strct-progress--critical .strct-progress__fill{background:var(--critical)}\n"] }]
|
|
1962
|
-
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], thresholds: [{ type: i0.Input, args: [{ isSignal: true, alias: "thresholds", required: false }] }] } });
|
|
2226
|
+
}, styles: [".strct-progress{display:block}.strct-progress__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin-block-end:4px;font-size:var(--text-sm)}.strct-progress__label{color:var(--t2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-progress__value{color:var(--t1);font-variant-numeric:tabular-nums;white-space:nowrap}.strct-progress__caption{margin:4px 0 0;font-size:var(--text-sm);line-height:1.5;color:var(--t3)}.strct-progress__track{position:relative;display:flex;height:6px;border-radius:var(--radius-sm);background:var(--strct-progress-track, color-mix(in srgb, var(--t1) 12%, transparent));box-shadow:inset 0 0 0 1px var(--b2);overflow:hidden}.strct-progress__fill{height:100%;border-radius:var(--radius-sm);background:var(--acc);transition:width .3s ease}.strct-progress--neutral .strct-progress__fill{background:var(--t3)}.strct-progress--success .strct-progress__fill{background:var(--success)}.strct-progress--warning .strct-progress__fill{background:var(--warning)}.strct-progress--critical .strct-progress__fill{background:var(--critical)}.strct-progress .strct-progress__fill--neutral{background:var(--t3)}.strct-progress .strct-progress__fill--accent{background:var(--acc)}.strct-progress .strct-progress__fill--success{background:var(--success)}.strct-progress .strct-progress__fill--warning{background:var(--warning)}.strct-progress .strct-progress__fill--critical{background:var(--critical)}.strct-progress__track .strct-progress__fill+.strct-progress__fill{border-start-start-radius:0;border-end-start-radius:0}.strct-progress .strct-progress__fill--indeterminate{width:35%;animation:strct-progress-sweep 1.1s ease-in-out infinite}@keyframes strct-progress-sweep{0%{transform:translate(-120%)}to{transform:translate(340%)}}@media(prefers-reduced-motion:reduce){.strct-progress .strct-progress__fill--indeterminate{width:100%;animation:none;background:repeating-linear-gradient(135deg,var(--acc) 0 6px,color-mix(in srgb,var(--acc) 45%,transparent) 6px 12px)}}\n"] }]
|
|
2227
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], visibleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "visibleLabel", required: false }] }], showValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValue", required: false }] }], valueText: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueText", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], segments: [{ type: i0.Input, args: [{ isSignal: true, alias: "segments", required: false }] }], thresholds: [{ type: i0.Input, args: [{ isSignal: true, alias: "thresholds", required: false }] }] } });
|
|
1963
2228
|
|
|
1964
2229
|
/** Indeterminate loading ring. `<strct-spinner size="sm" />`. */
|
|
1965
2230
|
class StrctSpinner {
|
|
@@ -1969,19 +2234,37 @@ class StrctSpinner {
|
|
|
1969
2234
|
/** Accessible label (localizable). */
|
|
1970
2235
|
label = input('Loading', /* @ts-ignore */
|
|
1971
2236
|
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
2237
|
+
/**
|
|
2238
|
+
* Visible text beside the ring — "Reading…". It becomes the accessible name
|
|
2239
|
+
* too, so the spinner is not announced as "Loading" while it says something
|
|
2240
|
+
* else on screen.
|
|
2241
|
+
*/
|
|
2242
|
+
caption = input('', /* @ts-ignore */
|
|
2243
|
+
...(ngDevMode ? [{ debugName: "caption" }] : /* istanbul ignore next */ []));
|
|
1972
2244
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1973
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
2245
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctSpinner, isStandalone: true, selector: "strct-spinner", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "class.strct-spinner--captioned": "caption()", "attr.aria-label": "caption() || label()", "class.strct-spinner--sm": "size() === 'sm'", "class.strct-spinner--lg": "size() === 'lg'" }, classAttribute: "strct-spinner" }, ngImport: i0, template: `
|
|
2246
|
+
@if (caption()) {
|
|
2247
|
+
<span class="strct-spinner__ring"></span>
|
|
2248
|
+
<span class="strct-spinner__caption">{{ caption() }}</span>
|
|
2249
|
+
}
|
|
2250
|
+
`, isInline: true, styles: [".strct-spinner{display:inline-block;width:22px;height:22px;border:2.5px solid var(--b3);border-top-color:var(--acc);border-radius:50%;animation:strct-spin .7s linear infinite}.strct-spinner--sm{width:14px;height:14px;border-width:2px}.strct-spinner--lg{width:34px;height:34px;border-width:3px}@keyframes strct-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.strct-spinner{animation-duration:1.6s}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1974
2251
|
}
|
|
1975
2252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctSpinner, decorators: [{
|
|
1976
2253
|
type: Component,
|
|
1977
|
-
args: [{ selector: 'strct-spinner', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template:
|
|
2254
|
+
args: [{ selector: 'strct-spinner', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
2255
|
+
@if (caption()) {
|
|
2256
|
+
<span class="strct-spinner__ring"></span>
|
|
2257
|
+
<span class="strct-spinner__caption">{{ caption() }}</span>
|
|
2258
|
+
}
|
|
2259
|
+
`, host: {
|
|
1978
2260
|
class: 'strct-spinner',
|
|
1979
2261
|
role: 'progressbar',
|
|
1980
|
-
'[
|
|
2262
|
+
'[class.strct-spinner--captioned]': 'caption()',
|
|
2263
|
+
'[attr.aria-label]': 'caption() || label()',
|
|
1981
2264
|
'[class.strct-spinner--sm]': "size() === 'sm'",
|
|
1982
2265
|
'[class.strct-spinner--lg]': "size() === 'lg'",
|
|
1983
2266
|
}, styles: [".strct-spinner{display:inline-block;width:22px;height:22px;border:2.5px solid var(--b3);border-top-color:var(--acc);border-radius:50%;animation:strct-spin .7s linear infinite}.strct-spinner--sm{width:14px;height:14px;border-width:2px}.strct-spinner--lg{width:34px;height:34px;border-width:3px}@keyframes strct-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.strct-spinner{animation-duration:1.6s}}\n"] }]
|
|
1984
|
-
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
2267
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }] } });
|
|
1985
2268
|
|
|
1986
2269
|
/**
|
|
1987
2270
|
* Shimmering loading placeholder.
|
|
@@ -7134,7 +7417,7 @@ class StrctCellStatus {
|
|
|
7134
7417
|
}
|
|
7135
7418
|
</span>
|
|
7136
7419
|
}
|
|
7137
|
-
`, isInline: true, styles: [".strct-vstate{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);line-height:1;color:var(--t3)}.strct-vstate strct-icon{flex-shrink:0}.strct-vstate--ok{color:var(--success)}.strct-vstate--warning{color:var(--warning)}.strct-vstate--error{color:var(--critical)}.strct-vstate__msg{color:var(--t2)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7420
|
+
`, isInline: true, styles: [".strct-vstate{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);line-height:1;color:var(--t3)}.strct-vstate strct-icon{flex-shrink:0}.strct-vstate--ok{color:var(--success)}.strct-vstate--warning{color:var(--warning)}.strct-vstate--error{color:var(--critical)}.strct-vstate__msg{color:var(--t2)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label", "caption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7138
7421
|
}
|
|
7139
7422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctCellStatus, decorators: [{
|
|
7140
7423
|
type: Component,
|
|
@@ -7287,7 +7570,7 @@ class StrctField {
|
|
|
7287
7570
|
} @else if (hint()) {
|
|
7288
7571
|
<div class="strct-field__msg strct-field__msg--hint" [id]="hintId">{{ hint() }}</div>
|
|
7289
7572
|
}
|
|
7290
|
-
`, isInline: true, styles: [".strct-field{display:flex;flex-direction:column;gap:6px}.strct-field__label{font-size:12px;font-weight:600;color:var(--t2)}.strct-field__req{color:var(--critical);margin-inline-start:2px}.strct-field__control{position:relative;display:flex;flex-direction:column}.strct-field__adorn{position:absolute;top:50%;inset-inline-end:10px;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}.strct-field__adorn--ok{color:var(--success)}.strct-field__adorn--warning{color:var(--warning)}.strct-field__adorn--error{color:var(--critical)}.strct-field--validating .strct-control{padding-inline-end:32px}.strct-field__msg{font-size:12px;line-height:1.4}.strct-field__msg--hint,.strct-field__msg--checking{color:var(--t3)}.strct-field__msg--ok{color:var(--success)}.strct-field__msg--warning{color:var(--warning)}.strct-field__msg--error{color:var(--critical)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7573
|
+
`, isInline: true, styles: [".strct-field{display:flex;flex-direction:column;gap:6px}.strct-field__label{font-size:12px;font-weight:600;color:var(--t2)}.strct-field__req{color:var(--critical);margin-inline-start:2px}.strct-field__control{position:relative;display:flex;flex-direction:column}.strct-field__adorn{position:absolute;top:50%;inset-inline-end:10px;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}.strct-field__adorn--ok{color:var(--success)}.strct-field__adorn--warning{color:var(--warning)}.strct-field__adorn--error{color:var(--critical)}.strct-field--validating .strct-control{padding-inline-end:32px}.strct-field__msg{font-size:12px;line-height:1.4}.strct-field__msg--hint,.strct-field__msg--checking{color:var(--t3)}.strct-field__msg--ok{color:var(--success)}.strct-field__msg--warning{color:var(--warning)}.strct-field__msg--error{color:var(--critical)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label", "caption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7291
7574
|
}
|
|
7292
7575
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctField, decorators: [{
|
|
7293
7576
|
type: Component,
|
|
@@ -17299,6 +17582,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
17299
17582
|
|
|
17300
17583
|
const VARIANTS = {
|
|
17301
17584
|
empty: { icon: 'folder', tone: 'neutral' },
|
|
17585
|
+
loading: { icon: '', tone: 'neutral' },
|
|
17302
17586
|
denied: { icon: 'lock', tone: 'warning' },
|
|
17303
17587
|
error: { icon: 'warning', tone: 'critical' },
|
|
17304
17588
|
notfound: { icon: 'search', tone: 'neutral' },
|
|
@@ -17324,6 +17608,12 @@ class StrctEmptyState {
|
|
|
17324
17608
|
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
17325
17609
|
title = input.required(/* @ts-ignore */
|
|
17326
17610
|
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
17611
|
+
/**
|
|
17612
|
+
* `sm` is the inline row a 240px frame wants: a 16px icon with the title and
|
|
17613
|
+
* description on one line. A page-sized empty state stays `md`.
|
|
17614
|
+
*/
|
|
17615
|
+
size = input('md', /* @ts-ignore */
|
|
17616
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
17327
17617
|
description = input('', /* @ts-ignore */
|
|
17328
17618
|
...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
|
|
17329
17619
|
resolvedIcon = computed(() => this.icon() || VARIANTS[this.variant()].icon, /* @ts-ignore */
|
|
@@ -17331,30 +17621,50 @@ class StrctEmptyState {
|
|
|
17331
17621
|
toneClass = computed(() => this.tone() || VARIANTS[this.variant()].tone, /* @ts-ignore */
|
|
17332
17622
|
...(ngDevMode ? [{ debugName: "toneClass" }] : /* istanbul ignore next */ []));
|
|
17333
17623
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctEmptyState, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17334
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctEmptyState, isStandalone: true, selector: "strct-empty-state", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "strct-empty" }, ngImport: i0, template: `
|
|
17624
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: StrctEmptyState, isStandalone: true, selector: "strct-empty-state", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.strct-empty--sm": "size() === 'sm'", "attr.aria-busy": "variant() === 'loading' ? 'true' : null" }, classAttribute: "strct-empty" }, ngImport: i0, template: `
|
|
17335
17625
|
<span class="strct-empty__icon strct-empty__icon--{{ toneClass() }}">
|
|
17336
|
-
|
|
17626
|
+
@if (variant() === 'loading') {
|
|
17627
|
+
<strct-spinner [size]="size() === 'sm' ? 'sm' : 'md'" [label]="title()" />
|
|
17628
|
+
} @else {
|
|
17629
|
+
<strct-icon
|
|
17630
|
+
[name]="resolvedIcon()"
|
|
17631
|
+
[size]="size() === 'sm' ? 16 : 26"
|
|
17632
|
+
[strokeWidth]="1.4"
|
|
17633
|
+
/>
|
|
17634
|
+
}
|
|
17337
17635
|
</span>
|
|
17338
17636
|
<h3 class="strct-empty__title">{{ title() }}</h3>
|
|
17339
17637
|
@if (description()) {
|
|
17340
17638
|
<p class="strct-empty__desc">{{ description() }}</p>
|
|
17341
17639
|
}
|
|
17342
17640
|
<div class="strct-empty__actions"><ng-content /></div>
|
|
17343
|
-
`, isInline: true, styles: [".strct-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 24px}.strct-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;margin-bottom:2px}.strct-empty__icon--neutral{background:var(--bg-3);color:var(--t2)}.strct-empty__icon--warning{background:var(--warning-bg);color:var(--warning)}.strct-empty__icon--critical{background:var(--critical-bg);color:var(--critical)}.strct-empty__icon--accent{background:var(--acc-m);color:var(--acc)}.strct-empty__title{margin:0;font-size:15px;font-weight:600;color:var(--t1)}.strct-empty__desc{margin:0;max-width:360px;font-size:13px;line-height:1.5;color:var(--t3)}.strct-empty__actions{display:flex;align-items:center;gap:8px;margin-top:6px}.strct-empty__actions:empty{display:none}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17641
|
+
`, isInline: true, styles: [".strct-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 24px}.strct-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;margin-bottom:2px}.strct-empty__icon--neutral{background:var(--bg-3);color:var(--t2)}.strct-empty__icon--warning{background:var(--warning-bg);color:var(--warning)}.strct-empty__icon--critical{background:var(--critical-bg);color:var(--critical)}.strct-empty__icon--accent{background:var(--acc-m);color:var(--acc)}.strct-empty__title{margin:0;font-size:15px;font-weight:600;color:var(--t1)}.strct-empty__desc{margin:0;max-width:360px;font-size:13px;line-height:1.5;color:var(--t3)}.strct-empty__actions{display:flex;align-items:center;gap:8px;margin-top:6px}.strct-empty__actions:empty{display:none}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "component", type: StrctSpinner, selector: "strct-spinner", inputs: ["size", "label", "caption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17344
17642
|
}
|
|
17345
17643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: StrctEmptyState, decorators: [{
|
|
17346
17644
|
type: Component,
|
|
17347
|
-
args: [{ selector: 'strct-empty-state', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon], template: `
|
|
17645
|
+
args: [{ selector: 'strct-empty-state', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctSpinner], template: `
|
|
17348
17646
|
<span class="strct-empty__icon strct-empty__icon--{{ toneClass() }}">
|
|
17349
|
-
|
|
17647
|
+
@if (variant() === 'loading') {
|
|
17648
|
+
<strct-spinner [size]="size() === 'sm' ? 'sm' : 'md'" [label]="title()" />
|
|
17649
|
+
} @else {
|
|
17650
|
+
<strct-icon
|
|
17651
|
+
[name]="resolvedIcon()"
|
|
17652
|
+
[size]="size() === 'sm' ? 16 : 26"
|
|
17653
|
+
[strokeWidth]="1.4"
|
|
17654
|
+
/>
|
|
17655
|
+
}
|
|
17350
17656
|
</span>
|
|
17351
17657
|
<h3 class="strct-empty__title">{{ title() }}</h3>
|
|
17352
17658
|
@if (description()) {
|
|
17353
17659
|
<p class="strct-empty__desc">{{ description() }}</p>
|
|
17354
17660
|
}
|
|
17355
17661
|
<div class="strct-empty__actions"><ng-content /></div>
|
|
17356
|
-
`, host: {
|
|
17357
|
-
|
|
17662
|
+
`, host: {
|
|
17663
|
+
class: 'strct-empty',
|
|
17664
|
+
'[class.strct-empty--sm]': "size() === 'sm'",
|
|
17665
|
+
'[attr.aria-busy]': "variant() === 'loading' ? 'true' : null",
|
|
17666
|
+
}, styles: [".strct-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 24px}.strct-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;margin-bottom:2px}.strct-empty__icon--neutral{background:var(--bg-3);color:var(--t2)}.strct-empty__icon--warning{background:var(--warning-bg);color:var(--warning)}.strct-empty__icon--critical{background:var(--critical-bg);color:var(--critical)}.strct-empty__icon--accent{background:var(--acc-m);color:var(--acc)}.strct-empty__title{margin:0;font-size:15px;font-weight:600;color:var(--t1)}.strct-empty__desc{margin:0;max-width:360px;font-size:13px;line-height:1.5;color:var(--t3)}.strct-empty__actions{display:flex;align-items:center;gap:8px;margin-top:6px}.strct-empty__actions:empty{display:none}\n"] }]
|
|
17667
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }] } });
|
|
17358
17668
|
|
|
17359
17669
|
/**
|
|
17360
17670
|
* Unit formatting for infrastructure consoles — bytes, rates, durations and
|
|
@@ -22522,5 +22832,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
22522
22832
|
* Generated bundle index. Do not edit.
|
|
22523
22833
|
*/
|
|
22524
22834
|
|
|
22525
|
-
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
22835
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
22526
22836
|
//# sourceMappingURL=akcelik-strct.mjs.map
|