@educarehq/solaris-components 0.3.9 → 0.4.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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, Renderer2, Directive, TemplateRef, Injectable, ViewContainerRef, DestroyRef, Input, ContentChild, ViewEncapsulation, Component, EventEmitter, Output, HostBinding, ChangeDetectionStrategy, ApplicationRef, signal, computed, effect, ContentChildren, HostListener, Optional, booleanAttribute, InjectionToken, makeEnvironmentProviders, PLATFORM_ID, input, viewChild, numberAttribute, afterNextRender, ViewChild, output, forwardRef, Host, Injector } from '@angular/core';
2
+ import { inject, ElementRef, Renderer2, Directive, TemplateRef, Injectable, ViewContainerRef, DestroyRef, Input, ContentChild, ViewEncapsulation, Component, EventEmitter, Output, HostBinding, ChangeDetectionStrategy, ViewChildren, ContentChildren, ApplicationRef, signal, computed, effect, HostListener, Optional, booleanAttribute, InjectionToken, makeEnvironmentProviders, PLATFORM_ID, input, viewChild, numberAttribute, afterNextRender, ViewChild, output, forwardRef, Host, Injector } from '@angular/core';
3
3
  import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
4
4
  import { Overlay } from '@angular/cdk/overlay';
5
5
  import { TemplatePortal } from '@angular/cdk/portal';
@@ -7,9 +7,10 @@ import { fromEvent, merge } from 'rxjs';
7
7
  import { filter } from 'rxjs/operators';
8
8
  import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';
9
9
  import { RouterLink } from '@angular/router';
10
- import { NgClass, NgTemplateOutlet, NgStyle, isPlatformBrowser, DOCUMENT, NgOptimizedImage } from '@angular/common';
11
- import { SOLARIS_TRANSLATION, SOLARIS_TRANSLATION_CONFIGURATION, SolarisTranslationPipe } from '@educarehq/solaris-services';
12
- import * as i1 from '@angular/forms';
10
+ import * as i1 from '@angular/common';
11
+ import { NgClass, NgTemplateOutlet, CommonModule, NgStyle, isPlatformBrowser, DOCUMENT, NgOptimizedImage } from '@angular/common';
12
+ import { SolarisTranslationPipe, SOLARIS_TRANSLATION, SOLARIS_TRANSLATION_CONFIGURATION } from '@educarehq/solaris-services';
13
+ import * as i1$1 from '@angular/forms';
13
14
  import { NG_VALUE_ACCESSOR, FormsModule, NgForm, FormGroupDirective, NgControl, NG_VALIDATORS } from '@angular/forms';
14
15
  import { getCountries, getCountryCallingCode, parsePhoneNumberFromString, AsYouType } from 'libphonenumber-js';
15
16
  import intlTelInput from 'intl-tel-input';
@@ -453,6 +454,501 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
453
454
  type: Output
454
455
  }] } });
455
456
 
457
+ class SolarisStepperItem {
458
+ stepId;
459
+ label;
460
+ labelKey;
461
+ title;
462
+ titleKey;
463
+ description;
464
+ descriptionKey;
465
+ icon;
466
+ optional = false;
467
+ phase = null;
468
+ status = 'default';
469
+ badgeText;
470
+ badgeTextKey;
471
+ badgeColor;
472
+ badgeVariant = 'subtle';
473
+ badgeSize = 'sm';
474
+ badgePill = true;
475
+ active = false;
476
+ index = 0;
477
+ headerId = '';
478
+ panelId = '';
479
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisStepperItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
480
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: SolarisStepperItem, isStandalone: true, selector: "solaris-stepper-item", inputs: { stepId: "stepId", label: "label", labelKey: "labelKey", title: "title", titleKey: "titleKey", description: "description", descriptionKey: "descriptionKey", icon: "icon", optional: "optional", phase: "phase", status: "status", badgeText: "badgeText", badgeTextKey: "badgeTextKey", badgeColor: "badgeColor", badgeVariant: "badgeVariant", badgeSize: "badgeSize", badgePill: "badgePill" }, ngImport: i0, template: "<section class=\"solaris-stepper-item__panel\" role=\"tabpanel\" [id]=\"panelId\"\r\n [attr.aria-labelledby]=\"headerId\" [attr.aria-hidden]=\"!active\"\r\n [attr.hidden]=\"active ? null : ''\">\r\n <ng-content></ng-content>\r\n</section>\r\n", styles: [":host{display:block;min-width:0}.solaris-stepper-item__panel{min-width:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
481
+ }
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisStepperItem, decorators: [{
483
+ type: Component,
484
+ args: [{ selector: 'solaris-stepper-item', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"solaris-stepper-item__panel\" role=\"tabpanel\" [id]=\"panelId\"\r\n [attr.aria-labelledby]=\"headerId\" [attr.aria-hidden]=\"!active\"\r\n [attr.hidden]=\"active ? null : ''\">\r\n <ng-content></ng-content>\r\n</section>\r\n", styles: [":host{display:block;min-width:0}.solaris-stepper-item__panel{min-width:0}\n"] }]
485
+ }], propDecorators: { stepId: [{
486
+ type: Input
487
+ }], label: [{
488
+ type: Input
489
+ }], labelKey: [{
490
+ type: Input
491
+ }], title: [{
492
+ type: Input
493
+ }], titleKey: [{
494
+ type: Input
495
+ }], description: [{
496
+ type: Input
497
+ }], descriptionKey: [{
498
+ type: Input
499
+ }], icon: [{
500
+ type: Input
501
+ }], optional: [{
502
+ type: Input
503
+ }], phase: [{
504
+ type: Input
505
+ }], status: [{
506
+ type: Input
507
+ }], badgeText: [{
508
+ type: Input
509
+ }], badgeTextKey: [{
510
+ type: Input
511
+ }], badgeColor: [{
512
+ type: Input
513
+ }], badgeVariant: [{
514
+ type: Input
515
+ }], badgeSize: [{
516
+ type: Input
517
+ }], badgePill: [{
518
+ type: Input
519
+ }] } });
520
+
521
+ class SolarisBadge {
522
+ pill = false;
523
+ customTextColor;
524
+ interactive = false;
525
+ size = 'md';
526
+ variant = 'subtle';
527
+ color = 'surface';
528
+ ariaHidden = null;
529
+ hostClass = 'solaris-badge-host';
530
+ presetColors = new Set([
531
+ 'primary', 'success', 'warning', 'error', 'info', 'surface',
532
+ ]);
533
+ get colorClass() {
534
+ return this.isCustomColor ? 'color-custom' : `color-${this.color}`;
535
+ }
536
+ get isCustomColor() {
537
+ return !this.presetColors.has(this.color);
538
+ }
539
+ get customColorValue() {
540
+ return this.isCustomColor ? String(this.color) : null;
541
+ }
542
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
543
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: SolarisBadge, isStandalone: true, selector: "solaris-badge", inputs: { pill: "pill", customTextColor: "customTextColor", interactive: "interactive", size: "size", variant: "variant", color: "color", ariaHidden: ["aria-hidden", "ariaHidden"] }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<span class=\"solaris-badge\" [attr.aria-hidden]=\"ariaHidden\"\r\n [ngClass]=\"[ 'variant-' + variant, colorClass,\r\n 'size-' + size, pill ? 'is-pill' : '',\r\n interactive ? 'is-interactive' : '' ]\"\r\n [style.--solaris-badge-custom]=\"customColorValue\"\r\n [style.--solaris-badge-custom-fg]=\"customTextColor\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [":host.solaris-badge-host{display:inline-flex}.solaris-badge{--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-radius: var(--solaris-radius-full);--solaris-badge-fg-solid: var(--solaris-badge-fg);line-height:1;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;display:inline-flex;gap:var(--solaris-space-2);border:1px solid transparent;letter-spacing:var(--solaris-ls-sm);border-radius:var(--solaris-badge-radius)}.solaris-badge.size-sm{padding:.3rem .6rem;font-size:var(--solaris-fs-10)}.solaris-badge.size-md{padding:.4rem .8rem;font-size:var(--solaris-fs-12)}.solaris-badge.size-lg{padding:.5rem 1rem;font-size:var(--solaris-fs-14)}.solaris-badge.is-pill{--solaris-badge-radius: var(--solaris-radius-full)}.solaris-badge.is-interactive{cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.solaris-badge.is-interactive:hover{box-shadow:var(--solaris-shadow-xs)}.solaris-badge.color-surface{--_base: var(--solaris-color-surface-2);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-primary{--_base: var(--solaris-color-primary);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-success{--_base: var(--solaris-color-success);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-warning{--_base: var(--solaris-color-warning);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-error{--_base: var(--solaris-color-error);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-info{--_base: var(--solaris-color-info);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-custom{--_base: var(--solaris-badge-custom, var(--solaris-color-surface-2));--solaris-badge-fg-solid: var(--solaris-badge-custom-fg, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-fg: var(--solaris-badge-custom-fg, var(--solaris-color-text));--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.variant-solid{color:var(--solaris-badge-fg-solid);background:var(--solaris-badge-bg-solid, var(--solaris-badge-bg));border-color:var(--solaris-badge-border-solid, var(--solaris-badge-border))}.solaris-badge.variant-subtle{color:var(--solaris-badge-fg);background:var(--solaris-badge-bg);border-color:var(--solaris-badge-border)}.solaris-badge.variant-outline{border-color:var(--solaris-badge-border);color:color-mix(in srgb,var(--solaris-badge-border) 30%,white);background:color-mix(in srgb,var(--solaris-badge-border) 20%,transparent)}.solaris-badge.variant-solid.color-surface{color:var(--solaris-color-text);border-color:var(--solaris-color-border);background:var(--solaris-color-surface-2)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
544
+ }
545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisBadge, decorators: [{
546
+ type: Component,
547
+ args: [{ selector: 'solaris-badge', standalone: true, imports: [
548
+ NgClass
549
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"solaris-badge\" [attr.aria-hidden]=\"ariaHidden\"\r\n [ngClass]=\"[ 'variant-' + variant, colorClass,\r\n 'size-' + size, pill ? 'is-pill' : '',\r\n interactive ? 'is-interactive' : '' ]\"\r\n [style.--solaris-badge-custom]=\"customColorValue\"\r\n [style.--solaris-badge-custom-fg]=\"customTextColor\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [":host.solaris-badge-host{display:inline-flex}.solaris-badge{--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-radius: var(--solaris-radius-full);--solaris-badge-fg-solid: var(--solaris-badge-fg);line-height:1;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;display:inline-flex;gap:var(--solaris-space-2);border:1px solid transparent;letter-spacing:var(--solaris-ls-sm);border-radius:var(--solaris-badge-radius)}.solaris-badge.size-sm{padding:.3rem .6rem;font-size:var(--solaris-fs-10)}.solaris-badge.size-md{padding:.4rem .8rem;font-size:var(--solaris-fs-12)}.solaris-badge.size-lg{padding:.5rem 1rem;font-size:var(--solaris-fs-14)}.solaris-badge.is-pill{--solaris-badge-radius: var(--solaris-radius-full)}.solaris-badge.is-interactive{cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.solaris-badge.is-interactive:hover{box-shadow:var(--solaris-shadow-xs)}.solaris-badge.color-surface{--_base: var(--solaris-color-surface-2);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-primary{--_base: var(--solaris-color-primary);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-success{--_base: var(--solaris-color-success);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-warning{--_base: var(--solaris-color-warning);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-error{--_base: var(--solaris-color-error);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-info{--_base: var(--solaris-color-info);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-custom{--_base: var(--solaris-badge-custom, var(--solaris-color-surface-2));--solaris-badge-fg-solid: var(--solaris-badge-custom-fg, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-fg: var(--solaris-badge-custom-fg, var(--solaris-color-text));--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.variant-solid{color:var(--solaris-badge-fg-solid);background:var(--solaris-badge-bg-solid, var(--solaris-badge-bg));border-color:var(--solaris-badge-border-solid, var(--solaris-badge-border))}.solaris-badge.variant-subtle{color:var(--solaris-badge-fg);background:var(--solaris-badge-bg);border-color:var(--solaris-badge-border)}.solaris-badge.variant-outline{border-color:var(--solaris-badge-border);color:color-mix(in srgb,var(--solaris-badge-border) 30%,white);background:color-mix(in srgb,var(--solaris-badge-border) 20%,transparent)}.solaris-badge.variant-solid.color-surface{color:var(--solaris-color-text);border-color:var(--solaris-color-border);background:var(--solaris-color-surface-2)}\n"] }]
550
+ }], propDecorators: { pill: [{
551
+ type: Input
552
+ }], customTextColor: [{
553
+ type: Input
554
+ }], interactive: [{
555
+ type: Input
556
+ }], size: [{
557
+ type: Input
558
+ }], variant: [{
559
+ type: Input
560
+ }], color: [{
561
+ type: Input
562
+ }], ariaHidden: [{
563
+ type: Input,
564
+ args: [{ alias: 'aria-hidden' }]
565
+ }], hostClass: [{
566
+ type: HostBinding,
567
+ args: ['class']
568
+ }] } });
569
+
570
+ class SolarisStepper {
571
+ changeDetectorRef;
572
+ destroyRef = inject(DestroyRef);
573
+ static nextId = 0;
574
+ orientation = 'horizontal';
575
+ appearance = 'default';
576
+ linear = true;
577
+ interactive = true;
578
+ activeIndex = null;
579
+ defaultActiveIndex = 0;
580
+ allowBackNavigation = true;
581
+ allowFutureNavigation = false;
582
+ allowSkip = false;
583
+ showStateBadges = false;
584
+ activeIndexChange = new EventEmitter();
585
+ nextChange = new EventEmitter();
586
+ previousChange = new EventEmitter();
587
+ stepChange = new EventEmitter();
588
+ itemsQuery;
589
+ stepButtons;
590
+ items = [];
591
+ uid = SolarisStepper.nextId++;
592
+ internalActiveIndex = 0;
593
+ get currentIndex() {
594
+ return this.normalizeIndex(this.isControlled() ? this.activeIndex ?? 0 : this.internalActiveIndex);
595
+ }
596
+ constructor(changeDetectorRef) {
597
+ this.changeDetectorRef = changeDetectorRef;
598
+ }
599
+ ngAfterContentInit() {
600
+ this.internalActiveIndex = this.defaultActiveIndex;
601
+ this.syncItems();
602
+ this.itemsQuery?.changes
603
+ .pipe(takeUntilDestroyed(this.destroyRef))
604
+ .subscribe(() => {
605
+ this.syncItems();
606
+ });
607
+ }
608
+ ngOnChanges(changes) {
609
+ if (changes['defaultActiveIndex'] && !this.isControlled()) {
610
+ this.internalActiveIndex = this.defaultActiveIndex;
611
+ }
612
+ if (changes['activeIndex'] ||
613
+ changes['orientation'] ||
614
+ changes['appearance'] ||
615
+ changes['linear']) {
616
+ this.syncItems();
617
+ }
618
+ }
619
+ next() {
620
+ const target = this.findAdjacentNavigableIndex(this.currentIndex, 1);
621
+ if (target === null)
622
+ return;
623
+ this.commitIndexChange(target, 'next');
624
+ this.nextChange.emit(target);
625
+ }
626
+ previous() {
627
+ const target = this.findAdjacentNavigableIndex(this.currentIndex, -1);
628
+ if (target === null)
629
+ return;
630
+ this.commitIndexChange(target, 'previous');
631
+ this.previousChange.emit(target);
632
+ }
633
+ setActiveStep(index) {
634
+ if (!this.isProgrammaticallyNavigable(index))
635
+ return;
636
+ this.commitIndexChange(index, 'programmatic');
637
+ }
638
+ onStepHeaderClick(index) {
639
+ if (!this.canActivateByHeaderClick(index))
640
+ return;
641
+ this.commitIndexChange(index, 'header');
642
+ }
643
+ onStepKeydown(event, index) {
644
+ const isHorizontal = this.orientation === 'horizontal';
645
+ switch (event.key) {
646
+ case 'ArrowRight':
647
+ if (!isHorizontal)
648
+ return;
649
+ event.preventDefault();
650
+ this.focusRelativeButton(index, 1);
651
+ return;
652
+ case 'ArrowLeft':
653
+ if (!isHorizontal)
654
+ return;
655
+ event.preventDefault();
656
+ this.focusRelativeButton(index, -1);
657
+ return;
658
+ case 'ArrowDown':
659
+ if (isHorizontal)
660
+ return;
661
+ event.preventDefault();
662
+ this.focusRelativeButton(index, 1);
663
+ return;
664
+ case 'ArrowUp':
665
+ if (isHorizontal)
666
+ return;
667
+ event.preventDefault();
668
+ this.focusRelativeButton(index, -1);
669
+ return;
670
+ case 'Home':
671
+ event.preventDefault();
672
+ this.focusButton(0);
673
+ return;
674
+ case 'End':
675
+ event.preventDefault();
676
+ this.focusButton(this.items.length - 1);
677
+ return;
678
+ default:
679
+ return;
680
+ }
681
+ }
682
+ isCurrent(index) {
683
+ return index === this.currentIndex;
684
+ }
685
+ isCompleted(index) {
686
+ return this.resolvePhase(this.items[index], index) === 'completed';
687
+ }
688
+ isPending(index) {
689
+ return this.resolvePhase(this.items[index], index) === 'pending';
690
+ }
691
+ resolvePhase(item, index) {
692
+ if (item.phase)
693
+ return item.phase;
694
+ if (index < this.currentIndex)
695
+ return 'completed';
696
+ if (index === this.currentIndex)
697
+ return 'current';
698
+ return 'pending';
699
+ }
700
+ getStepClasses(item, index) {
701
+ return {
702
+ 'is-current': this.isCurrent(index),
703
+ 'is-completed': this.isCompleted(index),
704
+ 'is-pending': this.isPending(index),
705
+ 'is-warning': item.status === 'warning',
706
+ 'is-error': item.status === 'error',
707
+ 'is-disabled': item.status === 'disabled',
708
+ 'is-locked': item.status === 'locked',
709
+ 'is-clickable': this.canActivateByHeaderClick(index),
710
+ };
711
+ }
712
+ getConnectorClasses(index) {
713
+ return {
714
+ 'is-completed': index < this.currentIndex,
715
+ 'is-current': index === this.currentIndex,
716
+ };
717
+ }
718
+ getMarkerIcon(item, index) {
719
+ if (this.appearance === 'compact')
720
+ return null;
721
+ if (item.status === 'locked')
722
+ return 'ph-lock';
723
+ if (item.status === 'error')
724
+ return 'ph-x-circle';
725
+ if (item.status === 'warning')
726
+ return 'ph-warning-circle';
727
+ if (this.isCompleted(index))
728
+ return 'ph-check';
729
+ return item.icon ?? null;
730
+ }
731
+ getMarkerText(item, index) {
732
+ if (this.appearance === 'compact') {
733
+ return `${index + 1}.`;
734
+ }
735
+ return this.getMarkerIcon(item, index) ? null : String(index + 1);
736
+ }
737
+ hasBadge(item, index) {
738
+ if (!this.showStateBadges || this.appearance === 'compact')
739
+ return false;
740
+ return Boolean(item.badgeText ||
741
+ item.badgeTextKey ||
742
+ this.getAutoBadgeTranslationKey(item, index));
743
+ }
744
+ getResolvedLabel(item, index) {
745
+ if (item.labelKey || item.label)
746
+ return null;
747
+ return `${index + 1}`;
748
+ }
749
+ getResolvedBadgeColor(item, index) {
750
+ if (item.badgeColor)
751
+ return item.badgeColor;
752
+ if (item.status === 'error')
753
+ return 'error';
754
+ if (item.status === 'warning')
755
+ return 'warning';
756
+ if (item.status === 'locked' || item.status === 'disabled')
757
+ return 'surface';
758
+ const phase = this.resolvePhase(item, index);
759
+ if (phase === 'completed')
760
+ return 'success';
761
+ if (phase === 'current')
762
+ return 'primary';
763
+ return 'surface';
764
+ }
765
+ getResolvedBadgeVariant(item) {
766
+ return item.badgeVariant;
767
+ }
768
+ getAutoBadgeTranslationKey(item, index) {
769
+ if (item.status === 'error')
770
+ return 'ui.solaris.stepper.error';
771
+ if (item.status === 'warning')
772
+ return 'ui.solaris.stepper.warning';
773
+ if (item.status === 'locked')
774
+ return 'ui.solaris.stepper.locked';
775
+ if (item.status === 'disabled')
776
+ return 'ui.solaris.stepper.disabled';
777
+ const phase = this.resolvePhase(item, index);
778
+ if (phase === 'completed')
779
+ return 'ui.solaris.stepper.completed';
780
+ if (phase === 'current')
781
+ return 'ui.solaris.stepper.inProgress';
782
+ return 'ui.solaris.stepper.pending';
783
+ }
784
+ getTitle(item) {
785
+ return item.title ?? '';
786
+ }
787
+ getDescription(item) {
788
+ return item.description ?? '';
789
+ }
790
+ getStepAriaLabel(item, index) {
791
+ const phase = this.resolvePhase(item, index);
792
+ const title = item.title ?? item.titleKey ?? `${index + 1}`;
793
+ if (phase === 'completed') {
794
+ return `${title} completed`;
795
+ }
796
+ if (phase === 'current') {
797
+ return `${title} current step`;
798
+ }
799
+ if (item.status === 'locked') {
800
+ return `${title} locked`;
801
+ }
802
+ if (item.status === 'disabled') {
803
+ return `${title} disabled`;
804
+ }
805
+ return title;
806
+ }
807
+ trackByIndex(index) {
808
+ return index;
809
+ }
810
+ syncItems() {
811
+ this.items = this.itemsQuery?.toArray() ?? [];
812
+ const currentIndex = this.normalizeIndex(this.isControlled() ? this.activeIndex ?? 0 : this.internalActiveIndex);
813
+ this.items.forEach((item, index) => {
814
+ item.index = index;
815
+ item.headerId = `solaris-stepper-${this.uid}-tab-${index}`;
816
+ item.panelId = `solaris-stepper-${this.uid}-panel-${index}`;
817
+ item.active = index === currentIndex;
818
+ });
819
+ this.changeDetectorRef.markForCheck();
820
+ }
821
+ commitIndexChange(index, reason) {
822
+ const normalized = this.normalizeIndex(index);
823
+ if (normalized === this.currentIndex)
824
+ return;
825
+ const previousIndex = this.currentIndex;
826
+ if (!this.isControlled()) {
827
+ this.internalActiveIndex = normalized;
828
+ this.syncItems();
829
+ }
830
+ this.activeIndexChange.emit(normalized);
831
+ this.stepChange.emit({
832
+ previousIndex,
833
+ currentIndex: normalized,
834
+ reason,
835
+ });
836
+ }
837
+ canActivateByHeaderClick(index) {
838
+ if (!this.interactive)
839
+ return false;
840
+ if (!this.isInBounds(index))
841
+ return false;
842
+ const item = this.items[index];
843
+ if (!item || this.isDisabledLike(item))
844
+ return false;
845
+ if (index === this.currentIndex)
846
+ return true;
847
+ if (index < this.currentIndex)
848
+ return this.allowBackNavigation;
849
+ if (!this.linear)
850
+ return true;
851
+ if (!this.allowFutureNavigation)
852
+ return false;
853
+ if (!this.allowSkip)
854
+ return index === this.currentIndex + 1;
855
+ return true;
856
+ }
857
+ isProgrammaticallyNavigable(index) {
858
+ if (!this.isInBounds(index))
859
+ return false;
860
+ const item = this.items[index];
861
+ if (!item)
862
+ return false;
863
+ return !this.isDisabledLike(item);
864
+ }
865
+ findAdjacentNavigableIndex(start, direction) {
866
+ let cursor = start + direction;
867
+ while (this.isInBounds(cursor)) {
868
+ const item = this.items[cursor];
869
+ if (item && !this.isDisabledLike(item)) {
870
+ return cursor;
871
+ }
872
+ cursor += direction;
873
+ }
874
+ return null;
875
+ }
876
+ isDisabledLike(item) {
877
+ return item.status === 'disabled' || item.status === 'locked';
878
+ }
879
+ isControlled() {
880
+ return this.activeIndex !== null && this.activeIndex !== undefined;
881
+ }
882
+ isInBounds(index) {
883
+ return index >= 0 && index < this.items.length;
884
+ }
885
+ normalizeIndex(index) {
886
+ if (this.items.length === 0)
887
+ return 0;
888
+ return Math.min(Math.max(index, 0), this.items.length - 1);
889
+ }
890
+ focusRelativeButton(index, direction) {
891
+ let cursor = index + direction;
892
+ while (cursor >= 0 && cursor < this.items.length) {
893
+ if (!this.isDisabledLike(this.items[cursor])) {
894
+ this.focusButton(cursor);
895
+ return;
896
+ }
897
+ cursor += direction;
898
+ }
899
+ }
900
+ focusButton(index) {
901
+ const button = this.stepButtons?.get(index)?.nativeElement;
902
+ button?.focus();
903
+ }
904
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisStepper, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
905
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisStepper, isStandalone: true, selector: "solaris-stepper", inputs: { orientation: "orientation", appearance: "appearance", linear: "linear", interactive: "interactive", activeIndex: "activeIndex", defaultActiveIndex: "defaultActiveIndex", allowBackNavigation: "allowBackNavigation", allowFutureNavigation: "allowFutureNavigation", allowSkip: "allowSkip", showStateBadges: "showStateBadges" }, outputs: { activeIndexChange: "activeIndexChange", nextChange: "next", previousChange: "previous", stepChange: "stepChange" }, queries: [{ propertyName: "itemsQuery", predicate: SolarisStepperItem }], viewQueries: [{ propertyName: "stepButtons", predicate: ["stepButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"solaris-stepper\" [ngClass]=\"[\r\n 'orientation-' + orientation,\r\n 'appearance-' + appearance\r\n ]\">\r\n\r\n <div class=\"solaris-stepper__rail\" role=\"tablist\" [attr.aria-orientation]=\"orientation\">\r\n\r\n @for (item of items; track trackByIndex($index); let i = $index; let last = $last) {\r\n <div class=\"solaris-stepper__node\">\r\n <button #stepButton type=\"button\" role=\"tab\" class=\"solaris-stepper__step\"\r\n [id]=\"item.headerId\" [attr.aria-controls]=\"item.panelId\" [attr.aria-selected]=\"isCurrent(i)\"\r\n [attr.aria-current]=\"isCurrent(i) ? 'step' : null\"\r\n [attr.aria-disabled]=\"item.status === 'disabled' || item.status === 'locked'\"\r\n [attr.tabindex]=\"isCurrent(i) ? 0 : -1\" [ngClass]=\"getStepClasses(item, i)\"\r\n (click)=\"onStepHeaderClick(i)\" (keydown)=\"onStepKeydown($event, i)\">\r\n\r\n <span class=\"solaris-stepper__marker\" [ngClass]=\"getStepClasses(item, i)\">\r\n @if (getMarkerIcon(item, i)) {\r\n <i class=\"ph\" [ngClass]=\"getMarkerIcon(item, i)\" aria-hidden=\"true\"></i>\r\n }\r\n\r\n @if (getMarkerText(item, i)) {\r\n <span>{{ getMarkerText(item, i) }}</span>\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-stepper__meta\">\r\n <span class=\"solaris-stepper__label\">\r\n @if (item.labelKey) {\r\n {{ item.labelKey | translate }}\r\n } @else if (item.label) {\r\n {{ item.label }}\r\n } @else {\r\n {{ 'ui.solaris.stepper.step' | translate }} {{ i + 1 }}\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-stepper__title\">\r\n @if (item.titleKey) {\r\n {{ item.titleKey | translate }}\r\n } @else {\r\n {{ item.title }}\r\n }\r\n </span>\r\n\r\n @if (item.descriptionKey || item.description) {\r\n <span class=\"solaris-stepper__description\">\r\n @if (item.descriptionKey) {\r\n {{ item.descriptionKey | translate }}\r\n } @else {\r\n {{ item.description }}\r\n }\r\n </span>\r\n }\r\n\r\n @if (item.optional) {\r\n <span class=\"solaris-stepper__optional\">\r\n {{ 'ui.solaris.stepper.optional' | translate }}\r\n </span>\r\n }\r\n </span>\r\n\r\n @if (hasBadge(item, i)) {\r\n <solaris-badge class=\"solaris-stepper__badge\" [pill]=\"item.badgePill\" [size]=\"item.badgeSize\"\r\n [variant]=\"getResolvedBadgeVariant(item)\" [color]=\"getResolvedBadgeColor(item, i)\" aria-hidden=\"true\">\r\n\r\n @if (item.badgeTextKey) {\r\n {{ item.badgeTextKey | translate }}\r\n } @else if (item.badgeText) {\r\n {{ item.badgeText }}\r\n } @else {\r\n {{ getAutoBadgeTranslationKey(item, i) | translate }}\r\n }\r\n </solaris-badge>\r\n }\r\n </button>\r\n\r\n @if (!last) {\r\n <span class=\"solaris-stepper__connector\" [ngClass]=\"getConnectorClasses(i)\" aria-hidden=\"true\"></span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-stepper__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;min-width:0}.solaris-stepper{display:grid;gap:var(--solaris-space-6);min-width:0}.solaris-stepper.orientation-horizontal{grid-template-columns:minmax(0,1fr)}.solaris-stepper.orientation-vertical{grid-template-columns:minmax(16rem,20rem) minmax(0,1fr);align-items:start}.solaris-stepper__rail{min-width:0}.solaris-stepper.orientation-horizontal .solaris-stepper__rail{display:flex;align-items:stretch;overflow-x:auto;gap:var(--solaris-space-2);padding-bottom:var(--solaris-space-1)}.solaris-stepper.orientation-vertical .solaris-stepper__rail{display:flex;flex-direction:column;gap:var(--solaris-space-2)}.solaris-stepper__node{min-width:0}.solaris-stepper.orientation-horizontal .solaris-stepper__node{flex:1 1 0;display:flex;align-items:center;min-width:11rem}.solaris-stepper.orientation-vertical .solaris-stepper__node{display:flex;flex-direction:column;align-items:stretch}.solaris-stepper__step{width:100%;min-width:0;display:flex;align-items:flex-start;gap:var(--solaris-space-2);padding:var(--solaris-space-2) var(--solaris-space-3);border:1px solid transparent;background:transparent;border-radius:var(--solaris-radius-md);color:var(--solaris-color-text);text-align:left;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}.solaris-stepper__step.is-clickable{cursor:pointer}.solaris-stepper__step.is-clickable:hover{background:color-mix(in srgb,var(--solaris-color-surface-2) 78%,transparent)}.solaris-stepper__step.is-current{background:color-mix(in srgb,var(--solaris-color-primary) 8%,var(--solaris-color-surface));border-color:color-mix(in srgb,var(--solaris-color-primary) 35%,transparent);box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__step.is-disabled,.solaris-stepper__step.is-locked{opacity:.65;cursor:not-allowed}.solaris-stepper__step:focus-visible{outline:none;box-shadow:0 0 0 .2rem color-mix(in srgb,var(--solaris-color-primary) 28%,transparent),var(--solaris-shadow-xs)}.solaris-stepper__marker{width:2rem;height:2rem;flex:0 0 2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--solaris-radius-full);border:1px solid var(--solaris-color-border);background:var(--solaris-color-surface);color:var(--solaris-color-text);font-size:var(--solaris-fs-12);font-weight:700;line-height:1;box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__marker.is-current{background:var(--solaris-color-primary);border-color:var(--solaris-color-primary);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-completed{background:var(--solaris-color-success);border-color:var(--solaris-color-success);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-warning{border-color:var(--solaris-color-warning);color:var(--solaris-color-warning)}.solaris-stepper__marker.is-error{border-color:var(--solaris-color-error);color:var(--solaris-color-error)}.solaris-stepper__marker.is-locked,.solaris-stepper__marker.is-disabled{background:var(--solaris-color-surface-2);border-color:var(--solaris-color-border);color:var(--solaris-color-text-muted)}.solaris-stepper__meta{display:grid;gap:var(--solaris-space-1);min-width:0;flex:1 1 auto}.solaris-stepper__label{color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-10);line-height:var(--solaris-lh-tight);letter-spacing:var(--solaris-ls-lg);text-transform:uppercase;font-weight:700}.solaris-stepper__title{color:var(--solaris-color-text);font-size:var(--solaris-fs-14);line-height:var(--solaris-lh-normal);font-weight:700}.solaris-stepper__description{color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-12);line-height:var(--solaris-lh-relaxed)}.solaris-stepper__optional{color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-10);line-height:var(--solaris-lh-tight)}.solaris-stepper__badge{align-self:flex-start}.solaris-stepper__connector{background:var(--solaris-color-border);opacity:.8}.solaris-stepper.orientation-horizontal .solaris-stepper__connector{height:1px;flex:1 1 auto;min-width:var(--solaris-space-10)}.solaris-stepper.orientation-vertical .solaris-stepper__connector{width:1px;min-height:var(--solaris-space-8);margin-left:calc(var(--solaris-space-3) + 1rem)}.solaris-stepper__connector.is-completed,.solaris-stepper__connector.is-current{background:color-mix(in srgb,var(--solaris-color-primary) 75%,var(--solaris-color-success))}.solaris-stepper__step.is-current.is-warning,.solaris-stepper__step.is-completed.is-warning{background:color-mix(in srgb,var(--solaris-color-warning) 10%,var(--solaris-color-surface));border-color:color-mix(in srgb,var(--solaris-color-warning) 45%,transparent);box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__step.is-current.is-error,.solaris-stepper__step.is-completed.is-error{background:color-mix(in srgb,var(--solaris-color-error) 10%,var(--solaris-color-surface));border-color:color-mix(in srgb,var(--solaris-color-error) 45%,transparent);box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__step.is-current.is-locked,.solaris-stepper__step.is-completed.is-locked,.solaris-stepper__step.is-current.is-disabled,.solaris-stepper__step.is-completed.is-disabled{background:color-mix(in srgb,var(--solaris-color-surface-2) 65%,transparent);border-color:var(--solaris-color-border);box-shadow:none}.solaris-stepper__marker.is-current.is-warning,.solaris-stepper__marker.is-completed.is-warning{background:var(--solaris-color-warning);border-color:var(--solaris-color-warning);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-current.is-error,.solaris-stepper__marker.is-completed.is-error{background:var(--solaris-color-error);border-color:var(--solaris-color-error);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-current.is-locked,.solaris-stepper__marker.is-completed.is-locked,.solaris-stepper__marker.is-current.is-disabled,.solaris-stepper__marker.is-completed.is-disabled{background:var(--solaris-color-surface-2);border-color:var(--solaris-color-border);color:var(--solaris-color-text-muted)}.solaris-stepper__content{min-width:0}.solaris-stepper.appearance-compact{gap:var(--solaris-space-4)}.solaris-stepper.appearance-compact .solaris-stepper__rail{display:flex;align-items:stretch;overflow-x:auto;gap:var(--solaris-space-4);padding-bottom:var(--solaris-space-1)}.solaris-stepper.appearance-compact .solaris-stepper__node{flex:1 0 auto;min-width:8rem}.solaris-stepper.appearance-compact .solaris-stepper__step{position:relative;padding:0 0 var(--solaris-space-3);gap:var(--solaris-space-1);background:transparent;border:0;border-radius:0;box-shadow:none;align-items:center}.solaris-stepper.appearance-compact .solaris-stepper__step.is-clickable:hover{background:transparent}.solaris-stepper.appearance-compact .solaris-stepper__step:after{content:\"\";position:absolute;left:0;right:0;bottom:-.25rem;height:.75rem;border-radius:var(--solaris-radius-full);background:var(--solaris-color-surface-2)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed:after{background:var(--solaris-color-primary)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-warning:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-warning:after{background:var(--solaris-color-warning)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-error:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-error:after{background:var(--solaris-color-error)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-disabled:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-locked:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-pending:after{background:var(--solaris-color-surface-2)}.solaris-stepper.appearance-compact .solaris-stepper__marker{width:auto;height:auto;flex:0 0 auto;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-12);font-weight:700;line-height:var(--solaris-lh-tight)}.solaris-stepper.appearance-compact .solaris-stepper__meta{display:block}.solaris-stepper.appearance-compact .solaris-stepper__label,.solaris-stepper.appearance-compact .solaris-stepper__description,.solaris-stepper.appearance-compact .solaris-stepper__optional,.solaris-stepper.appearance-compact .solaris-stepper__badge{display:none}.solaris-stepper.appearance-compact .solaris-stepper__title{font-size:var(--solaris-fs-12);line-height:var(--solaris-lh-tight);font-weight:600;color:var(--solaris-color-text-muted);white-space:nowrap}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-current .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed .solaris-stepper__title{color:color-mix(in srgb,var(--solaris-color-primary) 65%,white)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-warning .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-warning .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-warning .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-warning .solaris-stepper__title{color:var(--solaris-color-warning)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-error .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-error .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-error .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-error .solaris-stepper__title{color:var(--solaris-color-error)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-disabled .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-disabled .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-locked .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-locked .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-pending .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-pending .solaris-stepper__title{color:var(--solaris-color-text-muted)}.solaris-stepper.appearance-compact .solaris-stepper__connector{display:none}@media(max-width:768px){.solaris-stepper.orientation-vertical{grid-template-columns:minmax(0,1fr)}.solaris-stepper.orientation-vertical .solaris-stepper__rail{overflow-x:auto;flex-direction:row;gap:var(--solaris-space-4)}.solaris-stepper.orientation-vertical .solaris-stepper__node,.solaris-stepper.orientation-horizontal .solaris-stepper__node{min-width:10rem}.solaris-stepper.orientation-horizontal .solaris-stepper__connector,.solaris-stepper.orientation-vertical .solaris-stepper__connector{min-width:var(--solaris-space-8);min-height:1px;height:1px;width:auto;margin-left:0;flex:1 1 auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: SolarisBadge, selector: "solaris-badge", inputs: ["pill", "customTextColor", "interactive", "size", "variant", "color", "aria-hidden"] }, { kind: "pipe", type: SolarisTranslationPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
906
+ }
907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisStepper, decorators: [{
908
+ type: Component,
909
+ args: [{ selector: 'solaris-stepper', standalone: true, imports: [
910
+ CommonModule,
911
+ SolarisTranslationPipe,
912
+ SolarisBadge,
913
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"solaris-stepper\" [ngClass]=\"[\r\n 'orientation-' + orientation,\r\n 'appearance-' + appearance\r\n ]\">\r\n\r\n <div class=\"solaris-stepper__rail\" role=\"tablist\" [attr.aria-orientation]=\"orientation\">\r\n\r\n @for (item of items; track trackByIndex($index); let i = $index; let last = $last) {\r\n <div class=\"solaris-stepper__node\">\r\n <button #stepButton type=\"button\" role=\"tab\" class=\"solaris-stepper__step\"\r\n [id]=\"item.headerId\" [attr.aria-controls]=\"item.panelId\" [attr.aria-selected]=\"isCurrent(i)\"\r\n [attr.aria-current]=\"isCurrent(i) ? 'step' : null\"\r\n [attr.aria-disabled]=\"item.status === 'disabled' || item.status === 'locked'\"\r\n [attr.tabindex]=\"isCurrent(i) ? 0 : -1\" [ngClass]=\"getStepClasses(item, i)\"\r\n (click)=\"onStepHeaderClick(i)\" (keydown)=\"onStepKeydown($event, i)\">\r\n\r\n <span class=\"solaris-stepper__marker\" [ngClass]=\"getStepClasses(item, i)\">\r\n @if (getMarkerIcon(item, i)) {\r\n <i class=\"ph\" [ngClass]=\"getMarkerIcon(item, i)\" aria-hidden=\"true\"></i>\r\n }\r\n\r\n @if (getMarkerText(item, i)) {\r\n <span>{{ getMarkerText(item, i) }}</span>\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-stepper__meta\">\r\n <span class=\"solaris-stepper__label\">\r\n @if (item.labelKey) {\r\n {{ item.labelKey | translate }}\r\n } @else if (item.label) {\r\n {{ item.label }}\r\n } @else {\r\n {{ 'ui.solaris.stepper.step' | translate }} {{ i + 1 }}\r\n }\r\n </span>\r\n\r\n <span class=\"solaris-stepper__title\">\r\n @if (item.titleKey) {\r\n {{ item.titleKey | translate }}\r\n } @else {\r\n {{ item.title }}\r\n }\r\n </span>\r\n\r\n @if (item.descriptionKey || item.description) {\r\n <span class=\"solaris-stepper__description\">\r\n @if (item.descriptionKey) {\r\n {{ item.descriptionKey | translate }}\r\n } @else {\r\n {{ item.description }}\r\n }\r\n </span>\r\n }\r\n\r\n @if (item.optional) {\r\n <span class=\"solaris-stepper__optional\">\r\n {{ 'ui.solaris.stepper.optional' | translate }}\r\n </span>\r\n }\r\n </span>\r\n\r\n @if (hasBadge(item, i)) {\r\n <solaris-badge class=\"solaris-stepper__badge\" [pill]=\"item.badgePill\" [size]=\"item.badgeSize\"\r\n [variant]=\"getResolvedBadgeVariant(item)\" [color]=\"getResolvedBadgeColor(item, i)\" aria-hidden=\"true\">\r\n\r\n @if (item.badgeTextKey) {\r\n {{ item.badgeTextKey | translate }}\r\n } @else if (item.badgeText) {\r\n {{ item.badgeText }}\r\n } @else {\r\n {{ getAutoBadgeTranslationKey(item, i) | translate }}\r\n }\r\n </solaris-badge>\r\n }\r\n </button>\r\n\r\n @if (!last) {\r\n <span class=\"solaris-stepper__connector\" [ngClass]=\"getConnectorClasses(i)\" aria-hidden=\"true\"></span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-stepper__content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;min-width:0}.solaris-stepper{display:grid;gap:var(--solaris-space-6);min-width:0}.solaris-stepper.orientation-horizontal{grid-template-columns:minmax(0,1fr)}.solaris-stepper.orientation-vertical{grid-template-columns:minmax(16rem,20rem) minmax(0,1fr);align-items:start}.solaris-stepper__rail{min-width:0}.solaris-stepper.orientation-horizontal .solaris-stepper__rail{display:flex;align-items:stretch;overflow-x:auto;gap:var(--solaris-space-2);padding-bottom:var(--solaris-space-1)}.solaris-stepper.orientation-vertical .solaris-stepper__rail{display:flex;flex-direction:column;gap:var(--solaris-space-2)}.solaris-stepper__node{min-width:0}.solaris-stepper.orientation-horizontal .solaris-stepper__node{flex:1 1 0;display:flex;align-items:center;min-width:11rem}.solaris-stepper.orientation-vertical .solaris-stepper__node{display:flex;flex-direction:column;align-items:stretch}.solaris-stepper__step{width:100%;min-width:0;display:flex;align-items:flex-start;gap:var(--solaris-space-2);padding:var(--solaris-space-2) var(--solaris-space-3);border:1px solid transparent;background:transparent;border-radius:var(--solaris-radius-md);color:var(--solaris-color-text);text-align:left;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}.solaris-stepper__step.is-clickable{cursor:pointer}.solaris-stepper__step.is-clickable:hover{background:color-mix(in srgb,var(--solaris-color-surface-2) 78%,transparent)}.solaris-stepper__step.is-current{background:color-mix(in srgb,var(--solaris-color-primary) 8%,var(--solaris-color-surface));border-color:color-mix(in srgb,var(--solaris-color-primary) 35%,transparent);box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__step.is-disabled,.solaris-stepper__step.is-locked{opacity:.65;cursor:not-allowed}.solaris-stepper__step:focus-visible{outline:none;box-shadow:0 0 0 .2rem color-mix(in srgb,var(--solaris-color-primary) 28%,transparent),var(--solaris-shadow-xs)}.solaris-stepper__marker{width:2rem;height:2rem;flex:0 0 2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--solaris-radius-full);border:1px solid var(--solaris-color-border);background:var(--solaris-color-surface);color:var(--solaris-color-text);font-size:var(--solaris-fs-12);font-weight:700;line-height:1;box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__marker.is-current{background:var(--solaris-color-primary);border-color:var(--solaris-color-primary);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-completed{background:var(--solaris-color-success);border-color:var(--solaris-color-success);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-warning{border-color:var(--solaris-color-warning);color:var(--solaris-color-warning)}.solaris-stepper__marker.is-error{border-color:var(--solaris-color-error);color:var(--solaris-color-error)}.solaris-stepper__marker.is-locked,.solaris-stepper__marker.is-disabled{background:var(--solaris-color-surface-2);border-color:var(--solaris-color-border);color:var(--solaris-color-text-muted)}.solaris-stepper__meta{display:grid;gap:var(--solaris-space-1);min-width:0;flex:1 1 auto}.solaris-stepper__label{color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-10);line-height:var(--solaris-lh-tight);letter-spacing:var(--solaris-ls-lg);text-transform:uppercase;font-weight:700}.solaris-stepper__title{color:var(--solaris-color-text);font-size:var(--solaris-fs-14);line-height:var(--solaris-lh-normal);font-weight:700}.solaris-stepper__description{color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-12);line-height:var(--solaris-lh-relaxed)}.solaris-stepper__optional{color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-10);line-height:var(--solaris-lh-tight)}.solaris-stepper__badge{align-self:flex-start}.solaris-stepper__connector{background:var(--solaris-color-border);opacity:.8}.solaris-stepper.orientation-horizontal .solaris-stepper__connector{height:1px;flex:1 1 auto;min-width:var(--solaris-space-10)}.solaris-stepper.orientation-vertical .solaris-stepper__connector{width:1px;min-height:var(--solaris-space-8);margin-left:calc(var(--solaris-space-3) + 1rem)}.solaris-stepper__connector.is-completed,.solaris-stepper__connector.is-current{background:color-mix(in srgb,var(--solaris-color-primary) 75%,var(--solaris-color-success))}.solaris-stepper__step.is-current.is-warning,.solaris-stepper__step.is-completed.is-warning{background:color-mix(in srgb,var(--solaris-color-warning) 10%,var(--solaris-color-surface));border-color:color-mix(in srgb,var(--solaris-color-warning) 45%,transparent);box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__step.is-current.is-error,.solaris-stepper__step.is-completed.is-error{background:color-mix(in srgb,var(--solaris-color-error) 10%,var(--solaris-color-surface));border-color:color-mix(in srgb,var(--solaris-color-error) 45%,transparent);box-shadow:var(--solaris-shadow-xs)}.solaris-stepper__step.is-current.is-locked,.solaris-stepper__step.is-completed.is-locked,.solaris-stepper__step.is-current.is-disabled,.solaris-stepper__step.is-completed.is-disabled{background:color-mix(in srgb,var(--solaris-color-surface-2) 65%,transparent);border-color:var(--solaris-color-border);box-shadow:none}.solaris-stepper__marker.is-current.is-warning,.solaris-stepper__marker.is-completed.is-warning{background:var(--solaris-color-warning);border-color:var(--solaris-color-warning);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-current.is-error,.solaris-stepper__marker.is-completed.is-error{background:var(--solaris-color-error);border-color:var(--solaris-color-error);color:var(--solaris-color-primary-contrast)}.solaris-stepper__marker.is-current.is-locked,.solaris-stepper__marker.is-completed.is-locked,.solaris-stepper__marker.is-current.is-disabled,.solaris-stepper__marker.is-completed.is-disabled{background:var(--solaris-color-surface-2);border-color:var(--solaris-color-border);color:var(--solaris-color-text-muted)}.solaris-stepper__content{min-width:0}.solaris-stepper.appearance-compact{gap:var(--solaris-space-4)}.solaris-stepper.appearance-compact .solaris-stepper__rail{display:flex;align-items:stretch;overflow-x:auto;gap:var(--solaris-space-4);padding-bottom:var(--solaris-space-1)}.solaris-stepper.appearance-compact .solaris-stepper__node{flex:1 0 auto;min-width:8rem}.solaris-stepper.appearance-compact .solaris-stepper__step{position:relative;padding:0 0 var(--solaris-space-3);gap:var(--solaris-space-1);background:transparent;border:0;border-radius:0;box-shadow:none;align-items:center}.solaris-stepper.appearance-compact .solaris-stepper__step.is-clickable:hover{background:transparent}.solaris-stepper.appearance-compact .solaris-stepper__step:after{content:\"\";position:absolute;left:0;right:0;bottom:-.25rem;height:.75rem;border-radius:var(--solaris-radius-full);background:var(--solaris-color-surface-2)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed:after{background:var(--solaris-color-primary)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-warning:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-warning:after{background:var(--solaris-color-warning)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-error:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-error:after{background:var(--solaris-color-error)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-disabled:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-locked:after,.solaris-stepper.appearance-compact .solaris-stepper__step.is-pending:after{background:var(--solaris-color-surface-2)}.solaris-stepper.appearance-compact .solaris-stepper__marker{width:auto;height:auto;flex:0 0 auto;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--solaris-color-text-muted);font-size:var(--solaris-fs-12);font-weight:700;line-height:var(--solaris-lh-tight)}.solaris-stepper.appearance-compact .solaris-stepper__meta{display:block}.solaris-stepper.appearance-compact .solaris-stepper__label,.solaris-stepper.appearance-compact .solaris-stepper__description,.solaris-stepper.appearance-compact .solaris-stepper__optional,.solaris-stepper.appearance-compact .solaris-stepper__badge{display:none}.solaris-stepper.appearance-compact .solaris-stepper__title{font-size:var(--solaris-fs-12);line-height:var(--solaris-lh-tight);font-weight:600;color:var(--solaris-color-text-muted);white-space:nowrap}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-current .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed .solaris-stepper__title{color:color-mix(in srgb,var(--solaris-color-primary) 65%,white)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-warning .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-warning .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-warning .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-warning .solaris-stepper__title{color:var(--solaris-color-warning)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-error .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-current.is-error .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-error .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-completed.is-error .solaris-stepper__title{color:var(--solaris-color-error)}.solaris-stepper.appearance-compact .solaris-stepper__step.is-disabled .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-disabled .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-locked .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-locked .solaris-stepper__title,.solaris-stepper.appearance-compact .solaris-stepper__step.is-pending .solaris-stepper__marker,.solaris-stepper.appearance-compact .solaris-stepper__step.is-pending .solaris-stepper__title{color:var(--solaris-color-text-muted)}.solaris-stepper.appearance-compact .solaris-stepper__connector{display:none}@media(max-width:768px){.solaris-stepper.orientation-vertical{grid-template-columns:minmax(0,1fr)}.solaris-stepper.orientation-vertical .solaris-stepper__rail{overflow-x:auto;flex-direction:row;gap:var(--solaris-space-4)}.solaris-stepper.orientation-vertical .solaris-stepper__node,.solaris-stepper.orientation-horizontal .solaris-stepper__node{min-width:10rem}.solaris-stepper.orientation-horizontal .solaris-stepper__connector,.solaris-stepper.orientation-vertical .solaris-stepper__connector{min-width:var(--solaris-space-8);min-height:1px;height:1px;width:auto;margin-left:0;flex:1 1 auto}}\n"] }]
914
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { orientation: [{
915
+ type: Input
916
+ }], appearance: [{
917
+ type: Input
918
+ }], linear: [{
919
+ type: Input
920
+ }], interactive: [{
921
+ type: Input
922
+ }], activeIndex: [{
923
+ type: Input
924
+ }], defaultActiveIndex: [{
925
+ type: Input
926
+ }], allowBackNavigation: [{
927
+ type: Input
928
+ }], allowFutureNavigation: [{
929
+ type: Input
930
+ }], allowSkip: [{
931
+ type: Input
932
+ }], showStateBadges: [{
933
+ type: Input
934
+ }], activeIndexChange: [{
935
+ type: Output
936
+ }], nextChange: [{
937
+ type: Output,
938
+ args: ['next']
939
+ }], previousChange: [{
940
+ type: Output,
941
+ args: ['previous']
942
+ }], stepChange: [{
943
+ type: Output
944
+ }], itemsQuery: [{
945
+ type: ContentChildren,
946
+ args: [SolarisStepperItem]
947
+ }], stepButtons: [{
948
+ type: ViewChildren,
949
+ args: ['stepButton']
950
+ }] } });
951
+
456
952
  class SolarisPopoverTriggerDirective {
457
953
  elementRef = inject((ElementRef));
458
954
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisPopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -1837,55 +2333,6 @@ function buildSpokes(count, minOpacity = 0.12) {
1837
2333
  return res;
1838
2334
  }
1839
2335
 
1840
- class SolarisBadge {
1841
- pill = false;
1842
- customTextColor;
1843
- interactive = false;
1844
- size = 'md';
1845
- variant = 'subtle';
1846
- color = 'surface';
1847
- ariaHidden = null;
1848
- hostClass = 'solaris-badge-host';
1849
- presetColors = new Set([
1850
- 'primary', 'success', 'warning', 'error', 'info', 'surface',
1851
- ]);
1852
- get colorClass() {
1853
- return this.isCustomColor ? 'color-custom' : `color-${this.color}`;
1854
- }
1855
- get isCustomColor() {
1856
- return !this.presetColors.has(this.color);
1857
- }
1858
- get customColorValue() {
1859
- return this.isCustomColor ? String(this.color) : null;
1860
- }
1861
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
1862
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.1", type: SolarisBadge, isStandalone: true, selector: "solaris-badge", inputs: { pill: "pill", customTextColor: "customTextColor", interactive: "interactive", size: "size", variant: "variant", color: "color", ariaHidden: ["aria-hidden", "ariaHidden"] }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<span class=\"solaris-badge\" [attr.aria-hidden]=\"ariaHidden\"\r\n [ngClass]=\"[ 'variant-' + variant, colorClass,\r\n 'size-' + size, pill ? 'is-pill' : '',\r\n interactive ? 'is-interactive' : '' ]\"\r\n [style.--solaris-badge-custom]=\"customColorValue\"\r\n [style.--solaris-badge-custom-fg]=\"customTextColor\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [":host.solaris-badge-host{display:inline-flex}.solaris-badge{--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-radius: var(--solaris-radius-full);--solaris-badge-fg-solid: var(--solaris-badge-fg);line-height:1;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;display:inline-flex;gap:var(--solaris-space-2);border:1px solid transparent;letter-spacing:var(--solaris-ls-sm);border-radius:var(--solaris-badge-radius)}.solaris-badge.size-sm{padding:.3rem .6rem;font-size:var(--solaris-fs-10)}.solaris-badge.size-md{padding:.4rem .8rem;font-size:var(--solaris-fs-12)}.solaris-badge.size-lg{padding:.5rem 1rem;font-size:var(--solaris-fs-14)}.solaris-badge.is-pill{--solaris-badge-radius: var(--solaris-radius-full)}.solaris-badge.is-interactive{cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.solaris-badge.is-interactive:hover{box-shadow:var(--solaris-shadow-xs)}.solaris-badge.color-surface{--_base: var(--solaris-color-surface-2);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-primary{--_base: var(--solaris-color-primary);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-success{--_base: var(--solaris-color-success);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-warning{--_base: var(--solaris-color-warning);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-error{--_base: var(--solaris-color-error);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-info{--_base: var(--solaris-color-info);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-custom{--_base: var(--solaris-badge-custom, var(--solaris-color-surface-2));--solaris-badge-fg-solid: var(--solaris-badge-custom-fg, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-fg: var(--solaris-badge-custom-fg, var(--solaris-color-text));--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.variant-solid{color:var(--solaris-badge-fg-solid);background:var(--solaris-badge-bg-solid, var(--solaris-badge-bg));border-color:var(--solaris-badge-border-solid, var(--solaris-badge-border))}.solaris-badge.variant-subtle{color:var(--solaris-badge-fg);background:var(--solaris-badge-bg);border-color:var(--solaris-badge-border)}.solaris-badge.variant-outline{border-color:var(--solaris-badge-border);color:color-mix(in srgb,var(--solaris-badge-border) 30%,white);background:color-mix(in srgb,var(--solaris-badge-border) 20%,transparent)}.solaris-badge.variant-solid.color-surface{color:var(--solaris-color-text);border-color:var(--solaris-color-border);background:var(--solaris-color-surface-2)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1863
- }
1864
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisBadge, decorators: [{
1865
- type: Component,
1866
- args: [{ selector: 'solaris-badge', standalone: true, imports: [
1867
- NgClass
1868
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"solaris-badge\" [attr.aria-hidden]=\"ariaHidden\"\r\n [ngClass]=\"[ 'variant-' + variant, colorClass,\r\n 'size-' + size, pill ? 'is-pill' : '',\r\n interactive ? 'is-interactive' : '' ]\"\r\n [style.--solaris-badge-custom]=\"customColorValue\"\r\n [style.--solaris-badge-custom-fg]=\"customTextColor\">\r\n <ng-content></ng-content>\r\n</span>\r\n", styles: [":host.solaris-badge-host{display:inline-flex}.solaris-badge{--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-radius: var(--solaris-radius-full);--solaris-badge-fg-solid: var(--solaris-badge-fg);line-height:1;font-weight:600;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;display:inline-flex;gap:var(--solaris-space-2);border:1px solid transparent;letter-spacing:var(--solaris-ls-sm);border-radius:var(--solaris-badge-radius)}.solaris-badge.size-sm{padding:.3rem .6rem;font-size:var(--solaris-fs-10)}.solaris-badge.size-md{padding:.4rem .8rem;font-size:var(--solaris-fs-12)}.solaris-badge.size-lg{padding:.5rem 1rem;font-size:var(--solaris-fs-14)}.solaris-badge.is-pill{--solaris-badge-radius: var(--solaris-radius-full)}.solaris-badge.is-interactive{cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.solaris-badge.is-interactive:hover{box-shadow:var(--solaris-shadow-xs)}.solaris-badge.color-surface{--_base: var(--solaris-color-surface-2);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-primary{--_base: var(--solaris-color-primary);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-success{--_base: var(--solaris-color-success);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-warning{--_base: var(--solaris-color-warning);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 75%, black))}.solaris-badge.color-error{--_base: var(--solaris-color-error);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-info{--_base: var(--solaris-color-info);--solaris-badge-fg: var(--solaris-color-text);--solaris-badge-fg-solid: var(--solaris-color-primary-contrast, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.color-custom{--_base: var(--solaris-badge-custom, var(--solaris-color-surface-2));--solaris-badge-fg-solid: var(--solaris-badge-custom-fg, #fff);--solaris-badge-bg: color-mix(in srgb, var(--_base) 30%, transparent);--solaris-badge-border-solid: color-mix(in srgb, var(--_base) 70%, black);--solaris-badge-fg: var(--solaris-badge-custom-fg, var(--solaris-color-text));--solaris-badge-border: color-mix(in srgb, var(--_base) 55%, var(--solaris-color-border));--solaris-badge-bg-solid: linear-gradient(180deg, color-mix(in srgb, var(--_base) 92%, white), color-mix(in srgb, var(--_base) 82%, black))}.solaris-badge.variant-solid{color:var(--solaris-badge-fg-solid);background:var(--solaris-badge-bg-solid, var(--solaris-badge-bg));border-color:var(--solaris-badge-border-solid, var(--solaris-badge-border))}.solaris-badge.variant-subtle{color:var(--solaris-badge-fg);background:var(--solaris-badge-bg);border-color:var(--solaris-badge-border)}.solaris-badge.variant-outline{border-color:var(--solaris-badge-border);color:color-mix(in srgb,var(--solaris-badge-border) 30%,white);background:color-mix(in srgb,var(--solaris-badge-border) 20%,transparent)}.solaris-badge.variant-solid.color-surface{color:var(--solaris-color-text);border-color:var(--solaris-color-border);background:var(--solaris-color-surface-2)}\n"] }]
1869
- }], propDecorators: { pill: [{
1870
- type: Input
1871
- }], customTextColor: [{
1872
- type: Input
1873
- }], interactive: [{
1874
- type: Input
1875
- }], size: [{
1876
- type: Input
1877
- }], variant: [{
1878
- type: Input
1879
- }], color: [{
1880
- type: Input
1881
- }], ariaHidden: [{
1882
- type: Input,
1883
- args: [{ alias: 'aria-hidden' }]
1884
- }], hostClass: [{
1885
- type: HostBinding,
1886
- args: ['class']
1887
- }] } });
1888
-
1889
2336
  class SolarisImageSliderComponent {
1890
2337
  viewport = viewChild('viewport', ...(ngDevMode ? [{ debugName: "viewport" }] : []));
1891
2338
  timer = null;
@@ -3303,7 +3750,7 @@ class SolarisTable {
3303
3750
  }).join(' ');
3304
3751
  }
3305
3752
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
3306
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisTable, isStandalone: true, selector: "solaris-table", inputs: { length: "length", pageIndex: "pageIndex", pageSize: "pageSize", rowsCount: "rowsCount", loading: "loading", sort: "sort", selectable: "selectable", tableDescription: "tableDescription", selection: "selection", variant: "variant", emptyIconClass: "emptyIconClass", pageSizeOptions: "pageSizeOptions", emptyTextKey: "emptyTextKey" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", selectionChange: "selectionChange" }, host: { properties: { "attr.data-scroll": "needsScroll() ? \"true\" : null" }, classAttribute: "solaris-table-host" }, queries: [{ propertyName: "columnQuery", predicate: SolarisTableColumn }], viewQueries: [{ propertyName: "tableRoot", first: true, predicate: ["tableRoot"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\"solaris-table-filters\"></ng-content>\r\n\r\n<div class=\"solaris-table\" [class.solaris-table--grid]=\"variant === 'grid'\"\r\n [class.solaris-table--zebra]=\"variant === 'zebra'\">\r\n <div #tableRoot class=\"solaris-table__inner\" role=\"table\" [attr.aria-rowcount]=\"rowsCount\">\r\n <div class=\"solaris-table__header\" role=\"rowgroup\">\r\n <div class=\"solaris-table__row solaris-table__row--header\" role=\"row\" [style.gridTemplateColumns]=\"gridTemplateColumns()\">\r\n @for (col of columns(); track col.id; let i = $index) {\r\n <div class=\"solaris-table__cell solaris-table__cell--header\" role=\"columnheader\" [attr.data-col-idx]=\"i\"\r\n [attr.aria-sort]=\"ariaSort(col)\" [style.--solaris-col-max]=\"col.maxWidth || null\">\r\n\r\n <div class=\"solaris-table__header-content\">\r\n <span class=\"solaris-table__header-left\">\r\n @if (selectable && i === 0) {\r\n <span class=\"solaris-table__select-prefix\" (click)=\"$event.stopPropagation()\">\r\n <solaris-checkbox variant=\"square\" color=\"primary\" size=\"sm\" [ngModel]=\"selectAllChecked()\"\r\n (ngModelChange)=\"onToggleSelectAll($event)\" [indeterminate]=\"selectAllIndeterminate()\">\r\n </solaris-checkbox>\r\n </span>\r\n }\r\n\r\n @if (col.headerIconClass) { <i [class]=\"col.headerIconClass\"></i> }\r\n\r\n @if (col.headerDef?.template) {\r\n <ng-container [ngTemplateOutlet]=\"col.headerDef?.template\"></ng-container>\r\n } @else {\r\n @if (col.headerKey) {\r\n <span class=\"solaris-table__header-text\">{{ col.headerKey | translate }}</span>\r\n } @else {\r\n <span class=\"solaris-table__header-text\">{{ col.header }}</span>\r\n }\r\n }\r\n </span>\r\n\r\n @if (col.sortable) {\r\n <button type=\"button\" class=\"solaris-table__sort-btn\" (click)=\"onHeaderSortClick($event, col)\">\r\n <span class=\"solaris-table__sort\">\r\n <i class=\"ph ph-arrow-up\" [class.is-active]=\"getSortFor(col)?.direction === 'asc'\"></i>\r\n <i class=\"ph ph-arrow-down\" [class.is-active]=\"getSortFor(col)?.direction === 'desc'\"></i>\r\n\r\n @if (getSortFor(col)?.order && sortState().length > 1) {\r\n <span class=\"solaris-table__sort-order\">{{ getSortFor(col)!.order }}</span>\r\n }\r\n </span>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (col.resizable && !col.width) {\r\n <span class=\"solaris-table__col-resizer\" role=\"separator\" aria-orientation=\"vertical\"\r\n (pointerdown)=\"onResizeStart($event, i)\" (dblclick)=\"clearManualWidth(i)\"\r\n (click)=\"$event.stopPropagation()\">\r\n </span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"solaris-table__body\" role=\"rowgroup\">\r\n @if (loading) {\r\n <solaris-table-skeleton [rows]=\"pageSize\" [columns]=\"columns().length\" [selectable]=\"selectable\"\r\n [gridTemplateColumns]=\"gridTemplateColumns()\">\r\n </solaris-table-skeleton>\r\n } @else {\r\n @if (rowsCount === 0) {\r\n <div class=\"solaris-table__empty\" role=\"row\">\r\n <i [class]=\"emptyIconClass\"></i>\r\n <div class=\"solaris-table__empty-text\">{{ 'ui.solaris.tables.empty' | translate }}</div>\r\n </div>\r\n } @else {\r\n <ng-content select=\"solaris-row\"></ng-content>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-table__footer\" role=\"rowgroup\">\r\n <div class=\"solaris-table__footer-left\">\r\n @if (selectedCount() > 0) {\r\n <div class=\"solaris-table__selected\">\r\n {{ selectedCount() }} {{ 'ui.solaris.tables.selection.selected' | translate }}\r\n </div>\r\n } @else if (tableDescription != null) {\r\n <div class=\"solaris-table__description\">\r\n {{ tableDescription }}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-table__footer-right\">\r\n <div class=\"solaris-table__rows-per-page\">\r\n <span>{{ 'ui.solaris.tables.pagination.rowsPerPage' | translate }}:</span>\r\n <select [ngModel]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\r\n @for (opt of pageSizeOptions; track opt) {\r\n <option [ngValue]=\"opt\">{{ opt }}</option>\r\n }\r\n </select>\r\n </div>\r\n\r\n <div class=\"solaris-table__range\">\r\n {{ rangeStart }}\u2013{{ rangeEnd }} {{ 'ui.solaris.common.of' | translate }} {{ length }}\r\n </div>\r\n\r\n <div class=\"solaris-table__pager\">\r\n <button type=\"button\" (click)=\"firstPage()\" [disabled]=\"pageIndex === 0\">\r\n <i class=\"ph ph-caret-line-left\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"prevPage()\" [disabled]=\"pageIndex === 0\">\r\n <i class=\"ph ph-caret-left\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"nextPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\r\n <i class=\"ph ph-caret-right\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"lastPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\r\n <i class=\"ph ph-caret-line-right\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".solaris-table-host{display:block;color:var(--solaris-color-text);font-family:var(--solaris-font-sans-primary),system-ui}.solaris-table{--solaris-table-row-hover-bg: var(--solaris-color-surface-2);--solaris-table-row-selected-bg: var(--solaris-color-surface-2);overflow:hidden;box-shadow:var(--solaris-shadow-sm);border-radius:var(--solaris-radius-lg);background:var(--solaris-color-surface);border:1px solid var(--solaris-color-border)}.solaris-table--grid{--solaris-table-cell-divider: 1px solid var(--solaris-color-border)}.solaris-table--zebra{--solaris-table-cell-divider: 0px solid transparent}.solaris-table__inner{overflow-x:hidden}:host([data-scroll=true]) .solaris-table__inner{overflow-x:auto}.solaris-table__inner.is-resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.solaris-table__row{width:100%;display:grid;min-height:3.25rem;align-items:stretch}.solaris-table__row--header{background:var(--solaris-color-surface-2);border-bottom:1px solid var(--solaris-color-border)}.solaris-table__cell{min-width:0;height:100%;display:flex;align-items:center;padding:var(--solaris-space-4);border-right:var(--solaris-table-cell-divider)}.solaris-table__cell,.solaris-row__cell{box-sizing:border-box}.solaris-table__cell:last-child{border-right:none}.solaris-table__cell--header{position:relative;padding:var(--solaris-space-3) var(--solaris-space-4)}.solaris-table__header-content{width:100%;min-width:0;align-items:center;display:inline-flex;gap:var(--solaris-space-2);justify-content:space-between}.solaris-table__header-left{min-width:0;overflow:hidden;align-items:center;display:inline-flex;gap:var(--solaris-space-2)}.solaris-table__header-left i.ph{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__select-prefix{flex:0 0 auto;align-items:center;display:inline-flex}.solaris-table__header-text{overflow:hidden;white-space:nowrap;display:inline-block;text-overflow:ellipsis;font-size:var(--solaris-fs-14);letter-spacing:var(--solaris-ls-sm);color:var(--solaris-color-text-muted);max-width:var(--solaris-col-max, 100%)}.solaris-table__sort-btn{border:none;flex:0 0 auto;cursor:pointer;background:transparent;padding:var(--solaris-space-1);color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-sm)}.solaris-table__sort-btn:hover{background:var(--solaris-color-surface-2)}.solaris-table__sort{display:inline-flex;align-items:center;gap:var(--solaris-space-1)}.solaris-table__sort i{opacity:.45;transition:opacity .14s ease,color .14s ease,transform .14s ease}.solaris-table__sort i.is-active{opacity:1;color:var(--solaris-color-primary)}.solaris-table__sort-order{font-size:var(--solaris-fs-10);margin-left:var(--solaris-space-1);color:var(--solaris-color-text-muted)}.solaris-table__col-resizer{top:0;right:0;z-index:10;width:12px;height:100%;cursor:col-resize;touch-action:none;position:absolute;pointer-events:auto}.solaris-table__col-resizer:after{top:20%;left:50%;width:1px;content:\"\";height:60%;position:absolute;background:transparent;transform:translate(-50%);transition:background .12s ease}.solaris-table__cell--header:hover .solaris-table__col-resizer:after{background:color-mix(in srgb,var(--solaris-color-border) 65%,transparent)}.solaris-table__body{background:var(--solaris-color-surface)}.solaris-table__empty{display:grid;place-items:center;gap:var(--solaris-space-3);padding:var(--solaris-space-8);color:var(--solaris-color-text-muted);border-bottom:1px solid var(--solaris-color-border)}.solaris-table__empty i{font-size:2rem}.solaris-table__empty-text{font-size:var(--solaris-fs-14)}.solaris-table__footer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--solaris-space-4);justify-content:space-between;background:var(--solaris-color-surface);padding:var(--solaris-space-3) var(--solaris-space-4)}.solaris-table__footer-left,.solaris-table__footer-right{display:inline-flex;align-items:center;gap:var(--solaris-space-4)}.solaris-table__description,.solaris-table__selected{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__rows-per-page{display:inline-flex;align-items:center;gap:var(--solaris-space-2);margin-right:var(--solaris-space-8)}.solaris-table__rows-per-page span,.solaris-table__rows-per-page select{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__rows-per-page select{border:none;background:transparent}.solaris-table__range{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__pager{display:inline-flex;gap:var(--solaris-space-2)}.solaris-table__pager button{border:none;cursor:pointer;background:transparent;padding:var(--solaris-space-2);font-size:var(--solaris-fs-16);color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-sm);transition:background .14s ease,opacity .14s ease}.solaris-table__pager button:hover:not(:disabled){background:var(--solaris-color-surface-2)}.solaris-table__pager button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.solaris-table__row--header{display:none}.solaris-table__footer-left,.solaris-table__footer-right{width:100%;justify-content:space-between}.solaris-table__col-resizer{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SolarisCheckbox, selector: "solaris-checkbox", inputs: ["indeterminate", "ariaLabel", "size", "variant", "color", "id", "appearance", "checkColor"], outputs: ["checkedChange", "indeterminateChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SolarisTableSkeleton, selector: "solaris-table-skeleton", inputs: ["rows", "columns", "selectable", "gridTemplateColumns"] }, { kind: "pipe", type: SolarisTranslationPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3753
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisTable, isStandalone: true, selector: "solaris-table", inputs: { length: "length", pageIndex: "pageIndex", pageSize: "pageSize", rowsCount: "rowsCount", loading: "loading", sort: "sort", selectable: "selectable", tableDescription: "tableDescription", selection: "selection", variant: "variant", emptyIconClass: "emptyIconClass", pageSizeOptions: "pageSizeOptions", emptyTextKey: "emptyTextKey" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", selectionChange: "selectionChange" }, host: { properties: { "attr.data-scroll": "needsScroll() ? \"true\" : null" }, classAttribute: "solaris-table-host" }, queries: [{ propertyName: "columnQuery", predicate: SolarisTableColumn }], viewQueries: [{ propertyName: "tableRoot", first: true, predicate: ["tableRoot"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\"solaris-table-filters\"></ng-content>\r\n\r\n<div class=\"solaris-table\" [class.solaris-table--grid]=\"variant === 'grid'\"\r\n [class.solaris-table--zebra]=\"variant === 'zebra'\">\r\n <div #tableRoot class=\"solaris-table__inner\" role=\"table\" [attr.aria-rowcount]=\"rowsCount\">\r\n <div class=\"solaris-table__header\" role=\"rowgroup\">\r\n <div class=\"solaris-table__row solaris-table__row--header\" role=\"row\" [style.gridTemplateColumns]=\"gridTemplateColumns()\">\r\n @for (col of columns(); track col.id; let i = $index) {\r\n <div class=\"solaris-table__cell solaris-table__cell--header\" role=\"columnheader\" [attr.data-col-idx]=\"i\"\r\n [attr.aria-sort]=\"ariaSort(col)\" [style.--solaris-col-max]=\"col.maxWidth || null\">\r\n\r\n <div class=\"solaris-table__header-content\">\r\n <span class=\"solaris-table__header-left\">\r\n @if (selectable && i === 0) {\r\n <span class=\"solaris-table__select-prefix\" (click)=\"$event.stopPropagation()\">\r\n <solaris-checkbox variant=\"square\" color=\"primary\" size=\"sm\" [ngModel]=\"selectAllChecked()\"\r\n (ngModelChange)=\"onToggleSelectAll($event)\" [indeterminate]=\"selectAllIndeterminate()\">\r\n </solaris-checkbox>\r\n </span>\r\n }\r\n\r\n @if (col.headerIconClass) { <i [class]=\"col.headerIconClass\"></i> }\r\n\r\n @if (col.headerDef?.template) {\r\n <ng-container [ngTemplateOutlet]=\"col.headerDef?.template\"></ng-container>\r\n } @else {\r\n @if (col.headerKey) {\r\n <span class=\"solaris-table__header-text\">{{ col.headerKey | translate }}</span>\r\n } @else {\r\n <span class=\"solaris-table__header-text\">{{ col.header }}</span>\r\n }\r\n }\r\n </span>\r\n\r\n @if (col.sortable) {\r\n <button type=\"button\" class=\"solaris-table__sort-btn\" (click)=\"onHeaderSortClick($event, col)\">\r\n <span class=\"solaris-table__sort\">\r\n <i class=\"ph ph-arrow-up\" [class.is-active]=\"getSortFor(col)?.direction === 'asc'\"></i>\r\n <i class=\"ph ph-arrow-down\" [class.is-active]=\"getSortFor(col)?.direction === 'desc'\"></i>\r\n\r\n @if (getSortFor(col)?.order && sortState().length > 1) {\r\n <span class=\"solaris-table__sort-order\">{{ getSortFor(col)!.order }}</span>\r\n }\r\n </span>\r\n </button>\r\n }\r\n </div>\r\n\r\n @if (col.resizable && !col.width) {\r\n <span class=\"solaris-table__col-resizer\" role=\"separator\" aria-orientation=\"vertical\"\r\n (pointerdown)=\"onResizeStart($event, i)\" (dblclick)=\"clearManualWidth(i)\"\r\n (click)=\"$event.stopPropagation()\">\r\n </span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"solaris-table__body\" role=\"rowgroup\">\r\n @if (loading) {\r\n <solaris-table-skeleton [rows]=\"pageSize\" [columns]=\"columns().length\" [selectable]=\"selectable\"\r\n [gridTemplateColumns]=\"gridTemplateColumns()\">\r\n </solaris-table-skeleton>\r\n } @else {\r\n @if (rowsCount === 0) {\r\n <div class=\"solaris-table__empty\" role=\"row\">\r\n <i [class]=\"emptyIconClass\"></i>\r\n <div class=\"solaris-table__empty-text\">{{ 'ui.solaris.tables.empty' | translate }}</div>\r\n </div>\r\n } @else {\r\n <ng-content select=\"solaris-row\"></ng-content>\r\n }\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-table__footer\" role=\"rowgroup\">\r\n <div class=\"solaris-table__footer-left\">\r\n @if (selectedCount() > 0) {\r\n <div class=\"solaris-table__selected\">\r\n {{ selectedCount() }} {{ 'ui.solaris.tables.selection.selected' | translate }}\r\n </div>\r\n } @else if (tableDescription != null) {\r\n <div class=\"solaris-table__description\">\r\n {{ tableDescription }}\r\n </div>\r\n }\r\n </div>\r\n\r\n <div class=\"solaris-table__footer-right\">\r\n <div class=\"solaris-table__rows-per-page\">\r\n <span>{{ 'ui.solaris.tables.pagination.rowsPerPage' | translate }}:</span>\r\n <select [ngModel]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\r\n @for (opt of pageSizeOptions; track opt) {\r\n <option [ngValue]=\"opt\">{{ opt }}</option>\r\n }\r\n </select>\r\n </div>\r\n\r\n <div class=\"solaris-table__range\">\r\n {{ rangeStart }}\u2013{{ rangeEnd }} {{ 'ui.solaris.common.of' | translate }} {{ length }}\r\n </div>\r\n\r\n <div class=\"solaris-table__pager\">\r\n <button type=\"button\" (click)=\"firstPage()\" [disabled]=\"pageIndex === 0\">\r\n <i class=\"ph ph-caret-line-left\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"prevPage()\" [disabled]=\"pageIndex === 0\">\r\n <i class=\"ph ph-caret-left\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"nextPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\r\n <i class=\"ph ph-caret-right\"></i>\r\n </button>\r\n <button type=\"button\" (click)=\"lastPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\r\n <i class=\"ph ph-caret-line-right\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".solaris-table-host{display:block;color:var(--solaris-color-text);font-family:var(--solaris-font-sans-primary),system-ui}.solaris-table{--solaris-table-row-hover-bg: var(--solaris-color-surface-2);--solaris-table-row-selected-bg: var(--solaris-color-surface-2);overflow:hidden;box-shadow:var(--solaris-shadow-sm);border-radius:var(--solaris-radius-lg);background:var(--solaris-color-surface);border:1px solid var(--solaris-color-border)}.solaris-table--grid{--solaris-table-cell-divider: 1px solid var(--solaris-color-border)}.solaris-table--zebra{--solaris-table-cell-divider: 0px solid transparent}.solaris-table__inner{overflow-x:hidden}:host([data-scroll=true]) .solaris-table__inner{overflow-x:auto}.solaris-table__inner.is-resizing{-webkit-user-select:none;user-select:none;cursor:col-resize}.solaris-table__row{width:100%;display:grid;min-height:3.25rem;align-items:stretch}.solaris-table__row--header{background:var(--solaris-color-surface-2);border-bottom:1px solid var(--solaris-color-border)}.solaris-table__cell{min-width:0;height:100%;display:flex;align-items:center;padding:var(--solaris-space-4);border-right:var(--solaris-table-cell-divider)}.solaris-table__cell,.solaris-row__cell{box-sizing:border-box}.solaris-table__cell:last-child{border-right:none}.solaris-table__cell--header{position:relative;padding:var(--solaris-space-3) var(--solaris-space-4)}.solaris-table__header-content{width:100%;min-width:0;align-items:center;display:inline-flex;gap:var(--solaris-space-2);justify-content:space-between}.solaris-table__header-left{min-width:0;overflow:hidden;align-items:center;display:inline-flex;gap:var(--solaris-space-2)}.solaris-table__header-left i.ph{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__select-prefix{flex:0 0 auto;align-items:center;display:inline-flex}.solaris-table__header-text{overflow:hidden;white-space:nowrap;display:inline-block;text-overflow:ellipsis;font-size:var(--solaris-fs-14);letter-spacing:var(--solaris-ls-sm);color:var(--solaris-color-text-muted);max-width:var(--solaris-col-max, 100%)}.solaris-table__sort-btn{border:none;flex:0 0 auto;cursor:pointer;background:transparent;padding:var(--solaris-space-1);color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-sm)}.solaris-table__sort-btn:hover{background:var(--solaris-color-surface-2)}.solaris-table__sort{display:inline-flex;align-items:center;gap:var(--solaris-space-1)}.solaris-table__sort i{opacity:.45;transition:opacity .14s ease,color .14s ease,transform .14s ease}.solaris-table__sort i.is-active{opacity:1;color:var(--solaris-color-primary)}.solaris-table__sort-order{font-size:var(--solaris-fs-10);margin-left:var(--solaris-space-1);color:var(--solaris-color-text-muted)}.solaris-table__col-resizer{top:0;right:0;z-index:10;width:12px;height:100%;cursor:col-resize;touch-action:none;position:absolute;pointer-events:auto}.solaris-table__col-resizer:after{top:20%;left:50%;width:1px;content:\"\";height:60%;position:absolute;background:transparent;transform:translate(-50%);transition:background .12s ease}.solaris-table__cell--header:hover .solaris-table__col-resizer:after{background:color-mix(in srgb,var(--solaris-color-border) 65%,transparent)}.solaris-table__body{background:var(--solaris-color-surface)}.solaris-table__empty{display:grid;place-items:center;gap:var(--solaris-space-3);padding:var(--solaris-space-8);color:var(--solaris-color-text-muted);border-bottom:1px solid var(--solaris-color-border)}.solaris-table__empty i{font-size:2rem}.solaris-table__empty-text{font-size:var(--solaris-fs-14)}.solaris-table__footer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--solaris-space-4);justify-content:space-between;background:var(--solaris-color-surface);padding:var(--solaris-space-3) var(--solaris-space-4)}.solaris-table__footer-left,.solaris-table__footer-right{display:inline-flex;align-items:center;gap:var(--solaris-space-4)}.solaris-table__description,.solaris-table__selected{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__rows-per-page{display:inline-flex;align-items:center;gap:var(--solaris-space-2);margin-right:var(--solaris-space-8)}.solaris-table__rows-per-page span,.solaris-table__rows-per-page select{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__rows-per-page select{border:none;background:transparent}.solaris-table__range{font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted)}.solaris-table__pager{display:inline-flex;gap:var(--solaris-space-2)}.solaris-table__pager button{border:none;cursor:pointer;background:transparent;padding:var(--solaris-space-2);font-size:var(--solaris-fs-16);color:var(--solaris-color-text-muted);border-radius:var(--solaris-radius-sm);transition:background .14s ease,opacity .14s ease}.solaris-table__pager button:hover:not(:disabled){background:var(--solaris-color-surface-2)}.solaris-table__pager button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.solaris-table__row--header{display:none}.solaris-table__footer-left,.solaris-table__footer-right{width:100%;justify-content:space-between}.solaris-table__col-resizer{display:none}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SolarisCheckbox, selector: "solaris-checkbox", inputs: ["indeterminate", "ariaLabel", "size", "variant", "color", "id", "appearance", "checkColor"], outputs: ["checkedChange", "indeterminateChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SolarisTableSkeleton, selector: "solaris-table-skeleton", inputs: ["rows", "columns", "selectable", "gridTemplateColumns"] }, { kind: "pipe", type: SolarisTranslationPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3307
3754
  }
3308
3755
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisTable, decorators: [{
3309
3756
  type: Component,
@@ -3381,7 +3828,7 @@ class SolarisRowComponent {
3381
3828
  return this.table.isSelected(this.rowKey);
3382
3829
  }
3383
3830
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisRowComponent, deps: [{ token: SolarisTable, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
3384
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisRowComponent, isStandalone: true, selector: "solaris-row", inputs: { rowKey: "rowKey", value: "value" }, host: { classAttribute: "solaris-row-host" }, ngImport: i0, template: "<div class=\"solaris-row\" role=\"row\" [attr.aria-selected]=\"isSelected\" [class.is-selected]=\"isSelected\"\r\n [style.gridTemplateColumns]=\"table.gridTemplateColumns()\">\r\n\r\n @for (col of table.columns(); track col.id; let i = $index) {\r\n <div class=\"solaris-row__cell\" role=\"cell\" [attr.data-col-idx]=\"i\" [class.align-end]=\"col.align === 'end'\"\r\n [class.align-center]=\"col.align === 'center'\" [style.--solaris-col-max]=\"col.maxWidth || null\">\r\n\r\n @if (table.selectable && i === 0) {\r\n <span class=\"solaris-row__select-prefix\">\r\n <solaris-checkbox variant=\"square\" color=\"primary\" size=\"sm\" [ngModel]=\"isSelected\"\r\n (ngModelChange)=\"table.toggleRow(rowKey, $event)\" [attr.aria-label]=\"'ui.solaris.tables.aria.selectRow' | translate\"/>\r\n </span>\r\n }\r\n\r\n <span class=\"solaris-row__label\">\r\n @if (col.headerKey) { {{ col.headerKey | translate }} } @else { {{ col.header }} }\r\n </span>\r\n\r\n <span class=\"solaris-row__content\">\r\n @if (col.cellDef?.template) {\r\n <ng-container [ngTemplateOutlet]=\"col.cellDef!.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: value, row: value, col: col }\"/>\r\n } @else {\r\n {{ table.readField(value, col.field) }}\r\n }\r\n </span>\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;--solaris-table-row-bg: transparent;--solaris-table-row-bg-hover: var(--solaris-table-row-hover-bg, var(--solaris-color-surface-2))}:host-context(.solaris-table--zebra):nth-child(2n){--solaris-table-row-bg: var(--solaris-color-surface-2)}:host-context(.solaris-table--zebra):nth-child(odd){--solaris-table-row-bg: var(--solaris-color-surface)}@supports (color: color-mix(in srgb,black 50%,white)){:host-context(.solaris-table--zebra):nth-child(2n){--solaris-table-row-bg-hover: color-mix(in srgb, var(--solaris-color-surface-2) 40%, var(--solaris-color-surface))}:host-context(.solaris-table--zebra):nth-child(odd){--solaris-table-row-bg-hover: color-mix(in srgb, var(--solaris-color-surface) 40%, var(--solaris-color-surface-2))}}.solaris-row{display:grid;align-items:stretch;background:var(--solaris-table-row-bg);transition:background .3s ease-in-out;border-bottom:1px solid var(--solaris-color-border)}.solaris-row:hover{background:var(--solaris-table-row-bg-hover)}.solaris-row.is-selected,.solaris-row.is-selected:hover{background:var(--solaris-table-row-selected-bg)}.solaris-row__cell{min-width:0;display:flex;align-items:center;align-self:stretch;gap:var(--solaris-space-3);padding:var(--solaris-space-4);border-right:var(--solaris-table-cell-divider)}.solaris-row__cell:last-child{border-right:none}.solaris-row__cell--select{justify-content:center}.align-end{justify-content:flex-end;text-align:right}.align-center{justify-content:center;text-align:center}.solaris-row__label{display:none;font-size:var(--solaris-fs-12);color:var(--solaris-color-text-muted)}.solaris-row__content{overflow:hidden;white-space:nowrap;display:inline-block;text-overflow:ellipsis;font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted);max-width:var(--solaris-col-max, 100%)}.solaris-row__select-prefix{flex:0 0 auto;align-items:center;display:inline-flex}@media(max-width:768px){.solaris-row{display:block;border-bottom:none;padding:var(--solaris-space-4)}.solaris-row__cell{border-right:none;padding:var(--solaris-space-2) 0;align-items:flex-start;justify-content:space-between}.solaris-row__cell--select{justify-content:flex-end;padding-top:0}.solaris-row__label{display:inline;min-width:9rem}.solaris-row__content{max-width:100%;overflow:hidden;white-space:nowrap;display:inline-block;text-overflow:ellipsis}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SolarisCheckbox, selector: "solaris-checkbox", inputs: ["indeterminate", "ariaLabel", "size", "variant", "color", "id", "appearance", "checkColor"], outputs: ["checkedChange", "indeterminateChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SolarisTranslationPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3831
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: SolarisRowComponent, isStandalone: true, selector: "solaris-row", inputs: { rowKey: "rowKey", value: "value" }, host: { classAttribute: "solaris-row-host" }, ngImport: i0, template: "<div class=\"solaris-row\" role=\"row\" [attr.aria-selected]=\"isSelected\" [class.is-selected]=\"isSelected\"\r\n [style.gridTemplateColumns]=\"table.gridTemplateColumns()\">\r\n\r\n @for (col of table.columns(); track col.id; let i = $index) {\r\n <div class=\"solaris-row__cell\" role=\"cell\" [attr.data-col-idx]=\"i\" [class.align-end]=\"col.align === 'end'\"\r\n [class.align-center]=\"col.align === 'center'\" [style.--solaris-col-max]=\"col.maxWidth || null\">\r\n\r\n @if (table.selectable && i === 0) {\r\n <span class=\"solaris-row__select-prefix\">\r\n <solaris-checkbox variant=\"square\" color=\"primary\" size=\"sm\" [ngModel]=\"isSelected\"\r\n (ngModelChange)=\"table.toggleRow(rowKey, $event)\" [attr.aria-label]=\"'ui.solaris.tables.aria.selectRow' | translate\"/>\r\n </span>\r\n }\r\n\r\n <span class=\"solaris-row__label\">\r\n @if (col.headerKey) { {{ col.headerKey | translate }} } @else { {{ col.header }} }\r\n </span>\r\n\r\n <span class=\"solaris-row__content\">\r\n @if (col.cellDef?.template) {\r\n <ng-container [ngTemplateOutlet]=\"col.cellDef!.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: value, row: value, col: col }\"/>\r\n } @else {\r\n {{ table.readField(value, col.field) }}\r\n }\r\n </span>\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;--solaris-table-row-bg: transparent;--solaris-table-row-bg-hover: var(--solaris-table-row-hover-bg, var(--solaris-color-surface-2))}:host-context(.solaris-table--zebra):nth-child(2n){--solaris-table-row-bg: var(--solaris-color-surface-2)}:host-context(.solaris-table--zebra):nth-child(odd){--solaris-table-row-bg: var(--solaris-color-surface)}@supports (color: color-mix(in srgb,black 50%,white)){:host-context(.solaris-table--zebra):nth-child(2n){--solaris-table-row-bg-hover: color-mix(in srgb, var(--solaris-color-surface-2) 40%, var(--solaris-color-surface))}:host-context(.solaris-table--zebra):nth-child(odd){--solaris-table-row-bg-hover: color-mix(in srgb, var(--solaris-color-surface) 40%, var(--solaris-color-surface-2))}}.solaris-row{display:grid;align-items:stretch;background:var(--solaris-table-row-bg);transition:background .3s ease-in-out;border-bottom:1px solid var(--solaris-color-border)}.solaris-row:hover{background:var(--solaris-table-row-bg-hover)}.solaris-row.is-selected,.solaris-row.is-selected:hover{background:var(--solaris-table-row-selected-bg)}.solaris-row__cell{min-width:0;display:flex;align-items:center;align-self:stretch;gap:var(--solaris-space-3);padding:var(--solaris-space-4);border-right:var(--solaris-table-cell-divider)}.solaris-row__cell:last-child{border-right:none}.solaris-row__cell--select{justify-content:center}.align-end{justify-content:flex-end;text-align:right}.align-center{justify-content:center;text-align:center}.solaris-row__label{display:none;font-size:var(--solaris-fs-12);color:var(--solaris-color-text-muted)}.solaris-row__content{overflow:hidden;white-space:nowrap;display:inline-block;text-overflow:ellipsis;font-size:var(--solaris-fs-14);color:var(--solaris-color-text-muted);max-width:var(--solaris-col-max, 100%)}.solaris-row__select-prefix{flex:0 0 auto;align-items:center;display:inline-flex}@media(max-width:768px){.solaris-row{display:block;border-bottom:none;padding:var(--solaris-space-4)}.solaris-row__cell{border-right:none;padding:var(--solaris-space-2) 0;align-items:flex-start;justify-content:space-between}.solaris-row__cell--select{justify-content:flex-end;padding-top:0}.solaris-row__label{display:inline;min-width:9rem}.solaris-row__content{max-width:100%;overflow:hidden;white-space:nowrap;display:inline-block;text-overflow:ellipsis}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SolarisCheckbox, selector: "solaris-checkbox", inputs: ["indeterminate", "ariaLabel", "size", "variant", "color", "id", "appearance", "checkColor"], outputs: ["checkedChange", "indeterminateChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SolarisTranslationPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3385
3832
  }
3386
3833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: SolarisRowComponent, decorators: [{
3387
3834
  type: Component,
@@ -5311,5 +5758,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
5311
5758
  * Generated bundle index. Do not edit.
5312
5759
  */
5313
5760
 
5314
- export { ButtonDirective, ButtonGroupDirective, FieldErrorComponent, FormField, InputTextDirective, PasswordToggle, SOLARIS_FORM_FIELD_CONTROLLER, SOLARIS_FORM_FIELD_FEATURES, SOLARIS_INPUT, SOLARIS_NOTIFICATION_CONFIG, SOLARIS_NOTIFICATION_DEFAULT_CONFIG, SOLARIS_NOTIFICATION_POSITIONS, SolarisBadge, SolarisBodyDirective, SolarisBreadcrumb, SolarisCheckbox, SolarisColumnCellDef, SolarisColumnHeaderDef, SolarisControlBridgeDirective, SolarisDivider, SolarisDrawer, SolarisDrawerFooterDirective, SolarisDrawerHeaderDirective, SolarisDropdownContent, SolarisDropdownContentPanelDirective, SolarisDropdownContentRegistry, SolarisDropdownContentTriggerDirective, SolarisEmailDirective, SolarisFilterBar, SolarisFilterChip, SolarisFilterField, SolarisFilterPanel, SolarisFilterPanelFooterDirective, SolarisFooterDirective, SolarisFormFieldController, SolarisHeaderDirective, SolarisIdGenerator, SolarisImageSliderComponent, SolarisLoading, SolarisLoadingOverlay, SolarisNotificationCenterComponent, SolarisNotificationHostComponent, SolarisNotificationIntlService, SolarisNotificationItemComponent, SolarisNotificationService, SolarisPage, SolarisPageHeader, SolarisPageHeaderBreadcrumbDirective, SolarisPageHeaderDescriptionDirective, SolarisPageHeaderTitle, SolarisPageHeaderTitleDirective, SolarisPasswordDirective, SolarisPhoneInput, SolarisPopover, SolarisPopoverPanelDirective, SolarisPopoverTriggerDirective, SolarisPrefixDirective, SolarisRowComponent, SolarisSectionComponent, SolarisSelect, SolarisSuffixDirective, SolarisTab, SolarisTable, SolarisTableColumn, SolarisTableFilters, SolarisTableSkeleton, SolarisTabs, computePopoverPosition, provideSolarisNotifications, uniqueId };
5761
+ export { ButtonDirective, ButtonGroupDirective, FieldErrorComponent, FormField, InputTextDirective, PasswordToggle, SOLARIS_FORM_FIELD_CONTROLLER, SOLARIS_FORM_FIELD_FEATURES, SOLARIS_INPUT, SOLARIS_NOTIFICATION_CONFIG, SOLARIS_NOTIFICATION_DEFAULT_CONFIG, SOLARIS_NOTIFICATION_POSITIONS, SolarisBadge, SolarisBodyDirective, SolarisBreadcrumb, SolarisCheckbox, SolarisColumnCellDef, SolarisColumnHeaderDef, SolarisControlBridgeDirective, SolarisDivider, SolarisDrawer, SolarisDrawerFooterDirective, SolarisDrawerHeaderDirective, SolarisDropdownContent, SolarisDropdownContentPanelDirective, SolarisDropdownContentRegistry, SolarisDropdownContentTriggerDirective, SolarisEmailDirective, SolarisFilterBar, SolarisFilterChip, SolarisFilterField, SolarisFilterPanel, SolarisFilterPanelFooterDirective, SolarisFooterDirective, SolarisFormFieldController, SolarisHeaderDirective, SolarisIdGenerator, SolarisImageSliderComponent, SolarisLoading, SolarisLoadingOverlay, SolarisNotificationCenterComponent, SolarisNotificationHostComponent, SolarisNotificationIntlService, SolarisNotificationItemComponent, SolarisNotificationService, SolarisPage, SolarisPageHeader, SolarisPageHeaderBreadcrumbDirective, SolarisPageHeaderDescriptionDirective, SolarisPageHeaderTitle, SolarisPageHeaderTitleDirective, SolarisPasswordDirective, SolarisPhoneInput, SolarisPopover, SolarisPopoverPanelDirective, SolarisPopoverTriggerDirective, SolarisPrefixDirective, SolarisRowComponent, SolarisSectionComponent, SolarisSelect, SolarisStepper, SolarisStepperItem, SolarisSuffixDirective, SolarisTab, SolarisTable, SolarisTableColumn, SolarisTableFilters, SolarisTableSkeleton, SolarisTabs, computePopoverPosition, provideSolarisNotifications, uniqueId };
5315
5762
  //# sourceMappingURL=educarehq-solaris-components.mjs.map