@akcelik/strct 1.18.0 → 1.20.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 +459 -33
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/types/akcelik-strct.d.ts +96 -5
|
@@ -3400,7 +3400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
3400
3400
|
* </strct-dropdown>
|
|
3401
3401
|
*/
|
|
3402
3402
|
class StrctDropdown {
|
|
3403
|
-
host = inject(
|
|
3403
|
+
host = inject(ElementRef);
|
|
3404
3404
|
/** Horizontal alignment of the menu. */
|
|
3405
3405
|
align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3406
3406
|
/**
|
|
@@ -3419,16 +3419,83 @@ class StrctDropdown {
|
|
|
3419
3419
|
// Angular has already read the input by now; the DOM attribute must go.
|
|
3420
3420
|
this.host.nativeElement.removeAttribute('popover');
|
|
3421
3421
|
}
|
|
3422
|
+
/** Where focus was when the menu opened — restored on Escape/selection. */
|
|
3423
|
+
lastFocused = null;
|
|
3422
3424
|
toggle() {
|
|
3423
|
-
this.open
|
|
3425
|
+
const willOpen = !this.open();
|
|
3426
|
+
if (willOpen)
|
|
3427
|
+
this.lastFocused = document.activeElement;
|
|
3428
|
+
this.open.set(willOpen);
|
|
3429
|
+
if (willOpen && !this.popover())
|
|
3430
|
+
this.focusInitialItem();
|
|
3431
|
+
}
|
|
3432
|
+
/** Open (if closed) and move focus into the menu — ArrowDown on the trigger. */
|
|
3433
|
+
openMenu() {
|
|
3434
|
+
if (this.open())
|
|
3435
|
+
return;
|
|
3436
|
+
this.lastFocused = document.activeElement;
|
|
3437
|
+
this.open.set(true);
|
|
3438
|
+
if (!this.popover())
|
|
3439
|
+
this.focusInitialItem();
|
|
3424
3440
|
}
|
|
3425
|
-
close() {
|
|
3441
|
+
close(restoreFocus = false) {
|
|
3426
3442
|
this.open.set(false);
|
|
3443
|
+
if (restoreFocus)
|
|
3444
|
+
this.lastFocused?.focus?.();
|
|
3427
3445
|
}
|
|
3428
|
-
/**
|
|
3429
|
-
|
|
3430
|
-
|
|
3446
|
+
/**
|
|
3447
|
+
* Menu mode closes ONLY on a real item activation — a click that lands on
|
|
3448
|
+
* the menu's padding or a divider (a 2px miss) keeps it open instead of
|
|
3449
|
+
* throwing the whole interaction away. Popover form controls never close.
|
|
3450
|
+
*/
|
|
3451
|
+
onInnerActivate(event) {
|
|
3452
|
+
if (this.popover())
|
|
3453
|
+
return;
|
|
3454
|
+
const item = event.target?.closest('strct-dropdown-item');
|
|
3455
|
+
if (item && item.getAttribute('aria-disabled') !== 'true')
|
|
3456
|
+
this.close(true);
|
|
3457
|
+
}
|
|
3458
|
+
/** APG menu keyboarding: arrows rove, Home/End jump, Enter/Space activate. */
|
|
3459
|
+
onMenuKeydown(event) {
|
|
3460
|
+
if (this.popover())
|
|
3461
|
+
return;
|
|
3462
|
+
const items = this.enabledItems();
|
|
3463
|
+
if (!items.length)
|
|
3464
|
+
return;
|
|
3465
|
+
const idx = items.indexOf(event.target);
|
|
3466
|
+
const key = event.key;
|
|
3467
|
+
if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
3468
|
+
event.preventDefault();
|
|
3469
|
+
const next = idx === -1
|
|
3470
|
+
? key === 'ArrowDown'
|
|
3471
|
+
? 0
|
|
3472
|
+
: items.length - 1
|
|
3473
|
+
: (idx + (key === 'ArrowDown' ? 1 : -1) + items.length) % items.length;
|
|
3474
|
+
items[next].focus();
|
|
3475
|
+
}
|
|
3476
|
+
else if (key === 'Home' || key === 'End') {
|
|
3477
|
+
event.preventDefault();
|
|
3478
|
+
items[key === 'Home' ? 0 : items.length - 1].focus();
|
|
3479
|
+
}
|
|
3480
|
+
else if (key === 'Enter' || key === ' ') {
|
|
3481
|
+
event.preventDefault();
|
|
3482
|
+
event.target.click();
|
|
3483
|
+
}
|
|
3484
|
+
else if (key === 'Tab') {
|
|
3431
3485
|
this.close();
|
|
3486
|
+
}
|
|
3487
|
+
}
|
|
3488
|
+
enabledItems() {
|
|
3489
|
+
return [
|
|
3490
|
+
...this.host.nativeElement.querySelectorAll('strct-dropdown-item:not([aria-disabled="true"])'),
|
|
3491
|
+
];
|
|
3492
|
+
}
|
|
3493
|
+
/** Focus the selected item if there is one, else the first — after render. */
|
|
3494
|
+
focusInitialItem() {
|
|
3495
|
+
setTimeout(() => {
|
|
3496
|
+
const items = this.enabledItems();
|
|
3497
|
+
(items.find((i) => i.getAttribute('aria-checked') === 'true') ?? items[0])?.focus();
|
|
3498
|
+
});
|
|
3432
3499
|
}
|
|
3433
3500
|
onDocClick(event) {
|
|
3434
3501
|
if (this.open() && !this.host.nativeElement.contains(event.target)) {
|
|
@@ -3436,7 +3503,8 @@ class StrctDropdown {
|
|
|
3436
3503
|
}
|
|
3437
3504
|
}
|
|
3438
3505
|
onEscape() {
|
|
3439
|
-
this.
|
|
3506
|
+
if (this.open())
|
|
3507
|
+
this.close(true);
|
|
3440
3508
|
}
|
|
3441
3509
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctDropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3442
3510
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: StrctDropdown, isStandalone: true, selector: "strct-dropdown", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, popover: { classPropertyName: "popover", publicName: "popover", isSignal: true, isRequired: false, transformFunction: null }, popoverLabel: { classPropertyName: "popoverLabel", publicName: "popoverLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocClick($event)", "document:keydown.escape": "onEscape()" }, classAttribute: "strct-dd" }, ngImport: i0, template: `
|
|
@@ -3462,9 +3530,8 @@ class StrctDropdown {
|
|
|
3462
3530
|
[attr.role]="popover() ? 'dialog' : 'menu'"
|
|
3463
3531
|
[attr.aria-label]="popover() ? popoverLabel() : null"
|
|
3464
3532
|
[attr.tabindex]="popover() ? -1 : 0"
|
|
3465
|
-
(click)="onInnerActivate()"
|
|
3466
|
-
(keydown
|
|
3467
|
-
(keydown.space)="onInnerActivate()"
|
|
3533
|
+
(click)="onInnerActivate($event)"
|
|
3534
|
+
(keydown)="onMenuKeydown($event)"
|
|
3468
3535
|
>
|
|
3469
3536
|
<ng-content />
|
|
3470
3537
|
</div>
|
|
@@ -3496,9 +3563,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
3496
3563
|
[attr.role]="popover() ? 'dialog' : 'menu'"
|
|
3497
3564
|
[attr.aria-label]="popover() ? popoverLabel() : null"
|
|
3498
3565
|
[attr.tabindex]="popover() ? -1 : 0"
|
|
3499
|
-
(click)="onInnerActivate()"
|
|
3500
|
-
(keydown
|
|
3501
|
-
(keydown.space)="onInnerActivate()"
|
|
3566
|
+
(click)="onInnerActivate($event)"
|
|
3567
|
+
(keydown)="onMenuKeydown($event)"
|
|
3502
3568
|
>
|
|
3503
3569
|
<ng-content />
|
|
3504
3570
|
</div>
|
|
@@ -3518,8 +3584,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
3518
3584
|
*/
|
|
3519
3585
|
class StrctDropdownTrigger {
|
|
3520
3586
|
dd = inject(StrctDropdown, { optional: true });
|
|
3587
|
+
onArrowDown(event) {
|
|
3588
|
+
if (!this.dd || this.dd.popover())
|
|
3589
|
+
return;
|
|
3590
|
+
event.preventDefault();
|
|
3591
|
+
this.dd.openMenu();
|
|
3592
|
+
}
|
|
3521
3593
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctDropdownTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3522
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: StrctDropdownTrigger, isStandalone: true, selector: "[strctDropdownTrigger]", host: { properties: { "attr.aria-haspopup": "dd ? (dd.popover() ? 'dialog' : 'menu') : null", "attr.aria-expanded": "dd ? dd.open() : null" } }, ngImport: i0 });
|
|
3594
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.16", type: StrctDropdownTrigger, isStandalone: true, selector: "[strctDropdownTrigger]", host: { listeners: { "keydown.arrowdown": "onArrowDown($event)" }, properties: { "attr.aria-haspopup": "dd ? (dd.popover() ? 'dialog' : 'menu') : null", "attr.aria-expanded": "dd ? dd.open() : null" } }, ngImport: i0 });
|
|
3523
3595
|
}
|
|
3524
3596
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctDropdownTrigger, decorators: [{
|
|
3525
3597
|
type: Directive,
|
|
@@ -3528,27 +3600,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
3528
3600
|
host: {
|
|
3529
3601
|
'[attr.aria-haspopup]': "dd ? (dd.popover() ? 'dialog' : 'menu') : null",
|
|
3530
3602
|
'[attr.aria-expanded]': 'dd ? dd.open() : null',
|
|
3603
|
+
'(keydown.arrowdown)': 'onArrowDown($event)',
|
|
3531
3604
|
},
|
|
3532
3605
|
}]
|
|
3533
3606
|
}] });
|
|
3534
3607
|
/** A selectable row inside a `<strct-dropdown>`. */
|
|
3535
3608
|
class StrctDropdownItem {
|
|
3609
|
+
/**
|
|
3610
|
+
* Select-like usage: bind `selected` and the item becomes a
|
|
3611
|
+
* `menuitemradio` with `aria-checked`, a leading ✓ on the current choice
|
|
3612
|
+
* and an aligned lead slot — so reopening the menu shows what is chosen.
|
|
3613
|
+
* Leave unbound for plain action items.
|
|
3614
|
+
*/
|
|
3615
|
+
selected = input(null, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
3536
3616
|
/** Danger. */
|
|
3537
3617
|
critical = input(false, { ...(ngDevMode ? { debugName: "critical" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3538
3618
|
/** Static disable flag. */
|
|
3539
3619
|
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3540
3620
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctDropdownItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3541
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
3621
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: StrctDropdownItem, isStandalone: true, selector: "strct-dropdown-item", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, critical: { classPropertyName: "critical", publicName: "critical", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "selected() === null ? 'menuitem' : 'menuitemradio'", "attr.aria-checked": "selected()", "attr.tabindex": "disabled() ? null : -1", "class.strct-dd__item--critical": "critical()", "class.strct-dd__item--selected": "selected() === true", "attr.aria-disabled": "disabled() || null" }, classAttribute: "strct-dd__item" }, ngImport: i0, template: `@if (selected() !== null) {
|
|
3622
|
+
<span class="strct-dd__check" aria-hidden="true">
|
|
3623
|
+
@if (selected()) {
|
|
3624
|
+
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
3625
|
+
}
|
|
3626
|
+
</span>
|
|
3627
|
+
}
|
|
3628
|
+
<ng-content />`, isInline: true, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover,.strct-dd__item:focus-visible{background:var(--bg-3);outline:none}.strct-dd__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-dd__item--selected{color:var(--t1);font-weight:600;background:var(--acc-s)}.strct-dd__item--critical{color:var(--critical)}.strct-dd__item--critical:hover{background:var(--critical-bg)}.strct-dd__item[aria-disabled=true]{color:var(--t4);pointer-events:none}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
3542
3629
|
}
|
|
3543
3630
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctDropdownItem, decorators: [{
|
|
3544
3631
|
type: Component,
|
|
3545
|
-
args: [{ selector: 'strct-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template:
|
|
3632
|
+
args: [{ selector: 'strct-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon], template: `@if (selected() !== null) {
|
|
3633
|
+
<span class="strct-dd__check" aria-hidden="true">
|
|
3634
|
+
@if (selected()) {
|
|
3635
|
+
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
3636
|
+
}
|
|
3637
|
+
</span>
|
|
3638
|
+
}
|
|
3639
|
+
<ng-content />`, host: {
|
|
3546
3640
|
class: 'strct-dd__item',
|
|
3547
|
-
role: 'menuitem',
|
|
3641
|
+
'[attr.role]': "selected() === null ? 'menuitem' : 'menuitemradio'",
|
|
3642
|
+
'[attr.aria-checked]': 'selected()',
|
|
3643
|
+
'[attr.tabindex]': 'disabled() ? null : -1',
|
|
3548
3644
|
'[class.strct-dd__item--critical]': 'critical()',
|
|
3645
|
+
'[class.strct-dd__item--selected]': 'selected() === true',
|
|
3549
3646
|
'[attr.aria-disabled]': 'disabled() || null',
|
|
3550
|
-
}, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:
|
|
3551
|
-
}], propDecorators: { critical: [{ type: i0.Input, args: [{ isSignal: true, alias: "critical", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
3647
|
+
}, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover,.strct-dd__item:focus-visible{background:var(--bg-3);outline:none}.strct-dd__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-dd__item--selected{color:var(--t1);font-weight:600;background:var(--acc-s)}.strct-dd__item--critical{color:var(--critical)}.strct-dd__item--critical:hover{background:var(--critical-bg)}.strct-dd__item[aria-disabled=true]{color:var(--t4);pointer-events:none}\n"] }]
|
|
3648
|
+
}], propDecorators: { selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], critical: [{ type: i0.Input, args: [{ isSignal: true, alias: "critical", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
3552
3649
|
/** Thin separator between groups of menu items. */
|
|
3553
3650
|
class StrctDropdownDivider {
|
|
3554
3651
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctDropdownDivider, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -3933,11 +4030,13 @@ class StrctWizard {
|
|
|
3933
4030
|
>
|
|
3934
4031
|
@if (vertical()) {
|
|
3935
4032
|
<nav class="strct-wiz__rail" [attr.aria-label]="stepsLabel()">
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
<
|
|
4033
|
+
<div class="strct-wiz__railhead">
|
|
4034
|
+
@if (title()) {
|
|
4035
|
+
<div class="strct-wiz__vtitle">{{ title() }}</div>
|
|
4036
|
+
}
|
|
4037
|
+
<div class="strct-wiz__pbar" aria-hidden="true">
|
|
4038
|
+
<i [style.width.%]="progressPct()"></i>
|
|
4039
|
+
</div>
|
|
3941
4040
|
</div>
|
|
3942
4041
|
<div class="strct-wiz__pcount">
|
|
3943
4042
|
{{ maxVisited() }}/{{ steps().length }} {{ progressLabel() }}
|
|
@@ -4031,7 +4130,7 @@ class StrctWizard {
|
|
|
4031
4130
|
</aside>
|
|
4032
4131
|
}
|
|
4033
4132
|
</div>
|
|
4034
|
-
`, isInline: true, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr);border:1px solid var(--b2);border-radius:12px;background:var(--bg-1);overflow:hidden}.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr) 280px}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:block;padding:20px 18px;background:var(--bg-2);border-inline-start:1px solid var(--b1);overflow-y:auto}.strct-wiz__layout--v .strct-wiz__main{display:flex;flex-direction:column;min-width:0}.strct-wiz__layout--v .strct-wiz__content{flex:1;margin:0;padding:20px 24px;border:0;border-radius:0;background:transparent;overflow-y:auto}.strct-wiz__layout--v .strct-wiz__foot{padding:13px 24px;border-top:1px solid var(--b1)}.strct-wiz__chead{padding:
|
|
4133
|
+
`, isInline: true, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr);border:1px solid var(--b2);border-radius:12px;background:var(--bg-1);overflow:hidden}.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr) 280px}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:block;padding:20px 18px;background:var(--bg-2);border-inline-start:1px solid var(--b1);overflow-y:auto}.strct-wiz__layout--v .strct-wiz__main{display:flex;flex-direction:column;min-width:0}.strct-wiz__layout--v .strct-wiz__content{flex:1;margin:0;padding:20px 24px;border:0;border-radius:0;background:transparent;overflow-y:auto}.strct-wiz__layout--v .strct-wiz__foot{padding:13px 24px;border-top:1px solid var(--b1)}.strct-wiz__chead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);padding:15px 24px 0;border-bottom:1px solid var(--b1);overflow:hidden}.strct-wiz__ctitle{margin:0;font-size:16px;font-weight:600;letter-spacing:-.2px;color:var(--t1);line-height:1.3}.strct-wiz__clede{margin:2px 0 0;font-size:12.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-wiz__rail{display:flex;flex-direction:column;padding:0 18px 16px;background:var(--bg-2);border-inline-end:1px solid var(--b1);min-width:0}.strct-wiz__railhead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);flex:none;display:flex;flex-direction:column;justify-content:flex-end;padding-top:18px}.strct-wiz__vtitle{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:1.3;margin-bottom:auto}.strct-wiz__pbar{height:4px;border-radius:99px;background:var(--bg-a);overflow:hidden;flex:none}.strct-wiz__pbar i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .4s cubic-bezier(.4,0,.2,1)}.strct-wiz__pcount{font-family:var(--mono);font-size:10.5px;letter-spacing:.4px;color:var(--t3);margin:7px 0 14px;font-variant-numeric:tabular-nums}.strct-wiz__vsteps{display:flex;flex-direction:column}.strct-wiz__vstep{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;width:100%;padding:8px 0;border:0;background:none;text-align:start;font:inherit;color:inherit;cursor:pointer}.strct-wiz__vstep:disabled{cursor:default;opacity:.55}.strct-wiz__ring{width:20px;height:20px;margin-top:1px;border-radius:50%;border:2px dashed var(--b3);display:grid;place-items:center;transition:border-color .2s,background .2s}.strct-wiz__vlabel{display:block;font-size:13px;color:var(--t2);transition:color .15s}.strct-wiz__vdesc{display:block;font-size:11px;color:var(--t3);margin-top:1px;opacity:0;height:0;overflow:hidden;transition:opacity .25s}.strct-wiz__vstep--done .strct-wiz__ring{border:0;background:var(--success)}.strct-wiz__vstep--done .strct-wiz__ring:after{content:\"\";width:8px;height:4px;border-left:2px solid var(--inv);border-bottom:2px solid var(--inv);transform:rotate(-45deg) translate(1px,-1px)}.strct-wiz__vstep--done .strct-wiz__vlabel{color:var(--t1)}.strct-wiz__vstep--active .strct-wiz__ring{border-style:solid;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc18)}.strct-wiz__vstep--active .strct-wiz__ring:after{content:\"\";width:7px;height:7px;border-radius:50%;background:var(--acc)}.strct-wiz__vstep--active .strct-wiz__vlabel{color:var(--t1);font-weight:600}.strct-wiz__vstep--active .strct-wiz__vdesc{opacity:1;height:auto}.strct-wiz--flush{height:100%;min-height:0}.strct-wiz--flush .strct-wiz__layout--v{height:100%;border:0;border-radius:0;background:transparent}@container (max-width: 980px){.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr)}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:none}}@container (max-width: 700px){.strct-wiz__layout--v,.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:56px minmax(0,1fr)}.strct-wiz__rail{padding:18px 0 12px;align-items:center}.strct-wiz__chead{height:auto;padding:14px 18px 11px}.strct-wiz__railhead,.strct-wiz__pcount,.strct-wiz__vmeta{display:none}.strct-wiz__vsteps{gap:3px;align-items:center}.strct-wiz__vstep{grid-template-columns:22px;justify-items:center;position:relative;padding:7px 0}.strct-wiz__vstep:not(:last-child):after{content:\"\";position:absolute;left:50%;top:30px;height:10px;width:1.5px;background:var(--b3)}.strct-wiz__vstep--done:not(:last-child):after{background:var(--success);opacity:.6}.strct-wiz__layout--v .strct-wiz__content{padding:16px 18px}.strct-wiz__layout--v .strct-wiz__foot{padding:12px 18px}}@media(prefers-reduced-motion:reduce){.strct-wiz__pbar i,.strct-wiz__ring,.strct-wiz__vlabel,.strct-wiz__vdesc{transition:none}}\n"], dependencies: [{ kind: "component", type: StrctButton, selector: "button[strct-button], a[strct-button]", inputs: ["variant", "size", "solid", "block", "iconOnly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4035
4134
|
}
|
|
4036
4135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctWizard, decorators: [{
|
|
4037
4136
|
type: Component,
|
|
@@ -4043,11 +4142,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
4043
4142
|
>
|
|
4044
4143
|
@if (vertical()) {
|
|
4045
4144
|
<nav class="strct-wiz__rail" [attr.aria-label]="stepsLabel()">
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
<
|
|
4145
|
+
<div class="strct-wiz__railhead">
|
|
4146
|
+
@if (title()) {
|
|
4147
|
+
<div class="strct-wiz__vtitle">{{ title() }}</div>
|
|
4148
|
+
}
|
|
4149
|
+
<div class="strct-wiz__pbar" aria-hidden="true">
|
|
4150
|
+
<i [style.width.%]="progressPct()"></i>
|
|
4151
|
+
</div>
|
|
4051
4152
|
</div>
|
|
4052
4153
|
<div class="strct-wiz__pcount">
|
|
4053
4154
|
{{ maxVisited() }}/{{ steps().length }} {{ progressLabel() }}
|
|
@@ -4145,7 +4246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
4145
4246
|
class: 'strct-wiz',
|
|
4146
4247
|
'[class.strct-wiz--vertical]': 'vertical()',
|
|
4147
4248
|
'[class.strct-wiz--flush]': 'flush()',
|
|
4148
|
-
}, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr);border:1px solid var(--b2);border-radius:12px;background:var(--bg-1);overflow:hidden}.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr) 280px}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:block;padding:20px 18px;background:var(--bg-2);border-inline-start:1px solid var(--b1);overflow-y:auto}.strct-wiz__layout--v .strct-wiz__main{display:flex;flex-direction:column;min-width:0}.strct-wiz__layout--v .strct-wiz__content{flex:1;margin:0;padding:20px 24px;border:0;border-radius:0;background:transparent;overflow-y:auto}.strct-wiz__layout--v .strct-wiz__foot{padding:13px 24px;border-top:1px solid var(--b1)}.strct-wiz__chead{padding:
|
|
4249
|
+
}, styles: [".strct-wiz{display:block}.strct-wiz__steps{display:flex;align-items:center;gap:6px}.strct-wiz__step{display:flex;align-items:center;gap:8px}.strct-wiz__dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:600;color:var(--t2);background:var(--bg-3);border:1px solid var(--b2)}.strct-wiz__label{font-size:12px;color:var(--t2)}.strct-wiz__step--active .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc)}.strct-wiz__step--active .strct-wiz__label{color:var(--t1);font-weight:600}.strct-wiz__step--done .strct-wiz__dot{background:var(--acc-m);color:var(--acc);border-color:var(--acc30)}.strct-wiz__sep{flex:1;height:1px;background:var(--b2);min-width:18px}.strct-wiz__content{margin:18px 0;padding:16px;min-height:80px;background:var(--bg-1);border:1px solid var(--b2);border-radius:8px;color:var(--t2);font-size:13px}.strct-wiz__foot{display:flex;justify-content:flex-end;gap:8px}.strct-wiz__cancel{margin-inline-end:auto}.strct-wiz__aside{display:none}.strct-wiz--vertical{container-type:inline-size}.strct-wiz__layout--v{display:grid;grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr);border:1px solid var(--b2);border-radius:12px;background:var(--bg-1);overflow:hidden}.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr) 280px}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:block;padding:20px 18px;background:var(--bg-2);border-inline-start:1px solid var(--b1);overflow-y:auto}.strct-wiz__layout--v .strct-wiz__main{display:flex;flex-direction:column;min-width:0}.strct-wiz__layout--v .strct-wiz__content{flex:1;margin:0;padding:20px 24px;border:0;border-radius:0;background:transparent;overflow-y:auto}.strct-wiz__layout--v .strct-wiz__foot{padding:13px 24px;border-top:1px solid var(--b1)}.strct-wiz__chead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);padding:15px 24px 0;border-bottom:1px solid var(--b1);overflow:hidden}.strct-wiz__ctitle{margin:0;font-size:16px;font-weight:600;letter-spacing:-.2px;color:var(--t1);line-height:1.3}.strct-wiz__clede{margin:2px 0 0;font-size:12.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strct-wiz__rail{display:flex;flex-direction:column;padding:0 18px 16px;background:var(--bg-2);border-inline-end:1px solid var(--b1);min-width:0}.strct-wiz__railhead{box-sizing:border-box;height:var(--strct-wiz-header-h, 64px);flex:none;display:flex;flex-direction:column;justify-content:flex-end;padding-top:18px}.strct-wiz__vtitle{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:1.3;margin-bottom:auto}.strct-wiz__pbar{height:4px;border-radius:99px;background:var(--bg-a);overflow:hidden;flex:none}.strct-wiz__pbar i{display:block;height:100%;border-radius:99px;background:var(--acc);transition:width .4s cubic-bezier(.4,0,.2,1)}.strct-wiz__pcount{font-family:var(--mono);font-size:10.5px;letter-spacing:.4px;color:var(--t3);margin:7px 0 14px;font-variant-numeric:tabular-nums}.strct-wiz__vsteps{display:flex;flex-direction:column}.strct-wiz__vstep{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;width:100%;padding:8px 0;border:0;background:none;text-align:start;font:inherit;color:inherit;cursor:pointer}.strct-wiz__vstep:disabled{cursor:default;opacity:.55}.strct-wiz__ring{width:20px;height:20px;margin-top:1px;border-radius:50%;border:2px dashed var(--b3);display:grid;place-items:center;transition:border-color .2s,background .2s}.strct-wiz__vlabel{display:block;font-size:13px;color:var(--t2);transition:color .15s}.strct-wiz__vdesc{display:block;font-size:11px;color:var(--t3);margin-top:1px;opacity:0;height:0;overflow:hidden;transition:opacity .25s}.strct-wiz__vstep--done .strct-wiz__ring{border:0;background:var(--success)}.strct-wiz__vstep--done .strct-wiz__ring:after{content:\"\";width:8px;height:4px;border-left:2px solid var(--inv);border-bottom:2px solid var(--inv);transform:rotate(-45deg) translate(1px,-1px)}.strct-wiz__vstep--done .strct-wiz__vlabel{color:var(--t1)}.strct-wiz__vstep--active .strct-wiz__ring{border-style:solid;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc18)}.strct-wiz__vstep--active .strct-wiz__ring:after{content:\"\";width:7px;height:7px;border-radius:50%;background:var(--acc)}.strct-wiz__vstep--active .strct-wiz__vlabel{color:var(--t1);font-weight:600}.strct-wiz__vstep--active .strct-wiz__vdesc{opacity:1;height:auto}.strct-wiz--flush{height:100%;min-height:0}.strct-wiz--flush .strct-wiz__layout--v{height:100%;border:0;border-radius:0;background:transparent}@container (max-width: 980px){.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:232px minmax(var(--strct-wiz-content-min, 480px),1fr)}.strct-wiz__layout--v.strct-wiz__layout--aside .strct-wiz__aside{display:none}}@container (max-width: 700px){.strct-wiz__layout--v,.strct-wiz__layout--v.strct-wiz__layout--aside{grid-template-columns:56px minmax(0,1fr)}.strct-wiz__rail{padding:18px 0 12px;align-items:center}.strct-wiz__chead{height:auto;padding:14px 18px 11px}.strct-wiz__railhead,.strct-wiz__pcount,.strct-wiz__vmeta{display:none}.strct-wiz__vsteps{gap:3px;align-items:center}.strct-wiz__vstep{grid-template-columns:22px;justify-items:center;position:relative;padding:7px 0}.strct-wiz__vstep:not(:last-child):after{content:\"\";position:absolute;left:50%;top:30px;height:10px;width:1.5px;background:var(--b3)}.strct-wiz__vstep--done:not(:last-child):after{background:var(--success);opacity:.6}.strct-wiz__layout--v .strct-wiz__content{padding:16px 18px}.strct-wiz__layout--v .strct-wiz__foot{padding:12px 18px}}@media(prefers-reduced-motion:reduce){.strct-wiz__pbar i,.strct-wiz__ring,.strct-wiz__vlabel,.strct-wiz__vdesc{transition:none}}\n"] }]
|
|
4149
4250
|
}], ctorParameters: () => [], propDecorators: { steps: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => StrctStep), { isSignal: true }] }], asideDef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => StrctWizardAside), { isSignal: true }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: false }] }, { type: i0.Output, args: ["currentChange"] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], flush: [{ type: i0.Input, args: [{ isSignal: true, alias: "flush", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], contentHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentHeader", required: false }] }], finishLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "finishLabel", required: false }] }], backLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "backLabel", required: false }] }], nextLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "nextLabel", required: false }] }], cancelLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelLabel", required: false }] }], submittingLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "submittingLabel", required: false }] }], progressLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "progressLabel", required: false }] }], stepsLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepsLabel", required: false }] }], submitting: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitting", required: false }] }], cancelable: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelable", required: false }] }], finished: [{ type: i0.Output, args: ["finished"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }], stepChange: [{ type: i0.Output, args: ["stepChange"] }] } });
|
|
4150
4251
|
|
|
4151
4252
|
/**
|
|
@@ -7368,6 +7469,331 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
7368
7469
|
args: ['document:click', ['$event']]
|
|
7369
7470
|
}] } });
|
|
7370
7471
|
|
|
7472
|
+
let selectCounter = 0;
|
|
7473
|
+
/**
|
|
7474
|
+
* Select-only combobox (APG pattern): a real button trigger wearing the shared
|
|
7475
|
+
* `.strct-control` look, opening a token-styled listbox — so the option list
|
|
7476
|
+
* matches the theme instead of the OS popup a native `<select>` shows.
|
|
7477
|
+
* CVA-compatible; options are non-filterable (reach for `strct-combobox` when
|
|
7478
|
+
* the list needs typing to narrow).
|
|
7479
|
+
*
|
|
7480
|
+
* <strct-field label="Region">
|
|
7481
|
+
* <strct-select [options]="regions" [(ngModel)]="region" placeholder="Pick a region" />
|
|
7482
|
+
* </strct-field>
|
|
7483
|
+
*
|
|
7484
|
+
* Keyboard follows the native select: ArrowDown/Up and Enter/Space open,
|
|
7485
|
+
* arrows move (skipping disabled options), Home/End jump, typing jumps to the
|
|
7486
|
+
* matching label (typeahead), Enter/Space commit, Escape/Tab close without
|
|
7487
|
+
* committing. The selected option carries a leading ✓ and gets the highlight
|
|
7488
|
+
* when reopening — the same select ergonomics as `strct-dropdown-item
|
|
7489
|
+
* [selected]`.
|
|
7490
|
+
*/
|
|
7491
|
+
class StrctSelect {
|
|
7492
|
+
host = inject(ElementRef);
|
|
7493
|
+
listId = `strct-sel-${++selectCounter}`;
|
|
7494
|
+
/** Available options (set `disabled: true` on an option to gray it out). */
|
|
7495
|
+
options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
7496
|
+
/** Muted text shown while no value is selected (localizable). */
|
|
7497
|
+
placeholder = input('Select…', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
7498
|
+
/** Accessible name of the listbox (localizable). */
|
|
7499
|
+
listLabel = input('', ...(ngDevMode ? [{ debugName: "listLabel" }] : /* istanbul ignore next */ []));
|
|
7500
|
+
/** Text shown when `options` is empty (localizable). */
|
|
7501
|
+
emptyText = input('No options', ...(ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []));
|
|
7502
|
+
/** Static disable flag (forms also drive it via setDisabledState). */
|
|
7503
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
7504
|
+
value = signal(null, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
7505
|
+
open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
7506
|
+
activeIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
|
|
7507
|
+
isDisabled = signal(false, ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
7508
|
+
selectedOption = computed(() => this.options().find((o) => o.value === this.value()), ...(ngDevMode ? [{ debugName: "selectedOption" }] : /* istanbul ignore next */ []));
|
|
7509
|
+
/** Typeahead buffer — clears half a second after the last keystroke. */
|
|
7510
|
+
typed = '';
|
|
7511
|
+
typedTimer = null;
|
|
7512
|
+
onChange = () => { };
|
|
7513
|
+
onTouched = () => { };
|
|
7514
|
+
toggle() {
|
|
7515
|
+
if (this.open())
|
|
7516
|
+
this.close();
|
|
7517
|
+
else
|
|
7518
|
+
this.openList();
|
|
7519
|
+
}
|
|
7520
|
+
openList() {
|
|
7521
|
+
if (this.isDisabled() || this.disabled())
|
|
7522
|
+
return;
|
|
7523
|
+
this.open.set(true);
|
|
7524
|
+
this.activeIndex.set(this.initialIndex());
|
|
7525
|
+
this.scrollActiveIntoView();
|
|
7526
|
+
}
|
|
7527
|
+
close() {
|
|
7528
|
+
this.open.set(false);
|
|
7529
|
+
}
|
|
7530
|
+
onKeydown(event) {
|
|
7531
|
+
const key = event.key;
|
|
7532
|
+
const opts = this.options();
|
|
7533
|
+
if (key === 'ArrowDown' || key === 'ArrowUp') {
|
|
7534
|
+
event.preventDefault();
|
|
7535
|
+
if (!this.open())
|
|
7536
|
+
return this.openList();
|
|
7537
|
+
this.move(key === 'ArrowDown' ? 1 : -1);
|
|
7538
|
+
}
|
|
7539
|
+
else if (key === 'Home' || key === 'End') {
|
|
7540
|
+
if (!this.open())
|
|
7541
|
+
return;
|
|
7542
|
+
event.preventDefault();
|
|
7543
|
+
this.moveTo(key === 'Home' ? 0 : opts.length - 1, key === 'Home' ? 1 : -1);
|
|
7544
|
+
}
|
|
7545
|
+
else if (key === 'Enter' || key === ' ') {
|
|
7546
|
+
event.preventDefault();
|
|
7547
|
+
if (!this.open())
|
|
7548
|
+
return this.openList();
|
|
7549
|
+
const opt = opts[this.activeIndex()];
|
|
7550
|
+
if (opt && !opt.disabled)
|
|
7551
|
+
this.commit(opt);
|
|
7552
|
+
}
|
|
7553
|
+
else if (key === 'Escape') {
|
|
7554
|
+
if (this.open()) {
|
|
7555
|
+
event.preventDefault();
|
|
7556
|
+
this.close();
|
|
7557
|
+
}
|
|
7558
|
+
}
|
|
7559
|
+
else if (key === 'Tab') {
|
|
7560
|
+
this.close();
|
|
7561
|
+
}
|
|
7562
|
+
else if (key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
|
|
7563
|
+
this.typeahead(key);
|
|
7564
|
+
}
|
|
7565
|
+
}
|
|
7566
|
+
/**
|
|
7567
|
+
* Native-select typeahead: letters accumulate into a prefix that jumps to
|
|
7568
|
+
* the matching label; repeating one letter cycles its matches instead.
|
|
7569
|
+
*/
|
|
7570
|
+
typeahead(char) {
|
|
7571
|
+
const lower = char.toLowerCase();
|
|
7572
|
+
if (this.typedTimer)
|
|
7573
|
+
clearTimeout(this.typedTimer);
|
|
7574
|
+
this.typedTimer = setTimeout(() => (this.typed = ''), 500);
|
|
7575
|
+
const repeatCycle = this.typed.length > 0 && [...this.typed].every((c) => c === lower);
|
|
7576
|
+
this.typed += lower;
|
|
7577
|
+
const prefix = repeatCycle ? lower : this.typed;
|
|
7578
|
+
const opts = this.options();
|
|
7579
|
+
if (!opts.length)
|
|
7580
|
+
return;
|
|
7581
|
+
const wasOpen = this.open();
|
|
7582
|
+
if (!wasOpen)
|
|
7583
|
+
this.openList();
|
|
7584
|
+
const from = this.activeIndex();
|
|
7585
|
+
for (let step = repeatCycle || !wasOpen ? 1 : 0; step <= opts.length; step++) {
|
|
7586
|
+
const i = (from + step) % opts.length;
|
|
7587
|
+
const opt = opts[i];
|
|
7588
|
+
if (!opt.disabled && opt.label.toLowerCase().startsWith(prefix)) {
|
|
7589
|
+
this.activeIndex.set(i);
|
|
7590
|
+
this.scrollActiveIntoView();
|
|
7591
|
+
return;
|
|
7592
|
+
}
|
|
7593
|
+
}
|
|
7594
|
+
}
|
|
7595
|
+
move(delta) {
|
|
7596
|
+
const opts = this.options();
|
|
7597
|
+
if (!opts.length)
|
|
7598
|
+
return;
|
|
7599
|
+
let i = this.activeIndex();
|
|
7600
|
+
let guard = opts.length;
|
|
7601
|
+
do {
|
|
7602
|
+
i = (i + delta + opts.length) % opts.length;
|
|
7603
|
+
} while (opts[i].disabled && --guard > 0);
|
|
7604
|
+
this.activeIndex.set(i);
|
|
7605
|
+
this.scrollActiveIntoView();
|
|
7606
|
+
}
|
|
7607
|
+
/** Jump to `index`, walking `dir` past disabled options. */
|
|
7608
|
+
moveTo(index, dir) {
|
|
7609
|
+
const opts = this.options();
|
|
7610
|
+
let i = index;
|
|
7611
|
+
for (let n = 0; n < opts.length && opts[i]?.disabled; n++) {
|
|
7612
|
+
i = (i + dir + opts.length) % opts.length;
|
|
7613
|
+
}
|
|
7614
|
+
if (opts[i] && !opts[i].disabled) {
|
|
7615
|
+
this.activeIndex.set(i);
|
|
7616
|
+
this.scrollActiveIntoView();
|
|
7617
|
+
}
|
|
7618
|
+
}
|
|
7619
|
+
pick(opt, event) {
|
|
7620
|
+
event.preventDefault(); // keep focus on the trigger button
|
|
7621
|
+
if (opt.disabled)
|
|
7622
|
+
return;
|
|
7623
|
+
this.commit(opt);
|
|
7624
|
+
}
|
|
7625
|
+
commit(opt) {
|
|
7626
|
+
this.value.set(opt.value);
|
|
7627
|
+
this.close();
|
|
7628
|
+
this.onChange(opt.value);
|
|
7629
|
+
this.onTouched();
|
|
7630
|
+
}
|
|
7631
|
+
onBlur() {
|
|
7632
|
+
// Any mousedown inside the list preventDefaults, so focus never leaves
|
|
7633
|
+
// the trigger mid-interaction; outside clicks close via onDocClick and
|
|
7634
|
+
// Tab closes in onKeydown — blur only marks the control touched.
|
|
7635
|
+
this.onTouched();
|
|
7636
|
+
}
|
|
7637
|
+
/** Highlight starts on the selected option — or the first enabled one. */
|
|
7638
|
+
initialIndex() {
|
|
7639
|
+
const opts = this.options();
|
|
7640
|
+
const sel = opts.findIndex((o) => o.value === this.value() && !o.disabled);
|
|
7641
|
+
if (sel >= 0)
|
|
7642
|
+
return sel;
|
|
7643
|
+
const first = opts.findIndex((o) => !o.disabled);
|
|
7644
|
+
return first < 0 ? 0 : first;
|
|
7645
|
+
}
|
|
7646
|
+
scrollActiveIntoView() {
|
|
7647
|
+
setTimeout(() => {
|
|
7648
|
+
document
|
|
7649
|
+
.getElementById(`${this.listId}-${this.activeIndex()}`)
|
|
7650
|
+
?.scrollIntoView({ block: 'nearest' });
|
|
7651
|
+
});
|
|
7652
|
+
}
|
|
7653
|
+
onDocClick(event) {
|
|
7654
|
+
if (this.open() && !this.host.nativeElement.contains(event.target)) {
|
|
7655
|
+
this.close();
|
|
7656
|
+
}
|
|
7657
|
+
}
|
|
7658
|
+
writeValue(value) {
|
|
7659
|
+
this.value.set(value);
|
|
7660
|
+
}
|
|
7661
|
+
registerOnChange(fn) {
|
|
7662
|
+
this.onChange = fn;
|
|
7663
|
+
}
|
|
7664
|
+
registerOnTouched(fn) {
|
|
7665
|
+
this.onTouched = fn;
|
|
7666
|
+
}
|
|
7667
|
+
setDisabledState(isDisabled) {
|
|
7668
|
+
this.isDisabled.set(isDisabled);
|
|
7669
|
+
}
|
|
7670
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7671
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: StrctSelect, isStandalone: true, selector: "strct-select", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, listLabel: { classPropertyName: "listLabel", publicName: "listLabel", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:click": "onDocClick($event)" }, classAttribute: "strct-sel" }, providers: [
|
|
7672
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => StrctSelect), multi: true },
|
|
7673
|
+
], ngImport: i0, template: `
|
|
7674
|
+
<button
|
|
7675
|
+
#btn
|
|
7676
|
+
type="button"
|
|
7677
|
+
strctField
|
|
7678
|
+
class="strct-control strct-sel__btn"
|
|
7679
|
+
role="combobox"
|
|
7680
|
+
aria-haspopup="listbox"
|
|
7681
|
+
[attr.aria-expanded]="open()"
|
|
7682
|
+
[attr.aria-controls]="open() ? listId : null"
|
|
7683
|
+
[attr.aria-activedescendant]="open() ? listId + '-' + activeIndex() : null"
|
|
7684
|
+
[disabled]="isDisabled() || disabled()"
|
|
7685
|
+
(click)="toggle()"
|
|
7686
|
+
(keydown)="onKeydown($event)"
|
|
7687
|
+
(blur)="onBlur()"
|
|
7688
|
+
>
|
|
7689
|
+
<span class="strct-sel__value" [class.strct-sel__value--placeholder]="!selectedOption()">
|
|
7690
|
+
{{ selectedOption()?.label ?? placeholder() }}
|
|
7691
|
+
</span>
|
|
7692
|
+
<strct-icon class="strct-sel__caret" strictName="chevronDown" [size]="14" />
|
|
7693
|
+
</button>
|
|
7694
|
+
@if (open()) {
|
|
7695
|
+
<div
|
|
7696
|
+
class="strct-sel__list"
|
|
7697
|
+
role="listbox"
|
|
7698
|
+
[id]="listId"
|
|
7699
|
+
[attr.aria-label]="listLabel() || null"
|
|
7700
|
+
[strctOverlay]="btn"
|
|
7701
|
+
strctOverlayPlacement="bottom-start"
|
|
7702
|
+
[strctOverlayMatchWidth]="true"
|
|
7703
|
+
(mousedown)="$event.preventDefault()"
|
|
7704
|
+
>
|
|
7705
|
+
@for (opt of options(); track opt.value; let i = $index) {
|
|
7706
|
+
<div
|
|
7707
|
+
class="strct-sel__opt"
|
|
7708
|
+
[id]="listId + '-' + i"
|
|
7709
|
+
[class.strct-sel__opt--highlight]="i === activeIndex()"
|
|
7710
|
+
[class.strct-sel__opt--selected]="opt.value === value()"
|
|
7711
|
+
role="option"
|
|
7712
|
+
[attr.aria-selected]="opt.value === value()"
|
|
7713
|
+
[attr.aria-disabled]="opt.disabled || null"
|
|
7714
|
+
(mousedown)="pick(opt, $event)"
|
|
7715
|
+
(mousemove)="!opt.disabled && activeIndex.set(i)"
|
|
7716
|
+
>
|
|
7717
|
+
<span class="strct-sel__check" aria-hidden="true">
|
|
7718
|
+
@if (opt.value === value()) {
|
|
7719
|
+
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
7720
|
+
}
|
|
7721
|
+
</span>
|
|
7722
|
+
{{ opt.label }}
|
|
7723
|
+
</div>
|
|
7724
|
+
} @empty {
|
|
7725
|
+
<div class="strct-sel__empty">{{ emptyText() }}</div>
|
|
7726
|
+
}
|
|
7727
|
+
</div>
|
|
7728
|
+
}
|
|
7729
|
+
`, isInline: true, styles: [".strct-sel{position:relative;display:block;width:100%}.strct-sel__btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer}.strct-sel__btn:disabled{cursor:not-allowed}.strct-sel__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-sel__value--placeholder{color:var(--t3)}.strct-sel__caret{flex:none;color:var(--t3)}.strct-sel__list{z-index:200;max-height:240px;overflow-y:auto;padding:4px;background:var(--bg-1);border:1px solid var(--b2);border-radius:7px;box-shadow:var(--shh)}.strct-sel__opt{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-sel__opt--highlight{background:var(--bg-3)}.strct-sel__opt--selected{font-weight:600;background:var(--acc-s)}.strct-sel__opt--selected.strct-sel__opt--highlight{background:var(--acc-m)}.strct-sel__opt[aria-disabled=true]{color:var(--t4);cursor:default}.strct-sel__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-sel__empty{padding:9px 10px;font-size:13px;color:var(--t3)}\n"], dependencies: [{ kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }, { kind: "directive", type: StrctOverlay, selector: "[strctOverlay]", inputs: ["strctOverlay", "strctOverlayPlacement", "strctOverlayMatchWidth", "strctOverlayGap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
7730
|
+
}
|
|
7731
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctSelect, decorators: [{
|
|
7732
|
+
type: Component,
|
|
7733
|
+
args: [{ selector: 'strct-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [StrctIcon, StrctOverlay], providers: [
|
|
7734
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => StrctSelect), multi: true },
|
|
7735
|
+
], template: `
|
|
7736
|
+
<button
|
|
7737
|
+
#btn
|
|
7738
|
+
type="button"
|
|
7739
|
+
strctField
|
|
7740
|
+
class="strct-control strct-sel__btn"
|
|
7741
|
+
role="combobox"
|
|
7742
|
+
aria-haspopup="listbox"
|
|
7743
|
+
[attr.aria-expanded]="open()"
|
|
7744
|
+
[attr.aria-controls]="open() ? listId : null"
|
|
7745
|
+
[attr.aria-activedescendant]="open() ? listId + '-' + activeIndex() : null"
|
|
7746
|
+
[disabled]="isDisabled() || disabled()"
|
|
7747
|
+
(click)="toggle()"
|
|
7748
|
+
(keydown)="onKeydown($event)"
|
|
7749
|
+
(blur)="onBlur()"
|
|
7750
|
+
>
|
|
7751
|
+
<span class="strct-sel__value" [class.strct-sel__value--placeholder]="!selectedOption()">
|
|
7752
|
+
{{ selectedOption()?.label ?? placeholder() }}
|
|
7753
|
+
</span>
|
|
7754
|
+
<strct-icon class="strct-sel__caret" strictName="chevronDown" [size]="14" />
|
|
7755
|
+
</button>
|
|
7756
|
+
@if (open()) {
|
|
7757
|
+
<div
|
|
7758
|
+
class="strct-sel__list"
|
|
7759
|
+
role="listbox"
|
|
7760
|
+
[id]="listId"
|
|
7761
|
+
[attr.aria-label]="listLabel() || null"
|
|
7762
|
+
[strctOverlay]="btn"
|
|
7763
|
+
strctOverlayPlacement="bottom-start"
|
|
7764
|
+
[strctOverlayMatchWidth]="true"
|
|
7765
|
+
(mousedown)="$event.preventDefault()"
|
|
7766
|
+
>
|
|
7767
|
+
@for (opt of options(); track opt.value; let i = $index) {
|
|
7768
|
+
<div
|
|
7769
|
+
class="strct-sel__opt"
|
|
7770
|
+
[id]="listId + '-' + i"
|
|
7771
|
+
[class.strct-sel__opt--highlight]="i === activeIndex()"
|
|
7772
|
+
[class.strct-sel__opt--selected]="opt.value === value()"
|
|
7773
|
+
role="option"
|
|
7774
|
+
[attr.aria-selected]="opt.value === value()"
|
|
7775
|
+
[attr.aria-disabled]="opt.disabled || null"
|
|
7776
|
+
(mousedown)="pick(opt, $event)"
|
|
7777
|
+
(mousemove)="!opt.disabled && activeIndex.set(i)"
|
|
7778
|
+
>
|
|
7779
|
+
<span class="strct-sel__check" aria-hidden="true">
|
|
7780
|
+
@if (opt.value === value()) {
|
|
7781
|
+
<strct-icon strictName="check" [size]="12" [strokeWidth]="1.8" />
|
|
7782
|
+
}
|
|
7783
|
+
</span>
|
|
7784
|
+
{{ opt.label }}
|
|
7785
|
+
</div>
|
|
7786
|
+
} @empty {
|
|
7787
|
+
<div class="strct-sel__empty">{{ emptyText() }}</div>
|
|
7788
|
+
}
|
|
7789
|
+
</div>
|
|
7790
|
+
}
|
|
7791
|
+
`, host: { class: 'strct-sel' }, styles: [".strct-sel{position:relative;display:block;width:100%}.strct-sel__btn{display:flex;align-items:center;gap:8px;text-align:start;cursor:pointer}.strct-sel__btn:disabled{cursor:not-allowed}.strct-sel__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.strct-sel__value--placeholder{color:var(--t3)}.strct-sel__caret{flex:none;color:var(--t3)}.strct-sel__list{z-index:200;max-height:240px;overflow-y:auto;padding:4px;background:var(--bg-1);border:1px solid var(--b2);border-radius:7px;box-shadow:var(--shh)}.strct-sel__opt{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-sel__opt--highlight{background:var(--bg-3)}.strct-sel__opt--selected{font-weight:600;background:var(--acc-s)}.strct-sel__opt--selected.strct-sel__opt--highlight{background:var(--acc-m)}.strct-sel__opt[aria-disabled=true]{color:var(--t4);cursor:default}.strct-sel__check{display:inline-flex;width:14px;flex:none;color:var(--acc)}.strct-sel__empty{padding:9px 10px;font-size:13px;color:var(--t3)}\n"] }]
|
|
7792
|
+
}], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], listLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "listLabel", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], onDocClick: [{
|
|
7793
|
+
type: HostListener,
|
|
7794
|
+
args: ['document:click', ['$event']]
|
|
7795
|
+
}] } });
|
|
7796
|
+
|
|
7371
7797
|
const MONTHS = [
|
|
7372
7798
|
'January',
|
|
7373
7799
|
'February',
|
|
@@ -15029,7 +15455,7 @@ class StrctSplitButton {
|
|
|
15029
15455
|
}
|
|
15030
15456
|
</strct-dropdown>
|
|
15031
15457
|
</div>
|
|
15032
|
-
`, isInline: true, styles: [".strct-sbt{display:inline-flex;align-items:stretch}.strct-sbt .strct-dd{display:inline-flex;align-self:stretch}.strct-sbt .strct-dd__trigger{display:inline-flex;align-items:stretch}.strct-sbt__chev{align-self:stretch;height:100%}.strct-sbt__main,.strct-sbt__chev{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--acc);background:transparent;color:var(--acc);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;padding:5px 12px}.strct-sbt__main{border-start-start-radius:7px;border-end-start-radius:7px;border-inline-end:0}.strct-sbt__chev{padding:5px 6px;border-start-end-radius:7px;border-end-end-radius:7px;border-inline-start:1px solid var(--acc50)}.strct-sbt--solid .strct-sbt__main,.strct-sbt--solid .strct-sbt__chev{background:var(--acc);color:var(--inv)}.strct-sbt--solid .strct-sbt__chev{border-inline-start-color:color-mix(in srgb,var(--inv) 30%,var(--acc))}.strct-sbt__main:hover:not(:disabled),.strct-sbt__chev:hover:not(:disabled){background:var(--acc18)}.strct-sbt--solid .strct-sbt__main:hover:not(:disabled),.strct-sbt--solid .strct-sbt__chev:hover:not(:disabled){filter:brightness(1.08);background:var(--acc)}.strct-sbt__main:disabled,.strct-sbt__chev:disabled{opacity:.5;cursor:default}.strct-sbt__main:focus-visible,.strct-sbt__chev:focus-visible{outline:2px solid var(--acc50);outline-offset:1px;position:relative;z-index:1}\n"], dependencies: [{ kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel"] }, { kind: "component", type: StrctDropdownDivider, selector: "strct-dropdown-divider" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item", inputs: ["critical", "disabled"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
15458
|
+
`, isInline: true, styles: [".strct-sbt{display:inline-flex;align-items:stretch}.strct-sbt .strct-dd{display:inline-flex;align-self:stretch}.strct-sbt .strct-dd__trigger{display:inline-flex;align-items:stretch}.strct-sbt__chev{align-self:stretch;height:100%}.strct-sbt__main,.strct-sbt__chev{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--acc);background:transparent;color:var(--acc);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;padding:5px 12px}.strct-sbt__main{border-start-start-radius:7px;border-end-start-radius:7px;border-inline-end:0}.strct-sbt__chev{padding:5px 6px;border-start-end-radius:7px;border-end-end-radius:7px;border-inline-start:1px solid var(--acc50)}.strct-sbt--solid .strct-sbt__main,.strct-sbt--solid .strct-sbt__chev{background:var(--acc);color:var(--inv)}.strct-sbt--solid .strct-sbt__chev{border-inline-start-color:color-mix(in srgb,var(--inv) 30%,var(--acc))}.strct-sbt__main:hover:not(:disabled),.strct-sbt__chev:hover:not(:disabled){background:var(--acc18)}.strct-sbt--solid .strct-sbt__main:hover:not(:disabled),.strct-sbt--solid .strct-sbt__chev:hover:not(:disabled){filter:brightness(1.08);background:var(--acc)}.strct-sbt__main:disabled,.strct-sbt__chev:disabled{opacity:.5;cursor:default}.strct-sbt__main:focus-visible,.strct-sbt__chev:focus-visible{outline:2px solid var(--acc50);outline-offset:1px;position:relative;z-index:1}\n"], dependencies: [{ kind: "component", type: StrctDropdown, selector: "strct-dropdown", inputs: ["align", "popover", "popoverLabel"] }, { kind: "component", type: StrctDropdownDivider, selector: "strct-dropdown-divider" }, { kind: "component", type: StrctDropdownItem, selector: "strct-dropdown-item", inputs: ["selected", "critical", "disabled"] }, { kind: "directive", type: StrctDropdownTrigger, selector: "[strctDropdownTrigger]" }, { kind: "component", type: StrctIcon, selector: "strct-icon", inputs: ["name", "strictName", "size", "strokeWidth", "badge", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
15033
15459
|
}
|
|
15034
15460
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: StrctSplitButton, decorators: [{
|
|
15035
15461
|
type: Component,
|
|
@@ -15891,5 +16317,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
15891
16317
|
* Generated bundle index. Do not edit.
|
|
15892
16318
|
*/
|
|
15893
16319
|
|
|
15894
|
-
export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, strctComputeDiff, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone };
|
|
16320
|
+
export { STRCT_ICONS, STRCT_ICON_GROUPS, STRCT_ICON_NAMES, STRCT_MASKS, STRCT_PALETTES, STRCT_RAW_ICONS, STRCT_TIME_RANGE_PRESETS, STRCT_WIZARD_DEFAULTS, StrctAccordion, StrctAccordionPanel, StrctAlert, StrctAnnouncer, StrctAvatar, StrctBadge, StrctBreadcrumb, StrctBreadcrumbItem, StrctButton, StrctButtonGroup, StrctBytesPipe, StrctCard, StrctCardBlock, StrctCardFooter, StrctCardHeader, StrctCascadeHost, StrctCascadeNode, StrctCascadeSelect, StrctCellDef, StrctCellStatus, StrctChart, StrctCheckbox, StrctChips, StrctCode, StrctColorPicker, StrctCombobox, StrctCommandPalette, StrctContextMenu, StrctContextMenuTrigger, StrctCopy, StrctDatagrid, StrctDatagridActionBar, StrctDatepicker, StrctDesc, StrctDescriptionList, StrctDiff, StrctDivider, StrctDonut, StrctDrawer, StrctDrawerFooter, StrctDropdown, StrctDropdownDivider, StrctDropdownItem, StrctDropdownTrigger, StrctDurationPipe, StrctEmptyState, StrctField, StrctFile, StrctFilterBar, StrctFlow, StrctFooter, StrctGauge, StrctHeader, StrctHero, StrctHotkeysHelp, StrctHotkeysService, StrctIcon, StrctInput, StrctInputMask, StrctInputOtp, StrctKbd, StrctKnob, StrctLogViewer, StrctLogin, StrctMenuPanel, StrctMenuService, StrctMenubar, StrctMetricTile, StrctModal, StrctNav, StrctNavItem, StrctOverlay, StrctPageHeader, StrctPageHeaderActions, StrctPageHeaderCrumbs, StrctPagination, StrctPassword, StrctProgress, StrctRadio, StrctRadioGroup, StrctRail, StrctRange, StrctRatePipe, StrctRating, StrctReorder, StrctReorderItem, StrctRowDetailDef, StrctSearchbox, StrctSectionMenu, StrctSegmented, StrctSelect, StrctShell, StrctShellService, StrctSiPipe, StrctSignpost, StrctSkeleton, StrctSparkline, StrctSpeedDial, StrctSpinner, StrctSplitButton, StrctSplitter, StrctStack, StrctStackItem, StrctStep, StrctSubmenu, StrctTab, StrctTable, StrctTabs, StrctTag, StrctThemeService, StrctThemeSwitcher, StrctTimeRangePicker, StrctTimeline, StrctTimelineItem, StrctToastOutlet, StrctToastService, StrctToggle, StrctTooltip, StrctTour, StrctTransfer, StrctTree, StrctTreeNode, StrctVerticalNav, StrctWatermark, StrctWizard, StrctWizardAside, parseAnsi, provideStrctWizardDefaults, registerStrctIcon, strctComputeDiff, strctFormatBytes, strctFormatDuration, strctFormatRate, strctFormatSi, strctValidationIcon, strctValidationTone };
|
|
15895
16321
|
//# sourceMappingURL=akcelik-strct.mjs.map
|