@akcelik/strct 5.14.0 → 5.16.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 +438 -45
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/_tokens.scss +31 -30
- package/types/akcelik-strct.d.ts +115 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akcelik/strct",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.16.0",
|
|
4
4
|
"description": "UIStruct — a standalone Angular component library with a tokenised, multi-palette theme system, built for datacenter / infrastructure management UIs.",
|
|
5
5
|
"author": "Serkan Akcelik <serkan.akcelik@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
package/styles/_tokens.scss
CHANGED
|
@@ -81,11 +81,6 @@
|
|
|
81
81
|
--t4: rgba(255, 255, 255, 0.15);
|
|
82
82
|
--inv: #0e1015;
|
|
83
83
|
--acc: #7b9ec8;
|
|
84
|
-
--acc-m: rgba(123, 158, 200, 0.12);
|
|
85
|
-
--acc-s: rgba(123, 158, 200, 0.06);
|
|
86
|
-
--acc50: rgba(123, 158, 200, 0.5);
|
|
87
|
-
--acc30: rgba(123, 158, 200, 0.3);
|
|
88
|
-
--acc18: rgba(123, 158, 200, 0.18);
|
|
89
84
|
--success: #7da87e;
|
|
90
85
|
--success-bg: rgba(125, 168, 126, 0.12);
|
|
91
86
|
--warning: #bfae6a;
|
|
@@ -151,11 +146,6 @@
|
|
|
151
146
|
--t4: rgba(0, 0, 0, 0.14);
|
|
152
147
|
--inv: #ffffff;
|
|
153
148
|
--acc: #4a6b8f;
|
|
154
|
-
--acc-m: rgba(74, 107, 143, 0.1);
|
|
155
|
-
--acc-s: rgba(74, 107, 143, 0.05);
|
|
156
|
-
--acc50: rgba(74, 107, 143, 0.5);
|
|
157
|
-
--acc30: rgba(74, 107, 143, 0.3);
|
|
158
|
-
--acc18: rgba(74, 107, 143, 0.18);
|
|
159
149
|
--success: #4c7a4f;
|
|
160
150
|
--success-bg: rgba(76, 122, 79, 0.12);
|
|
161
151
|
--warning: #7d6f30;
|
|
@@ -221,11 +211,6 @@
|
|
|
221
211
|
--t4: rgba(255, 225, 195, 0.14);
|
|
222
212
|
--inv: #12100d;
|
|
223
213
|
--acc: #c49a6c;
|
|
224
|
-
--acc-m: rgba(196, 154, 108, 0.12);
|
|
225
|
-
--acc-s: rgba(196, 154, 108, 0.06);
|
|
226
|
-
--acc50: rgba(196, 154, 108, 0.5);
|
|
227
|
-
--acc30: rgba(196, 154, 108, 0.3);
|
|
228
|
-
--acc18: rgba(196, 154, 108, 0.18);
|
|
229
214
|
--success: #8aaa7a;
|
|
230
215
|
--success-bg: rgba(138, 170, 122, 0.12);
|
|
231
216
|
--warning: #c4b060;
|
|
@@ -291,11 +276,6 @@
|
|
|
291
276
|
--t4: rgba(80, 55, 30, 0.14);
|
|
292
277
|
--inv: #fdfcfa;
|
|
293
278
|
--acc: #7d5e3f;
|
|
294
|
-
--acc-m: rgba(125, 94, 63, 0.1);
|
|
295
|
-
--acc-s: rgba(125, 94, 63, 0.05);
|
|
296
|
-
--acc50: rgba(125, 94, 63, 0.5);
|
|
297
|
-
--acc30: rgba(125, 94, 63, 0.3);
|
|
298
|
-
--acc18: rgba(125, 94, 63, 0.18);
|
|
299
279
|
--success: #4c7a46;
|
|
300
280
|
--success-bg: rgba(76, 122, 70, 0.12);
|
|
301
281
|
--warning: #7d6e2c;
|
|
@@ -361,11 +341,6 @@
|
|
|
361
341
|
--t4: rgba(195, 222, 210, 0.14);
|
|
362
342
|
--inv: #0d1210;
|
|
363
343
|
--acc: #7aab90;
|
|
364
|
-
--acc-m: rgba(122, 171, 144, 0.12);
|
|
365
|
-
--acc-s: rgba(122, 171, 144, 0.06);
|
|
366
|
-
--acc50: rgba(122, 171, 144, 0.5);
|
|
367
|
-
--acc30: rgba(122, 171, 144, 0.3);
|
|
368
|
-
--acc18: rgba(122, 171, 144, 0.18);
|
|
369
344
|
--success: #82aa82;
|
|
370
345
|
--success-bg: rgba(130, 170, 130, 0.12);
|
|
371
346
|
--warning: #b8ac6a;
|
|
@@ -431,11 +406,6 @@
|
|
|
431
406
|
--t4: rgba(35, 65, 45, 0.14);
|
|
432
407
|
--inv: #fafcfb;
|
|
433
408
|
--acc: #3f7355;
|
|
434
|
-
--acc-m: rgba(63, 115, 85, 0.1);
|
|
435
|
-
--acc-s: rgba(63, 115, 85, 0.05);
|
|
436
|
-
--acc50: rgba(63, 115, 85, 0.5);
|
|
437
|
-
--acc30: rgba(63, 115, 85, 0.3);
|
|
438
|
-
--acc18: rgba(63, 115, 85, 0.18);
|
|
439
409
|
--success: #467a48;
|
|
440
410
|
--success-bg: rgba(70, 122, 72, 0.12);
|
|
441
411
|
--warning: #6f682d;
|
|
@@ -474,6 +444,37 @@
|
|
|
474
444
|
--disabled-opacity: 0.5;
|
|
475
445
|
}
|
|
476
446
|
|
|
447
|
+
// A product's own accent, independent of the operator's palette (FR-52-03).
|
|
448
|
+
// Every translucent accent tint is derived from --acc rather than written out
|
|
449
|
+
// per palette, so a subtree that sets --acc on a [data-accent] element remaps
|
|
450
|
+
// badges, check marks, links, focus rings and selection fills with it — no
|
|
451
|
+
// second set of tokens, and no component has to know the product's name.
|
|
452
|
+
//
|
|
453
|
+
// [data-accent='backup'] { --acc: #2f8f7a; }
|
|
454
|
+
// [data-theme='dark'] [data-accent='backup'] { --acc: #58b9a3; }
|
|
455
|
+
//
|
|
456
|
+
// The mixes are the values these tokens have always had: 12/6% in dark and
|
|
457
|
+
// 10/5% in light, 50/30/18% in both. The colour is the app's to pick, so its
|
|
458
|
+
// contrast is the app's to check: >= 4.5:1 on --bg-0/1/2 for text and marks,
|
|
459
|
+
// >= 3:1 on --hdr for a line or a chip (the palette's own light accent is
|
|
460
|
+
// 2.67-2.85:1 on its header, which is why a header shade is a second value).
|
|
461
|
+
[data-palette][data-theme='dark'],
|
|
462
|
+
[data-theme='dark'] [data-accent] {
|
|
463
|
+
--acc-m: color-mix(in srgb, var(--acc) 12%, transparent);
|
|
464
|
+
--acc-s: color-mix(in srgb, var(--acc) 6%, transparent);
|
|
465
|
+
--acc50: color-mix(in srgb, var(--acc) 50%, transparent);
|
|
466
|
+
--acc30: color-mix(in srgb, var(--acc) 30%, transparent);
|
|
467
|
+
--acc18: color-mix(in srgb, var(--acc) 18%, transparent);
|
|
468
|
+
}
|
|
469
|
+
[data-palette][data-theme='light'],
|
|
470
|
+
[data-theme='light'] [data-accent] {
|
|
471
|
+
--acc-m: color-mix(in srgb, var(--acc) 10%, transparent);
|
|
472
|
+
--acc-s: color-mix(in srgb, var(--acc) 5%, transparent);
|
|
473
|
+
--acc50: color-mix(in srgb, var(--acc) 50%, transparent);
|
|
474
|
+
--acc30: color-mix(in srgb, var(--acc) 30%, transparent);
|
|
475
|
+
--acc18: color-mix(in srgb, var(--acc) 18%, transparent);
|
|
476
|
+
}
|
|
477
|
+
|
|
477
478
|
// Honour the OS "increase contrast" preference (low-vision users / bright ambient
|
|
478
479
|
// light): strengthen borders and lift secondary/tertiary text toward primary.
|
|
479
480
|
// Only active when the OS asks, so the default look is untouched. Scoped by
|
package/types/akcelik-strct.d.ts
CHANGED
|
@@ -1241,11 +1241,20 @@ declare class StrctCard {
|
|
|
1241
1241
|
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1242
1242
|
/** Allow collapsing to just the header (a chevron appears in the header). */
|
|
1243
1243
|
readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1244
|
+
/**
|
|
1245
|
+
* Opt-in: a click anywhere on `strct-card-header` toggles the card, which
|
|
1246
|
+
* is where an operator clicks — the title, not the chevron. A click on an
|
|
1247
|
+
* interactive descendant (a button, a link, a form control) keeps its own,
|
|
1248
|
+
* and so does the chevron, which would otherwise toggle twice and leave the
|
|
1249
|
+
* card closed while the consumer's state said open. The chevron stays the
|
|
1250
|
+
* keyboard control: a header is not a button.
|
|
1251
|
+
*/
|
|
1252
|
+
readonly headerToggles: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1244
1253
|
/** Collapsed state (two-way; only meaningful with `collapsible`). */
|
|
1245
1254
|
readonly collapsed: _angular_core.ModelSignal<boolean>;
|
|
1246
1255
|
toggle(): void;
|
|
1247
1256
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCard, never>;
|
|
1248
|
-
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; }; "fill": { "alias": "fill"; "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>;
|
|
1257
|
+
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; }; "fill": { "alias": "fill"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "headerToggles": { "alias": "headerToggles"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["*"], true, never>;
|
|
1249
1258
|
}
|
|
1250
1259
|
/** Header section of a {@link StrctCard}. */
|
|
1251
1260
|
declare class StrctCardHeader {
|
|
@@ -1267,6 +1276,14 @@ declare class StrctCardHeader {
|
|
|
1267
1276
|
readonly collapseLabel: _angular_core.InputSignal<string>;
|
|
1268
1277
|
readonly expandLabel: _angular_core.InputSignal<string>;
|
|
1269
1278
|
protected readonly card: StrctCard | null;
|
|
1279
|
+
/** Only a collapsible card that asked for it toggles from its header. */
|
|
1280
|
+
protected togglesOnClick(): boolean;
|
|
1281
|
+
/**
|
|
1282
|
+
* Anything with a click of its own keeps it — including our own chevron,
|
|
1283
|
+
* whose click would otherwise bubble here and toggle a second time, leaving
|
|
1284
|
+
* the card closed while the consumer's state said open.
|
|
1285
|
+
*/
|
|
1286
|
+
protected onHeaderClick(event: MouseEvent): void;
|
|
1270
1287
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctCardHeader, never>;
|
|
1271
1288
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctCardHeader, "strct-card-header", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "wrap": { "alias": "wrap"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[strctCardHeaderLeading]", "[strctCardHeaderMeta]", "*", "[strctCardHeaderNote]", "[strctCardHeaderActions]"], true, never>;
|
|
1272
1289
|
}
|
|
@@ -1306,10 +1323,26 @@ declare class StrctAccordion {
|
|
|
1306
1323
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctAccordion, never>;
|
|
1307
1324
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctAccordion, "strct-accordion", never, {}, {}, never, ["*"], true, never>;
|
|
1308
1325
|
}
|
|
1326
|
+
/**
|
|
1327
|
+
* Badges, tags or a result in a panel's header, after the title:
|
|
1328
|
+
* `<strct-badge strctAccordionPanelMeta status="critical">Failed</strct-badge>`.
|
|
1329
|
+
* It is projected into the header but kept **outside** the button, so the
|
|
1330
|
+
* button is still called by its heading alone — the result is read after it,
|
|
1331
|
+
* as the button's description.
|
|
1332
|
+
*/
|
|
1333
|
+
declare class StrctAccordionPanelMeta {
|
|
1334
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctAccordionPanelMeta, never>;
|
|
1335
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<StrctAccordionPanelMeta, "[strctAccordionPanelMeta]", never, {}, {}, never, never, true, never>;
|
|
1336
|
+
}
|
|
1309
1337
|
/** Collapsible panel with a header. `expanded` is two-way bindable. */
|
|
1310
1338
|
declare class StrctAccordionPanel {
|
|
1311
1339
|
/** Panel heading. */
|
|
1312
1340
|
readonly heading: _angular_core.InputSignal<string>;
|
|
1341
|
+
/**
|
|
1342
|
+
* A tone rail on the leading edge, as `strct-card [status]` has — the
|
|
1343
|
+
* result of the thing the panel reports, said in colour as well as words.
|
|
1344
|
+
*/
|
|
1345
|
+
readonly status: _angular_core.InputSignal<StrctStatus>;
|
|
1313
1346
|
/** Whether the panel is open (two-way). */
|
|
1314
1347
|
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
1315
1348
|
/**
|
|
@@ -1318,11 +1351,14 @@ declare class StrctAccordionPanel {
|
|
|
1318
1351
|
* `<details>` while keeping the button + region semantics.
|
|
1319
1352
|
*/
|
|
1320
1353
|
readonly appearance: _angular_core.InputSignal<"boxed" | "quiet">;
|
|
1354
|
+
/** Whatever a consumer put beside the title, so the button can describe it. */
|
|
1355
|
+
protected readonly meta: _angular_core.Signal<StrctAccordionPanelMeta | undefined>;
|
|
1321
1356
|
protected readonly bodyId: string;
|
|
1322
1357
|
protected readonly headId: string;
|
|
1358
|
+
protected readonly metaId: string;
|
|
1323
1359
|
toggle(): void;
|
|
1324
1360
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctAccordionPanel, never>;
|
|
1325
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctAccordionPanel, "strct-accordion-panel", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; },
|
|
1361
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctAccordionPanel, "strct-accordion-panel", never, { "heading": { "alias": "heading"; "required": true; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, ["meta"], ["[strctAccordionPanelMeta]", "*"], true, never>;
|
|
1326
1362
|
}
|
|
1327
1363
|
|
|
1328
1364
|
/** A single tab. Place inside `<strct-tabs>`; `label` names its button. */
|
|
@@ -2117,7 +2153,7 @@ declare class StrctDropdownItem {
|
|
|
2117
2153
|
protected readonly tabindex: _angular_core.Signal<number | null>;
|
|
2118
2154
|
constructor();
|
|
2119
2155
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDropdownItem, never>;
|
|
2120
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDropdownItem, "strct-dropdown-item", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "critical": { "alias": "critical"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; }, {}, never, ["[strctDropdownItemIcon]", "[strctDropdownItemAction]", "[strctDropdownItemLabel]", "[strctDropdownItemDescription]", "*"], true, never>;
|
|
2156
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDropdownItem, "strct-dropdown-item, a[strctDropdownItem]", never, { "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "critical": { "alias": "critical"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; }, {}, never, ["[strctDropdownItemIcon]", "[strctDropdownItemAction]", "[strctDropdownItemLabel]", "[strctDropdownItemDescription]", "*"], true, never>;
|
|
2121
2157
|
}
|
|
2122
2158
|
/**
|
|
2123
2159
|
* A named group of rows — "Create" above the create actions, where a divider
|
|
@@ -8406,5 +8442,79 @@ declare class StrctMarkdown {
|
|
|
8406
8442
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctMarkdown, "strct-markdown", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "tree": { "alias": "tree"; "required": false; "isSignal": true; }; "streaming": { "alias": "streaming"; "required": false; "isSignal": true; }; "headingOffset": { "alias": "headingOffset"; "required": false; "isSignal": true; }; "linkPolicy": { "alias": "linkPolicy"; "required": false; "isSignal": true; }; "tokens": { "alias": "tokens"; "required": false; "isSignal": true; }; }, { "navigate": "navigate"; }, ["tokenDefs"], never, true, never>;
|
|
8407
8443
|
}
|
|
8408
8444
|
|
|
8409
|
-
|
|
8410
|
-
|
|
8445
|
+
/** One product (or platform) a person may switch to. */
|
|
8446
|
+
interface StrctProductItem {
|
|
8447
|
+
/** Stable identity, matched against `current`. */
|
|
8448
|
+
id: string;
|
|
8449
|
+
/** The product's full name — the menu row's label, and what a reader hears. */
|
|
8450
|
+
name: string;
|
|
8451
|
+
/** What the chip shows; the full name when omitted. */
|
|
8452
|
+
label?: string;
|
|
8453
|
+
/**
|
|
8454
|
+
* What the chip shows below `shortLabelWidth`. An icon alone does not say
|
|
8455
|
+
* where you are — "Site Recovery" and "Backup" icons are not self-evident —
|
|
8456
|
+
* while a short word fits. The full name stays in the accessible name.
|
|
8457
|
+
*/
|
|
8458
|
+
shortLabel?: string;
|
|
8459
|
+
/** Icon name from the icon set. */
|
|
8460
|
+
icon?: string;
|
|
8461
|
+
/** One line of health under the name ("2 VMs past RPO"). */
|
|
8462
|
+
description?: string;
|
|
8463
|
+
/** The dot beside that line. */
|
|
8464
|
+
status?: StrctStatus;
|
|
8465
|
+
/** The product's own colour (a token or value): the icons take it. */
|
|
8466
|
+
tone?: string;
|
|
8467
|
+
/** Render the row as a real router link (middle-click, a new tab). */
|
|
8468
|
+
routerLink?: string | unknown[];
|
|
8469
|
+
/** Render the row as a plain link. */
|
|
8470
|
+
href?: string;
|
|
8471
|
+
disabled?: boolean;
|
|
8472
|
+
}
|
|
8473
|
+
/**
|
|
8474
|
+
* The product switcher every multi-product console grows: a chip beside the
|
|
8475
|
+
* logo saying where you are, opening the products you may use with a line of
|
|
8476
|
+
* health each, and the platform after a divider.
|
|
8477
|
+
*
|
|
8478
|
+
* <strct-product-switcher
|
|
8479
|
+
* [items]="products" [(current)]="productId" [footerItems]="[admin]"
|
|
8480
|
+
* (opened)="loadHealth()" (select)="go($event)" />
|
|
8481
|
+
*
|
|
8482
|
+
* A person offered one product sees a plain chip, not a menu of one.
|
|
8483
|
+
*/
|
|
8484
|
+
declare class StrctProductSwitcher {
|
|
8485
|
+
/** The products this person may switch to. */
|
|
8486
|
+
readonly items: _angular_core.InputSignal<readonly StrctProductItem[]>;
|
|
8487
|
+
/** Entries after a divider — the shared platform, administration. */
|
|
8488
|
+
readonly footerItems: _angular_core.InputSignal<readonly StrctProductItem[]>;
|
|
8489
|
+
/** Which product you are in, two-way. */
|
|
8490
|
+
readonly current: _angular_core.ModelSignal<string | null>;
|
|
8491
|
+
/**
|
|
8492
|
+
* What the chip is for, after the product's name:
|
|
8493
|
+
* "HyperStruct Backup — switch product".
|
|
8494
|
+
*/
|
|
8495
|
+
readonly switchLabel: _angular_core.InputSignal<string>;
|
|
8496
|
+
/**
|
|
8497
|
+
* Below this width (px) the chip shows each item's `shortLabel` instead of
|
|
8498
|
+
* its label. The full name stays in the accessible name.
|
|
8499
|
+
*/
|
|
8500
|
+
readonly shortLabelWidth: _angular_core.InputSignal<number>;
|
|
8501
|
+
/** The menu has opened — read the health lines now, not before. */
|
|
8502
|
+
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
8503
|
+
/** A product was chosen (plain activation only, as the rail does). */
|
|
8504
|
+
readonly select: _angular_core.OutputEmitterRef<StrctProductItem>;
|
|
8505
|
+
private readonly menu;
|
|
8506
|
+
private readonly narrow;
|
|
8507
|
+
private wasOpen;
|
|
8508
|
+
/** With one product and nowhere else to go, there is no menu to open. */
|
|
8509
|
+
protected readonly hasMenu: _angular_core.Signal<boolean>;
|
|
8510
|
+
protected readonly currentItem: _angular_core.Signal<StrctProductItem>;
|
|
8511
|
+
protected readonly chipText: _angular_core.Signal<string>;
|
|
8512
|
+
protected readonly chipAriaLabel: _angular_core.Signal<string>;
|
|
8513
|
+
constructor();
|
|
8514
|
+
protected pick(item: StrctProductItem, event?: MouseEvent): void;
|
|
8515
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctProductSwitcher, never>;
|
|
8516
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctProductSwitcher, "strct-product-switcher", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "footerItems": { "alias": "footerItems"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "switchLabel": { "alias": "switchLabel"; "required": false; "isSignal": true; }; "shortLabelWidth": { "alias": "shortLabelWidth"; "required": false; "isSignal": true; }; }, { "current": "currentChange"; "opened": "opened"; "select": "select"; }, never, never, true, never>;
|
|
8517
|
+
}
|
|
8518
|
+
|
|
8519
|
+
export { FOCUSABLE_SELECTOR, STRCT_DP_DOW, STRCT_DP_DOW_FULL, STRCT_DP_MONTHS, STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_MD_LIMITS, STRCT_NOTIFICATION_HISTORY_LIMIT, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAccordionPanelMeta, StrctAlert, StrctAlertActions, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCardHeaderActions, StrctCardHeaderLeading, StrctCardHeaderMeta, StrctCardHeaderNote, StrctCascadeColumn, StrctCascadeHost, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChange, StrctChart, StrctChatAttachment, StrctChatComposer, StrctChatMessage, StrctChatMessageActions, StrctChatThread, StrctCheckbox, StrctChips, StrctCode, StrctCodeInline, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctConfirmOutlet, StrctConfirmService, StrctContextMenu, StrctContextMenuTrigger, StrctControlDescription, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatagridActionBarCaption, StrctDatepicker, StrctDatetimePicker, StrctDesc, StrctDescriptionList, StrctDetailPaneActions, StrctDetailPaneMeta, StrctDetailPaneTitle, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownGroup, StrctDropdownItem, StrctDropdownItemAction, StrctDropdownItemDescription, StrctDropdownItemIcon, StrctDropdownItemLabel, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFieldGroup, StrctFieldHint, StrctFieldPrefix, StrctFieldSuffix, StrctFieldValue, StrctFile, StrctFilterBar, StrctFlow, StrctFlowNodeTemplate, StrctFooter, StrctGauge, StrctGroupHeaderDef, StrctHeader, StrctHeaderAction, StrctHeatmap, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInlineEdit, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLegend, StrctList, StrctListItem, StrctListItemDescription, StrctListItemLeading, StrctListItemMeta, StrctListItemTrailing, StrctLiveIndicator, StrctLogViewer, StrctLogin, StrctMarkdown, StrctMarkdownToken, StrctMediaFrame, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctModalContent, StrctNav, StrctNavItem, StrctNotificationCenter, StrctNumber, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPageHeaderTitleMeta, StrctPagination, StrctPassword, StrctPopover, StrctPopoverTrigger, StrctProductSwitcher, StrctProgress, StrctQr, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderGroup, StrctReorderHandle, StrctReorderItem, StrctResizeHandle, StrctRowDetailDef, StrctSearchbox, StrctSectionHeader, StrctSectionHeaderActions, StrctSectionHeaderMeta, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSignpostTrigger, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStatusDot, StrctStep, StrctStepAction, StrctSteps, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctTagLeading, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctToolbar, StrctToolbarCaption, StrctToolbarSpacer, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctTreeSelect, StrctVerticalNav, StrctWatermark, StrctWindow, StrctWindowDock, StrctWindowDockItem, StrctWindowService, StrctWizard, StrctWizardAside, __qrInternals, focusFirstIn, keepTabInside, lockBodyScroll, parseAnsi, parseInlines, provideStrctWizardDefaults, registerStrctIcon, restoreFocus, saveFocusedElement, strctCheckHostDisplay, strctCheckHostInputs, strctClassifyHref, strctComputeDiff, strctDpPad, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctParseMarkdown, strctQrMatrix, strctValidationIcon, strctValidationTone, unlockBodyScroll };
|
|
8520
|
+
export type { StrctAlertType, StrctAvatarSize, StrctAvatarStatus, StrctBadgeStatus, StrctButtonSize, StrctButtonVariant, StrctCascadeOption, StrctCellContext, StrctChartAnnotation, StrctChartColor, StrctChartCurve, StrctChartSeries, StrctChartSlot, StrctChartStatus, StrctChartSummaryInfo, StrctChartThreshold, StrctChartType, StrctChatAuthor, StrctColumn, StrctCommandItem, StrctConfirmOptions, StrctConfirmTone, StrctDatagridColumn, StrctDatagridColumnState, StrctDatagridFilters, StrctDatagridGroup, StrctDatagridLabels, StrctDatagridLazyState, StrctDescAlign, StrctDescItem, StrctDiffRow, StrctDonutSegment, StrctDrawerSide, StrctDrawerSize, StrctEmptyVariant, StrctFilterChip, StrctFlowColumn, StrctFlowDirection, StrctFlowEdge, StrctFlowNode, StrctFlowOrientation, StrctHeaderActionConfig, StrctHeatmapCell, StrctHeatmapSummaryInfo, StrctHotkey, StrctIconBadge, StrctIconName, StrctKnobStatus, StrctLegendItem, StrctLiveLabels, StrctLiveState, StrctLogLine, StrctMdAlign, StrctMdBlock, StrctMdInline, StrctMdToken, StrctMdTokenizer, StrctMediaState, StrctMenuItem, StrctMenuLink, StrctMenuOpenOptions, StrctMenuPlacement, StrctMenuSection, StrctMenubarItem, StrctMetricStatus, StrctModalSize, StrctMode, StrctNotification, StrctOption, StrctOverlayPlacement, StrctPalette, StrctPaletteInfo, StrctProductItem, StrctProgressSegment, StrctProgressStatus, StrctQrEcc, StrctRailItem, StrctRailStatus, StrctReorderEvent, StrctReorderMoveEvent, StrctRow, StrctRowId, StrctSegmentedOption, StrctSegmentedSize, StrctSignpostPosition, StrctSpeedDialDirection, StrctSpinnerSize, StrctStatus, StrctStatusDotSize, StrctStepPhase, StrctStepState, StrctStepsLabels, StrctTagStatus, StrctThresholds, StrctTimeRange, StrctTimeRangePreset, StrctTimelineState, StrctToast, StrctToastOptions, StrctToastType, StrctTooltipPosition, StrctTourStep, StrctTransferItem, StrctTreeDropEvent, StrctTreeMenuEvent, StrctTreeNodeData, StrctTreeNodeMenuFn, StrctValidationState, StrctValidationStatus, StrctWindowBounds, StrctWindowLabels, StrctWindowOutsidePointer, StrctWizardDefaults };
|