@akcelik/strct 0.11.0 → 0.24.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 +2959 -436
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/_forms.scss +1 -1
- package/styles/_tokens.scss +48 -30
- package/types/akcelik-strct.d.ts +767 -43
package/types/akcelik-strct.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { OnDestroy, TemplateRef } from '@angular/core';
|
|
3
3
|
import { SafeHtml } from '@angular/platform-browser';
|
|
4
|
+
import * as _akcelik_strct from '@akcelik/strct';
|
|
4
5
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
6
|
|
|
6
7
|
/** Available color palettes. */
|
|
@@ -54,10 +55,40 @@ declare class StrctThemeSwitcher {
|
|
|
54
55
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctThemeSwitcher, "strct-theme-switcher", never, {}, {}, never, never, true, never>;
|
|
55
56
|
}
|
|
56
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Shared status / tone union used across the library's tone-colored components
|
|
60
|
+
* (badge, metric tile, hero, flow, segmented …). One canonical type so apps and
|
|
61
|
+
* components agree on the same five tones instead of each re-declaring them.
|
|
62
|
+
*
|
|
63
|
+
* `StrctProgress` / `StrctGauge` use the narrower `StrctChartStatus` (no
|
|
64
|
+
* `'neutral'`) since a bar/gauge is always tinted.
|
|
65
|
+
*/
|
|
66
|
+
type StrctStatus = 'neutral' | 'accent' | 'success' | 'warning' | 'critical';
|
|
67
|
+
/**
|
|
68
|
+
* Optional value-driven thresholds for meters (`StrctProgress`, `StrctGauge`).
|
|
69
|
+
* When supplied, the component derives its own status from the value:
|
|
70
|
+
* `value >= critical → 'critical'`, `>= warning → 'warning'`, otherwise the
|
|
71
|
+
* healthy base ('success' by default).
|
|
72
|
+
*/
|
|
73
|
+
interface StrctThresholds {
|
|
74
|
+
warning?: number;
|
|
75
|
+
critical?: number;
|
|
76
|
+
}
|
|
77
|
+
|
|
57
78
|
/**
|
|
58
79
|
* Inner markup (path/shape contents) for each icon, drawn on a 0 0 16 16
|
|
59
80
|
* viewBox with `currentColor` stroke. Keep strokes at 1.3–1.5 for crispness.
|
|
60
81
|
*
|
|
82
|
+
* RENDER SIZES ("16 Native" policy): object / semantic glyphs must render at the
|
|
83
|
+
* grid's native 16px or larger — never downscaled (fractional scaling blurs
|
|
84
|
+
* hairlines). Simple single-stroke glyphs (chevrons, close, check, dots) may
|
|
85
|
+
* render at 11–14px; their wide details survive scaling.
|
|
86
|
+
*
|
|
87
|
+
* DETAIL BUDGET (small-size legibility): icons render as small as 14px, so keep
|
|
88
|
+
* gaps between parallel details ≥ 1.5px on the 16-grid (≈ max 3 parallel lines),
|
|
89
|
+
* prefer one large distinguishing feature over many small ones, and cap a glyph
|
|
90
|
+
* at ~6 drawing elements. Filled dots should be r ≥ 0.55.
|
|
91
|
+
*
|
|
61
92
|
* The set is intentionally datacenter-flavoured (hosts, clusters, switches,
|
|
62
93
|
* storage, VMs …). Object state — running / stopped / maintenance — is layered
|
|
63
94
|
* on with the `badge` input rather than a separate icon per state.
|
|
@@ -346,11 +377,23 @@ type StrctProgressStatus = 'accent' | 'success' | 'warning' | 'critical';
|
|
|
346
377
|
declare class StrctProgress {
|
|
347
378
|
/** Current value. */
|
|
348
379
|
readonly value: _angular_core.InputSignal<number>;
|
|
380
|
+
/** Accessible name of the bar (e.g. "CPU usage"). Falls back to "Progress". */
|
|
381
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
349
382
|
/** Visual status color. */
|
|
350
383
|
readonly status: _angular_core.InputSignal<StrctProgressStatus>;
|
|
384
|
+
/**
|
|
385
|
+
* Optional value-driven thresholds. When set, the component picks its own
|
|
386
|
+
* status from the value instead of the caller computing it: `value >= critical`
|
|
387
|
+
* → critical, `>= warning` → warning, else the healthy base. The healthy base is
|
|
388
|
+
* `status` when it has been set to a semantic tone, or `'success'` when `status`
|
|
389
|
+
* is left at its default `'accent'`.
|
|
390
|
+
*/
|
|
391
|
+
readonly thresholds: _angular_core.InputSignal<StrctThresholds | null>;
|
|
351
392
|
protected readonly clamped: _angular_core.Signal<number>;
|
|
393
|
+
/** Status after applying thresholds (falls back to `status` when none set). */
|
|
394
|
+
protected readonly resolvedStatus: _angular_core.Signal<StrctProgressStatus>;
|
|
352
395
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctProgress, never>;
|
|
353
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctProgress, "strct-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
396
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctProgress, "strct-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "thresholds": { "alias": "thresholds"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
354
397
|
}
|
|
355
398
|
|
|
356
399
|
/** Spinner size variants. */
|
|
@@ -359,8 +402,10 @@ type StrctSpinnerSize = 'sm' | 'md' | 'lg';
|
|
|
359
402
|
declare class StrctSpinner {
|
|
360
403
|
/** Size variant. */
|
|
361
404
|
readonly size: _angular_core.InputSignal<StrctSpinnerSize>;
|
|
405
|
+
/** Accessible label (localizable). */
|
|
406
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
362
407
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctSpinner, never>;
|
|
363
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSpinner, "strct-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
408
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSpinner, "strct-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
364
409
|
}
|
|
365
410
|
|
|
366
411
|
/**
|
|
@@ -405,20 +450,51 @@ declare class StrctSpeedDial {
|
|
|
405
450
|
|
|
406
451
|
/**
|
|
407
452
|
* Surface container. Compose with the header / block / footer pieces:
|
|
408
|
-
*
|
|
409
|
-
*
|
|
410
|
-
* <strct-card-
|
|
453
|
+
*
|
|
454
|
+
* <strct-card status="warning" collapsible [(collapsed)]="hidden">
|
|
455
|
+
* <strct-card-header icon="host">Host hv-02</strct-card-header>
|
|
456
|
+
* <strct-card-block>…</strct-card-block>
|
|
411
457
|
* <strct-card-footer><button strct-button>OK</button></strct-card-footer>
|
|
412
458
|
* </strct-card>
|
|
459
|
+
*
|
|
460
|
+
* Rich options (all opt-in; defaults preserve the plain card):
|
|
461
|
+
* - `status` — tone rail on the leading edge (same language as alert / hero).
|
|
462
|
+
* - `interactive` — hover lift + accent border for clickable cards.
|
|
463
|
+
* - `selected` — accent ring for picker layouts.
|
|
464
|
+
* - `dense` — tighter paddings for dashboards.
|
|
465
|
+
* - `loading` — indeterminate top bar + `aria-busy` (reduced-motion safe).
|
|
466
|
+
* - `collapsible` + two-way `collapsed` — the header gains a chevron toggle;
|
|
467
|
+
* block and footer hide while collapsed.
|
|
413
468
|
*/
|
|
414
469
|
declare class StrctCard {
|
|
470
|
+
/** Tone rail on the leading edge. */
|
|
471
|
+
readonly status: _angular_core.InputSignal<StrctStatus>;
|
|
472
|
+
/** Hover lift + accent border for clickable cards (style-only affordance). */
|
|
473
|
+
readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
474
|
+
/** Accent ring — for picker / multi-select card layouts. */
|
|
475
|
+
readonly selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
476
|
+
/** Tighter paddings for dense dashboards. */
|
|
477
|
+
readonly dense: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
478
|
+
/** Indeterminate top bar + aria-busy; body/footer dim and ignore input. */
|
|
479
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
480
|
+
/** Allow collapsing to just the header (a chevron appears in the header). */
|
|
481
|
+
readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
482
|
+
/** Collapsed state (two-way; only meaningful with `collapsible`). */
|
|
483
|
+
readonly collapsed: _angular_core.ModelSignal<boolean>;
|
|
484
|
+
toggle(): void;
|
|
415
485
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCard, never>;
|
|
416
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCard, "strct-card", never, {}, {}, never, ["*"], true, never>;
|
|
486
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCard, "strct-card", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["*"], true, never>;
|
|
417
487
|
}
|
|
418
488
|
/** Header section of a {@link StrctCard}. */
|
|
419
489
|
declare class StrctCardHeader {
|
|
490
|
+
/** Optional leading icon (StrctIcon set). */
|
|
491
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
492
|
+
/** Accessible labels for the collapse toggle (localizable). */
|
|
493
|
+
readonly collapseLabel: _angular_core.InputSignal<string>;
|
|
494
|
+
readonly expandLabel: _angular_core.InputSignal<string>;
|
|
495
|
+
protected readonly card: StrctCard | null;
|
|
420
496
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCardHeader, never>;
|
|
421
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCardHeader, "strct-card-header", never, {}, {}, never, ["*"], true, never>;
|
|
497
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCardHeader, "strct-card-header", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
422
498
|
}
|
|
423
499
|
/** Body section of a {@link StrctCard}. */
|
|
424
500
|
declare class StrctCardBlock {
|
|
@@ -463,12 +539,12 @@ declare class StrctTab {
|
|
|
463
539
|
/** Tab group. Wraps `<strct-tab>` children and renders the tab bar. */
|
|
464
540
|
declare class StrctTabs {
|
|
465
541
|
readonly tabs: _angular_core.Signal<readonly StrctTab[]>;
|
|
466
|
-
readonly selectedIndex: _angular_core.
|
|
542
|
+
readonly selectedIndex: _angular_core.ModelSignal<number>;
|
|
467
543
|
constructor();
|
|
468
544
|
select(index: number): void;
|
|
469
545
|
onKeydown(event: KeyboardEvent, bar: HTMLElement): void;
|
|
470
546
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctTabs, never>;
|
|
471
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTabs, "strct-tabs", never, {}, {}, ["tabs"], ["*"], true, never>;
|
|
547
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTabs, "strct-tabs", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; }, ["tabs"], ["*"], true, never>;
|
|
472
548
|
}
|
|
473
549
|
|
|
474
550
|
/** A single entry in a data-driven menu. */
|
|
@@ -581,6 +657,12 @@ declare class StrctContextMenuTrigger {
|
|
|
581
657
|
|
|
582
658
|
/** A node in the data-driven tree (`<strct-tree [nodes]="...">`). */
|
|
583
659
|
interface StrctTreeNodeData {
|
|
660
|
+
/**
|
|
661
|
+
* Stable unique key — used for `trackBy`, controlled expansion state
|
|
662
|
+
* (`expandedIds`) and a `data-node-id` DOM attribute. Falls back to `label`
|
|
663
|
+
* when absent (backward-compatible).
|
|
664
|
+
*/
|
|
665
|
+
id?: string;
|
|
584
666
|
label: string;
|
|
585
667
|
/** Optional leading icon name. */
|
|
586
668
|
icon?: string;
|
|
@@ -634,15 +716,31 @@ declare class StrctTreeNode {
|
|
|
634
716
|
readonly nodeMenuSelect: _angular_core.OutputEmitterRef<StrctTreeMenuEvent>;
|
|
635
717
|
/** Right-click menu items for this node ([] when no resolver / not data mode). */
|
|
636
718
|
protected readonly menuItems: _angular_core.Signal<StrctMenuItem[]>;
|
|
719
|
+
/** The owning `<strct-tree>` (null only for standalone nodes outside a tree). */
|
|
720
|
+
protected readonly tree: StrctTree | null;
|
|
721
|
+
/** Node icon scales with the owning tree's density (16 native → 18 comfortable). */
|
|
722
|
+
protected readonly iconSize: _angular_core.Signal<16 | 18>;
|
|
723
|
+
/** Parent tree node (element-injector ancestor); drives aria-level + ArrowLeft. */
|
|
724
|
+
readonly parent: StrctTreeNode | null;
|
|
725
|
+
/** 1-based depth, exposed as aria-level. */
|
|
726
|
+
readonly level: number;
|
|
727
|
+
private readonly hostEl;
|
|
637
728
|
private readonly childNodes;
|
|
638
|
-
/** Data-mode expansion (seeded from node.expanded
|
|
729
|
+
/** Data-mode expansion fallback when there is no owning tree (seeded from node.expanded). */
|
|
639
730
|
private readonly dataExpanded;
|
|
640
731
|
protected readonly displayLabel: _angular_core.Signal<string>;
|
|
641
732
|
protected readonly displayIcon: _angular_core.Signal<string | undefined>;
|
|
642
733
|
protected readonly displayBadge: _angular_core.Signal<StrctIconBadge>;
|
|
643
734
|
protected readonly displayActive: _angular_core.Signal<boolean>;
|
|
644
|
-
|
|
645
|
-
|
|
735
|
+
constructor();
|
|
736
|
+
/** The focusable row element of this node. */
|
|
737
|
+
rowEl(): HTMLElement | null;
|
|
738
|
+
/** Roving tabindex: inside a tree only the active row is tabbable. */
|
|
739
|
+
protected readonly rowTabindex: _angular_core.Signal<0 | -1>;
|
|
740
|
+
protected onRowFocus(): void;
|
|
741
|
+
protected onRowKeydown(event: KeyboardEvent): void;
|
|
742
|
+
readonly hasChildren: _angular_core.Signal<boolean>;
|
|
743
|
+
readonly isOpen: _angular_core.Signal<boolean>;
|
|
646
744
|
toggle(): void;
|
|
647
745
|
protected onActivate(): void;
|
|
648
746
|
protected onMenuSelect(item: StrctMenuItem): void;
|
|
@@ -657,14 +755,59 @@ declare class StrctTreeNode {
|
|
|
657
755
|
declare class StrctTree {
|
|
658
756
|
/** Data-driven node list; when set, projected content is ignored. */
|
|
659
757
|
readonly nodes: _angular_core.InputSignal<StrctTreeNodeData[] | null>;
|
|
758
|
+
/**
|
|
759
|
+
* Row density. `compact` (default) is the dense inventory layout —
|
|
760
|
+
* 13px text / 16px icons; `comfortable` relaxes to 14px text / 18px icons
|
|
761
|
+
* with taller rows for touch-friendly or low-density consoles.
|
|
762
|
+
*/
|
|
763
|
+
readonly density: _angular_core.InputSignal<"compact" | "comfortable">;
|
|
660
764
|
/** Per-node right-click menu resolver. */
|
|
661
765
|
readonly nodeMenu: _angular_core.InputSignal<StrctTreeNodeMenuFn | null>;
|
|
662
766
|
/** Emitted when any data-driven node is clicked. */
|
|
663
767
|
readonly nodeActivated: _angular_core.OutputEmitterRef<StrctTreeNodeData>;
|
|
664
768
|
/** Emitted when a data-driven node's right-click menu item is chosen. */
|
|
665
769
|
readonly nodeMenuSelect: _angular_core.OutputEmitterRef<StrctTreeMenuEvent>;
|
|
770
|
+
/**
|
|
771
|
+
* Controlled expansion (two-way). When non-null it is the single source of
|
|
772
|
+
* truth: node open state derives from it and toggles write back through it, so
|
|
773
|
+
* persisting/restoring is `<strct-tree [(expandedIds)]="ids" />`. When null
|
|
774
|
+
* (default), expansion is uncontrolled — seeded from each node's `expanded`
|
|
775
|
+
* flag and owned internally (backward-compatible).
|
|
776
|
+
*/
|
|
777
|
+
readonly expandedIds: _angular_core.ModelSignal<string[] | null>;
|
|
778
|
+
/** The full set of expanded ids, emitted on every expand / collapse. */
|
|
779
|
+
readonly expandedChange: _angular_core.OutputEmitterRef<string[]>;
|
|
780
|
+
/** Emitted per toggle with the node and its new state. */
|
|
781
|
+
readonly nodeToggled: _angular_core.OutputEmitterRef<{
|
|
782
|
+
node: StrctTreeNodeData;
|
|
783
|
+
expanded: boolean;
|
|
784
|
+
}>;
|
|
785
|
+
/** Stable key for a node: its `id`, or the `label` as a fallback. */
|
|
786
|
+
private readonly keyOf;
|
|
787
|
+
/** Explicit user toggles layered on top of the `node.expanded` seed (uncontrolled). */
|
|
788
|
+
private readonly overrides;
|
|
789
|
+
/** Keys expanded by their `node.expanded` seed (pure — no flash on first render). */
|
|
790
|
+
private readonly seededSet;
|
|
791
|
+
/** The active expanded-key set — controlled `expandedIds`, or seed + overrides. */
|
|
792
|
+
private readonly currentSet;
|
|
793
|
+
/** Whether a node is currently expanded (called by its `StrctTreeNode`). */
|
|
794
|
+
isNodeOpen(node: StrctTreeNodeData): boolean;
|
|
795
|
+
private readonly registeredNodes;
|
|
796
|
+
private readonly activeRoving;
|
|
797
|
+
registerNode(node: StrctTreeNode): void;
|
|
798
|
+
unregisterNode(node: StrctTreeNode): void;
|
|
799
|
+
/** Visible nodes in document order (collapsed subtrees are never registered). */
|
|
800
|
+
private ordered;
|
|
801
|
+
/** Whether this node currently holds the roving tabindex (0). */
|
|
802
|
+
isRovingActive(node: StrctTreeNode): boolean;
|
|
803
|
+
setActive(node: StrctTreeNode): void;
|
|
804
|
+
private focusNode;
|
|
805
|
+
/** Keyboard navigation between visible rows (called from the focused node). */
|
|
806
|
+
navigate(node: StrctTreeNode, key: string): void;
|
|
807
|
+
/** Toggle a node's expansion, updating state and emitting outputs. */
|
|
808
|
+
toggleNode(node: StrctTreeNodeData): void;
|
|
666
809
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctTree, never>;
|
|
667
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTree, "strct-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "nodeMenu": { "alias": "nodeMenu"; "required": false; "isSignal": true; }; }, { "nodeActivated": "nodeActivated"; "nodeMenuSelect": "nodeMenuSelect"; }, never, ["*"], true, never>;
|
|
810
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTree, "strct-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "nodeMenu": { "alias": "nodeMenu"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; }, { "nodeActivated": "nodeActivated"; "nodeMenuSelect": "nodeMenuSelect"; "expandedIds": "expandedIdsChange"; "expandedChange": "expandedChange"; "nodeToggled": "nodeToggled"; }, never, ["*"], true, never>;
|
|
668
811
|
}
|
|
669
812
|
|
|
670
813
|
/** Fixed modal width presets: sm 480 · md 640 · lg 860 · xl 1080 (px). */
|
|
@@ -689,6 +832,8 @@ declare class StrctModal {
|
|
|
689
832
|
readonly size: _angular_core.InputSignal<StrctModalSize>;
|
|
690
833
|
/** Hide the footer slot. */
|
|
691
834
|
readonly hideFooter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
835
|
+
/** Accessible label of the X close button (localizable). */
|
|
836
|
+
readonly closeLabel: _angular_core.InputSignal<string>;
|
|
692
837
|
/**
|
|
693
838
|
* Allow closing via a backdrop click / the Escape key. **Off by default** —
|
|
694
839
|
* a modal closes only through its X button or an explicit action button, so a
|
|
@@ -705,7 +850,7 @@ declare class StrctModal {
|
|
|
705
850
|
private locked;
|
|
706
851
|
constructor();
|
|
707
852
|
close(): void;
|
|
708
|
-
protected onBackdrop(): void;
|
|
853
|
+
protected onBackdrop(event?: Event): void;
|
|
709
854
|
protected onEscape(): void;
|
|
710
855
|
/** Wrap Tab focus within the dialog. */
|
|
711
856
|
protected onTab(event: Event): void;
|
|
@@ -713,7 +858,7 @@ declare class StrctModal {
|
|
|
713
858
|
private focusable;
|
|
714
859
|
private focusInitial;
|
|
715
860
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctModal, never>;
|
|
716
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctModal, "strct-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hideFooter": { "alias": "hideFooter"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[strctModalFooter]"], true, never>;
|
|
861
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctModal, "strct-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "hideFooter": { "alias": "hideFooter"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[strctModalFooter]"], true, never>;
|
|
717
862
|
}
|
|
718
863
|
|
|
719
864
|
/** Marks the drawer's footer action area: `<ng-container strctDrawerFooter>…`. */
|
|
@@ -858,9 +1003,12 @@ declare class StrctStep {
|
|
|
858
1003
|
/** Multi-step flow with a numbered header and Back / Next / Finish controls. */
|
|
859
1004
|
declare class StrctWizard {
|
|
860
1005
|
readonly steps: _angular_core.Signal<readonly StrctStep[]>;
|
|
861
|
-
readonly current: _angular_core.
|
|
1006
|
+
readonly current: _angular_core.ModelSignal<number>;
|
|
862
1007
|
/** Label for the final-step button (default "Finish"). */
|
|
863
1008
|
readonly finishLabel: _angular_core.InputSignal<string>;
|
|
1009
|
+
/** Labels for the Back / Next buttons (localizable). */
|
|
1010
|
+
readonly backLabel: _angular_core.InputSignal<string>;
|
|
1011
|
+
readonly nextLabel: _angular_core.InputSignal<string>;
|
|
864
1012
|
/** Disable Finish and show a busy label while an async submit is in flight. */
|
|
865
1013
|
readonly submitting: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
866
1014
|
/** Show a Cancel button on the left. */
|
|
@@ -879,7 +1027,7 @@ declare class StrctWizard {
|
|
|
879
1027
|
back(): void;
|
|
880
1028
|
finish(): void;
|
|
881
1029
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctWizard, never>;
|
|
882
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctWizard, "strct-wizard", never, { "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; "cancelable": { "alias": "cancelable"; "required": false; "isSignal": true; }; }, { "finished": "finished"; "cancelled": "cancelled"; "stepChange": "stepChange"; }, ["steps"], ["*"], true, never>;
|
|
1030
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctWizard, "strct-wizard", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; "cancelable": { "alias": "cancelable"; "required": false; "isSignal": true; }; }, { "current": "currentChange"; "finished": "finished"; "cancelled": "cancelled"; "stepChange": "stepChange"; }, ["steps"], ["*"], true, never>;
|
|
883
1031
|
}
|
|
884
1032
|
|
|
885
1033
|
/**
|
|
@@ -914,6 +1062,10 @@ type PageToken = number | 'dots';
|
|
|
914
1062
|
* <strct-pagination [total]="240" [pageSize]="20" [(page)]="page" />
|
|
915
1063
|
*/
|
|
916
1064
|
declare class StrctPagination {
|
|
1065
|
+
/** Accessible labels (localizable). */
|
|
1066
|
+
readonly prevLabel: _angular_core.InputSignal<string>;
|
|
1067
|
+
readonly nextLabel: _angular_core.InputSignal<string>;
|
|
1068
|
+
readonly regionLabel: _angular_core.InputSignal<string>;
|
|
917
1069
|
/** Total number of items. */
|
|
918
1070
|
readonly total: _angular_core.InputSignal<number>;
|
|
919
1071
|
/** Rows per page (0 disables paging). */
|
|
@@ -924,7 +1076,7 @@ declare class StrctPagination {
|
|
|
924
1076
|
protected readonly pages: _angular_core.Signal<PageToken[]>;
|
|
925
1077
|
go(target: number): void;
|
|
926
1078
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctPagination, never>;
|
|
927
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctPagination, "strct-pagination", never, { "total": { "alias": "total"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; }, never, never, true, never>;
|
|
1079
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctPagination, "strct-pagination", never, { "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "regionLabel": { "alias": "regionLabel"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; }, { "page": "pageChange"; }, never, never, true, never>;
|
|
928
1080
|
}
|
|
929
1081
|
|
|
930
1082
|
/** A leaf entry under a {@link StrctMenuSection}. */
|
|
@@ -976,6 +1128,113 @@ declare class StrctSectionMenu {
|
|
|
976
1128
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSectionMenu, "strct-section-menu", never, { "sections": { "alias": "sections"; "required": true; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "activeId": "activeIdChange"; "select": "select"; }, never, never, true, never>;
|
|
977
1129
|
}
|
|
978
1130
|
|
|
1131
|
+
/** One searchable command in the palette. */
|
|
1132
|
+
interface StrctCommandItem {
|
|
1133
|
+
/** Stable key; returned with (picked). */
|
|
1134
|
+
id: string;
|
|
1135
|
+
label: string;
|
|
1136
|
+
/** Right-aligned group tag (e.g. a category or section name). */
|
|
1137
|
+
group?: string;
|
|
1138
|
+
/** Leading icon name (StrctIcon set). */
|
|
1139
|
+
icon?: string;
|
|
1140
|
+
/** Right-aligned shortcut hint, rendered as a key chip. */
|
|
1141
|
+
hint?: string;
|
|
1142
|
+
/** Extra search terms beyond label/group. */
|
|
1143
|
+
keywords?: string[];
|
|
1144
|
+
/** Arbitrary payload carried back with (picked). */
|
|
1145
|
+
data?: unknown;
|
|
1146
|
+
}
|
|
1147
|
+
/**
|
|
1148
|
+
* ⌘/Ctrl-K command palette — a spotlight search over app commands or pages.
|
|
1149
|
+
* Mount once near the app root, feed it `items`, and act on `(picked)`:
|
|
1150
|
+
*
|
|
1151
|
+
* <strct-command-palette [items]="commands" [(open)]="paletteOpen"
|
|
1152
|
+
* (picked)="run($event)" />
|
|
1153
|
+
*
|
|
1154
|
+
* Opens via the two-way `open` model or the built-in ⌘/Ctrl-K hotkey
|
|
1155
|
+
* (`hotkey` input). Implements the ARIA combobox/listbox pattern: arrow keys
|
|
1156
|
+
* move the active option, Enter picks, Escape closes; focus returns to the
|
|
1157
|
+
* previously focused element on close.
|
|
1158
|
+
*/
|
|
1159
|
+
declare class StrctCommandPalette {
|
|
1160
|
+
private readonly doc;
|
|
1161
|
+
private readonly inputRef;
|
|
1162
|
+
/** Searchable commands. */
|
|
1163
|
+
readonly items: _angular_core.InputSignal<StrctCommandItem[]>;
|
|
1164
|
+
/** Whether the palette is open (two-way). */
|
|
1165
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1166
|
+
/** Enable the built-in ⌘/Ctrl-K toggle. */
|
|
1167
|
+
readonly hotkey: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1168
|
+
/** Search input placeholder / dialog name (localizable). */
|
|
1169
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1170
|
+
/** Empty-result message prefix (localizable). */
|
|
1171
|
+
readonly emptyText: _angular_core.InputSignal<string>;
|
|
1172
|
+
/** Maximum rendered results. */
|
|
1173
|
+
readonly maxResults: _angular_core.InputSignal<number>;
|
|
1174
|
+
/** Emitted when a command is chosen (Enter or click); the palette closes. */
|
|
1175
|
+
readonly picked: _angular_core.OutputEmitterRef<StrctCommandItem>;
|
|
1176
|
+
protected readonly query: _angular_core.WritableSignal<string>;
|
|
1177
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
1178
|
+
protected readonly listId: string;
|
|
1179
|
+
private previousActive;
|
|
1180
|
+
protected optionId(i: number): string;
|
|
1181
|
+
/** Rank: label prefix > word-start > substring; group/keyword matches last. */
|
|
1182
|
+
protected readonly filtered: _angular_core.Signal<StrctCommandItem[]>;
|
|
1183
|
+
constructor();
|
|
1184
|
+
/** ⌘/Ctrl-K toggle + global Escape while open. */
|
|
1185
|
+
protected onGlobalKey(event: KeyboardEvent): void;
|
|
1186
|
+
protected onType(event: Event): void;
|
|
1187
|
+
protected onKey(event: KeyboardEvent): void;
|
|
1188
|
+
private move;
|
|
1189
|
+
protected pick(item: StrctCommandItem): void;
|
|
1190
|
+
protected close(): void;
|
|
1191
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCommandPalette, never>;
|
|
1192
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCommandPalette, "strct-command-palette", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "maxResults": { "alias": "maxResults"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "picked": "picked"; }, never, never, true, never>;
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
/**
|
|
1196
|
+
* Inline keyboard-key chip: `<strct-kbd>⌘K</strct-kbd>`. Used for shortcut hints
|
|
1197
|
+
* in menus, tooltips and the command palette.
|
|
1198
|
+
*/
|
|
1199
|
+
declare class StrctKbd {
|
|
1200
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctKbd, never>;
|
|
1201
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctKbd, "strct-kbd", never, {}, {}, never, ["*"], true, never>;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
/** Lifecycle of an async (or deferred) validation check. */
|
|
1205
|
+
type StrctValidationStatus = 'idle' | 'checking' | 'ok' | 'warning' | 'error';
|
|
1206
|
+
/**
|
|
1207
|
+
* A first-class "validating… → ok / warning / error (reason)" model, so apps stop
|
|
1208
|
+
* composing a spinner + badge by hand (e.g. live reachability checks while typing).
|
|
1209
|
+
* Consumed by `StrctField`'s `validationState` input and the `[strctCellStatus]`
|
|
1210
|
+
* datagrid-cell helper.
|
|
1211
|
+
*/
|
|
1212
|
+
interface StrctValidationState {
|
|
1213
|
+
status: StrctValidationStatus;
|
|
1214
|
+
/** Optional human-readable reason, shown beside the affordance / in the hint slot. */
|
|
1215
|
+
message?: string;
|
|
1216
|
+
}
|
|
1217
|
+
/** Tone class suffix per validation status (used by field + cell helper styles). */
|
|
1218
|
+
declare function strctValidationTone(status: StrctValidationStatus): string;
|
|
1219
|
+
/** Leading icon name per (non-checking) validation status; '' for idle/checking. */
|
|
1220
|
+
declare function strctValidationIcon(status: StrctValidationStatus): string;
|
|
1221
|
+
/**
|
|
1222
|
+
* Renders the shared "checking / ok / warning / error (reason)" affordance from a
|
|
1223
|
+
* small `StrctValidationState` model — a spinner while checking, then an icon and
|
|
1224
|
+
* an optional message. Drop it into a `StrctDatagrid` cell template for
|
|
1225
|
+
* list-building flows, as an element or an attribute:
|
|
1226
|
+
*
|
|
1227
|
+
* <strct-cell-status [state]="probe(row)" />
|
|
1228
|
+
* <span strct-cell-status [state]="probe(row)"></span>
|
|
1229
|
+
*/
|
|
1230
|
+
declare class StrctCellStatus {
|
|
1231
|
+
/** The validation state to render. */
|
|
1232
|
+
readonly state: _angular_core.InputSignal<StrctValidationState>;
|
|
1233
|
+
protected readonly icon: _angular_core.Signal<string>;
|
|
1234
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCellStatus, never>;
|
|
1235
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCellStatus, "strct-cell-status, [strct-cell-status]", never, { "state": { "alias": "state"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
979
1238
|
/**
|
|
980
1239
|
* Form-field wrapper: a label (with optional required marker), the projected
|
|
981
1240
|
* control, and a hint or error message. It auto-links the control via
|
|
@@ -994,18 +1253,33 @@ declare class StrctField {
|
|
|
994
1253
|
readonly hint: _angular_core.InputSignal<string>;
|
|
995
1254
|
/** Error message (string or first-of array); falsy clears the error state. */
|
|
996
1255
|
readonly error: _angular_core.InputSignal<string | string[] | null | undefined>;
|
|
1256
|
+
/**
|
|
1257
|
+
* Async-validation state rendered as a trailing adornment (spinner / check /
|
|
1258
|
+
* warning) plus its message in the hint/error slot — so apps stop composing a
|
|
1259
|
+
* spinner + badge by hand for live "checking… → ok / warning / error" checks.
|
|
1260
|
+
*/
|
|
1261
|
+
readonly validationState: _angular_core.InputSignal<StrctValidationState | null>;
|
|
997
1262
|
private readonly host;
|
|
998
1263
|
private readonly n;
|
|
999
1264
|
protected readonly hintId: string;
|
|
1000
1265
|
protected readonly errorId: string;
|
|
1001
1266
|
protected readonly controlId: _angular_core.WritableSignal<string>;
|
|
1002
1267
|
protected readonly errorText: _angular_core.Signal<string>;
|
|
1268
|
+
/** Effective validation status ('idle' when no state supplied). */
|
|
1269
|
+
protected readonly stateStatus: _angular_core.Signal<_akcelik_strct.StrctValidationStatus>;
|
|
1270
|
+
/** Whether to show the trailing adornment (an explicit error suppresses it). */
|
|
1271
|
+
protected readonly stateActive: _angular_core.Signal<boolean>;
|
|
1272
|
+
protected readonly stateIcon: _angular_core.Signal<string>;
|
|
1273
|
+
/** Validation message, shown only when there is no explicit error. */
|
|
1274
|
+
protected readonly stateMessage: _angular_core.Signal<string>;
|
|
1275
|
+
/** Invalid when an explicit error is set or the validation state is 'error'. */
|
|
1276
|
+
protected readonly isInvalid: _angular_core.Signal<boolean>;
|
|
1003
1277
|
constructor();
|
|
1004
1278
|
private control;
|
|
1005
1279
|
private link;
|
|
1006
1280
|
private applyAria;
|
|
1007
1281
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctField, never>;
|
|
1008
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctField, "strct-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1282
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctField, "strct-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "validationState": { "alias": "validationState"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1009
1283
|
}
|
|
1010
1284
|
|
|
1011
1285
|
/**
|
|
@@ -1092,6 +1366,56 @@ declare class StrctRadio {
|
|
|
1092
1366
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctRadio, "strct-radio", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1093
1367
|
}
|
|
1094
1368
|
|
|
1369
|
+
/** One segment of a `StrctSegmented`. */
|
|
1370
|
+
interface StrctSegmentedOption {
|
|
1371
|
+
value: unknown;
|
|
1372
|
+
label: string;
|
|
1373
|
+
/** Optional leading icon name (StrctIcon set). */
|
|
1374
|
+
icon?: string;
|
|
1375
|
+
/** Disable just this segment. */
|
|
1376
|
+
disabled?: boolean;
|
|
1377
|
+
}
|
|
1378
|
+
/** Segment size. */
|
|
1379
|
+
type StrctSegmentedSize = 'sm' | 'md';
|
|
1380
|
+
/**
|
|
1381
|
+
* One-of-N selection rendered as a joined segmented control with managed
|
|
1382
|
+
* selected state — distinct from `StrctTabs` (panel switching) and
|
|
1383
|
+
* `StrctButtonGroup` (a visual cluster only). For mode pickers and list filters.
|
|
1384
|
+
* CVA-compatible, so `formControlName` and `[(ngModel)]` both work.
|
|
1385
|
+
*
|
|
1386
|
+
* <strct-segmented
|
|
1387
|
+
* [options]="[{ value: 'all', label: 'All' }, { value: 'active', label: 'Active' }]"
|
|
1388
|
+
* [(ngModel)]="filter" size="sm" />
|
|
1389
|
+
*/
|
|
1390
|
+
declare class StrctSegmented implements ControlValueAccessor {
|
|
1391
|
+
/** The selectable segments. */
|
|
1392
|
+
readonly options: _angular_core.InputSignal<StrctSegmentedOption[]>;
|
|
1393
|
+
/** Segment size. */
|
|
1394
|
+
readonly size: _angular_core.InputSignal<StrctSegmentedSize>;
|
|
1395
|
+
/** Stretch to the full width of the container. */
|
|
1396
|
+
readonly block: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1397
|
+
/** Static disable; forms' setDisabledState also drives the disabled state. */
|
|
1398
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1399
|
+
readonly value: _angular_core.WritableSignal<unknown>;
|
|
1400
|
+
readonly isDisabled: _angular_core.WritableSignal<boolean>;
|
|
1401
|
+
private readonly segs;
|
|
1402
|
+
private onChange;
|
|
1403
|
+
protected onTouched: () => void;
|
|
1404
|
+
constructor();
|
|
1405
|
+
protected isSelected(opt: StrctSegmentedOption): boolean;
|
|
1406
|
+
/** Index of the currently selected (or first enabled) option for roving focus. */
|
|
1407
|
+
private readonly activeIndex;
|
|
1408
|
+
protected rovingIndex(opt: StrctSegmentedOption, i: number): number;
|
|
1409
|
+
protected select(opt: StrctSegmentedOption): void;
|
|
1410
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
1411
|
+
writeValue(value: unknown): void;
|
|
1412
|
+
registerOnChange(fn: (value: unknown) => void): void;
|
|
1413
|
+
registerOnTouched(fn: () => void): void;
|
|
1414
|
+
setDisabledState(isDisabled: boolean): void;
|
|
1415
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctSegmented, never>;
|
|
1416
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctSegmented, "strct-segmented", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1095
1419
|
/**
|
|
1096
1420
|
* Slider built on a native range input — fully accessible, CVA-compatible.
|
|
1097
1421
|
* <strct-range [min]="0" [max]="100" [(ngModel)]="volume" showValue />
|
|
@@ -1530,6 +1854,57 @@ declare class StrctCascadeSelect extends StrctCascadeHost implements ControlValu
|
|
|
1530
1854
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCascadeSelect, "strct-cascade-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1531
1855
|
}
|
|
1532
1856
|
|
|
1857
|
+
/** One row in a `StrctDescriptionList` when driven by the `items` input. */
|
|
1858
|
+
interface StrctDescItem {
|
|
1859
|
+
label: string;
|
|
1860
|
+
value?: string | number;
|
|
1861
|
+
/** Render the value in the monospace face. */
|
|
1862
|
+
mono?: boolean;
|
|
1863
|
+
/** Dim the value (secondary information). */
|
|
1864
|
+
muted?: boolean;
|
|
1865
|
+
}
|
|
1866
|
+
/** Value alignment for the stacked (non-inline) layout. */
|
|
1867
|
+
type StrctDescAlign = 'between' | 'start';
|
|
1868
|
+
/**
|
|
1869
|
+
* Compact definition list: aligned `label : value` rows with an optional trailing
|
|
1870
|
+
* slot. The `inline` variant is the horizontal "stat strip" (label-value pairs in
|
|
1871
|
+
* a row). Replaces the hand-rolled `<dl>` + flex.
|
|
1872
|
+
*
|
|
1873
|
+
* Drive it with the `items` input, or project `<strct-desc>` rows so a value can
|
|
1874
|
+
* host a badge, icon or any rich content:
|
|
1875
|
+
*
|
|
1876
|
+
* <strct-description-list>
|
|
1877
|
+
* <strct-desc label="IPv4" mono>172.16.75.100/24</strct-desc>
|
|
1878
|
+
* <strct-desc label="IPv6"><strct-badge status="success">Enabled</strct-badge></strct-desc>
|
|
1879
|
+
* </strct-description-list>
|
|
1880
|
+
*
|
|
1881
|
+
* <strct-description-list [items]="[{ label: 'Gateway', value: '172.16.75.2', mono: true }]" />
|
|
1882
|
+
*/
|
|
1883
|
+
declare class StrctDescriptionList {
|
|
1884
|
+
/** Rows, as an alternative to projecting `<strct-desc>` children. */
|
|
1885
|
+
readonly items: _angular_core.InputSignal<StrctDescItem[]>;
|
|
1886
|
+
/** Horizontal stat-strip layout instead of stacked rows. */
|
|
1887
|
+
readonly inline: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1888
|
+
/** Value alignment in stacked mode. */
|
|
1889
|
+
readonly align: _angular_core.InputSignal<StrctDescAlign>;
|
|
1890
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDescriptionList, never>;
|
|
1891
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDescriptionList, "strct-description-list", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1892
|
+
}
|
|
1893
|
+
/**
|
|
1894
|
+
* One projected `label → value` row inside a `<strct-description-list>`. The
|
|
1895
|
+
* value is whatever you project, so it can host a badge, icon or formatted text.
|
|
1896
|
+
*/
|
|
1897
|
+
declare class StrctDesc {
|
|
1898
|
+
/** The row's label. */
|
|
1899
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1900
|
+
/** Render the projected value in the monospace face. */
|
|
1901
|
+
readonly mono: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1902
|
+
/** Dim the projected value. */
|
|
1903
|
+
readonly muted: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1904
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDesc, never>;
|
|
1905
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDesc, "strct-desc", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "mono": { "alias": "mono"; "required": false; "isSignal": true; }; "muted": { "alias": "muted"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1533
1908
|
/** Column definition for the table. */
|
|
1534
1909
|
interface StrctColumn {
|
|
1535
1910
|
key: string;
|
|
@@ -1588,6 +1963,21 @@ declare class StrctTable {
|
|
|
1588
1963
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTable, "strct-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, ["cellDefs"], never, true, never>;
|
|
1589
1964
|
}
|
|
1590
1965
|
|
|
1966
|
+
/** Every user-visible / assistive string in the grid, overridable for i18n. */
|
|
1967
|
+
interface StrctDatagridLabels {
|
|
1968
|
+
row: string;
|
|
1969
|
+
rows: string;
|
|
1970
|
+
selected: string;
|
|
1971
|
+
selectAll: string;
|
|
1972
|
+
selectRow: string;
|
|
1973
|
+
openDetail: string;
|
|
1974
|
+
toggleDetail: string;
|
|
1975
|
+
closeDetail: string;
|
|
1976
|
+
rowActions: string;
|
|
1977
|
+
chooseColumns: string;
|
|
1978
|
+
refresh: string;
|
|
1979
|
+
actions: string;
|
|
1980
|
+
}
|
|
1591
1981
|
/** Resolves a stable identity for a row: a property key, or a function. */
|
|
1592
1982
|
type StrctRowId = string | ((row: StrctRow) => unknown);
|
|
1593
1983
|
/** Column definition for the datagrid. */
|
|
@@ -1663,6 +2053,30 @@ declare class StrctDatagrid {
|
|
|
1663
2053
|
* [rowActions]="(row) => [{ label: 'Open', action: () => open(row) }, …]"
|
|
1664
2054
|
*/
|
|
1665
2055
|
readonly rowActions: _angular_core.InputSignal<((row: StrctRow) => StrctMenuItem[]) | null>;
|
|
2056
|
+
/**
|
|
2057
|
+
* Seed the row selection. Each value is a row id (matching {@link rowId}); the
|
|
2058
|
+
* grid checks those rows when this input is set or changes. Requires
|
|
2059
|
+
* `selectable`. Assigning a new array (e.g. when opening a dialog) re-seeds the
|
|
2060
|
+
* selection; the user's subsequent toggles are preserved until the next change.
|
|
2061
|
+
*/
|
|
2062
|
+
readonly initialSelection: _angular_core.InputSignal<readonly unknown[] | null>;
|
|
2063
|
+
/** Override any user-visible / assistive string (partial; merged over defaults). */
|
|
2064
|
+
readonly labels: _angular_core.InputSignal<Partial<StrctDatagridLabels>>;
|
|
2065
|
+
/** Effective labels (defaults + overrides). */
|
|
2066
|
+
protected readonly L: _angular_core.Signal<{
|
|
2067
|
+
row: string;
|
|
2068
|
+
rows: string;
|
|
2069
|
+
selected: string;
|
|
2070
|
+
selectAll: string;
|
|
2071
|
+
selectRow: string;
|
|
2072
|
+
openDetail: string;
|
|
2073
|
+
toggleDetail: string;
|
|
2074
|
+
closeDetail: string;
|
|
2075
|
+
rowActions: string;
|
|
2076
|
+
chooseColumns: string;
|
|
2077
|
+
refresh: string;
|
|
2078
|
+
actions: string;
|
|
2079
|
+
}>;
|
|
1666
2080
|
/** Emitted when the selection changes. */
|
|
1667
2081
|
readonly selectionChange: _angular_core.OutputEmitterRef<StrctRow[]>;
|
|
1668
2082
|
/** Emitted when the refresh button is clicked. */
|
|
@@ -1734,7 +2148,7 @@ declare class StrctDatagrid {
|
|
|
1734
2148
|
private commitSelection;
|
|
1735
2149
|
private compare;
|
|
1736
2150
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDatagrid, never>;
|
|
1737
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPane": { "alias": "detailPane"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnChooser": { "alias": "columnChooser"; "required": false; "isSignal": true; }; "sync": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; }, ["detailDef", "actionBarDef", "cellDefs"], ["[strctDatagridActionBar]"], true, never>;
|
|
2151
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPane": { "alias": "detailPane"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnChooser": { "alias": "columnChooser"; "required": false; "isSignal": true; }; "sync": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "initialSelection": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; }, ["detailDef", "actionBarDef", "cellDefs"], ["[strctDatagridActionBar]"], true, never>;
|
|
1738
2152
|
}
|
|
1739
2153
|
|
|
1740
2154
|
/** Timeline node state colors. */
|
|
@@ -1793,24 +2207,125 @@ declare class StrctSparkline {
|
|
|
1793
2207
|
|
|
1794
2208
|
/** Chart rendering types (line, area, bar). */
|
|
1795
2209
|
type StrctChartType = 'line' | 'area' | 'bar';
|
|
2210
|
+
/** Line interpolation between points. */
|
|
2211
|
+
type StrctChartCurve = 'smooth' | 'linear' | 'step';
|
|
2212
|
+
/** One series in a multi-series chart. */
|
|
2213
|
+
interface StrctChartSeries {
|
|
2214
|
+
data: number[];
|
|
2215
|
+
/** Legend + tooltip name. */
|
|
2216
|
+
label?: string;
|
|
2217
|
+
/** Per-series color; falls back to the chart's `status`. */
|
|
2218
|
+
status?: StrctChartStatus;
|
|
2219
|
+
/** Per-series area fill. */
|
|
2220
|
+
area?: boolean;
|
|
2221
|
+
/** Per-series interpolation; falls back to the chart's `curve`. */
|
|
2222
|
+
curve?: StrctChartCurve;
|
|
2223
|
+
/**
|
|
2224
|
+
* Dashed line — a second visual channel besides color, so two series stay
|
|
2225
|
+
* distinguishable under color-vision deficiency. `true` uses `'5 4'`; pass a
|
|
2226
|
+
* custom SVG dasharray string to tune it.
|
|
2227
|
+
*/
|
|
2228
|
+
dash?: boolean | string;
|
|
2229
|
+
}
|
|
2230
|
+
/** A horizontal reference / threshold line. */
|
|
2231
|
+
interface StrctChartThreshold {
|
|
2232
|
+
value: number;
|
|
2233
|
+
label?: string;
|
|
2234
|
+
/** Line color; default 'warning'. */
|
|
2235
|
+
status?: StrctChartStatus;
|
|
2236
|
+
/** Dashed line; default true. */
|
|
2237
|
+
dashed?: boolean;
|
|
2238
|
+
}
|
|
2239
|
+
interface Pt {
|
|
2240
|
+
x: number;
|
|
2241
|
+
y: number;
|
|
2242
|
+
}
|
|
2243
|
+
interface SeriesRender {
|
|
2244
|
+
color: string;
|
|
2245
|
+
label: string;
|
|
2246
|
+
area: boolean;
|
|
2247
|
+
dash: string | null;
|
|
2248
|
+
pts: Pt[];
|
|
2249
|
+
path: string;
|
|
2250
|
+
areaPath: string;
|
|
2251
|
+
/** Global x-offset (right-aligned) so shorter series line up on the right. */
|
|
2252
|
+
offset: number;
|
|
2253
|
+
data: number[];
|
|
2254
|
+
}
|
|
1796
2255
|
/**
|
|
1797
|
-
* Single-series chart (line / area / bar). Dependency-free SVG,
|
|
1798
|
-
*
|
|
2256
|
+
* Single- or multi-series chart (line / area / bar). Dependency-free SVG,
|
|
2257
|
+
* token-coloured.
|
|
2258
|
+
*
|
|
2259
|
+
* Lines are smooth by default (monotone cubic, no overshoot); set `curve` to
|
|
2260
|
+
* `linear` or `step`. Toggle the gradient fill with `area`, the ambient glow with
|
|
2261
|
+
* `glow`, and turn on `live` for streaming metrics. Pass `series` for multiple
|
|
2262
|
+
* lines with a `legend`; add persistent scale labels with `yAxis`, reference lines
|
|
2263
|
+
* with `thresholds`, a floor with `min`, and thin x labels with `xTicks`. Hover
|
|
2264
|
+
* anywhere for a crosshair + tooltip. The SVG is measured (1:1 coordinates) so
|
|
2265
|
+
* dots and the glow stay crisp at any width. Reduced-motion safe.
|
|
2266
|
+
*
|
|
2267
|
+
* <strct-chart [data]="cpu" area glow [labels]="hours" status="warning" />
|
|
2268
|
+
* <strct-chart [series]="[{data:inArr,label:'In'},{data:outArr,label:'Out'}]" legend />
|
|
1799
2269
|
*/
|
|
1800
2270
|
declare class StrctChart {
|
|
1801
|
-
/**
|
|
2271
|
+
/** Single-series data (or use `series`). */
|
|
1802
2272
|
readonly data: _angular_core.InputSignal<number[]>;
|
|
2273
|
+
/** Multiple series; when set it takes precedence over `data`. */
|
|
2274
|
+
readonly series: _angular_core.InputSignal<StrctChartSeries[] | null>;
|
|
1803
2275
|
/** Visual type / variant. */
|
|
1804
2276
|
readonly type: _angular_core.InputSignal<StrctChartType>;
|
|
2277
|
+
/** Line interpolation. */
|
|
2278
|
+
readonly curve: _angular_core.InputSignal<StrctChartCurve>;
|
|
2279
|
+
/** Fill the area under the line with a soft gradient. */
|
|
2280
|
+
readonly area: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2281
|
+
/** Soft ambient glow on the line and the leading-edge dot. */
|
|
2282
|
+
readonly glow: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2283
|
+
/** Live streaming: the window scrolls left as new points arrive. */
|
|
2284
|
+
readonly live: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2285
|
+
/** Expected ms between updates in live mode (drives the scroll duration). */
|
|
2286
|
+
readonly interval: _angular_core.InputSignal<number>;
|
|
2287
|
+
/** Hover crosshair + value tooltip. */
|
|
2288
|
+
readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2289
|
+
/** Line thickness in pixels. */
|
|
2290
|
+
readonly strokeWidth: _angular_core.InputSignal<number>;
|
|
2291
|
+
/** Show the horizontal gridlines. */
|
|
2292
|
+
readonly grid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2293
|
+
/** Show a dot at each data point (single-series). */
|
|
2294
|
+
readonly dots: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2295
|
+
/** Show a legend (with `series`). */
|
|
2296
|
+
readonly legend: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1805
2297
|
/** X-axis labels. */
|
|
1806
2298
|
readonly labels: _angular_core.InputSignal<string[]>;
|
|
2299
|
+
/** Target number of x labels; null renders every label. */
|
|
2300
|
+
readonly xTicks: _angular_core.InputSignal<number | null>;
|
|
2301
|
+
/** Formatter for x labels. */
|
|
2302
|
+
readonly xFormat: _angular_core.InputSignal<((label: string, index: number) => string) | null>;
|
|
1807
2303
|
/** Visual status color. */
|
|
1808
2304
|
readonly status: _angular_core.InputSignal<StrctChartStatus>;
|
|
1809
2305
|
/** Height in pixels. */
|
|
1810
2306
|
readonly height: _angular_core.InputSignal<number>;
|
|
1811
2307
|
/** Override the top of the value axis (defaults to the data max + headroom). */
|
|
1812
2308
|
readonly max: _angular_core.InputSignal<number | null>;
|
|
1813
|
-
|
|
2309
|
+
/** Override the floor of the value axis (defaults to 0). */
|
|
2310
|
+
readonly min: _angular_core.InputSignal<number | null>;
|
|
2311
|
+
/** Persistent y-axis scale labels. */
|
|
2312
|
+
readonly yAxis: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2313
|
+
/** Approx number of y ticks. */
|
|
2314
|
+
readonly yTicks: _angular_core.InputSignal<number>;
|
|
2315
|
+
/** Formatter for y-axis labels; falls back to `valueFormat`. */
|
|
2316
|
+
readonly axisFormat: _angular_core.InputSignal<((v: number) => string) | null>;
|
|
2317
|
+
/** Horizontal reference / threshold lines. */
|
|
2318
|
+
readonly thresholds: _angular_core.InputSignal<StrctChartThreshold[]>;
|
|
2319
|
+
/** Text shown when there is no data. */
|
|
2320
|
+
readonly emptyText: _angular_core.InputSignal<string>;
|
|
2321
|
+
/** Formatter for the live-mode "Xs ago" tooltip line (receives seconds). */
|
|
2322
|
+
readonly agoFormat: _angular_core.InputSignal<((seconds: number) => string) | null>;
|
|
2323
|
+
/**
|
|
2324
|
+
* Optional formatter for the values shown in the hover tooltip + y-axis flag
|
|
2325
|
+
* (and the delta magnitude). Lets callers add units / fixed precision, e.g.
|
|
2326
|
+
* `[valueFormat]="v => v.toFixed(3) + ' %'"`. When null, the raw value is shown.
|
|
2327
|
+
*/
|
|
2328
|
+
readonly valueFormat: _angular_core.InputSignal<((v: number) => string) | null>;
|
|
1814
2329
|
protected readonly pad: {
|
|
1815
2330
|
l: number;
|
|
1816
2331
|
r: number;
|
|
@@ -1818,14 +2333,48 @@ declare class StrctChart {
|
|
|
1818
2333
|
b: number;
|
|
1819
2334
|
};
|
|
1820
2335
|
protected readonly color: _angular_core.Signal<string>;
|
|
1821
|
-
|
|
2336
|
+
protected readonly showArea: _angular_core.Signal<boolean>;
|
|
2337
|
+
private readonly uid;
|
|
2338
|
+
protected readonly gradId: string;
|
|
2339
|
+
protected readonly clipId: string;
|
|
2340
|
+
/** Measured pixel width → 1:1 viewBox so dots / glow stay crisp at any size. */
|
|
2341
|
+
protected readonly width: _angular_core.WritableSignal<number>;
|
|
2342
|
+
private readonly svgRef;
|
|
2343
|
+
protected readonly slidePx: _angular_core.WritableSignal<number>;
|
|
2344
|
+
protected readonly sliding: _angular_core.WritableSignal<boolean>;
|
|
2345
|
+
protected readonly drawOn: _angular_core.WritableSignal<boolean>;
|
|
2346
|
+
private firstData;
|
|
2347
|
+
/** Reactive OS motion preference (tracks live changes, not just first load). */
|
|
2348
|
+
private readonly reduceMotion;
|
|
2349
|
+
protected readonly hoverIdx: _angular_core.WritableSignal<number | null>;
|
|
2350
|
+
constructor();
|
|
2351
|
+
private readonly seriesResolved;
|
|
2352
|
+
protected readonly isMulti: _angular_core.Signal<boolean>;
|
|
2353
|
+
/** All data arrays (multi or single). */
|
|
2354
|
+
private readonly allData;
|
|
2355
|
+
protected readonly isEmpty: _angular_core.Signal<boolean>;
|
|
2356
|
+
/** Number of x slots. */
|
|
2357
|
+
private readonly nx;
|
|
2358
|
+
/** Left padding: wider when the y-axis labels are shown. */
|
|
2359
|
+
protected readonly pl: _angular_core.Signal<number>;
|
|
2360
|
+
private chartW;
|
|
1822
2361
|
private chartH;
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
2362
|
+
/** Horizontal gap between two data points, in px. */
|
|
2363
|
+
private stepX;
|
|
2364
|
+
private readonly yMax;
|
|
2365
|
+
private readonly yMin;
|
|
2366
|
+
private yOf;
|
|
2367
|
+
protected readonly points: _angular_core.Signal<Pt[]>;
|
|
2368
|
+
protected readonly head: _angular_core.Signal<Pt | null>;
|
|
2369
|
+
private readonly plotPoints;
|
|
2370
|
+
protected readonly linePath: _angular_core.Signal<string>;
|
|
2371
|
+
protected readonly areaPath: _angular_core.Signal<string>;
|
|
2372
|
+
protected readonly multiSeries: _angular_core.Signal<SeriesRender[]>;
|
|
2373
|
+
protected readonly legendItems: _angular_core.Signal<{
|
|
2374
|
+
label: string;
|
|
2375
|
+
color: string;
|
|
2376
|
+
dash: string | null;
|
|
1826
2377
|
}[]>;
|
|
1827
|
-
protected readonly linePoints: _angular_core.Signal<string>;
|
|
1828
|
-
protected readonly areaPoints: _angular_core.Signal<string>;
|
|
1829
2378
|
protected readonly bars: _angular_core.Signal<{
|
|
1830
2379
|
x: number;
|
|
1831
2380
|
y: number;
|
|
@@ -1833,8 +2382,59 @@ declare class StrctChart {
|
|
|
1833
2382
|
h: number;
|
|
1834
2383
|
}[]>;
|
|
1835
2384
|
protected readonly gridY: _angular_core.Signal<number[]>;
|
|
2385
|
+
private fmtAxis;
|
|
2386
|
+
protected readonly yAxisTicks: _angular_core.Signal<{
|
|
2387
|
+
value: number;
|
|
2388
|
+
y: number;
|
|
2389
|
+
text: string;
|
|
2390
|
+
}[]>;
|
|
2391
|
+
protected readonly thresholdLines: _angular_core.Signal<{
|
|
2392
|
+
y: number;
|
|
2393
|
+
color: string;
|
|
2394
|
+
dashed: boolean;
|
|
2395
|
+
label: string;
|
|
2396
|
+
}[]>;
|
|
2397
|
+
protected readonly displayLabels: _angular_core.Signal<{
|
|
2398
|
+
text: string;
|
|
2399
|
+
i: number;
|
|
2400
|
+
}[]>;
|
|
2401
|
+
protected readonly hoverX: _angular_core.Signal<number | null>;
|
|
2402
|
+
protected readonly hoverPt: _angular_core.Signal<Pt | null>;
|
|
2403
|
+
protected readonly hoverValue: _angular_core.Signal<number | "">;
|
|
2404
|
+
/** hoverValue run through valueFormat (unit / precision), else the raw value. */
|
|
2405
|
+
protected readonly hoverValueText: _angular_core.Signal<string>;
|
|
2406
|
+
/** Delta magnitude, formatted the same way so its unit matches the value. */
|
|
2407
|
+
protected readonly absDeltaText: _angular_core.Signal<string>;
|
|
2408
|
+
protected readonly hoverLabel: _angular_core.Signal<string>;
|
|
2409
|
+
/** Change from the previous point (single-series; null at the first point). */
|
|
2410
|
+
protected readonly hoverDelta: _angular_core.Signal<number | null>;
|
|
2411
|
+
protected readonly absDelta: _angular_core.Signal<number>;
|
|
2412
|
+
/** Second tooltip line: "Xs ago" while live, else the x label. */
|
|
2413
|
+
protected readonly hoverMeta: _angular_core.Signal<string>;
|
|
2414
|
+
/** Per-series value at the hovered index (multi-series tooltip). */
|
|
2415
|
+
protected readonly hoverRows: _angular_core.Signal<{
|
|
2416
|
+
label: string;
|
|
2417
|
+
color: string;
|
|
2418
|
+
value: number | null;
|
|
2419
|
+
text: string;
|
|
2420
|
+
}[]>;
|
|
2421
|
+
/** Per-series hover dots (multi-series). */
|
|
2422
|
+
protected readonly hoverDots: _angular_core.Signal<{
|
|
2423
|
+
x: number;
|
|
2424
|
+
y: number;
|
|
2425
|
+
color: string;
|
|
2426
|
+
}[]>;
|
|
2427
|
+
/** Screen-reader summary of the whole chart (role="img" name). */
|
|
2428
|
+
protected readonly chartAria: _angular_core.Signal<string>;
|
|
2429
|
+
/** aria-live text announcing the hovered / keyboard-selected point. */
|
|
2430
|
+
protected readonly srText: _angular_core.Signal<string>;
|
|
2431
|
+
/** Pixel x of a data index (shared by the plot and the x-axis labels). */
|
|
2432
|
+
protected xOf(i: number): number;
|
|
2433
|
+
/** Keyboard access to the crosshair: arrows walk the points. */
|
|
2434
|
+
protected onKey(event: KeyboardEvent): void;
|
|
2435
|
+
protected onMove(event: PointerEvent): void;
|
|
1836
2436
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctChart, never>;
|
|
1837
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctChart, "strct-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2437
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctChart, "strct-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "curve": { "alias": "curve"; "required": false; "isSignal": true; }; "area": { "alias": "area"; "required": false; "isSignal": true; }; "glow": { "alias": "glow"; "required": false; "isSignal": true; }; "live": { "alias": "live"; "required": false; "isSignal": true; }; "interval": { "alias": "interval"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "grid": { "alias": "grid"; "required": false; "isSignal": true; }; "dots": { "alias": "dots"; "required": false; "isSignal": true; }; "legend": { "alias": "legend"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "xTicks": { "alias": "xTicks"; "required": false; "isSignal": true; }; "xFormat": { "alias": "xFormat"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "yAxis": { "alias": "yAxis"; "required": false; "isSignal": true; }; "yTicks": { "alias": "yTicks"; "required": false; "isSignal": true; }; "axisFormat": { "alias": "axisFormat"; "required": false; "isSignal": true; }; "thresholds": { "alias": "thresholds"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "agoFormat": { "alias": "agoFormat"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1838
2438
|
}
|
|
1839
2439
|
|
|
1840
2440
|
/** A single weighted slice of a donut chart. */
|
|
@@ -1844,9 +2444,13 @@ interface StrctDonutSegment {
|
|
|
1844
2444
|
color?: string;
|
|
1845
2445
|
}
|
|
1846
2446
|
/**
|
|
1847
|
-
* Donut / ring chart from weighted segments.
|
|
1848
|
-
*
|
|
1849
|
-
*
|
|
2447
|
+
* Donut / ring chart from weighted segments. Rounded, gapped slices with a
|
|
2448
|
+
* sweep-in animation; hover a slice (or its legend row) to highlight it and read
|
|
2449
|
+
* its value + share in the center. Dependency-free SVG, token-coloured.
|
|
2450
|
+
*
|
|
2451
|
+
* <strct-donut
|
|
2452
|
+
* [segments]="[{ value: 36, label: 'Running' }, { value: 8, label: 'Stopped' }]"
|
|
2453
|
+
* centerValue="44" centerLabel="VMs" legend />
|
|
1850
2454
|
*/
|
|
1851
2455
|
declare class StrctDonut {
|
|
1852
2456
|
/** Weighted segments. */
|
|
@@ -1855,20 +2459,38 @@ declare class StrctDonut {
|
|
|
1855
2459
|
readonly size: _angular_core.InputSignal<number>;
|
|
1856
2460
|
/** Stroke thickness in pixels. */
|
|
1857
2461
|
readonly thickness: _angular_core.InputSignal<number>;
|
|
1858
|
-
/** Value shown in the donut center. */
|
|
2462
|
+
/** Value shown in the donut center (when no slice is hovered). */
|
|
1859
2463
|
readonly centerValue: _angular_core.InputSignal<string | number>;
|
|
1860
|
-
/** Label shown in the donut center. */
|
|
2464
|
+
/** Label shown in the donut center (when no slice is hovered). */
|
|
1861
2465
|
readonly centerLabel: _angular_core.InputSignal<string>;
|
|
2466
|
+
/** Show a legend (color · label · value · %) beside the ring. */
|
|
2467
|
+
readonly legend: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2468
|
+
/** Gap between slices, in degrees. */
|
|
2469
|
+
readonly gap: _angular_core.InputSignal<number>;
|
|
2470
|
+
/** Hover highlight + center readout. */
|
|
2471
|
+
readonly interactive: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2472
|
+
protected readonly hovered: _angular_core.WritableSignal<number | null>;
|
|
1862
2473
|
protected readonly half: _angular_core.Signal<number>;
|
|
1863
2474
|
protected readonly radius: _angular_core.Signal<number>;
|
|
1864
2475
|
protected readonly circumference: _angular_core.Signal<number>;
|
|
2476
|
+
private readonly total;
|
|
1865
2477
|
protected readonly arcs: _angular_core.Signal<{
|
|
1866
2478
|
color: string;
|
|
1867
|
-
|
|
2479
|
+
label: string;
|
|
2480
|
+
value: number;
|
|
2481
|
+
pct: number;
|
|
2482
|
+
dash: string;
|
|
1868
2483
|
offset: number;
|
|
1869
2484
|
}[]>;
|
|
2485
|
+
protected readonly centerMain: _angular_core.Signal<string | number>;
|
|
2486
|
+
protected readonly centerSub: _angular_core.Signal<string>;
|
|
2487
|
+
protected readonly centerColor: _angular_core.Signal<string>;
|
|
2488
|
+
/** Screen-reader summary (role="img" name): every slice with value + share. */
|
|
2489
|
+
protected readonly ariaSummary: _angular_core.Signal<string>;
|
|
2490
|
+
protected enter(i: number): void;
|
|
2491
|
+
protected leave(): void;
|
|
1870
2492
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDonut, never>;
|
|
1871
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDonut, "strct-donut", never, { "segments": { "alias": "segments"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "centerValue": { "alias": "centerValue"; "required": false; "isSignal": true; }; "centerLabel": { "alias": "centerLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2493
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDonut, "strct-donut", never, { "segments": { "alias": "segments"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "centerValue": { "alias": "centerValue"; "required": false; "isSignal": true; }; "centerLabel": { "alias": "centerLabel"; "required": false; "isSignal": true; }; "legend": { "alias": "legend"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1872
2494
|
}
|
|
1873
2495
|
|
|
1874
2496
|
/**
|
|
@@ -1880,6 +2502,13 @@ declare class StrctGauge {
|
|
|
1880
2502
|
readonly value: _angular_core.InputSignal<number>;
|
|
1881
2503
|
/** Visual status color. */
|
|
1882
2504
|
readonly status: _angular_core.InputSignal<StrctChartStatus>;
|
|
2505
|
+
/**
|
|
2506
|
+
* Optional value-driven thresholds. When set, the gauge picks its own status
|
|
2507
|
+
* from the value: `value >= critical` → critical, `>= warning` → warning, else
|
|
2508
|
+
* the healthy base (`status`, or `'success'` when `status` is left at its
|
|
2509
|
+
* default `'accent'`).
|
|
2510
|
+
*/
|
|
2511
|
+
readonly thresholds: _angular_core.InputSignal<StrctThresholds | null>;
|
|
1883
2512
|
/** Label text. */
|
|
1884
2513
|
readonly label: _angular_core.InputSignal<string>;
|
|
1885
2514
|
/** Size variant. */
|
|
@@ -1889,12 +2518,72 @@ declare class StrctGauge {
|
|
|
1889
2518
|
protected readonly clamped: _angular_core.Signal<number>;
|
|
1890
2519
|
protected readonly half: _angular_core.Signal<number>;
|
|
1891
2520
|
protected readonly radius: _angular_core.Signal<number>;
|
|
2521
|
+
/** Status after applying thresholds (falls back to `status` when none set). */
|
|
2522
|
+
protected readonly resolvedStatus: _angular_core.Signal<StrctChartStatus>;
|
|
1892
2523
|
protected readonly color: _angular_core.Signal<string>;
|
|
1893
2524
|
private readonly circumference;
|
|
1894
2525
|
protected readonly trackDash: _angular_core.Signal<string>;
|
|
1895
2526
|
protected readonly valueDash: _angular_core.Signal<string>;
|
|
1896
2527
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctGauge, never>;
|
|
1897
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctGauge, "strct-gauge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2528
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctGauge, "strct-gauge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "thresholds": { "alias": "thresholds"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2529
|
+
}
|
|
2530
|
+
|
|
2531
|
+
/** One endpoint in a `StrctFlow`. */
|
|
2532
|
+
interface StrctFlowNode {
|
|
2533
|
+
/** Stable identity (used as the @for track key). */
|
|
2534
|
+
id: string;
|
|
2535
|
+
/** Primary terminal label. */
|
|
2536
|
+
label: string;
|
|
2537
|
+
/** Optional secondary line under the label. */
|
|
2538
|
+
sublabel?: string;
|
|
2539
|
+
/** Optional role tag (e.g. "ACTIVE", "STANDBY"). */
|
|
2540
|
+
role?: string;
|
|
2541
|
+
/** Optional status dot tone for this terminal. */
|
|
2542
|
+
status?: StrctStatus;
|
|
2543
|
+
}
|
|
2544
|
+
/** Direction of travel for the animated flow. */
|
|
2545
|
+
type StrctFlowDirection = 'forward' | 'reverse' | 'both';
|
|
2546
|
+
/** Axis the terminals are laid out along. */
|
|
2547
|
+
type StrctFlowOrientation = 'horizontal' | 'vertical';
|
|
2548
|
+
/**
|
|
2549
|
+
* Shows a connection between two (or N) endpoints with an optional animated
|
|
2550
|
+
* "flow" — moving dots travelling along the connector — to represent live data
|
|
2551
|
+
* movement (replication, sync, a pipeline).
|
|
2552
|
+
*
|
|
2553
|
+
* <strct-flow
|
|
2554
|
+
* [nodes]="[
|
|
2555
|
+
* { id: 'a', label: 'node01', role: 'ACTIVE', status: 'success' },
|
|
2556
|
+
* { id: 'b', label: 'node02', role: 'STANDBY', status: 'accent' }
|
|
2557
|
+
* ]"
|
|
2558
|
+
* [live]="true" label="live replication · 0 lag" status="success" />
|
|
2559
|
+
*
|
|
2560
|
+
* When `live` is off (or the user prefers reduced motion) the connector is a
|
|
2561
|
+
* static gradient with a direction arrow instead of moving dots.
|
|
2562
|
+
*/
|
|
2563
|
+
declare class StrctFlow {
|
|
2564
|
+
/** Ordered endpoints. */
|
|
2565
|
+
readonly nodes: _angular_core.InputSignal<StrctFlowNode[]>;
|
|
2566
|
+
/** Animate the flow (packets travel along the connector). */
|
|
2567
|
+
readonly live: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2568
|
+
/** Direction of travel. */
|
|
2569
|
+
readonly direction: _angular_core.InputSignal<StrctFlowDirection>;
|
|
2570
|
+
/** Caption under the connector (e.g. "live replication", "0 lag"). */
|
|
2571
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
2572
|
+
/** Connector + packet color. */
|
|
2573
|
+
readonly status: _angular_core.InputSignal<StrctStatus>;
|
|
2574
|
+
/** Layout axis. */
|
|
2575
|
+
readonly orientation: _angular_core.InputSignal<StrctFlowOrientation>;
|
|
2576
|
+
/** A flow needs at least two terminals to animate. */
|
|
2577
|
+
protected readonly connected: _angular_core.Signal<boolean>;
|
|
2578
|
+
protected readonly animated: _angular_core.Signal<boolean>;
|
|
2579
|
+
/** Whether to show packets / arrow in the given travel direction. */
|
|
2580
|
+
protected showArrow(dir: 'forward' | 'reverse'): boolean;
|
|
2581
|
+
/** Caption text, falling back to a "no connection" hint for a lone terminal. */
|
|
2582
|
+
protected readonly caption: _angular_core.Signal<string>;
|
|
2583
|
+
/** Human-readable summary for assistive tech. */
|
|
2584
|
+
protected readonly ariaLabel: _angular_core.Signal<string>;
|
|
2585
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctFlow, never>;
|
|
2586
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctFlow, "strct-flow", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "live": { "alias": "live"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1898
2587
|
}
|
|
1899
2588
|
|
|
1900
2589
|
/** Accent colour for a metric tile. */
|
|
@@ -1935,6 +2624,37 @@ declare class StrctMetricTile {
|
|
|
1935
2624
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctMetricTile, "strct-metric-tile", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "delta": { "alias": "delta"; "required": false; "isSignal": true; }; "deltaSuffix": { "alias": "deltaSuffix"; "required": false; "isSignal": true; }; "invertDelta": { "alias": "invertDelta"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1936
2625
|
}
|
|
1937
2626
|
|
|
2627
|
+
/**
|
|
2628
|
+
* Page-level status summary banner: a tone-colored surface with a leading icon
|
|
2629
|
+
* chip, a heading, a description, and optional right-aligned metadata / actions.
|
|
2630
|
+
*
|
|
2631
|
+
* Distinct from `StrctAlert` (a dismissible inline notification) and
|
|
2632
|
+
* `StrctSignpost` (a popover). Use it for the prominent "Protected", "All systems
|
|
2633
|
+
* healthy", "Clock synchronized" summaries apps otherwise hand-roll.
|
|
2634
|
+
*
|
|
2635
|
+
* <strct-hero status="success" icon="shield" heading="High availability is on">
|
|
2636
|
+
* The standby node can take over if this one fails.
|
|
2637
|
+
* <div strctHeroMeta><strct-badge status="success">HA ON</strct-badge></div>
|
|
2638
|
+
* <div strctHeroActions>
|
|
2639
|
+
* <button strct-button size="sm">Switch over</button>
|
|
2640
|
+
* </div>
|
|
2641
|
+
* </strct-hero>
|
|
2642
|
+
*/
|
|
2643
|
+
declare class StrctHero {
|
|
2644
|
+
/** Tone: drives the left rail + icon chip color. */
|
|
2645
|
+
readonly status: _angular_core.InputSignal<StrctStatus>;
|
|
2646
|
+
/** Leading icon name (StrctIcon set). Falls back to a per-status default. */
|
|
2647
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
2648
|
+
/** The headline; exposed as the banner's accessible name. */
|
|
2649
|
+
readonly heading: _angular_core.InputSignal<string>;
|
|
2650
|
+
/** Tighter padding for secondary placements. */
|
|
2651
|
+
readonly dense: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2652
|
+
protected readonly headingId: string;
|
|
2653
|
+
protected readonly resolvedIcon: _angular_core.Signal<string>;
|
|
2654
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctHero, never>;
|
|
2655
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctHero, "strct-hero", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "dense": { "alias": "dense"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[strctHeroMeta]", "[strctHeroActions]"], true, never>;
|
|
2656
|
+
}
|
|
2657
|
+
|
|
1938
2658
|
/** Alert visual types. */
|
|
1939
2659
|
type StrctAlertType = 'info' | 'success' | 'warning' | 'critical';
|
|
1940
2660
|
/** Inline contextual banner. `<strct-alert type="warning">…</strct-alert>`. */
|
|
@@ -1943,11 +2663,13 @@ declare class StrctAlert {
|
|
|
1943
2663
|
readonly type: _angular_core.InputSignal<StrctAlertType>;
|
|
1944
2664
|
/** Show a dismiss button. */
|
|
1945
2665
|
readonly closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2666
|
+
/** Accessible label of the dismiss button (localizable). */
|
|
2667
|
+
readonly dismissLabel: _angular_core.InputSignal<string>;
|
|
1946
2668
|
/** Emitted when the alert is dismissed. */
|
|
1947
2669
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
1948
2670
|
protected readonly icon: _angular_core.Signal<"info" | "success" | "warning" | "critical">;
|
|
1949
2671
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctAlert, never>;
|
|
1950
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctAlert, "strct-alert", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
|
|
2672
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctAlert, "strct-alert", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
|
|
1951
2673
|
}
|
|
1952
2674
|
|
|
1953
2675
|
/** Tooltip placement relative to the host element. */
|
|
@@ -2033,10 +2755,12 @@ declare class StrctToastService {
|
|
|
2033
2755
|
}
|
|
2034
2756
|
/** Renders the toast stack. Place once, typically just inside the app shell. */
|
|
2035
2757
|
declare class StrctToastOutlet {
|
|
2758
|
+
/** Accessible name of the notifications region (localizable). */
|
|
2759
|
+
readonly regionLabel: _angular_core.InputSignal<string>;
|
|
2036
2760
|
protected readonly service: StrctToastService;
|
|
2037
2761
|
protected icon(type: StrctToastType): string;
|
|
2038
2762
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctToastOutlet, never>;
|
|
2039
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctToastOutlet, "strct-toast-outlet", never, {}, {}, never, never, true, never>;
|
|
2763
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctToastOutlet, "strct-toast-outlet", never, { "regionLabel": { "alias": "regionLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2040
2764
|
}
|
|
2041
2765
|
|
|
2042
2766
|
/** Preset zero/permission/error states with a sensible icon + tone. */
|
|
@@ -2065,5 +2789,5 @@ declare class StrctEmptyState {
|
|
|
2065
2789
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctEmptyState, "strct-empty-state", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2066
2790
|
}
|
|
2067
2791
|
|
|
2068
|
-
export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_MASKS, STRCT_PALETTES, STRCT_RAW_ICONS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctChart, StrctCheckbox, StrctChips, StrctColorPicker, StrctCombobox, StrctContextMenu, StrctContextMenuTrigger, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctEmptyState, StrctField, StrctFile, StrctFooter, StrctGauge, StrctHeader, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKnob, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRating, StrctRowDetailDef, StrctSectionMenu, StrctShell, StrctShellService, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWizard, registerStrctIcon };
|
|
2069
|
-
export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartStatus, StrctChartType, StrctColumn, StrctDatagridColumn, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctIconBadge, StrctKnobStatus, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuSection, StrctMetricStatus, StrctModalSize, StrctMode, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressStatus, StrctRailItem, StrctRailStatus, StrctRow, StrctRowId, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctTagStatus, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn };
|
|
2792
|
+
export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_MASKS, STRCT_PALETTES, STRCT_RAW_ICONS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctEmptyState, StrctField, StrctFile, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRating, StrctRowDetailDef, StrctSectionMenu, StrctSegmented, StrctShell, StrctShellService, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWizard, registerStrctIcon, strctValidationIcon, strctValidationTone };
|
|
2793
|
+
export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartCurve, StrctChartSeries, StrctChartStatus, StrctChartThreshold, StrctChartType, StrctColumn, StrctCommandItem, StrctDatagridColumn, StrctDatagridLabels, StrctDescAlign, StrctDescItem, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFlowDirection, StrctFlowNode, StrctFlowOrientation, StrctIconBadge, StrctKnobStatus, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuSection, StrctMetricStatus, StrctModalSize, StrctMode, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProgressStatus, StrctRailItem, StrctRailStatus, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctTagStatus, StrctThresholds, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus };
|