@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.
@@ -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((ElementRef));
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.update((v) => !v);
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
- /** Menu items close on activation; popover form controls never do. */
3429
- onInnerActivate() {
3430
- if (!this.popover())
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.close();
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.enter)="onInnerActivate()"
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.enter)="onInnerActivate()"
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.1.0", version: "21.2.16", type: StrctDropdownItem, isStandalone: true, selector: "strct-dropdown-item", inputs: { critical: { classPropertyName: "critical", publicName: "critical", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "menuitem" }, properties: { "class.strct-dd__item--critical": "critical()", "attr.aria-disabled": "disabled() || null" }, classAttribute: "strct-dd__item" }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".strct-dd__item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover{background:var(--bg-3)}.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"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
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: `<ng-content />`, host: {
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:7px 10px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--t1)}.strct-dd__item:hover{background:var(--bg-3)}.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"] }]
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
- @if (title()) {
3937
- <div class="strct-wiz__vtitle">{{ title() }}</div>
3938
- }
3939
- <div class="strct-wiz__pbar" aria-hidden="true">
3940
- <i [style.width.%]="progressPct()"></i>
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:18px 24px 13px;border-bottom:1px solid var(--b1)}.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)}.strct-wiz__rail{display:flex;flex-direction:column;padding:20px 18px 16px;background:var(--bg-2);border-inline-end:1px solid var(--b1);min-width:0}.strct-wiz__vtitle{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:1.3;margin-bottom:12px}.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 16px;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__vtitle,.strct-wiz__pbar,.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}.strct-wiz__chead{padding:14px 18px 11px}}@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 });
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
- @if (title()) {
4047
- <div class="strct-wiz__vtitle">{{ title() }}</div>
4048
- }
4049
- <div class="strct-wiz__pbar" aria-hidden="true">
4050
- <i [style.width.%]="progressPct()"></i>
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:18px 24px 13px;border-bottom:1px solid var(--b1)}.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)}.strct-wiz__rail{display:flex;flex-direction:column;padding:20px 18px 16px;background:var(--bg-2);border-inline-end:1px solid var(--b1);min-width:0}.strct-wiz__vtitle{font-size:15px;font-weight:600;letter-spacing:-.2px;line-height:1.3;margin-bottom:12px}.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 16px;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__vtitle,.strct-wiz__pbar,.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}.strct-wiz__chead{padding:14px 18px 11px}}@media(prefers-reduced-motion:reduce){.strct-wiz__pbar i,.strct-wiz__ring,.strct-wiz__vlabel,.strct-wiz__vdesc{transition:none}}\n"] }]
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