@educarehq/solaris-components 0.6.5 → 0.6.6

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 +1 @@
1
- {"version":3,"file":"educarehq-solaris-components.mjs","sources":["../../../projects/solaris-components/src/lib/navigations/dropdown/directives/dropdown-content-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/directives/dropdown-content-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/service/dropdown-content-registry.service.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/component/dropdown-content.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/component/dropdown-content.html","../../../projects/solaris-components/src/lib/navigations/breadcrumb/component/breadcrumb.ts","../../../projects/solaris-components/src/lib/navigations/breadcrumb/component/breadcrumb.html","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.ts","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.html","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.ts","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.html","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.ts","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.html","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/model/popover.type.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.html","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.ts","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.html","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.ts","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.html","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.ts","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.html","../../../projects/solaris-components/src/lib/core/overlay/floating-position.util.ts","../../../projects/solaris-components/src/lib/core/overlay/floating-overlay.service.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/directives/rich-tooltip.directive.ts","../../../projects/solaris-components/src/lib/actions/button/directives/button.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/config/notification.config.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification-intl.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/directives/tooltip.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.html","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-overlay.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-slide.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.html","../../../projects/solaris-components/src/lib/layouts/section/component/section.ts","../../../projects/solaris-components/src/lib/layouts/section/component/section.html","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.ts","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.html","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-step-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-ref.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/service/dialog.service.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.html","../../../projects/solaris-components/src/lib/data-display/table/directives/filter-panel-footer.directive.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/filter/table-filters.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/filter/table-filters.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/field/filter-field.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/field/filter-field.html","../../../projects/solaris-components/src/lib/data-display/table/directives/filter-panel-chips.directive.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/panel/filter-panel.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/panel/filter-panel.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/chip/filter-chip.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/chip/filter-chip.html","../../../projects/solaris-components/src/lib/data-display/table/components/skeleton/table-skeleton.ts","../../../projects/solaris-components/src/lib/data-display/table/components/skeleton/table-skeleton.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/bar/filter-bar.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/bar/filter-bar.html","../../../projects/solaris-components/src/lib/data-display/table/directives/column.directive.ts","../../../projects/solaris-components/src/lib/common/service/id-generator.service.ts","../../../projects/solaris-components/src/lib/data-display/table/components/column/table-column.ts","../../../projects/solaris-components/src/lib/data-display/table/components/column/table-column.html","../../../projects/solaris-components/src/lib/common/helper/unique-id.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.html","../../../projects/solaris-components/src/lib/data-display/table/components/table/table.ts","../../../projects/solaris-components/src/lib/data-display/table/components/table/table.html","../../../projects/solaris-components/src/lib/data-display/table/components/row/table-row.ts","../../../projects/solaris-components/src/lib/data-display/table/components/row/table-row.html","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-body.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-description.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-breadcrumb.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-title.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-actions.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.html","../../../projects/solaris-components/src/lib/actions/button/directives/button-group.directive.ts","../../../projects/solaris-components/src/lib/actions/radio/token/radio-group.token.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.html","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.ts","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.html","../../../projects/solaris-components/src/lib/visual/avatar/directives/avatar-overlay.directive.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.html","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.ts","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.html","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.ts","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.html","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.ts","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.html","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.ts","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.html","../../../projects/solaris-components/src/lib/cards/card-group/token/card-group.token.ts","../../../projects/solaris-components/src/lib/cards/card/utils/resolve-card-color.ts","../../../projects/solaris-components/src/lib/cards/card/utils/resolve-card-radius.ts","../../../projects/solaris-components/src/lib/cards/card/component/card.ts","../../../projects/solaris-components/src/lib/cards/card/component/card.html","../../../projects/solaris-components/src/lib/cards/selection-card/component/selection-card.ts","../../../projects/solaris-components/src/lib/cards/selection-card/component/selection-card.html","../../../projects/solaris-components/src/lib/cards/card-media/directives/card-media-overlay.directive.ts","../../../projects/solaris-components/src/lib/cards/card-media/component/card-media.ts","../../../projects/solaris-components/src/lib/cards/card-media/component/card-media.html","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.ts","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.html","../../../projects/solaris-components/src/lib/cards/card-group/component/card-group.ts","../../../projects/solaris-components/src/lib/cards/card-group/component/card-group.html","../../../projects/solaris-components/src/lib/cards/card/directives/card-description.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-actions.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-eyebrow.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-footer.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-media.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-meta.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-badge.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-title.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-slots.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.sanitize.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.country.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-features.ts","../../../projects/solaris-components/src/lib/forms/form-field/controller/form-field-controller.ts","../../../projects/solaris-components/src/lib/forms/input-text/tokens/input.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-text.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.html","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-password.directive.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-email.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-controller.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.html","../../../projects/solaris-components/src/lib/forms/form-field/directives/control-bridge.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/prefix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/suffix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.html","../../../projects/solaris-components/src/lib/forms/select/component/select.ts","../../../projects/solaris-components/src/lib/forms/select/component/select.html","../../../projects/solaris-components/src/public-api.ts","../../../projects/solaris-components/src/educarehq-solaris-components.ts"],"sourcesContent":["import { Directive, ElementRef, inject, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[solaris-dropdown-content-trigger]',\n standalone: true,\n})\nexport class SolarisDropdownContentTriggerDirective {\n public readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly renderer: Renderer2 = inject(Renderer2);\n\n public ensureFocusable(): void {\n const element = this.elementRef.nativeElement;\n const tag = element.tagName.toLowerCase();\n const isNaturallyFocusable =\n tag === 'button' || tag === 'a' || element.hasAttribute('tabindex');\n\n if (!isNaturallyFocusable) {\n this.renderer.setAttribute(element, 'tabindex', '0');\n this.renderer.setAttribute(element, 'role', 'button');\n }\n\n this.renderer.setAttribute(element, 'aria-haspopup', 'true');\n }\n\n public setExpanded(isExpanded: boolean, panelId: string): void {\n const element = this.elementRef.nativeElement;\n this.renderer.setAttribute(element, 'aria-expanded', String(isExpanded));\n this.renderer.setAttribute(element, 'aria-controls', panelId);\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-dropdown-content-panel]',\n standalone: true,\n})\nexport class SolarisDropdownContentPanelDirective {\n public readonly templateRef: TemplateRef<unknown> = inject(TemplateRef<unknown>);\n}\n","import { Injectable } from '@angular/core';\n\nexport interface SolarisDropdownContentInterface {\n closeFromRegistry(): void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisDropdownContentRegistry {\n private readonly instances = new Set<SolarisDropdownContentInterface>();\n\n public register(instance: SolarisDropdownContentInterface): void {\n this.instances.add(instance);\n }\n\n public unregister(instance: SolarisDropdownContentInterface): void {\n this.instances.delete(instance);\n }\n\n public notifyOpen(openingInstance: SolarisDropdownContentInterface): void {\n for (const instance of this.instances) {\n if (instance !== openingInstance) {\n instance.closeFromRegistry();\n }\n }\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n Input,\n ViewContainerRef,\n ViewEncapsulation,\n inject,\n OnDestroy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport {\n SolarisDropdownContentInterface,\n SolarisDropdownContentRegistry,\n} from '../service/dropdown-content-registry.service';\nimport { SolarisDropdownContentTriggerDirective } from '../directives/dropdown-content-trigger.directive';\nimport { SolarisDropdownContentPanelDirective } from '../directives/dropdown-content-panel.directive';\nimport { SolarisDropdownWidthMode } from '../model/dropdown-content.type';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'solaris-dropdown-content',\n standalone: true,\n imports: [],\n templateUrl: './dropdown-content.html',\n styleUrls: ['./dropdown-content.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SolarisDropdownContent\n implements AfterContentInit, OnDestroy, SolarisDropdownContentInterface\n{\n private readonly registry = inject(SolarisDropdownContentRegistry);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly overlay = inject(Overlay);\n\n @ContentChild(SolarisDropdownContentTriggerDirective)\n trigger?: SolarisDropdownContentTriggerDirective;\n @ContentChild(SolarisDropdownContentPanelDirective) panel?: SolarisDropdownContentPanelDirective;\n\n @Input() container?: HTMLElement | ElementRef<HTMLElement>;\n @Input() widthMode: SolarisDropdownWidthMode = 'auto';\n @Input() maxWidth: string = '72rem';\n @Input() closeDelay = 120;\n @Input() openDelay = 60;\n\n private readonly panelId = `solaris-dropdown-panel-${Math.random().toString(16).slice(2)}`;\n private isHoveringTrigger = false;\n private portal?: TemplatePortal<unknown>;\n private isHoveringPanel = false;\n private outsideClickSub?: Subscription;\n private isPinned = false;\n private overlayRef?: OverlayRef;\n private isOpen = false;\n private closeTimer?: number;\n private openTimer?: number;\n\n ngAfterContentInit(): void {\n if (!this.trigger) throw new Error('solaris-dropdown: missing [solaris-dropdown-trigger].');\n if (!this.panel)\n throw new Error('solaris-dropdown: missing <ng-template solaris-dropdown-content-panel>.');\n\n this.registry.register(this);\n this.trigger.ensureFocusable();\n this.trigger.setExpanded(false, this.panelId);\n\n const triggerElement = this.trigger.elementRef.nativeElement;\n\n fromEvent(triggerElement, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onTriggerEnter());\n\n fromEvent(triggerElement, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onTriggerLeave());\n\n fromEvent<MouseEvent>(triggerElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n event.preventDefault();\n this.togglePinned();\n });\n\n fromEvent<KeyboardEvent>(triggerElement, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.togglePinned();\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close('escape');\n }\n });\n }\n\n ngOnDestroy(): void {\n this.registry.unregister(this);\n this.unbindOutsideClick();\n this.overlayRef?.dispose();\n }\n\n public closeFromRegistry(): void {\n this.close('registry');\n }\n\n private onTriggerEnter(): void {\n this.isHoveringTrigger = true;\n if (this.isPinned) return;\n this.scheduleOpen('hover');\n }\n\n private onTriggerLeave(): void {\n this.isHoveringTrigger = false;\n if (this.isPinned) return;\n this.scheduleClose();\n }\n\n private onPanelEnter(): void {\n this.isHoveringPanel = true;\n if (this.isPinned) return;\n this.clearCloseTimer();\n }\n\n private onPanelLeave(): void {\n this.isHoveringPanel = false;\n if (this.isPinned) return;\n this.scheduleClose();\n }\n\n private togglePinned(): void {\n if (!this.isOpen) {\n this.isPinned = true;\n this.open('pinned');\n return;\n }\n\n if (this.isPinned) {\n this.close('toggle');\n return;\n }\n\n this.isPinned = true;\n this.bindOutsideClick();\n }\n\n private scheduleOpen(reason: 'hover' | 'pinned'): void {\n this.clearOpenTimer();\n this.openTimer = globalThis.setTimeout(() => this.open(reason), this.openDelay);\n }\n\n private scheduleClose(): void {\n this.clearCloseTimer();\n this.closeTimer = globalThis.setTimeout(() => {\n if (this.isPinned) return;\n if (this.isHoveringTrigger || this.isHoveringPanel) return;\n this.close('hover-leave');\n }, this.closeDelay);\n }\n\n private clearOpenTimer(): void {\n if (this.openTimer) globalThis.clearTimeout(this.openTimer);\n this.openTimer = undefined;\n }\n\n private clearCloseTimer(): void {\n if (this.closeTimer) globalThis.clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n\n public open(reason: 'hover' | 'pinned'): void {\n if (!this.trigger || !this.panel) return;\n if (reason === 'hover') this.isPinned = false;\n\n this.registry.notifyOpen(this);\n\n const triggerElement = this.trigger.elementRef.nativeElement;\n const originRect = triggerElement.getBoundingClientRect();\n\n const containerElement = this.getContainerElement();\n const containerRect = containerElement?.getBoundingClientRect();\n const isFull = this.widthMode === 'full';\n const viewportMargin = isFull ? 0 : 8;\n const offsetX = this.computeOffsetX(originRect, containerRect);\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(triggerElement)\n .withFlexibleDimensions(false)\n .withPush(!isFull)\n .withViewportMargin(viewportMargin)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(8)\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ]);\n\n if (this.overlayRef) {\n this.overlayRef.updatePositionStrategy(positionStrategy);\n } else {\n this.overlayRef = this.overlay.create({\n positionStrategy: positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n panelClass: ['solaris-dropdown-content-overlay'],\n });\n\n this.overlayRef\n .detachments()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.resetState());\n }\n\n this.applyOverlaySize(originRect, containerRect);\n this.portal ??= new TemplatePortal(this.panel.templateRef, this.viewContainerRef);\n if (!this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portal);\n this.wirePanelEvents();\n }\n\n this.isOpen = true;\n this.trigger.setExpanded(true, this.panelId);\n\n if (this.isPinned) {\n this.bindOutsideClick();\n } else {\n this.unbindOutsideClick();\n }\n\n this.clearCloseTimer();\n }\n\n public close(reason: 'hover-leave' | 'toggle' | 'escape' | 'outside' | 'registry'): void {\n this.clearOpenTimer();\n this.clearCloseTimer();\n this.isPinned = false;\n this.unbindOutsideClick();\n\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.isOpen = false;\n this.trigger?.setExpanded(false, this.panelId);\n }\n\n private resetState(): void {\n this.isOpen = false;\n this.isPinned = false;\n this.isHoveringPanel = false;\n this.isHoveringTrigger = false;\n this.unbindOutsideClick();\n this.trigger?.setExpanded(false, this.panelId);\n }\n\n private wirePanelEvents(): void {\n if (!this.overlayRef) return;\n\n const panelHost = this.overlayRef.overlayElement;\n panelHost.id = this.panelId;\n\n fromEvent(panelHost, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onPanelEnter());\n\n fromEvent(panelHost, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onPanelLeave());\n\n fromEvent<KeyboardEvent>(panelHost, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close('escape');\n this.trigger?.elementRef.nativeElement.focus();\n }\n });\n }\n\n private bindOutsideClick(): void {\n if (!this.isPinned) return;\n if (this.outsideClickSub) return;\n\n const triggerElement = this.trigger?.elementRef.nativeElement;\n const overlayEl = this.overlayRef?.overlayElement;\n\n if (!triggerElement || !overlayEl) return;\n\n this.outsideClickSub = fromEvent<MouseEvent>(document, 'mousedown')\n .pipe(\n filter(() => this.isPinned),\n filter((event) => {\n const targetNode = event.target as Node | null;\n if (!targetNode) return false;\n const insideTrigger = triggerElement.contains(targetNode);\n const insidePanel = overlayEl.contains(targetNode);\n return !insideTrigger && !insidePanel;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.close('outside'));\n }\n\n private unbindOutsideClick(): void {\n this.outsideClickSub?.unsubscribe();\n this.outsideClickSub = undefined;\n }\n\n private getContainerElement(): HTMLElement | undefined {\n const containerRef = this.container;\n if (!containerRef) return undefined;\n return containerRef instanceof ElementRef ? containerRef.nativeElement : containerRef;\n }\n\n private computeOffsetX(originRect: DOMRect, containerRect?: DOMRect): number {\n if (this.widthMode === 'full') {\n return -originRect.left;\n }\n\n if (this.widthMode === 'container' && containerRect) {\n return containerRect.left - originRect.left;\n }\n\n return 0;\n }\n\n private applyOverlaySize(originRect: DOMRect, containerRect?: DOMRect): void {\n if (!this.overlayRef) return;\n\n if (this.widthMode === 'match-trigger') {\n this.overlayRef.updateSize({ width: originRect.width });\n return;\n }\n\n if (this.widthMode === 'full') {\n const viewportWidth = document.documentElement.clientWidth;\n this.overlayRef.updateSize({\n width: viewportWidth,\n maxWidth: viewportWidth,\n });\n return;\n }\n\n if (this.widthMode === 'container' && containerRect) {\n this.overlayRef.updateSize({\n width: containerRect.width,\n maxWidth: containerRect.width,\n });\n return;\n }\n\n this.overlayRef.updateSize({ maxWidth: this.maxWidth });\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { RouterLink } from '@angular/router';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nimport { SolarisBreadcrumbItem } from '../model/breadcrumb.type';\n\n@Component({\n selector: 'solaris-breadcrumb',\n standalone: true,\n imports: [NgClass, RouterLink, CdkMenu, CdkMenuItem, CdkMenuTrigger, NgTemplateOutlet],\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisBreadcrumb {\n @Input({ alias: 'min-items' }) minItems = 2;\n @Input({ alias: 'max-items' }) maxItems = 4;\n @Input() responsive = true;\n @Input({ required: true }) items: SolarisBreadcrumbItem[] = [];\n @HostBinding('class') hostClass = 'solaris-breadcrumb-host';\n @Output() itemSelect = new EventEmitter<{ id: string; item: SolarisBreadcrumbItem }>();\n\n get viewModel() {\n const items = this.items ?? [];\n const total = items.length;\n const max = Math.max(this.minItems, this.effectiveMaxItems);\n\n if (total <= max) {\n return {\n head: items,\n overflow: [] as SolarisBreadcrumbItem[],\n tail: [] as SolarisBreadcrumbItem[],\n };\n }\n\n const keepHead = 1;\n const keepTail = 1;\n\n const remaining = max - keepHead - keepTail;\n const extraTail = Math.max(0, remaining);\n\n const head = items.slice(0, keepHead);\n const tail = items.slice(total - (keepTail + extraTail), total);\n const overflow = items.slice(keepHead, total - tail.length);\n\n return { head, overflow, tail };\n }\n get effectiveMaxItems(): number {\n if (!this.responsive) return this.maxItems;\n\n const isSmall =\n typeof globalThis.matchMedia === 'function' &&\n globalThis.matchMedia('(max-width: 640px)').matches;\n\n return isSmall ? Math.max(this.minItems, 3) : this.maxItems;\n }\n\n protected getRouterCommands(it: SolarisBreadcrumbItem): any[] | null {\n return it.target?.kind === 'router' ? it.target.commands : null;\n }\n\n protected getRouterQueryParams(it: SolarisBreadcrumbItem): Record<string, any> | null {\n return it.target?.kind === 'router' ? (it.target.extras?.queryParams ?? null) : null;\n }\n\n protected shouldRenderSeparatorAfterHead(headIndex: number): boolean {\n if (headIndex < this.viewModel.head.length - 1) return true;\n return this.viewModel.overflow.length > 0 || this.viewModel.tail.length > 0;\n }\n\n protected onAction(item: SolarisBreadcrumbItem) {\n if (item.disabled) return;\n const t = item.target;\n if (t?.kind === 'action') this.itemSelect.emit({ id: t.id, item });\n }\n}\n","<nav class=\"solaris-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol class=\"solaris-breadcrumb__list\">\n @for (it of viewModel.head; track it.label; let i = $index) {\n <li class=\"solaris-breadcrumb__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{ $implicit: it }\" />\n @if (shouldRenderSeparatorAfterHead(i)) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n\n @if (viewModel.overflow.length > 0) {\n <li class=\"solaris-breadcrumb__item\">\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__ellipsis\"\n aria-label=\"Mostrar mais\"\n [cdkMenuTriggerFor]=\"overflowMenu\"\n >\n <i class=\"ph ph-dots-three\"></i>\n </button>\n\n <ng-template #overflowMenu>\n <div class=\"solaris-breadcrumb__menu\" cdkMenu>\n @for (it of viewModel.overflow; track it.label) {\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__menu-item\"\n cdkMenuItem\n (click)=\"onAction(it)\"\n [disabled]=\"it.disabled\"\n [routerLink]=\"getRouterCommands(it)\"\n [queryParams]=\"getRouterQueryParams(it)\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </button>\n }\n </div>\n </ng-template>\n\n @if (viewModel.tail.length > 0) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n\n @for (it of viewModel.tail; track it.label; let i = $index) {\n <li class=\"solaris-breadcrumb__item\" [class.is-current]=\"i === viewModel.tail.length - 1\">\n <ng-container\n [ngTemplateOutlet]=\"itemTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: it, current: i === viewModel.tail.length - 1 }\"\n />\n @if (it !== viewModel.tail[viewModel.tail.length - 1]) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n </ol>\n\n <ng-template #itemTpl let-it let-current=\"current\">\n @if (it.target?.kind === 'router') {\n <a\n class=\"solaris-breadcrumb__link\"\n [class.is-disabled]=\"it.disabled\"\n [class.is-current]=\"current\"\n [routerLink]=\"it.disabled ? null : it.target!.commands\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </a>\n } @else if (it.target?.kind === 'href') {\n <a\n class=\"solaris-breadcrumb__link\"\n [class.is-disabled]=\"it.disabled\"\n [class.is-current]=\"current\"\n [href]=\"it.disabled ? null : it.target!.href\"\n [target]=\"it.target!.target || '_self'\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </a>\n } @else if (it.target?.kind === 'action') {\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__link as-button\"\n [class.is-current]=\"current\"\n [disabled]=\"it.disabled\"\n (click)=\"onAction(it)\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </button>\n } @else {\n <span class=\"solaris-breadcrumb__text\" [attr.aria-current]=\"current ? 'page' : null\">\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </span>\n }\n </ng-template>\n</nav>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { BadgeColorInput, BadgeVariant } from '../../../../feedbacks/badge/model/badge.type';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\nimport { SolarisStepperPhase, SolarisStepperStatus } from '../../model/stepper.type';\n\n@Component({\n selector: 'solaris-stepper-item',\n standalone: true,\n templateUrl: './stepper-item.html',\n styleUrls: ['./stepper-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisStepperItem {\n @Input() stepId?: string;\n\n @Input() label?: string;\n @Input() labelKey?: string;\n\n @Input() title?: string;\n @Input() titleKey?: string;\n\n @Input() description?: string;\n @Input() descriptionKey?: string;\n\n @Input() icon?: string;\n @Input() optional = false;\n\n @Input() phase: SolarisStepperPhase | null = null;\n @Input() status: SolarisStepperStatus = 'default';\n\n @Input() badgeText?: string;\n @Input() badgeTextKey?: string;\n @Input() badgeColor?: BadgeColorInput;\n @Input() badgeVariant: BadgeVariant = 'subtle';\n @Input() badgeSize: SolarisSizePreset = 'sm';\n @Input() badgePill = true;\n\n public active = false;\n public index = 0;\n public headerId = '';\n public panelId = '';\n}\n","<section\n class=\"solaris-stepper-item__panel\"\n role=\"tabpanel\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!active\"\n [attr.hidden]=\"active ? null : ''\"\n>\n <ng-content></ng-content>\n</section>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\nimport { BadgeColorInput, BadgeVariant } from '../model/badge.type';\n\n@Component({\n selector: 'solaris-badge',\n standalone: true,\n imports: [NgClass],\n templateUrl: './badge.html',\n styleUrls: ['./badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisBadge {\n @Input() pill = false;\n @Input() customTextColor?: string;\n @Input() interactive = false;\n @Input() size: SolarisSizePreset = 'md';\n @Input() variant: BadgeVariant = 'subtle';\n @Input() color: BadgeColorInput = 'surface';\n @Input({ alias: 'aria-hidden' }) ariaHidden: 'true' | 'false' | null = null;\n @HostBinding('class') hostClass = 'solaris-badge-host';\n private readonly presetColors = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n 'surface',\n ]);\n\n get colorClass(): string {\n return this.isCustomColor ? 'color-custom' : `color-${this.color}`;\n }\n get isCustomColor(): boolean {\n return !this.presetColors.has(this.color as SolarisColorPreset);\n }\n get customColorValue(): string | null {\n return this.isCustomColor ? String(this.color) : null;\n }\n}\n","<span\n class=\"solaris-badge\"\n [attr.aria-hidden]=\"ariaHidden\"\n [ngClass]=\"[\n 'variant-' + variant,\n colorClass,\n 'size-' + size,\n pill ? 'is-pill' : '',\n interactive ? 'is-interactive' : '',\n ]\"\n [style.--solaris-badge-custom]=\"customColorValue\"\n [style.--solaris-badge-custom-fg]=\"customTextColor\"\n>\n <ng-content></ng-content>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SolarisStepperAppearance,\n SolarisStepperChangeEvent,\n SolarisStepperChangeReason,\n SolarisStepperOrientation,\n SolarisStepperPhase,\n} from '../model/stepper.type';\nimport { SolarisBadge } from '../../../feedbacks/badge/component/badge';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisStepperItem } from '../item/component/stepper-item';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'solaris-stepper',\n standalone: true,\n imports: [CommonModule, SolarisTranslationPipe, SolarisBadge],\n templateUrl: './stepper.html',\n styleUrls: ['./stepper.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisStepper implements AfterContentInit, OnChanges {\n private readonly destroyRef = inject(DestroyRef);\n private static nextId = 0;\n\n @Input() orientation: SolarisStepperOrientation = 'horizontal';\n @Input() appearance: SolarisStepperAppearance = 'default';\n\n @Input() linear = true;\n @Input() interactive = true;\n\n @Input() activeIndex: number | null = null;\n @Input() defaultActiveIndex = 0;\n\n @Input() allowBackNavigation = true;\n @Input() allowFutureNavigation = false;\n @Input() allowSkip = false;\n\n @Input() renderPanels = true;\n @Input() showStateBadges = false;\n\n @Output() readonly activeIndexChange = new EventEmitter<number>();\n @Output('next') readonly nextChange = new EventEmitter<number>();\n @Output('previous') readonly previousChange = new EventEmitter<number>();\n @Output() readonly stepChange = new EventEmitter<SolarisStepperChangeEvent>();\n\n @ContentChildren(SolarisStepperItem)\n private readonly itemsQuery?: QueryList<SolarisStepperItem>;\n\n @ViewChildren('stepButton')\n private readonly stepButtons?: QueryList<ElementRef<HTMLButtonElement>>;\n\n public items: SolarisStepperItem[] = [];\n\n private readonly uid = SolarisStepper.nextId++;\n private internalActiveIndex = 0;\n\n public get currentIndex(): number {\n return this.normalizeIndex(\n this.isControlled() ? (this.activeIndex ?? 0) : this.internalActiveIndex,\n );\n }\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.internalActiveIndex = this.defaultActiveIndex;\n this.syncItems();\n\n this.itemsQuery?.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.syncItems();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['defaultActiveIndex'] && !this.isControlled()) {\n this.internalActiveIndex = this.defaultActiveIndex;\n }\n\n if (\n changes['activeIndex'] ||\n changes['orientation'] ||\n changes['appearance'] ||\n changes['linear']\n ) {\n this.syncItems();\n }\n }\n\n public next(): void {\n const target = this.findAdjacentNavigableIndex(this.currentIndex, 1);\n if (target === null) return;\n\n this.commitIndexChange(target, 'next');\n this.nextChange.emit(target);\n }\n\n public previous(): void {\n const target = this.findAdjacentNavigableIndex(this.currentIndex, -1);\n if (target === null) return;\n\n this.commitIndexChange(target, 'previous');\n this.previousChange.emit(target);\n }\n\n public setActiveStep(index: number): void {\n if (!this.isProgrammaticallyNavigable(index)) return;\n this.commitIndexChange(index, 'programmatic');\n }\n\n public onStepHeaderClick(index: number): void {\n if (!this.canActivateByHeaderClick(index)) return;\n this.commitIndexChange(index, 'header');\n }\n\n public onStepKeydown(event: KeyboardEvent, index: number): void {\n const isHorizontal = this.orientation === 'horizontal';\n\n switch (event.key) {\n case 'ArrowRight':\n if (!isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, 1);\n return;\n\n case 'ArrowLeft':\n if (!isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, -1);\n return;\n\n case 'ArrowDown':\n if (isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, 1);\n return;\n\n case 'ArrowUp':\n if (isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, -1);\n return;\n\n case 'Home':\n event.preventDefault();\n this.focusButton(0);\n return;\n\n case 'End':\n event.preventDefault();\n this.focusButton(this.items.length - 1);\n return;\n\n default:\n return;\n }\n }\n\n public isCurrent(index: number): boolean {\n return index === this.currentIndex;\n }\n\n public isCompleted(index: number): boolean {\n return this.resolvePhase(this.items[index], index) === 'completed';\n }\n\n public isPending(index: number): boolean {\n return this.resolvePhase(this.items[index], index) === 'pending';\n }\n\n public resolvePhase(item: SolarisStepperItem, index: number): SolarisStepperPhase {\n if (item.phase) return item.phase;\n\n if (index < this.currentIndex) return 'completed';\n if (index === this.currentIndex) return 'current';\n return 'pending';\n }\n\n public getStepClasses(item: SolarisStepperItem, index: number): Record<string, boolean> {\n return {\n 'is-current': this.isCurrent(index),\n 'is-completed': this.isCompleted(index),\n 'is-pending': this.isPending(index),\n 'is-warning': item.status === 'warning',\n 'is-error': item.status === 'error',\n 'is-disabled': item.status === 'disabled',\n 'is-locked': item.status === 'locked',\n 'is-clickable': this.canActivateByHeaderClick(index),\n };\n }\n\n public getConnectorClasses(index: number): Record<string, boolean> {\n return {\n 'is-completed': index < this.currentIndex,\n 'is-current': index === this.currentIndex,\n };\n }\n\n public getMarkerIcon(item: SolarisStepperItem, index: number): string | null {\n if (this.appearance === 'compact') return null;\n\n if (item.status === 'locked') return 'ph-lock';\n if (item.status === 'error') return 'ph-x-circle';\n if (item.status === 'warning') return 'ph-warning-circle';\n if (this.isCompleted(index)) return 'ph-check';\n\n return item.icon ?? null;\n }\n\n public getMarkerText(item: SolarisStepperItem, index: number): string | null {\n if (this.appearance === 'compact') {\n return `${index + 1}.`;\n }\n\n return this.getMarkerIcon(item, index) ? null : String(index + 1);\n }\n\n public hasBadge(item: SolarisStepperItem, index: number): boolean {\n if (!this.showStateBadges || this.appearance === 'compact') return false;\n\n return Boolean(\n item.badgeText || item.badgeTextKey || this.getAutoBadgeTranslationKey(item, index),\n );\n }\n\n public getResolvedLabel(item: SolarisStepperItem, index: number): string | null {\n if (item.labelKey || item.label) return null;\n return `${index + 1}`;\n }\n\n public getResolvedBadgeColor(item: SolarisStepperItem, index: number) {\n if (item.badgeColor) return item.badgeColor;\n\n if (item.status === 'error') return 'error';\n if (item.status === 'warning') return 'warning';\n if (item.status === 'locked' || item.status === 'disabled') return 'surface';\n\n const phase = this.resolvePhase(item, index);\n if (phase === 'completed') return 'success';\n if (phase === 'current') return 'primary';\n\n return 'surface';\n }\n\n public getResolvedBadgeVariant(item: SolarisStepperItem) {\n return item.badgeVariant;\n }\n\n public getAutoBadgeTranslationKey(item: SolarisStepperItem, index: number): string {\n if (item.status === 'error') return 'ui.solaris.stepper.error';\n if (item.status === 'warning') return 'ui.solaris.stepper.warning';\n if (item.status === 'locked') return 'ui.solaris.stepper.locked';\n if (item.status === 'disabled') return 'ui.solaris.stepper.disabled';\n\n const phase = this.resolvePhase(item, index);\n\n if (phase === 'completed') return 'ui.solaris.stepper.completed';\n if (phase === 'current') return 'ui.solaris.stepper.inProgress';\n return 'ui.solaris.stepper.pending';\n }\n\n public getTitle(item: SolarisStepperItem): string {\n return item.title ?? '';\n }\n\n public getDescription(item: SolarisStepperItem): string {\n return item.description ?? '';\n }\n\n public getStepAriaLabel(item: SolarisStepperItem, index: number): string {\n const phase = this.resolvePhase(item, index);\n const title = item.title ?? item.titleKey ?? `${index + 1}`;\n\n if (phase === 'completed') {\n return `${title} completed`;\n }\n\n if (phase === 'current') {\n return `${title} current step`;\n }\n\n if (item.status === 'locked') {\n return `${title} locked`;\n }\n\n if (item.status === 'disabled') {\n return `${title} disabled`;\n }\n\n return title;\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private syncItems(): void {\n this.items = this.itemsQuery?.toArray() ?? [];\n\n const currentIndex = this.normalizeIndex(\n this.isControlled() ? (this.activeIndex ?? 0) : this.internalActiveIndex,\n );\n\n this.items.forEach((item, index) => {\n item.index = index;\n item.headerId = `solaris-stepper-${this.uid}-tab-${index}`;\n item.panelId = `solaris-stepper-${this.uid}-panel-${index}`;\n item.active = index === currentIndex;\n });\n\n this.changeDetectorRef.markForCheck();\n }\n\n private commitIndexChange(index: number, reason: SolarisStepperChangeReason): void {\n const normalized = this.normalizeIndex(index);\n if (normalized === this.currentIndex) return;\n\n const previousIndex = this.currentIndex;\n\n if (!this.isControlled()) {\n this.internalActiveIndex = normalized;\n this.syncItems();\n }\n\n this.activeIndexChange.emit(normalized);\n this.stepChange.emit({\n previousIndex,\n currentIndex: normalized,\n reason,\n });\n }\n\n private canActivateByHeaderClick(index: number): boolean {\n if (!this.interactive) return false;\n if (!this.isInBounds(index)) return false;\n\n const item = this.items[index];\n if (!item || this.isDisabledLike(item)) return false;\n\n if (index === this.currentIndex) return true;\n if (index < this.currentIndex) return this.allowBackNavigation;\n\n if (!this.linear) return true;\n\n if (!this.allowFutureNavigation) return false;\n if (!this.allowSkip) return index === this.currentIndex + 1;\n\n return true;\n }\n\n private isProgrammaticallyNavigable(index: number): boolean {\n if (!this.isInBounds(index)) return false;\n\n const item = this.items[index];\n if (!item) return false;\n\n return !this.isDisabledLike(item);\n }\n\n private findAdjacentNavigableIndex(start: number, direction: 1 | -1): number | null {\n let cursor = start + direction;\n\n while (this.isInBounds(cursor)) {\n const item = this.items[cursor];\n if (item && !this.isDisabledLike(item)) {\n return cursor;\n }\n cursor += direction;\n }\n\n return null;\n }\n\n private isDisabledLike(item: SolarisStepperItem): boolean {\n return item.status === 'disabled' || item.status === 'locked';\n }\n\n private isControlled(): boolean {\n return this.activeIndex !== null && this.activeIndex !== undefined;\n }\n\n private isInBounds(index: number): boolean {\n return index >= 0 && index < this.items.length;\n }\n\n private normalizeIndex(index: number): number {\n if (this.items.length === 0) return 0;\n return Math.min(Math.max(index, 0), this.items.length - 1);\n }\n\n private focusRelativeButton(index: number, direction: 1 | -1): void {\n let cursor = index + direction;\n\n while (cursor >= 0 && cursor < this.items.length) {\n if (!this.isDisabledLike(this.items[cursor])) {\n this.focusButton(cursor);\n return;\n }\n cursor += direction;\n }\n }\n\n private focusButton(index: number): void {\n const button = this.stepButtons?.get(index)?.nativeElement;\n button?.focus();\n }\n}\n","<div class=\"solaris-stepper\" [ngClass]=\"['orientation-' + orientation, 'appearance-' + appearance]\">\n <div class=\"solaris-stepper__rail\" role=\"tablist\" [attr.aria-orientation]=\"orientation\">\n @for (item of items; track trackByIndex($index); let i = $index; let last = $last) {\n <div class=\"solaris-stepper__node\">\n <button\n #stepButton\n type=\"button\"\n role=\"tab\"\n class=\"solaris-stepper__step\"\n [id]=\"item.headerId\"\n [attr.aria-controls]=\"item.panelId\"\n [attr.aria-selected]=\"isCurrent(i)\"\n [attr.aria-current]=\"isCurrent(i) ? 'step' : null\"\n [attr.aria-disabled]=\"item.status === 'disabled' || item.status === 'locked'\"\n [attr.tabindex]=\"isCurrent(i) ? 0 : -1\"\n [ngClass]=\"getStepClasses(item, i)\"\n (click)=\"onStepHeaderClick(i)\"\n (keydown)=\"onStepKeydown($event, i)\"\n >\n <span class=\"solaris-stepper__marker\" [ngClass]=\"getStepClasses(item, i)\">\n @if (getMarkerIcon(item, i)) {\n <i class=\"ph\" [ngClass]=\"getMarkerIcon(item, i)\" aria-hidden=\"true\"></i>\n }\n\n @if (getMarkerText(item, i)) {\n <span>{{ getMarkerText(item, i) }}</span>\n }\n </span>\n\n <span class=\"solaris-stepper__meta\">\n <span class=\"solaris-stepper__label\">\n @if (item.labelKey) {\n {{ item.labelKey | translate }}\n } @else if (item.label) {\n {{ item.label }}\n } @else {\n {{ 'ui.solaris.stepper.step' | translate }} {{ i + 1 }}\n }\n </span>\n\n <span class=\"solaris-stepper__title\">\n @if (item.titleKey) {\n {{ item.titleKey | translate }}\n } @else {\n {{ item.title }}\n }\n </span>\n\n @if (item.descriptionKey || item.description) {\n <span class=\"solaris-stepper__description\">\n @if (item.descriptionKey) {\n {{ item.descriptionKey | translate }}\n } @else {\n {{ item.description }}\n }\n </span>\n }\n\n @if (item.optional) {\n <span class=\"solaris-stepper__optional\">\n {{ 'ui.solaris.stepper.optional' | translate }}\n </span>\n }\n </span>\n\n @if (hasBadge(item, i)) {\n <solaris-badge\n class=\"solaris-stepper__badge\"\n [pill]=\"item.badgePill\"\n [size]=\"item.badgeSize\"\n [variant]=\"getResolvedBadgeVariant(item)\"\n [color]=\"getResolvedBadgeColor(item, i)\"\n aria-hidden=\"true\"\n >\n @if (item.badgeTextKey) {\n {{ item.badgeTextKey | translate }}\n } @else if (item.badgeText) {\n {{ item.badgeText }}\n } @else {\n {{ getAutoBadgeTranslationKey(item, i) | translate }}\n }\n </solaris-badge>\n }\n </button>\n\n @if (!last) {\n <span\n class=\"solaris-stepper__connector\"\n [ngClass]=\"getConnectorClasses(i)\"\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n }\n </div>\n\n @if (renderPanels) {\n <div class=\"solaris-stepper__content\">\n <ng-content></ng-content>\n </div>\n }\n</div>\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[solaris-popover-trigger]',\n standalone: true,\n})\nexport class SolarisPopoverTriggerDirective {\n readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-popover-panel]',\n standalone: true,\n})\nexport class SolarisPopoverPanelDirective {\n readonly templateRef: TemplateRef<any> = inject(TemplateRef<any>);\n}\n","export type SolarisPopoverPlacement =\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'right-start'\n | 'right'\n | 'right-end'\n | 'left-start'\n | 'left'\n | 'left-end';\n\nexport interface SolarisPopoverPositionConfiguration {\n placement: SolarisPopoverPlacement;\n offset: number;\n viewportPadding: number;\n autoFlip: boolean;\n autoShift: boolean;\n matchWidth: boolean;\n}\n\nexport interface SolarisPopoverPositionResult {\n x: number;\n y: number;\n appliedPlacement: SolarisPopoverPlacement;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.max(min, Math.min(max, v));\n}\n\nfunction initialXY(\n anchor: DOMRect,\n panel: DOMRect,\n placement: SolarisPopoverPlacement,\n offset: number,\n) {\n const axMid = anchor.left + anchor.width / 2;\n const ayMid = anchor.top + anchor.height / 2;\n\n switch (placement) {\n case 'bottom-start':\n return { x: anchor.left, y: anchor.bottom + offset };\n case 'bottom':\n return { x: axMid - panel.width / 2, y: anchor.bottom + offset };\n case 'bottom-end':\n return { x: anchor.right - panel.width, y: anchor.bottom + offset };\n\n case 'top-start':\n return { x: anchor.left, y: anchor.top - panel.height - offset };\n case 'top':\n return { x: axMid - panel.width / 2, y: anchor.top - panel.height - offset };\n case 'top-end':\n return { x: anchor.right - panel.width, y: anchor.top - panel.height - offset };\n\n case 'right-start':\n return { x: anchor.right + offset, y: anchor.top };\n case 'right':\n return { x: anchor.right + offset, y: ayMid - panel.height / 2 };\n case 'right-end':\n return { x: anchor.right + offset, y: anchor.bottom - panel.height };\n\n case 'left-start':\n return { x: anchor.left - panel.width - offset, y: anchor.top };\n case 'left':\n return { x: anchor.left - panel.width - offset, y: ayMid - panel.height / 2 };\n case 'left-end':\n return { x: anchor.left - panel.width - offset, y: anchor.bottom - panel.height };\n }\n}\n\nfunction flipPlacement(p: SolarisPopoverPlacement): SolarisPopoverPlacement {\n if (p.startsWith('bottom')) return p.replace('bottom', 'top') as SolarisPopoverPlacement;\n if (p.startsWith('top')) return p.replace('top', 'bottom') as SolarisPopoverPlacement;\n if (p.startsWith('left')) return p.replace('left', 'right') as SolarisPopoverPlacement;\n if (p.startsWith('right')) return p.replace('right', 'left') as SolarisPopoverPlacement;\n return p;\n}\n\nexport function computePopoverPosition(\n anchorRect: DOMRect,\n panelRect: DOMRect,\n configuration: SolarisPopoverPositionConfiguration,\n): SolarisPopoverPositionResult {\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n let applied = configuration.placement;\n\n const fits = (x: number, y: number) => {\n const pad = configuration.viewportPadding;\n const left = x;\n const top = y;\n const right = x + panelRect.width;\n const bottom = y + panelRect.height;\n\n return left >= pad && top >= pad && right <= vw - pad && bottom <= vh - pad;\n };\n\n let pos = initialXY(anchorRect, panelRect, applied, configuration.offset);\n\n if (configuration.autoFlip && !fits(pos.x, pos.y)) {\n const flipped = flipPlacement(applied);\n const flippedPos = initialXY(anchorRect, panelRect, flipped, configuration.offset);\n if (fits(flippedPos.x, flippedPos.y)) {\n applied = flipped;\n pos = flippedPos;\n }\n }\n\n if (configuration.autoShift) {\n const pad = configuration.viewportPadding;\n pos.x = clamp(pos.x, pad, vw - pad - panelRect.width);\n pos.y = clamp(pos.y, pad, vh - pad - panelRect.height);\n }\n\n return { x: pos.x, y: pos.y, appliedPlacement: applied };\n}\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n DestroyRef,\n effect,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SolarisPopoverTriggerDirective } from '../directives/popover-trigger.directive';\nimport { computePopoverPosition, SolarisPopoverPlacement } from '../model/popover.type';\nimport { SolarisPopoverPanelDirective } from '../directives/popover-panel.directive';\n\n@Component({\n selector: 'solaris-popover',\n standalone: true,\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SolarisPopover {\n private readonly appRef = inject(ApplicationRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() offset = 8;\n @Input() panelClass = '';\n @Input() autoFlip = true;\n @Input() autoShift = true;\n @Input() matchWidth = false;\n @Input() viewportPadding = 8;\n @Input() closeOnEscape = true;\n @Input() closeOnOutsideClick = true;\n @Input() anchorElement?: HTMLElement | null = null;\n @Input() matchWidthElement?: HTMLElement | null = null;\n @Input() placement: SolarisPopoverPlacement = 'bottom-start';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n private readonly _internalOpen = signal(false);\n private readonly _openInput = signal<boolean | null>(null);\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Input() set open(v: boolean | null) {\n this._openInput.set(v);\n }\n get open(): boolean | null {\n return this._openInput();\n }\n\n @ContentChild(SolarisPopoverPanelDirective) panelDir?: SolarisPopoverPanelDirective;\n @ContentChild(SolarisPopoverTriggerDirective) triggerDir?: SolarisPopoverTriggerDirective;\n\n private raf = 0;\n private _setting = false;\n private panelHost?: HTMLDivElement;\n private panelView?: EmbeddedViewRef<any>;\n\n @HostBinding('attr.data-open')\n get dataOpen() {\n return this.isOpen() ? 'true' : null;\n }\n\n constructor() {\n effect(() => {\n if (this.isOpen()) this.show();\n else this.hide();\n });\n\n effect((onCleanup) => {\n if (!this.isOpen()) return;\n\n const onResize = () => this.scheduleReposition();\n const onScroll = () => this.scheduleReposition();\n\n const onPointerDown = (ev: PointerEvent) => {\n if (!this.closeOnOutsideClick) return;\n const t = ev.target as Node | null;\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\n if (!t || !triggerEl || !this.panelHost) return;\n\n const clickedInsidePanel = this.panelHost.contains(t);\n const clickedOnTrigger = triggerEl.contains(t);\n\n if (!clickedInsidePanel && !clickedOnTrigger) {\n this.setOpen(false);\n }\n };\n\n const onKeyDown = (ev: KeyboardEvent) => {\n if (!this.closeOnEscape) return;\n if (ev.key === 'Escape') this.setOpen(false);\n };\n\n window.addEventListener('resize', onResize, { passive: true });\n window.addEventListener('scroll', onScroll, { passive: true, capture: true });\n document.addEventListener('pointerdown', onPointerDown, { capture: true });\n document.addEventListener('keydown', onKeyDown, { capture: true });\n\n onCleanup(() => {\n window.removeEventListener('resize', onResize);\n window.removeEventListener('scroll', onScroll, true as any);\n document.removeEventListener('pointerdown', onPointerDown, true as any);\n document.removeEventListener('keydown', onKeyDown, true as any);\n });\n });\n\n this.destroyRef.onDestroy(() => this.unmountHard());\n }\n\n public toggle() {\n this.setOpen(!this.isOpen());\n }\n\n public setOpen(next: boolean) {\n const current = this.isOpen();\n if (next === current) return;\n if (this._setting) return;\n\n this._setting = true;\n try {\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') {\n this._internalOpen.set(next);\n }\n } finally {\n queueMicrotask(() => (this._setting = false));\n }\n }\n\n private ensureMounted() {\n if (this.panelHost || !this.triggerDir || !this.panelDir) return;\n\n const host = document.createElement('div');\n host.style.top = '0px';\n host.style.left = '0px';\n host.style.display = 'none';\n host.style.position = 'fixed';\n host.style.zIndex = 'var(--solaris-z-max)';\n host.className = `solaris-popover-panel ${this.panelClass || ''}`.trim();\n\n const view = this.panelDir.templateRef.createEmbeddedView({});\n this.appRef.attachView(view);\n view.detectChanges();\n\n for (const node of view.rootNodes) host.appendChild(node);\n document.body.appendChild(host);\n\n this.panelHost = host;\n this.panelView = view;\n }\n\n private show() {\n this.ensureMounted();\n if (!this.panelHost) return;\n\n this.panelHost.style.display = '';\n this.scheduleReposition(true);\n }\n\n private hide() {\n if (!this.panelHost) return;\n this.panelHost.style.display = 'none';\n }\n\n private unmountHard() {\n if (this.raf) cancelAnimationFrame(this.raf);\n this.raf = 0;\n\n if (this.panelView) {\n this.appRef.detachView(this.panelView);\n this.panelView.destroy();\n this.panelView = undefined;\n }\n\n if (this.panelHost) {\n this.panelHost.remove();\n this.panelHost = undefined;\n }\n }\n\n private scheduleReposition(immediate = false) {\n if (!this.panelHost || !this.triggerDir) return;\n\n if (immediate) {\n this.reposition();\n return;\n }\n\n if (this.raf) return;\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition() {\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\n const host = this.panelHost;\n if (!triggerEl || !host) return;\n\n const anchorEl = this.anchorElement ?? triggerEl;\n const anchorRect = anchorEl.getBoundingClientRect();\n const widthEl = this.matchWidthElement ?? (this.matchWidth ? anchorEl : null);\n\n if (this.matchWidth && widthEl) {\n const w = widthEl.getBoundingClientRect().width;\n host.style.boxSizing = 'border-box';\n host.style.width = `${w}px`;\n host.style.minWidth = `${w}px`;\n host.style.maxWidth = `${w}px`;\n } else {\n host.style.width = '';\n host.style.minWidth = '';\n host.style.maxWidth = '';\n }\n\n if (getComputedStyle(host).display === 'none') return;\n\n const panelRect = host.getBoundingClientRect();\n\n const { x, y } = computePopoverPosition(anchorRect, panelRect, {\n placement: this.placement,\n offset: this.offset,\n viewportPadding: this.viewportPadding,\n autoFlip: this.autoFlip,\n autoShift: this.autoShift,\n matchWidth: this.matchWidth,\n });\n\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n }\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n signal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { TabsSize, TabsVariant } from '../model/tab.type';\nimport { SolarisTab } from '../tab/component/tab';\n\n@Component({\n selector: 'solaris-tabs',\n standalone: true,\n imports: [NgClass],\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTabs implements AfterContentInit {\n @Input() size: TabsSize = 'md';\n @Input() disabled = false;\n @Input() variant: TabsVariant = 'underline';\n @Input({ alias: 'active-id' }) activeId?: string;\n @Output('active-idChange') activeIdChange = new EventEmitter<string>();\n @Output() tabChange = new EventEmitter<{ id: string }>();\n\n @HostBinding('class') hostClass = 'solaris-tabs-host';\n @ContentChildren(SolarisTab) tabs!: QueryList<SolarisTab>;\n readonly focusId = signal<string | null>(null);\n\n ngAfterContentInit(): void {\n queueMicrotask(() => {\n const first = this.tabs?.get(0);\n if (!this.activeId && first?.id) {\n this.setActive(first.id, false);\n }\n if (!this.focusId() && (this.activeId ?? first?.id)) {\n this.focusId.set(this.activeId ?? first?.id ?? null);\n }\n this.syncTabs();\n this.tabs.changes.subscribe(() => this.syncTabs());\n });\n }\n\n private syncTabs(): void {\n const list = this.tabs?.toArray() ?? [];\n for (const t of list) {\n t._setParent(this);\n t._setDisabled(this.disabled || t.disabled);\n }\n }\n\n isActive(id: string): boolean {\n return this.activeId === id;\n }\n\n isFocusable(id: string): boolean {\n const fid = this.focusId();\n return (fid ?? this.activeId) === id;\n }\n\n setActive(id: string, emit = true): void {\n if (!id) return;\n this.activeId = id;\n this.focusId.set(id);\n if (emit) {\n this.activeIdChange.emit(id);\n this.tabChange.emit({ id });\n }\n }\n\n onKeydown(ev: KeyboardEvent): void {\n if (this.disabled) return;\n\n const keys = ['ArrowLeft', 'ArrowRight', 'Home', 'End'];\n if (!keys.includes(ev.key)) return;\n\n const list = (this.tabs?.toArray() ?? []).filter((t) => !t._isDisabled());\n if (!list.length) return;\n\n ev.preventDefault();\n\n const currentId = this.focusId() ?? this.activeId ?? list[0].id;\n const idx = Math.max(\n 0,\n list.findIndex((t) => t.id === currentId),\n );\n let next = idx;\n\n if (ev.key === 'ArrowLeft') next = (idx - 1 + list.length) % list.length;\n if (ev.key === 'ArrowRight') next = (idx + 1) % list.length;\n if (ev.key === 'Home') next = 0;\n if (ev.key === 'End') next = list.length - 1;\n\n const nextTab = list[next];\n this.focusId.set(nextTab.id);\n nextTab._focus();\n }\n}\n","<div\n [ngClass]=\"['size-' + size, 'variant-' + variant, disabled ? 'is-disabled' : '']\"\n class=\"solaris-tabs\"\n role=\"tablist\"\n (keydown)=\"onKeydown($event)\"\n>\n <ng-content />\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { SolarisTabs } from '../../component/tabs';\n\n@Component({\n selector: 'solaris-tab',\n standalone: true,\n imports: [RouterLink],\n templateUrl: './tab.html',\n styleUrls: ['./tab.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTab {\n @Input() disabled = false;\n @Input() routerLink?: any[] | string;\n @Input({ required: true }) id!: string;\n\n private parent?: SolarisTabs;\n private disabledByParent = false;\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n @Optional() parent: SolarisTabs,\n ) {\n this.parent = parent;\n }\n\n _setParent(parent: SolarisTabs): void {\n this.parent = parent;\n }\n\n _setDisabled(disabled: boolean): void {\n this.disabledByParent = disabled;\n }\n\n _isDisabled(): boolean {\n return this.disabled || this.disabledByParent;\n }\n\n _focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n @HostBinding('class')\n get hostClass(): string {\n const active = this.parent?.isActive(this.id);\n return [\n 'solaris-tab',\n active ? 'is-active' : '',\n this._isDisabled() ? 'is-disabled' : '',\n this.routerLink ? 'is-link' : '',\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n @HostBinding('attr.role') role = 'tab';\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number {\n if (this._isDisabled()) return -1;\n return this.parent?.isFocusable(this.id) ? 0 : -1;\n }\n\n @HostBinding('attr.aria-selected')\n get ariaSelected(): string {\n return this.parent?.isActive(this.id) ? 'true' : 'false';\n }\n\n @HostListener('click')\n onClick(): void {\n if (this._isDisabled()) return;\n this.parent?.setActive(this.id, true);\n }\n\n @HostListener('focus')\n onFocus(): void {\n if (this._isDisabled()) return;\n this.parent?.focusId.set(this.id);\n }\n}\n","@if (routerLink) {\n <a class=\"solaris-tab__inner\" [routerLink]=\"routerLink\">\n <ng-content />\n </a>\n} @else {\n <button type=\"button\" class=\"solaris-tab__inner\">\n <ng-content />\n </button>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NgStyle } from '@angular/common';\n\n@Component({\n selector: 'solaris-loading-overlay',\n standalone: true,\n imports: [NgStyle],\n templateUrl: './loading-overlay.html',\n styleUrls: ['./loading-overlay.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisLoadingOverlay implements OnChanges {\n @HostBinding('attr.solaris-loading-overlay') readonly marker = '';\n\n @Input({ alias: 'z-index' }) zIndex?: number;\n @Input() backdrop: 'soft' | 'strong' = 'soft';\n @Input() appearance: 'card' | 'minimal' = 'card';\n @Input({ transform: coerceBoolean }) blur = true;\n @Input({ transform: coerceBoolean }) open = false;\n @Input({ alias: 'lock-scroll', transform: coerceBoolean }) lockScroll = true;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.lockScroll) return;\n\n if (changes['open']) {\n if (this.open) document.documentElement.style.overflow = 'hidden';\n else document.documentElement.style.overflow = '';\n }\n }\n\n get overlayStyle() {\n return this.zIndex == null ? null : { 'z-index': String(this.zIndex) };\n }\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n","@if (open) {\n <div\n class=\"solaris-loading-overlay\"\n [class.backdrop-soft]=\"backdrop === 'soft'\"\n [class.backdrop-strong]=\"backdrop === 'strong'\"\n [class.is-blur]=\"blur\"\n [class.appearance-card]=\"appearance === 'card'\"\n [class.appearance-minimal]=\"appearance === 'minimal'\"\n [ngStyle]=\"overlayStyle\"\n role=\"presentation\"\n >\n <div class=\"solaris-loading-overlay__backdrop\" aria-hidden=\"true\"></div>\n\n <div class=\"solaris-loading-overlay__content\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <ng-content></ng-content>\n </div>\n </div>\n}\n","import {\n SolarisFloatingOverlayRef,\n SolarisFloatingPosition,\n SolarisFloatingPositionConfiguration,\n SolarisFloatingPositionResult,\n SolarisTooltipRepositionOptions,\n} from './model/tooltip-services.type';\nimport { ElementRef } from '@angular/core';\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction oppositePosition(position: SolarisFloatingPosition): SolarisFloatingPosition {\n switch (position) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n }\n}\n\nfunction initialXY(\n anchor: DOMRect,\n panel: DOMRect,\n position: SolarisFloatingPosition,\n offset: number,\n): { x: number; y: number } {\n const anchorCenterX = anchor.left + anchor.width / 2;\n const anchorCenterY = anchor.top + anchor.height / 2;\n\n switch (position) {\n case 'top':\n return {\n x: anchorCenterX - panel.width / 2,\n y: anchor.top - panel.height - offset,\n };\n\n case 'bottom':\n return {\n x: anchorCenterX - panel.width / 2,\n y: anchor.bottom + offset,\n };\n\n case 'right':\n return {\n x: anchor.right + offset,\n y: anchorCenterY - panel.height / 2,\n };\n\n case 'left':\n return {\n x: anchor.left - panel.width - offset,\n y: anchorCenterY - panel.height / 2,\n };\n }\n}\n\nexport function computeFloatingPosition(\n anchorRect: DOMRect,\n panelRect: DOMRect,\n configuration: SolarisFloatingPositionConfiguration,\n): SolarisFloatingPositionResult {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const padding = configuration.viewportPadding;\n\n let appliedPosition = configuration.position;\n let position = initialXY(anchorRect, panelRect, appliedPosition, configuration.offset);\n\n const fits = (x: number, y: number): boolean => {\n const left = x;\n const top = y;\n const right = x + panelRect.width;\n const bottom = y + panelRect.height;\n\n return (\n left >= padding &&\n top >= padding &&\n right <= viewportWidth - padding &&\n bottom <= viewportHeight - padding\n );\n };\n\n if (configuration.autoFlip && !fits(position.x, position.y)) {\n const flipped = oppositePosition(appliedPosition);\n const flippedPosition = initialXY(anchorRect, panelRect, flipped, configuration.offset);\n\n if (fits(flippedPosition.x, flippedPosition.y)) {\n appliedPosition = flipped;\n position = flippedPosition;\n }\n }\n\n if (configuration.autoShift) {\n position.x = clamp(position.x, padding, viewportWidth - padding - panelRect.width);\n position.y = clamp(position.y, padding, viewportHeight - padding - panelRect.height);\n }\n\n return {\n x: position.x,\n y: position.y,\n appliedPosition,\n };\n}\n\nexport function repositionTooltipOverlay<T>(\n anchor: ElementRef<HTMLElement>,\n overlayRef: SolarisFloatingOverlayRef<T>,\n options: SolarisTooltipRepositionOptions,\n setAppliedPosition: (position: SolarisFloatingPosition) => void,\n): void {\n const anchorRect = anchor.nativeElement.getBoundingClientRect();\n const panelRect = overlayRef.hostElement.getBoundingClientRect();\n\n const result = computeFloatingPosition(anchorRect, panelRect, options);\n\n overlayRef.setTransform(result.x, result.y);\n setAppliedPosition(result.appliedPosition);\n}\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n Type,\n createComponent,\n inject,\n} from '@angular/core';\n\nimport {\n SolarisFloatingOverlayOptions,\n SolarisFloatingOverlayRef,\n SolarisFloatingRepositionContext,\n} from './model/tooltip-services.type';\nimport { computeFloatingPosition } from './floating-position.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SolarisFloatingOverlayService {\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n\n create<T>(\n component: Type<T>,\n options: SolarisFloatingOverlayOptions = {},\n ): SolarisFloatingOverlayRef<T> {\n const id = this.createId(options.idPrefix ?? 'solaris-floating');\n\n const host = document.createElement('div');\n host.id = id;\n host.style.position = 'fixed';\n host.style.top = '0';\n host.style.left = '0';\n host.style.display = 'block';\n host.style.width = 'max-content';\n host.style.maxWidth = 'max-content';\n host.style.zIndex = options.zIndex ?? 'var(--solaris-z-tooltip, 1200)';\n host.style.pointerEvents = options.pointerEvents ?? 'none';\n host.style.transform = 'translate3d(0, 0, 0)';\n\n if (options.panelClass?.trim()) {\n host.className = options.panelClass.trim();\n }\n\n document.body.appendChild(host);\n\n const componentRef = createComponent(component, {\n environmentInjector: this.injector,\n hostElement: host,\n });\n\n this.appRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n\n return {\n id,\n hostElement: host,\n componentRef,\n\n setTransform(x: number, y: number): void {\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n },\n\n destroy: (): void => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n host.remove();\n },\n };\n }\n\n reposition<T>(context: SolarisFloatingRepositionContext<T>): void {\n const anchorRect = context.anchor.getBoundingClientRect();\n const panelRect = context.overlayRef.hostElement.getBoundingClientRect();\n\n const result = computeFloatingPosition(anchorRect, panelRect, context.options);\n\n context.overlayRef.setTransform(result.x, result.y);\n context.setAppliedPosition(result.appliedPosition);\n }\n\n clearFloatingTimers(showTimer: number, hideTimer: number, raf: number): void {\n globalThis.clearTimeout(showTimer);\n globalThis.clearTimeout(hideTimer);\n\n if (raf) {\n cancelAnimationFrame(raf);\n }\n }\n\n destroyOverlay<T>(overlayRef?: SolarisFloatingOverlayRef<T>): void {\n overlayRef?.destroy();\n }\n\n private createId(prefix: string): string {\n const random =\n typeof crypto !== 'undefined' && 'randomUUID' in crypto\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.round(Math.random() * 1_000_000)}`;\n\n return `${prefix}-${random}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../../tooltip/model/tooltip.type';\n\n@Component({\n selector: 'solaris-rich-tooltip-panel',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './rich-tooltip-panel.html',\n styleUrls: ['./rich-tooltip-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisRichTooltipPanel {\n readonly template = input<TemplateRef<unknown> | null>(null);\n readonly position = input<SolarisTooltipPosition>('top');\n readonly variant = input<SolarisTooltipVariant>('inverse');\n readonly size = input<SolarisTooltipSize>('md');\n}\n","<div\n class=\"solaris-rich-tooltip\"\n [attr.data-position]=\"position()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n role=\"tooltip\"\n>\n <div class=\"solaris-rich-tooltip__content\">\n @if (template()) {\n <ng-container [ngTemplateOutlet]=\"template()\"></ng-container>\n }\n </div>\n\n <span class=\"solaris-rich-tooltip__arrow\" aria-hidden=\"true\"></span>\n</div>\n","import {\n Directive,\n ElementRef,\n Renderer2,\n TemplateRef,\n effect,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../../tooltip/model/tooltip.type';\nimport { SolarisFloatingOverlayService } from '../../../core/overlay/floating-overlay.service';\nimport { SolarisFloatingOverlayRef } from '../../../core/overlay/model/tooltip-services.type';\nimport { repositionTooltipOverlay } from '../../../core/overlay/floating-position.util';\nimport { SolarisRichTooltipPanel } from '../component/rich-tooltip-panel';\n\n@Directive({\n selector: '[solaris-rich-tooltip]',\n standalone: true,\n})\nexport class SolarisRichTooltipDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\n\n readonly template = input<TemplateRef<unknown> | null>(null, {\n alias: 'solaris-rich-tooltip',\n });\n\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\n alias: 'tooltip-position',\n });\n\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\n alias: 'tooltip-variant',\n });\n\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\n alias: 'tooltip-size',\n });\n\n readonly tooltipDisabled = input(false, {\n alias: 'tooltip-disabled',\n });\n\n readonly tooltipShowDelay = input(300, {\n alias: 'tooltip-show-delay',\n });\n\n readonly tooltipHideDelay = input(120, {\n alias: 'tooltip-hide-delay',\n });\n\n readonly tooltipOffset = input(8, {\n alias: 'tooltip-offset',\n });\n\n readonly tooltipAutoFlip = input(true, {\n alias: 'tooltip-auto-flip',\n });\n\n readonly tooltipAutoShift = input(true, {\n alias: 'tooltip-auto-shift',\n });\n\n readonly tooltipViewportPadding = input(8, {\n alias: 'tooltip-viewport-padding',\n });\n\n private overlayRef?: SolarisFloatingOverlayRef<SolarisRichTooltipPanel>;\n private showTimer = 0;\n private hideTimer = 0;\n private raf = 0;\n private isTriggerHovered = false;\n private isPanelHovered = false;\n private hasFocusInside = false;\n\n private readonly cleanups: Array<() => void> = [];\n\n constructor() {\n const host = this.elementRef.nativeElement;\n\n this.cleanups.push(\n this.renderer.listen(host, 'mouseenter', () => {\n this.isTriggerHovered = true;\n this.scheduleShow();\n }),\n this.renderer.listen(host, 'mouseleave', () => {\n this.isTriggerHovered = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(host, 'focusin', () => {\n this.hasFocusInside = true;\n this.scheduleShow();\n }),\n this.renderer.listen(host, 'focusout', () => {\n this.hasFocusInside = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\n this.renderer.listen(document, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n );\n\n effect(() => {\n if (!this.overlayRef) return;\n\n this.applyPanelInputs();\n this.scheduleReposition();\n });\n }\n\n private scheduleShow(): void {\n if (this.tooltipDisabled()) return;\n if (!this.template()) return;\n\n globalThis.clearTimeout(this.hideTimer);\n globalThis.clearTimeout(this.showTimer);\n\n this.showTimer = globalThis.setTimeout(() => {\n this.show();\n }, this.tooltipShowDelay());\n }\n\n private scheduleHideIfSafe(): void {\n globalThis.clearTimeout(this.showTimer);\n globalThis.clearTimeout(this.hideTimer);\n\n this.hideTimer = globalThis.setTimeout(() => {\n if (!this.isTriggerHovered && !this.isPanelHovered && !this.hasFocusInside) {\n this.hide();\n }\n }, this.tooltipHideDelay());\n }\n\n private show(): void {\n if (this.overlayRef || this.tooltipDisabled()) return;\n if (!this.template()) return;\n\n this.overlayRef = this.floatingOverlay.create(SolarisRichTooltipPanel, {\n idPrefix: 'solaris-rich-tooltip',\n zIndex: 'var(--solaris-z-tooltip, 1200)',\n pointerEvents: 'auto',\n });\n\n this.applyPanelInputs();\n this.bindPanelInteractions();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'aria-describedby',\n this.overlayRef.id,\n );\n\n requestAnimationFrame(() => this.reposition());\n }\n\n private bindPanelInteractions(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.hostElement;\n\n this.cleanups.push(\n this.renderer.listen(panel, 'mouseenter', () => {\n this.isPanelHovered = true;\n globalThis.clearTimeout(this.hideTimer);\n }),\n this.renderer.listen(panel, 'mouseleave', () => {\n this.isPanelHovered = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(panel, 'focusin', () => {\n this.hasFocusInside = true;\n globalThis.clearTimeout(this.hideTimer);\n }),\n this.renderer.listen(panel, 'focusout', () => {\n this.hasFocusInside = false;\n this.scheduleHideIfSafe();\n }),\n );\n }\n\n private hide(): void {\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\n this.raf = 0;\n\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\n\n this.floatingOverlay.destroyOverlay(this.overlayRef);\n this.overlayRef = undefined;\n\n this.isPanelHovered = false;\n this.hasFocusInside = false;\n }\n\n private applyPanelInputs(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.componentRef;\n\n panel.setInput('template', this.template());\n panel.setInput('position', this.tooltipPosition());\n panel.setInput('variant', this.tooltipVariant());\n panel.setInput('size', this.tooltipSize());\n\n panel.changeDetectorRef.detectChanges();\n }\n\n private scheduleReposition(): void {\n if (!this.overlayRef) return;\n if (this.raf) return;\n\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition(): void {\n if (!this.overlayRef) return;\n\n repositionTooltipOverlay(\n this.elementRef,\n this.overlayRef,\n {\n position: this.tooltipPosition(),\n offset: this.tooltipOffset(),\n viewportPadding: this.tooltipViewportPadding(),\n autoFlip: this.tooltipAutoFlip(),\n autoShift: this.tooltipAutoShift(),\n },\n (position) => {\n this.overlayRef?.componentRef.setInput('position', position);\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\n },\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n\n for (const cleanup of this.cleanups) {\n cleanup();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n booleanAttribute,\n computed,\n inject,\n signal,\n} from '@angular/core';\n\nimport {\n SolarisButtonColorInput,\n SolarisButtonVariant,\n SolarisRadiusInput,\n} from '../model/button.type';\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'surface',\n 'success',\n 'warning',\n 'error',\n 'info',\n 'gradient',\n]);\nfunction resolveRadius(v: SolarisRadiusInput): string {\n const s = String(v).trim();\n switch (s) {\n case 'none':\n return '0';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return s;\n }\n}\n\n@Directive({\n selector: 'button[solaris-button], a[solaris-button]',\n standalone: true,\n})\nexport class SolarisButtonDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private readonly _loading = signal(false);\n private readonly _disabled = signal(false);\n private readonly _iconOnly = signal(false);\n private readonly _fullWidth = signal(false);\n private readonly _badgeOverlay = signal(false);\n private readonly _textColor = signal<string | null>(null);\n private readonly _customColor = signal<string | null>(null);\n private readonly _size = signal<SolarisSizePreset>('md');\n private readonly _variant = signal<SolarisButtonVariant>('solid');\n private readonly _radius = signal<SolarisRadiusInput | null>(null);\n private readonly _color = signal<SolarisColorPreset | 'custom'>('primary');\n\n private readonly isAnchor = computed(\n () => this.elementRef.nativeElement.tagName.toLowerCase() === 'a',\n );\n\n @Input() set size(v: SolarisSizePreset) {\n if (v) this._size.set(v);\n }\n @Input() set variant(v: SolarisButtonVariant) {\n if (v) this._variant.set(v);\n }\n @Input() set color(v: SolarisButtonColorInput) {\n if (v == null || String(v).trim() === '') return;\n\n const value = String(v).trim();\n if (PRESET_COLORS.has(value as SolarisColorPreset)) {\n this._color.set(value as SolarisColorPreset);\n this._customColor.set(null);\n } else {\n this._color.set('custom');\n this._customColor.set(value);\n }\n }\n @Input() set textColor(v: string | null | undefined) {\n const value = v == null || String(v).trim() === '' ? null : String(v).trim();\n this._textColor.set(value);\n }\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\n const value = v == null || String(v).trim() === '' ? null : v;\n this._radius.set(value);\n }\n @Input({ transform: booleanAttribute }) set loading(v: boolean) {\n this._loading.set(v);\n }\n @Input({ transform: booleanAttribute }) set iconOnly(v: boolean) {\n this._iconOnly.set(v);\n }\n @Input({ transform: booleanAttribute }) set disabled(v: boolean) {\n this._disabled.set(v);\n }\n @Input({ transform: booleanAttribute }) set fullWidth(v: boolean) {\n this._fullWidth.set(v);\n }\n @Input({ transform: booleanAttribute }) set badgeOverlay(v: boolean) {\n this._badgeOverlay.set(v);\n }\n\n @HostBinding('attr.solaris-button') readonly attr = '';\n @HostBinding('attr.tabindex') get tabIndex() {\n return this.isAnchor() && (this._disabled() || this._loading()) ? -1 : null;\n }\n @HostBinding('attr.aria-busy') get ariaBusy() {\n return this._loading() ? 'true' : null;\n }\n @HostBinding('attr.data-size') get dataSize() {\n return this._size();\n }\n @HostBinding('attr.data-color') get dataColor() {\n return this._color();\n }\n @HostBinding('attr.disabled') get nativeDisabled() {\n const isButton = !this.isAnchor();\n return isButton && (this._disabled() || this._loading()) ? '' : null;\n }\n @HostBinding('attr.data-variant') get dataVariant() {\n return this._variant();\n }\n @HostBinding('attr.aria-disabled') get ariaDisabled() {\n return this.isAnchor() && (this._disabled() || this._loading()) ? 'true' : null;\n }\n @HostBinding('attr.data-icon-only') get dataIconOnly() {\n return this._iconOnly() ? 'true' : null;\n }\n @HostBinding('attr.data-full-width') get dataFullWidth() {\n return this._fullWidth() ? 'true' : null;\n }\n @HostBinding('style.--sb-custom') get customColorValue() {\n return this._customColor() ?? null;\n }\n @HostBinding('attr.data-custom-ink') get dataCustomInk() {\n return this._textColor() ? 'true' : null;\n }\n @HostBinding('style.--sb-custom-ink') get customInkValue() {\n return this._textColor() ?? null;\n }\n @HostBinding('attr.data-badge-overlay') get dataBadgeOverlay() {\n return this._badgeOverlay() ? 'true' : null;\n }\n @HostBinding('style.--solaris-button-radius') get buttonRadius() {\n return this._radius() ? resolveRadius(this._radius()!) : null;\n }\n\n @HostListener('click', ['$event']) onClick(ev: Event) {\n if (!this.isAnchor()) return;\n if (this._disabled() || this._loading()) {\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport {\n SolarisNotificationConfig,\n SolarisNotificationConfigInput,\n SolarisNotificationPosition,\n} from '../model/notification.types';\n\nexport const SOLARIS_NOTIFICATION_POSITIONS: readonly SolarisNotificationPosition[] = [\n 'top-right',\n 'top-left',\n 'top-center',\n 'bottom-right',\n 'bottom-left',\n 'bottom-center',\n] as const;\n\nexport const SOLARIS_NOTIFICATION_DEFAULT_CONFIG: SolarisNotificationConfig = {\n defaultPosition: 'bottom-center',\n defaultDuration: 15000,\n maxVisiblePerPosition: 4,\n hoverPause: false,\n newestOnTop: true,\n expandSingle: false,\n persistInCenter: true,\n translationScope: 'solaris.notifications',\n};\n\nexport const SOLARIS_NOTIFICATION_CONFIG = new InjectionToken<SolarisNotificationConfig>(\n 'SOLARIS_NOTIFICATION_CONFIG',\n {\n providedIn: 'root',\n factory: () => SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\n },\n);\n\nfunction mergeConfig(input: SolarisNotificationConfigInput = {}): SolarisNotificationConfig {\n return {\n ...SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\n ...input,\n };\n}\n\nexport function provideSolarisNotifications(\n input: SolarisNotificationConfigInput = {},\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: SOLARIS_NOTIFICATION_CONFIG,\n useValue: mergeConfig(input),\n },\n ]);\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport {\n SOLARIS_TRANSLATION,\n SOLARIS_TRANSLATION_CONFIGURATION,\n SolarisTranslationParams,\n} from '@educarehq/solaris-services';\n\nimport { SOLARIS_NOTIFICATION_CONFIG } from '../config/notification.config';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisNotificationIntlService {\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n private readonly notificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\n private readonly translationConfig = inject(SOLARIS_TRANSLATION_CONFIGURATION);\n\n private readonly activeLang = toSignal(this.translationService.languageChanges(), {\n initialValue: this.translationService.language(),\n });\n\n private readonly prefix = computed(() => {\n this.activeLang();\n\n const uiScope = this.translationConfig.uiScope ?? 'ui';\n const namespace = this.notificationConfig.translationScope;\n\n return `${uiScope}.${namespace}`;\n });\n\n translate(key: string, params?: SolarisTranslationParams): string {\n this.activeLang();\n\n const isAbsoluteKey =\n key.startsWith('ui.') || key.startsWith('solaris.') || key.startsWith('notification.');\n\n const finalKey = isAbsoluteKey ? key : `${this.prefix()}.${key}`;\n return this.translationService.translate(finalKey, params);\n }\n\n close(): string {\n return this.translate('close');\n }\n\n expand(): string {\n return this.translate('expand');\n }\n\n collapse(): string {\n return this.translate('collapse');\n }\n\n stopTimer(): string {\n return this.translate('stopTimer');\n }\n\n resumeTimer(): string {\n return this.translate('resumeTimer');\n }\n\n paused(): string {\n return this.translate('paused');\n }\n\n centerTitle(): string {\n return this.translate('centerTitle');\n }\n\n emptyCenter(): string {\n return this.translate('emptyCenter');\n }\n\n clearHistory(): string {\n return this.translate('clearHistory');\n }\n\n autoClose(seconds: number): string {\n return this.translate('autoClose', {\n seconds,\n unit: seconds === 1 ? this.translate('units.second') : this.translate('units.seconds'),\n });\n }\n}\n","import { DestroyRef, Injectable, PLATFORM_ID, computed, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport {\n SolarisNotificationConfig,\n SolarisNotificationInput,\n SolarisNotificationKind,\n SolarisNotificationPosition,\n SolarisNotificationRecord,\n SolarisNotificationRef,\n} from '../model/notification.types';\nimport {\n SOLARIS_NOTIFICATION_CONFIG,\n SOLARIS_NOTIFICATION_POSITIONS,\n} from '../config/notification.config';\nimport { SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisNotificationService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n readonly config: SolarisNotificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n\n readonly centerOpen = signal(false);\n private readonly _items = signal<SolarisNotificationRecord[]>([]);\n\n readonly items = computed(() => this._items());\n readonly visibleItems = computed(() => this._items().filter((item) => item.state === 'visible'));\n readonly centerItems = computed(() =>\n [...this._items()].sort((a, b) => b.createdAt - a.createdAt),\n );\n\n private lastTick = 0;\n private readonly intervalId: number | null = null;\n\n constructor() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.lastTick = performance.now();\n this.intervalId = globalThis.setInterval(() => this.tick(), 100);\n\n const handleVisibility = () => {\n const hidden = document.visibilityState !== 'visible';\n\n this._items.update((items) =>\n items.map((item) =>\n item.duration == null ? item : { ...item, pausedByVisibility: hidden },\n ),\n );\n };\n\n document.addEventListener('visibilitychange', handleVisibility, {\n passive: true,\n });\n\n this.destroyRef.onDestroy(() => {\n if (this.intervalId != null) {\n globalThis.clearInterval(this.intervalId);\n }\n\n document.removeEventListener('visibilitychange', handleVisibility);\n });\n }\n\n success(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'success' });\n }\n\n warning(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'warning' });\n }\n\n error(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'error' });\n }\n\n info(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'info' });\n }\n\n show(input: SolarisNotificationInput): SolarisNotificationRef {\n const item = this.createRecord(input);\n\n this._items.update((items) => (this.config.newestOnTop ? [item, ...items] : [...items, item]));\n\n this.rebalance();\n return this.createRef(item.id);\n }\n\n visibleByPosition(position: SolarisNotificationPosition): SolarisNotificationRecord[] {\n return this.visibleItems().filter((item) => item.position === position);\n }\n\n isPaused(item: SolarisNotificationRecord): boolean {\n return item.pausedByHover || item.pausedByUser || item.pausedByVisibility;\n }\n\n dismiss(id: string): void {\n this._items.update((items) => {\n if (this.config.persistInCenter) {\n return items.map((item) =>\n item.id === id\n ? {\n ...item,\n state: 'archived',\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n }\n : item,\n );\n }\n\n return items.filter((item) => item.id !== id);\n });\n\n this.rebalance();\n }\n\n remove(id: string): void {\n this._items.update((items) => items.filter((item) => item.id !== id));\n }\n\n clearHistory(): void {\n this._items.update((items) => items.filter((item) => item.state !== 'archived'));\n }\n\n pause(id: string): void {\n this.patch(id, { pausedByUser: true });\n }\n\n resume(id: string): void {\n this.patch(id, { pausedByUser: false });\n }\n\n toggleUserPause(id: string): void {\n const current = this.find(id);\n if (!current) return;\n\n this.patch(id, { pausedByUser: !current.pausedByUser });\n }\n\n setHoverPaused(id: string, paused: boolean): void {\n const current = this.find(id);\n if (!current?.pauseOnHover) return;\n\n this.patch(id, { pausedByHover: paused });\n }\n\n toggleExpanded(id: string): void {\n const current = this.find(id);\n if (!current?.expandable) return;\n\n this._items.update((items) =>\n items.map((item) => {\n if (item.id === id) {\n return { ...item, expanded: !item.expanded };\n }\n\n if (\n this.config.expandSingle &&\n item.position === current.position &&\n item.state === 'visible'\n ) {\n return { ...item, expanded: false };\n }\n\n return item;\n }),\n );\n }\n\n update(id: string, patch: Partial<SolarisNotificationInput>): void {\n this._items.update((items) =>\n items.map((item) => {\n if (item.id !== id) return item;\n\n const hasDurationPatch = this.hasOwn(patch, 'duration');\n const hasTitlePatch =\n this.hasOwn(patch, 'title') ||\n this.hasOwn(patch, 'titleKey') ||\n this.hasOwn(patch, 'titleParams');\n\n const hasDescriptionPatch =\n this.hasOwn(patch, 'description') ||\n this.hasOwn(patch, 'descriptionKey') ||\n this.hasOwn(patch, 'descriptionParams');\n\n const duration = hasDurationPatch ? (patch.duration ?? null) : item.duration;\n\n const title = hasTitlePatch\n ? this.resolveRequiredText(patch.title, patch.titleKey, patch.titleParams, item.title)\n : item.title;\n\n const description = hasDescriptionPatch\n ? this.resolveOptionalText(\n patch.description,\n patch.descriptionKey,\n patch.descriptionParams,\n item.description,\n )\n : item.description;\n\n const hasExplicitExpandable = this.hasOwn(patch, 'expandable');\n\n let expandable = item.expandable;\n\n if (hasExplicitExpandable) {\n expandable = patch.expandable ?? item.expandable;\n } else if (hasDescriptionPatch) {\n expandable = Boolean(description?.trim().length);\n }\n\n return {\n ...item,\n title,\n description,\n kind: patch.kind ?? item.kind,\n position: patch.position ?? item.position,\n duration,\n remainingMs: hasDurationPatch ? (duration ?? null) : item.remainingMs,\n expandable,\n expanded: patch.expanded ?? item.expanded,\n closeable: patch.closeable ?? item.closeable,\n pauseOnHover: patch.pauseOnHover ?? item.pauseOnHover,\n actions: patch.actions ?? item.actions,\n ariaLive: patch.ariaLive ?? item.ariaLive,\n data: patch.data ?? item.data,\n };\n }),\n );\n\n this.rebalance();\n }\n\n openCenter(): void {\n this.centerOpen.set(true);\n }\n\n closeCenter(): void {\n this.centerOpen.set(false);\n }\n\n toggleCenter(): void {\n this.centerOpen.update((value) => !value);\n }\n\n private tick(): void {\n const now = performance.now();\n const delta = now - this.lastTick;\n this.lastTick = now;\n\n let shouldRebalance = false;\n const expiredIds = new Set<string>();\n\n this._items.update((items) => {\n const next: SolarisNotificationRecord[] = items.map((item): SolarisNotificationRecord => {\n if (item.state !== 'visible') return item;\n if (item.duration == null || item.remainingMs == null) return item;\n if (this.isPaused(item)) return item;\n\n const remainingMs = Math.max(0, item.remainingMs - delta);\n\n if (remainingMs === 0) {\n shouldRebalance = true;\n expiredIds.add(item.id);\n\n if (this.config.persistInCenter) {\n return {\n ...item,\n remainingMs: 0,\n state: 'archived',\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n };\n }\n\n return item;\n }\n\n return {\n ...item,\n remainingMs,\n };\n });\n\n if (this.config.persistInCenter) {\n return next;\n }\n\n return next.filter((item) => !expiredIds.has(item.id));\n });\n\n if (shouldRebalance) {\n this.rebalance();\n }\n }\n\n private rebalance(): void {\n this._items.update((items) => {\n let next = [...items];\n\n for (const position of SOLARIS_NOTIFICATION_POSITIONS) {\n const visibleCount = next.filter(\n (item) => item.position === position && item.state === 'visible',\n ).length;\n\n const freeSlots = this.config.maxVisiblePerPosition - visibleCount;\n if (freeSlots <= 0) continue;\n\n const queued = next\n .filter((item) => item.position === position && item.state === 'queued')\n .sort((a, b) =>\n this.config.newestOnTop ? b.createdAt - a.createdAt : a.createdAt - b.createdAt,\n )\n .slice(0, freeSlots);\n\n if (!queued.length) continue;\n const queuedIds = new Set(queued.map((item) => item.id));\n next = next.map((item) => (queuedIds.has(item.id) ? { ...item, state: 'visible' } : item));\n }\n\n return next;\n });\n }\n\n private createRecord(input: SolarisNotificationInput): SolarisNotificationRecord {\n const duration = input.duration === undefined ? this.config.defaultDuration : input.duration;\n\n const kind = input.kind ?? 'info';\n const position = input.position ?? this.config.defaultPosition;\n\n const title = this.resolveRequiredText(input.title, input.titleKey, input.titleParams, '');\n\n const description = this.resolveOptionalText(\n input.description,\n input.descriptionKey,\n input.descriptionParams,\n null,\n );\n\n const expandable = input.expandable ?? Boolean(description?.trim().length);\n\n return {\n id: this.createId(),\n title,\n description,\n kind,\n position,\n state: 'queued',\n duration,\n remainingMs: duration ?? null,\n expandable,\n expanded: input.expanded ?? false,\n closeable: input.closeable ?? true,\n pauseOnHover: input.pauseOnHover ?? this.config.hoverPause,\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n actions: input.actions ?? [],\n ariaLive: input.ariaLive ?? this.resolveAriaLive(kind),\n data: input.data ?? null,\n createdAt: Date.now(),\n };\n }\n\n private resolveAriaLive(kind: SolarisNotificationKind): 'polite' | 'assertive' {\n return kind === 'success' || kind === 'info' ? 'polite' : 'assertive';\n }\n\n private createRef(id: string): SolarisNotificationRef {\n return {\n id,\n dismiss: () => this.dismiss(id),\n remove: () => this.remove(id),\n pause: () => this.pause(id),\n resume: () => this.resume(id),\n toggleExpanded: () => this.toggleExpanded(id),\n update: (patch) => this.update(id, patch),\n };\n }\n\n private createId(): string {\n const uuid = globalThis.crypto?.randomUUID?.();\n return uuid ?? `sn_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\n }\n\n private find(id: string): SolarisNotificationRecord | undefined {\n return this._items().find((item) => item.id === id);\n }\n\n private patch(\n id: string,\n patch: Partial<\n Pick<SolarisNotificationRecord, 'pausedByHover' | 'pausedByUser' | 'pausedByVisibility'>\n >,\n ): void {\n this._items.update((items) =>\n items.map((item) => (item.id === id ? { ...item, ...patch } : item)),\n );\n }\n\n private resolveRequiredText(\n value: string | undefined,\n key: string | undefined,\n params: Record<string, unknown> | undefined,\n fallback: string,\n ): string {\n if (key) {\n return this.translationService.translate(key, params);\n }\n\n if (value == null) {\n return fallback;\n }\n\n return value;\n }\n\n private resolveOptionalText(\n value: string | null | undefined,\n key: string | undefined,\n params: Record<string, unknown> | undefined,\n fallback: string | null,\n ): string | null {\n if (key) {\n return this.translationService.translate(key, params);\n }\n\n if (value === undefined) {\n return fallback;\n }\n\n return value ?? null;\n }\n\n private hasOwn<T extends object>(obj: T, key: PropertyKey): boolean {\n return Object.hasOwn(obj, key);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisNotificationAction,\n SolarisNotificationRecord,\n} from '../../model/notification.types';\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\n\n@Component({\n selector: 'solaris-notification-item',\n standalone: true,\n imports: [NgClass, SolarisButtonDirective],\n templateUrl: './notification-item.html',\n styleUrls: ['./notification-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationItemComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly intl = inject(SolarisNotificationIntlService);\n\n readonly item = input.required<SolarisNotificationRecord>();\n readonly mode = input<'toast' | 'center'>('toast');\n\n readonly paused = computed(() => this.notificationService.isPaused(this.item()));\n\n readonly secondsLeft = computed(() => {\n const remaining = this.item().remainingMs ?? 0;\n return Math.max(1, Math.ceil(remaining / 1000));\n });\n\n readonly progress = computed(() => {\n const duration = this.item().duration;\n const remaining = this.item().remainingMs;\n\n if (duration == null || remaining == null || duration <= 0) return 0;\n return Math.max(0, Math.min(100, (remaining / duration) * 100));\n });\n\n readonly iconClass = computed(() => {\n switch (this.item().kind) {\n case 'success':\n return 'ph-check-circle';\n case 'warning':\n return 'ph-warning-circle';\n case 'error':\n return 'ph-x-circle';\n default:\n return 'ph-info';\n }\n });\n\n protected readonly isCompactHeader = computed(() => {\n const hasDescription = Boolean(this.item().description?.trim().length);\n return !hasDescription && !this.item().expandable;\n });\n\n toggleExpanded(): void {\n this.notificationService.toggleExpanded(this.item().id);\n }\n\n toggleUserPause(): void {\n this.notificationService.toggleUserPause(this.item().id);\n }\n\n close(): void {\n this.notificationService.dismiss(this.item().id);\n }\n\n onMouseEnter(): void {\n if (this.mode() !== 'toast') return;\n this.notificationService.setHoverPaused(this.item().id, true);\n }\n\n onMouseLeave(): void {\n if (this.mode() !== 'toast') return;\n this.notificationService.setHoverPaused(this.item().id, false);\n }\n\n async runAction(action: SolarisNotificationAction): Promise<void> {\n await action.run?.({\n id: this.item().id,\n data: this.item().data,\n dismiss: () => this.notificationService.dismiss(this.item().id),\n remove: () => this.notificationService.remove(this.item().id),\n update: (patch) => this.notificationService.update(this.item().id, patch),\n });\n\n if (action.closeOnClick !== false) {\n this.notificationService.dismiss(this.item().id);\n }\n }\n\n protected resolveActionLabel(action: SolarisNotificationAction): string {\n if (action.labelKey) {\n return this.intl.translate(action.labelKey, action.labelParams);\n }\n\n return action.label ?? '';\n }\n}\n","<article\n class=\"sn\"\n [attr.data-kind]=\"item().kind\"\n [attr.data-mode]=\"mode()\"\n [attr.data-expanded]=\"item().expanded ? 'true' : 'false'\"\n [attr.data-paused]=\"paused() ? 'true' : 'false'\"\n [attr.aria-live]=\"mode() === 'toast' ? item().ariaLive : null\"\n [attr.role]=\"item().ariaLive === 'assertive' ? 'alert' : 'status'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <div class=\"sn__header\" [attr.data-align]=\"isCompactHeader() ? 'center' : 'start'\">\n <div class=\"sn__leading\">\n <span class=\"sn__icon\" aria-hidden=\"true\">\n <i class=\"ph\" [ngClass]=\"iconClass()\"></i>\n </span>\n\n <div class=\"sn__heading\">\n <strong class=\"sn__title\">{{ item().title }}</strong>\n\n @if (!item().expanded && item().description) {\n <p class=\"sn__description sn__description--clamped\">\n {{ item().description }}\n </p>\n }\n </div>\n </div>\n\n <div class=\"sn__controls\">\n @if (item().expandable && item().description) {\n <button\n type=\"button\"\n class=\"sn__icon-btn\"\n [attr.aria-expanded]=\"item().expanded\"\n [attr.aria-label]=\"item().expanded ? intl.collapse() : intl.expand()\"\n (click)=\"toggleExpanded()\"\n >\n <i\n class=\"ph\"\n [ngClass]=\"item().expanded ? 'ph-caret-up' : 'ph-caret-down'\"\n aria-hidden=\"true\"\n ></i>\n </button>\n }\n\n @if (item().closeable) {\n <button\n type=\"button\"\n class=\"sn__icon-btn\"\n [attr.aria-label]=\"intl.close()\"\n (click)=\"close()\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n\n @if (item().expanded && item().description) {\n <div class=\"sn__body\">\n <p class=\"sn__body-text\">{{ item().description }}</p>\n @if (item().actions.length) {\n <div class=\"sn__actions\">\n @for (action of item().actions; track action.id) {\n <button\n type=\"button\"\n solaris-button\n [variant]=\"action.variant ?? 'outline'\"\n [color]=\"action.color ?? 'surface'\"\n [size]=\"action.size ?? 'sm'\"\n [radius]=\"action.radius ?? 'md'\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"runAction(action)\"\n >\n {{ resolveActionLabel(action) }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (mode() === 'toast' && item().duration !== null) {\n <div class=\"sn__footer\">\n @if (!paused()) {\n <p class=\"sn__timer\">\n {{ intl.autoClose(secondsLeft()) }}\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\n {{ intl.stopTimer() }}</button\n >.\n </p>\n } @else {\n <p class=\"sn__timer\">\n {{ intl.paused() }}\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\n {{ intl.resumeTimer() }}</button\n >.\n </p>\n }\n </div>\n\n <div class=\"sn__progress\" aria-hidden=\"true\">\n <span [style.width.%]=\"progress()\"></span>\n </div>\n }\n</article>\n","import { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';\n\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\n\n@Component({\n selector: 'solaris-notification-center',\n standalone: true,\n imports: [SolarisButtonDirective, SolarisNotificationItemComponent],\n templateUrl: './notification-center.html',\n styleUrls: ['./notification-center.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationCenterComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly intl = inject(SolarisNotificationIntlService);\n\n @HostListener('document:keydown.escape') onEscape(): void {\n if (this.notificationService.centerOpen()) {\n this.notificationService.closeCenter();\n }\n }\n}\n","@if (notificationService.centerOpen()) {\n <div class=\"snc__backdrop\" (click)=\"notificationService.closeCenter()\"></div>\n\n <aside class=\"snc\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"intl.centerTitle()\">\n <header class=\"snc__header\">\n <div>\n <strong class=\"snc__title\">{{ intl.centerTitle() }}</strong>\n </div>\n\n <div class=\"snc__controls\">\n <button\n type=\"button\"\n solaris-button\n variant=\"outline\"\n color=\"surface\"\n size=\"sm\"\n radius=\"md\"\n (click)=\"notificationService.clearHistory()\"\n >\n {{ intl.clearHistory() }}\n </button>\n\n <button\n type=\"button\"\n class=\"snc__icon-btn\"\n [attr.aria-label]=\"intl.close()\"\n (click)=\"notificationService.closeCenter()\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <div class=\"snc__list\">\n @for (item of notificationService.centerItems(); track item.id) {\n <solaris-notification-item [item]=\"item\" mode=\"center\" />\n } @empty {\n <div class=\"snc__empty\">\n {{ intl.emptyCenter() }}\n </div>\n }\n </div>\n </aside>\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\n\nimport { SolarisNotificationCenterComponent } from '../center/notification-center';\nimport { SOLARIS_NOTIFICATION_POSITIONS } from '../../config/notification.config';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisNotificationPosition } from '../../model/notification.types';\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\n\n@Component({\n selector: 'solaris-notification-host',\n standalone: true,\n imports: [SolarisNotificationItemComponent, SolarisNotificationCenterComponent],\n templateUrl: './notification-host.html',\n styleUrls: ['./notification-host.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationHostComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly positions = SOLARIS_NOTIFICATION_POSITIONS;\n readonly withCenter = input(true);\n\n visibleByPosition(position: SolarisNotificationPosition) {\n return this.notificationService.visibleByPosition(position);\n }\n}\n","@for (position of positions; track position) {\n <section class=\"snh__stack\" [attr.data-position]=\"position\">\n @for (item of visibleByPosition(position); track item.id) {\n <solaris-notification-item [item]=\"item\" mode=\"toast\" />\n }\n </section>\n}\n\n@if (withCenter()) {\n <solaris-notification-center />\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../model/tooltip.type';\n\n@Component({\n selector: 'solaris-tooltip-panel',\n standalone: true,\n templateUrl: './tooltip-panel.html',\n styleUrls: ['./tooltip-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTooltipPanel {\n readonly text = input('');\n readonly prefixIcon = input('');\n readonly size = input<SolarisTooltipSize>('md');\n readonly position = input<SolarisTooltipPosition>('top');\n readonly variant = input<SolarisTooltipVariant>('inverse');\n}\n","<div\n class=\"solaris-tooltip\"\n [attr.data-position]=\"position()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n role=\"tooltip\"\n>\n @if (prefixIcon()) {\n <span class=\"solaris-tooltip__prefix\" aria-hidden=\"true\">\n <i [class]=\"prefixIcon()\"></i>\n </span>\n }\n\n <span class=\"solaris-tooltip__content\">\n {{ text() }}\n </span>\n\n <span class=\"solaris-tooltip__arrow\" aria-hidden=\"true\"></span>\n</div>\n","import {\n Directive,\n ElementRef,\n Renderer2,\n computed,\n effect,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../model/tooltip.type';\nimport { SolarisFloatingOverlayService } from '../../../core/overlay/floating-overlay.service';\nimport { SolarisFloatingOverlayRef } from '../../../core/overlay/model/tooltip-services.type';\nimport { SolarisTooltipPanel } from '../component/tooltip-panel';\n\n@Directive({\n selector: '[solaris-tooltip]',\n standalone: true,\n})\nexport class SolarisTooltipDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\n private readonly renderer = inject(Renderer2);\n\n readonly text = input('', { alias: 'solaris-tooltip' });\n\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\n alias: 'tooltip-position',\n });\n\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\n alias: 'tooltip-variant',\n });\n\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\n alias: 'tooltip-size',\n });\n\n readonly tooltipPrefixIcon = input('', {\n alias: 'tooltip-prefix-icon',\n });\n\n readonly tooltipDisabled = input(false, {\n alias: 'tooltip-disabled',\n });\n\n readonly tooltipShowDelay = input(300, {\n alias: 'tooltip-show-delay',\n });\n\n readonly tooltipHideDelay = input(80, {\n alias: 'tooltip-hide-delay',\n });\n\n readonly tooltipOffset = input(8, {\n alias: 'tooltip-offset',\n });\n\n readonly tooltipAutoFlip = input(true, {\n alias: 'tooltip-auto-flip',\n });\n\n readonly tooltipAutoShift = input(true, {\n alias: 'tooltip-auto-shift',\n });\n\n readonly tooltipViewportPadding = input(8, {\n alias: 'tooltip-viewport-padding',\n });\n\n readonly tooltipKey = input('', {\n alias: 'tooltip-key',\n });\n\n readonly tooltipParams = input<Record<string, unknown> | undefined>(undefined, {\n alias: 'tooltip-params',\n });\n\n private overlayRef?: SolarisFloatingOverlayRef<SolarisTooltipPanel>;\n private showTimer = 0;\n private hideTimer = 0;\n private raf = 0;\n\n private readonly cleanups: Array<() => void> = [];\n\n private readonly resolvedText = computed(() => {\n const key = this.tooltipKey().trim();\n\n if (key) {\n return key;\n }\n\n return this.text().trim();\n });\n\n constructor() {\n const host = this.elementRef.nativeElement;\n\n this.cleanups.push(\n this.renderer.listen(host, 'mouseenter', () => this.scheduleShow()),\n this.renderer.listen(host, 'mouseleave', () => this.scheduleHide()),\n this.renderer.listen(host, 'focusin', () => this.scheduleShow()),\n this.renderer.listen(host, 'focusout', () => this.scheduleHide()),\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\n );\n\n effect(() => {\n if (!this.overlayRef) return;\n\n this.applyPanelInputs();\n this.scheduleReposition();\n });\n }\n\n private scheduleShow(): void {\n if (this.tooltipDisabled()) return;\n if (!this.resolvedText()) return;\n\n globalThis.clearTimeout(this.hideTimer);\n globalThis.clearTimeout(this.showTimer);\n\n this.showTimer = globalThis.setTimeout(() => {\n this.show();\n }, this.tooltipShowDelay());\n }\n\n private scheduleHide(): void {\n globalThis.clearTimeout(this.showTimer);\n globalThis.clearTimeout(this.hideTimer);\n\n this.hideTimer = globalThis.setTimeout(() => {\n this.hide();\n }, this.tooltipHideDelay());\n }\n\n private show(): void {\n if (this.overlayRef || this.tooltipDisabled()) return;\n if (!this.resolvedText()) return;\n\n this.overlayRef = this.floatingOverlay.create(SolarisTooltipPanel, {\n idPrefix: 'solaris-tooltip',\n zIndex: 'var(--solaris-z-tooltip, 1200)',\n pointerEvents: 'none',\n });\n\n this.applyPanelInputs();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'aria-describedby',\n this.overlayRef.id,\n );\n\n requestAnimationFrame(() => this.reposition());\n }\n\n private hide(): void {\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\n this.raf = 0;\n\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\n\n this.floatingOverlay.destroyOverlay(this.overlayRef);\n this.overlayRef = undefined;\n }\n\n private applyPanelInputs(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.componentRef;\n\n panel.setInput('text', this.resolvedText());\n panel.setInput('position', this.tooltipPosition());\n panel.setInput('variant', this.tooltipVariant());\n panel.setInput('size', this.tooltipSize());\n panel.setInput('prefixIcon', this.tooltipPrefixIcon());\n\n panel.changeDetectorRef.detectChanges();\n }\n\n private scheduleReposition(): void {\n if (!this.overlayRef) return;\n\n if (this.raf) return;\n\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition(): void {\n if (!this.overlayRef) return;\n\n this.floatingOverlay.reposition({\n anchor: this.elementRef.nativeElement,\n overlayRef: this.overlayRef,\n options: {\n position: this.tooltipPosition(),\n offset: this.tooltipOffset(),\n viewportPadding: this.tooltipViewportPadding(),\n autoFlip: this.tooltipAutoFlip(),\n autoShift: this.tooltipAutoShift(),\n },\n setAppliedPosition: (position) => {\n this.overlayRef?.componentRef.setInput('position', position);\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.hide();\n\n for (const cleanup of this.cleanups) {\n cleanup();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport {\n LoadingType,\n SolarisLoadingColor,\n SolarisLoadingEasing,\n SolarisLoadingPresetColor,\n SolarisLoadingSize,\n SolarisLoadingSpeed,\n SolarisLoadingDashDensity,\n} from '../model/loading.type';\n\nconst PRESET_COLORS: readonly SolarisLoadingPresetColor[] = [\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'surface',\n] as const;\n\n@Component({\n selector: 'solaris-loading',\n standalone: true,\n templateUrl: './loading.html',\n styleUrls: ['./loading.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisLoading {\n @HostBinding('attr.solaris-loading') readonly marker = '';\n\n @Input() label?: string;\n @Input() value: number | null = null;\n @Input() type: LoadingType = 'spinner';\n @Input() size: SolarisLoadingSize = 'md';\n @Input() speed: SolarisLoadingSpeed = 'md';\n @Input() color: SolarisLoadingColor = 'primary';\n @Input() easing: SolarisLoadingEasing = 'linear';\n @Input() trail: 'forward' | 'reverse' = 'forward';\n @Input() dashDensity: SolarisLoadingDashDensity = 'md';\n @Input({ transform: coerceBoolean }) indeterminate = false;\n\n get percent(): number {\n return clamp(this.value ?? 0, 0, 100);\n }\n get ariaLabel(): string {\n return this.label ?? 'Loading';\n }\n get dashedSpokes(): Spoke[] {\n return buildSpokes(this.dashedCount, 0.12);\n }\n get inlineColor(): string | null {\n return isPresetColor(this.color) ? null : String(this.color);\n }\n get ariaValueNow(): number | null {\n if (this.role !== 'progressbar') return null;\n if (this.indeterminate || this.value == null) return null;\n return clamp(this.value, 0, 100);\n }\n get role(): 'status' | 'progressbar' {\n return this.type === 'progress' || this.type === 'bar' ? 'progressbar' : 'status';\n }\n get dataColor(): SolarisLoadingPresetColor | null {\n return isPresetColor(this.color) ? this.color : null;\n }\n\n private get dashedCount(): number {\n switch (this.dashDensity) {\n case 'low':\n return 8;\n case 'high':\n return 16;\n case 'md':\n default:\n return 12;\n }\n }\n}\n\nfunction isPresetColor(v: unknown): v is SolarisLoadingPresetColor {\n return PRESET_COLORS.includes(v as SolarisLoadingPresetColor);\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n\nfunction clamp(n: number, min: number, max: number) {\n return Math.max(min, Math.min(max, n));\n}\n\ntype Spoke = { angle: number; opacity: number };\n\nconst SPOKE_CACHE = new Map<number, Spoke[]>();\n\nfunction buildSpokes(count: number, minOpacity = 0.12): Spoke[] {\n const cached = SPOKE_CACHE.get(count);\n if (cached) return cached;\n\n const res: Spoke[] = [];\n const step = 360 / count;\n const span = 1 - minOpacity;\n for (let i = 0; i < count; i++) {\n const t = count === 1 ? 0 : i / (count - 1);\n const opacity = 1 - span * t;\n res.push({ angle: i * step, opacity: Number(opacity.toFixed(2)) });\n }\n\n SPOKE_CACHE.set(count, res);\n return res;\n}\n","<div\n class=\"solaris-loading\"\n [attr.data-type]=\"type\"\n [attr.data-size]=\"size\"\n [attr.data-color]=\"dataColor\"\n [attr.data-speed]=\"speed\"\n [attr.data-easing]=\"easing\"\n [class.is-indeterminate]=\"indeterminate || value === null\"\n [attr.role]=\"role\"\n [attr.aria-label]=\"ariaLabel\"\n [style.--solaris-loading-color]=\"inlineColor\"\n [attr.aria-valuemin]=\"role === 'progressbar' ? 0 : null\"\n [attr.aria-valuemax]=\"role === 'progressbar' ? 100 : null\"\n [attr.aria-valuenow]=\"role === 'progressbar' ? ariaValueNow : null\"\n>\n @if (type === 'spinner') {\n <span class=\"solaris-loading__spinner\" aria-hidden=\"true\"></span>\n }\n\n @if (type === 'spinner-dashed') {\n <svg class=\"solaris-loading__spinner-stacked\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n @for (spoke of dashedSpokes; track spoke.angle) {\n <line\n x1=\"22\"\n y1=\"6\"\n x2=\"22\"\n y2=\"12\"\n [attr.opacity]=\"spoke.opacity\"\n [attr.transform]=\"'rotate(' + spoke.angle + ' 22 22)'\"\n ></line>\n }\n </svg>\n }\n\n @if (type === 'progress') {\n <svg class=\"solaris-loading__ring\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle class=\"ring-track\" cx=\"22\" cy=\"22\" r=\"18\"></circle>\n <circle\n class=\"ring-value\"\n cx=\"22\"\n cy=\"22\"\n r=\"18\"\n [attr.stroke-dasharray]=\"113.097\"\n [attr.stroke-dashoffset]=\"113.097 - (113.097 * percent) / 100\"\n ></circle>\n </svg>\n\n <span class=\"solaris-loading__percent\" aria-hidden=\"true\"> {{ percent }}% </span>\n }\n\n @if (type === 'bar') {\n <span class=\"solaris-loading__bar\" aria-hidden=\"true\">\n <span\n class=\"solaris-loading__bar-inner\"\n [style.width.%]=\"indeterminate || value === null ? 30 : percent\"\n ></span>\n </span>\n }\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { SolarisCarouselContext } from '../model/carousel.type';\n\n@Directive({\n selector: 'ng-template[solaris-carousel-overlay]',\n standalone: true,\n})\nexport class SolarisCarouselOverlayDirective<TItem = unknown> {\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\nimport { SolarisCarouselContext } from '../model/carousel.type';\n\n@Directive({\n selector: 'ng-template[solaris-carousel-slide]',\n standalone: true,\n})\nexport class SolarisCarouselSlideDirective<TItem = unknown> {\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostBinding,\n HostListener,\n TemplateRef,\n Type,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport {\n SolarisCarouselAppearance,\n SolarisCarouselAspect,\n SolarisCarouselChangeEvent,\n SolarisCarouselContext,\n SolarisCarouselControlsPosition,\n SolarisCarouselItem,\n SolarisCarouselNavigationSource,\n SolarisCarouselOverlayDirective,\n SolarisCarouselRadius,\n SolarisCarouselSlideDirective,\n SolarisCarouselTextResolver,\n} from '../carousel.index';\n\n@Component({\n selector: 'solaris-carousel',\n standalone: true,\n imports: [NgTemplateOutlet, NgComponentOutlet],\n templateUrl: './carousel.html',\n styleUrls: ['./carousel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisCarousel {\n private readonly destroyRef = inject(DestroyRef);\n\n private timer: ReturnType<typeof setInterval> | null = null;\n private readonly projectedSlide = contentChild(SolarisCarouselSlideDirective);\n private readonly projectedOverlay = contentChild(SolarisCarouselOverlayDirective);\n\n readonly activeIndex = model(0);\n\n readonly items = input<SolarisCarouselItem[]>([]);\n readonly radius = input<SolarisCarouselRadius>('lg');\n readonly aspect = input<SolarisCarouselAspect>('16/9');\n readonly appearance = input<SolarisCarouselAppearance>('plain');\n readonly controlsPosition = input<SolarisCarouselControlsPosition>('inside');\n\n readonly loop = input(true, { transform: booleanAttribute });\n readonly autoplay = input(false, { transform: booleanAttribute });\n readonly intervalMs = input(4500, { transform: numberAttribute });\n readonly transitionMs = input(520, { transform: numberAttribute });\n\n readonly pauseOnHover = input(true, { transform: booleanAttribute });\n readonly pauseOnFocus = input(true, { transform: booleanAttribute });\n readonly resetAutoplayOnInteraction = input(true, { transform: booleanAttribute });\n\n readonly showDots = input(true, { transform: booleanAttribute });\n readonly showArrows = input(true, { transform: booleanAttribute });\n readonly keyboard = input(true, { transform: booleanAttribute });\n\n readonly ariaLabel = input('Carousel');\n readonly ariaLabelKey = input<string | undefined>(undefined);\n\n readonly previousLabel = input('Previous slide');\n readonly previousLabelKey = input<string | undefined>(undefined);\n\n readonly nextLabel = input('Next slide');\n readonly nextLabelKey = input<string | undefined>(undefined);\n\n readonly navigationLabel = input('Slide navigation');\n readonly navigationLabelKey = input<string | undefined>(undefined);\n\n readonly goToSlideLabel = input('Go to slide');\n readonly goToSlideLabelKey = input<string | undefined>(undefined);\n\n readonly openLabel = input('Open');\n readonly openLabelKey = input<string | undefined>(undefined);\n\n readonly textResolver = input<SolarisCarouselTextResolver | null>(null);\n\n readonly slideTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\n readonly overlayTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\n\n readonly slideComponent = input<Type<unknown> | undefined>(undefined);\n readonly overlayComponent = input<Type<unknown> | undefined>(undefined);\n\n readonly slideChange = output<SolarisCarouselChangeEvent>();\n\n protected readonly viewReady = signal(false);\n protected readonly paused = signal(false);\n\n protected readonly count = computed(() => this.items().length);\n protected readonly hasMultiple = computed(() => this.count() > 1);\n\n protected readonly isFirst = computed(() => this.activeIndex() === 0);\n protected readonly isLast = computed(() => this.activeIndex() === this.count() - 1);\n\n protected readonly canGoPrev = computed(() => this.loop() || !this.isFirst());\n protected readonly canGoNext = computed(() => this.loop() || !this.isLast());\n\n protected readonly isPlaying = computed(() => {\n return this.autoplay() && this.hasMultiple() && !this.paused();\n });\n\n protected readonly canRunAutoplay = computed(() => {\n return this.viewReady() && this.autoplay() && this.hasMultiple() && !this.paused();\n });\n\n protected readonly resolvedSlideTpl = computed(() => {\n return this.slideTpl() ?? this.projectedSlide()?.templateRef;\n });\n\n protected readonly resolvedOverlayTpl = computed(() => {\n return this.overlayTpl() ?? this.projectedOverlay()?.templateRef;\n });\n\n @HostBinding('attr.data-aspect') get dataAspect(): SolarisCarouselAspect {\n return this.aspect();\n }\n\n @HostBinding('attr.data-radius') get dataRadius(): SolarisCarouselRadius {\n return this.radius();\n }\n\n @HostBinding('attr.data-appearance') get dataAppearance(): SolarisCarouselAppearance {\n return this.appearance();\n }\n\n @HostBinding('attr.data-controls-position')\n get dataControlsPosition(): SolarisCarouselControlsPosition {\n return this.controlsPosition();\n }\n\n constructor() {\n afterNextRender(() => this.viewReady.set(true));\n\n effect((onCleanup) => {\n this.stopTimer();\n\n if (!this.canRunAutoplay()) return;\n\n const ms = this.intervalMs();\n\n if (!Number.isFinite(ms) || ms <= 0) return;\n\n this.startTimer(ms);\n\n onCleanup(() => this.stopTimer());\n });\n\n effect(() => {\n const len = this.count();\n const idx = this.activeIndex();\n\n if (!len) {\n if (idx !== 0) this.activeIndex.set(0);\n return;\n }\n\n if (idx > len - 1) {\n this.activeIndex.set(len - 1);\n }\n\n if (idx < 0) {\n this.activeIndex.set(0);\n }\n });\n\n this.destroyRef.onDestroy(() => this.stopTimer());\n }\n\n protected readonly goTo = (\n index: number,\n source: SolarisCarouselNavigationSource = 'api',\n ): void => {\n const length = this.count();\n\n if (!length) return;\n\n const previousIndex = this.activeIndex();\n const nextIndex = this.normalizeIndex(index, length);\n\n if (nextIndex === previousIndex) return;\n\n this.activeIndex.set(nextIndex);\n\n this.slideChange.emit({\n index: nextIndex,\n previousIndex,\n item: this.items()[nextIndex],\n source,\n });\n\n if (source !== 'autoplay' && this.resetAutoplayOnInteraction()) {\n this.restartAutoplay();\n }\n };\n\n private normalizeIndex(index: number, length: number): number {\n if (this.loop()) {\n return ((index % length) + length) % length;\n }\n\n return Math.max(0, Math.min(index, length - 1));\n }\n\n protected readonly next = (source: SolarisCarouselNavigationSource = 'api'): void => {\n if (!this.canGoNext()) return;\n this.goTo(this.activeIndex() + 1, source);\n };\n\n protected readonly prev = (source: SolarisCarouselNavigationSource = 'api'): void => {\n if (!this.canGoPrev()) return;\n this.goTo(this.activeIndex() - 1, source);\n };\n\n protected readonly pause = (): void => {\n this.paused.set(true);\n };\n\n protected readonly resume = (): void => {\n this.paused.set(false);\n };\n\n protected onMouseEnter(): void {\n if (!this.pauseOnHover()) return;\n this.pause();\n }\n\n protected onMouseLeave(): void {\n if (!this.pauseOnHover()) return;\n this.resume();\n }\n\n protected onFocusIn(): void {\n if (!this.pauseOnFocus()) return;\n this.pause();\n }\n\n protected onFocusOut(): void {\n if (!this.pauseOnFocus()) return;\n this.resume();\n }\n\n protected carouselContext(index: number): SolarisCarouselContext {\n const item = this.items()[index];\n\n return {\n $implicit: item,\n item,\n\n index,\n active: index === this.activeIndex(),\n first: index === 0,\n last: index === this.count() - 1,\n count: this.count(),\n\n isPlaying: this.isPlaying(),\n\n goTo: this.goTo,\n next: this.next,\n prev: this.prev,\n\n pause: this.pause,\n resume: this.resume,\n };\n }\n\n protected slideComponentInputs(index: number): Record<string, unknown> {\n const context = this.carouselContext(index);\n const itemInputs = context.item.slideInputs ?? {};\n\n if (!context.item.passCarouselContext) {\n return itemInputs;\n }\n\n return {\n item: context.item,\n index: context.index,\n active: context.active,\n first: context.first,\n last: context.last,\n count: context.count,\n isPlaying: context.isPlaying,\n goTo: context.goTo,\n next: context.next,\n prev: context.prev,\n pause: context.pause,\n resume: context.resume,\n ...itemInputs,\n };\n }\n\n protected overlayComponentInputs(index: number): Record<string, unknown> {\n const context = this.carouselContext(index);\n const itemInputs = context.item.overlayInputs ?? {};\n\n if (!context.item.passOverlayContext) {\n return itemInputs;\n }\n\n return {\n item: context.item,\n index: context.index,\n active: context.active,\n first: context.first,\n last: context.last,\n count: context.count,\n isPlaying: context.isPlaying,\n goTo: context.goTo,\n next: context.next,\n prev: context.prev,\n pause: context.pause,\n resume: context.resume,\n ...itemInputs,\n };\n }\n\n protected text(text?: string, key?: string): string {\n const directValue = text?.trim();\n\n if (directValue) return directValue;\n\n const resolver = this.textResolver();\n\n if (key && resolver) return resolver(key);\n\n return '';\n }\n\n protected itemAlt(item: SolarisCarouselItem): string {\n return this.text(item.alt, item.altKey);\n }\n\n protected itemAriaLabel(item: SolarisCarouselItem): string | null {\n return (\n this.text(item.ariaLabel, item.ariaLabelKey) ||\n this.text(item.alt, item.altKey) ||\n this.text(this.openLabel(), this.openLabelKey()) ||\n null\n );\n }\n\n protected rootAriaLabel(): string {\n return this.text(this.ariaLabel(), this.ariaLabelKey()) || 'Carousel';\n }\n\n protected previousAriaLabel(): string {\n return this.text(this.previousLabel(), this.previousLabelKey()) || 'Previous slide';\n }\n\n protected nextAriaLabel(): string {\n return this.text(this.nextLabel(), this.nextLabelKey()) || 'Next slide';\n }\n\n protected navigationAriaLabel(): string {\n return this.text(this.navigationLabel(), this.navigationLabelKey()) || 'Slide navigation';\n }\n\n protected dotAriaLabel(index: number): string {\n const label = this.text(this.goToSlideLabel(), this.goToSlideLabelKey()) || 'Go to slide';\n return `${label} ${index + 1}`;\n }\n\n protected trackByItem(index: number, item: SolarisCarouselItem): string | number {\n return item.id ?? index;\n }\n\n private startTimer(ms: number): void {\n this.timer = setInterval(() => this.next('autoplay'), ms);\n }\n\n private stopTimer(): void {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.timer = null;\n }\n\n private restartAutoplay(): void {\n if (!this.autoplay() || this.paused() || !this.hasMultiple()) return;\n\n this.stopTimer();\n\n const ms = this.intervalMs();\n\n if (!Number.isFinite(ms) || ms <= 0) return;\n\n this.startTimer(ms);\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeyDown(ev: KeyboardEvent): void {\n if (!this.keyboard() || !this.hasMultiple()) return;\n\n switch (ev.key) {\n case 'ArrowLeft':\n ev.preventDefault();\n this.prev('keyboard');\n break;\n\n case 'ArrowRight':\n ev.preventDefault();\n this.next('keyboard');\n break;\n\n case 'Home':\n ev.preventDefault();\n this.goTo(0, 'keyboard');\n break;\n\n case 'End':\n ev.preventDefault();\n this.goTo(this.count() - 1, 'keyboard');\n break;\n }\n }\n}\n","<div\n class=\"solaris-carousel\"\n role=\"region\"\n aria-roledescription=\"carousel\"\n [attr.aria-label]=\"rootAriaLabel()\"\n [attr.tabindex]=\"keyboard() ? '0' : null\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n>\n <div class=\"solaris-carousel__viewport\">\n <div\n class=\"solaris-carousel__track\"\n [style.transition-duration.ms]=\"transitionMs()\"\n [style.transform]=\"'translate3d(' + -activeIndex() * 100 + '%, 0, 0)'\"\n >\n @for (item of items(); track trackByItem($index, item)) {\n <div\n class=\"solaris-carousel__slide\"\n role=\"group\"\n aria-roledescription=\"slide\"\n [attr.aria-label]=\"$index + 1 + ' / ' + count()\"\n [attr.aria-hidden]=\"$index !== activeIndex() ? 'true' : null\"\n >\n @if (resolvedSlideTpl(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl; context: carouselContext($index)\"> </ng-container>\n } @else if (item.slideComponent; as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\n </ng-container>\n } @else if (slideComponent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\n </ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultImageSlide; context: carouselContext($index)\">\n </ng-container>\n }\n\n @if (resolvedOverlayTpl(); as tpl) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngTemplateOutlet=\"tpl; context: carouselContext($index)\">\n </ng-container>\n </div>\n } @else if (item.overlayComponent; as component) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\n </ng-container>\n </div>\n } @else if (overlayComponent(); as component) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\n </ng-container>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n @if (showArrows() && hasMultiple()) {\n <button\n type=\"button\"\n class=\"solaris-carousel__arrow is-prev\"\n [disabled]=\"!canGoPrev()\"\n [attr.aria-label]=\"previousAriaLabel()\"\n (click)=\"prev('arrow')\"\n >\n <i class=\"ph ph-caret-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"solaris-carousel__arrow is-next\"\n [disabled]=\"!canGoNext()\"\n [attr.aria-label]=\"nextAriaLabel()\"\n (click)=\"next('arrow')\"\n >\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\n </button>\n }\n\n @if (showDots() && hasMultiple()) {\n <div class=\"solaris-carousel__dots\" role=\"tablist\" [attr.aria-label]=\"navigationAriaLabel()\">\n @for (item of items(); track trackByItem($index, item)) {\n <button\n type=\"button\"\n class=\"solaris-carousel__dot\"\n role=\"tab\"\n [class.is-active]=\"$index === activeIndex()\"\n [attr.aria-label]=\"dotAriaLabel($index)\"\n [attr.aria-selected]=\"$index === activeIndex() ? 'true' : 'false'\"\n [attr.aria-current]=\"$index === activeIndex() ? 'true' : null\"\n (click)=\"goTo($index, 'dot')\"\n ></button>\n }\n </div>\n }\n</div>\n\n<ng-template #defaultImageSlide let-item>\n @if (item.src) {\n @if (item.href) {\n <a\n class=\"solaris-carousel__media\"\n [href]=\"item.href\"\n [attr.target]=\"item.target ?? null\"\n [attr.aria-label]=\"itemAriaLabel(item)\"\n >\n <img\n class=\"solaris-carousel__img\"\n [src]=\"item.src\"\n [attr.srcset]=\"item.srcSet ?? null\"\n [attr.sizes]=\"item.sizes ?? null\"\n [attr.alt]=\"itemAlt(item)\"\n />\n </a>\n } @else {\n <div class=\"solaris-carousel__media\">\n <img\n class=\"solaris-carousel__img\"\n [src]=\"item.src\"\n [attr.srcset]=\"item.srcSet ?? null\"\n [attr.sizes]=\"item.sizes ?? null\"\n [attr.alt]=\"itemAlt(item)\"\n />\n </div>\n }\n } @else {\n <div class=\"solaris-carousel__empty\" aria-hidden=\"true\"></div>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'solaris-section',\n standalone: true,\n imports: [NgClass],\n templateUrl: './section.html',\n styleUrls: ['./section.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisSectionComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() appearance: 'plain' | 'card' = 'plain';\n @Input() density: 'comfortable' | 'compact' = 'comfortable';\n}\n","<section class=\"solaris-section\" [ngClass]=\"['appearance-' + appearance, 'density-' + density]\">\n @if (title || description) {\n <header class=\"solaris-section__header\">\n @if (title) {\n <h2 class=\"solaris-section__title\">{{ title }}</h2>\n }\n @if (description) {\n <p class=\"solaris-section__description\">{{ description }}</p>\n }\n </header>\n }\n\n <div class=\"solaris-section__content\">\n <ng-content></ng-content>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n DividerLabelAlign,\n DividerOrientation,\n DividerSpacing,\n DividerStrength,\n DividerVariant,\n} from '../model/divider.type';\n\n@Component({\n selector: 'solaris-divider',\n standalone: true,\n imports: [NgClass],\n templateUrl: './divider.html',\n styleUrls: ['./divider.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { role: 'separator' },\n})\nexport class SolarisDivider {\n @Input() label?: string;\n @Input() inset = false;\n @Input() spacing: DividerSpacing = 'none';\n @Input() variant: DividerVariant = 'solid';\n @Input() strength: DividerStrength = 'normal';\n @Input() orientation: DividerOrientation = 'horizontal';\n @Input({ alias: 'label-align' }) labelAlign: DividerLabelAlign = 'center';\n\n @HostBinding('class') hostClass = 'solaris-divider-host';\n @HostBinding('attr.aria-orientation') get ariaOrientation() {\n return this.orientation === 'vertical' ? 'vertical' : 'horizontal';\n }\n\n get hasLabel(): boolean {\n return !!this.label && this.orientation === 'horizontal';\n }\n}\n","<div\n class=\"solaris-divider\"\n [ngClass]=\"[\n 'orientation-' + orientation,\n 'spacing-' + spacing,\n 'strength-' + strength,\n 'variant-' + variant,\n inset ? 'is-inset' : '',\n hasLabel ? 'has-label' : '',\n hasLabel ? 'label-' + labelAlign : '',\n ]\"\n>\n @if (hasLabel) {\n <span class=\"solaris-divider__line\"></span>\n <span class=\"solaris-divider__label\">{{ label }}</span>\n <span class=\"solaris-divider__line\"></span>\n }\n</div>\n","import { InjectionToken } from '@angular/core';\n\nexport const SOLARIS_DIALOG_STEP_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_STEP_DATA');\n","import { InjectionToken } from '@angular/core';\n\nexport const SOLARIS_DIALOG_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_DATA');\n","import { SolarisDialogAction, SolarisDialogHeaderConfiguration } from '../model/dialog.type';\nimport { Observable, Subject } from 'rxjs';\n\nexport class SolarisDialogRef<TResult = unknown> {\n private readonly actionSubject = new Subject<SolarisDialogAction<TResult>>();\n private readonly closedSubject = new Subject<TResult | undefined>();\n\n private closeFn?: (result?: TResult) => void;\n private updateActionsFn?: (actions: SolarisDialogAction<TResult>[]) => void;\n private updateHeaderFn?: (header: SolarisDialogHeaderConfiguration) => void;\n\n afterClosed(): Observable<TResult | undefined> {\n return this.closedSubject.asObservable();\n }\n\n afterAction(): Observable<SolarisDialogAction<TResult>> {\n return this.actionSubject.asObservable();\n }\n\n close(result?: TResult): void {\n this.closeFn?.(result);\n }\n\n updateActions(actions: SolarisDialogAction<TResult>[]): void {\n this.updateActionsFn?.(actions);\n }\n\n updateHeader(header: SolarisDialogHeaderConfiguration): void {\n this.updateHeaderFn?.(header);\n }\n\n _attachCloseFn(fn: (result?: TResult) => void): void {\n this.closeFn = fn;\n }\n\n _attachActionsUpdateFn(fn: (actions: SolarisDialogAction<TResult>[]) => void): void {\n this.updateActionsFn = fn;\n }\n\n _attachHeaderUpdateFn(fn: (header: SolarisDialogHeaderConfiguration) => void): void {\n this.updateHeaderFn = fn;\n }\n\n _emitAction(action: SolarisDialogAction<TResult>): void {\n this.actionSubject.next(action);\n }\n\n _finishClose(result?: TResult): void {\n this.closedSubject.next(result);\n this.closedSubject.complete();\n this.actionSubject.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Injector,\n computed,\n effect,\n inject,\n signal,\n AfterViewInit,\n ViewChildren,\n ElementRef,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgComponentOutlet } from '@angular/common';\n\nimport {\n SolarisDialogStep,\n SolarisDialogStepActionValue,\n SolarisDialogStepDirection,\n SolarisDialogStepsConfiguration,\n} from '../../model/dialog-steps.type';\nimport { SOLARIS_DIALOG_STEP_DATA } from '../../token/dialog-step-data.token';\nimport { SOLARIS_DIALOG_DATA } from '../../token/dialog-data.token';\nimport { SolarisDialogAction } from '../../model/dialog.type';\nimport { SolarisDialogRef } from '../../token/dialog-ref';\n\n@Component({\n selector: 'solaris-dialog-steps-container',\n standalone: true,\n imports: [NgComponentOutlet],\n templateUrl: './dialog-steps-container.html',\n styleUrls: ['./dialog-steps-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisDialogStepsContainer<TResult = unknown> implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n private readonly configuration = inject(\n SOLARIS_DIALOG_DATA,\n ) as SolarisDialogStepsConfiguration<TResult>;\n\n private readonly dialogRef =\n inject<SolarisDialogRef<TResult | SolarisDialogStepActionValue>>(SolarisDialogRef);\n\n protected readonly steps = this.configuration?.steps ?? [];\n\n protected readonly showProgress = this.configuration?.showProgress ?? true;\n protected readonly transitionBlur = this.configuration?.transitionBlur ?? true;\n protected readonly contentMinHeight = this.configuration?.contentMinHeight ?? '0';\n protected readonly transitionDurationMs = this.configuration?.transitionDurationMs ?? 420;\n\n protected readonly loading = signal(false);\n protected readonly transitioning = signal(false);\n protected readonly transitionHalfway = signal(false);\n\n protected readonly currentStepIndex = signal(this.resolveInitialStepIndex());\n\n @ViewChildren('stepElement', { read: ElementRef })\n private readonly stepElements!: QueryList<ElementRef<HTMLElement>>;\n\n protected readonly activeStepHeight = signal('auto');\n\n private measureRaf = 0;\n private resizeObserver?: ResizeObserver;\n\n private halfwayTimer = 0;\n private transitionTimer = 0;\n\n private readonly stepInjectors = this.steps.map((step) =>\n Injector.create({\n providers: [\n {\n provide: SOLARIS_DIALOG_STEP_DATA,\n useValue: step.data,\n },\n ],\n parent: this.injector,\n }),\n );\n\n protected readonly trackTransform = computed(() => {\n return `translate3d(-${this.currentStepIndex() * 100}%, 0, 0)`;\n });\n\n protected readonly isFirstStep = computed(() => this.currentStepIndex() === 0);\n\n protected readonly isLastStep = computed(() => {\n return this.currentStepIndex() === this.steps.length - 1;\n });\n\n protected readonly transitionDuration = computed(() => {\n return `${this.transitionDurationMs}ms`;\n });\n\n constructor() {\n this.destroyRef.onDestroy(() => {\n globalThis.clearTimeout(this.halfwayTimer);\n globalThis.clearTimeout(this.transitionTimer);\n\n if (this.measureRaf) {\n cancelAnimationFrame(this.measureRaf);\n }\n\n this.resizeObserver?.disconnect();\n });\n\n this.dialogRef\n .afterAction()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((action) => {\n void this.handleAction(action.value as SolarisDialogStepActionValue);\n });\n\n effect(() => {\n this.currentStepIndex();\n this.loading();\n\n this.updateDialogHeader();\n this.updateDialogActions();\n\n queueMicrotask(() => {\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n });\n });\n\n queueMicrotask(() => {\n void this.runBeforeEnter(this.currentStepIndex(), 'initial');\n });\n }\n\n ngAfterViewInit(): void {\n this.stepElements.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n });\n\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n }\n\n protected stepInjector(index: number): Injector {\n return this.stepInjectors[index];\n }\n\n private async handleAction(value: SolarisDialogStepActionValue): Promise<void> {\n switch (value) {\n case 'cancel':\n this.dialogRef.close();\n return;\n\n case 'back':\n await this.goToStep(this.currentStepIndex() - 1, 'backward');\n return;\n\n case 'next':\n await this.goToStep(this.currentStepIndex() + 1, 'forward');\n return;\n\n case 'finish':\n await this.finish();\n return;\n }\n }\n\n private async goToStep(\n targetIndex: number,\n direction: SolarisDialogStepDirection,\n ): Promise<void> {\n if (this.loading()) return;\n if (targetIndex < 0 || targetIndex >= this.steps.length) return;\n\n const fromIndex = this.currentStepIndex();\n const canLeave = await this.runBeforeLeave(fromIndex, targetIndex, direction);\n\n if (!canLeave) return;\n\n const canEnter = await this.runBeforeEnter(targetIndex, direction, fromIndex);\n\n if (!canEnter) return;\n\n this.runTransitionTo(targetIndex);\n }\n\n private async finish(): Promise<void> {\n if (this.loading()) return;\n\n const index = this.currentStepIndex();\n const canLeave = await this.runBeforeLeave(index, index, 'forward');\n\n if (!canLeave) return;\n\n this.dialogRef.close(this.configuration.finishValue);\n }\n\n private async runBeforeEnter(\n toIndex: number,\n direction: SolarisDialogStepDirection,\n fromIndex = toIndex,\n ): Promise<boolean> {\n const step = this.steps[toIndex];\n\n if (!step?.beforeEnter) {\n return true;\n }\n\n this.loading.set(true);\n\n try {\n const result = await step.beforeEnter({\n fromIndex,\n toIndex,\n direction,\n });\n\n return result !== false;\n } finally {\n this.loading.set(false);\n }\n }\n\n private async runBeforeLeave(\n fromIndex: number,\n toIndex: number,\n direction: SolarisDialogStepDirection,\n ): Promise<boolean> {\n const step = this.steps[fromIndex];\n\n if (!step?.beforeLeave) {\n return true;\n }\n\n this.loading.set(true);\n\n try {\n const result = await step.beforeLeave({\n fromIndex,\n toIndex,\n direction,\n });\n\n return result !== false;\n } finally {\n this.loading.set(false);\n }\n }\n\n private updateDialogActions(): void {\n if (!this.steps.length) {\n this.dialogRef.updateActions([]);\n return;\n }\n\n const step = this.steps[this.currentStepIndex()];\n const customActions = this.resolveStepActions(step);\n\n if (customActions.length) {\n this.dialogRef.updateActions(\n customActions.map((action) => ({\n ...action,\n disabled: action.disabled || this.loading(),\n })),\n );\n return;\n }\n\n const leftAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> =\n this.isFirstStep()\n ? {\n label: this.configuration.cancelLabel ?? 'Cancelar',\n labelKey: this.configuration.cancelLabelKey,\n value: 'cancel',\n variant: 'outline',\n color: 'surface',\n closesDialog: false,\n disabled: this.loading(),\n }\n : {\n label: this.configuration.backLabel ?? 'Voltar',\n labelKey: this.configuration.backLabelKey,\n value: 'back',\n variant: 'outline',\n color: 'surface',\n closesDialog: false,\n disabled: this.loading(),\n };\n\n const rightAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> =\n this.isLastStep()\n ? {\n label: this.configuration.finishLabel ?? 'Finalizar',\n labelKey: this.configuration.finishLabelKey,\n value: 'finish',\n variant: 'solid',\n color: 'primary',\n closesDialog: false,\n loading: this.loading(),\n }\n : {\n label: this.configuration.nextLabel ?? 'Continuar',\n labelKey: this.configuration.nextLabelKey,\n value: 'next',\n variant: 'solid',\n color: 'primary',\n closesDialog: false,\n loading: this.loading(),\n };\n\n this.dialogRef.updateActions([leftAction, rightAction]);\n }\n\n private resolveStepActions(\n step: SolarisDialogStep<unknown, TResult> | undefined,\n ): SolarisDialogAction<TResult | SolarisDialogStepActionValue>[] {\n if (!step?.actions) {\n return [];\n }\n\n if (typeof step.actions === 'function') {\n return step.actions({\n index: this.currentStepIndex(),\n loading: this.loading(),\n isFirstStep: this.isFirstStep(),\n isLastStep: this.isLastStep(),\n });\n }\n\n return step.actions;\n }\n\n private resolveInitialStepIndex(): number {\n if (!this.steps.length) {\n return 0;\n }\n\n const index = this.configuration.initialStepIndex ?? 0;\n\n return Math.max(0, Math.min(index, this.steps.length - 1));\n }\n\n private runTransitionTo(targetIndex: number): void {\n globalThis.clearTimeout(this.halfwayTimer);\n globalThis.clearTimeout(this.transitionTimer);\n\n this.transitioning.set(true);\n this.transitionHalfway.set(false);\n\n this.currentStepIndex.set(targetIndex);\n\n this.observeActiveStepHeight(targetIndex);\n this.scheduleActiveStepHeightMeasure(targetIndex);\n\n if (this.transitionBlur) {\n this.halfwayTimer = globalThis.setTimeout(\n () => {\n if (this.transitioning()) {\n this.transitionHalfway.set(true);\n }\n },\n Math.round(this.transitionDurationMs / 2),\n );\n }\n\n this.transitionTimer = globalThis.setTimeout(() => {\n this.transitioning.set(false);\n this.transitionHalfway.set(false);\n }, this.transitionDurationMs);\n }\n\n private updateDialogHeader(): void {\n const step = this.steps[this.currentStepIndex()];\n\n const title = step?.title;\n const titleKey = step?.titleKey;\n\n const description = step?.description;\n const descriptionKey = step?.descriptionKey;\n\n this.dialogRef.updateHeader({\n title: titleKey ? undefined : (title ?? this.configuration.title),\n titleKey: titleKey ?? (title ? undefined : this.configuration.titleKey),\n titleParams: step?.titleParams ?? this.configuration.titleParams,\n\n description: descriptionKey ? undefined : (description ?? this.configuration.description),\n descriptionKey:\n descriptionKey ?? (description ? undefined : this.configuration.descriptionKey),\n descriptionParams: step?.descriptionParams ?? this.configuration.descriptionParams,\n });\n }\n\n private scheduleActiveStepHeightMeasure(index = this.currentStepIndex()): void {\n if (this.measureRaf) {\n cancelAnimationFrame(this.measureRaf);\n }\n\n this.measureRaf = requestAnimationFrame(() => {\n this.measureStepHeight(index);\n });\n }\n\n private measureStepHeight(index = this.currentStepIndex()): void {\n const element = this.stepElements?.toArray()[index]?.nativeElement;\n\n if (!element) {\n this.activeStepHeight.set('auto');\n return;\n }\n\n const height = Math.ceil(element.scrollHeight);\n\n this.activeStepHeight.set(`${height}px`);\n }\n\n private observeActiveStepHeight(index = this.currentStepIndex()): void {\n this.resizeObserver?.disconnect();\n\n const element = this.stepElements?.toArray()[index]?.nativeElement;\n\n if (!element || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n this.scheduleActiveStepHeightMeasure(index);\n });\n\n this.resizeObserver.observe(element);\n }\n}\n","<div\n class=\"solaris-dialog-steps\"\n [class.is-transitioning]=\"transitioning()\"\n [class.is-halfway]=\"transitionHalfway()\"\n [class.has-transition-blur]=\"transitionBlur\"\n [style.--solaris-dialog-steps-min-height]=\"contentMinHeight\"\n [style.--solaris-dialog-steps-active-height]=\"activeStepHeight()\"\n>\n @if (showProgress) {\n <div class=\"solaris-dialog-steps__progress\" aria-hidden=\"true\">\n @for (step of steps; track step.key; let index = $index) {\n <span\n class=\"solaris-dialog-steps__dot\"\n [class.is-active]=\"index === currentStepIndex()\"\n [class.is-complete]=\"index < currentStepIndex()\"\n ></span>\n }\n </div>\n }\n\n <div class=\"solaris-dialog-steps__viewport\">\n <div\n class=\"solaris-dialog-steps__track\"\n [style.transform]=\"trackTransform()\"\n [style.--solaris-dialog-steps-transition-duration]=\"transitionDuration()\"\n >\n @for (step of steps; track step.key; let index = $index) {\n <section\n #stepElement\n class=\"solaris-dialog-steps__step\"\n [class.is-active]=\"index === currentStepIndex()\"\n [class.is-before]=\"index < currentStepIndex()\"\n [class.is-after]=\"index > currentStepIndex()\"\n >\n <div class=\"solaris-dialog-steps__step-inner\">\n <ng-container\n *ngComponentOutlet=\"step.component; injector: stepInjector(index)\"\n ></ng-container>\n </div>\n </section>\n }\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n SolarisDialogAction,\n SolarisDialogActionAlignment,\n SolarisDialogSize,\n} from '../../model/dialog.type';\nimport {\n SolarisButtonColorInput,\n SolarisButtonVariant,\n} from '../../../../actions/button/model/button.type';\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-dialog-container',\n standalone: true,\n imports: [SolarisButtonDirective, SolarisTranslationPipe],\n templateUrl: './dialog-container.html',\n styleUrls: ['./dialog-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisDialogContainer<TResult = unknown> {\n @ViewChild('contentHost', { read: ViewContainerRef, static: true })\n readonly contentHost!: ViewContainerRef;\n\n @Input() title?: string;\n @Input() titleKey?: string;\n @Input() titleParams?: Record<string, unknown>;\n\n @Input() description?: string;\n @Input() descriptionKey?: string;\n @Input() descriptionParams?: Record<string, unknown>;\n\n @Input() size: SolarisDialogSize = 'md';\n @Input() showCloseButton = true;\n @Input() actionSize?: SolarisSizePreset;\n @Input() actions: SolarisDialogAction<TResult>[] = [];\n @Input() actionAlignment: SolarisDialogActionAlignment = 'end';\n\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() ariaDescribedBy?: string;\n\n @Output() readonly closeClick = new EventEmitter<void>();\n @Output() readonly actionClick = new EventEmitter<SolarisDialogAction<TResult>>();\n\n readonly titleId = `solaris-dialog-title-${Math.round(Math.random() * 1_000_000)}`;\n readonly descriptionId = `solaris-dialog-description-${Math.round(Math.random() * 1_000_000)}`;\n\n get hasHeader(): boolean {\n return (\n !!this.title ||\n !!this.titleKey ||\n !!this.description ||\n !!this.descriptionKey ||\n this.showCloseButton\n );\n }\n\n get hasDescription(): boolean {\n return !!this.description || !!this.descriptionKey;\n }\n\n get hasActions(): boolean {\n return this.actions.length > 0;\n }\n\n get resolvedAriaLabelledBy(): string | null {\n if (this.ariaLabelledBy) return this.ariaLabelledBy;\n if (this.title || this.titleKey) return this.titleId;\n return null;\n }\n\n get resolvedAriaDescribedBy(): string | null {\n if (this.ariaDescribedBy) return this.ariaDescribedBy;\n if (this.description || this.descriptionKey) return this.descriptionId;\n return null;\n }\n\n protected resolveActionSize(action: SolarisDialogAction<TResult>): SolarisSizePreset {\n if (action.size) {\n return action.size;\n }\n\n if (this.actionSize) {\n return this.actionSize;\n }\n\n switch (this.size) {\n case 'sm':\n return 'sm';\n case 'md':\n return 'md';\n case 'lg':\n case 'xl':\n case 'fullscreen':\n return 'lg';\n }\n }\n\n protected resolveActionVariant(action: SolarisDialogAction<TResult>): SolarisButtonVariant {\n if (action.variant) {\n return action.variant;\n }\n\n return 'solid';\n }\n\n protected resolveActionColor(action: SolarisDialogAction<TResult>): SolarisButtonColorInput {\n if (action.color) {\n return action.color;\n }\n\n switch (action.variant) {\n case 'ghost':\n case 'outline':\n case 'soft':\n return 'surface';\n default:\n return 'primary';\n }\n }\n}\n","<section\n class=\"solaris-dialog\"\n [attr.data-size]=\"size\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\"\n [attr.aria-describedby]=\"resolvedAriaDescribedBy\"\n>\n @if (hasHeader) {\n <header class=\"solaris-dialog__header\">\n <div class=\"solaris-dialog__heading\">\n @if (title || titleKey) {\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\n @if (titleKey) {\n {{ titleKey | translate }}\n } @else {\n {{ title }}\n }\n </h2>\n }\n\n @if (hasDescription) {\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\n @if (descriptionKey) {\n {{ descriptionKey | translate }}\n } @else {\n {{ description }}\n }\n </p>\n }\n </div>\n\n @if (showCloseButton) {\n <button\n type=\"button\"\n class=\"solaris-dialog__close\"\n aria-label=\"Fechar\"\n (click)=\"closeClick.emit()\"\n >\n <i class=\"ph ph-x\"></i>\n </button>\n }\n </header>\n }\n\n <div class=\"solaris-dialog__body\">\n <ng-template #contentHost></ng-template>\n </div>\n\n @if (hasActions) {\n <footer class=\"solaris-dialog__footer\" [attr.data-action-alignment]=\"actionAlignment\">\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\n <button\n type=\"button\"\n solaris-button\n class=\"solaris-dialog__action\"\n [size]=\"resolveActionSize(action)\"\n [variant]=\"resolveActionVariant(action)\"\n [color]=\"resolveActionColor(action)\"\n [disabled]=\"action.disabled\"\n [loading]=\"action.loading\"\n [fullWidth]=\"action.fullWidth\"\n (click)=\"actionClick.emit(action)\"\n >\n @if (action.prefixIcon) {\n <i\n [attr.class]=\"\n 'solaris-dialog__action-icon solaris-dialog__action-icon--prefix ' +\n action.prefixIcon\n \"\n aria-hidden=\"true\"\n ></i>\n }\n\n <span class=\"solaris-dialog__action-label\">\n @if (action.labelKey) {\n {{ action.labelKey | translate: action.labelParams }}\n } @else {\n {{ action.label }}\n }\n </span>\n\n @if (action.suffixIcon) {\n <i\n [attr.class]=\"\n 'solaris-dialog__action-icon solaris-dialog__action-icon--suffix ' +\n action.suffixIcon\n \"\n aria-hidden=\"true\"\n ></i>\n }\n </button>\n }\n </footer>\n }\n</section>\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n createComponent,\n inject,\n} from '@angular/core';\n\nimport { SolarisDialogStepsContainer } from '../components/dialog-steps-container/dialog-steps-container';\nimport { SolarisDialogContainer } from '../components/dialog-container/dialog-container';\nimport { SolarisDialogStepsConfiguration } from '../model/dialog-steps.type';\nimport { SolarisDialogConfiguration } from '../model/dialog.type';\nimport { SOLARIS_DIALOG_DATA } from '../token/dialog-data.token';\nimport { SolarisDialogRef } from '../token/dialog-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SolarisDialogService {\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly appRef = inject(ApplicationRef);\n\n open<TComponent, TData = unknown, TResult = unknown>(\n component: Type<TComponent>,\n configuration: SolarisDialogConfiguration<TData, TResult> = {},\n ): SolarisDialogRef<TResult> {\n const dialogRef = new SolarisDialogRef<TResult>();\n\n const backdrop = document.createElement('div');\n backdrop.className = 'solaris-dialog-backdrop';\n\n const host = document.createElement('div');\n const positionClass = `position-${configuration.position ?? 'center'}`;\n\n host.className = ['solaris-dialog-host', positionClass, configuration.panelClass ?? '']\n .filter(Boolean)\n .join(' ');\n\n document.body.appendChild(backdrop);\n document.body.appendChild(host);\n\n const dialogInjector = Injector.create({\n providers: [\n { provide: SOLARIS_DIALOG_DATA, useValue: configuration.data },\n { provide: SolarisDialogRef, useValue: dialogRef },\n ],\n parent: this.environmentInjector,\n });\n\n const containerRef = createComponent(SolarisDialogContainer<TResult>, {\n environmentInjector: this.environmentInjector,\n hostElement: host,\n });\n\n containerRef.setInput('title', configuration.title);\n containerRef.setInput('titleKey', configuration.titleKey);\n containerRef.setInput('titleParams', configuration.titleParams);\n containerRef.setInput('description', configuration.description);\n containerRef.setInput('descriptionKey', configuration.descriptionKey);\n containerRef.setInput('descriptionParams', configuration.descriptionParams);\n containerRef.setInput('size', configuration.size ?? 'md');\n containerRef.setInput('actions', configuration.actions ?? []);\n containerRef.setInput('actionSize', configuration.actionSize);\n containerRef.setInput('actionAlignment', configuration.actionAlignment ?? 'end');\n containerRef.setInput('ariaLabel', configuration.ariaLabel);\n containerRef.setInput('ariaLabelledBy', configuration.ariaLabelledBy);\n containerRef.setInput('ariaDescribedBy', configuration.ariaDescribedBy);\n containerRef.setInput(\n 'showCloseButton',\n configuration.showCloseButton ?? !configuration.disableClose,\n );\n\n dialogRef._attachActionsUpdateFn((actions) => {\n containerRef.setInput('actions', [...actions]);\n containerRef.changeDetectorRef.detectChanges();\n });\n\n dialogRef._attachHeaderUpdateFn((header) => {\n containerRef.setInput('title', header.title);\n containerRef.setInput('titleKey', header.titleKey);\n containerRef.setInput('titleParams', header.titleParams);\n\n containerRef.setInput('description', header.description);\n containerRef.setInput('descriptionKey', header.descriptionKey);\n containerRef.setInput('descriptionParams', header.descriptionParams);\n\n containerRef.changeDetectorRef.detectChanges();\n });\n\n this.appRef.attachView(containerRef.hostView);\n containerRef.changeDetectorRef.detectChanges();\n\n const contentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: dialogInjector,\n });\n\n containerRef.instance.contentHost.insert(contentRef.hostView);\n contentRef.changeDetectorRef.detectChanges();\n\n const close = (result?: TResult) => {\n this.appRef.detachView(contentRef.hostView);\n contentRef.destroy();\n\n this.appRef.detachView(containerRef.hostView);\n containerRef.destroy();\n\n backdrop.remove();\n host.remove();\n\n document.removeEventListener('keydown', onKeyDown, true);\n backdrop.removeEventListener('pointerdown', onBackdropClick, true);\n\n dialogRef._finishClose(result);\n };\n\n dialogRef._attachCloseFn(close);\n\n const closeOnBackdropClick = configuration.closeOnBackdropClick ?? !configuration.disableClose;\n const closeOnEscape = configuration.closeOnEscape ?? !configuration.disableClose;\n\n const onBackdropClick = () => {\n if (closeOnBackdropClick) {\n dialogRef.close();\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEscape) {\n dialogRef.close();\n }\n };\n\n backdrop.addEventListener('pointerdown', onBackdropClick, true);\n document.addEventListener('keydown', onKeyDown, true);\n\n containerRef.instance.closeClick.subscribe(() => {\n if (!configuration.disableClose) {\n dialogRef.close();\n }\n });\n\n containerRef.instance.actionClick.subscribe((action) => {\n if (action.disabled || action.loading) return;\n\n dialogRef._emitAction(action);\n if (action.closesDialog ?? true) {\n dialogRef.close(action.value as TResult);\n }\n });\n\n return dialogRef;\n }\n\n openSteps<TResult = unknown>(\n configuration: SolarisDialogStepsConfiguration<TResult>,\n ): SolarisDialogRef<TResult> {\n return this.open<\n SolarisDialogStepsContainer<TResult>,\n SolarisDialogStepsConfiguration<TResult>,\n TResult\n >(SolarisDialogStepsContainer, {\n ...configuration,\n data: configuration,\n actions: [],\n actionAlignment: configuration.actionAlignment ?? 'space-between',\n showCloseButton: configuration.showCloseButton ?? true,\n });\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-drawer-header]',\n standalone: true,\n})\nexport class SolarisDrawerHeaderDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-drawer-footer]',\n standalone: true,\n})\nexport class SolarisDrawerFooterDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { SolarisDrawerHeaderDirective } from '../directives/drawer-header.directive';\nimport { SolarisDrawerFooterDirective } from '../directives/drawer-footer.directive';\nimport { SolarisDrawerSide } from '../model/drawer.type';\n\n@Component({\n selector: 'solaris-drawer',\n standalone: true,\n imports: [],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-drawer-host' },\n})\nexport class SolarisDrawer {\n private readonly doc = inject(DOCUMENT);\n\n @Input() title = '';\n @Input() titleKey = '';\n @Input() panelClass = '';\n @Input() backdrop = true;\n @Input() showClose = true;\n @Input() trapFocus = true;\n @Input() backdropClass = '';\n @Input() showHeader = true;\n @Input() lockScroll = true;\n @Input() restoreFocus = true;\n @Input() closeOnEscape = true;\n @Input() width = 'min(26rem, 92vw)';\n @Input() side: SolarisDrawerSide = 'right';\n @Input() height = 'min(70vh, 40rem)';\n @Input() closeOnOutsideClick = true;\n\n private readonly _openInput = signal<boolean | null>(null);\n private readonly _internalOpen = signal(false);\n\n @Input()\n set open(value: boolean | null) {\n this._openInput.set(value);\n }\n\n get open(): boolean | null {\n return this._openInput();\n }\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Output() openChange = new EventEmitter<boolean>();\n\n @ContentChild(SolarisDrawerHeaderDirective) headerSlot?: SolarisDrawerHeaderDirective;\n @ContentChild(SolarisDrawerFooterDirective) footerSlot?: SolarisDrawerFooterDirective;\n @ViewChild('panelEl', { read: ElementRef }) panelEl?: ElementRef<HTMLElement>;\n\n private static seq = 0;\n readonly _id = `solaris-drawer-${++SolarisDrawer.seq}`;\n private static scrollLockCount = 0;\n private static prevBodyOverflow = '';\n readonly titleId = `${this._id}-title`;\n private prevFocused: HTMLElement | null = null;\n private static prevBodyPaddingRight = '';\n\n @HostBinding('attr.data-side')\n get dataSide(): SolarisDrawerSide {\n return this.side;\n }\n\n @HostBinding('attr.data-open')\n get dataOpen(): string | null {\n return this.isOpen() ? 'true' : null;\n }\n\n get hasCustomHeader(): boolean {\n return !!this.headerSlot;\n }\n\n get hasCustomFooter(): boolean {\n return !!this.footerSlot;\n }\n\n constructor() {\n effect((onCleanup) => {\n const open = this.isOpen();\n\n if (open) {\n this.onOpen();\n } else {\n this.onClose();\n }\n\n const onKeyDown = (ev: KeyboardEvent) => {\n if (!this.isOpen()) return;\n if (this.closeOnEscape && ev.key === 'Escape') {\n ev.preventDefault();\n this.setOpen(false);\n }\n };\n\n const onDocPointerDown = (ev: PointerEvent) => {\n if (!this.isOpen()) return;\n if (!this.closeOnOutsideClick) return;\n if (this.backdrop) return;\n\n const panel = this.panelEl?.nativeElement;\n const t = ev.target as Node | null;\n if (!panel || !t) return;\n\n if (!panel.contains(t)) this.setOpen(false);\n };\n\n const onFocusIn = (ev: FocusEvent) => {\n if (!this.isOpen()) return;\n if (!this.trapFocus) return;\n\n const panel = this.panelEl?.nativeElement;\n const target = ev.target as Node | null;\n if (!panel || !target) return;\n\n if (!panel.contains(target)) {\n this.focusFirst();\n }\n };\n\n this.doc.addEventListener('keydown', onKeyDown, { capture: true });\n this.doc.addEventListener('pointerdown', onDocPointerDown, { capture: true });\n this.doc.addEventListener('focusin', onFocusIn, { capture: true });\n\n onCleanup(() => {\n this.doc.removeEventListener('keydown', onKeyDown, true);\n this.doc.removeEventListener('pointerdown', onDocPointerDown, true);\n this.doc.removeEventListener('focusin', onFocusIn, true);\n });\n });\n }\n\n toggle(): void {\n this.setOpen(!this.isOpen());\n }\n\n setOpen(next: boolean): void {\n const cur = this.isOpen();\n if (next === cur) return;\n\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') {\n this._internalOpen.set(next);\n }\n }\n\n onBackdropClick(): void {\n if (!this.closeOnOutsideClick) return;\n this.setOpen(false);\n }\n\n onPanelKeydown(ev: KeyboardEvent): void {\n if (!this.trapFocus) return;\n if (ev.key !== 'Tab') return;\n\n const panel = this.panelEl?.nativeElement;\n if (!panel) return;\n\n const focusables = this.getFocusable(panel);\n if (!focusables.length) return;\n\n const first = focusables[0];\n const last = focusables.at(-1);\n\n const active = this.doc.activeElement as HTMLElement | null;\n\n if (ev.shiftKey) {\n if (!active || active === first) {\n ev.preventDefault();\n if (last) {\n last.focus();\n }\n }\n } else if (!active || active === last) {\n ev.preventDefault();\n first.focus();\n }\n }\n\n private onOpen(): void {\n if (this.restoreFocus) {\n this.prevFocused = this.doc.activeElement as HTMLElement | null;\n }\n\n if (this.lockScroll) this.lockBodyScroll();\n queueMicrotask(() => {\n requestAnimationFrame(() => this.focusFirst());\n });\n }\n\n private onClose(): void {\n if (this.lockScroll) this.unlockBodyScroll();\n\n if (this.restoreFocus && this.prevFocused?.isConnected) {\n queueMicrotask(() => this.prevFocused?.focus?.());\n }\n this.prevFocused = null;\n }\n\n private focusFirst(): void {\n const panel = this.panelEl?.nativeElement;\n if (!panel) return;\n\n const focusables = this.getFocusable(panel);\n if (focusables.length) {\n focusables[0].focus();\n return;\n }\n\n panel.focus?.();\n }\n\n private getFocusable(root: HTMLElement): HTMLElement[] {\n const selector =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n const all = Array.from(root.querySelectorAll<HTMLElement>(selector));\n return all.filter((el) => {\n const style = getComputedStyle(el);\n const visible = style.visibility !== 'hidden' && style.display !== 'none';\n const inDom = el.offsetParent !== null || style.position === 'fixed';\n return visible && inDom;\n });\n }\n\n private lockBodyScroll(): void {\n const body = this.doc.body;\n if (!body) return;\n\n if (SolarisDrawer.scrollLockCount === 0) {\n SolarisDrawer.prevBodyOverflow = body.style.overflow;\n SolarisDrawer.prevBodyPaddingRight = body.style.paddingRight;\n\n const scrollbarW = Math.max(0, window.innerWidth - this.doc.documentElement.clientWidth);\n body.style.overflow = 'hidden';\n if (scrollbarW) body.style.paddingRight = `${scrollbarW}px`;\n }\n\n SolarisDrawer.scrollLockCount++;\n }\n\n private unlockBodyScroll(): void {\n const body = this.doc.body;\n if (!body) return;\n\n SolarisDrawer.scrollLockCount = Math.max(0, SolarisDrawer.scrollLockCount - 1);\n\n if (SolarisDrawer.scrollLockCount === 0) {\n body.style.overflow = SolarisDrawer.prevBodyOverflow;\n body.style.paddingRight = SolarisDrawer.prevBodyPaddingRight;\n }\n }\n}\n","@if (isOpen()) {\n @if (backdrop) {\n <div\n class=\"solaris-drawer__backdrop {{ backdropClass }}\"\n (click)=\"onBackdropClick()\"\n aria-hidden=\"true\"\n ></div>\n }\n\n <aside\n #panelEl\n class=\"solaris-drawer__panel {{ panelClass }}\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"showHeader ? titleId : null\"\n [style.--solaris-drawer-width]=\"width\"\n [style.--solaris-drawer-height]=\"height\"\n (keydown)=\"onPanelKeydown($event)\"\n tabindex=\"-1\"\n >\n @if (showHeader) {\n <header class=\"solaris-drawer__header\">\n @if (hasCustomHeader) {\n <ng-content select=\"[solaris-drawer-header]\"></ng-content>\n } @else {\n <div class=\"solaris-drawer__title\" [id]=\"titleId\">{{ title }}</div>\n\n @if (showClose) {\n <button\n type=\"button\"\n class=\"solaris-drawer__close\"\n (click)=\"setOpen(false)\"\n aria-label=\"Close\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n }\n }\n </header>\n }\n\n <div class=\"solaris-drawer__content\">\n <ng-content></ng-content>\n </div>\n\n @if (hasCustomFooter) {\n <footer class=\"solaris-drawer__footer\">\n <ng-content select=\"[solaris-drawer-footer]\"></ng-content>\n </footer>\n }\n </aside>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-filter-panel-footer]',\n standalone: true,\n})\nexport class SolarisFilterPanelFooterDirective {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'solaris-table-filters',\n standalone: true,\n templateUrl: './table-filters.html',\n styleUrls: ['./table-filters.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-table-filters' },\n})\nexport class SolarisTableFilters {}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-filter-field',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './filter-field.html',\n styleUrls: ['./filter-field.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-field-host' },\n})\nexport class SolarisFilterField {\n @Input() label = '';\n @Input() labelKey = '';\n @Input() active = false;\n @Input() resetLabel = 'Reset';\n @Input() resetLabelKey = 'ui.solaris.common.reset';\n\n @Output() reset = new EventEmitter<void>();\n\n get showReset(): boolean {\n return this.reset.observed;\n }\n\n onResetClick(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.reset.emit();\n }\n}\n","<div class=\"solaris-filter-field\">\n <div class=\"solaris-filter-field__head\">\n <span class=\"solaris-filter-field__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label }}\n }\n </span>\n\n @if (showReset) {\n <button\n type=\"button\"\n class=\"solaris-filter-field__reset\"\n (click)=\"onResetClick($event)\"\n [disabled]=\"!active\"\n >\n @if (resetLabelKey) {\n {{ resetLabelKey | translate }}\n } @else {\n {{ resetLabel }}\n }\n </button>\n }\n </div>\n\n <div class=\"solaris-filter-field__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-filter-panel-chips]',\n standalone: true,\n})\nexport class SolarisFilterPanelChipsDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n computed,\n signal,\n} from '@angular/core';\n\nimport { SolarisFilterPanelFooterDirective } from '../../../directives/filter-panel-footer.directive';\nimport { SolarisDrawerFooterDirective } from '../../../../../layouts/drawer/directives/drawer-footer.directive';\nimport { SolarisDrawerHeaderDirective } from '../../../../../layouts/drawer/directives/drawer-header.directive';\nimport { SolarisFilterPanelChipsDirective } from '../../../directives/filter-panel-chips.directive';\nimport { SolarisButtonDirective } from '../../../../../actions/button/directives/button.directive';\nimport { SolarisFilterPanelRadius } from '../../../model/filter-panel/filter-panel.type';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisDrawer } from '../../../../../layouts/drawer/component/drawer';\n\n@Component({\n selector: 'solaris-filter-panel',\n standalone: true,\n imports: [\n SolarisTranslationPipe,\n SolarisButtonDirective,\n SolarisDrawerHeaderDirective,\n SolarisDrawerFooterDirective,\n SolarisDrawer,\n ],\n templateUrl: './filter-panel.html',\n styleUrls: ['./filter-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-panel-host' },\n})\nexport class SolarisFilterPanel {\n @Input() count = 0;\n @Input() labelKey = '';\n @Input() titleKey = '';\n @Input() disabled = false;\n @Input() drawerSide: 'right' | 'left' = 'right';\n @Input() radius: SolarisFilterPanelRadius = 'sm';\n @Input() drawerWidth: string = 'min(30rem, 92vw)';\n @Input() label = 'ui.solaris.tables.filter.filters';\n @Input() title = 'ui.solaris.tables.filter.filters';\n\n private readonly _internalOpen = signal(false);\n private readonly _openInput = signal<boolean | null>(null);\n private readonly _chipsSlot = signal<SolarisFilterPanelChipsDirective | null>(null);\n\n @Input() set open(v: boolean | null) {\n this._openInput.set(v);\n }\n get open(): boolean | null {\n return this._openInput();\n }\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Output() apply = new EventEmitter<void>();\n @Output() clearAll = new EventEmitter<void>();\n @Output() openChange = new EventEmitter<boolean>();\n\n @ContentChild(SolarisFilterPanelFooterDirective) footerSlot?: SolarisFilterPanelFooterDirective;\n @ContentChild(SolarisFilterPanelChipsDirective) set chipsSlot(\n v: SolarisFilterPanelChipsDirective | undefined,\n ) {\n this._chipsSlot.set(v ?? null);\n }\n\n readonly hasChips = computed(() => !!this._chipsSlot());\n get hasCustomFooter(): boolean {\n return !!this.footerSlot;\n }\n\n setOpen(next: boolean) {\n if (this.disabled) return;\n if (next === this.isOpen()) return;\n\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') this._internalOpen.set(next);\n }\n\n toggle() {\n this.setOpen(!this.isOpen());\n }\n}\n","<button\n type=\"button\"\n class=\"solaris-filter-panel__trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n [attr.data-radius]=\"radius\"\n>\n <i class=\"ph ph-sliders-horizontal\"></i>\n\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label | translate }}\n }\n\n @if (count > 0) {\n <span class=\"solaris-filter-panel__count\">{{ count }}</span>\n }\n</button>\n\n<solaris-drawer\n [open]=\"isOpen()\"\n (openChange)=\"setOpen($event)\"\n [side]=\"drawerSide\"\n [width]=\"drawerWidth\"\n [backdrop]=\"true\"\n [closeOnEscape]=\"true\"\n [closeOnOutsideClick]=\"true\"\n [lockScroll]=\"true\"\n [restoreFocus]=\"true\"\n [trapFocus]=\"true\"\n panelClass=\"solaris-filter-panel__drawer\"\n>\n <div solaris-drawer-header class=\"solaris-filter-panel__header\">\n <div class=\"solaris-filter-panel__title\">\n @if (titleKey) {\n {{ titleKey | translate }}\n } @else {\n {{ title | translate }}\n }\n </div>\n\n <button type=\"button\" class=\"solaris-filter-panel__close\" (click)=\"setOpen(false)\">\n <i class=\"ph ph-x\"></i>\n </button>\n </div>\n\n @if (hasChips()) {\n <div class=\"solaris-filter-panel__chips\">\n <ng-content select=\"[solarisFilterPanelChips]\"></ng-content>\n </div>\n }\n\n <div class=\"solaris-filter-panel__content\">\n <ng-content></ng-content>\n </div>\n\n <footer solaris-drawer-footer class=\"solaris-filter-panel__footer\">\n <ng-content select=\"[solarisFilterPanelFooter]\"></ng-content>\n\n @if (!hasCustomFooter) {\n <div class=\"solaris-filter-panel__footer-default\">\n <button\n solaris-button\n color=\"surface\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"clearAll.emit()\"\n >\n {{ 'ui.solaris.common.clearAll' | translate }}\n </button>\n\n <button solaris-button type=\"button\" (click)=\"apply.emit()\">\n {{ 'ui.solaris.common.apply' | translate }}\n </button>\n </div>\n }\n </footer>\n</solaris-drawer>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisRadiusPreset } from '../../../../../common/model/common-configurations.type';\n\n@Component({\n selector: 'solaris-filter-chip',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './filter-chip.html',\n styleUrls: ['./filter-chip.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-chip-host' },\n})\nexport class SolarisFilterChip {\n @Input() label = '';\n @Input() value = '';\n @Input() labelKey = '';\n @Input() valueKey = '';\n @Input() disabled = false;\n @Input() removable = true;\n @Input() radius: SolarisRadiusPreset = 'md';\n\n @Output() remove = new EventEmitter<void>();\n @Output() chipClick = new EventEmitter<void>();\n\n onRemoveClick(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n if (!this.disabled) this.remove.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"solaris-filter-chip\"\n [disabled]=\"disabled\"\n (click)=\"chipClick.emit()\"\n [attr.data-radius]=\"radius\"\n>\n <span class=\"solaris-filter-chip__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label }}\n }\n </span>\n\n <span class=\"solaris-filter-chip__value\">\n @if (valueKey) {\n {{ valueKey | translate }}\n } @else {\n {{ value }}\n }\n </span>\n\n @if (removable) {\n <span\n class=\"solaris-filter-chip__remove\"\n role=\"button\"\n tabindex=\"-1\"\n (click)=\"onRemoveClick($event)\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </span>\n }\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'solaris-table-skeleton',\n standalone: true,\n templateUrl: './table-skeleton.html',\n styleUrls: ['./table-skeleton.scss'],\n})\nexport class SolarisTableSkeleton {\n @Input() rows = 10;\n @Input() columns = 6;\n @Input() selectable = false;\n @Input() gridTemplateColumns = '';\n\n public rowsArray() {\n return Array.from({ length: this.rows }, (_, i) => i);\n }\n public colsArray() {\n return Array.from({ length: this.columns }, (_, i) => i);\n }\n}\n","<div class=\"solaris-table-skeleton\" role=\"status\" aria-live=\"polite\">\n @for (r of rowsArray(); track r) {\n <div class=\"solaris-table-skeleton__row\" [style.gridTemplateColumns]=\"gridTemplateColumns\">\n @for (c of colsArray(); track c; let i = $index) {\n <div class=\"solaris-table-skeleton__cell\" [class.is-first]=\"i === 0\">\n @if (selectable && i === 0) {\n <span class=\"solaris-table-skeleton__select-prefix\">\n <span class=\"sk sk--circle\"></span>\n </span>\n }\n\n <span class=\"sk sk--line\"></span>\n </div>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'solaris-filter-bar',\n standalone: true,\n templateUrl: './filter-bar.html',\n styleUrls: ['./filter-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-bar' },\n})\nexport class SolarisFilterBar {}\n","<ng-content></ng-content>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-column-cell]',\n standalone: true,\n})\nexport class SolarisColumnCellDef {\n constructor(public readonly template: TemplateRef<any>) {}\n}\n\n@Directive({\n selector: 'ng-template[solaris-column-header]',\n standalone: true,\n})\nexport class SolarisColumnHeaderDef {\n constructor(public readonly template: TemplateRef<any>) {}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisIdGenerator {\n private readonly counters = new Map<string, number>();\n\n public next(prefix = 'solaris'): string {\n const current = this.counters.get(prefix) ?? 0;\n const next = current + 1;\n this.counters.set(prefix, next);\n return `${prefix}-${next}`;\n }\n}\n","import { booleanAttribute, Component, ContentChild, inject, Input } from '@angular/core';\n\nimport { SolarisColumnCellDef, SolarisColumnHeaderDef } from '../../directives/column.directive';\nimport { SolarisIdGenerator } from '../../../../common/service/id-generator.service';\nimport { SolarisAlign } from '../../model/table/table.types';\n\n@Component({\n selector: 'solaris-column',\n standalone: true,\n templateUrl: './table-column.html',\n styleUrls: ['./table-column.scss'],\n})\nexport class SolarisTableColumn {\n private readonly ids = inject(SolarisIdGenerator);\n readonly id = this.ids.next('solaris-column');\n\n @Input() field?: string;\n @Input() width?: string;\n @Input() header?: string;\n @Input() sortKey?: string;\n @Input() minWidth?: string;\n @Input() maxWidth?: string;\n @Input() headerKey?: string;\n @Input() headerIconClass?: string;\n @Input() align: SolarisAlign = 'start';\n @Input({ transform: booleanAttribute }) grow = false;\n @Input({ transform: booleanAttribute }) resizable = true;\n @Input({ transform: booleanAttribute }) sortable = false;\n\n @ContentChild(SolarisColumnCellDef) cellDef?: SolarisColumnCellDef;\n @ContentChild(SolarisColumnHeaderDef) headerDef?: SolarisColumnHeaderDef;\n}\n","","import { inject } from '@angular/core';\n\nimport { SolarisIdGenerator } from '../service/id-generator.service';\n\nexport function uniqueId(prefix: string): string {\n return inject(SolarisIdGenerator).next(prefix);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewChild,\n forwardRef,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\nimport { CheckboxAppearance, CheckboxColorInput, CheckboxVariant } from '../model/checkbox.type';\nimport { uniqueId } from '../../../common/helper/unique-id';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\n@Component({\n selector: 'solaris-checkbox',\n standalone: true,\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisCheckbox),\n multi: true,\n },\n ],\n host: {\n class: 'solaris-checkbox-host',\n '[attr.data-size]': 'size()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-appearance]': 'appearance()',\n '[style.--solaris-checkbox-ink]': 'ink()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[style.--solaris-checkbox-custom]': 'customAccent()',\n },\n})\nexport class SolarisCheckbox implements ControlValueAccessor {\n readonly indeterminate = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n readonly size = input<SolarisSizePreset>('md');\n readonly variant = input<CheckboxVariant>('square');\n readonly color = input<CheckboxColorInput>('primary');\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly appearance = input<CheckboxAppearance>('solid');\n readonly checkColor = input<CheckboxColorInput | null>(null);\n\n readonly checked = signal(false);\n readonly disabled = signal(false);\n readonly checkedChange = output<boolean>();\n readonly indeterminateChange = output<boolean>();\n\n @ViewChild('native', { static: true })\n private readonly native?: ElementRef<HTMLInputElement>;\n\n readonly customAccent = computed(() => {\n if (this.colorKey() !== 'custom') return null;\n const raw = String(this.color() ?? '').trim();\n return !raw || raw === 'custom' ? null : raw;\n });\n readonly colorKey = computed(() => {\n const raw = String(this.color() ?? '').trim();\n if (!raw || raw === 'custom') return 'custom';\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\n });\n private readonly autoId = uniqueId('solaris-checkbox');\n readonly id = computed(() => this.inputId() ?? this.autoId);\n readonly ink = computed(() => resolveColor(this.checkColor(), null));\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n const el = this.native?.nativeElement;\n if (!el) return;\n el.indeterminate = this.indeterminate();\n });\n }\n\n public onNativeChange(next: boolean) {\n if (this.indeterminate()) this.indeterminateChange.emit(false);\n\n this.checked.set(next);\n this.onChange(next);\n this.checkedChange.emit(next);\n this.onTouched();\n }\n\n public onBlur() {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked.set(!!value);\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n}\n\nfunction resolveColor(\n v: CheckboxColorInput | null | undefined,\n fallback: string | null,\n): string | null {\n const s = v == null ? '' : String(v).trim();\n if (!s || s === 'custom') return fallback;\n if (PRESET_COLORS.has(s as SolarisColorPreset)) return `var(--solaris-color-${s})`;\n return s;\n}\n","<label class=\"solaris-checkbox\">\n <input\n #native\n class=\"solaris-checkbox__native\"\n type=\"checkbox\"\n [attr.id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked() ? 'true' : 'false'\"\n (change)=\"onNativeChange(native.checked)\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"solaris-checkbox__control\" aria-hidden=\"true\">\n @if (variant() === 'icon') {\n <span class=\"solaris-checkbox__dot\" aria-hidden=\"true\"></span>\n } @else {\n <i\n class=\"ph solaris-checkbox__icon\"\n [class.ph-check]=\"!indeterminate()\"\n [class.ph-minus]=\"indeterminate()\"\n aria-hidden=\"true\"\n ></i>\n }\n </span>\n\n @if (variant() !== 'icon') {\n <span class=\"solaris-checkbox__content\"><ng-content /></span>\n }\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n SolarisPageChange,\n SolarisRowKey,\n SolarisSort,\n SolarisTableVariant,\n} from '../../model/table/table.types';\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisTableSkeleton } from '../skeleton/table-skeleton';\nimport { SolarisTableColumn } from '../column/table-column';\n\n@Component({\n selector: 'solaris-table',\n standalone: true,\n imports: [\n FormsModule,\n SolarisCheckbox,\n NgTemplateOutlet,\n SolarisTableSkeleton,\n SolarisTranslationPipe,\n ],\n templateUrl: './table.html',\n styleUrls: ['./table.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-table-host',\n '[attr.data-scroll]': 'needsScroll() ? \"true\" : null',\n },\n})\nexport class SolarisTable implements AfterContentInit, OnChanges {\n private readonly destroyRef: DestroyRef = inject(DestroyRef);\n\n @Input() length = 0;\n @Input() pageIndex = 0;\n @Input() pageSize = 10;\n @Input() rowsCount = 0;\n @Input() loading = false;\n @Input() sort: SolarisSort[] = [];\n @Input() selectable = false;\n @Input() tableDescription = '';\n @Input() selection: SolarisRowKey[] = [];\n @Input() variant: SolarisTableVariant = 'grid';\n @Input() emptyIconClass = 'ph ph-database';\n @Input() pageSizeOptions: number[] = [10, 20, 50];\n @Input() emptyTextKey = 'ui.solaris.table.empty';\n\n @Output() sortChange = new EventEmitter<SolarisSort[]>();\n @Output() pageChange = new EventEmitter<SolarisPageChange>();\n @Output() selectionChange = new EventEmitter<SolarisRowKey[]>();\n\n @ContentChildren(SolarisTableColumn) private readonly columnQuery!: QueryList<SolarisTableColumn>;\n @ViewChild('tableRoot', { static: true }) private readonly tableRoot!: ElementRef<HTMLElement>;\n\n readonly needsScroll = signal(false);\n readonly measuredReady = signal(false);\n readonly sortState = signal<SolarisSort[]>([]);\n private readonly measuredPx = signal<number[]>([]);\n readonly columns = signal<SolarisTableColumn[]>([]);\n private readonly selectionSig = signal<SolarisRowKey[]>([]);\n private readonly rowKeys = signal<Set<SolarisRowKey>>(new Set());\n private readonly manualPx = signal<Record<number, number>>({});\n private readonly selectionSetSig = computed(() => new Set(this.selectionSig()));\n\n readonly selectAllChecked = computed(() => {\n const keys = Array.from(this.rowKeys());\n if (!keys.length) return false;\n const sel = this.selectionSetSig();\n return keys.every((k) => sel.has(k));\n });\n readonly selectAllIndeterminate = computed(() => {\n const keys = Array.from(this.rowKeys());\n if (!keys.length) return false;\n const sel = this.selectionSetSig();\n const any = keys.some((k) => sel.has(k));\n return any && !this.selectAllChecked();\n });\n readonly selectedCount = computed(() => this.selectionSig().length);\n readonly gridTemplateColumns = computed(() => this.buildGridTemplateColumns());\n\n private rafId: number | null = null;\n private resizeObserver?: ResizeObserver;\n\n get rangeStart(): number {\n if (!this.length) return 0;\n return this.pageIndex * this.pageSize + 1;\n }\n\n get rangeEnd(): number {\n if (!this.length) return 0;\n return Math.min(this.length, (this.pageIndex + 1) * this.pageSize);\n }\n\n get totalPages(): number {\n return Math.max(1, Math.ceil((this.length || 0) / (this.pageSize || 1)));\n }\n\n ngAfterContentInit(): void {\n this.syncColumns();\n this.selectionSig.set(this.selection ?? []);\n this.sortState.set(this.sort ?? []);\n\n this.columnQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.syncColumns();\n this.scheduleMeasure();\n });\n\n this.resizeObserver = new ResizeObserver(() => this.scheduleMeasure());\n this.resizeObserver.observe(this.tableRoot.nativeElement);\n this.destroyRef.onDestroy(() => this.resizeObserver?.disconnect());\n\n const fonts = (document as any).fonts;\n if (fonts?.ready?.then) fonts.ready.then(() => this.scheduleMeasure());\n\n this.scheduleMeasure();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['sort']) this.sortState.set(this.sort ?? []);\n if (changes['selection']) this.selectionSig.set(this.selection ?? []);\n\n if (\n changes['variant'] ||\n changes['rowsCount'] ||\n changes['pageIndex'] ||\n changes['pageSize'] ||\n changes['loading']\n ) {\n this.scheduleMeasure();\n }\n }\n\n private syncColumns(): void {\n this.columns.set(this.columnQuery?.toArray() ?? []);\n }\n\n private scheduleMeasure(): void {\n if (this.loading) return;\n\n if (this.rafId != null) cancelAnimationFrame(this.rafId);\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n this.measureColumns();\n });\n }\n\n private measureColumns(): void {\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n const cols = this.columns();\n if (!cols.length) return;\n\n const isGrid = this.variant === 'grid';\n const borderPx = isGrid ? 2 : 0;\n const safetyPx = isGrid ? 2 : 0;\n const perColOverhead = borderPx + safetyPx;\n\n const widths: number[] = [];\n\n for (let i = 0; i < cols.length; i++) {\n const col = cols[i];\n\n if (col.width) {\n widths[i] = -1;\n continue;\n }\n\n const manual = this.manualPx()[i];\n if (manual != null) {\n widths[i] = manual;\n continue;\n }\n\n const headerCell = root.querySelector<HTMLElement>(\n `.solaris-table__row--header [data-col-idx=\"${i}\"]`,\n );\n const bodyCells = Array.from(\n root.querySelectorAll<HTMLElement>(`.solaris-table__body [data-col-idx=\"${i}\"]`),\n );\n\n const headerW = headerCell ? this.measureHeaderCellWidth(headerCell) : 0;\n const bodyW = this.measureBodyCellsWidth(bodyCells);\n\n const cap = this.toPx(col.maxWidth ?? '18rem', root);\n const ideal = Math.max(headerW, bodyW);\n const withOverhead = ideal + perColOverhead;\n\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\n\n widths[i] = Math.max(min, Math.min(withOverhead, cap));\n }\n\n this.measuredPx.set(widths);\n this.measuredReady.set(true);\n this.updateScrollFlag();\n }\n\n private measureHeaderCellWidth(cell: HTMLElement): number {\n const root = this.tableRoot?.nativeElement;\n if (!root) return 0;\n\n const clone = cell.cloneNode(true) as HTMLElement;\n\n clone.style.position = 'absolute';\n clone.style.left = '-99999px';\n clone.style.top = '0';\n clone.style.visibility = 'hidden';\n clone.style.pointerEvents = 'none';\n clone.style.width = 'max-content';\n clone.style.maxWidth = 'none';\n\n const resizer = clone.querySelector<HTMLElement>('.solaris-table__col-resizer');\n if (resizer) resizer.style.display = 'none';\n\n const headerContent = clone.querySelector<HTMLElement>('.solaris-table__header-content');\n if (headerContent) {\n headerContent.style.width = 'max-content';\n headerContent.style.justifyContent = 'flex-start';\n }\n\n const left = clone.querySelector<HTMLElement>('.solaris-table__header-left');\n if (left) {\n left.style.overflow = 'visible';\n left.style.maxWidth = 'none';\n left.style.minWidth = '0';\n }\n\n const text = clone.querySelector<HTMLElement>('.solaris-table__header-text');\n if (text) {\n text.style.maxWidth = 'none';\n text.style.overflow = 'visible';\n text.style.textOverflow = 'clip';\n text.style.whiteSpace = 'nowrap';\n text.style.display = 'inline-block';\n }\n\n const sortBtn = clone.querySelector<HTMLElement>('.solaris-table__sort-btn');\n if (sortBtn) sortBtn.style.width = 'max-content';\n\n root.appendChild(clone);\n const w = clone.getBoundingClientRect().width;\n clone.remove();\n\n return Math.ceil(w);\n }\n\n private measureBodyCellsWidth(cells: HTMLElement[]): number {\n let max = 0;\n for (const cell of cells) max = Math.max(max, this.measureBodyCellWidth(cell));\n return max;\n }\n\n private measureBodyCellWidth(cell: HTMLElement): number {\n const style = getComputedStyle(cell);\n const pad =\n Number.parseFloat(style.paddingLeft || '0') + Number.parseFloat(style.paddingRight || '0');\n\n const prefix = cell.querySelector<HTMLElement>('.solaris-row__select-prefix');\n const content = cell.querySelector<HTMLElement>('.solaris-row__content');\n\n const prefixW = prefix?.scrollWidth ?? 0;\n const contentW = content?.scrollWidth ?? cell.scrollWidth;\n\n const gap = prefix ? 12 : 0;\n return pad + prefixW + gap + contentW;\n }\n\n private toPx(value: string, base: HTMLElement): number {\n const v = value.trim();\n if (v.endsWith('px')) return Number.parseFloat(v);\n if (v.endsWith('rem'))\n return (\n Number.parseFloat(v) *\n Number.parseFloat(getComputedStyle(document.documentElement).fontSize)\n );\n if (v.endsWith('em'))\n return Number.parseFloat(v) * Number.parseFloat(getComputedStyle(base).fontSize);\n const n = Number.parseFloat(v);\n return Number.isFinite(n) ? n : 280;\n }\n\n private updateScrollFlag(): void {\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n requestAnimationFrame(() => {\n const needs = root.scrollWidth > root.clientWidth + 1;\n this.needsScroll.set(needs);\n });\n }\n\n private clamp(n: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, n));\n }\n\n public clearManualWidth(i: number): void {\n const next = { ...this.manualPx() };\n delete next[i];\n this.manualPx.set(next);\n this.scheduleMeasure();\n }\n\n public onResizeStart(ev: PointerEvent, i: number): void {\n ev.preventDefault();\n ev.stopPropagation();\n\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n const headerCell = this.getHeaderCell(i);\n if (!headerCell) return;\n\n const cols = this.columns();\n const col = cols[i];\n if (!col || col.width || !col.resizable) return;\n\n const startX = ev.clientX;\n const startW = this.manualPx()[i] ?? Math.round(headerCell.getBoundingClientRect().width);\n\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\n const hardMax = col.maxWidth ? this.toPx(col.maxWidth, root) : 9999;\n const maxSafe = this.computeResizeMax(i, min, hardMax, root);\n\n root.classList.add('is-resizing');\n (ev.target as HTMLElement).setPointerCapture?.(ev.pointerId);\n\n const onMove = (e: PointerEvent) => {\n const dx = e.clientX - startX;\n const nextW = this.clamp(Math.round(startW + dx), min, maxSafe);\n const cur = this.manualPx();\n if (cur[i] === nextW) return;\n this.manualPx.set({ ...cur, [i]: nextW });\n };\n\n const cleanup = () => {\n root.classList.remove('is-resizing');\n globalThis.removeEventListener('pointermove', onMove);\n globalThis.removeEventListener('pointerup', cleanup);\n globalThis.removeEventListener('pointercancel', cleanup);\n };\n\n globalThis.addEventListener('pointermove', onMove);\n globalThis.addEventListener('pointerup', cleanup);\n globalThis.addEventListener('pointercancel', cleanup);\n }\n\n private getHeaderCell(i: number): HTMLElement | null {\n const root = this.tableRoot?.nativeElement;\n if (!root) return null;\n return root.querySelector<HTMLElement>(`.solaris-table__row--header [data-col-idx=\"${i}\"]`);\n }\n\n private pxMinWidth(c: SolarisTableColumn, root: HTMLElement): number {\n return c.minWidth ? this.toPx(c.minWidth, root) : 0;\n }\n\n private pxFixedWidth(c: SolarisTableColumn, root: HTMLElement): number | null {\n if (!c.width) return null;\n const w = c.width.trim();\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\n const n = Number.parseFloat(w);\n return Number.isFinite(n) ? n : null;\n }\n\n private reservedWidthExcept(i: number, root: HTMLElement): number {\n const cols = this.columns();\n const manualMap = this.manualPx();\n\n let reserved = 0;\n\n for (let j = 0; j < cols.length; j++) {\n if (j === i) continue;\n const c = cols[j];\n\n if (c.width) {\n const px = this.pxFixedWidth(c, root);\n if (px != null) {\n reserved += px;\n continue;\n }\n\n const cell = this.getHeaderCell(j);\n reserved += Math.round(cell?.getBoundingClientRect().width ?? 48);\n continue;\n }\n\n const manual = manualMap[j];\n if (manual != null) {\n reserved += manual;\n continue;\n }\n\n if (c.grow) {\n reserved += this.pxMinWidth(c, root);\n continue;\n }\n\n reserved += 48;\n }\n\n return reserved;\n }\n\n public readField(row: any, path?: string): any {\n if (!path) return '';\n const parts = path.split('.');\n let cur = row;\n\n for (const p of parts) {\n if (cur == null) return '';\n cur = cur[p];\n }\n\n return cur ?? '';\n }\n\n private computeResizeMax(i: number, min: number, hardMax: number, root: HTMLElement): number {\n const available = root.clientWidth;\n const reserved = this.reservedWidthExcept(i, root);\n\n const safety = 8;\n const fitMax = Math.max(min, Math.floor(available - reserved - safety));\n\n return Math.max(min, Math.min(hardMax, fitMax));\n }\n\n public registerRowKey(key: SolarisRowKey): void {\n const next = new Set(this.rowKeys());\n next.add(key);\n this.rowKeys.set(next);\n }\n\n public unregisterRowKey(key: SolarisRowKey): void {\n const next = new Set(this.rowKeys());\n next.delete(key);\n this.rowKeys.set(next);\n }\n\n public onToggleSelectAll(checked: boolean): void {\n const keys = Array.from(this.rowKeys());\n const sel = new Set(this.selectionSig());\n\n if (checked) keys.forEach((k) => sel.add(k));\n else keys.forEach((k) => sel.delete(k));\n\n const out = Array.from(sel);\n this.selectionSig.set(out);\n this.selectionChange.emit(out);\n }\n\n public toggleRow(key: SolarisRowKey, checked: boolean): void {\n const sel = new Set(this.selectionSig());\n if (checked) sel.add(key);\n else sel.delete(key);\n\n const out = Array.from(sel);\n this.selectionSig.set(out);\n this.selectionChange.emit(out);\n }\n\n public isSelected(key: SolarisRowKey): boolean {\n return this.selectionSetSig().has(key);\n }\n\n public getSortFor(col: SolarisTableColumn): SolarisSort | undefined {\n const key = col.sortKey ?? col.field;\n if (!key) return undefined;\n return this.sortState().find((s) => s.key === key);\n }\n\n public onHeaderSortClick(ev: MouseEvent, col: SolarisTableColumn): void {\n ev.stopPropagation();\n\n if (!col.sortable) return;\n\n const key = col.sortKey ?? col.field;\n if (!key) return;\n\n const multi = ev.shiftKey;\n let next = [...this.sortState()];\n\n if (!multi) next = next.filter((s) => s.key === key);\n\n const idx = next.findIndex((s) => s.key === key);\n if (idx === -1) next.push({ key, direction: 'asc', order: next.length + 1 });\n else {\n const cur = next[idx];\n if (cur.direction === 'asc') next[idx] = { ...cur, direction: 'desc' };\n else next.splice(idx, 1);\n }\n\n next = next.map((s, k) => ({ ...s, order: k + 1 }));\n this.sortState.set(next);\n this.sortChange.emit(next);\n }\n\n public ariaSort(col: SolarisTableColumn): 'none' | 'ascending' | 'descending' {\n const s = this.getSortFor(col);\n if (!s) return 'none';\n return s.direction === 'asc' ? 'ascending' : 'descending';\n }\n\n public firstPage(): void {\n this.pageChange.emit({ pageIndex: 0, pageSize: this.pageSize });\n }\n public prevPage(): void {\n this.pageChange.emit({ pageIndex: Math.max(0, this.pageIndex - 1), pageSize: this.pageSize });\n }\n public nextPage(): void {\n this.pageChange.emit({\n pageIndex: Math.min(this.totalPages - 1, this.pageIndex + 1),\n pageSize: this.pageSize,\n });\n }\n public lastPage(): void {\n this.pageChange.emit({ pageIndex: this.totalPages - 1, pageSize: this.pageSize });\n }\n public changePageSize(size: number): void {\n this.pageChange.emit({ pageIndex: 0, pageSize: size });\n }\n\n private buildGridTemplateColumns(): string {\n const cols = this.columns();\n const measured = this.measuredPx();\n const root = this.tableRoot?.nativeElement;\n\n const minPx = (c: SolarisTableColumn) => (root && c.minWidth ? this.toPx(c.minWidth, root) : 0);\n const fixedWidthPx = (c: SolarisTableColumn): number | null => {\n if (!root || !c.width) return null;\n const w = c.width.trim();\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\n const n = Number.parseFloat(w);\n return Number.isFinite(n) ? n : null;\n };\n\n if (!measured.length || measured.length !== cols.length) {\n return cols\n .map((c) => {\n if (c.width) return c.width;\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\n if (root && c.maxWidth) {\n const cap = this.toPx(c.maxWidth, root);\n return `minmax(0px, ${cap}px)`;\n }\n return 'minmax(0px, 1fr)';\n })\n .join(' ');\n }\n\n const available = root?.clientWidth ?? 0;\n\n const rawPx: number[] = [];\n const growMinSum = cols.reduce((acc, c) => acc + (c.grow ? minPx(c) : 0), 0);\n\n let fixedSum = 0;\n\n for (let i = 0; i < cols.length; i++) {\n const c = cols[i];\n\n if (c.width) {\n const px = fixedWidthPx(c);\n rawPx[i] = px ?? 0;\n fixedSum += px ?? 0;\n continue;\n }\n\n if (c.grow) {\n rawPx[i] = 0;\n continue;\n }\n\n const manual = this.manualPx()[i];\n const px = manual ?? (measured[i] > 0 ? measured[i] : 180);\n rawPx[i] = px;\n fixedSum += px;\n }\n\n if (!available) {\n return cols\n .map((c, i) => {\n if (c.width) return c.width;\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\n return `${rawPx[i]}px`;\n })\n .join(' ');\n }\n\n const fixedBudget = Math.max(0, available - growMinSum);\n const scale = fixedSum > fixedBudget && fixedSum > 0 ? fixedBudget / fixedSum : 1;\n\n return cols\n .map((c, i) => {\n if (c.width) {\n return c.width;\n }\n\n if (c.grow) {\n const min = minPx(c);\n return `minmax(${min}px, 1fr)`;\n }\n\n const px = Math.max(48, Math.floor(rawPx[i] * scale));\n return `${px}px`;\n })\n .join(' ');\n }\n}\n","<ng-content select=\"solaris-table-filters\"></ng-content>\n\n<div\n class=\"solaris-table\"\n [class.solaris-table--grid]=\"variant === 'grid'\"\n [class.solaris-table--zebra]=\"variant === 'zebra'\"\n>\n <div #tableRoot class=\"solaris-table__inner\" role=\"table\" [attr.aria-rowcount]=\"rowsCount\">\n <div class=\"solaris-table__header\" role=\"rowgroup\">\n <div\n class=\"solaris-table__row solaris-table__row--header\"\n role=\"row\"\n [style.gridTemplateColumns]=\"gridTemplateColumns()\"\n >\n @for (col of columns(); track col.id; let i = $index) {\n <div\n class=\"solaris-table__cell solaris-table__cell--header\"\n role=\"columnheader\"\n [attr.data-col-idx]=\"i\"\n [attr.aria-sort]=\"ariaSort(col)\"\n [style.--solaris-col-max]=\"col.maxWidth || null\"\n >\n <div class=\"solaris-table__header-content\">\n <span class=\"solaris-table__header-left\">\n @if (selectable && i === 0) {\n <span class=\"solaris-table__select-prefix\" (click)=\"$event.stopPropagation()\">\n <solaris-checkbox\n variant=\"square\"\n color=\"primary\"\n size=\"sm\"\n [ngModel]=\"selectAllChecked()\"\n (ngModelChange)=\"onToggleSelectAll($event)\"\n [indeterminate]=\"selectAllIndeterminate()\"\n >\n </solaris-checkbox>\n </span>\n }\n\n @if (col.headerIconClass) {\n <i [class]=\"col.headerIconClass\"></i>\n }\n\n @if (col.headerDef?.template) {\n <ng-container [ngTemplateOutlet]=\"col.headerDef?.template\"></ng-container>\n } @else {\n @if (col.headerKey) {\n <span class=\"solaris-table__header-text\">{{ col.headerKey | translate }}</span>\n } @else {\n <span class=\"solaris-table__header-text\">{{ col.header }}</span>\n }\n }\n </span>\n\n @if (col.sortable) {\n <button\n type=\"button\"\n class=\"solaris-table__sort-btn\"\n (click)=\"onHeaderSortClick($event, col)\"\n >\n <span class=\"solaris-table__sort\">\n <i\n class=\"ph ph-arrow-up\"\n [class.is-active]=\"getSortFor(col)?.direction === 'asc'\"\n ></i>\n <i\n class=\"ph ph-arrow-down\"\n [class.is-active]=\"getSortFor(col)?.direction === 'desc'\"\n ></i>\n\n @if (getSortFor(col)?.order && sortState().length > 1) {\n <span class=\"solaris-table__sort-order\">{{ getSortFor(col)!.order }}</span>\n }\n </span>\n </button>\n }\n </div>\n\n @if (col.resizable && !col.width) {\n <span\n class=\"solaris-table__col-resizer\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n (pointerdown)=\"onResizeStart($event, i)\"\n (dblclick)=\"clearManualWidth(i)\"\n (click)=\"$event.stopPropagation()\"\n >\n </span>\n }\n </div>\n }\n </div>\n </div>\n\n <div class=\"solaris-table__body\" role=\"rowgroup\">\n @if (loading) {\n <solaris-table-skeleton\n [rows]=\"pageSize\"\n [columns]=\"columns().length\"\n [selectable]=\"selectable\"\n [gridTemplateColumns]=\"gridTemplateColumns()\"\n >\n </solaris-table-skeleton>\n } @else {\n @if (rowsCount === 0) {\n <div class=\"solaris-table__empty\" role=\"row\">\n <i [class]=\"emptyIconClass\"></i>\n <div class=\"solaris-table__empty-text\">{{ 'ui.solaris.tables.empty' | translate }}</div>\n </div>\n } @else {\n <ng-content select=\"solaris-row\"></ng-content>\n }\n }\n </div>\n\n <div class=\"solaris-table__footer\" role=\"rowgroup\">\n <div class=\"solaris-table__footer-left\">\n @if (selectedCount() > 0) {\n <div class=\"solaris-table__selected\">\n {{ selectedCount() }} {{ 'ui.solaris.tables.selection.selected' | translate }}\n </div>\n } @else if (tableDescription != null) {\n <div class=\"solaris-table__description\">\n {{ tableDescription }}\n </div>\n }\n </div>\n\n <div class=\"solaris-table__footer-right\">\n <div class=\"solaris-table__rows-per-page\">\n <span>{{ 'ui.solaris.tables.pagination.rowsPerPage' | translate }}:</span>\n <select [ngModel]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n @for (opt of pageSizeOptions; track opt) {\n <option [ngValue]=\"opt\">{{ opt }}</option>\n }\n </select>\n </div>\n\n <div class=\"solaris-table__range\">\n {{ rangeStart }}–{{ rangeEnd }} {{ 'ui.solaris.common.of' | translate }} {{ length }}\n </div>\n\n <div class=\"solaris-table__pager\">\n <button type=\"button\" (click)=\"firstPage()\" [disabled]=\"pageIndex === 0\">\n <i class=\"ph ph-caret-line-left\"></i>\n </button>\n <button type=\"button\" (click)=\"prevPage()\" [disabled]=\"pageIndex === 0\">\n <i class=\"ph ph-caret-left\"></i>\n </button>\n <button type=\"button\" (click)=\"nextPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\n <i class=\"ph ph-caret-right\"></i>\n </button>\n <button type=\"button\" (click)=\"lastPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\n <i class=\"ph ph-caret-line-right\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Host,\n Input,\n OnInit,\n Optional,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisRowKey } from '../../model/table/table.types';\nimport { SolarisTable } from '../table/table';\n\n@Component({\n selector: 'solaris-row',\n standalone: true,\n imports: [FormsModule, SolarisCheckbox, SolarisTranslationPipe, NgTemplateOutlet],\n templateUrl: './table-row.html',\n styleUrls: ['./table-row.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-row-host' },\n})\nexport class SolarisRowComponent implements OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() rowKey!: SolarisRowKey;\n @Input({ required: true }) value!: any;\n\n constructor(@Optional() @Host() public readonly table: SolarisTable) {}\n\n ngOnInit(): void {\n if (!this.table) {\n throw new Error('<solaris-row> deve ser usado dentro de <solaris-table>.');\n }\n\n if (this.table.selectable && (this.rowKey === null || this.rowKey === undefined)) {\n throw new Error('Quando selectable=true, <solaris-row> exige [rowKey].');\n }\n\n if (this.table.selectable) {\n this.table.registerRowKey(this.rowKey);\n this.destroyRef.onDestroy(() => this.table.unregisterRowKey(this.rowKey));\n }\n }\n\n get isSelected(): boolean {\n return this.table.isSelected(this.rowKey);\n }\n}\n","<div\n class=\"solaris-row\"\n role=\"row\"\n [attr.aria-selected]=\"isSelected\"\n [class.is-selected]=\"isSelected\"\n [style.gridTemplateColumns]=\"table.gridTemplateColumns()\"\n>\n @for (col of table.columns(); track col.id; let i = $index) {\n <div\n class=\"solaris-row__cell\"\n role=\"cell\"\n [attr.data-col-idx]=\"i\"\n [class.align-end]=\"col.align === 'end'\"\n [class.align-center]=\"col.align === 'center'\"\n [style.--solaris-col-max]=\"col.maxWidth || null\"\n >\n @if (table.selectable && i === 0) {\n <span class=\"solaris-row__select-prefix\">\n <solaris-checkbox\n variant=\"square\"\n color=\"primary\"\n size=\"sm\"\n [ngModel]=\"isSelected\"\n (ngModelChange)=\"table.toggleRow(rowKey, $event)\"\n [attr.aria-label]=\"'ui.solaris.tables.aria.selectRow' | translate\"\n />\n </span>\n }\n\n <span class=\"solaris-row__label\">\n @if (col.headerKey) {\n {{ col.headerKey | translate }}\n } @else {\n {{ col.header }}\n }\n </span>\n\n <span class=\"solaris-row__content\">\n @if (col.cellDef?.template) {\n <ng-container\n [ngTemplateOutlet]=\"col.cellDef!.template\"\n [ngTemplateOutletContext]=\"{ $implicit: value, row: value, col: col }\"\n />\n } @else {\n {{ table.readField(value, col.field) }}\n }\n </span>\n </div>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-header]',\n standalone: true,\n})\nexport class SolarisHeaderDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-footer]',\n standalone: true,\n})\nexport class SolarisFooterDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-body]',\n standalone: true,\n})\nexport class SolarisBodyDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SolarisDivider } from '../../divider/component/divider';\n\n@Component({\n selector: 'solaris-page',\n standalone: true,\n imports: [NgClass, SolarisDivider],\n templateUrl: './page.html',\n styleUrls: ['./page.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-page-host',\n },\n})\nexport class SolarisPage {\n @Input() stickyHeader = false;\n @Input() container: 'contained' | 'fluid' = 'contained';\n}\n","<div class=\"solaris-page\" [ngClass]=\"['container-' + container]\">\n <header class=\"solaris-page__header\" [ngClass]=\"{ 'is-sticky': stickyHeader }\">\n <ng-content select=\"[solaris-header]\"></ng-content>\n @if (stickyHeader) {\n <solaris-divider class=\"solaris-page__header-divider\" />\n }\n </header>\n\n <main class=\"solaris-page__body\">\n <ng-content select=\"[solaris-body]\"></ng-content>\n </main>\n\n <footer class=\"solaris-page__footer\">\n <solaris-divider class=\"solaris-page__footer-divider\" />\n\n <div class=\"solaris-page__footer-content\">\n <ng-content select=\"[solaris-footer]\"></ng-content>\n </div>\n </footer>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-description]',\n standalone: true,\n})\nexport class SolarisPageHeaderDescriptionDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-breadcrumb]',\n standalone: true,\n})\nexport class SolarisPageHeaderBreadcrumbDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-title]',\n standalone: true,\n})\nexport class SolarisPageHeaderTitleDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'solaris-page-header-title',\n standalone: true,\n imports: [NgClass],\n templateUrl: './page-header-title.html',\n styleUrls: ['./page-header-title.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPageHeaderTitle {\n @Input() title = '';\n @Input() overline?: string;\n @Input() description?: string;\n @Input() size: 'md' | 'lg' = 'lg';\n}\n","<div class=\"solaris-page-title\" [ngClass]=\"['size-' + size]\">\n @if (overline) {\n <div class=\"solaris-page-title__overline\">{{ overline }}</div>\n }\n\n <h1 class=\"solaris-page-title__title\">{{ title }}</h1>\n\n @if (description) {\n <p class=\"solaris-page-title__description\">{{ description }}</p>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-actions]',\n standalone: true,\n})\nexport class SolarisPageHeaderActionsDirective {}\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SolarisPageHeaderDescriptionDirective } from '../directives/solaris-header-description.directive';\nimport { SolarisPageHeaderBreadcrumbDirective } from '../directives/solaris-header-breadcrumb.directive';\nimport { SolarisPageHeaderActionsDirective } from '../directives/solaris-header-actions.directive';\nimport { SolarisPageHeaderTitleDirective } from '../directives/solaris-header-title.directive';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\n\n@Component({\n selector: 'solaris-page-header',\n standalone: true,\n imports: [NgClass],\n templateUrl: './page-header.html',\n styleUrls: ['./page-header.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPageHeader {\n @Input() layout: 'split' | 'stacked' = 'split';\n @Input() density: SolarisSizePreset = 'md';\n\n @ContentChild(SolarisPageHeaderTitleDirective) titleSlot?: SolarisPageHeaderTitleDirective;\n @ContentChild(SolarisPageHeaderActionsDirective) actionsSlot?: SolarisPageHeaderActionsDirective;\n @ContentChild(SolarisPageHeaderBreadcrumbDirective)\n breadcrumbSlot?: SolarisPageHeaderBreadcrumbDirective;\n @ContentChild(SolarisPageHeaderDescriptionDirective)\n descriptionSlot?: SolarisPageHeaderDescriptionDirective;\n}\n","<header class=\"solaris-page-header\" [ngClass]=\"['layout-' + layout, 'density-' + density]\">\n <div class=\"solaris-page-header__left\">\n <div class=\"solaris-page-header__breadcrumb\">\n <ng-content select=\"[solaris-page-header-breadcrumb]\" />\n </div>\n\n <div class=\"solaris-page-header__titles\">\n <div class=\"solaris-page-header__title-row\">\n <h1 class=\"solaris-page-header__title\">\n <span class=\"solaris-page-header__title-slot\">\n <ng-content select=\"[solaris-page-header-title]\" />\n </span>\n\n <span class=\"solaris-page-header__title-meta\">\n <ng-content select=\"[solaris-page-header-title-meta]\" />\n </span>\n </h1>\n\n <div class=\"solaris-page-header__title-meta\">\n <ng-content select=\"[solaris-page-header-title-meta]\" />\n </div>\n </div>\n\n <p class=\"solaris-page-header__description\">\n <ng-content select=\"[solaris-page-header-description]\" />\n </p>\n </div>\n </div>\n\n <div class=\"solaris-page-header__actions\">\n <ng-content select=\"[solaris-page-header-actions]\" />\n </div>\n</header>\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { SolarisRadiusInput } from '../model/button.type';\n\nfunction resolveRadius(v: SolarisRadiusInput): string {\n const s = String(v).trim();\n switch (s) {\n case 'none':\n return '0';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return s;\n }\n}\n\n@Directive({\n selector: '[solaris-button-group]',\n standalone: true,\n})\nexport class ButtonGroupDirective {\n private _radius: SolarisRadiusInput | null = null;\n\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\n this._radius = v == null || String(v).trim() === '' ? null : v;\n }\n\n @HostBinding('attr.solaris-button-group') readonly attr = '';\n @HostBinding('style.--solaris-button-group-radius') get groupRadius() {\n return this._radius ? resolveRadius(this._radius) : null;\n }\n}\n","import { InjectionToken, Signal } from '@angular/core';\n\nimport { RadioCompareWith } from '../model/radio.type';\nimport { SolarisRadio } from '../component/radio';\n\nexport interface SolarisRadioGroupApi {\n readonly name: Signal<string>;\n readonly disabled: Signal<boolean>;\n readonly compareWith: Signal<RadioCompareWith>;\n\n notifyTouched(): void;\n select(radio: SolarisRadio): void;\n isSelected(value: unknown): boolean;\n tabIndexFor(radio: SolarisRadio): number;\n handleKeydown(event: KeyboardEvent, current: SolarisRadio): void;\n}\n\nexport const SOLARIS_RADIO_GROUP = new InjectionToken<SolarisRadioGroupApi>('SOLARIS_RADIO_GROUP');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewChild,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n SolarisSizePreset,\n SolarisColorPreset,\n} from '../../../common/model/common-configurations.type';\nimport { RadioAppearance, RadioColorInput, RadioVariant } from '../model/radio.type';\nimport { SOLARIS_RADIO_GROUP } from '../token/radio-group.token';\nimport { uniqueId } from '../../../common/helper/unique-id';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\n@Component({\n selector: 'solaris-radio',\n standalone: true,\n templateUrl: './radio.html',\n styleUrls: ['./radio.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisRadio),\n multi: true,\n },\n ],\n host: {\n class: 'solaris-radio-host',\n '[attr.data-size]': 'size()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-checked]': 'checked() ? \"true\" : null',\n '[style.--solaris-radio-custom]': 'customAccent()',\n },\n})\nexport class SolarisRadio implements ControlValueAccessor {\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly inputName = input<string | null>(null, { alias: 'name' });\n readonly size = input<SolarisSizePreset>('md');\n readonly variant = input<RadioVariant>('dot');\n readonly appearance = input<RadioAppearance>('solid');\n readonly color = input<RadioColorInput>('primary');\n readonly value = input<unknown>(true);\n readonly checkedInput = input<boolean>(false, { alias: 'checked' });\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n\n readonly checkedChange = output<boolean>();\n\n @ViewChild('native', { static: true })\n private readonly native?: ElementRef<HTMLInputElement>;\n\n private readonly group = inject(SOLARIS_RADIO_GROUP, { optional: true });\n private readonly autoId = uniqueId('solaris-radio');\n private readonly autoName = uniqueId('solaris-radio-name');\n\n private readonly localChecked = signal(false);\n private readonly cvaDisabled = signal(false);\n\n readonly id = computed(() => this.inputId() ?? this.autoId);\n readonly name = computed(() => this.group?.name() ?? this.inputName() ?? this.autoName);\n\n readonly disabled = computed(() => {\n return !!this.group?.disabled() || this.disabledInput() || this.cvaDisabled();\n });\n\n readonly checked = computed(() => {\n if (this.group) return this.group.isSelected(this.value());\n return this.localChecked();\n });\n\n readonly tabIndex = computed(() => {\n if (this.group) return this.group.tabIndexFor(this);\n return this.disabled() ? -1 : 0;\n });\n\n readonly customAccent = computed(() => {\n if (this.colorKey() !== 'custom') return null;\n const raw = String(this.color() ?? '').trim();\n return !raw || raw === 'custom' ? null : raw;\n });\n\n readonly colorKey = computed(() => {\n const raw = String(this.color() ?? '').trim();\n if (!raw || raw === 'custom') return 'custom';\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\n });\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n if (this.group) return;\n this.localChecked.set(this.checkedInput());\n });\n }\n\n public onNativeChange() {\n if (this.disabled()) return;\n\n if (this.group) {\n const wasChecked = this.checked();\n this.group.select(this);\n if (!wasChecked) this.checkedChange.emit(true);\n return;\n }\n\n if (this.localChecked()) {\n this.onTouched();\n return;\n }\n\n this.localChecked.set(true);\n this.onChange(true);\n this.checkedChange.emit(true);\n this.onTouched();\n }\n\n public onNativeKeydown(event: KeyboardEvent) {\n if (this.disabled()) return;\n\n if (this.group) {\n this.group.handleKeydown(event, this);\n return;\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.onNativeChange();\n }\n }\n\n public onBlur() {\n if (this.group) {\n this.group.notifyTouched();\n return;\n }\n this.onTouched();\n }\n\n public focus() {\n this.native?.nativeElement.focus();\n }\n\n writeValue(value: boolean | null): void {\n if (this.group) return;\n this.localChecked.set(!!value);\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n}\n","<label class=\"solaris-radio\">\n <input\n #native\n class=\"solaris-radio__native\"\n type=\"radio\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.tabindex]=\"tabIndex()\"\n (change)=\"onNativeChange()\"\n (keydown)=\"onNativeKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"solaris-radio__control\" aria-hidden=\"true\">\n <span class=\"solaris-radio__inner\" aria-hidden=\"true\"></span>\n </span>\n\n <span class=\"solaris-radio__content\">\n <ng-content />\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n QueryList,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SOLARIS_RADIO_GROUP, SolarisRadioGroupApi } from '../../token/radio-group.token';\nimport { SolarisSizeValue } from '../../../../common/model/common-configurations.type';\nimport { RadioCompareWith, RadioGroupOrientation } from '../../model/radio.type';\nimport { uniqueId } from '../../../../common/helper/unique-id';\nimport { SolarisRadio } from '../../component/radio';\n\n@Component({\n selector: 'solaris-radio-group',\n standalone: true,\n templateUrl: './radio-group.html',\n styleUrls: ['./radio-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisRadioGroup),\n multi: true,\n },\n {\n provide: SOLARIS_RADIO_GROUP,\n useExisting: forwardRef(() => SolarisRadioGroup),\n },\n ],\n host: {\n class: 'solaris-radio-group-host',\n role: 'radiogroup',\n '[attr.data-orientation]': 'orientation()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-label]': 'ariaLabel() ?? null',\n '[attr.aria-orientation]': 'orientation()',\n '[style.--solaris-radio-group-gap]': 'resolvedGap()',\n },\n})\nexport class SolarisRadioGroup implements ControlValueAccessor, AfterContentInit, SolarisRadioGroupApi {\n readonly gap = input<SolarisSizeValue>('md');\n readonly compareWith = input<RadioCompareWith>(Object.is);\n readonly nameInput = input<string | null>(null, { alias: 'name' });\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n readonly orientation = input<RadioGroupOrientation>('vertical');\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n readonly valueChange = output<unknown>();\n\n @ContentChildren(forwardRef(() => SolarisRadio), { descendants: true })\n private readonly radiosQuery?: QueryList<SolarisRadio>;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly autoName = uniqueId('solaris-radio-group');\n private readonly cvaDisabled = signal(false);\n private readonly internalValue = signal<unknown>(null);\n private readonly radiosVersion = signal(0);\n\n readonly name = computed(() => this.nameInput() ?? this.autoName);\n readonly disabled = computed(() => this.disabledInput() || this.cvaDisabled());\n\n readonly resolvedGap = computed(() => {\n const value = String(this.gap() ?? 'md').trim();\n switch (value) {\n case 'sm':\n return 'var(--solaris-space-2)';\n case 'md':\n return 'var(--solaris-space-3)';\n case 'lg':\n return 'var(--solaris-space-4)';\n default:\n return value;\n }\n });\n\n private onChange: (value: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngAfterContentInit(): void {\n this.bumpRadiosVersion();\n\n this.radiosQuery?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.bumpRadiosVersion());\n }\n\n public isSelected(value: unknown): boolean {\n return this.compareWith()(this.internalValue(), value);\n }\n\n public select(radio: SolarisRadio): void {\n if (this.disabled() || radio.disabled()) return;\n\n const nextValue = radio.value();\n if (!this.isSelected(nextValue)) {\n this.internalValue.set(nextValue);\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n }\n\n this.onTouched();\n this.bumpRadiosVersion();\n }\n\n public tabIndexFor(radio: SolarisRadio): number {\n this.radiosVersion();\n\n if (this.disabled() || radio.disabled()) return -1;\n\n const enabled = this.enabledRadios();\n if (!enabled.length) return -1;\n\n const selected = enabled.find((item) => this.isSelected(item.value()));\n const target = selected ?? enabled[0];\n\n return target === radio ? 0 : -1;\n }\n\n public handleKeydown(event: KeyboardEvent, current: SolarisRadio): void {\n if (this.disabled()) return;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.move(current, +1);\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.move(current, -1);\n break;\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.select(current);\n break;\n default:\n break;\n }\n }\n\n public notifyTouched(): void {\n this.onTouched();\n }\n\n writeValue(value: unknown): void {\n this.internalValue.set(value);\n this.bumpRadiosVersion();\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n this.bumpRadiosVersion();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n private move(current: SolarisRadio, direction: 1 | -1): void {\n const enabled = this.enabledRadios();\n if (!enabled.length) return;\n\n const currentIndex = enabled.indexOf(current);\n const startIndex = Math.max(currentIndex, 0);\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\n const next = enabled[nextIndex];\n\n this.select(next);\n next.focus();\n }\n\n private enabledRadios(): SolarisRadio[] {\n this.radiosVersion();\n return (this.radiosQuery?.toArray() ?? []).filter((radio) => !radio.disabled());\n }\n\n private bumpRadiosVersion(): void {\n this.radiosVersion.update((value) => value + 1);\n }\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-avatar-overlay]',\n standalone: true,\n})\nexport class SolarisAvatarOverlayDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostBinding,\n Signal,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass } from '@angular/common';\n\nimport {\n SOLARIS_TRANSLATION,\n SOLARIS_TRANSLATION_CONFIGURATION,\n SolarisTranslationConfiguration,\n TranslationInterface,\n} from '@educarehq/solaris-services';\nimport {\n SolarisPresenceQuietHours,\n SolarisPresenceState,\n TimeContext,\n} from '../../../presence-avatar/model/presence-avatar.type';\nimport { SolarisAvatarShape } from '../../../avatar/model/avatar.type';\n\n@Component({\n selector: 'solaris-avatar-presence',\n standalone: true,\n imports: [NgClass],\n templateUrl: './avatar-presence.html',\n styleUrls: ['./avatar-presence.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarPresence {\n private readonly translation = inject<TranslationInterface | null>(SOLARIS_TRANSLATION, {\n optional: true,\n });\n private readonly translationConfiguration = inject<SolarisTranslationConfiguration | null>(\n SOLARIS_TRANSLATION_CONFIGURATION,\n { optional: true },\n );\n private readonly destroyRef = inject(DestroyRef);\n\n readonly presence = input<SolarisPresenceState>('offline');\n readonly timezone = input<string | null>(null);\n readonly lastSeenAt = input<string | Date | number | null>(null);\n readonly quietHours = input<SolarisPresenceQuietHours>(false);\n readonly workHoursStart = input(9);\n readonly workHoursEnd = input(18);\n\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n @HostBinding('class')\n protected readonly hostClass = 'solaris-avatar-presence-host';\n\n private readonly nowTick = signal(Date.now());\n\n private readonly fallbackLanguage = this.translationConfiguration?.defaultLanguage ?? 'en-US';\n\n private readonly activeLanguage: Signal<string> = this.translation\n ? toSignal(this.translation.languageChanges(), {\n initialValue: this.translation.language(),\n })\n : signal(this.fallbackLanguage);\n\n private readonly browserTimezone =\n typeof Intl === 'undefined' ? null : Intl.DateTimeFormat().resolvedOptions().timeZone || null;\n\n constructor() {\n if (globalThis.window !== undefined) {\n const intervalId = globalThis.setInterval(() => {\n this.nowTick.set(Date.now());\n }, 60_000);\n\n this.destroyRef.onDestroy(() => {\n globalThis.clearInterval(intervalId);\n });\n }\n }\n\n readonly normalizedTimezone = computed(() => this.normalize(this.timezone()));\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\n readonly parsedLastSeenAt = computed(() => this.parseDate(this.lastSeenAt()));\n\n readonly effectiveTimezone = computed(() => {\n return this.normalizedTimezone() || this.browserTimezone || null;\n });\n\n readonly intlLocale = computed(() => {\n const lang = this.activeLanguage() || this.fallbackLanguage || 'en-US';\n return lang.replace('_', '-');\n });\n\n readonly translationPrefix = computed(() => {\n const uiScope = this.translationConfiguration?.uiScope ?? 'ui';\n return `${uiScope}.solaris.avatar.presence`;\n });\n\n readonly normalizedWorkHours = computed(() => {\n const start = this.coerceHour(this.workHoursStart(), 9, 0, 23);\n const end = this.coerceHour(this.workHoursEnd(), 18, 1, 24);\n\n if (end <= start) {\n return { start: 9, end: 18 };\n }\n\n return { start, end };\n });\n\n readonly currentTimeContext = computed<TimeContext | null>(() => {\n this.nowTick();\n this.activeLanguage();\n\n const timezone = this.effectiveTimezone();\n if (!timezone || typeof Intl === 'undefined') {\n return null;\n }\n\n try {\n const formatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n weekday: 'short',\n hourCycle: 'h23',\n timeZone: timezone,\n });\n\n const parts = formatter.formatToParts(new Date(this.nowTick()));\n const hour = Number(parts.find((part) => part.type === 'hour')?.value ?? Number.NaN);\n const weekday = parts.find((part) => part.type === 'weekday')?.value ?? '';\n\n if (Number.isNaN(hour)) {\n return null;\n }\n\n const weekdayIndex = this.resolveWeekdayIndex(weekday);\n\n return {\n hour,\n timezone,\n isWeekend: weekdayIndex === 0 || weekdayIndex === 6,\n };\n } catch {\n return null;\n }\n });\n\n readonly isQuietHoursAuto = computed(() => {\n const context = this.currentTimeContext();\n if (!context) {\n return false;\n }\n\n if (context.isWeekend) {\n return true;\n }\n\n const { start, end } = this.normalizedWorkHours();\n return context.hour < start || context.hour >= end;\n });\n\n readonly showQuietHoursAccent = computed(() => {\n const mode = this.quietHours();\n\n if (mode === true) return true;\n if (mode === false) return false;\n\n return this.isQuietHoursAuto();\n });\n\n readonly showDndSlash = computed(() => this.presence() === 'dnd');\n\n readonly stateClasses = computed(() => [\n `state-${this.presence()}`,\n this.showQuietHoursAccent() ? 'has-quiet-hours' : '',\n ]);\n\n readonly titleText = computed(() => {\n if (this.ariaHidden()) return null;\n\n this.activeLanguage();\n return this.buildSemanticText();\n });\n\n readonly resolvedAriaLabel = computed(() => {\n if (this.ariaHidden()) return null;\n\n this.activeLanguage();\n return this.normalizedAriaLabel() || this.buildSemanticText();\n });\n\n private buildSemanticText(): string {\n const parts: string[] = [this.translate(`states.${this.presence()}`)];\n\n if (this.presence() === 'offline') {\n const lastSeen = this.getLastSeenLabel(this.parsedLastSeenAt());\n if (lastSeen) {\n parts.push(lastSeen);\n }\n }\n\n if (this.showQuietHoursAccent()) {\n parts.push(this.translate('quietHours'));\n }\n\n return parts.join(' • ');\n }\n\n private getLastSeenLabel(value: Date | null): string | null {\n if (!value || Number.isNaN(value.getTime())) {\n return null;\n }\n\n const now = new Date(this.nowTick());\n const diffMs = Math.max(0, now.getTime() - value.getTime());\n\n const minuteMs = 60_000;\n const hourMs = 60 * minuteMs;\n\n if (diffMs < minuteMs) {\n return this.translate('lastSeen.now');\n }\n\n if (diffMs < hourMs) {\n return this.translate('lastSeen.minutesAgo', {\n minutes: Math.floor(diffMs / minuteMs),\n });\n }\n\n if (diffMs < 6 * hourMs) {\n return this.translate('lastSeen.hoursAgo', {\n hours: Math.floor(diffMs / hourMs),\n });\n }\n\n const timeLabel = this.formatDate(value, {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n if (this.isSameCalendarDay(value, now)) {\n return this.translate('lastSeen.todayAt', {\n time: timeLabel,\n });\n }\n\n const yesterday = new Date(now);\n yesterday.setDate(now.getDate() - 1);\n\n if (this.isSameCalendarDay(value, yesterday)) {\n return this.translate('lastSeen.yesterdayAt', {\n time: timeLabel,\n });\n }\n\n return this.translate('lastSeen.onDate', {\n date: this.formatDate(value, {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n }),\n });\n }\n\n private formatDate(value: Date, options: Intl.DateTimeFormatOptions): string {\n try {\n return new Intl.DateTimeFormat(this.intlLocale(), options).format(value);\n } catch {\n return value.toLocaleString();\n }\n }\n\n private translate(key: string, params?: Record<string, unknown>): string {\n const fullKey = `${this.translationPrefix()}.${key}`;\n\n if (this.translation) {\n const translated = this.translation.translate(fullKey, params);\n if (translated && translated !== fullKey) {\n return translated;\n }\n }\n\n return this.fallbackTranslate(key, params);\n }\n\n private fallbackTranslate(key: string, params?: Record<string, unknown>): string {\n const isPt = this.intlLocale().toLowerCase().startsWith('pt');\n\n const dict = isPt\n ? {\n 'states.online': 'Online',\n 'states.offline': 'Offline',\n 'states.away': 'Ausente',\n 'states.busy': 'Ocupado',\n 'states.dnd': 'Não perturbe',\n quietHours: 'Fora do expediente local',\n 'lastSeen.now': 'Visto agora',\n 'lastSeen.minutesAgo': `Visto há ${params?.['minutes'] ?? 0} min`,\n 'lastSeen.hoursAgo': `Visto há ${params?.['hours'] ?? 0} h`,\n 'lastSeen.todayAt': `Visto hoje às ${params?.['time'] ?? ''}`,\n 'lastSeen.yesterdayAt': `Visto ontem às ${params?.['time'] ?? ''}`,\n 'lastSeen.onDate': `Visto em ${params?.['date'] ?? ''}`,\n }\n : {\n 'states.online': 'Online',\n 'states.offline': 'Offline',\n 'states.away': 'Away',\n 'states.busy': 'Busy',\n 'states.dnd': 'Do not disturb',\n quietHours: 'Outside local working hours',\n 'lastSeen.now': 'Seen just now',\n 'lastSeen.minutesAgo': `Seen ${params?.['minutes'] ?? 0} min ago`,\n 'lastSeen.hoursAgo': `Seen ${params?.['hours'] ?? 0} h ago`,\n 'lastSeen.todayAt': `Seen today at ${params?.['time'] ?? ''}`,\n 'lastSeen.yesterdayAt': `Seen yesterday at ${params?.['time'] ?? ''}`,\n 'lastSeen.onDate': `Seen on ${params?.['date'] ?? ''}`,\n };\n\n return dict[key as keyof typeof dict] ?? key;\n }\n\n private isSameCalendarDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n private resolveWeekdayIndex(weekday: string): number {\n switch (weekday.toLowerCase()) {\n case 'sun':\n return 0;\n case 'mon':\n return 1;\n case 'tue':\n return 2;\n case 'wed':\n return 3;\n case 'thu':\n return 4;\n case 'fri':\n return 5;\n case 'sat':\n return 6;\n default:\n return -1;\n }\n }\n\n private coerceHour(value: unknown, fallback: number, min: number, max: number): number {\n const numeric = Number(value);\n if (Number.isNaN(numeric)) {\n return fallback;\n }\n\n return Math.min(Math.max(Math.floor(numeric), min), max);\n }\n\n private parseDate(value: string | Date | number | null): Date | null {\n if (value == null || value === '') {\n return null;\n }\n\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value;\n }\n\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n\n private normalize(value: unknown): string {\n return String(value ?? '').trim();\n }\n}\n","<span\n class=\"solaris-avatar-presence\"\n [attr.title]=\"titleText()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [ngClass]=\"[...stateClasses(), shape() === 'square' ? 'shape-square' : 'shape-circle']\"\n>\n <span class=\"solaris-avatar-presence__dot\" aria-hidden=\"true\">\n @if (showDndSlash()) {\n <span class=\"solaris-avatar-presence__slash\"></span>\n }\n </span>\n\n @if (showQuietHoursAccent()) {\n <span class=\"solaris-avatar-presence__quiet\" aria-hidden=\"true\">z</span>\n }\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n booleanAttribute,\n computed,\n effect,\n input,\n signal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisAvatarButtonType,\n SolarisAvatarColorInput,\n SolarisAvatarColorPreset,\n SolarisAvatarObjectFit,\n SolarisAvatarRadiusInput,\n SolarisAvatarShape,\n SolarisAvatarSize,\n SolarisAvatarVariant,\n} from '../model/avatar.type';\n\n@Component({\n selector: 'solaris-avatar',\n standalone: true,\n imports: [NgClass],\n templateUrl: './avatar.html',\n styleUrls: ['./avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatar {\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly variant = input<SolarisAvatarVariant>('auto');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n readonly name = input<string | null>(null);\n readonly initials = input<string | null>(null);\n\n readonly color = input<SolarisAvatarColorInput>('surface');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly buttonType = input<SolarisAvatarButtonType>('button');\n readonly asButton = input(false, { transform: booleanAttribute });\n\n readonly radius = input<SolarisAvatarRadiusInput>(null);\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n @HostBinding('class')\n protected readonly hostClass = 'solaris-avatar-host';\n\n private readonly imageFailed = signal(false);\n\n private readonly presetColors = new Set<SolarisAvatarColorPreset>([\n 'primary',\n 'surface',\n 'success',\n 'warning',\n 'error',\n 'info',\n ]);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageFailed.set(false);\n });\n }\n\n readonly normalizedSrc = computed(() => this.normalize(this.src()));\n readonly normalizedAlt = computed(() => this.normalize(this.alt()));\n readonly normalizedName = computed(() => this.normalize(this.name()));\n readonly normalizedInitials = computed(() => this.normalize(this.initials()));\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\n\n readonly resolvedInitials = computed(() => {\n const explicit = this.normalizedInitials();\n if (explicit) return explicit.slice(0, 2).toUpperCase();\n\n const name = this.normalizedName();\n if (!name) return '';\n\n const parts = name\n .split(/\\s+/)\n .map((part) => part.trim())\n .filter(Boolean);\n\n if (!parts.length) return '';\n if (parts.length === 1) return parts[0].slice(0, 1).toUpperCase();\n\n const first = parts[0]?.slice(0, 1) ?? '';\n const last = parts.at(-1)?.slice(0, 1) ?? '';\n\n return `${first}${last}`.toUpperCase();\n });\n\n readonly showImage = computed(() => {\n if (this.loading()) return false;\n\n const variant = this.variant();\n if (variant === 'letter' || variant === 'default') return false;\n\n return !!this.normalizedSrc() && !this.imageFailed();\n });\n\n readonly showLetter = computed(() => {\n if (this.loading()) return false;\n\n const variant = this.variant();\n const initials = this.resolvedInitials();\n\n if (!initials) return false;\n if (variant === 'letter') return true;\n if (variant === 'default') return false;\n\n return !this.showImage();\n });\n\n readonly showDefault = computed(() => {\n if (this.loading()) return false;\n return !this.showImage() && !this.showLetter();\n });\n\n readonly isCustomColor = computed(\n () => !this.presetColors.has(this.color() as SolarisAvatarColorPreset),\n );\n\n readonly colorClass = computed(() => {\n return this.isCustomColor() ? 'color-custom' : `color-${this.color()}`;\n });\n\n readonly customColorValue = computed(() => {\n return this.isCustomColor() ? String(this.color()) : null;\n });\n\n readonly resolvedRadius = computed(() => {\n const radius = this.normalize(this.radius());\n\n if (!radius) {\n return this.shape() === 'circle'\n ? 'var(--solaris-avatar-radius-circle)'\n : 'var(--solaris-avatar-radius-square)';\n }\n\n switch (radius) {\n case 'none':\n return 'var(--solaris-radius-none)';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md)';\n case 'lg':\n return 'var(--solaris-radius-lg)';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return radius;\n }\n });\n\n readonly rootClasses = computed(() => [\n `size-${this.size()}`,\n `shape-${this.shape()}`,\n this.colorClass(),\n this.interactive() ? 'is-interactive' : '',\n this.disabled() ? 'is-disabled' : '',\n this.loading() ? 'is-loading' : '',\n this.asButton() ? 'is-button' : '',\n ]);\n\n readonly accessibleLabel = computed(() => {\n if (this.ariaHidden()) return null;\n\n return (\n this.normalizedAriaLabel() ||\n this.normalizedAlt() ||\n this.normalizedName() ||\n this.resolvedInitials() ||\n 'Avatar'\n );\n });\n\n readonly rootRole = computed(() => {\n if (this.ariaHidden() || this.asButton()) return null;\n return 'img';\n });\n\n onImageLoad(): void {\n this.imageFailed.set(false);\n }\n\n onImageError(): void {\n this.imageFailed.set(true);\n }\n\n private normalize(value: unknown): string {\n return String(value ?? '').trim();\n }\n}\n","@if (asButton()) {\n <button\n class=\"solaris-avatar\"\n [ngClass]=\"rootClasses()\"\n [type]=\"buttonType()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"accessibleLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [style.--solaris-avatar-radius]=\"resolvedRadius()\"\n [style.--solaris-avatar-image-fit]=\"objectFit()\"\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\"\n >\n <span class=\"solaris-avatar__body\">\n @if (loading()) {\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-avatar__image\"\n [src]=\"normalizedSrc()\"\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n } @else if (showLetter()) {\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">\n {{ resolvedInitials() }}\n </span>\n } @else if (showDefault()) {\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\n <svg\n class=\"solaris-avatar__placeholder-svg\"\n viewBox=\"0 0 64 64\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\n <path\n class=\"solaris-avatar__placeholder-body\"\n d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"\n ></path>\n </svg>\n </span>\n }\n </span>\n\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </span>\n </button>\n} @else {\n <span\n class=\"solaris-avatar\"\n [ngClass]=\"rootClasses()\"\n [attr.role]=\"rootRole()\"\n [attr.aria-label]=\"accessibleLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [style.--solaris-avatar-radius]=\"resolvedRadius()\"\n [style.--solaris-avatar-image-fit]=\"objectFit()\"\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\"\n >\n <span class=\"solaris-avatar__body\">\n @if (loading()) {\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-avatar__image\"\n [src]=\"normalizedSrc()\"\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n } @else if (showLetter()) {\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">{{ resolvedInitials() }}</span>\n } @else if (showDefault()) {\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\n <svg\n class=\"solaris-avatar__placeholder-svg\"\n viewBox=\"0 0 64 64\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\n <path\n class=\"solaris-avatar__placeholder-body\"\n d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"\n ></path>\n </svg>\n </span>\n }\n </span>\n\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </span>\n </span>\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n SolarisAvatarButtonType,\n SolarisAvatarColorInput,\n SolarisAvatarObjectFit,\n SolarisAvatarRadiusInput,\n SolarisAvatarShape,\n SolarisAvatarSize,\n SolarisAvatarVariant,\n} from '../../avatar/model/avatar.type';\nimport { SolarisTooltipDirective } from '../../../feedbacks/tooltip/directives/tooltip.directive';\nimport { SolarisAvatarOverlayDirective } from '../../avatar/directives/avatar-overlay.directive';\nimport { SolarisAvatarPresence } from '../../internal/avatar-presence/component/avatar-presence';\nimport { SolarisPresenceQuietHours, SolarisPresenceState } from '../model/presence-avatar.type';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-presence-avatar',\n standalone: true,\n imports: [\n SolarisAvatar,\n SolarisAvatarPresence,\n SolarisTooltipDirective,\n SolarisAvatarOverlayDirective,\n ],\n templateUrl: './presence-avatar.html',\n styleUrls: ['./presence-avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPresenceAvatar {\n readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly variant = input<SolarisAvatarVariant>('auto');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n readonly name = input<string | null>(null);\n readonly initials = input<string | null>(null);\n\n readonly color = input<SolarisAvatarColorInput>('surface');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly buttonType = input<SolarisAvatarButtonType>('button');\n readonly asButton = input(false, { transform: booleanAttribute });\n\n readonly radius = input<SolarisAvatarRadiusInput>(null);\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n readonly presence = input<SolarisPresenceState>('offline');\n readonly presenceAriaLabel = input<string | null>(null);\n readonly timezone = input<string | null>(null);\n readonly lastSeenAt = input<string | Date | number | null>(null);\n readonly quietHours = input<SolarisPresenceQuietHours>('auto');\n readonly workHoursStart = input(9);\n readonly workHoursEnd = input(18);\n\n readonly presenceTooltipKey = computed(() => {\n return this.translationService.translate(\n `ui.solaris.avatar.presence.states.${this.presence()}`,\n );\n });\n}\n","<solaris-avatar\n [src]=\"src()\"\n [alt]=\"alt()\"\n [name]=\"name()\"\n [initials]=\"initials()\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [variant]=\"variant()\"\n [color]=\"color()\"\n [loading]=\"loading()\"\n [disabled]=\"disabled()\"\n [interactive]=\"interactive()\"\n [buttonType]=\"buttonType()\"\n [asButton]=\"asButton()\"\n [radius]=\"radius()\"\n [objectFit]=\"objectFit()\"\n [aria-label]=\"ariaLabel()\"\n [aria-hidden]=\"ariaHidden()\"\n solaris-tooltip\n [tooltip-key]=\"presenceTooltipKey()\"\n tooltip-variant=\"default\"\n tooltip-size=\"sm\"\n tooltip-prefix-icon=\"ph ph-info\"\n>\n <span solaris-avatar-overlay class=\"solaris-presence-avatar__overlay\" aria-hidden=\"true\">\n <solaris-avatar-presence\n [presence]=\"presence()\"\n [timezone]=\"timezone()\"\n [lastSeenAt]=\"lastSeenAt()\"\n [quietHours]=\"quietHours()\"\n [workHoursStart]=\"workHoursStart()\"\n [workHoursEnd]=\"workHoursEnd()\"\n [aria-label]=\"presenceAriaLabel()\"\n [aria-hidden]=\"ariaHidden()\"\n [shape]=\"shape()\"\n >\n </solaris-avatar-presence>\n </span>\n</solaris-avatar>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\nimport { SolarisPresenceAvatar } from '../../presence-avatar/component/presence-avatar';\nimport { SolarisAvatarStackItem, SolarisAvatarStackOverlap } from '../model/avatar-stack.type';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\n\n@Component({\n selector: 'solaris-avatar-stack',\n standalone: true,\n imports: [SolarisPresenceAvatar, SolarisAvatar],\n templateUrl: './avatar-stack.html',\n styleUrls: ['./avatar-stack.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarStack {\n readonly items = input<SolarisAvatarStackItem[]>([]);\n readonly max = input(4, { transform: numberAttribute });\n readonly showPresence = input(false, { transform: booleanAttribute });\n\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\n\n readonly visibleItems = computed(() => {\n const max = Math.max(1, this.max());\n return this.items().slice(0, max);\n });\n\n readonly hiddenCount = computed(() => {\n return Math.max(0, this.items().length - this.visibleItems().length);\n });\n\n readonly hasHiddenItems = computed(() => this.hiddenCount() > 0);\n}\n","<div\n class=\"solaris-avatar-stack\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.data-overlap]=\"overlap()\"\n>\n @for (item of visibleItems(); track item.name ?? item.src ?? $index) {\n <span class=\"solaris-avatar-stack__item\">\n @if (showPresence()) {\n <solaris-presence-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n [presence]=\"item.presence ?? 'offline'\"\n [timezone]=\"item.timezone ?? null\"\n [lastSeenAt]=\"item.lastSeenAt ?? null\"\n [quietHours]=\"item.quietHours ?? false\"\n />\n } @else {\n <solaris-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n />\n }\n </span>\n }\n\n @if (hasHiddenItems()) {\n <span class=\"solaris-avatar-stack__item solaris-avatar-stack__more\">\n +{{ hiddenCount() }}\n </span>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n booleanAttribute,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport {\n SolarisAvatarDropdownItem,\n SolarisAvatarDropdownPlacement,\n SolarisAvatarDropdownSelectEvent,\n} from '../model/avatar-dropdown.type';\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\nimport { SolarisAvatarStackOverlap } from '../../avatar-stack/model/avatar-stack.type';\nimport { SolarisAvatarStack } from '../../avatar-stack/component/avatar-stack';\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\n\n@Component({\n selector: 'solaris-avatar-dropdown',\n standalone: true,\n imports: [\n SolarisPopover,\n SolarisPopoverTriggerDirective,\n SolarisPopoverPanelDirective,\n SolarisAvatarStack,\n SolarisAvatar,\n ],\n templateUrl: './avatar-dropdown.html',\n styleUrls: ['./avatar-dropdown.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarDropdown {\n readonly items = input<SolarisAvatarDropdownItem[]>([]);\n\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\n\n readonly maxVisible = input(4, { transform: numberAttribute });\n readonly placement = input<SolarisAvatarDropdownPlacement>('bottom-end');\n\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly closeOnSelect = input(true, { transform: booleanAttribute });\n\n readonly panelLabel = input('Avatar dropdown');\n\n @Output() readonly itemSelect = new EventEmitter<SolarisAvatarDropdownSelectEvent>();\n @Output() readonly openChange = new EventEmitter<boolean>();\n\n onItemClick(item: SolarisAvatarDropdownItem, index: number, popover: SolarisPopover): void {\n if (item.disabled) return;\n\n this.itemSelect.emit({ item, index });\n\n if (this.closeOnSelect()) {\n popover.setOpen(false);\n }\n }\n}\n","<solaris-popover\n #popover\n [placement]=\"placement()\"\n [offset]=\"8\"\n [autoFlip]=\"true\"\n [autoShift]=\"true\"\n [closeOnEscape]=\"true\"\n [closeOnOutsideClick]=\"true\"\n panelClass=\"solaris-avatar-dropdown-popover\"\n (openChange)=\"openChange.emit($event)\"\n>\n <button\n type=\"button\"\n solaris-popover-trigger\n class=\"solaris-avatar-dropdown__trigger\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"panelLabel()\"\n [attr.aria-expanded]=\"popover.isOpen() ? 'true' : 'false'\"\n (click)=\"popover.toggle()\"\n >\n <solaris-avatar-stack\n [items]=\"items()\"\n [max]=\"maxVisible()\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [overlap]=\"overlap()\"\n [showPresence]=\"false\"\n />\n </button>\n\n <ng-template solaris-popover-panel>\n <div class=\"solaris-avatar-dropdown__panel\" role=\"listbox\" [attr.aria-label]=\"panelLabel()\">\n @for (item of items(); track item.id ?? item.name ?? item.src ?? $index) {\n <button\n type=\"button\"\n class=\"solaris-avatar-dropdown__item\"\n [disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n (click)=\"onItemClick(item, $index, popover)\"\n >\n <solaris-avatar\n size=\"sm\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n />\n\n <span class=\"solaris-avatar-dropdown__item-body\">\n <span class=\"solaris-avatar-dropdown__item-title\">\n {{ item.name || item.initials || 'User' }}\n </span>\n </span>\n </button>\n }\n </div>\n </ng-template>\n</solaris-popover>\n","import { InjectionToken, Signal } from '@angular/core';\n\nimport { CardGroupSelectionMode } from '../model/card-group.type';\n\nexport interface SolarisSelectionCardHandle {\n focus(): void;\n value(): unknown;\n disabled(): boolean;\n}\n\nexport interface SolarisCardGroupApi {\n readonly disabled: Signal<boolean>;\n readonly selectionMode: Signal<CardGroupSelectionMode>;\n\n notifyTouched(): void;\n isSelected(value: unknown): boolean;\n activate(card: SolarisSelectionCardHandle): void;\n tabIndexFor(card: SolarisSelectionCardHandle): number;\n handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void;\n}\n\nexport const SOLARIS_CARD_GROUP = new InjectionToken<SolarisCardGroupApi>('SOLARIS_CARD_GROUP');\n","import { CardColorInput, CardColorPreset } from '../model/card.type';\n\nconst CARD_PRESET_COLORS = new Set<CardColorPreset>([\n 'neutral',\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\nexport function resolveCardColorKey(\n value: CardColorInput | null | undefined,\n): CardColorPreset | 'custom' {\n const normalized = String(value ?? '').trim();\n if (!normalized) return 'neutral';\n\n return CARD_PRESET_COLORS.has(normalized as CardColorPreset)\n ? (normalized as CardColorPreset)\n : 'custom';\n}\n\nexport function resolveCardCustomColor(value: CardColorInput | null | undefined): string | null {\n const normalized = String(value ?? '').trim();\n if (!normalized || normalized === 'custom') return null;\n\n return CARD_PRESET_COLORS.has(normalized as CardColorPreset) ? null : normalized;\n}\n","import { CardRadiusInput } from '../model/card.type';\n\nexport function resolveCardRadius(value: CardRadiusInput | null | undefined): string | null {\n const normalized = normalizeCardValue(value);\n if (!normalized) return null;\n\n switch (normalized) {\n case 'none':\n return '0';\n\n case 'sm':\n return 'var(--solaris-radius-sm)';\n\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n\n case 'full':\n return 'var(--solaris-radius-full)';\n\n default:\n return normalized;\n }\n}\n\nexport function normalizeCardValue(value: unknown): string {\n return String(value ?? '').trim();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport {\n CardAppearance,\n CardColorInput,\n CardOrientation,\n CardRadiusInput,\n CardSize,\n} from '../model/card.type';\nimport { resolveCardCustomColor, resolveCardColorKey } from '../utils/resolve-card-color';\nimport { normalizeCardValue, resolveCardRadius } from '../utils/resolve-card-radius';\n\n@Component({\n selector: 'solaris-card',\n standalone: true,\n imports: [],\n templateUrl: './card.html',\n styleUrls: ['./card.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-card-host',\n\n '[attr.data-size]': 'size()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-color]': 'colorKey()',\n\n '[attr.data-selected]': 'selected() ? \"true\" : null',\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-interactive]': 'interactive() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n\n '[style.--solaris-card-radius]': 'resolvedRadius()',\n '[style.--solaris-card-accent-custom]': 'customColor()',\n '[style.--solaris-card-min-height]': 'normalizedMinHeight()',\n '[style.--solaris-card-reserved-inline-end]': 'normalizedReservedInlineEnd()',\n },\n})\nexport class SolarisCard {\n readonly size = input<CardSize>('md');\n readonly orientation = input<CardOrientation>('vertical');\n readonly radius = input<CardRadiusInput | null>(null);\n\n readonly color = input<CardColorInput>('neutral');\n readonly appearance = input<CardAppearance>('outline');\n\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly selected = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly minHeight = input<string | null>(null);\n readonly reservedInlineEnd = input<string | null>(null);\n\n readonly normalizedMinHeight = computed(() => {\n return normalizeCardValue(this.minHeight()) || null;\n });\n\n readonly normalizedReservedInlineEnd = computed(() => {\n return normalizeCardValue(this.reservedInlineEnd()) || null;\n });\n\n readonly resolvedRadius = computed(() => resolveCardRadius(this.radius()));\n\n readonly customColor = computed(() => resolveCardCustomColor(this.color()));\n readonly colorKey = computed(() => resolveCardColorKey(this.color()));\n}\n","<article class=\"solaris-card\">\n <div class=\"solaris-card__media\">\n <ng-content select=\"solaris-card-media, [solaris-card-media]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__content\">\n <div class=\"solaris-card__header\">\n <div class=\"solaris-card__header-main\">\n <div class=\"solaris-card__eyebrow\">\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__title\">\n <ng-content select=\"[solaris-card-title]\"></ng-content>\n </div>\n </div>\n\n <div class=\"solaris-card__badge\">\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\n </div>\n </div>\n\n <div class=\"solaris-card__description\">\n <ng-content select=\"[solaris-card-description]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__meta\">\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__footer\">\n <div class=\"solaris-card__footer-main\">\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__actions\">\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\n </div>\n </div>\n </div>\n</article>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport {\n ResolvedSelectionCardIndicator,\n SelectionCardAppearance,\n SelectionCardColorInput,\n SelectionCardIndicator,\n SelectionCardOrientation,\n SelectionCardRadiusInput,\n SelectionCardSize,\n} from '../model/selection-card.type';\nimport {\n SOLARIS_CARD_GROUP,\n SolarisSelectionCardHandle,\n} from '../../card-group/token/card-group.token';\nimport { resolveCardColorKey, resolveCardCustomColor } from '../../card/utils/resolve-card-color';\nimport { CardGroupSelectionMode } from '../../card-group/model/card-group.type';\nimport { SolarisCard } from '../../card/component/card';\n\n@Component({\n selector: 'solaris-selection-card',\n standalone: true,\n imports: [SolarisCard],\n templateUrl: './selection-card.html',\n styleUrls: ['./selection-card.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-selection-card-host',\n\n '[attr.data-size]': 'size()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-selected]': 'selected() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-indicator]': 'resolvedIndicator()',\n\n '[attr.role]': 'role()',\n '[attr.aria-checked]': 'ariaChecked()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.tabindex]': 'tabIndex()',\n\n '[style.--solaris-selection-card-custom]': 'customAccent()',\n\n '(click)': 'onHostClick($event)',\n '(keydown)': 'onHostKeydown($event)',\n '(blur)': 'onHostBlur()',\n },\n})\nexport class SolarisSelectionCard implements SolarisSelectionCardHandle {\n readonly value = input<unknown>(null);\n\n readonly size = input<SelectionCardSize>('md');\n readonly color = input<SelectionCardColorInput>('primary');\n readonly orientation = input<SelectionCardOrientation>('vertical');\n readonly radius = input<SelectionCardRadiusInput | null>(null);\n readonly appearance = input<SelectionCardAppearance>('outline');\n\n readonly selectionIndicator = input<SelectionCardIndicator>('auto');\n\n readonly invalid = input(false, { transform: booleanAttribute });\n\n readonly disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n readonly selectedInput = input(false, {\n alias: 'selected',\n transform: booleanAttribute,\n });\n\n readonly selectedChange = output<boolean>();\n readonly cardClick = output<MouseEvent>();\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly group = inject(SOLARIS_CARD_GROUP, { optional: true });\n\n private readonly localSelected = signal(false);\n\n readonly disabled = computed(() => {\n return !!this.group?.disabled() || this.disabledInput();\n });\n\n readonly selected = computed(() => {\n if (this.group) return this.group.isSelected(this.value());\n\n return this.localSelected();\n });\n\n readonly resolvedMode = computed<CardGroupSelectionMode>(() => {\n if (this.group) return this.group.selectionMode();\n\n return inferStandaloneMode(this.selectionIndicator());\n });\n\n readonly resolvedIndicator = computed<ResolvedSelectionCardIndicator>(() => {\n const requested = this.selectionIndicator();\n\n if (requested !== 'auto') return requested;\n\n switch (this.resolvedMode()) {\n case 'single':\n return 'radio';\n\n case 'multiple':\n return 'checkbox';\n\n case 'none':\n default:\n return 'none';\n }\n });\n\n readonly tabIndex = computed(() => {\n if (this.disabled()) return -1;\n if (this.group) return this.group.tabIndexFor(this);\n\n return 0;\n });\n\n readonly role = computed(() => {\n switch (this.resolvedMode()) {\n case 'single':\n return 'radio';\n\n case 'multiple':\n return 'checkbox';\n\n case 'none':\n default:\n return 'button';\n }\n });\n\n readonly ariaChecked = computed(() => {\n if (this.resolvedMode() === 'none') return null;\n\n return this.selected() ? 'true' : 'false';\n });\n\n readonly colorKey = computed(() => {\n return resolveCardColorKey(this.color());\n });\n\n readonly customAccent = computed(() => {\n return resolveCardCustomColor(this.color());\n });\n\n readonly minHeight = computed(() => {\n return 'var(--ssc-min-height)';\n });\n\n readonly reservedInlineEnd = computed(() => {\n if (this.resolvedIndicator() === 'none') return null;\n\n return 'var(--ssc-reserved-inline-end)';\n });\n\n constructor() {\n effect(() => {\n if (this.group) return;\n\n this.localSelected.set(this.selectedInput());\n });\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n public onHostBlur(): void {\n this.group?.notifyTouched();\n }\n\n public onHostClick(event: MouseEvent): void {\n if (this.isActionZone(event.target)) return;\n\n this.cardClick.emit(event);\n\n if (this.disabled()) return;\n\n const previous = this.selected();\n\n if (this.group) {\n this.group.activate(this);\n\n if (previous !== this.selected()) {\n this.selectedChange.emit(this.selected());\n }\n\n return;\n }\n\n const next = this.activateStandalone();\n\n if (next !== previous) {\n this.selectedChange.emit(next);\n }\n }\n\n public onHostKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n\n if (this.group) {\n this.group.handleKeydown(event, this);\n return;\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n\n const previous = this.selected();\n const next = this.activateStandalone();\n\n if (next !== previous) {\n this.selectedChange.emit(next);\n }\n }\n }\n\n private activateStandalone(): boolean {\n switch (this.resolvedMode()) {\n case 'single':\n if (!this.localSelected()) {\n this.localSelected.set(true);\n }\n\n return this.localSelected();\n\n case 'multiple':\n this.localSelected.update((value) => !value);\n\n return this.localSelected();\n\n case 'none':\n default:\n return this.localSelected();\n }\n }\n\n private isActionZone(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false;\n\n return !!target.closest(\n ['[data-card-actions=\"true\"]', '[solaris-card-actions]', '.solaris-card-slot--actions'].join(\n ',',\n ),\n );\n }\n}\n\nfunction inferStandaloneMode(indicator: SelectionCardIndicator): CardGroupSelectionMode {\n switch (indicator) {\n case 'radio':\n return 'single';\n\n case 'checkbox':\n case 'icon':\n case 'auto':\n return 'multiple';\n\n case 'none':\n default:\n return 'none';\n }\n}\n","<div class=\"solaris-selection-card\">\n @if (resolvedIndicator() !== 'none') {\n <span class=\"solaris-selection-card__indicator\" aria-hidden=\"true\">\n <span class=\"solaris-selection-card__indicator-control\">\n @switch (resolvedIndicator()) {\n @case ('radio') {\n <span class=\"solaris-selection-card__indicator-dot\"></span>\n }\n\n @case ('checkbox') {\n <i class=\"ph ph-check solaris-selection-card__indicator-check\"></i>\n }\n\n @case ('icon') {\n <span class=\"solaris-selection-card__indicator-icon-dot\"></span>\n }\n }\n </span>\n </span>\n }\n\n <solaris-card\n class=\"solaris-selection-card__card\"\n [orientation]=\"orientation()\"\n [size]=\"size()\"\n [radius]=\"radius()\"\n [appearance]=\"appearance()\"\n [color]=\"color()\"\n [selected]=\"selected()\"\n [invalid]=\"invalid()\"\n [interactive]=\"!disabled()\"\n [disabled]=\"disabled()\"\n [minHeight]=\"minHeight()\"\n [reservedInlineEnd]=\"reservedInlineEnd()\"\n >\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"solaris-card-media\">\n <ng-content select=\"solaris-card-media\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-media]\">\n <ng-content select=\"[solaris-card-media]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-eyebrow]\">\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-title]\">\n <ng-content select=\"[solaris-card-title]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-description]\">\n <ng-content select=\"[solaris-card-description]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-meta]\">\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-badge]\">\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-footer]\">\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\n </div>\n\n <div\n class=\"solaris-selection-card__slot\"\n ngProjectAs=\"[solaris-card-actions]\"\n data-card-actions=\"true\"\n >\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\n </div>\n </solaris-card>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-media-overlay]',\n standalone: true,\n})\nexport class SolarisCardMediaOverlayDirective {\n @HostBinding('attr.solaris-card-media-overlay')\n readonly attr = '';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport {\n SolarisCardMediaAlign,\n SolarisCardMediaAppearance,\n SolarisCardMediaColor,\n SolarisCardMediaFit,\n SolarisCardMediaOverlayPosition,\n SolarisCardMediaPadding,\n SolarisCardMediaRadius,\n SolarisCardMediaRatio,\n SolarisCardMediaVariant,\n} from '../model/card-media.type';\n\n@Component({\n selector: 'solaris-card-media',\n standalone: true,\n templateUrl: './card-media.html',\n styleUrls: ['./card-media.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-card-media-host',\n },\n})\nexport class SolarisCardMedia {\n readonly variant = input<SolarisCardMediaVariant>('image');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n\n readonly color = input<SolarisCardMediaColor>('neutral');\n readonly appearance = input<SolarisCardMediaAppearance>('solid');\n\n readonly ratio = input<SolarisCardMediaRatio>('16:9');\n readonly customRatio = input<string | null>(null);\n\n readonly fit = input<SolarisCardMediaFit>('cover');\n readonly objectPosition = input<string>('center');\n\n readonly radius = input<SolarisCardMediaRadius>('inherit');\n readonly align = input<SolarisCardMediaAlign>('center');\n readonly padding = input<SolarisCardMediaPadding>('md');\n\n readonly height = input<string | null>(null);\n readonly minHeight = input<string | null>(null);\n readonly maxHeight = input<string | null>(null);\n\n readonly shadow = input<string | null>(null);\n readonly background = input<string | null>(null);\n readonly foreground = input<string | null>(null);\n readonly borderColor = input<string | null>(null);\n\n readonly overlayInset = input<string | null>(null);\n readonly overlayPosition = input<SolarisCardMediaOverlayPosition>('top-end');\n\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly normalizedSrc = computed(() => normalizeCardMediaValue(this.src()));\n readonly normalizedAlt = computed(() => normalizeCardMediaValue(this.alt()));\n\n readonly normalizedShadow = computed(() => normalizeCardMediaValue(this.shadow()));\n readonly normalizedHeight = computed(() => normalizeCardMediaValue(this.height()));\n readonly normalizedMinHeight = computed(() => normalizeCardMediaValue(this.minHeight()));\n readonly normalizedMaxHeight = computed(() => normalizeCardMediaValue(this.maxHeight()));\n\n readonly normalizedBackground = computed(() => normalizeCardMediaValue(this.background()));\n readonly normalizedForeground = computed(() => normalizeCardMediaValue(this.foreground()));\n readonly normalizedBorderColor = computed(() => normalizeCardMediaValue(this.borderColor()));\n\n readonly normalizedCustomRatio = computed(() => normalizeCardMediaValue(this.customRatio()));\n readonly normalizedOverlayInset = computed(() => normalizeCardMediaValue(this.overlayInset()));\n\n readonly resolvedCustomRatio = computed(() => {\n return this.ratio() === 'custom' ? this.normalizedCustomRatio() : '';\n });\n\n readonly showImage = computed(() => {\n return !this.loading() && this.variant() === 'image' && !!this.normalizedSrc();\n });\n}\n\nfunction normalizeCardMediaValue(value: unknown): string {\n return String(value ?? '').trim();\n}\n","<div\n class=\"solaris-card-media\"\n [class.is-loading]=\"loading()\"\n [class.is-disabled]=\"disabled()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-appearance]=\"appearance()\"\n [attr.data-color]=\"color()\"\n [attr.data-ratio]=\"ratio()\"\n [attr.data-align]=\"align()\"\n [attr.data-radius]=\"radius()\"\n [attr.data-padding]=\"padding()\"\n [attr.data-overlay-position]=\"overlayPosition()\"\n [style.--solaris-card-media-fit]=\"fit()\"\n [style.--solaris-card-media-object-position]=\"objectPosition()\"\n [style.--solaris-card-media-custom-ratio]=\"resolvedCustomRatio() || null\"\n [style.--solaris-card-media-bg-override]=\"normalizedBackground() || null\"\n [style.--solaris-card-media-fg-override]=\"normalizedForeground() || null\"\n [style.--solaris-card-media-border-override]=\"normalizedBorderColor() || null\"\n [style.--solaris-card-media-shadow-override]=\"normalizedShadow() || null\"\n [style.--solaris-card-media-height]=\"normalizedHeight() || null\"\n [style.--solaris-card-media-min-height-override]=\"normalizedMinHeight() || null\"\n [style.--solaris-card-media-max-height]=\"normalizedMaxHeight() || null\"\n [style.--solaris-card-media-overlay-inset]=\"normalizedOverlayInset() || null\"\n>\n <div class=\"solaris-card-media__surface\">\n @if (loading()) {\n <span class=\"solaris-card-media__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-card-media__image\"\n [src]=\"normalizedSrc()\"\n [alt]=\"normalizedAlt()\"\n decoding=\"async\"\n />\n } @else {\n <div class=\"solaris-card-media__content\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"solaris-card-media__overlay\">\n <ng-content select=\"[solaris-card-media-overlay]\"></ng-content>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SolarisTranslationParams, SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-field-error',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './field-error.html',\n styleUrls: ['./field-error.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldErrorComponent {\n @Input() public text?: string;\n @Input() public textKey?: string;\n @Input() public textParams?: SolarisTranslationParams;\n}\n","<div class=\"solaris-field-error\" role=\"alert\" aria-live=\"polite\">\n <span class=\"solaris-field-error__text\">\n @if (textKey) {\n {{ textKey | translate: textParams }}\n } @else {\n {{ text }}\n }\n </span>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n QueryList,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport {\n CardGroupCompareWith,\n CardGroupGap,\n CardGroupLayout,\n CardGroupOrientation,\n CardGroupSelectionMode,\n CardGroupValue,\n} from '../model/card-group.type';\nimport {\n SOLARIS_CARD_GROUP,\n SolarisCardGroupApi,\n SolarisSelectionCardHandle,\n} from '../token/card-group.token';\nimport { FieldErrorComponent } from '../../../forms/form-field/messages/error/field-error';\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\nimport { SolarisSelectionCard } from '../../selection-card/component/selection-card';\nimport { CardGroupValidationError } from '../model/card-group-error.type';\nimport { SolarisTranslationParams } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-card-group',\n standalone: true,\n imports: [FieldErrorComponent],\n templateUrl: './card-group.html',\n styleUrls: ['./card-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisCardGroup),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisCardGroup),\n multi: true,\n },\n {\n provide: SOLARIS_CARD_GROUP,\n useExisting: forwardRef(() => SolarisCardGroup),\n },\n ],\n host: {\n class: 'solaris-card-group-host',\n\n '[attr.data-layout]': 'layout()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-selection-mode]': 'selectionMode()',\n\n '[attr.data-invalid]': 'invalidComputed() ? \"true\" : null',\n '[attr.data-readonly]': 'readonly() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n\n '[style.--solaris-card-group-gap]': 'resolvedGap()',\n },\n})\nexport class SolarisCardGroup<T = unknown>\n implements ControlValueAccessor, Validator, AfterContentInit, SolarisCardGroupApi\n{\n readonly disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n readonly submitted = input(false, { transform: booleanAttribute });\n readonly selectOnFocus = input(false, { transform: booleanAttribute });\n\n readonly gap = input<CardGroupGap>('md');\n readonly invalid = input<boolean | null>(null);\n readonly minSelected = input<number | null>(null);\n readonly maxSelected = input<number | null>(null);\n\n readonly layout = input<CardGroupLayout>('stack');\n readonly orientation = input<CardGroupOrientation>('vertical');\n readonly selectionMode = input<CardGroupSelectionMode>('single');\n\n readonly compareWith = input<CardGroupCompareWith<T>>(Object.is);\n readonly showErrors = input<SolarisShowErrors>('dirtyOrTouched');\n\n readonly requiredErrorKey = input('solaris.cardGroup.errors.required');\n readonly minSelectedErrorKey = input('solaris.cardGroup.errors.minSelected');\n readonly maxSelectedErrorKey = input('solaris.cardGroup.errors.maxSelected');\n\n readonly selectionRejected = output<{\n reason: 'readonly' | 'maxSelected';\n value: unknown;\n }>();\n readonly valueChange = output<CardGroupValue<T>>();\n\n @ContentChildren(forwardRef(() => SolarisSelectionCard), { descendants: true })\n private readonly cardsQuery?: QueryList<SolarisSelectionCard>;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly dirtyState = signal(false);\n private readonly cardsVersion = signal(0);\n private readonly cvaDisabled = signal(false);\n private readonly touchedState = signal(false);\n private readonly internalValue = signal<CardGroupValue<T>>(null);\n\n private onTouched: () => void = () => {};\n private onChange: (value: CardGroupValue<T>) => void = () => {};\n private onValidatorChange: () => void = () => {};\n\n constructor() {\n effect(() => {\n this.selectionMode();\n this.required();\n this.minSelected();\n this.maxSelected();\n this.compareWith();\n this.internalValue();\n\n this.onValidatorChange();\n });\n }\n\n ngAfterContentInit(): void {\n this.bumpCardsVersion();\n\n this.cardsQuery?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.bumpCardsVersion());\n }\n\n readonly resolvedGap = computed(() => {\n const value = String(this.gap() ?? 'md').trim();\n\n switch (value) {\n case 'sm':\n return 'var(--solaris-space-3)';\n\n case 'md':\n return 'var(--solaris-space-4)';\n\n case 'lg':\n return 'var(--solaris-space-5)';\n\n default:\n return value;\n }\n });\n\n readonly disabled = computed(() => {\n return this.disabledInput() || this.cvaDisabled();\n });\n\n readonly groupRole = computed(() => {\n switch (this.selectionMode()) {\n case 'single':\n return 'radiogroup';\n\n case 'multiple':\n case 'none':\n default:\n return 'group';\n }\n });\n\n readonly selectionCount = computed(() => {\n const value = this.internalValue();\n\n if (Array.isArray(value)) return value.length;\n if (value == null) return 0;\n\n return 1;\n });\n\n readonly validationError = computed<CardGroupValidationError>(() => {\n if (this.disabled() || this.selectionMode() === 'none') return null;\n\n const count = this.selectionCount();\n\n if (this.required() && count === 0) return 'required';\n\n if (this.selectionMode() === 'multiple') {\n const min = this.minSelected();\n const max = this.maxSelected();\n\n if (min != null && count < min) return 'minSelected';\n if (max != null && count > max) return 'maxSelected';\n }\n\n return null;\n });\n\n readonly invalidComputed = computed(() => {\n const explicitInvalid = this.invalid();\n\n if (explicitInvalid !== null) return explicitInvalid;\n\n const localInvalid = this.validationError() !== null;\n\n switch (this.showErrors()) {\n case 'always':\n return localInvalid;\n\n case 'submitted':\n return localInvalid && this.submitted();\n\n case 'dirtyOrTouched':\n default:\n return localInvalid && (this.touchedState() || this.dirtyState());\n }\n });\n\n readonly errorKeyComputed = computed<string | undefined>(() => {\n switch (this.validationError()) {\n case 'required':\n return this.requiredErrorKey();\n\n case 'minSelected':\n return this.minSelectedErrorKey();\n\n case 'maxSelected':\n return this.maxSelectedErrorKey();\n\n default:\n return undefined;\n }\n });\n\n readonly errorParamsComputed = computed<SolarisTranslationParams | undefined>(() => {\n switch (this.validationError()) {\n case 'minSelected':\n return { min: this.minSelected() ?? undefined };\n\n case 'maxSelected':\n return { max: this.maxSelected() ?? undefined };\n\n default:\n return undefined;\n }\n });\n\n public isSelected(value: unknown): boolean {\n const currentValue = this.internalValue();\n\n switch (this.selectionMode()) {\n case 'single':\n return (\n !Array.isArray(currentValue) &&\n currentValue !== null &&\n this.compareWith()(currentValue, value as T)\n );\n\n case 'multiple': {\n const list: T[] = Array.isArray(currentValue) ? currentValue : [];\n\n return list.some((item) => this.compareWith()(item, value as T));\n }\n\n case 'none':\n default:\n return false;\n }\n }\n\n public activate(card: SolarisSelectionCardHandle): void {\n if (this.disabled() || card.disabled()) return;\n\n this.notifyTouched();\n\n if (this.readonly()) {\n this.selectionRejected.emit({\n reason: 'readonly',\n value: card.value(),\n });\n return;\n }\n\n switch (this.selectionMode()) {\n case 'single':\n this.activateSingle(card);\n break;\n\n case 'multiple':\n this.activateMultiple(card);\n break;\n\n case 'none':\n default:\n break;\n }\n\n this.bumpCardsVersion();\n }\n\n public tabIndexFor(card: SolarisSelectionCardHandle): number {\n this.cardsVersion();\n\n if (this.disabled() || card.disabled()) return -1;\n if (this.selectionMode() === 'none') return 0;\n\n const enabled = this.enabledCards();\n\n if (!enabled.length) return -1;\n\n const selected = enabled.find((item) => this.isSelected(item.value()));\n const target = selected ?? enabled[0];\n\n return target === card ? 0 : -1;\n }\n\n public handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void {\n if (this.disabled()) return;\n if (this.selectionMode() === 'none') return;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.move(current, 1);\n break;\n\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.move(current, -1);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusFirst();\n break;\n\n case 'End':\n event.preventDefault();\n this.focusLast();\n break;\n\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.activate(current);\n break;\n }\n }\n\n public notifyTouched(): void {\n if (!this.touchedState()) {\n this.touchedState.set(true);\n }\n\n this.onTouched();\n }\n\n writeValue(value: CardGroupValue<T>): void {\n this.internalValue.set(this.normalizeIncomingValue(value, this.selectionMode()));\n\n this.bumpCardsVersion();\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n registerOnChange(fn: (value: CardGroupValue<T>) => void): void {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n this.bumpCardsVersion();\n }\n\n validate(_: AbstractControl): ValidationErrors | null {\n switch (this.validationError()) {\n case 'required':\n return { required: true };\n\n case 'minSelected':\n return {\n minSelected: {\n min: this.minSelected(),\n actual: this.selectionCount(),\n },\n };\n\n case 'maxSelected':\n return {\n maxSelected: {\n max: this.maxSelected(),\n actual: this.selectionCount(),\n },\n };\n\n default:\n return null;\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n private activateSingle(card: SolarisSelectionCardHandle): void {\n const nextValue = card.value() as T;\n const currentValue = this.internalValue();\n\n const alreadySelected =\n !Array.isArray(currentValue) &&\n currentValue !== null &&\n this.compareWith()(currentValue, nextValue);\n\n if (alreadySelected) return;\n\n this.internalValue.set(nextValue);\n this.emitModelChange(nextValue);\n }\n\n private activateMultiple(card: SolarisSelectionCardHandle): void {\n const currentValue = this.internalValue();\n const current: T[] = Array.isArray(currentValue) ? [...currentValue] : [];\n const cardValue = card.value() as T;\n\n const index = current.findIndex((item) => this.compareWith()(item, cardValue));\n\n if (index >= 0) {\n current.splice(index, 1);\n this.internalValue.set(current);\n this.emitModelChange(current);\n return;\n }\n\n const max = this.maxSelected();\n\n if (max != null && current.length >= max) {\n this.selectionRejected.emit({\n reason: 'maxSelected',\n value: cardValue,\n });\n return;\n }\n\n current.push(cardValue);\n this.internalValue.set(current);\n this.emitModelChange(current);\n }\n\n private move(current: SolarisSelectionCardHandle, direction: 1 | -1): void {\n const enabled = this.enabledCards();\n\n if (!enabled.length) return;\n\n const currentIndex = enabled.indexOf(current);\n const startIndex = Math.max(currentIndex, 0);\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\n const next = enabled[nextIndex];\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(next);\n }\n\n next.focus();\n }\n\n private focusFirst(): void {\n const first = this.enabledCards()[0];\n\n if (!first) return;\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(first);\n }\n\n first.focus();\n }\n\n private focusLast(): void {\n const enabled = this.enabledCards();\n const last = enabled.at(-1);\n\n if (!last) return;\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(last);\n }\n\n last.focus();\n }\n\n private enabledCards(): SolarisSelectionCardHandle[] {\n this.cardsVersion();\n\n return (this.cardsQuery?.toArray() ?? []).filter((card) => !card.disabled());\n }\n\n private emitModelChange(value: CardGroupValue<T>): void {\n this.dirtyState.set(true);\n\n this.onChange(value);\n this.valueChange.emit(value);\n this.onValidatorChange();\n }\n\n private normalizeIncomingValue(\n value: CardGroupValue<T>,\n mode: CardGroupSelectionMode,\n ): CardGroupValue<T> {\n switch (mode) {\n case 'single':\n return Array.isArray(value) ? (value[0] ?? null) : value;\n\n case 'multiple':\n if (value == null) return [];\n\n return Array.isArray(value) ? value : [value];\n\n case 'none':\n default:\n return null;\n }\n }\n\n private bumpCardsVersion(): void {\n this.cardsVersion.update((value) => value + 1);\n }\n}\n","<div\n class=\"solaris-card-group__control\"\n [attr.role]=\"groupRole()\"\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\n [attr.aria-invalid]=\"invalidComputed() ? 'true' : null\"\n>\n <ng-content></ng-content>\n</div>\n\n<div class=\"solaris-card-group__message\">\n @if (errorKeyComputed()) {\n <solaris-field-error\n [textKey]=\"errorKeyComputed()\"\n [textParams]=\"errorParamsComputed()\"\n ></solaris-field-error>\n } @else {\n <ng-content select=\"[solaris-card-group-message], [card-group-message]\"></ng-content>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-description]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--description' },\n})\nexport class SolarisCardDescriptionDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-actions]',\n standalone: true,\n host: {\n class: 'solaris-card-slot solaris-card-slot--actions',\n 'data-card-actions': 'true',\n },\n})\nexport class SolarisCardActionsDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-eyebrow]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--eyebrow' },\n})\nexport class SolarisCardEyebrowDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-footer]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--footer' },\n})\nexport class SolarisCardFooterDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-media]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--media' },\n})\nexport class SolarisCardMediaDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-meta]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--meta' },\n})\nexport class SolarisCardMetaDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-badge]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--badge' },\n})\nexport class SolarisCardBadgeDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-title]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--title' },\n})\nexport class SolarisCardTitleDirective {}\n","import { SolarisCardDescriptionDirective } from './card-description.directive';\nimport { SolarisCardEyebrowDirective } from './card-eyebrow.directive';\nimport { SolarisCardActionsDirective } from './card-actions.directive';\nimport { SolarisCardFooterDirective } from './card-footer.directive';\nimport { SolarisCardMediaDirective } from './card-media.directive';\nimport { SolarisCardTitleDirective } from './card-title.directive';\nimport { SolarisCardBadgeDirective } from './card-badge.directive';\nimport { SolarisCardMetaDirective } from './card-meta.directive';\n\nexport const SOLARIS_CARD_SLOT_DIRECTIVES = [\n SolarisCardMediaDirective,\n SolarisCardEyebrowDirective,\n SolarisCardTitleDirective,\n SolarisCardDescriptionDirective,\n SolarisCardMetaDirective,\n SolarisCardBadgeDirective,\n SolarisCardActionsDirective,\n SolarisCardFooterDirective,\n] as const;\n","export type PhoneSanitizeConfig = {\n allowedChars: RegExp;\n};\n\nexport function sanitizePhoneInput(v: string): string {\n let s = (v ?? '').replace(/[^\\d+\\-\\s().]/g, '');\n s = s.replace(/\\+/g, (_m, offset) => (offset === 0 ? '+' : ''));\n return s;\n}\n\nexport function insertAtCursor(input: HTMLInputElement, text: string): void {\n const start = input.selectionStart ?? input.value.length;\n const end = input.selectionEnd ?? input.value.length;\n input.value = input.value.slice(0, start) + text + input.value.slice(end);\n const pos = start + text.length;\n input.setSelectionRange(pos, pos);\n}\n\nexport function enforceMaxDigitsInPlace(input: HTMLInputElement, maxDigits?: number): void {\n if (!maxDigits) return;\n\n const v = input.value ?? '';\n const sanitized = sanitizePhoneInput(v);\n\n const digits = (sanitized.match(/\\d/g) ?? []).length;\n if (digits <= maxDigits) {\n if (sanitized !== v) input.value = sanitized;\n return;\n }\n\n let digitCount = 0;\n let out = '';\n for (const ch of sanitized) {\n if (/\\d/.test(ch)) {\n if (digitCount >= maxDigits) break;\n digitCount++;\n }\n out += ch;\n }\n input.value = out;\n}\n\nexport function shouldBlockBeforeInput(ev: InputEvent, cfg: PhoneSanitizeConfig): boolean {\n return !!ev.data && !cfg.allowedChars.test(ev.data);\n}\n\nexport function shouldBlockKeyDown(ev: KeyboardEvent): boolean {\n if (ev.ctrlKey || ev.metaKey || ev.altKey) return false;\n\n const k = ev.key;\n const allowedControl = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Enter',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedControl.includes(k)) return false;\n if (/^\\d$/.test(k)) return false;\n return !(k === '+' || k === '-' || k === ' ' || k === '(' || k === ')' || k === '.');\n}\n","import { getCountries, getCountryCallingCode } from 'libphonenumber-js';\n\nexport function buildCallingCodeIndex(): Map<string, string[]> {\n const m = new Map<string, string[]>();\n for (const c of getCountries()) {\n const code = getCountryCallingCode(c);\n const arr = m.get(code) ?? [];\n arr.push(c.toLowerCase());\n m.set(code, arr);\n }\n return m;\n}\n\nexport function pickIso2ForCallingCode(\n callingCode: string,\n selectedIso2: string | null,\n index: Map<string, string[]>,\n preferredCountries?: string[],\n): string | null {\n const list = index.get(callingCode) ?? [];\n if (!list.length) return null;\n\n const sel = selectedIso2?.toLowerCase() ?? null;\n if (sel && list.includes(sel)) return sel;\n\n if (callingCode === '1') {\n if (list.includes('us')) return 'us';\n if (list.includes('ca')) return 'ca';\n }\n\n const preferred = (preferredCountries ?? []).map((x) => x.toLowerCase());\n for (const p of preferred) {\n if (list.includes(p)) return p;\n }\n\n return list[0] ?? null;\n}\n\nexport function getInitialCountryFromBrowser(fallbackIso2: string): string {\n const lang = globalThis?.navigator?.language ?? '';\n const region = lang.split('-')[1]?.toLowerCase() ?? '';\n return region.length === 2 ? region : fallbackIso2;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisFormFieldFeature {\n kind: 'email' | 'password';\n}\n\nexport const SOLARIS_FORM_FIELD_FEATURES = new InjectionToken<\n ReadonlyArray<SolarisFormFieldFeature>\n>('SOLARIS_FORM_FIELD_FEATURES');\n","import { Injectable, Optional, inject, signal, DestroyRef } from '@angular/core';\nimport { NgControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport type { SolarisPasswordDirective } from '../../input-text/directives/input-password.directive';\nimport type { SolarisEmailDirective } from '../../input-text/directives/input-email.directive';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../tokens/form-field-features';\n\n@Injectable()\nexport class SolarisFormFieldController {\n features = inject(SOLARIS_FORM_FIELD_FEATURES, { optional: true }) ?? [];\n @Optional() private readonly ngForm = inject(NgForm, { optional: true });\n @Optional() private readonly formGroupDir = inject(FormGroupDirective, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n readonly submitted = signal<boolean>(false);\n readonly control = signal<NgControl | null>(null);\n readonly email = signal<SolarisEmailDirective | null>(null);\n readonly password = signal<SolarisPasswordDirective | null>(null);\n\n constructor() {\n this.formGroupDir?.ngSubmit\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.submitted.set(true));\n\n this.ngForm?.ngSubmit\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.submitted.set(true));\n }\n\n registerPassword(dir: SolarisPasswordDirective | null) {\n this.password.set(dir);\n }\n\n registerEmail(dir: SolarisEmailDirective | null) {\n this.email.set(dir);\n }\n\n registerControl(ctrl: NgControl | null) {\n if (!ctrl && this.control()) return;\n this.control.set(ctrl);\n }\n\n passwordVisible(): boolean {\n return this.password()?.visible() ?? false;\n }\n\n togglePasswordVisibility(): void {\n this.password()?.toggle();\n }\n\n resetSubmitted() {\n this.submitted.set(false);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisInputApi {\n element: HTMLInputElement | HTMLTextAreaElement;\n setType?(type: string): void;\n getType?(): string;\n}\n\nexport const SOLARIS_INPUT = new InjectionToken<SolarisInputApi>('SOLARIS_INPUT');\n","import { Directive, ElementRef, HostBinding, inject, Injector, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_INPUT, SolarisInputApi } from '../tokens/input.token';\n\n@Directive({\n selector: 'input[solaris-input],textarea[solaris-input]',\n standalone: true,\n providers: [\n {\n provide: SOLARIS_INPUT,\n useFactory: (): SolarisInputApi => {\n const el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>).nativeElement;\n return {\n element: el,\n setType: (type: string) => {\n if (el instanceof HTMLInputElement) el.type = type;\n },\n getType: () => (el instanceof HTMLInputElement ? el.type : 'textarea'),\n };\n },\n },\n ],\n})\nexport class InputTextDirective {\n private readonly el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n private readonly injector = inject(Injector);\n\n @Optional()\n private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n @HostBinding('attr.solaris-input') readonly attr = '';\n\n @HostBinding('attr.placeholder') get placeholderAttr() {\n return this.el.nativeElement.getAttribute('placeholder');\n }\n\n constructor() {\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n Injector,\n Input,\n OnDestroy,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport {\n enforceMaxDigitsInPlace,\n insertAtCursor,\n sanitizePhoneInput,\n shouldBlockBeforeInput,\n shouldBlockKeyDown,\n} from '../helper/phone-input.sanitize';\nimport {\n buildCallingCodeIndex,\n getInitialCountryFromBrowser,\n pickIso2ForCallingCode,\n} from '../helper/phone-input.country';\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { InputTextDirective } from '../../input-text/directives/input-text.directive';\nimport type { ItiInstance, ItiUtils } from '../model/phone-input.iti-types';\nimport { AsYouType, parsePhoneNumberFromString } from 'libphonenumber-js';\nimport { PhoneFormat, Iso2 } from '../model/phone-input.type';\nimport intlTelInput from 'intl-tel-input';\n\n@Component({\n selector: 'solaris-phone-input',\n standalone: true,\n templateUrl: './phone-input.html',\n styleUrls: ['./phone-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisPhoneInput),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisPhoneInput),\n multi: true,\n },\n ],\n imports: [InputTextDirective],\n})\nexport class SolarisPhoneInput\n implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator\n{\n private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly renderer = inject(Renderer2);\n private readonly injector = inject(Injector);\n\n @HostBinding('attr.solaris-phone-input') readonly marker = '';\n @ViewChild('input', { static: false }) inputRef?: ElementRef<HTMLInputElement>;\n\n @Input() set placeholder(v: string | undefined) {\n this._placeholder = v;\n this.applyPlaceholderIfCustom();\n }\n get placeholder(): string | undefined {\n return this._placeholder;\n }\n\n @Input() format: PhoneFormat = 'e164';\n @Input({ alias: 'only-countries' }) onlyCountries?: Iso2[];\n @Input({ alias: 'default-country' }) defaultCountry: Iso2 = 'br';\n @Input({ alias: 'preferred-countries' }) preferredCountries?: Iso2[];\n\n private _raw = '';\n private maxDigits?: number;\n private _placeholder?: string;\n protected _disabled = false;\n private iti: ItiInstance | null = null;\n private _lastE164: string | null = null;\n private readonly allowedChars = /^[0-9+\\-\\s().]*$/;\n private callingCodeIndex = new Map<string, string[]>();\n\n private onChange: (v: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n private onValidatorChange?: () => void;\n\n constructor() {\n queueMicrotask(() => {\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngControl);\n });\n }\n\n ngAfterViewInit(): void {\n const el = this.el;\n if (!el) return;\n this.callingCodeIndex = buildCallingCodeIndex();\n this.initIntlTelInput(el);\n this.setupListeners(el);\n\n if (this._raw) el.value = this._raw;\n\n this.normalizeAndFormat(true);\n this.recalculateLimits();\n this.afterUtilsReady();\n }\n\n ngOnDestroy(): void {\n const el = this.el;\n if (el) this.teardownListeners(el);\n this.iti?.destroy?.();\n this.iti = null;\n }\n\n public writeValue(value: string | null): void {\n this._lastE164 = value ?? null;\n const el = this.el;\n if (!el) return;\n\n if (!value) {\n this._raw = '';\n el.value = '';\n this.recomputeFromRaw(true);\n return;\n }\n const iso2 = this.getSelectedIso2();\n const cc = iso2 ? iso2.toUpperCase() : undefined;\n const parsed = parsePhoneNumberFromString(value, cc as any);\n const next = parsed ? parsed.formatNational() : value;\n this._raw = next;\n el.value = next;\n\n this.recomputeFromRaw(true);\n }\n\n public registerOnChange(fn: (v: string | null) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n const el = this.el;\n if (el) el.disabled = isDisabled;\n }\n\n public validate(): ValidationErrors | null {\n if (!this._raw?.trim()) return null;\n return this._lastE164 ? null : { solarisPhone: true };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n protected onInput(silent = false): void {\n this.normalizeAndFormat(silent);\n }\n\n protected onBlur(): void {\n this.onTouched();\n const el = this.el;\n if (!el) return;\n\n this._raw = el.value ?? '';\n this.recomputeFromRaw(false);\n }\n\n protected onFocus(): void {\n const el = this.el;\n if (!el || this._disabled) return;\n if ((el.value ?? '').trim().length) return;\n\n const dial = this.getSelectedDialCode();\n if (!dial) return;\n\n const v = `+${dial} `;\n el.value = v;\n this._raw = v;\n\n queueMicrotask(() => el.setSelectionRange(v.length, v.length));\n this.recomputeFromRaw(false);\n }\n\n private normalizeAndFormat(silent: boolean): void {\n const el = this.el;\n if (!el) return;\n\n const raw = sanitizePhoneInput(el.value ?? '');\n const selectedIso2 = this.getSelectedIso2();\n const selectedCountry = selectedIso2 ? selectedIso2.toUpperCase() : undefined;\n\n const ayt = raw.trim().startsWith('+')\n ? new AsYouType()\n : new AsYouType(selectedCountry as any);\n\n const formatted = ayt.input(raw);\n el.value = formatted;\n this._raw = formatted;\n\n const number = ayt.getNumber();\n if (number?.countryCallingCode && this.iti) {\n const nextIso2 = pickIso2ForCallingCode(\n number.countryCallingCode,\n selectedIso2,\n this.callingCodeIndex,\n this.preferredCountries,\n );\n if (nextIso2 && nextIso2 !== selectedIso2) {\n this.setCountrySafely(nextIso2);\n }\n }\n\n enforceMaxDigitsInPlace(el, this.maxDigits);\n this.recomputeFromRaw(silent);\n }\n\n private recomputeFromRaw(silent: boolean): void {\n const raw = (this._raw ?? '').trim();\n\n if (!raw) {\n this._lastE164 = null;\n if (!silent) this.emit(null);\n return;\n }\n\n const iso2 = this.getSelectedIso2();\n const cc = iso2 ? iso2.toUpperCase() : undefined;\n\n const parsed = raw.startsWith('+')\n ? parsePhoneNumberFromString(raw)\n : parsePhoneNumberFromString(raw, cc as any);\n\n if (parsed?.isValid()) {\n this._lastE164 = parsed.number;\n if (!silent) this.emit(parsed.number);\n return;\n }\n\n this._lastE164 = null;\n if (!silent) this.emit(null);\n }\n\n private emit(v: string | null): void {\n this.onChange(v);\n this.onValidatorChange?.();\n }\n\n private initIntlTelInput(el: HTMLInputElement): void {\n const options: Record<string, unknown> = {\n initialCountry: getInitialCountryFromBrowser((this.defaultCountry || 'br').toLowerCase()),\n separateDialCode: false,\n nationalMode: false,\n formatOnDisplay: true,\n autoPlaceholder: 'aggressive',\n loadUtils: () => import('intl-tel-input/build/js/utils.js'),\n };\n\n const only = this.onlyCountries?.map((x) => x.toLowerCase());\n if (only?.length) options['onlyCountries'] = only;\n const preferred = this.preferredCountries?.map((x) => x.toLowerCase());\n if (preferred?.length) options['preferredCountries'] = preferred;\n this.iti = intlTelInput(el, options) as unknown as ItiInstance;\n this.applyPlaceholderIfCustom();\n }\n\n private afterUtilsReady(): void {\n const itiAny: any = this.iti as any;\n const p: Promise<unknown> | undefined = itiAny?.promise;\n\n const run = () => {\n const iso2 = this.getSelectedIso2();\n if (iso2) this.setCountrySafely(iso2);\n this.recalculateLimits();\n };\n\n if (p?.then) p.then(run);\n else queueMicrotask(run);\n }\n\n private setCountrySafely(iso2: string): void {\n try {\n (this.iti as any)?.setCountry?.(iso2);\n } catch {}\n }\n\n private recalculateLimits(): void {\n this.updateMaxDigits();\n const el = this.el;\n if (el) enforceMaxDigitsInPlace(el, this.maxDigits);\n }\n\n private updateMaxDigits(): void {\n if (!this.iti) {\n this.maxDigits = undefined;\n return;\n }\n\n const c: any = (this.iti as any).getSelectedCountryData?.();\n const iso2 = String(c?.iso2 ?? '').toLowerCase();\n const dialDigits = String(c?.dialCode ?? '').replace(/\\D/g, '').length;\n\n const u = this.getUtils();\n\n const exNationalDigits = this.safe(() => {\n if (!u?.getExampleNumber) return undefined;\n const t = u.numberType?.MOBILE;\n const ex = u.getExampleNumber?.(iso2, true, t);\n return ex ? (String(ex).match(/\\d/g) ?? []).length : undefined;\n });\n\n if (exNationalDigits && exNationalDigits > 0) {\n this.maxDigits = dialDigits + exNationalDigits;\n return;\n }\n\n const el = this.el;\n const ph = el?.getAttribute('placeholder') ?? '';\n const phDigits = (ph.match(/\\d/g) ?? []).length;\n this.maxDigits = phDigits > 0 ? phDigits : undefined;\n }\n\n private setupListeners(el: HTMLInputElement): void {\n el.addEventListener('beforeinput', this.onBeforeInput as any);\n el.addEventListener('keydown', this.onKeyDown);\n el.addEventListener('paste', this.onPaste);\n el.addEventListener('countrychange', this.onCountryChange);\n }\n\n private teardownListeners(el: HTMLInputElement): void {\n el.removeEventListener('beforeinput', this.onBeforeInput as any);\n el.removeEventListener('keydown', this.onKeyDown);\n el.removeEventListener('paste', this.onPaste);\n el.removeEventListener('countrychange', this.onCountryChange);\n }\n\n private readonly onCountryChange = () => {\n this.recalculateLimits();\n\n const el = this.el;\n if (!el || !(el.value ?? '').trim()) return;\n\n this._raw = el.value ?? '';\n this.normalizeAndFormat(false);\n };\n\n private readonly onBeforeInput = (ev: InputEvent) => {\n if (shouldBlockBeforeInput(ev, { allowedChars: this.allowedChars })) {\n ev.preventDefault();\n }\n };\n\n private readonly onKeyDown = (ev: KeyboardEvent) => {\n if (shouldBlockKeyDown(ev)) ev.preventDefault();\n };\n\n private readonly onPaste = (ev: ClipboardEvent) => {\n const el = this.el;\n if (!el) return;\n\n const text = ev.clipboardData?.getData('text') ?? '';\n if (!text) return;\n\n const sanitized = sanitizePhoneInput(text);\n if (sanitized === text) return;\n\n ev.preventDefault();\n insertAtCursor(el, sanitized);\n\n queueMicrotask(() => {\n this.recalculateLimits();\n this.normalizeAndFormat(false);\n });\n };\n\n private applyPlaceholderIfCustom(): void {\n const el = this.el;\n if (!el) return;\n\n const ph = this._placeholder?.trim();\n if (ph) this.renderer.setAttribute(el, 'placeholder', ph);\n }\n\n private getSelectedIso2(): string | null {\n try {\n const data = (this.iti as any)?.getSelectedCountryData?.();\n return (data?.iso2 as string | undefined)?.toLowerCase() ?? null;\n } catch {\n return null;\n }\n }\n\n private getSelectedDialCode(): string | null {\n try {\n const data = (this.iti as any)?.getSelectedCountryData?.();\n return (data?.dialCode as string | undefined) ?? null;\n } catch {\n return null;\n }\n }\n\n private getUtils(): ItiUtils | undefined {\n return (globalThis as any).intlTelInputUtils as ItiUtils | undefined;\n }\n\n private safe<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n return undefined;\n }\n }\n\n private get el(): HTMLInputElement | null {\n return this.inputRef?.nativeElement ?? null;\n }\n}\n","<input\n #input\n solaris-input\n type=\"tel\"\n [disabled]=\"_disabled\"\n (focus)=\"onFocus()\"\n (input)=\"onInput()\"\n (blur)=\"onBlur()\"\n data-bwignore=\"true\"\n/>\n","import {\n Directive,\n HostBinding,\n Optional,\n inject,\n signal,\n WritableSignal,\n Input,\n forwardRef,\n Injector,\n} from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n NgControl,\n} from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\nimport { SolarisPasswordErrorBag } from '../model/password-directive.type';\n\n@Directive({\n selector: 'input[solaris-password]',\n standalone: true,\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisPasswordDirective),\n multi: true,\n },\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'password' }, multi: true },\n ],\n})\nexport class SolarisPasswordDirective implements Validator {\n @Input() minLength = 8;\n @Input() requireUpper = true;\n @Input() requireLower = true;\n @Input() requireNumber = true;\n @Input() requireSpecial = false;\n\n @Input() set requireUpperKebab(v: any) {\n this.requireUpper = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set requireLowerKebab(v: any) {\n this.requireLower = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set requireNumberKebab(v: any) {\n this.requireNumber = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set minLengthKebab(v: any) {\n this.minLength = coerceNumber(v, 8);\n this._onChange?.();\n }\n @Input() set requireSpecialKebab(v: any) {\n this.requireSpecial = coerceBoolean(v);\n this._onChange?.();\n }\n\n @HostBinding('attr.type') get type() {\n return this.visible() ? 'text' : 'password';\n }\n @HostBinding('attr.spellcheck') spellcheck = 'false';\n @HostBinding('attr.solaris-password') readonly marker = '';\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\n @HostBinding('attr.autocomplete') autocomplete = 'current-password';\n\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly injector = inject(Injector);\n\n readonly visible: WritableSignal<boolean> = signal(false);\n\n private _onChange?: () => void;\n\n constructor() {\n this.field?.registerPassword(this);\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n\n public toggle(): void {\n this.visible.set(!this.visible());\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const v = String(control.value ?? '');\n if (!v) return null;\n\n const errors: SolarisPasswordErrorBag = {};\n\n if (this.minLength && v.length < this.minLength) {\n errors.minLength = { requiredLength: this.minLength, actualLength: v.length };\n }\n if (this.requireLower && !/[a-z]/.test(v)) errors.lowercase = true;\n if (this.requireUpper && !/[A-Z]/.test(v)) errors.uppercase = true;\n if (this.requireNumber && !/\\d/.test(v)) errors.number = true;\n if (this.requireSpecial && !/[^\\w\\s]/.test(v)) errors.special = true;\n\n return Object.keys(errors).length ? { solarisPassword: errors } : null;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this._onChange = fn;\n }\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n\nfunction coerceNumber(v: any, fallback: number): number {\n const n = Number(v);\n return Number.isFinite(n) ? n : fallback;\n}\n","import {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n NgControl,\n} from '@angular/forms';\nimport { Directive, forwardRef, HostBinding, inject, Optional, Injector } from '@angular/core';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\n\n@Directive({\n selector: 'input[solaris-email],input[solarisEmail]',\n standalone: true,\n providers: [\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SolarisEmailDirective), multi: true },\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'email' }, multi: true },\n ],\n})\nexport class SolarisEmailDirective implements Validator {\n @HostBinding('attr.type') type = 'email';\n @HostBinding('attr.inputmode') inputmode = 'email';\n @HostBinding('attr.spellcheck') spellcheck = 'false';\n @HostBinding('attr.autocomplete') autocomplete = 'email';\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly injector = inject(Injector);\n\n constructor() {\n this.field?.registerEmail(this);\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const v = String(control.value ?? '').trim();\n if (!v) return null;\n const ok = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v);\n return ok ? null : { solarisEmail: true };\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisFormFieldControllerLike {\n passwordVisible(): boolean;\n togglePasswordVisibility(): void;\n}\n\nexport const SOLARIS_FORM_FIELD_CONTROLLER = new InjectionToken<SolarisFormFieldControllerLike>(\n 'SOLARIS_FORM_FIELD_CONTROLLER',\n);\n","import { ChangeDetectionStrategy, Component, HostBinding, Optional, inject } from '@angular/core';\n\nimport {\n SOLARIS_FORM_FIELD_CONTROLLER,\n SolarisFormFieldControllerLike,\n} from '../../form-field/tokens/form-field-controller.token';\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-password-toggle',\n standalone: true,\n templateUrl: './password-toggle.html',\n styleUrls: ['./password-toggle.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordToggle {\n private readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\n\n @HostBinding('attr.solaris-suffix') readonly solarisSuffix = '';\n @Optional() private readonly field = inject<SolarisFormFieldControllerLike>(\n SOLARIS_FORM_FIELD_CONTROLLER,\n { optional: true },\n );\n\n protected visible = () => this.field?.passwordVisible() ?? false;\n\n protected toggle(): void {\n this.field?.togglePasswordVisibility();\n }\n protected get ariaLabelHide() {\n return this.translationService.translate('ui.solaris.password.aria.hidePassword');\n }\n protected get ariaLabelShow() {\n return this.translationService.translate('ui.solaris.password.aria.showPassword');\n }\n}\n","<button\n class=\"solaris-password-toggle\"\n type=\"button\"\n (click)=\"toggle()\"\n [attr.aria-pressed]=\"visible() ? 'true' : 'false'\"\n [attr.aria-label]=\"visible() ? ariaLabelHide : ariaLabelShow\"\n>\n @if (visible()) {\n <i class=\"ph ph-eye-slash\"></i>\n } @else {\n <i class=\"ph ph-eye\"></i>\n }\n</button>\n","import { Directive, Optional, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\n\n@Directive({\n selector:\n 'input[solaris-password],input[solaris-email],input[solaris-input],textarea[solaris-input]',\n standalone: true,\n})\nexport class SolarisControlBridgeDirective {\n @Optional() private readonly ctrl = inject(NgControl, { optional: true });\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n constructor() {\n if (this.ctrl) this.field?.registerControl(this.ctrl);\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[solaris-prefix]',\n standalone: true,\n})\nexport class SolarisPrefixDirective {\n @HostBinding('attr.solaris-prefix') readonly attr = '';\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-suffix]',\n standalone: true,\n})\nexport class SolarisSuffixDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n computed,\n effect,\n inject,\n signal,\n input,\n} from '@angular/core';\n\nimport { SolarisFormFieldAppearance, SolarisFormFieldRadius } from '../model/form-field.type';\nimport { SOLARIS_FORM_FIELD_CONTROLLER } from '../tokens/form-field-controller.token';\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\nimport { PasswordToggle } from '../../input-text/password-toggle/password-toggle';\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\nimport { SolarisPrefixDirective } from '../directives/prefix.directive';\nimport { SolarisSuffixDirective } from '../directives/suffix.directive';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { FieldErrorComponent } from '../messages/error/field-error';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'solaris-form-field',\n standalone: true,\n imports: [PasswordToggle, FieldErrorComponent, SolarisTranslationPipe],\n templateUrl: './form-field.html',\n styleUrls: ['./form-field.scss'],\n providers: [\n SolarisFormFieldController,\n { provide: SOLARIS_FORM_FIELD_CONTROLLER, useExisting: SolarisFormFieldController },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormField {\n protected readonly field = inject(SolarisFormFieldController);\n @ContentChild(SolarisPrefixDirective) prefix?: SolarisPrefixDirective;\n @ContentChild(SolarisSuffixDirective) suffix?: SolarisSuffixDirective;\n\n @Input() public hint?: string = '';\n @Input() public label?: string = '';\n @Input() public hintKey?: string = '';\n @Input() public labelKey?: string = '';\n @Input() public radius: SolarisFormFieldRadius = 'sm';\n @Input() public showErrors: SolarisShowErrors = 'dirtyOrTouched';\n @Input() public appearance: SolarisFormFieldAppearance = 'filled';\n\n private readonly _tick = signal(0);\n readonly customErrorKey = input<string>('');\n readonly invalid = input<boolean | null>(null);\n readonly customErrorParams = input<Record<string, unknown> | undefined>(undefined);\n\n constructor() {\n effect((onCleanup) => {\n const ac = this.field.control()?.control;\n if (!ac) return;\n\n const sub = merge(ac.statusChanges, ac.valueChanges).subscribe(() => {\n this._tick.update((v) => v + 1);\n });\n\n onCleanup(() => sub.unsubscribe());\n });\n }\n\n get hasPrefix(): boolean {\n return !!this.prefix;\n }\n get hasSuffix(): boolean {\n return !!this.suffix;\n }\n\n private getDirectErrorKey(errors: Record<string, any>): string {\n if (errors['required']) return 'ui.solaris.validation.required';\n if (errors['email'] || errors['solarisEmail']) return 'ui.solaris.validation.email';\n return '';\n }\n\n private getPasswordErrorKey(bag: any): string {\n if (bag?.minLength) return 'ui.solaris.validation.password.minLength';\n if (bag?.uppercase) return 'ui.solaris.validation.password.uppercase';\n if (bag?.lowercase) return 'ui.solaris.validation.password.lowercase';\n if (bag?.number) return 'ui.solaris.validation.password.number';\n if (bag?.special) return 'ui.solaris.validation.password.special';\n return 'ui.solaris.validation.password.invalid';\n }\n\n readonly showPasswordToggle = computed(() => !!this.field.password());\n\n readonly invalidComputed = computed(() => {\n this._tick();\n const invalid = this.invalid();\n if (invalid !== null) return invalid;\n const c = this.field.control();\n if (!c) return false;\n if (this.showErrors === 'always') return !!c.invalid;\n if (this.showErrors === 'submitted') return !!(c.invalid && this.field.submitted());\n return !!(c.invalid && (c.touched || c.dirty));\n });\n\n readonly errorParams = computed<Record<string, unknown> | undefined>(() => {\n this._tick();\n if (!this.invalidComputed()) return undefined;\n\n const customKey = this.customErrorKey()?.trim();\n if (customKey) {\n return this.customErrorParams();\n }\n\n const errors = this.field.control()?.errors;\n if (!errors) return undefined;\n\n if (errors['solarisPassword']) {\n return errors['solarisPassword'];\n }\n\n return undefined;\n });\n\n readonly errorKey = computed(() => {\n this._tick();\n\n if (!this.invalidComputed()) return '';\n\n const customKey = this.customErrorKey()?.trim();\n if (customKey) return customKey;\n\n const errors = this.field.control()?.errors;\n if (!errors) return '';\n\n const direct = this.getDirectErrorKey(errors);\n if (direct) return direct;\n\n if (errors['solarisPassword']) {\n return this.getPasswordErrorKey(errors['solarisPassword']);\n }\n\n return 'solaris.validation.invalid';\n });\n\n readonly disabledComputed = computed(() => {\n this._tick();\n const c = this.field.control();\n return !!c?.disabled;\n });\n}\n","<div\n class=\"solaris-form-field\"\n [class.solaris-form-field--has-prefix]=\"hasPrefix\"\n [attr.data-appearance]=\"appearance\"\n [attr.data-invalid]=\"invalidComputed() ? 'true' : null\"\n [attr.data-radius]=\"radius\"\n [attr.data-disabled]=\"disabledComputed() ? 'true' : null\"\n>\n @if (label || labelKey) {\n <label class=\"solaris-form-field__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else if (label) {\n {{ label }}\n }\n </label>\n }\n\n <div class=\"solaris-form-field__frame\">\n @if (hasPrefix) {\n <span class=\"solaris-form-field__prefix\" aria-hidden=\"true\">\n <ng-content select=\"[solaris-prefix]\"></ng-content>\n </span>\n }\n\n <div class=\"solaris-form-field__body\">\n <div class=\"solaris-form-field__control-slot\">\n <ng-content></ng-content>\n </div>\n\n @if (hasSuffix || showPasswordToggle() || invalidComputed() || disabledComputed()) {\n <span class=\"solaris-form-field__suffix\">\n @if (disabledComputed()) {\n <span\n class=\"solaris-form-field__status solaris-form-field__status--disabled\"\n aria-hidden=\"true\"\n >\n <i class=\"ph ph-lock-simple\"></i>\n </span>\n } @else {\n <ng-content select=\"[solaris-suffix]\"></ng-content>\n\n @if (showPasswordToggle()) {\n <solaris-password-toggle></solaris-password-toggle>\n }\n\n @if (invalidComputed()) {\n <span class=\"solaris-form-field__status\" aria-hidden=\"true\">\n <i class=\"ph ph-warning-circle\"></i>\n </span>\n }\n }\n </span>\n }\n </div>\n </div>\n\n @if (errorKey()) {\n <solaris-field-error [textKey]=\"errorKey()\" [textParams]=\"errorParams()\"></solaris-field-error>\n } @else {\n <ng-content select=\"[form-field-message]\"></ng-content>\n }\n\n @if (hint || hintKey) {\n <div class=\"solaris-form-field__hint\">\n @if (hintKey) {\n {{ hintKey | translate }}\n } @else {\n {{ hint }}\n }\n </div>\n }\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n Input,\n Optional,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n Injector,\n forwardRef,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { NgOptimizedImage } from '@angular/common';\n\nimport {\n SolarisSelectNode,\n SelectionDisplay,\n StackLevel,\n SolarisSelectItem,\n SolarisSelectRow,\n} from '../model/select.type';\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SolarisTranslationPipe, SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\n\n@Component({\n selector: 'solaris-select',\n standalone: true,\n imports: [\n SolarisPopover,\n SolarisPopoverTriggerDirective,\n SolarisPopoverPanelDirective,\n SolarisTranslationPipe,\n NgOptimizedImage,\n ],\n templateUrl: './select.html',\n styleUrls: ['./select.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisSelect),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisSelect implements OnInit, ControlValueAccessor, AfterViewInit {\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n @ViewChild('tokenEl', { read: ElementRef }) tokenEl?: ElementRef<HTMLElement>;\n @ViewChild('measureSlot', { read: ElementRef }) measureSlot?: ElementRef<HTMLElement>;\n @ViewChild('triggerWrap', { read: ElementRef }) triggerWrap?: ElementRef<HTMLElement>;\n @ViewChild('triggerInput', { read: ElementRef }) triggerInput?: ElementRef<HTMLInputElement>;\n\n @HostBinding('attr.data-open') get dataOpen() {\n return this.open() ? 'true' : null;\n }\n\n @HostBinding('attr.data-compact') get dataCompact() {\n return this.compactInput() ? 'true' : null;\n }\n\n @HostBinding('attr.data-multiple') get dataMultiple() {\n return this.multiple ? 'true' : 'false';\n }\n\n private readonly _rootNodes = signal<SolarisSelectNode[]>([]);\n\n @Input() set items(v: SolarisSelectNode[] | null | undefined) {\n this._rootNodes.set(v ?? []);\n this.resetStack();\n\n const cur = this._value();\n const next = this.sanitizeValue(cur);\n const changed = !this.sameCvaValue(cur, next);\n\n if (changed) this._value.set(next);\n }\n\n private _multiple = false;\n\n @Input() set multiple(v: boolean) {\n this._multiple = v;\n\n const cur = this._value();\n\n if (this._multiple && !Array.isArray(cur)) this._value.set([]);\n if (!this._multiple && Array.isArray(cur)) this._value.set(null);\n }\n\n get multiple() {\n return this._multiple;\n }\n\n @Input() valueKey?: string;\n @Input() backKey = '';\n @Input() placeholder = '';\n @Input() placeholderKey = '';\n @Input() searchable = true;\n @Input() selectedCountKey = '';\n @Input() selectedFirst = true;\n @Input() searchPlaceholder = '';\n @Input() selectedCountText = '';\n @Input() panelMaxHeight = '32rem';\n @Input() searchPlaceholderKey = '';\n @Input() selectionSeparator = ', ';\n @Input() compareWith?: (a: any, b: any) => boolean;\n @Input() backText = 'ui.solaris.common.back';\n @Input() selectionDisplay: SelectionDisplay = 'auto';\n\n private readonly _disabled = signal(false);\n\n @Input() set disabled(v: boolean) {\n this._disabled.set(v);\n if (v) this.open.set(false);\n }\n\n get disabled() {\n return this._disabled();\n }\n\n readonly open = signal(false);\n readonly searchTerm = signal('');\n readonly activeIndex = signal(0);\n readonly showCount = signal(false);\n\n private readonly _value = signal<any>(null);\n private readonly _stack = signal<StackLevel[]>([]);\n\n readonly selectedItems = computed(() => {\n const all: SolarisSelectItem[] = [];\n this.collectAllItems(this._rootNodes(), all);\n\n const v = this._value();\n\n if (this.multiple) {\n const arr = Array.isArray(v) ? v : [];\n return all.filter((it) => arr.some((s) => this.eq(s, it.value)));\n }\n\n return all.filter((it) => v != null && this.eq(v, it.value));\n });\n\n readonly showToken = computed(() => {\n return this.selectedCount() > 0;\n });\n\n readonly selectedText = computed(() => {\n const items = this.selectedItems();\n if (!items.length) return '';\n\n return items\n .map((it) => this.itemLabel(it))\n .filter(Boolean)\n .join(this.selectionSeparator);\n });\n\n readonly triggerValue = computed(() => {\n if (this.isSearchMode()) return this.searchTerm();\n return '';\n });\n\n readonly activeOptionId = computed(() => {\n const idx = this.activeIndex();\n const row = this.itemRows()[idx];\n\n return row?.id ?? null;\n });\n\n readonly inputPlaceholderKey = computed(() => {\n if (this.selectedCount() > 0) return '';\n if (this.searchTerm().length > 0) return '';\n\n return this.open() && this.searchable\n ? this.searchPlaceholderKey || this.placeholderKey || ''\n : this.placeholderKey || '';\n });\n\n readonly inputPlaceholderText = computed(() => {\n if (this.selectedCount() > 0) return '';\n if (this.searchTerm().length > 0) return '';\n\n return this.open() && this.searchable\n ? this.searchPlaceholder || this.placeholder || 'Search...'\n : this.placeholder || '';\n });\n\n readonly viewModel = computed(() => {\n const lvl = this.currentLevel();\n const ordered = this.applySelectedFirst(lvl.nodes);\n const filtered = this.filterNodes(ordered, this.searchTerm());\n return this.buildRows(filtered);\n });\n\n readonly rows = computed(() => this.viewModel().rows);\n readonly canGoBack = computed(() => this._stack().length > 1);\n readonly selectedCount = computed(() => this.selectedItems().length);\n readonly isSearchMode = computed(() => this.open() && this.searchable);\n readonly itemRows = computed(() => this.viewModel().itemRows);\n readonly compactInput = computed(\n () => this.selectedCount() > 0 && this.searchTerm().length === 0,\n );\n readonly currentLevel = computed(() => this._stack().at(-1) ?? { nodes: this._rootNodes() });\n\n private static seq = 0;\n\n private _measureNonce = 0;\n private resizeObs?: ResizeObserver;\n private propagateTouched: () => void = () => {};\n private propagateChange: (v: any) => void = () => {};\n private resolvedNgControl: NgControl | null | undefined = undefined;\n\n matchWidthEl: HTMLElement | null = null;\n\n public readonly _id = `solaris-select-${++SolarisSelect.seq}`;\n\n constructor() {\n this.resetStack();\n\n effect(() => {\n this.selectedText();\n this.compactInput();\n this.scheduleAutoMeasure();\n });\n\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n } else {\n this.propagateTouched();\n this.searchTerm.set('');\n this.resetStack();\n }\n });\n }\n\n ngOnInit() {\n this.resolveNgControlOnce();\n }\n\n ngAfterViewInit() {\n const trigger = this.triggerWrap?.nativeElement;\n\n if (trigger) {\n this.matchWidthEl =\n (trigger\n .closest('.solaris-form-field')\n ?.querySelector('.solaris-form-field__frame') as HTMLElement) ?? null;\n }\n\n const el = this.triggerWrap?.nativeElement;\n\n if (!el) return;\n if (typeof ResizeObserver === 'undefined') return;\n\n this.resizeObs = new ResizeObserver(() => this.scheduleAutoMeasure(true));\n this.resizeObs.observe(el);\n\n if ((document as any).fonts?.ready) {\n (document as any).fonts.ready.then(() => this.scheduleAutoMeasure(true));\n }\n\n this.destroyRef.onDestroy(() => this.resizeObs?.disconnect());\n }\n\n writeValue(obj: any): void {\n this._value.set(this.sanitizeValue(obj));\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n private translate(key?: string, params?: any): string {\n if (!key) return '';\n return this.translationService.translate(key, params);\n }\n\n private itemLabel(item: SolarisSelectItem): string {\n if (item.labelKey) return this.translate(item.labelKey);\n return item.label ?? item.searchText ?? '';\n }\n\n private itemDescription(item: SolarisSelectItem): string {\n if (item.descriptionKey) return this.translate(item.descriptionKey);\n return item.description ?? '';\n }\n\n private itemEndText(item: SolarisSelectItem): string {\n if (item.endTextKey) return this.translate(item.endTextKey);\n return item.endText ?? '';\n }\n\n private itemSearchText(item: SolarisSelectItem): string {\n return [\n item.searchText,\n this.itemLabel(item),\n this.itemDescription(item),\n this.itemEndText(item),\n item.labelKey,\n item.descriptionKey,\n item.endTextKey,\n ]\n .filter(Boolean)\n .join(' ')\n .toLowerCase();\n }\n\n private sameCvaValue(a: any, b: any): boolean {\n if (this.multiple) {\n const aa = Array.isArray(a) ? a : [];\n const bb = Array.isArray(b) ? b : [];\n\n if (aa.length !== bb.length) return false;\n\n for (let i = 0; i < aa.length; i++) {\n if (!this.eq(aa[i], bb[i])) return false;\n }\n\n return true;\n }\n\n if (a == null && b == null) return true;\n if (a == null || b == null) return false;\n\n return this.eq(a, b);\n }\n\n private eq(a: any, b: any): boolean {\n if (this.compareWith) return this.compareWith(a, b);\n if (this.valueKey) return a?.[this.valueKey] === b?.[this.valueKey];\n\n return Object.is(a, b);\n }\n\n private resolveNgControlOnce() {\n if (this.resolvedNgControl !== undefined) return;\n\n this.resolvedNgControl = this.injector.get(NgControl, null, {\n self: true,\n optional: true,\n });\n\n if (this.resolvedNgControl) {\n this.field?.registerControl(this.resolvedNgControl);\n }\n }\n\n private collectAllItems(nodes: SolarisSelectNode[], out: SolarisSelectItem[]) {\n for (const n of nodes) {\n if (n.kind === 'item') {\n out.push(n);\n\n if (n.children?.length) {\n this.collectAllItems(n.children, out);\n }\n } else if (n.kind === 'group') {\n this.collectAllItems(n.items, out);\n }\n }\n }\n\n private resetStack() {\n this._stack.set([{ nodes: this._rootNodes() }]);\n }\n\n public goBack() {\n if (!this.canGoBack()) return;\n\n const s = [...this._stack()];\n s.pop();\n\n this._stack.set(s);\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n private enterChildren(item: SolarisSelectItem) {\n if (!item.children?.length) return;\n\n this._stack.set([\n ...this._stack(),\n {\n title: item.childrenTitle,\n titleKey: item.childrenTitleKey,\n nodes: item.children,\n },\n ]);\n\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n private filterNodes(nodes: SolarisSelectNode[], termRaw: string): SolarisSelectNode[] {\n const term = termRaw.trim().toLowerCase();\n\n if (!term) return nodes;\n\n const matchItem = (it: SolarisSelectItem) => {\n return this.itemSearchText(it).includes(term);\n };\n\n const walk = (list: SolarisSelectNode[]): SolarisSelectNode[] => {\n const res: SolarisSelectNode[] = [];\n\n for (const n of list) {\n if (n.kind === 'divider') {\n res.push(n);\n continue;\n }\n\n if (n.kind === 'group') {\n const sub = walk(n.items);\n\n if (sub.some((x) => x.kind !== 'divider')) {\n res.push({ ...n, items: sub });\n }\n\n continue;\n }\n\n if (n.children?.length) {\n const sub = walk(n.children);\n\n if (matchItem(n) || sub.some((x) => x.kind !== 'divider')) {\n res.push({ ...n, children: sub });\n }\n } else if (matchItem(n)) {\n res.push(n);\n }\n }\n\n return this.cleanupDividers(res);\n };\n\n return walk(nodes);\n }\n\n private cleanupDividers(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\n const out: SolarisSelectNode[] = [];\n\n for (const n of nodes) {\n if (n.kind === 'divider') {\n if (!out.length) continue;\n if (out.at(-1)?.kind === 'divider') continue;\n }\n\n out.push(n);\n }\n\n while (out.length && out[0].kind === 'divider') out.shift();\n while (out.length && out.at(-1)?.kind === 'divider') out.pop();\n\n return out;\n }\n\n private applySelectedFirst(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\n if (!this.multiple || !this.selectedFirst) return nodes;\n\n const selected = (it: SolarisSelectItem) => {\n const v = this._value();\n const arr = Array.isArray(v) ? v : [];\n\n return arr.some((s) => this.eq(s, it.value));\n };\n\n const reorderSegment = (segment: SolarisSelectNode[]) => {\n const items: SolarisSelectItem[] = [];\n const others: SolarisSelectNode[] = [];\n\n for (const n of segment) {\n if (n.kind === 'item') {\n items.push(n);\n } else if (n.kind === 'group') {\n others.push({ ...n, items: this.applySelectedFirst(n.items) });\n } else {\n others.push(n);\n }\n }\n\n const sel: SolarisSelectItem[] = [];\n const non: SolarisSelectItem[] = [];\n\n for (const it of items) {\n if (selected(it)) {\n sel.push(it);\n } else {\n non.push(it);\n }\n }\n\n return [...sel, ...non, ...others];\n };\n\n const res: SolarisSelectNode[] = [];\n let buf: SolarisSelectNode[] = [];\n\n const flush = () => {\n if (!buf.length) return;\n\n res.push(...reorderSegment(buf));\n buf = [];\n };\n\n for (const n of nodes) {\n if (n.kind === 'divider') {\n flush();\n res.push(n);\n } else {\n buf.push(n);\n }\n }\n\n flush();\n\n return this.cleanupDividers(res);\n }\n\n private buildRows(nodes: SolarisSelectNode[]) {\n const rows: SolarisSelectRow[] = [];\n let optionIndex = 0;\n\n const pushItem = (it: SolarisSelectItem) => {\n const hasChildren = !!it.children?.length;\n const selectable = !hasChildren;\n const disabled = !!it.disabled;\n const selected = selectable ? this.isSelected(it.value) : false;\n\n rows.push({\n kind: 'item',\n key: `item-${optionIndex}-${this.itemLabel(it)}-${String(it.value)}`,\n id: `${this._id}-opt-${optionIndex}`,\n optionIndex,\n item: it,\n disabled,\n selected,\n hasChildren,\n selectable,\n });\n\n optionIndex++;\n };\n\n const walk = (list: SolarisSelectNode[]) => {\n for (const n of list) {\n if (n.kind === 'divider') {\n rows.push({ kind: 'divider', key: `div-${rows.length}` });\n continue;\n }\n\n if (n.kind === 'group') {\n rows.push({\n kind: 'group',\n key: `grp-${rows.length}-${n.label ?? n.labelKey ?? ''}`,\n label: n.label,\n labelKey: n.labelKey,\n });\n\n walk(n.items);\n continue;\n }\n\n pushItem(n);\n }\n };\n\n walk(nodes);\n\n const itemRows = rows.filter((r) => r.kind === 'item');\n\n return { rows, itemRows };\n }\n\n isSelected(value: any): boolean {\n const v = this._value();\n\n if (this.multiple) {\n const arr = Array.isArray(v) ? v : [];\n return arr.some((s) => this.eq(s, value));\n }\n\n return v != null && this.eq(v, value);\n }\n\n private setValue(next: any) {\n const cur = this._value();\n\n if (this.sameCvaValue(cur, next)) return;\n\n this._value.set(next);\n this.propagateChange(next);\n }\n\n toggleItem(value: any) {\n if (!this.multiple) return;\n\n const cur = this._value();\n const arr = Array.isArray(cur) ? [...cur] : [];\n const idx = arr.findIndex((v) => this.eq(v, value));\n\n if (idx >= 0) {\n arr.splice(idx, 1);\n } else {\n arr.push(value);\n }\n\n this.setValue(arr);\n this.searchTerm.set('');\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n selectSingle(value: any) {\n if (this.multiple) return;\n\n this.searchTerm.set('');\n this.setValue(value);\n this.open.set(false);\n }\n\n onOptionClick(item: SolarisSelectItem) {\n if (this.disabled) return;\n\n if (item.children?.length) {\n this.enterChildren(item);\n return;\n }\n\n if (this.multiple) {\n this.toggleItem(item.value);\n this.searchTerm.set('');\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n } else {\n this.searchTerm.set('');\n this.selectSingle(item.value);\n }\n }\n\n openFromTrigger() {\n if (this.disabled) return;\n\n if (!this.open()) {\n this.open.set(true);\n }\n }\n\n toggleOpen() {\n if (this.disabled) return;\n\n const next = !this.open();\n\n if (next) {\n this.searchTerm.set('');\n }\n\n this.open.set(next);\n }\n\n onTriggerInput(v: string) {\n if (this.disabled) return;\n\n if (!this.open()) {\n this.open.set(true);\n }\n\n this.searchTerm.set(v);\n this.activeIndex.set(0);\n }\n\n onTriggerKeydown(ev: KeyboardEvent) {\n if (this.disabled) return;\n\n if (!this.open()) {\n if (ev.key === 'ArrowDown' || ev.key === 'Enter') {\n ev.preventDefault();\n this.searchTerm.set('');\n this.open.set(true);\n this.activeIndex.set(0);\n return;\n }\n\n if (this.searchable && ev.key.length === 1 && !ev.ctrlKey && !ev.metaKey && !ev.altKey) {\n ev.preventDefault();\n this.searchTerm.set(ev.key);\n this.open.set(true);\n this.activeIndex.set(0);\n return;\n }\n\n return;\n }\n\n if (\n ev.key === 'ArrowDown' ||\n ev.key === 'ArrowUp' ||\n ev.key === 'Home' ||\n ev.key === 'End' ||\n ev.key === 'Enter' ||\n ev.key === 'Escape'\n ) {\n this.onPanelKeydown(ev);\n return;\n }\n\n if (\n (ev.key === 'Backspace' || ev.key === 'ArrowLeft') &&\n this.canGoBack() &&\n !this.searchTerm()\n ) {\n ev.preventDefault();\n this.goBack();\n }\n }\n\n onPanelKeydown(ev: KeyboardEvent) {\n const items = this.itemRows();\n\n if (!items.length) return;\n\n const max = items.length - 1;\n const clamp = (n: number) => Math.max(0, Math.min(max, n));\n\n switch (ev.key) {\n case 'ArrowDown':\n ev.preventDefault();\n this.activeIndex.set(clamp(this.activeIndex() + 1));\n break;\n\n case 'ArrowUp':\n ev.preventDefault();\n this.activeIndex.set(clamp(this.activeIndex() - 1));\n break;\n\n case 'Home':\n ev.preventDefault();\n this.activeIndex.set(0);\n break;\n\n case 'End':\n ev.preventDefault();\n this.activeIndex.set(max);\n break;\n\n case 'Enter':\n ev.preventDefault();\n this.onOptionClick(items[this.activeIndex()].item);\n break;\n\n case 'ArrowRight': {\n const row = items[this.activeIndex()];\n\n if (row?.hasChildren) {\n ev.preventDefault();\n this.enterChildren(row.item);\n }\n\n break;\n }\n\n case 'Escape':\n ev.preventDefault();\n this.open.set(false);\n break;\n }\n }\n\n private scheduleAutoMeasure(force = false) {\n if (!this.multiple) {\n this.showCount.set(false);\n return;\n }\n\n if (this.selectionDisplay === 'count') {\n this.showCount.set(true);\n return;\n }\n\n if (this.selectionDisplay === 'list') {\n this.showCount.set(false);\n return;\n }\n\n const nonce = ++this._measureNonce;\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (nonce !== this._measureNonce) return;\n\n this.measureAuto(force);\n });\n });\n }\n\n private measureAuto(_force: boolean) {\n if (!this.multiple) {\n this.showCount.set(false);\n return;\n }\n\n if (this.selectionDisplay === 'count') {\n this.showCount.set(true);\n return;\n }\n\n if (this.selectionDisplay === 'list') {\n this.showCount.set(false);\n return;\n }\n\n if (!this.compactInput()) {\n if (this.showCount()) this.showCount.set(false);\n return;\n }\n\n const wrap = this.triggerWrap?.nativeElement;\n const inputEl = this.triggerInput?.nativeElement;\n const measureEl = this.measureSlot?.nativeElement;\n\n if (!wrap || !inputEl || !measureEl) return;\n\n const text = this.selectedText();\n\n if (!text) {\n if (this.showCount()) this.showCount.set(false);\n }\n\n const ws = getComputedStyle(wrap);\n const padL = this.px(ws.paddingLeft);\n const padR = this.px(ws.paddingRight);\n const gap = this.px(ws.columnGap || ws.gap);\n const contentWidth = wrap.clientWidth - padL - padR;\n\n const inputWidth = inputEl.getBoundingClientRect().width;\n const tokenMaxWidth = Math.max(0, contentWidth - gap - inputWidth);\n\n const needed = Math.ceil(measureEl.scrollWidth);\n const available = Math.floor(tokenMaxWidth);\n\n const current = this.showCount();\n\n const marginForward = 1;\n const marginBack = 3;\n\n const next = current ? needed > available - marginBack : needed > available + marginForward;\n\n if (next !== current) {\n this.showCount.set(next);\n }\n }\n\n private px(v: string): number {\n const first = (v ?? '0').split(' ')[0];\n const n = Number.parseFloat(first);\n\n return Number.isFinite(n) ? n : 0;\n }\n\n private scheduleFocusTrigger() {\n requestAnimationFrame(() => {\n this.triggerInput?.nativeElement?.focus?.();\n\n if (this.searchable) {\n this.triggerInput?.nativeElement?.select?.();\n }\n });\n }\n\n private isSelectableValue(v: any): boolean {\n if (v == null) return false;\n\n let selectable = false;\n\n const walk = (nodes: SolarisSelectNode[]) => {\n for (const n of nodes) {\n if (n.kind === 'group') {\n walk(n.items);\n continue;\n }\n\n if (n.kind === 'item') {\n if (this.eq(n.value, v)) {\n selectable = !n.children?.length;\n return;\n }\n\n if (n.children?.length) {\n walk(n.children);\n }\n }\n }\n };\n\n walk(this._rootNodes());\n\n return selectable;\n }\n\n private sanitizeValue(next: any): any {\n if (this.multiple) {\n const arr = Array.isArray(next) ? next : [];\n return arr.filter((v) => this.isSelectableValue(v));\n }\n\n return this.isSelectableValue(next) ? next : null;\n }\n\n selectedCountLabel(): string {\n const count = this.selectedCount();\n\n if (this.selectedCountKey) {\n return this.translate(this.selectedCountKey, { count });\n }\n\n if (this.selectedCountText) {\n return this.selectedCountText.replace('{count}', String(count));\n }\n\n return `${count} selecionados`;\n }\n\n trackRow = (_: number, r: SolarisSelectRow) => r.key;\n}\n","<solaris-popover\n [open]=\"open()\"\n (openChange)=\"open.set($event)\"\n placement=\"bottom-start\"\n [offset]=\"6\"\n [matchWidth]=\"true\"\n [anchorElement]=\"matchWidthEl\"\n [matchWidthElement]=\"matchWidthEl\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n panelClass=\"solaris-select__popover\"\n>\n <div\n #triggerWrap\n solaris-popover-trigger\n class=\"solaris-select__trigger\"\n (click)=\"openFromTrigger()\"\n >\n @if (showToken()) {\n <span #tokenEl class=\"solaris-select__token\" aria-hidden=\"true\">\n @if (multiple && showCount()) {\n @if (selectedCountKey) {\n {{ selectedCountKey | translate: { count: selectedCount() } }}\n } @else {\n {{ selectedCountLabel() }}\n }\n } @else {\n {{ selectedText() }}\n }\n </span>\n }\n\n <input\n #triggerInput\n type=\"text\"\n class=\"solaris-select__input\"\n [disabled]=\"disabled\"\n [attr.aria-activedescendant]=\"open() ? activeOptionId() : null\"\n (click)=\"openFromTrigger()\"\n [readonly]=\"!isSearchMode()\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"{{ _id }}-listbox\"\n aria-expanded=\"false\"\n [attr.aria-expanded]=\"open() ? 'true' : 'false'\"\n [attr.placeholder]=\"\n inputPlaceholderKey() ? (inputPlaceholderKey() | translate) : inputPlaceholderText()\n \"\n [value]=\"triggerValue()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (focus)=\"openFromTrigger()\"\n (input)=\"onTriggerInput(triggerInput.value)\"\n />\n\n <button\n type=\"button\"\n class=\"solaris-select__chevron-btn\"\n [disabled]=\"disabled\"\n (click)=\"toggleOpen()\"\n [attr.aria-label]=\"'ui.solaris.aria.toggleOptions' | translate\"\n >\n <i class=\"ph ph-caret-down\" aria-hidden=\"true\"></i>\n </button>\n\n <span class=\"solaris-select__measure solaris-select__token\" #measureSlot aria-hidden=\"true\">\n {{ selectedText() }}\n </span>\n </div>\n\n <ng-template solaris-popover-panel>\n <div\n class=\"solaris-select__panel\"\n (keydown)=\"onPanelKeydown($event)\"\n [style.max-height]=\"panelMaxHeight\"\n >\n @if (canGoBack()) {\n <div class=\"solaris-select__nav\">\n <button type=\"button\" class=\"solaris-select__back\" (click)=\"goBack()\">\n <i class=\"ph ph-arrow-left\"></i>\n <span>\n @if (backKey) {\n {{ backKey | translate }}\n } @else {\n {{ backText | translate }}\n }\n </span>\n </button>\n\n <div class=\"solaris-select__title\">\n @if (currentLevel().titleKey) {\n {{ currentLevel().titleKey! | translate }}\n } @else {\n {{ currentLevel().title ?? '' }}\n }\n </div>\n </div>\n }\n\n <div\n class=\"solaris-select__list\"\n role=\"listbox\"\n [id]=\"_id + '-listbox'\"\n [attr.aria-multiselectable]=\"multiple ? 'true' : null\"\n [attr.aria-activedescendant]=\"activeOptionId()\"\n >\n @for (row of rows(); track trackRow($index, row)) {\n @if (row.kind === 'group') {\n <div class=\"solaris-select__group\">\n @if (row.labelKey) {\n {{ row.labelKey | translate }}\n } @else {\n {{ row.label }}\n }\n </div>\n }\n\n @if (row.kind === 'divider') {\n <div class=\"solaris-select__divider\" aria-hidden=\"true\"></div>\n }\n\n @if (row.kind === 'item') {\n <button\n type=\"button\"\n class=\"solaris-select__option\"\n [id]=\"row.id\"\n [disabled]=\"row.disabled\"\n [attr.aria-selected]=\"row.selected ? 'true' : 'false'\"\n [class.is-active]=\"row.optionIndex === activeIndex()\"\n [class.is-selected]=\"row.selected\"\n [class.is-navigable]=\"row.hasChildren\"\n (click)=\"onOptionClick(row.item)\"\n >\n <span class=\"solaris-select__option-leading\">\n @if (multiple) {\n @if (!row.hasChildren) {\n <span\n class=\"solaris-select__checkbox\"\n aria-hidden=\"true\"\n [class.is-checked]=\"row.selected\"\n >\n <i class=\"ph ph-check\"></i>\n </span>\n } @else {\n @if (row.item.imageUrl) {\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\n } @else if (row.item.icon) {\n <i\n class=\"solaris-select__icon\"\n [class]=\"row.item.icon\"\n aria-hidden=\"true\"\n ></i>\n } @else {\n <span class=\"solaris-select__checkbox-spacer\" aria-hidden=\"true\"></span>\n }\n }\n }\n\n @if (!multiple) {\n @if (row.item.imageUrl) {\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\n } @else if (row.item.icon) {\n <i class=\"solaris-select__icon\" [class]=\"row.item.icon\" aria-hidden=\"true\"></i>\n }\n }\n </span>\n\n <span class=\"solaris-select__option-main\">\n <span class=\"solaris-select__option-label\">\n @if (row.item.labelKey) {\n {{ row.item.labelKey | translate }}\n } @else {\n {{ row.item.label }}\n }\n </span>\n\n @if (row.item.description || row.item.descriptionKey) {\n <span class=\"solaris-select__option-desc\">\n @if (row.item.descriptionKey) {\n {{ row.item.descriptionKey | translate }}\n } @else {\n {{ row.item.description }}\n }\n </span>\n }\n </span>\n\n <span class=\"solaris-select__option-end\">\n @if (row.item.endTextKey) {\n <span class=\"solaris-select__end-text\">{{\n row.item.endTextKey | translate\n }}</span>\n } @else if (row.item.endText) {\n <span class=\"solaris-select__end-text\">{{ row.item.endText }}</span>\n }\n\n @if (!multiple && row.selected) {\n <i class=\"ph ph-check\" aria-hidden=\"true\"></i>\n }\n\n @if (row.hasChildren) {\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\n }\n </span>\n </button>\n }\n }\n </div>\n </div>\n </ng-template>\n</solaris-popover>\n","/// <reference path=\"./typings/intl-tel-input-utils.d.ts\" />\n\nexport * from './lib/navigations/navigations.index';\nexport * from './lib/feedbacks/feedbacks.index';\nexport * from './lib/layouts/layouts.index';\nexport * from './lib/data-display/data-display.index';\nexport * from './lib/actions/actions.index';\nexport * from './lib/visual/visual.index';\nexport * from './lib/core/core.index';\nexport * from './services/services.index';\nexport * from './lib/common/common.index';\nexport * from './lib/cards/cards.index';\nexport * from './lib/forms/forms.index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["clamp","initialXY","i1.SolarisTabs","coerceBoolean","PRESET_COLORS","resolveRadius","i1","i1.SolarisTable"],"mappings":"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"}
1
+ {"version":3,"file":"educarehq-solaris-components.mjs","sources":["../../../projects/solaris-components/src/lib/navigations/dropdown/directives/dropdown-content-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/directives/dropdown-content-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/service/dropdown-content-registry.service.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/component/dropdown-content.ts","../../../projects/solaris-components/src/lib/navigations/dropdown/component/dropdown-content.html","../../../projects/solaris-components/src/lib/navigations/breadcrumb/component/breadcrumb.ts","../../../projects/solaris-components/src/lib/navigations/breadcrumb/component/breadcrumb.html","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.ts","../../../projects/solaris-components/src/lib/navigations/stepper/item/component/stepper-item.html","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.ts","../../../projects/solaris-components/src/lib/feedbacks/badge/component/badge.html","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.ts","../../../projects/solaris-components/src/lib/navigations/stepper/component/stepper.html","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-trigger.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/directives/popover-panel.directive.ts","../../../projects/solaris-components/src/lib/navigations/popover/model/popover.type.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.ts","../../../projects/solaris-components/src/lib/navigations/popover/component/popover.html","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.ts","../../../projects/solaris-components/src/lib/navigations/tabs/component/tabs.html","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.ts","../../../projects/solaris-components/src/lib/navigations/tabs/tab/component/tab.html","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.ts","../../../projects/solaris-components/src/lib/feedbacks/loading-overlay/loading-overlay.html","../../../projects/solaris-components/src/lib/core/overlay/floating-position.util.ts","../../../projects/solaris-components/src/lib/core/overlay/floating-overlay.service.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/component/rich-tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/rich-tooltip/directives/rich-tooltip.directive.ts","../../../projects/solaris-components/src/lib/actions/button/directives/button.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/config/notification.config.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification-intl.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/service/notification.service.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/item/notification-item.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/center/notification-center.html","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.ts","../../../projects/solaris-components/src/lib/feedbacks/notification/components/host/notification-host.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.ts","../../../projects/solaris-components/src/lib/feedbacks/tooltip/component/tooltip-panel.html","../../../projects/solaris-components/src/lib/feedbacks/tooltip/directives/tooltip.directive.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.ts","../../../projects/solaris-components/src/lib/feedbacks/loading/component/loading.html","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-overlay.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/directives/carousel-slide.directive.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.ts","../../../projects/solaris-components/src/lib/layouts/carousel/component/carousel.html","../../../projects/solaris-components/src/lib/layouts/section/component/section.ts","../../../projects/solaris-components/src/lib/layouts/section/component/section.html","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.ts","../../../projects/solaris-components/src/lib/layouts/divider/component/divider.html","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-step-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-data.token.ts","../../../projects/solaris-components/src/lib/layouts/dialog/token/dialog-ref.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-steps-container/dialog-steps-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.ts","../../../projects/solaris-components/src/lib/layouts/dialog/components/dialog-container/dialog-container.html","../../../projects/solaris-components/src/lib/layouts/dialog/service/dialog.service.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/directives/drawer-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.ts","../../../projects/solaris-components/src/lib/layouts/drawer/component/drawer.html","../../../projects/solaris-components/src/lib/data-display/table/directives/filter-panel-footer.directive.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/filter/table-filters.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/filter/table-filters.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/field/filter-field.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/field/filter-field.html","../../../projects/solaris-components/src/lib/data-display/table/directives/filter-panel-chips.directive.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/panel/filter-panel.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/panel/filter-panel.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/chip/filter-chip.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/chip/filter-chip.html","../../../projects/solaris-components/src/lib/data-display/table/components/skeleton/table-skeleton.ts","../../../projects/solaris-components/src/lib/data-display/table/components/skeleton/table-skeleton.html","../../../projects/solaris-components/src/lib/data-display/table/components/filters/bar/filter-bar.ts","../../../projects/solaris-components/src/lib/data-display/table/components/filters/bar/filter-bar.html","../../../projects/solaris-components/src/lib/data-display/table/directives/column.directive.ts","../../../projects/solaris-components/src/lib/common/service/id-generator.service.ts","../../../projects/solaris-components/src/lib/data-display/table/components/column/table-column.ts","../../../projects/solaris-components/src/lib/data-display/table/components/column/table-column.html","../../../projects/solaris-components/src/lib/common/helper/unique-id.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.ts","../../../projects/solaris-components/src/lib/actions/checkbox/component/checkbox.html","../../../projects/solaris-components/src/lib/data-display/table/components/table/table.ts","../../../projects/solaris-components/src/lib/data-display/table/components/table/table.html","../../../projects/solaris-components/src/lib/data-display/table/components/row/table-row.ts","../../../projects/solaris-components/src/lib/data-display/table/components/row/table-row.html","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-header.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-footer.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/directives/solaris-body.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.ts","../../../projects/solaris-components/src/lib/layouts/page/component/page.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-description.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-breadcrumb.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-title.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.ts","../../../projects/solaris-components/src/lib/layouts/page/header/title/component/page-header-title.html","../../../projects/solaris-components/src/lib/layouts/page/header/directives/solaris-header-actions.directive.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.ts","../../../projects/solaris-components/src/lib/layouts/page/header/component/page-header.html","../../../projects/solaris-components/src/lib/actions/button/directives/button-group.directive.ts","../../../projects/solaris-components/src/lib/actions/radio/token/radio-group.token.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.ts","../../../projects/solaris-components/src/lib/actions/radio/component/radio.html","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.ts","../../../projects/solaris-components/src/lib/actions/radio/group/component/radio-group.html","../../../projects/solaris-components/src/lib/visual/avatar/directives/avatar-overlay.directive.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.ts","../../../projects/solaris-components/src/lib/visual/internal/avatar-presence/component/avatar-presence.html","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.ts","../../../projects/solaris-components/src/lib/visual/avatar/component/avatar.html","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.ts","../../../projects/solaris-components/src/lib/visual/presence-avatar/component/presence-avatar.html","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.ts","../../../projects/solaris-components/src/lib/visual/avatar-stack/component/avatar-stack.html","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.ts","../../../projects/solaris-components/src/lib/visual/avatar-dropdown/component/avatar-dropdown.html","../../../projects/solaris-components/src/lib/cards/card-group/token/card-group.token.ts","../../../projects/solaris-components/src/lib/cards/card/utils/resolve-card-color.ts","../../../projects/solaris-components/src/lib/cards/card/utils/resolve-card-radius.ts","../../../projects/solaris-components/src/lib/cards/card/component/card.ts","../../../projects/solaris-components/src/lib/cards/card/component/card.html","../../../projects/solaris-components/src/lib/cards/selection-card/component/selection-card.ts","../../../projects/solaris-components/src/lib/cards/selection-card/component/selection-card.html","../../../projects/solaris-components/src/lib/cards/card-media/directives/card-media-overlay.directive.ts","../../../projects/solaris-components/src/lib/cards/card-media/component/card-media.ts","../../../projects/solaris-components/src/lib/cards/card-media/component/card-media.html","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.ts","../../../projects/solaris-components/src/lib/forms/form-field/messages/error/field-error.html","../../../projects/solaris-components/src/lib/cards/card-group/component/card-group.ts","../../../projects/solaris-components/src/lib/cards/card-group/component/card-group.html","../../../projects/solaris-components/src/lib/cards/card/directives/card-description.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-actions.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-eyebrow.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-footer.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-media.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-meta.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-badge.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-title.directive.ts","../../../projects/solaris-components/src/lib/cards/card/directives/card-slots.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.sanitize.ts","../../../projects/solaris-components/src/lib/forms/phone-input/helper/phone-input.country.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-features.ts","../../../projects/solaris-components/src/lib/forms/form-field/controller/form-field-controller.ts","../../../projects/solaris-components/src/lib/forms/input-text/tokens/input.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-text.directive.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.ts","../../../projects/solaris-components/src/lib/forms/phone-input/component/phone-input.html","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-password.directive.ts","../../../projects/solaris-components/src/lib/forms/input-text/directives/input-email.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/tokens/form-field-controller.token.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.ts","../../../projects/solaris-components/src/lib/forms/input-text/password-toggle/password-toggle.html","../../../projects/solaris-components/src/lib/forms/form-field/directives/control-bridge.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/prefix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/directives/suffix.directive.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.ts","../../../projects/solaris-components/src/lib/forms/form-field/component/form-field.html","../../../projects/solaris-components/src/lib/forms/select/component/select.ts","../../../projects/solaris-components/src/lib/forms/select/component/select.html","../../../projects/solaris-components/src/public-api.ts","../../../projects/solaris-components/src/educarehq-solaris-components.ts"],"sourcesContent":["import { Directive, ElementRef, inject, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[solaris-dropdown-content-trigger]',\n standalone: true,\n})\nexport class SolarisDropdownContentTriggerDirective {\n public readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n private readonly renderer: Renderer2 = inject(Renderer2);\n\n public ensureFocusable(): void {\n const element = this.elementRef.nativeElement;\n const tag = element.tagName.toLowerCase();\n const isNaturallyFocusable =\n tag === 'button' || tag === 'a' || element.hasAttribute('tabindex');\n\n if (!isNaturallyFocusable) {\n this.renderer.setAttribute(element, 'tabindex', '0');\n this.renderer.setAttribute(element, 'role', 'button');\n }\n\n this.renderer.setAttribute(element, 'aria-haspopup', 'true');\n }\n\n public setExpanded(isExpanded: boolean, panelId: string): void {\n const element = this.elementRef.nativeElement;\n this.renderer.setAttribute(element, 'aria-expanded', String(isExpanded));\n this.renderer.setAttribute(element, 'aria-controls', panelId);\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-dropdown-content-panel]',\n standalone: true,\n})\nexport class SolarisDropdownContentPanelDirective {\n public readonly templateRef: TemplateRef<unknown> = inject(TemplateRef<unknown>);\n}\n","import { Injectable } from '@angular/core';\n\nexport interface SolarisDropdownContentInterface {\n closeFromRegistry(): void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisDropdownContentRegistry {\n private readonly instances = new Set<SolarisDropdownContentInterface>();\n\n public register(instance: SolarisDropdownContentInterface): void {\n this.instances.add(instance);\n }\n\n public unregister(instance: SolarisDropdownContentInterface): void {\n this.instances.delete(instance);\n }\n\n public notifyOpen(openingInstance: SolarisDropdownContentInterface): void {\n for (const instance of this.instances) {\n if (instance !== openingInstance) {\n instance.closeFromRegistry();\n }\n }\n }\n}\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n Input,\n ViewContainerRef,\n ViewEncapsulation,\n inject,\n OnDestroy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport {\n SolarisDropdownContentInterface,\n SolarisDropdownContentRegistry,\n} from '../service/dropdown-content-registry.service';\nimport { SolarisDropdownContentTriggerDirective } from '../directives/dropdown-content-trigger.directive';\nimport { SolarisDropdownContentPanelDirective } from '../directives/dropdown-content-panel.directive';\nimport { SolarisDropdownWidthMode } from '../model/dropdown-content.type';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'solaris-dropdown-content',\n standalone: true,\n imports: [],\n templateUrl: './dropdown-content.html',\n styleUrls: ['./dropdown-content.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SolarisDropdownContent\n implements AfterContentInit, OnDestroy, SolarisDropdownContentInterface\n{\n private readonly registry = inject(SolarisDropdownContentRegistry);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly overlay = inject(Overlay);\n\n @ContentChild(SolarisDropdownContentTriggerDirective)\n trigger?: SolarisDropdownContentTriggerDirective;\n @ContentChild(SolarisDropdownContentPanelDirective) panel?: SolarisDropdownContentPanelDirective;\n\n @Input() container?: HTMLElement | ElementRef<HTMLElement>;\n @Input() widthMode: SolarisDropdownWidthMode = 'auto';\n @Input() maxWidth: string = '72rem';\n @Input() closeDelay = 120;\n @Input() openDelay = 60;\n\n private readonly panelId = `solaris-dropdown-panel-${Math.random().toString(16).slice(2)}`;\n private isHoveringTrigger = false;\n private portal?: TemplatePortal<unknown>;\n private isHoveringPanel = false;\n private outsideClickSub?: Subscription;\n private isPinned = false;\n private overlayRef?: OverlayRef;\n private isOpen = false;\n private closeTimer?: number;\n private openTimer?: number;\n\n ngAfterContentInit(): void {\n if (!this.trigger) throw new Error('solaris-dropdown: missing [solaris-dropdown-trigger].');\n if (!this.panel)\n throw new Error('solaris-dropdown: missing <ng-template solaris-dropdown-content-panel>.');\n\n this.registry.register(this);\n this.trigger.ensureFocusable();\n this.trigger.setExpanded(false, this.panelId);\n\n const triggerElement = this.trigger.elementRef.nativeElement;\n\n fromEvent(triggerElement, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onTriggerEnter());\n\n fromEvent(triggerElement, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onTriggerLeave());\n\n fromEvent<MouseEvent>(triggerElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n event.preventDefault();\n this.togglePinned();\n });\n\n fromEvent<KeyboardEvent>(triggerElement, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.togglePinned();\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close('escape');\n }\n });\n }\n\n ngOnDestroy(): void {\n this.registry.unregister(this);\n this.unbindOutsideClick();\n this.overlayRef?.dispose();\n }\n\n public closeFromRegistry(): void {\n this.close('registry');\n }\n\n private onTriggerEnter(): void {\n this.isHoveringTrigger = true;\n if (this.isPinned) return;\n this.scheduleOpen('hover');\n }\n\n private onTriggerLeave(): void {\n this.isHoveringTrigger = false;\n if (this.isPinned) return;\n this.scheduleClose();\n }\n\n private onPanelEnter(): void {\n this.isHoveringPanel = true;\n if (this.isPinned) return;\n this.clearCloseTimer();\n }\n\n private onPanelLeave(): void {\n this.isHoveringPanel = false;\n if (this.isPinned) return;\n this.scheduleClose();\n }\n\n private togglePinned(): void {\n if (!this.isOpen) {\n this.isPinned = true;\n this.open('pinned');\n return;\n }\n\n if (this.isPinned) {\n this.close('toggle');\n return;\n }\n\n this.isPinned = true;\n this.bindOutsideClick();\n }\n\n private scheduleOpen(reason: 'hover' | 'pinned'): void {\n this.clearOpenTimer();\n this.openTimer = globalThis.setTimeout(() => this.open(reason), this.openDelay);\n }\n\n private scheduleClose(): void {\n this.clearCloseTimer();\n this.closeTimer = globalThis.setTimeout(() => {\n if (this.isPinned) return;\n if (this.isHoveringTrigger || this.isHoveringPanel) return;\n this.close('hover-leave');\n }, this.closeDelay);\n }\n\n private clearOpenTimer(): void {\n if (this.openTimer) globalThis.clearTimeout(this.openTimer);\n this.openTimer = undefined;\n }\n\n private clearCloseTimer(): void {\n if (this.closeTimer) globalThis.clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n\n public open(reason: 'hover' | 'pinned'): void {\n if (!this.trigger || !this.panel) return;\n if (reason === 'hover') this.isPinned = false;\n\n this.registry.notifyOpen(this);\n\n const triggerElement = this.trigger.elementRef.nativeElement;\n const originRect = triggerElement.getBoundingClientRect();\n\n const containerElement = this.getContainerElement();\n const containerRect = containerElement?.getBoundingClientRect();\n const isFull = this.widthMode === 'full';\n const viewportMargin = isFull ? 0 : 8;\n const offsetX = this.computeOffsetX(originRect, containerRect);\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(triggerElement)\n .withFlexibleDimensions(false)\n .withPush(!isFull)\n .withViewportMargin(viewportMargin)\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(8)\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ]);\n\n if (this.overlayRef) {\n this.overlayRef.updatePositionStrategy(positionStrategy);\n } else {\n this.overlayRef = this.overlay.create({\n positionStrategy: positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n panelClass: ['solaris-dropdown-content-overlay'],\n });\n\n this.overlayRef\n .detachments()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.resetState());\n }\n\n this.applyOverlaySize(originRect, containerRect);\n this.portal ??= new TemplatePortal(this.panel.templateRef, this.viewContainerRef);\n if (!this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portal);\n this.wirePanelEvents();\n }\n\n this.isOpen = true;\n this.trigger.setExpanded(true, this.panelId);\n\n if (this.isPinned) {\n this.bindOutsideClick();\n } else {\n this.unbindOutsideClick();\n }\n\n this.clearCloseTimer();\n }\n\n public close(reason: 'hover-leave' | 'toggle' | 'escape' | 'outside' | 'registry'): void {\n this.clearOpenTimer();\n this.clearCloseTimer();\n this.isPinned = false;\n this.unbindOutsideClick();\n\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n\n this.isOpen = false;\n this.trigger?.setExpanded(false, this.panelId);\n }\n\n private resetState(): void {\n this.isOpen = false;\n this.isPinned = false;\n this.isHoveringPanel = false;\n this.isHoveringTrigger = false;\n this.unbindOutsideClick();\n this.trigger?.setExpanded(false, this.panelId);\n }\n\n private wirePanelEvents(): void {\n if (!this.overlayRef) return;\n\n const panelHost = this.overlayRef.overlayElement;\n panelHost.id = this.panelId;\n\n fromEvent(panelHost, 'mouseenter')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onPanelEnter());\n\n fromEvent(panelHost, 'mouseleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onPanelLeave());\n\n fromEvent<KeyboardEvent>(panelHost, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close('escape');\n this.trigger?.elementRef.nativeElement.focus();\n }\n });\n }\n\n private bindOutsideClick(): void {\n if (!this.isPinned) return;\n if (this.outsideClickSub) return;\n\n const triggerElement = this.trigger?.elementRef.nativeElement;\n const overlayEl = this.overlayRef?.overlayElement;\n\n if (!triggerElement || !overlayEl) return;\n\n this.outsideClickSub = fromEvent<MouseEvent>(document, 'mousedown')\n .pipe(\n filter(() => this.isPinned),\n filter((event) => {\n const targetNode = event.target as Node | null;\n if (!targetNode) return false;\n const insideTrigger = triggerElement.contains(targetNode);\n const insidePanel = overlayEl.contains(targetNode);\n return !insideTrigger && !insidePanel;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.close('outside'));\n }\n\n private unbindOutsideClick(): void {\n this.outsideClickSub?.unsubscribe();\n this.outsideClickSub = undefined;\n }\n\n private getContainerElement(): HTMLElement | undefined {\n const containerRef = this.container;\n if (!containerRef) return undefined;\n return containerRef instanceof ElementRef ? containerRef.nativeElement : containerRef;\n }\n\n private computeOffsetX(originRect: DOMRect, containerRect?: DOMRect): number {\n if (this.widthMode === 'full') {\n return -originRect.left;\n }\n\n if (this.widthMode === 'container' && containerRect) {\n return containerRect.left - originRect.left;\n }\n\n return 0;\n }\n\n private applyOverlaySize(originRect: DOMRect, containerRect?: DOMRect): void {\n if (!this.overlayRef) return;\n\n if (this.widthMode === 'match-trigger') {\n this.overlayRef.updateSize({ width: originRect.width });\n return;\n }\n\n if (this.widthMode === 'full') {\n const viewportWidth = document.documentElement.clientWidth;\n this.overlayRef.updateSize({\n width: viewportWidth,\n maxWidth: viewportWidth,\n });\n return;\n }\n\n if (this.widthMode === 'container' && containerRect) {\n this.overlayRef.updateSize({\n width: containerRect.width,\n maxWidth: containerRect.width,\n });\n return;\n }\n\n this.overlayRef.updateSize({ maxWidth: this.maxWidth });\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { RouterLink } from '@angular/router';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nimport { SolarisBreadcrumbItem } from '../model/breadcrumb.type';\n\n@Component({\n selector: 'solaris-breadcrumb',\n standalone: true,\n imports: [NgClass, RouterLink, CdkMenu, CdkMenuItem, CdkMenuTrigger, NgTemplateOutlet],\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisBreadcrumb {\n @Input({ alias: 'min-items' }) minItems = 2;\n @Input({ alias: 'max-items' }) maxItems = 4;\n @Input() responsive = true;\n @Input({ required: true }) items: SolarisBreadcrumbItem[] = [];\n @HostBinding('class') hostClass = 'solaris-breadcrumb-host';\n @Output() itemSelect = new EventEmitter<{ id: string; item: SolarisBreadcrumbItem }>();\n\n get viewModel() {\n const items = this.items ?? [];\n const total = items.length;\n const max = Math.max(this.minItems, this.effectiveMaxItems);\n\n if (total <= max) {\n return {\n head: items,\n overflow: [] as SolarisBreadcrumbItem[],\n tail: [] as SolarisBreadcrumbItem[],\n };\n }\n\n const keepHead = 1;\n const keepTail = 1;\n\n const remaining = max - keepHead - keepTail;\n const extraTail = Math.max(0, remaining);\n\n const head = items.slice(0, keepHead);\n const tail = items.slice(total - (keepTail + extraTail), total);\n const overflow = items.slice(keepHead, total - tail.length);\n\n return { head, overflow, tail };\n }\n get effectiveMaxItems(): number {\n if (!this.responsive) return this.maxItems;\n\n const isSmall =\n typeof globalThis.matchMedia === 'function' &&\n globalThis.matchMedia('(max-width: 640px)').matches;\n\n return isSmall ? Math.max(this.minItems, 3) : this.maxItems;\n }\n\n protected getRouterCommands(it: SolarisBreadcrumbItem): any[] | null {\n return it.target?.kind === 'router' ? it.target.commands : null;\n }\n\n protected getRouterQueryParams(it: SolarisBreadcrumbItem): Record<string, any> | null {\n return it.target?.kind === 'router' ? (it.target.extras?.queryParams ?? null) : null;\n }\n\n protected shouldRenderSeparatorAfterHead(headIndex: number): boolean {\n if (headIndex < this.viewModel.head.length - 1) return true;\n return this.viewModel.overflow.length > 0 || this.viewModel.tail.length > 0;\n }\n\n protected onAction(item: SolarisBreadcrumbItem) {\n if (item.disabled) return;\n const t = item.target;\n if (t?.kind === 'action') this.itemSelect.emit({ id: t.id, item });\n }\n}\n","<nav class=\"solaris-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol class=\"solaris-breadcrumb__list\">\n @for (it of viewModel.head; track it.label; let i = $index) {\n <li class=\"solaris-breadcrumb__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{ $implicit: it }\" />\n @if (shouldRenderSeparatorAfterHead(i)) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n\n @if (viewModel.overflow.length > 0) {\n <li class=\"solaris-breadcrumb__item\">\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__ellipsis\"\n aria-label=\"Mostrar mais\"\n [cdkMenuTriggerFor]=\"overflowMenu\"\n >\n <i class=\"ph ph-dots-three\"></i>\n </button>\n\n <ng-template #overflowMenu>\n <div class=\"solaris-breadcrumb__menu\" cdkMenu>\n @for (it of viewModel.overflow; track it.label) {\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__menu-item\"\n cdkMenuItem\n (click)=\"onAction(it)\"\n [disabled]=\"it.disabled\"\n [routerLink]=\"getRouterCommands(it)\"\n [queryParams]=\"getRouterQueryParams(it)\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </button>\n }\n </div>\n </ng-template>\n\n @if (viewModel.tail.length > 0) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n\n @for (it of viewModel.tail; track it.label; let i = $index) {\n <li class=\"solaris-breadcrumb__item\" [class.is-current]=\"i === viewModel.tail.length - 1\">\n <ng-container\n [ngTemplateOutlet]=\"itemTpl\"\n [ngTemplateOutletContext]=\"{ $implicit: it, current: i === viewModel.tail.length - 1 }\"\n />\n @if (it !== viewModel.tail[viewModel.tail.length - 1]) {\n <span class=\"solaris-breadcrumb__sep\" aria-hidden=\"true\">\n <i class=\"ph ph-caret-right\"></i>\n </span>\n }\n </li>\n }\n </ol>\n\n <ng-template #itemTpl let-it let-current=\"current\">\n @if (it.target?.kind === 'router') {\n <a\n class=\"solaris-breadcrumb__link\"\n [class.is-disabled]=\"it.disabled\"\n [class.is-current]=\"current\"\n [routerLink]=\"it.disabled ? null : it.target!.commands\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </a>\n } @else if (it.target?.kind === 'href') {\n <a\n class=\"solaris-breadcrumb__link\"\n [class.is-disabled]=\"it.disabled\"\n [class.is-current]=\"current\"\n [href]=\"it.disabled ? null : it.target!.href\"\n [target]=\"it.target!.target || '_self'\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </a>\n } @else if (it.target?.kind === 'action') {\n <button\n type=\"button\"\n class=\"solaris-breadcrumb__link as-button\"\n [class.is-current]=\"current\"\n [disabled]=\"it.disabled\"\n (click)=\"onAction(it)\"\n [attr.aria-current]=\"current ? 'page' : null\"\n [attr.aria-label]=\"it.ariaLabel || it.label\"\n >\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </button>\n } @else {\n <span class=\"solaris-breadcrumb__text\" [attr.aria-current]=\"current ? 'page' : null\">\n @if (it.icon) {\n <i class=\"solaris-breadcrumb__icon\" [ngClass]=\"it.icon\" aria-hidden=\"true\"></i>\n }\n <span class=\"solaris-breadcrumb__label\">{{ it.label }}</span>\n </span>\n }\n </ng-template>\n</nav>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { BadgeColorInput, BadgeVariant } from '../../../../feedbacks/badge/model/badge.type';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\nimport { SolarisStepperPhase, SolarisStepperStatus } from '../../model/stepper.type';\n\n@Component({\n selector: 'solaris-stepper-item',\n standalone: true,\n templateUrl: './stepper-item.html',\n styleUrls: ['./stepper-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisStepperItem {\n @Input() stepId?: string;\n\n @Input() label?: string;\n @Input() labelKey?: string;\n\n @Input() title?: string;\n @Input() titleKey?: string;\n\n @Input() description?: string;\n @Input() descriptionKey?: string;\n\n @Input() icon?: string;\n @Input() optional = false;\n\n @Input() phase: SolarisStepperPhase | null = null;\n @Input() status: SolarisStepperStatus = 'default';\n\n @Input() badgeText?: string;\n @Input() badgeTextKey?: string;\n @Input() badgeColor?: BadgeColorInput;\n @Input() badgeVariant: BadgeVariant = 'subtle';\n @Input() badgeSize: SolarisSizePreset = 'sm';\n @Input() badgePill = true;\n\n public active = false;\n public index = 0;\n public headerId = '';\n public panelId = '';\n}\n","<section\n class=\"solaris-stepper-item__panel\"\n role=\"tabpanel\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"!active\"\n [attr.hidden]=\"active ? null : ''\"\n>\n <ng-content></ng-content>\n</section>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\nimport { BadgeColorInput, BadgeVariant } from '../model/badge.type';\n\n@Component({\n selector: 'solaris-badge',\n standalone: true,\n imports: [NgClass],\n templateUrl: './badge.html',\n styleUrls: ['./badge.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisBadge {\n @Input() pill = false;\n @Input() customTextColor?: string;\n @Input() interactive = false;\n @Input() size: SolarisSizePreset = 'md';\n @Input() variant: BadgeVariant = 'subtle';\n @Input() color: BadgeColorInput = 'surface';\n @Input({ alias: 'aria-hidden' }) ariaHidden: 'true' | 'false' | null = null;\n @HostBinding('class') hostClass = 'solaris-badge-host';\n private readonly presetColors = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n 'surface',\n ]);\n\n get colorClass(): string {\n return this.isCustomColor ? 'color-custom' : `color-${this.color}`;\n }\n get isCustomColor(): boolean {\n return !this.presetColors.has(this.color as SolarisColorPreset);\n }\n get customColorValue(): string | null {\n return this.isCustomColor ? String(this.color) : null;\n }\n}\n","<span\n class=\"solaris-badge\"\n [attr.aria-hidden]=\"ariaHidden\"\n [ngClass]=\"[\n 'variant-' + variant,\n colorClass,\n 'size-' + size,\n pill ? 'is-pill' : '',\n interactive ? 'is-interactive' : '',\n ]\"\n [style.--solaris-badge-custom]=\"customColorValue\"\n [style.--solaris-badge-custom-fg]=\"customTextColor\"\n>\n <ng-content></ng-content>\n</span>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n SolarisStepperAppearance,\n SolarisStepperChangeEvent,\n SolarisStepperChangeReason,\n SolarisStepperOrientation,\n SolarisStepperPhase,\n} from '../model/stepper.type';\nimport { SolarisBadge } from '../../../feedbacks/badge/component/badge';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisStepperItem } from '../item/component/stepper-item';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'solaris-stepper',\n standalone: true,\n imports: [CommonModule, SolarisTranslationPipe, SolarisBadge],\n templateUrl: './stepper.html',\n styleUrls: ['./stepper.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisStepper implements AfterContentInit, OnChanges {\n private readonly destroyRef = inject(DestroyRef);\n private static nextId = 0;\n\n @Input() orientation: SolarisStepperOrientation = 'horizontal';\n @Input() appearance: SolarisStepperAppearance = 'default';\n\n @Input() linear = true;\n @Input() interactive = true;\n\n @Input() activeIndex: number | null = null;\n @Input() defaultActiveIndex = 0;\n\n @Input() allowBackNavigation = true;\n @Input() allowFutureNavigation = false;\n @Input() allowSkip = false;\n\n @Input() renderPanels = true;\n @Input() showStateBadges = false;\n\n @Output() readonly activeIndexChange = new EventEmitter<number>();\n @Output('next') readonly nextChange = new EventEmitter<number>();\n @Output('previous') readonly previousChange = new EventEmitter<number>();\n @Output() readonly stepChange = new EventEmitter<SolarisStepperChangeEvent>();\n\n @ContentChildren(SolarisStepperItem)\n private readonly itemsQuery?: QueryList<SolarisStepperItem>;\n\n @ViewChildren('stepButton')\n private readonly stepButtons?: QueryList<ElementRef<HTMLButtonElement>>;\n\n public items: SolarisStepperItem[] = [];\n\n private readonly uid = SolarisStepper.nextId++;\n private internalActiveIndex = 0;\n\n public get currentIndex(): number {\n return this.normalizeIndex(\n this.isControlled() ? (this.activeIndex ?? 0) : this.internalActiveIndex,\n );\n }\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngAfterContentInit(): void {\n this.internalActiveIndex = this.defaultActiveIndex;\n this.syncItems();\n\n this.itemsQuery?.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.syncItems();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['defaultActiveIndex'] && !this.isControlled()) {\n this.internalActiveIndex = this.defaultActiveIndex;\n }\n\n if (\n changes['activeIndex'] ||\n changes['orientation'] ||\n changes['appearance'] ||\n changes['linear']\n ) {\n this.syncItems();\n }\n }\n\n public next(): void {\n const target = this.findAdjacentNavigableIndex(this.currentIndex, 1);\n if (target === null) return;\n\n this.commitIndexChange(target, 'next');\n this.nextChange.emit(target);\n }\n\n public previous(): void {\n const target = this.findAdjacentNavigableIndex(this.currentIndex, -1);\n if (target === null) return;\n\n this.commitIndexChange(target, 'previous');\n this.previousChange.emit(target);\n }\n\n public setActiveStep(index: number): void {\n if (!this.isProgrammaticallyNavigable(index)) return;\n this.commitIndexChange(index, 'programmatic');\n }\n\n public onStepHeaderClick(index: number): void {\n if (!this.canActivateByHeaderClick(index)) return;\n this.commitIndexChange(index, 'header');\n }\n\n public onStepKeydown(event: KeyboardEvent, index: number): void {\n const isHorizontal = this.orientation === 'horizontal';\n\n switch (event.key) {\n case 'ArrowRight':\n if (!isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, 1);\n return;\n\n case 'ArrowLeft':\n if (!isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, -1);\n return;\n\n case 'ArrowDown':\n if (isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, 1);\n return;\n\n case 'ArrowUp':\n if (isHorizontal) return;\n event.preventDefault();\n this.focusRelativeButton(index, -1);\n return;\n\n case 'Home':\n event.preventDefault();\n this.focusButton(0);\n return;\n\n case 'End':\n event.preventDefault();\n this.focusButton(this.items.length - 1);\n return;\n\n default:\n return;\n }\n }\n\n public isCurrent(index: number): boolean {\n return index === this.currentIndex;\n }\n\n public isCompleted(index: number): boolean {\n return this.resolvePhase(this.items[index], index) === 'completed';\n }\n\n public isPending(index: number): boolean {\n return this.resolvePhase(this.items[index], index) === 'pending';\n }\n\n public resolvePhase(item: SolarisStepperItem, index: number): SolarisStepperPhase {\n if (item.phase) return item.phase;\n\n if (index < this.currentIndex) return 'completed';\n if (index === this.currentIndex) return 'current';\n return 'pending';\n }\n\n public getStepClasses(item: SolarisStepperItem, index: number): Record<string, boolean> {\n return {\n 'is-current': this.isCurrent(index),\n 'is-completed': this.isCompleted(index),\n 'is-pending': this.isPending(index),\n 'is-warning': item.status === 'warning',\n 'is-error': item.status === 'error',\n 'is-disabled': item.status === 'disabled',\n 'is-locked': item.status === 'locked',\n 'is-clickable': this.canActivateByHeaderClick(index),\n };\n }\n\n public getConnectorClasses(index: number): Record<string, boolean> {\n return {\n 'is-completed': index < this.currentIndex,\n 'is-current': index === this.currentIndex,\n };\n }\n\n public getMarkerIcon(item: SolarisStepperItem, index: number): string | null {\n if (this.appearance === 'compact') return null;\n\n if (item.status === 'locked') return 'ph-lock';\n if (item.status === 'error') return 'ph-x-circle';\n if (item.status === 'warning') return 'ph-warning-circle';\n if (this.isCompleted(index)) return 'ph-check';\n\n return item.icon ?? null;\n }\n\n public getMarkerText(item: SolarisStepperItem, index: number): string | null {\n if (this.appearance === 'compact') {\n return `${index + 1}.`;\n }\n\n return this.getMarkerIcon(item, index) ? null : String(index + 1);\n }\n\n public hasBadge(item: SolarisStepperItem, index: number): boolean {\n if (!this.showStateBadges || this.appearance === 'compact') return false;\n\n return Boolean(\n item.badgeText || item.badgeTextKey || this.getAutoBadgeTranslationKey(item, index),\n );\n }\n\n public getResolvedLabel(item: SolarisStepperItem, index: number): string | null {\n if (item.labelKey || item.label) return null;\n return `${index + 1}`;\n }\n\n public getResolvedBadgeColor(item: SolarisStepperItem, index: number) {\n if (item.badgeColor) return item.badgeColor;\n\n if (item.status === 'error') return 'error';\n if (item.status === 'warning') return 'warning';\n if (item.status === 'locked' || item.status === 'disabled') return 'surface';\n\n const phase = this.resolvePhase(item, index);\n if (phase === 'completed') return 'success';\n if (phase === 'current') return 'primary';\n\n return 'surface';\n }\n\n public getResolvedBadgeVariant(item: SolarisStepperItem) {\n return item.badgeVariant;\n }\n\n public getAutoBadgeTranslationKey(item: SolarisStepperItem, index: number): string {\n if (item.status === 'error') return 'ui.solaris.stepper.error';\n if (item.status === 'warning') return 'ui.solaris.stepper.warning';\n if (item.status === 'locked') return 'ui.solaris.stepper.locked';\n if (item.status === 'disabled') return 'ui.solaris.stepper.disabled';\n\n const phase = this.resolvePhase(item, index);\n\n if (phase === 'completed') return 'ui.solaris.stepper.completed';\n if (phase === 'current') return 'ui.solaris.stepper.inProgress';\n return 'ui.solaris.stepper.pending';\n }\n\n public getTitle(item: SolarisStepperItem): string {\n return item.title ?? '';\n }\n\n public getDescription(item: SolarisStepperItem): string {\n return item.description ?? '';\n }\n\n public getStepAriaLabel(item: SolarisStepperItem, index: number): string {\n const phase = this.resolvePhase(item, index);\n const title = item.title ?? item.titleKey ?? `${index + 1}`;\n\n if (phase === 'completed') {\n return `${title} completed`;\n }\n\n if (phase === 'current') {\n return `${title} current step`;\n }\n\n if (item.status === 'locked') {\n return `${title} locked`;\n }\n\n if (item.status === 'disabled') {\n return `${title} disabled`;\n }\n\n return title;\n }\n\n public trackByIndex(index: number): number {\n return index;\n }\n\n private syncItems(): void {\n this.items = this.itemsQuery?.toArray() ?? [];\n\n const currentIndex = this.normalizeIndex(\n this.isControlled() ? (this.activeIndex ?? 0) : this.internalActiveIndex,\n );\n\n this.items.forEach((item, index) => {\n item.index = index;\n item.headerId = `solaris-stepper-${this.uid}-tab-${index}`;\n item.panelId = `solaris-stepper-${this.uid}-panel-${index}`;\n item.active = index === currentIndex;\n });\n\n this.changeDetectorRef.markForCheck();\n }\n\n private commitIndexChange(index: number, reason: SolarisStepperChangeReason): void {\n const normalized = this.normalizeIndex(index);\n if (normalized === this.currentIndex) return;\n\n const previousIndex = this.currentIndex;\n\n if (!this.isControlled()) {\n this.internalActiveIndex = normalized;\n this.syncItems();\n }\n\n this.activeIndexChange.emit(normalized);\n this.stepChange.emit({\n previousIndex,\n currentIndex: normalized,\n reason,\n });\n }\n\n private canActivateByHeaderClick(index: number): boolean {\n if (!this.interactive) return false;\n if (!this.isInBounds(index)) return false;\n\n const item = this.items[index];\n if (!item || this.isDisabledLike(item)) return false;\n\n if (index === this.currentIndex) return true;\n if (index < this.currentIndex) return this.allowBackNavigation;\n\n if (!this.linear) return true;\n\n if (!this.allowFutureNavigation) return false;\n if (!this.allowSkip) return index === this.currentIndex + 1;\n\n return true;\n }\n\n private isProgrammaticallyNavigable(index: number): boolean {\n if (!this.isInBounds(index)) return false;\n\n const item = this.items[index];\n if (!item) return false;\n\n return !this.isDisabledLike(item);\n }\n\n private findAdjacentNavigableIndex(start: number, direction: 1 | -1): number | null {\n let cursor = start + direction;\n\n while (this.isInBounds(cursor)) {\n const item = this.items[cursor];\n if (item && !this.isDisabledLike(item)) {\n return cursor;\n }\n cursor += direction;\n }\n\n return null;\n }\n\n private isDisabledLike(item: SolarisStepperItem): boolean {\n return item.status === 'disabled' || item.status === 'locked';\n }\n\n private isControlled(): boolean {\n return this.activeIndex !== null && this.activeIndex !== undefined;\n }\n\n private isInBounds(index: number): boolean {\n return index >= 0 && index < this.items.length;\n }\n\n private normalizeIndex(index: number): number {\n if (this.items.length === 0) return 0;\n return Math.min(Math.max(index, 0), this.items.length - 1);\n }\n\n private focusRelativeButton(index: number, direction: 1 | -1): void {\n let cursor = index + direction;\n\n while (cursor >= 0 && cursor < this.items.length) {\n if (!this.isDisabledLike(this.items[cursor])) {\n this.focusButton(cursor);\n return;\n }\n cursor += direction;\n }\n }\n\n private focusButton(index: number): void {\n const button = this.stepButtons?.get(index)?.nativeElement;\n button?.focus();\n }\n}\n","<div class=\"solaris-stepper\" [ngClass]=\"['orientation-' + orientation, 'appearance-' + appearance]\">\n <div class=\"solaris-stepper__rail\" role=\"tablist\" [attr.aria-orientation]=\"orientation\">\n @for (item of items; track trackByIndex($index); let i = $index; let last = $last) {\n <div class=\"solaris-stepper__node\">\n <button\n #stepButton\n type=\"button\"\n role=\"tab\"\n class=\"solaris-stepper__step\"\n [id]=\"item.headerId\"\n [attr.aria-controls]=\"item.panelId\"\n [attr.aria-selected]=\"isCurrent(i)\"\n [attr.aria-current]=\"isCurrent(i) ? 'step' : null\"\n [attr.aria-disabled]=\"item.status === 'disabled' || item.status === 'locked'\"\n [attr.tabindex]=\"isCurrent(i) ? 0 : -1\"\n [ngClass]=\"getStepClasses(item, i)\"\n (click)=\"onStepHeaderClick(i)\"\n (keydown)=\"onStepKeydown($event, i)\"\n >\n <span class=\"solaris-stepper__marker\" [ngClass]=\"getStepClasses(item, i)\">\n @if (getMarkerIcon(item, i)) {\n <i class=\"ph\" [ngClass]=\"getMarkerIcon(item, i)\" aria-hidden=\"true\"></i>\n }\n\n @if (getMarkerText(item, i)) {\n <span>{{ getMarkerText(item, i) }}</span>\n }\n </span>\n\n <span class=\"solaris-stepper__meta\">\n <span class=\"solaris-stepper__label\">\n @if (item.labelKey) {\n {{ item.labelKey | translate }}\n } @else if (item.label) {\n {{ item.label }}\n } @else {\n {{ 'ui.solaris.stepper.step' | translate }} {{ i + 1 }}\n }\n </span>\n\n <span class=\"solaris-stepper__title\">\n @if (item.titleKey) {\n {{ item.titleKey | translate }}\n } @else {\n {{ item.title }}\n }\n </span>\n\n @if (item.descriptionKey || item.description) {\n <span class=\"solaris-stepper__description\">\n @if (item.descriptionKey) {\n {{ item.descriptionKey | translate }}\n } @else {\n {{ item.description }}\n }\n </span>\n }\n\n @if (item.optional) {\n <span class=\"solaris-stepper__optional\">\n {{ 'ui.solaris.stepper.optional' | translate }}\n </span>\n }\n </span>\n\n @if (hasBadge(item, i)) {\n <solaris-badge\n class=\"solaris-stepper__badge\"\n [pill]=\"item.badgePill\"\n [size]=\"item.badgeSize\"\n [variant]=\"getResolvedBadgeVariant(item)\"\n [color]=\"getResolvedBadgeColor(item, i)\"\n aria-hidden=\"true\"\n >\n @if (item.badgeTextKey) {\n {{ item.badgeTextKey | translate }}\n } @else if (item.badgeText) {\n {{ item.badgeText }}\n } @else {\n {{ getAutoBadgeTranslationKey(item, i) | translate }}\n }\n </solaris-badge>\n }\n </button>\n\n @if (!last) {\n <span\n class=\"solaris-stepper__connector\"\n [ngClass]=\"getConnectorClasses(i)\"\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n }\n </div>\n\n @if (renderPanels) {\n <div class=\"solaris-stepper__content\">\n <ng-content></ng-content>\n </div>\n }\n</div>\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[solaris-popover-trigger]',\n standalone: true,\n})\nexport class SolarisPopoverTriggerDirective {\n readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-popover-panel]',\n standalone: true,\n})\nexport class SolarisPopoverPanelDirective {\n readonly templateRef: TemplateRef<any> = inject(TemplateRef<any>);\n}\n","export type SolarisPopoverPlacement =\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'right-start'\n | 'right'\n | 'right-end'\n | 'left-start'\n | 'left'\n | 'left-end';\n\nexport interface SolarisPopoverPositionConfiguration {\n placement: SolarisPopoverPlacement;\n offset: number;\n viewportPadding: number;\n autoFlip: boolean;\n autoShift: boolean;\n matchWidth: boolean;\n}\n\nexport interface SolarisPopoverPositionResult {\n x: number;\n y: number;\n appliedPlacement: SolarisPopoverPlacement;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.max(min, Math.min(max, v));\n}\n\nfunction initialXY(\n anchor: DOMRect,\n panel: DOMRect,\n placement: SolarisPopoverPlacement,\n offset: number,\n) {\n const axMid = anchor.left + anchor.width / 2;\n const ayMid = anchor.top + anchor.height / 2;\n\n switch (placement) {\n case 'bottom-start':\n return { x: anchor.left, y: anchor.bottom + offset };\n case 'bottom':\n return { x: axMid - panel.width / 2, y: anchor.bottom + offset };\n case 'bottom-end':\n return { x: anchor.right - panel.width, y: anchor.bottom + offset };\n\n case 'top-start':\n return { x: anchor.left, y: anchor.top - panel.height - offset };\n case 'top':\n return { x: axMid - panel.width / 2, y: anchor.top - panel.height - offset };\n case 'top-end':\n return { x: anchor.right - panel.width, y: anchor.top - panel.height - offset };\n\n case 'right-start':\n return { x: anchor.right + offset, y: anchor.top };\n case 'right':\n return { x: anchor.right + offset, y: ayMid - panel.height / 2 };\n case 'right-end':\n return { x: anchor.right + offset, y: anchor.bottom - panel.height };\n\n case 'left-start':\n return { x: anchor.left - panel.width - offset, y: anchor.top };\n case 'left':\n return { x: anchor.left - panel.width - offset, y: ayMid - panel.height / 2 };\n case 'left-end':\n return { x: anchor.left - panel.width - offset, y: anchor.bottom - panel.height };\n }\n}\n\nfunction flipPlacement(p: SolarisPopoverPlacement): SolarisPopoverPlacement {\n if (p.startsWith('bottom')) return p.replace('bottom', 'top') as SolarisPopoverPlacement;\n if (p.startsWith('top')) return p.replace('top', 'bottom') as SolarisPopoverPlacement;\n if (p.startsWith('left')) return p.replace('left', 'right') as SolarisPopoverPlacement;\n if (p.startsWith('right')) return p.replace('right', 'left') as SolarisPopoverPlacement;\n return p;\n}\n\nexport function computePopoverPosition(\n anchorRect: DOMRect,\n panelRect: DOMRect,\n configuration: SolarisPopoverPositionConfiguration,\n): SolarisPopoverPositionResult {\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n let applied = configuration.placement;\n\n const fits = (x: number, y: number) => {\n const pad = configuration.viewportPadding;\n const left = x;\n const top = y;\n const right = x + panelRect.width;\n const bottom = y + panelRect.height;\n\n return left >= pad && top >= pad && right <= vw - pad && bottom <= vh - pad;\n };\n\n let pos = initialXY(anchorRect, panelRect, applied, configuration.offset);\n\n if (configuration.autoFlip && !fits(pos.x, pos.y)) {\n const flipped = flipPlacement(applied);\n const flippedPos = initialXY(anchorRect, panelRect, flipped, configuration.offset);\n if (fits(flippedPos.x, flippedPos.y)) {\n applied = flipped;\n pos = flippedPos;\n }\n }\n\n if (configuration.autoShift) {\n const pad = configuration.viewportPadding;\n pos.x = clamp(pos.x, pad, vw - pad - panelRect.width);\n pos.y = clamp(pos.y, pad, vh - pad - panelRect.height);\n }\n\n return { x: pos.x, y: pos.y, appliedPlacement: applied };\n}\n","import {\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n DestroyRef,\n effect,\n EmbeddedViewRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SolarisPopoverTriggerDirective } from '../directives/popover-trigger.directive';\nimport { computePopoverPosition, SolarisPopoverPlacement } from '../model/popover.type';\nimport { SolarisPopoverPanelDirective } from '../directives/popover-panel.directive';\n\n@Component({\n selector: 'solaris-popover',\n standalone: true,\n templateUrl: './popover.html',\n styleUrls: ['./popover.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SolarisPopover {\n private readonly appRef = inject(ApplicationRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() offset = 8;\n @Input() panelClass = '';\n @Input() autoFlip = true;\n @Input() autoShift = true;\n @Input() matchWidth = false;\n @Input() viewportPadding = 8;\n @Input() closeOnEscape = true;\n @Input() closeOnOutsideClick = true;\n @Input() anchorElement?: HTMLElement | null = null;\n @Input() matchWidthElement?: HTMLElement | null = null;\n @Input() placement: SolarisPopoverPlacement = 'bottom-start';\n\n @Output() openChange = new EventEmitter<boolean>();\n\n private readonly _internalOpen = signal(false);\n private readonly _openInput = signal<boolean | null>(null);\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Input() set open(v: boolean | null) {\n this._openInput.set(v);\n }\n get open(): boolean | null {\n return this._openInput();\n }\n\n @ContentChild(SolarisPopoverPanelDirective) panelDir?: SolarisPopoverPanelDirective;\n @ContentChild(SolarisPopoverTriggerDirective) triggerDir?: SolarisPopoverTriggerDirective;\n\n private raf = 0;\n private _setting = false;\n private panelHost?: HTMLDivElement;\n private panelView?: EmbeddedViewRef<any>;\n\n @HostBinding('attr.data-open')\n get dataOpen() {\n return this.isOpen() ? 'true' : null;\n }\n\n constructor() {\n effect(() => {\n if (this.isOpen()) this.show();\n else this.hide();\n });\n\n effect((onCleanup) => {\n if (!this.isOpen()) return;\n\n const onResize = () => this.scheduleReposition();\n const onScroll = () => this.scheduleReposition();\n\n const onPointerDown = (ev: PointerEvent) => {\n if (!this.closeOnOutsideClick) return;\n const t = ev.target as Node | null;\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\n if (!t || !triggerEl || !this.panelHost) return;\n\n const clickedInsidePanel = this.panelHost.contains(t);\n const clickedOnTrigger = triggerEl.contains(t);\n\n if (!clickedInsidePanel && !clickedOnTrigger) {\n this.setOpen(false);\n }\n };\n\n const onKeyDown = (ev: KeyboardEvent) => {\n if (!this.closeOnEscape) return;\n if (ev.key === 'Escape') this.setOpen(false);\n };\n\n window.addEventListener('resize', onResize, { passive: true });\n window.addEventListener('scroll', onScroll, { passive: true, capture: true });\n document.addEventListener('pointerdown', onPointerDown, { capture: true });\n document.addEventListener('keydown', onKeyDown, { capture: true });\n\n onCleanup(() => {\n window.removeEventListener('resize', onResize);\n window.removeEventListener('scroll', onScroll, true as any);\n document.removeEventListener('pointerdown', onPointerDown, true as any);\n document.removeEventListener('keydown', onKeyDown, true as any);\n });\n });\n\n this.destroyRef.onDestroy(() => this.unmountHard());\n }\n\n public toggle() {\n this.setOpen(!this.isOpen());\n }\n\n public setOpen(next: boolean) {\n const current = this.isOpen();\n if (next === current) return;\n if (this._setting) return;\n\n this._setting = true;\n try {\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') {\n this._internalOpen.set(next);\n }\n } finally {\n queueMicrotask(() => (this._setting = false));\n }\n }\n\n private ensureMounted() {\n if (this.panelHost || !this.triggerDir || !this.panelDir) return;\n\n const host = document.createElement('div');\n host.style.top = '0px';\n host.style.left = '0px';\n host.style.display = 'none';\n host.style.position = 'fixed';\n host.style.zIndex = 'var(--solaris-z-max)';\n host.className = `solaris-popover-panel ${this.panelClass || ''}`.trim();\n\n const view = this.panelDir.templateRef.createEmbeddedView({});\n this.appRef.attachView(view);\n view.detectChanges();\n\n for (const node of view.rootNodes) host.appendChild(node);\n document.body.appendChild(host);\n\n this.panelHost = host;\n this.panelView = view;\n }\n\n private show() {\n this.ensureMounted();\n if (!this.panelHost) return;\n\n this.panelHost.style.display = '';\n this.scheduleReposition(true);\n }\n\n private hide() {\n if (!this.panelHost) return;\n this.panelHost.style.display = 'none';\n }\n\n private unmountHard() {\n if (this.raf) cancelAnimationFrame(this.raf);\n this.raf = 0;\n\n if (this.panelView) {\n this.appRef.detachView(this.panelView);\n this.panelView.destroy();\n this.panelView = undefined;\n }\n\n if (this.panelHost) {\n this.panelHost.remove();\n this.panelHost = undefined;\n }\n }\n\n private scheduleReposition(immediate = false) {\n if (!this.panelHost || !this.triggerDir) return;\n\n if (immediate) {\n this.reposition();\n return;\n }\n\n if (this.raf) return;\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition() {\n const triggerEl = this.triggerDir?.elementRef.nativeElement;\n const host = this.panelHost;\n if (!triggerEl || !host) return;\n\n const anchorEl = this.anchorElement ?? triggerEl;\n const anchorRect = anchorEl.getBoundingClientRect();\n const widthEl = this.matchWidthElement ?? (this.matchWidth ? anchorEl : null);\n\n if (this.matchWidth && widthEl) {\n const w = widthEl.getBoundingClientRect().width;\n host.style.boxSizing = 'border-box';\n host.style.width = `${w}px`;\n host.style.minWidth = `${w}px`;\n host.style.maxWidth = `${w}px`;\n } else {\n host.style.width = '';\n host.style.minWidth = '';\n host.style.maxWidth = '';\n }\n\n if (getComputedStyle(host).display === 'none') return;\n\n const panelRect = host.getBoundingClientRect();\n\n const { x, y } = computePopoverPosition(anchorRect, panelRect, {\n placement: this.placement,\n offset: this.offset,\n viewportPadding: this.viewportPadding,\n autoFlip: this.autoFlip,\n autoShift: this.autoShift,\n matchWidth: this.matchWidth,\n });\n\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n }\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n signal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { TabsSize, TabsVariant } from '../model/tab.type';\nimport { SolarisTab } from '../tab/component/tab';\n\n@Component({\n selector: 'solaris-tabs',\n standalone: true,\n imports: [NgClass],\n templateUrl: './tabs.html',\n styleUrls: ['./tabs.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTabs implements AfterContentInit {\n @Input() size: TabsSize = 'md';\n @Input() disabled = false;\n @Input() variant: TabsVariant = 'underline';\n @Input({ alias: 'active-id' }) activeId?: string;\n @Output('active-idChange') activeIdChange = new EventEmitter<string>();\n @Output() tabChange = new EventEmitter<{ id: string }>();\n\n @HostBinding('class') hostClass = 'solaris-tabs-host';\n @ContentChildren(SolarisTab) tabs!: QueryList<SolarisTab>;\n readonly focusId = signal<string | null>(null);\n\n ngAfterContentInit(): void {\n queueMicrotask(() => {\n const first = this.tabs?.get(0);\n if (!this.activeId && first?.id) {\n this.setActive(first.id, false);\n }\n if (!this.focusId() && (this.activeId ?? first?.id)) {\n this.focusId.set(this.activeId ?? first?.id ?? null);\n }\n this.syncTabs();\n this.tabs.changes.subscribe(() => this.syncTabs());\n });\n }\n\n private syncTabs(): void {\n const list = this.tabs?.toArray() ?? [];\n for (const t of list) {\n t._setParent(this);\n t._setDisabled(this.disabled || t.disabled);\n }\n }\n\n isActive(id: string): boolean {\n return this.activeId === id;\n }\n\n isFocusable(id: string): boolean {\n const fid = this.focusId();\n return (fid ?? this.activeId) === id;\n }\n\n setActive(id: string, emit = true): void {\n if (!id) return;\n this.activeId = id;\n this.focusId.set(id);\n if (emit) {\n this.activeIdChange.emit(id);\n this.tabChange.emit({ id });\n }\n }\n\n onKeydown(ev: KeyboardEvent): void {\n if (this.disabled) return;\n\n const keys = ['ArrowLeft', 'ArrowRight', 'Home', 'End'];\n if (!keys.includes(ev.key)) return;\n\n const list = (this.tabs?.toArray() ?? []).filter((t) => !t._isDisabled());\n if (!list.length) return;\n\n ev.preventDefault();\n\n const currentId = this.focusId() ?? this.activeId ?? list[0].id;\n const idx = Math.max(\n 0,\n list.findIndex((t) => t.id === currentId),\n );\n let next = idx;\n\n if (ev.key === 'ArrowLeft') next = (idx - 1 + list.length) % list.length;\n if (ev.key === 'ArrowRight') next = (idx + 1) % list.length;\n if (ev.key === 'Home') next = 0;\n if (ev.key === 'End') next = list.length - 1;\n\n const nextTab = list[next];\n this.focusId.set(nextTab.id);\n nextTab._focus();\n }\n}\n","<div\n [ngClass]=\"['size-' + size, 'variant-' + variant, disabled ? 'is-disabled' : '']\"\n class=\"solaris-tabs\"\n role=\"tablist\"\n (keydown)=\"onKeydown($event)\"\n>\n <ng-content />\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { SolarisTabs } from '../../component/tabs';\n\n@Component({\n selector: 'solaris-tab',\n standalone: true,\n imports: [RouterLink],\n templateUrl: './tab.html',\n styleUrls: ['./tab.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTab {\n @Input() disabled = false;\n @Input() routerLink?: any[] | string;\n @Input({ required: true }) id!: string;\n\n private parent?: SolarisTabs;\n private disabledByParent = false;\n\n constructor(\n private readonly elementRef: ElementRef<HTMLElement>,\n @Optional() parent: SolarisTabs,\n ) {\n this.parent = parent;\n }\n\n _setParent(parent: SolarisTabs): void {\n this.parent = parent;\n }\n\n _setDisabled(disabled: boolean): void {\n this.disabledByParent = disabled;\n }\n\n _isDisabled(): boolean {\n return this.disabled || this.disabledByParent;\n }\n\n _focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n @HostBinding('class')\n get hostClass(): string {\n const active = this.parent?.isActive(this.id);\n return [\n 'solaris-tab',\n active ? 'is-active' : '',\n this._isDisabled() ? 'is-disabled' : '',\n this.routerLink ? 'is-link' : '',\n ]\n .filter(Boolean)\n .join(' ');\n }\n\n @HostBinding('attr.role') role = 'tab';\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number {\n if (this._isDisabled()) return -1;\n return this.parent?.isFocusable(this.id) ? 0 : -1;\n }\n\n @HostBinding('attr.aria-selected')\n get ariaSelected(): string {\n return this.parent?.isActive(this.id) ? 'true' : 'false';\n }\n\n @HostListener('click')\n onClick(): void {\n if (this._isDisabled()) return;\n this.parent?.setActive(this.id, true);\n }\n\n @HostListener('focus')\n onFocus(): void {\n if (this._isDisabled()) return;\n this.parent?.focusId.set(this.id);\n }\n}\n","@if (routerLink) {\n <a class=\"solaris-tab__inner\" [routerLink]=\"routerLink\">\n <ng-content />\n </a>\n} @else {\n <button type=\"button\" class=\"solaris-tab__inner\">\n <ng-content />\n </button>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NgStyle } from '@angular/common';\n\n@Component({\n selector: 'solaris-loading-overlay',\n standalone: true,\n imports: [NgStyle],\n templateUrl: './loading-overlay.html',\n styleUrls: ['./loading-overlay.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisLoadingOverlay implements OnChanges {\n @HostBinding('attr.solaris-loading-overlay') readonly marker = '';\n\n @Input({ alias: 'z-index' }) zIndex?: number;\n @Input() backdrop: 'soft' | 'strong' = 'soft';\n @Input() appearance: 'card' | 'minimal' = 'card';\n @Input({ transform: coerceBoolean }) blur = true;\n @Input({ transform: coerceBoolean }) open = false;\n @Input({ alias: 'lock-scroll', transform: coerceBoolean }) lockScroll = true;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.lockScroll) return;\n\n if (changes['open']) {\n if (this.open) document.documentElement.style.overflow = 'hidden';\n else document.documentElement.style.overflow = '';\n }\n }\n\n get overlayStyle() {\n return this.zIndex == null ? null : { 'z-index': String(this.zIndex) };\n }\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n","@if (open) {\n <div\n class=\"solaris-loading-overlay\"\n [class.backdrop-soft]=\"backdrop === 'soft'\"\n [class.backdrop-strong]=\"backdrop === 'strong'\"\n [class.is-blur]=\"blur\"\n [class.appearance-card]=\"appearance === 'card'\"\n [class.appearance-minimal]=\"appearance === 'minimal'\"\n [ngStyle]=\"overlayStyle\"\n role=\"presentation\"\n >\n <div class=\"solaris-loading-overlay__backdrop\" aria-hidden=\"true\"></div>\n\n <div class=\"solaris-loading-overlay__content\" role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\n <ng-content></ng-content>\n </div>\n </div>\n}\n","import {\n SolarisFloatingOverlayRef,\n SolarisFloatingPosition,\n SolarisFloatingPositionConfiguration,\n SolarisFloatingPositionResult,\n SolarisTooltipRepositionOptions,\n} from './model/tooltip-services.type';\nimport { ElementRef } from '@angular/core';\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\nfunction oppositePosition(position: SolarisFloatingPosition): SolarisFloatingPosition {\n switch (position) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n }\n}\n\nfunction initialXY(\n anchor: DOMRect,\n panel: DOMRect,\n position: SolarisFloatingPosition,\n offset: number,\n): { x: number; y: number } {\n const anchorCenterX = anchor.left + anchor.width / 2;\n const anchorCenterY = anchor.top + anchor.height / 2;\n\n switch (position) {\n case 'top':\n return {\n x: anchorCenterX - panel.width / 2,\n y: anchor.top - panel.height - offset,\n };\n\n case 'bottom':\n return {\n x: anchorCenterX - panel.width / 2,\n y: anchor.bottom + offset,\n };\n\n case 'right':\n return {\n x: anchor.right + offset,\n y: anchorCenterY - panel.height / 2,\n };\n\n case 'left':\n return {\n x: anchor.left - panel.width - offset,\n y: anchorCenterY - panel.height / 2,\n };\n }\n}\n\nexport function computeFloatingPosition(\n anchorRect: DOMRect,\n panelRect: DOMRect,\n configuration: SolarisFloatingPositionConfiguration,\n): SolarisFloatingPositionResult {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const padding = configuration.viewportPadding;\n\n let appliedPosition = configuration.position;\n let position = initialXY(anchorRect, panelRect, appliedPosition, configuration.offset);\n\n const fits = (x: number, y: number): boolean => {\n const left = x;\n const top = y;\n const right = x + panelRect.width;\n const bottom = y + panelRect.height;\n\n return (\n left >= padding &&\n top >= padding &&\n right <= viewportWidth - padding &&\n bottom <= viewportHeight - padding\n );\n };\n\n if (configuration.autoFlip && !fits(position.x, position.y)) {\n const flipped = oppositePosition(appliedPosition);\n const flippedPosition = initialXY(anchorRect, panelRect, flipped, configuration.offset);\n\n if (fits(flippedPosition.x, flippedPosition.y)) {\n appliedPosition = flipped;\n position = flippedPosition;\n }\n }\n\n if (configuration.autoShift) {\n position.x = clamp(position.x, padding, viewportWidth - padding - panelRect.width);\n position.y = clamp(position.y, padding, viewportHeight - padding - panelRect.height);\n }\n\n return {\n x: position.x,\n y: position.y,\n appliedPosition,\n };\n}\n\nexport function repositionTooltipOverlay<T>(\n anchor: ElementRef<HTMLElement>,\n overlayRef: SolarisFloatingOverlayRef<T>,\n options: SolarisTooltipRepositionOptions,\n setAppliedPosition: (position: SolarisFloatingPosition) => void,\n): void {\n const anchorRect = anchor.nativeElement.getBoundingClientRect();\n const panelRect = overlayRef.hostElement.getBoundingClientRect();\n\n const result = computeFloatingPosition(anchorRect, panelRect, options);\n\n overlayRef.setTransform(result.x, result.y);\n setAppliedPosition(result.appliedPosition);\n}\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n Type,\n createComponent,\n inject,\n} from '@angular/core';\n\nimport {\n SolarisFloatingOverlayOptions,\n SolarisFloatingOverlayRef,\n SolarisFloatingRepositionContext,\n} from './model/tooltip-services.type';\nimport { computeFloatingPosition } from './floating-position.util';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SolarisFloatingOverlayService {\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n\n create<T>(\n component: Type<T>,\n options: SolarisFloatingOverlayOptions = {},\n ): SolarisFloatingOverlayRef<T> {\n const id = this.createId(options.idPrefix ?? 'solaris-floating');\n\n const host = document.createElement('div');\n host.id = id;\n host.style.position = 'fixed';\n host.style.top = '0';\n host.style.left = '0';\n host.style.display = 'block';\n host.style.width = 'max-content';\n host.style.maxWidth = 'max-content';\n host.style.zIndex = options.zIndex ?? 'var(--solaris-z-tooltip, 1200)';\n host.style.pointerEvents = options.pointerEvents ?? 'none';\n host.style.transform = 'translate3d(0, 0, 0)';\n\n if (options.panelClass?.trim()) {\n host.className = options.panelClass.trim();\n }\n\n document.body.appendChild(host);\n\n const componentRef = createComponent(component, {\n environmentInjector: this.injector,\n hostElement: host,\n });\n\n this.appRef.attachView(componentRef.hostView);\n componentRef.changeDetectorRef.detectChanges();\n\n return {\n id,\n hostElement: host,\n componentRef,\n\n setTransform(x: number, y: number): void {\n host.style.transform = `translate3d(${Math.round(x)}px, ${Math.round(y)}px, 0)`;\n },\n\n destroy: (): void => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n host.remove();\n },\n };\n }\n\n reposition<T>(context: SolarisFloatingRepositionContext<T>): void {\n const anchorRect = context.anchor.getBoundingClientRect();\n const panelRect = context.overlayRef.hostElement.getBoundingClientRect();\n\n const result = computeFloatingPosition(anchorRect, panelRect, context.options);\n\n context.overlayRef.setTransform(result.x, result.y);\n context.setAppliedPosition(result.appliedPosition);\n }\n\n clearFloatingTimers(showTimer: number, hideTimer: number, raf: number): void {\n globalThis.clearTimeout(showTimer);\n globalThis.clearTimeout(hideTimer);\n\n if (raf) {\n cancelAnimationFrame(raf);\n }\n }\n\n destroyOverlay<T>(overlayRef?: SolarisFloatingOverlayRef<T>): void {\n overlayRef?.destroy();\n }\n\n private createId(prefix: string): string {\n const random =\n typeof crypto !== 'undefined' && 'randomUUID' in crypto\n ? crypto.randomUUID()\n : `${Date.now()}-${Math.round(Math.random() * 1_000_000)}`;\n\n return `${prefix}-${random}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../../tooltip/model/tooltip.type';\n\n@Component({\n selector: 'solaris-rich-tooltip-panel',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './rich-tooltip-panel.html',\n styleUrls: ['./rich-tooltip-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisRichTooltipPanel {\n readonly template = input<TemplateRef<unknown> | null>(null);\n readonly position = input<SolarisTooltipPosition>('top');\n readonly variant = input<SolarisTooltipVariant>('inverse');\n readonly size = input<SolarisTooltipSize>('md');\n}\n","<div\n class=\"solaris-rich-tooltip\"\n [attr.data-position]=\"position()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n role=\"tooltip\"\n>\n <div class=\"solaris-rich-tooltip__content\">\n @if (template()) {\n <ng-container [ngTemplateOutlet]=\"template()\"></ng-container>\n }\n </div>\n\n <span class=\"solaris-rich-tooltip__arrow\" aria-hidden=\"true\"></span>\n</div>\n","import {\n Directive,\n ElementRef,\n Renderer2,\n TemplateRef,\n effect,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../../tooltip/model/tooltip.type';\nimport { SolarisFloatingOverlayService } from '../../../core/overlay/floating-overlay.service';\nimport { SolarisFloatingOverlayRef } from '../../../core/overlay/model/tooltip-services.type';\nimport { repositionTooltipOverlay } from '../../../core/overlay/floating-position.util';\nimport { SolarisRichTooltipPanel } from '../component/rich-tooltip-panel';\n\n@Directive({\n selector: '[solaris-rich-tooltip]',\n standalone: true,\n})\nexport class SolarisRichTooltipDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\n\n readonly template = input<TemplateRef<unknown> | null>(null, {\n alias: 'solaris-rich-tooltip',\n });\n\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\n alias: 'tooltip-position',\n });\n\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\n alias: 'tooltip-variant',\n });\n\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\n alias: 'tooltip-size',\n });\n\n readonly tooltipDisabled = input(false, {\n alias: 'tooltip-disabled',\n });\n\n readonly tooltipShowDelay = input(300, {\n alias: 'tooltip-show-delay',\n });\n\n readonly tooltipHideDelay = input(120, {\n alias: 'tooltip-hide-delay',\n });\n\n readonly tooltipOffset = input(8, {\n alias: 'tooltip-offset',\n });\n\n readonly tooltipAutoFlip = input(true, {\n alias: 'tooltip-auto-flip',\n });\n\n readonly tooltipAutoShift = input(true, {\n alias: 'tooltip-auto-shift',\n });\n\n readonly tooltipViewportPadding = input(8, {\n alias: 'tooltip-viewport-padding',\n });\n\n private overlayRef?: SolarisFloatingOverlayRef<SolarisRichTooltipPanel>;\n private showTimer = 0;\n private hideTimer = 0;\n private raf = 0;\n private isTriggerHovered = false;\n private isPanelHovered = false;\n private hasFocusInside = false;\n\n private readonly cleanups: Array<() => void> = [];\n\n constructor() {\n const host = this.elementRef.nativeElement;\n\n this.cleanups.push(\n this.renderer.listen(host, 'mouseenter', () => {\n this.isTriggerHovered = true;\n this.scheduleShow();\n }),\n this.renderer.listen(host, 'mouseleave', () => {\n this.isTriggerHovered = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(host, 'focusin', () => {\n this.hasFocusInside = true;\n this.scheduleShow();\n }),\n this.renderer.listen(host, 'focusout', () => {\n this.hasFocusInside = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\n this.renderer.listen(document, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n );\n\n effect(() => {\n if (!this.overlayRef) return;\n\n this.applyPanelInputs();\n this.scheduleReposition();\n });\n }\n\n private scheduleShow(): void {\n if (this.tooltipDisabled()) return;\n if (!this.template()) return;\n\n globalThis.clearTimeout(this.hideTimer);\n globalThis.clearTimeout(this.showTimer);\n\n this.showTimer = globalThis.setTimeout(() => {\n this.show();\n }, this.tooltipShowDelay());\n }\n\n private scheduleHideIfSafe(): void {\n globalThis.clearTimeout(this.showTimer);\n globalThis.clearTimeout(this.hideTimer);\n\n this.hideTimer = globalThis.setTimeout(() => {\n if (!this.isTriggerHovered && !this.isPanelHovered && !this.hasFocusInside) {\n this.hide();\n }\n }, this.tooltipHideDelay());\n }\n\n private show(): void {\n if (this.overlayRef || this.tooltipDisabled()) return;\n if (!this.template()) return;\n\n this.overlayRef = this.floatingOverlay.create(SolarisRichTooltipPanel, {\n idPrefix: 'solaris-rich-tooltip',\n zIndex: 'var(--solaris-z-tooltip, 1200)',\n pointerEvents: 'auto',\n });\n\n this.applyPanelInputs();\n this.bindPanelInteractions();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'aria-describedby',\n this.overlayRef.id,\n );\n\n requestAnimationFrame(() => this.reposition());\n }\n\n private bindPanelInteractions(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.hostElement;\n\n this.cleanups.push(\n this.renderer.listen(panel, 'mouseenter', () => {\n this.isPanelHovered = true;\n globalThis.clearTimeout(this.hideTimer);\n }),\n this.renderer.listen(panel, 'mouseleave', () => {\n this.isPanelHovered = false;\n this.scheduleHideIfSafe();\n }),\n this.renderer.listen(panel, 'focusin', () => {\n this.hasFocusInside = true;\n globalThis.clearTimeout(this.hideTimer);\n }),\n this.renderer.listen(panel, 'focusout', () => {\n this.hasFocusInside = false;\n this.scheduleHideIfSafe();\n }),\n );\n }\n\n private hide(): void {\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\n this.raf = 0;\n\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\n\n this.floatingOverlay.destroyOverlay(this.overlayRef);\n this.overlayRef = undefined;\n\n this.isPanelHovered = false;\n this.hasFocusInside = false;\n }\n\n private applyPanelInputs(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.componentRef;\n\n panel.setInput('template', this.template());\n panel.setInput('position', this.tooltipPosition());\n panel.setInput('variant', this.tooltipVariant());\n panel.setInput('size', this.tooltipSize());\n\n panel.changeDetectorRef.detectChanges();\n }\n\n private scheduleReposition(): void {\n if (!this.overlayRef) return;\n if (this.raf) return;\n\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition(): void {\n if (!this.overlayRef) return;\n\n repositionTooltipOverlay(\n this.elementRef,\n this.overlayRef,\n {\n position: this.tooltipPosition(),\n offset: this.tooltipOffset(),\n viewportPadding: this.tooltipViewportPadding(),\n autoFlip: this.tooltipAutoFlip(),\n autoShift: this.tooltipAutoShift(),\n },\n (position) => {\n this.overlayRef?.componentRef.setInput('position', position);\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\n },\n );\n }\n\n ngOnDestroy(): void {\n this.hide();\n\n for (const cleanup of this.cleanups) {\n cleanup();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n booleanAttribute,\n computed,\n inject,\n signal,\n} from '@angular/core';\n\nimport {\n SolarisButtonColorInput,\n SolarisButtonVariant,\n SolarisRadiusInput,\n} from '../model/button.type';\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'surface',\n 'success',\n 'warning',\n 'error',\n 'info',\n 'gradient',\n]);\nfunction resolveRadius(v: SolarisRadiusInput): string {\n const s = String(v).trim();\n switch (s) {\n case 'none':\n return '0';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return s;\n }\n}\n\n@Directive({\n selector: 'button[solaris-button], a[solaris-button]',\n standalone: true,\n})\nexport class SolarisButtonDirective {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private readonly _loading = signal(false);\n private readonly _disabled = signal(false);\n private readonly _iconOnly = signal(false);\n private readonly _fullWidth = signal(false);\n private readonly _badgeOverlay = signal(false);\n private readonly _textColor = signal<string | null>(null);\n private readonly _customColor = signal<string | null>(null);\n private readonly _size = signal<SolarisSizePreset>('md');\n private readonly _variant = signal<SolarisButtonVariant>('solid');\n private readonly _radius = signal<SolarisRadiusInput | null>(null);\n private readonly _color = signal<SolarisColorPreset | 'custom'>('primary');\n\n private readonly isAnchor = computed(\n () => this.elementRef.nativeElement.tagName.toLowerCase() === 'a',\n );\n\n @Input() set size(v: SolarisSizePreset) {\n if (v) this._size.set(v);\n }\n @Input() set variant(v: SolarisButtonVariant) {\n if (v) this._variant.set(v);\n }\n @Input() set color(v: SolarisButtonColorInput) {\n if (v == null || String(v).trim() === '') return;\n\n const value = String(v).trim();\n if (PRESET_COLORS.has(value as SolarisColorPreset)) {\n this._color.set(value as SolarisColorPreset);\n this._customColor.set(null);\n } else {\n this._color.set('custom');\n this._customColor.set(value);\n }\n }\n @Input() set textColor(v: string | null | undefined) {\n const value = v == null || String(v).trim() === '' ? null : String(v).trim();\n this._textColor.set(value);\n }\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\n const value = v == null || String(v).trim() === '' ? null : v;\n this._radius.set(value);\n }\n @Input({ transform: booleanAttribute }) set loading(v: boolean) {\n this._loading.set(v);\n }\n @Input({ transform: booleanAttribute }) set iconOnly(v: boolean) {\n this._iconOnly.set(v);\n }\n @Input({ transform: booleanAttribute }) set disabled(v: boolean) {\n this._disabled.set(v);\n }\n @Input({ transform: booleanAttribute }) set fullWidth(v: boolean) {\n this._fullWidth.set(v);\n }\n @Input({ transform: booleanAttribute }) set badgeOverlay(v: boolean) {\n this._badgeOverlay.set(v);\n }\n\n @HostBinding('attr.solaris-button') readonly attr = '';\n @HostBinding('attr.tabindex') get tabIndex() {\n return this.isAnchor() && (this._disabled() || this._loading()) ? -1 : null;\n }\n @HostBinding('attr.aria-busy') get ariaBusy() {\n return this._loading() ? 'true' : null;\n }\n @HostBinding('attr.data-size') get dataSize() {\n return this._size();\n }\n @HostBinding('attr.data-color') get dataColor() {\n return this._color();\n }\n @HostBinding('attr.disabled') get nativeDisabled() {\n const isButton = !this.isAnchor();\n return isButton && (this._disabled() || this._loading()) ? '' : null;\n }\n @HostBinding('attr.data-variant') get dataVariant() {\n return this._variant();\n }\n @HostBinding('attr.aria-disabled') get ariaDisabled() {\n return this.isAnchor() && (this._disabled() || this._loading()) ? 'true' : null;\n }\n @HostBinding('attr.data-icon-only') get dataIconOnly() {\n return this._iconOnly() ? 'true' : null;\n }\n @HostBinding('attr.data-full-width') get dataFullWidth() {\n return this._fullWidth() ? 'true' : null;\n }\n @HostBinding('style.--sb-custom') get customColorValue() {\n return this._customColor() ?? null;\n }\n @HostBinding('attr.data-custom-ink') get dataCustomInk() {\n return this._textColor() ? 'true' : null;\n }\n @HostBinding('style.--sb-custom-ink') get customInkValue() {\n return this._textColor() ?? null;\n }\n @HostBinding('attr.data-badge-overlay') get dataBadgeOverlay() {\n return this._badgeOverlay() ? 'true' : null;\n }\n @HostBinding('style.--solaris-button-radius') get buttonRadius() {\n return this._radius() ? resolveRadius(this._radius()!) : null;\n }\n\n @HostListener('click', ['$event']) onClick(ev: Event) {\n if (!this.isAnchor()) return;\n if (this._disabled() || this._loading()) {\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n}\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport {\n SolarisNotificationConfig,\n SolarisNotificationConfigInput,\n SolarisNotificationPosition,\n} from '../model/notification.types';\n\nexport const SOLARIS_NOTIFICATION_POSITIONS: readonly SolarisNotificationPosition[] = [\n 'top-right',\n 'top-left',\n 'top-center',\n 'bottom-right',\n 'bottom-left',\n 'bottom-center',\n] as const;\n\nexport const SOLARIS_NOTIFICATION_DEFAULT_CONFIG: SolarisNotificationConfig = {\n defaultPosition: 'bottom-center',\n defaultDuration: 15000,\n maxVisiblePerPosition: 4,\n hoverPause: false,\n newestOnTop: true,\n expandSingle: false,\n persistInCenter: true,\n translationScope: 'solaris.notifications',\n};\n\nexport const SOLARIS_NOTIFICATION_CONFIG = new InjectionToken<SolarisNotificationConfig>(\n 'SOLARIS_NOTIFICATION_CONFIG',\n {\n providedIn: 'root',\n factory: () => SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\n },\n);\n\nfunction mergeConfig(input: SolarisNotificationConfigInput = {}): SolarisNotificationConfig {\n return {\n ...SOLARIS_NOTIFICATION_DEFAULT_CONFIG,\n ...input,\n };\n}\n\nexport function provideSolarisNotifications(\n input: SolarisNotificationConfigInput = {},\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: SOLARIS_NOTIFICATION_CONFIG,\n useValue: mergeConfig(input),\n },\n ]);\n}\n","import { Injectable, computed, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport {\n SOLARIS_TRANSLATION,\n SOLARIS_TRANSLATION_CONFIGURATION,\n SolarisTranslationParams,\n} from '@educarehq/solaris-services';\n\nimport { SOLARIS_NOTIFICATION_CONFIG } from '../config/notification.config';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisNotificationIntlService {\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n private readonly notificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\n private readonly translationConfig = inject(SOLARIS_TRANSLATION_CONFIGURATION);\n\n private readonly activeLang = toSignal(this.translationService.languageChanges(), {\n initialValue: this.translationService.language(),\n });\n\n private readonly prefix = computed(() => {\n this.activeLang();\n\n const uiScope = this.translationConfig.uiScope ?? 'ui';\n const namespace = this.notificationConfig.translationScope;\n\n return `${uiScope}.${namespace}`;\n });\n\n translate(key: string, params?: SolarisTranslationParams): string {\n this.activeLang();\n\n const isAbsoluteKey =\n key.startsWith('ui.') || key.startsWith('solaris.') || key.startsWith('notification.');\n\n const finalKey = isAbsoluteKey ? key : `${this.prefix()}.${key}`;\n return this.translationService.translate(finalKey, params);\n }\n\n close(): string {\n return this.translate('close');\n }\n\n expand(): string {\n return this.translate('expand');\n }\n\n collapse(): string {\n return this.translate('collapse');\n }\n\n stopTimer(): string {\n return this.translate('stopTimer');\n }\n\n resumeTimer(): string {\n return this.translate('resumeTimer');\n }\n\n paused(): string {\n return this.translate('paused');\n }\n\n centerTitle(): string {\n return this.translate('centerTitle');\n }\n\n emptyCenter(): string {\n return this.translate('emptyCenter');\n }\n\n clearHistory(): string {\n return this.translate('clearHistory');\n }\n\n autoClose(seconds: number): string {\n return this.translate('autoClose', {\n seconds,\n unit: seconds === 1 ? this.translate('units.second') : this.translate('units.seconds'),\n });\n }\n}\n","import { DestroyRef, Injectable, PLATFORM_ID, computed, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport {\n SolarisNotificationConfig,\n SolarisNotificationInput,\n SolarisNotificationKind,\n SolarisNotificationPosition,\n SolarisNotificationRecord,\n SolarisNotificationRef,\n} from '../model/notification.types';\nimport {\n SOLARIS_NOTIFICATION_CONFIG,\n SOLARIS_NOTIFICATION_POSITIONS,\n} from '../config/notification.config';\nimport { SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisNotificationService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n readonly config: SolarisNotificationConfig = inject(SOLARIS_NOTIFICATION_CONFIG);\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n\n readonly centerOpen = signal(false);\n private readonly _items = signal<SolarisNotificationRecord[]>([]);\n\n readonly items = computed(() => this._items());\n readonly visibleItems = computed(() => this._items().filter((item) => item.state === 'visible'));\n readonly centerItems = computed(() =>\n [...this._items()].sort((a, b) => b.createdAt - a.createdAt),\n );\n\n private lastTick = 0;\n private readonly intervalId: number | null = null;\n\n constructor() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.lastTick = performance.now();\n this.intervalId = globalThis.setInterval(() => this.tick(), 100);\n\n const handleVisibility = () => {\n const hidden = document.visibilityState !== 'visible';\n\n this._items.update((items) =>\n items.map((item) =>\n item.duration == null ? item : { ...item, pausedByVisibility: hidden },\n ),\n );\n };\n\n document.addEventListener('visibilitychange', handleVisibility, {\n passive: true,\n });\n\n this.destroyRef.onDestroy(() => {\n if (this.intervalId != null) {\n globalThis.clearInterval(this.intervalId);\n }\n\n document.removeEventListener('visibilitychange', handleVisibility);\n });\n }\n\n success(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'success' });\n }\n\n warning(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'warning' });\n }\n\n error(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'error' });\n }\n\n info(input: Omit<SolarisNotificationInput, 'kind'>): SolarisNotificationRef {\n return this.show({ ...input, kind: 'info' });\n }\n\n show(input: SolarisNotificationInput): SolarisNotificationRef {\n const item = this.createRecord(input);\n\n this._items.update((items) => (this.config.newestOnTop ? [item, ...items] : [...items, item]));\n\n this.rebalance();\n return this.createRef(item.id);\n }\n\n visibleByPosition(position: SolarisNotificationPosition): SolarisNotificationRecord[] {\n return this.visibleItems().filter((item) => item.position === position);\n }\n\n isPaused(item: SolarisNotificationRecord): boolean {\n return item.pausedByHover || item.pausedByUser || item.pausedByVisibility;\n }\n\n dismiss(id: string): void {\n this._items.update((items) => {\n if (this.config.persistInCenter) {\n return items.map((item) =>\n item.id === id\n ? {\n ...item,\n state: 'archived',\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n }\n : item,\n );\n }\n\n return items.filter((item) => item.id !== id);\n });\n\n this.rebalance();\n }\n\n remove(id: string): void {\n this._items.update((items) => items.filter((item) => item.id !== id));\n }\n\n clearHistory(): void {\n this._items.update((items) => items.filter((item) => item.state !== 'archived'));\n }\n\n pause(id: string): void {\n this.patch(id, { pausedByUser: true });\n }\n\n resume(id: string): void {\n this.patch(id, { pausedByUser: false });\n }\n\n toggleUserPause(id: string): void {\n const current = this.find(id);\n if (!current) return;\n\n this.patch(id, { pausedByUser: !current.pausedByUser });\n }\n\n setHoverPaused(id: string, paused: boolean): void {\n const current = this.find(id);\n if (!current?.pauseOnHover) return;\n\n this.patch(id, { pausedByHover: paused });\n }\n\n toggleExpanded(id: string): void {\n const current = this.find(id);\n if (!current?.expandable) return;\n\n this._items.update((items) =>\n items.map((item) => {\n if (item.id === id) {\n return { ...item, expanded: !item.expanded };\n }\n\n if (\n this.config.expandSingle &&\n item.position === current.position &&\n item.state === 'visible'\n ) {\n return { ...item, expanded: false };\n }\n\n return item;\n }),\n );\n }\n\n update(id: string, patch: Partial<SolarisNotificationInput>): void {\n this._items.update((items) =>\n items.map((item) => {\n if (item.id !== id) return item;\n\n const hasDurationPatch = this.hasOwn(patch, 'duration');\n const hasTitlePatch =\n this.hasOwn(patch, 'title') ||\n this.hasOwn(patch, 'titleKey') ||\n this.hasOwn(patch, 'titleParams');\n\n const hasDescriptionPatch =\n this.hasOwn(patch, 'description') ||\n this.hasOwn(patch, 'descriptionKey') ||\n this.hasOwn(patch, 'descriptionParams');\n\n const duration = hasDurationPatch ? (patch.duration ?? null) : item.duration;\n\n const title = hasTitlePatch\n ? this.resolveRequiredText(patch.title, patch.titleKey, patch.titleParams, item.title)\n : item.title;\n\n const description = hasDescriptionPatch\n ? this.resolveOptionalText(\n patch.description,\n patch.descriptionKey,\n patch.descriptionParams,\n item.description,\n )\n : item.description;\n\n const hasExplicitExpandable = this.hasOwn(patch, 'expandable');\n\n let expandable = item.expandable;\n\n if (hasExplicitExpandable) {\n expandable = patch.expandable ?? item.expandable;\n } else if (hasDescriptionPatch) {\n expandable = Boolean(description?.trim().length);\n }\n\n return {\n ...item,\n title,\n description,\n kind: patch.kind ?? item.kind,\n position: patch.position ?? item.position,\n duration,\n remainingMs: hasDurationPatch ? (duration ?? null) : item.remainingMs,\n expandable,\n expanded: patch.expanded ?? item.expanded,\n closeable: patch.closeable ?? item.closeable,\n pauseOnHover: patch.pauseOnHover ?? item.pauseOnHover,\n actions: patch.actions ?? item.actions,\n ariaLive: patch.ariaLive ?? item.ariaLive,\n data: patch.data ?? item.data,\n };\n }),\n );\n\n this.rebalance();\n }\n\n openCenter(): void {\n this.centerOpen.set(true);\n }\n\n closeCenter(): void {\n this.centerOpen.set(false);\n }\n\n toggleCenter(): void {\n this.centerOpen.update((value) => !value);\n }\n\n private tick(): void {\n const now = performance.now();\n const delta = now - this.lastTick;\n this.lastTick = now;\n\n let shouldRebalance = false;\n const expiredIds = new Set<string>();\n\n this._items.update((items) => {\n const next: SolarisNotificationRecord[] = items.map((item): SolarisNotificationRecord => {\n if (item.state !== 'visible') return item;\n if (item.duration == null || item.remainingMs == null) return item;\n if (this.isPaused(item)) return item;\n\n const remainingMs = Math.max(0, item.remainingMs - delta);\n\n if (remainingMs === 0) {\n shouldRebalance = true;\n expiredIds.add(item.id);\n\n if (this.config.persistInCenter) {\n return {\n ...item,\n remainingMs: 0,\n state: 'archived',\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n };\n }\n\n return item;\n }\n\n return {\n ...item,\n remainingMs,\n };\n });\n\n if (this.config.persistInCenter) {\n return next;\n }\n\n return next.filter((item) => !expiredIds.has(item.id));\n });\n\n if (shouldRebalance) {\n this.rebalance();\n }\n }\n\n private rebalance(): void {\n this._items.update((items) => {\n let next = [...items];\n\n for (const position of SOLARIS_NOTIFICATION_POSITIONS) {\n const visibleCount = next.filter(\n (item) => item.position === position && item.state === 'visible',\n ).length;\n\n const freeSlots = this.config.maxVisiblePerPosition - visibleCount;\n if (freeSlots <= 0) continue;\n\n const queued = next\n .filter((item) => item.position === position && item.state === 'queued')\n .sort((a, b) =>\n this.config.newestOnTop ? b.createdAt - a.createdAt : a.createdAt - b.createdAt,\n )\n .slice(0, freeSlots);\n\n if (!queued.length) continue;\n const queuedIds = new Set(queued.map((item) => item.id));\n next = next.map((item) => (queuedIds.has(item.id) ? { ...item, state: 'visible' } : item));\n }\n\n return next;\n });\n }\n\n private createRecord(input: SolarisNotificationInput): SolarisNotificationRecord {\n const duration = input.duration === undefined ? this.config.defaultDuration : input.duration;\n\n const kind = input.kind ?? 'info';\n const position = input.position ?? this.config.defaultPosition;\n\n const title = this.resolveRequiredText(input.title, input.titleKey, input.titleParams, '');\n\n const description = this.resolveOptionalText(\n input.description,\n input.descriptionKey,\n input.descriptionParams,\n null,\n );\n\n const expandable = input.expandable ?? Boolean(description?.trim().length);\n\n return {\n id: this.createId(),\n title,\n description,\n kind,\n position,\n state: 'queued',\n duration,\n remainingMs: duration ?? null,\n expandable,\n expanded: input.expanded ?? false,\n closeable: input.closeable ?? true,\n pauseOnHover: input.pauseOnHover ?? this.config.hoverPause,\n pausedByHover: false,\n pausedByUser: false,\n pausedByVisibility: false,\n actions: input.actions ?? [],\n ariaLive: input.ariaLive ?? this.resolveAriaLive(kind),\n data: input.data ?? null,\n createdAt: Date.now(),\n };\n }\n\n private resolveAriaLive(kind: SolarisNotificationKind): 'polite' | 'assertive' {\n return kind === 'success' || kind === 'info' ? 'polite' : 'assertive';\n }\n\n private createRef(id: string): SolarisNotificationRef {\n return {\n id,\n dismiss: () => this.dismiss(id),\n remove: () => this.remove(id),\n pause: () => this.pause(id),\n resume: () => this.resume(id),\n toggleExpanded: () => this.toggleExpanded(id),\n update: (patch) => this.update(id, patch),\n };\n }\n\n private createId(): string {\n const uuid = globalThis.crypto?.randomUUID?.();\n return uuid ?? `sn_${Date.now()}_${Math.random().toString(36).slice(2, 10)}`;\n }\n\n private find(id: string): SolarisNotificationRecord | undefined {\n return this._items().find((item) => item.id === id);\n }\n\n private patch(\n id: string,\n patch: Partial<\n Pick<SolarisNotificationRecord, 'pausedByHover' | 'pausedByUser' | 'pausedByVisibility'>\n >,\n ): void {\n this._items.update((items) =>\n items.map((item) => (item.id === id ? { ...item, ...patch } : item)),\n );\n }\n\n private resolveRequiredText(\n value: string | undefined,\n key: string | undefined,\n params: Record<string, unknown> | undefined,\n fallback: string,\n ): string {\n if (key) {\n return this.translationService.translate(key, params);\n }\n\n if (value == null) {\n return fallback;\n }\n\n return value;\n }\n\n private resolveOptionalText(\n value: string | null | undefined,\n key: string | undefined,\n params: Record<string, unknown> | undefined,\n fallback: string | null,\n ): string | null {\n if (key) {\n return this.translationService.translate(key, params);\n }\n\n if (value === undefined) {\n return fallback;\n }\n\n return value ?? null;\n }\n\n private hasOwn<T extends object>(obj: T, key: PropertyKey): boolean {\n return Object.hasOwn(obj, key);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisNotificationAction,\n SolarisNotificationRecord,\n} from '../../model/notification.types';\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\n\n@Component({\n selector: 'solaris-notification-item',\n standalone: true,\n imports: [NgClass, SolarisButtonDirective],\n templateUrl: './notification-item.html',\n styleUrls: ['./notification-item.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationItemComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly intl = inject(SolarisNotificationIntlService);\n\n readonly item = input.required<SolarisNotificationRecord>();\n readonly mode = input<'toast' | 'center'>('toast');\n\n readonly paused = computed(() => this.notificationService.isPaused(this.item()));\n\n readonly secondsLeft = computed(() => {\n const remaining = this.item().remainingMs ?? 0;\n return Math.max(1, Math.ceil(remaining / 1000));\n });\n\n readonly progress = computed(() => {\n const duration = this.item().duration;\n const remaining = this.item().remainingMs;\n\n if (duration == null || remaining == null || duration <= 0) return 0;\n return Math.max(0, Math.min(100, (remaining / duration) * 100));\n });\n\n readonly iconClass = computed(() => {\n switch (this.item().kind) {\n case 'success':\n return 'ph-check-circle';\n case 'warning':\n return 'ph-warning-circle';\n case 'error':\n return 'ph-x-circle';\n default:\n return 'ph-info';\n }\n });\n\n protected readonly isCompactHeader = computed(() => {\n const hasDescription = Boolean(this.item().description?.trim().length);\n return !hasDescription && !this.item().expandable;\n });\n\n toggleExpanded(): void {\n this.notificationService.toggleExpanded(this.item().id);\n }\n\n toggleUserPause(): void {\n this.notificationService.toggleUserPause(this.item().id);\n }\n\n close(): void {\n this.notificationService.dismiss(this.item().id);\n }\n\n onMouseEnter(): void {\n if (this.mode() !== 'toast') return;\n this.notificationService.setHoverPaused(this.item().id, true);\n }\n\n onMouseLeave(): void {\n if (this.mode() !== 'toast') return;\n this.notificationService.setHoverPaused(this.item().id, false);\n }\n\n async runAction(action: SolarisNotificationAction): Promise<void> {\n await action.run?.({\n id: this.item().id,\n data: this.item().data,\n dismiss: () => this.notificationService.dismiss(this.item().id),\n remove: () => this.notificationService.remove(this.item().id),\n update: (patch) => this.notificationService.update(this.item().id, patch),\n });\n\n if (action.closeOnClick !== false) {\n this.notificationService.dismiss(this.item().id);\n }\n }\n\n protected resolveActionLabel(action: SolarisNotificationAction): string {\n if (action.labelKey) {\n return this.intl.translate(action.labelKey, action.labelParams);\n }\n\n return action.label ?? '';\n }\n}\n","<article\n class=\"sn\"\n [attr.data-kind]=\"item().kind\"\n [attr.data-mode]=\"mode()\"\n [attr.data-expanded]=\"item().expanded ? 'true' : 'false'\"\n [attr.data-paused]=\"paused() ? 'true' : 'false'\"\n [attr.aria-live]=\"mode() === 'toast' ? item().ariaLive : null\"\n [attr.role]=\"item().ariaLive === 'assertive' ? 'alert' : 'status'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <div class=\"sn__header\" [attr.data-align]=\"isCompactHeader() ? 'center' : 'start'\">\n <div class=\"sn__leading\">\n <span class=\"sn__icon\" aria-hidden=\"true\">\n <i class=\"ph\" [ngClass]=\"iconClass()\"></i>\n </span>\n\n <div class=\"sn__heading\">\n <strong class=\"sn__title\">{{ item().title }}</strong>\n\n @if (!item().expanded && item().description) {\n <p class=\"sn__description sn__description--clamped\">\n {{ item().description }}\n </p>\n }\n </div>\n </div>\n\n <div class=\"sn__controls\">\n @if (item().expandable && item().description) {\n <button\n type=\"button\"\n class=\"sn__icon-btn\"\n [attr.aria-expanded]=\"item().expanded\"\n [attr.aria-label]=\"item().expanded ? intl.collapse() : intl.expand()\"\n (click)=\"toggleExpanded()\"\n >\n <i\n class=\"ph\"\n [ngClass]=\"item().expanded ? 'ph-caret-up' : 'ph-caret-down'\"\n aria-hidden=\"true\"\n ></i>\n </button>\n }\n\n @if (item().closeable) {\n <button\n type=\"button\"\n class=\"sn__icon-btn\"\n [attr.aria-label]=\"intl.close()\"\n (click)=\"close()\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n\n @if (item().expanded && item().description) {\n <div class=\"sn__body\">\n <p class=\"sn__body-text\">{{ item().description }}</p>\n @if (item().actions.length) {\n <div class=\"sn__actions\">\n @for (action of item().actions; track action.id) {\n <button\n type=\"button\"\n solaris-button\n [variant]=\"action.variant ?? 'outline'\"\n [color]=\"action.color ?? 'surface'\"\n [size]=\"action.size ?? 'sm'\"\n [radius]=\"action.radius ?? 'md'\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"runAction(action)\"\n >\n {{ resolveActionLabel(action) }}\n </button>\n }\n </div>\n }\n </div>\n }\n\n @if (mode() === 'toast' && item().duration !== null) {\n <div class=\"sn__footer\">\n @if (!paused()) {\n <p class=\"sn__timer\">\n {{ intl.autoClose(secondsLeft()) }}\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\n {{ intl.stopTimer() }}</button\n >.\n </p>\n } @else {\n <p class=\"sn__timer\">\n {{ intl.paused() }}\n <button type=\"button\" class=\"sn__timer-link\" (click)=\"toggleUserPause()\">\n {{ intl.resumeTimer() }}</button\n >.\n </p>\n }\n </div>\n\n <div class=\"sn__progress\" aria-hidden=\"true\">\n <span [style.width.%]=\"progress()\"></span>\n </div>\n }\n</article>\n","import { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';\n\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\nimport { SolarisNotificationIntlService } from '../../service/notification-intl.service';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\n\n@Component({\n selector: 'solaris-notification-center',\n standalone: true,\n imports: [SolarisButtonDirective, SolarisNotificationItemComponent],\n templateUrl: './notification-center.html',\n styleUrls: ['./notification-center.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationCenterComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly intl = inject(SolarisNotificationIntlService);\n\n @HostListener('document:keydown.escape') onEscape(): void {\n if (this.notificationService.centerOpen()) {\n this.notificationService.closeCenter();\n }\n }\n}\n","@if (notificationService.centerOpen()) {\n <div class=\"snc__backdrop\" (click)=\"notificationService.closeCenter()\"></div>\n\n <aside class=\"snc\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"intl.centerTitle()\">\n <header class=\"snc__header\">\n <div>\n <strong class=\"snc__title\">{{ intl.centerTitle() }}</strong>\n </div>\n\n <div class=\"snc__controls\">\n <button\n type=\"button\"\n solaris-button\n variant=\"outline\"\n color=\"surface\"\n size=\"sm\"\n radius=\"md\"\n (click)=\"notificationService.clearHistory()\"\n >\n {{ intl.clearHistory() }}\n </button>\n\n <button\n type=\"button\"\n class=\"snc__icon-btn\"\n [attr.aria-label]=\"intl.close()\"\n (click)=\"notificationService.closeCenter()\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </header>\n\n <div class=\"snc__list\">\n @for (item of notificationService.centerItems(); track item.id) {\n <solaris-notification-item [item]=\"item\" mode=\"center\" />\n } @empty {\n <div class=\"snc__empty\">\n {{ intl.emptyCenter() }}\n </div>\n }\n </div>\n </aside>\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\n\nimport { SolarisNotificationCenterComponent } from '../center/notification-center';\nimport { SOLARIS_NOTIFICATION_POSITIONS } from '../../config/notification.config';\nimport { SolarisNotificationService } from '../../service/notification.service';\nimport { SolarisNotificationPosition } from '../../model/notification.types';\nimport { SolarisNotificationItemComponent } from '../item/notification-item';\n\n@Component({\n selector: 'solaris-notification-host',\n standalone: true,\n imports: [SolarisNotificationItemComponent, SolarisNotificationCenterComponent],\n templateUrl: './notification-host.html',\n styleUrls: ['./notification-host.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisNotificationHostComponent {\n protected readonly notificationService = inject(SolarisNotificationService);\n protected readonly positions = SOLARIS_NOTIFICATION_POSITIONS;\n readonly withCenter = input(true);\n\n visibleByPosition(position: SolarisNotificationPosition) {\n return this.notificationService.visibleByPosition(position);\n }\n}\n","@for (position of positions; track position) {\n <section class=\"snh__stack\" [attr.data-position]=\"position\">\n @for (item of visibleByPosition(position); track item.id) {\n <solaris-notification-item [item]=\"item\" mode=\"toast\" />\n }\n </section>\n}\n\n@if (withCenter()) {\n <solaris-notification-center />\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../model/tooltip.type';\n\n@Component({\n selector: 'solaris-tooltip-panel',\n standalone: true,\n templateUrl: './tooltip-panel.html',\n styleUrls: ['./tooltip-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisTooltipPanel {\n readonly text = input('');\n readonly prefixIcon = input('');\n readonly size = input<SolarisTooltipSize>('md');\n readonly position = input<SolarisTooltipPosition>('top');\n readonly variant = input<SolarisTooltipVariant>('inverse');\n}\n","<div\n class=\"solaris-tooltip\"\n [attr.data-position]=\"position()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n role=\"tooltip\"\n>\n @if (prefixIcon()) {\n <span class=\"solaris-tooltip__prefix\" aria-hidden=\"true\">\n <i [class]=\"prefixIcon()\"></i>\n </span>\n }\n\n <span class=\"solaris-tooltip__content\">\n {{ text() }}\n </span>\n\n <span class=\"solaris-tooltip__arrow\" aria-hidden=\"true\"></span>\n</div>\n","import {\n Directive,\n ElementRef,\n Renderer2,\n computed,\n effect,\n inject,\n input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n SolarisTooltipPosition,\n SolarisTooltipSize,\n SolarisTooltipVariant,\n} from '../model/tooltip.type';\nimport { SolarisFloatingOverlayService } from '../../../core/overlay/floating-overlay.service';\nimport { SolarisFloatingOverlayRef } from '../../../core/overlay/model/tooltip-services.type';\nimport { SolarisTooltipPanel } from '../component/tooltip-panel';\n\n@Directive({\n selector: '[solaris-tooltip]',\n standalone: true,\n})\nexport class SolarisTooltipDirective implements OnDestroy {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly floatingOverlay = inject(SolarisFloatingOverlayService);\n private readonly renderer = inject(Renderer2);\n\n readonly text = input('', { alias: 'solaris-tooltip' });\n\n readonly tooltipPosition = input<SolarisTooltipPosition>('top', {\n alias: 'tooltip-position',\n });\n\n readonly tooltipVariant = input<SolarisTooltipVariant>('inverse', {\n alias: 'tooltip-variant',\n });\n\n readonly tooltipSize = input<SolarisTooltipSize>('md', {\n alias: 'tooltip-size',\n });\n\n readonly tooltipPrefixIcon = input('', {\n alias: 'tooltip-prefix-icon',\n });\n\n readonly tooltipDisabled = input(false, {\n alias: 'tooltip-disabled',\n });\n\n readonly tooltipShowDelay = input(300, {\n alias: 'tooltip-show-delay',\n });\n\n readonly tooltipHideDelay = input(80, {\n alias: 'tooltip-hide-delay',\n });\n\n readonly tooltipOffset = input(8, {\n alias: 'tooltip-offset',\n });\n\n readonly tooltipAutoFlip = input(true, {\n alias: 'tooltip-auto-flip',\n });\n\n readonly tooltipAutoShift = input(true, {\n alias: 'tooltip-auto-shift',\n });\n\n readonly tooltipViewportPadding = input(8, {\n alias: 'tooltip-viewport-padding',\n });\n\n readonly tooltipKey = input('', {\n alias: 'tooltip-key',\n });\n\n readonly tooltipParams = input<Record<string, unknown> | undefined>(undefined, {\n alias: 'tooltip-params',\n });\n\n private overlayRef?: SolarisFloatingOverlayRef<SolarisTooltipPanel>;\n private showTimer = 0;\n private hideTimer = 0;\n private raf = 0;\n\n private readonly cleanups: Array<() => void> = [];\n\n private readonly resolvedText = computed(() => {\n const key = this.tooltipKey().trim();\n\n if (key) {\n return key;\n }\n\n return this.text().trim();\n });\n\n constructor() {\n const host = this.elementRef.nativeElement;\n\n this.cleanups.push(\n this.renderer.listen(host, 'mouseenter', () => this.scheduleShow()),\n this.renderer.listen(host, 'mouseleave', () => this.scheduleHide()),\n this.renderer.listen(host, 'focusin', () => this.scheduleShow()),\n this.renderer.listen(host, 'focusout', () => this.scheduleHide()),\n this.renderer.listen(host, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.hide();\n }\n }),\n this.renderer.listen(globalThis, 'resize', () => this.scheduleReposition()),\n this.renderer.listen(globalThis, 'scroll', () => this.scheduleReposition()),\n );\n\n effect(() => {\n if (!this.overlayRef) return;\n\n this.applyPanelInputs();\n this.scheduleReposition();\n });\n }\n\n private scheduleShow(): void {\n if (this.tooltipDisabled()) return;\n if (!this.resolvedText()) return;\n\n globalThis.clearTimeout(this.hideTimer);\n globalThis.clearTimeout(this.showTimer);\n\n this.showTimer = globalThis.setTimeout(() => {\n this.show();\n }, this.tooltipShowDelay());\n }\n\n private scheduleHide(): void {\n globalThis.clearTimeout(this.showTimer);\n globalThis.clearTimeout(this.hideTimer);\n\n this.hideTimer = globalThis.setTimeout(() => {\n this.hide();\n }, this.tooltipHideDelay());\n }\n\n private show(): void {\n if (this.overlayRef || this.tooltipDisabled()) return;\n if (!this.resolvedText()) return;\n\n this.overlayRef = this.floatingOverlay.create(SolarisTooltipPanel, {\n idPrefix: 'solaris-tooltip',\n zIndex: 'var(--solaris-z-tooltip, 1200)',\n pointerEvents: 'none',\n });\n\n this.applyPanelInputs();\n\n this.renderer.setAttribute(\n this.elementRef.nativeElement,\n 'aria-describedby',\n this.overlayRef.id,\n );\n\n requestAnimationFrame(() => this.reposition());\n }\n\n private hide(): void {\n this.floatingOverlay.clearFloatingTimers(this.showTimer, this.hideTimer, this.raf);\n this.raf = 0;\n\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-describedby');\n\n this.floatingOverlay.destroyOverlay(this.overlayRef);\n this.overlayRef = undefined;\n }\n\n private applyPanelInputs(): void {\n if (!this.overlayRef) return;\n\n const panel = this.overlayRef.componentRef;\n\n panel.setInput('text', this.resolvedText());\n panel.setInput('position', this.tooltipPosition());\n panel.setInput('variant', this.tooltipVariant());\n panel.setInput('size', this.tooltipSize());\n panel.setInput('prefixIcon', this.tooltipPrefixIcon());\n\n panel.changeDetectorRef.detectChanges();\n }\n\n private scheduleReposition(): void {\n if (!this.overlayRef) return;\n\n if (this.raf) return;\n\n this.raf = requestAnimationFrame(() => {\n this.raf = 0;\n this.reposition();\n });\n }\n\n private reposition(): void {\n if (!this.overlayRef) return;\n\n this.floatingOverlay.reposition({\n anchor: this.elementRef.nativeElement,\n overlayRef: this.overlayRef,\n options: {\n position: this.tooltipPosition(),\n offset: this.tooltipOffset(),\n viewportPadding: this.tooltipViewportPadding(),\n autoFlip: this.tooltipAutoFlip(),\n autoShift: this.tooltipAutoShift(),\n },\n setAppliedPosition: (position) => {\n this.overlayRef?.componentRef.setInput('position', position);\n this.overlayRef?.componentRef.changeDetectorRef.detectChanges();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.hide();\n\n for (const cleanup of this.cleanups) {\n cleanup();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport {\n LoadingType,\n SolarisLoadingColor,\n SolarisLoadingEasing,\n SolarisLoadingPresetColor,\n SolarisLoadingSize,\n SolarisLoadingSpeed,\n SolarisLoadingDashDensity,\n} from '../model/loading.type';\n\nconst PRESET_COLORS: readonly SolarisLoadingPresetColor[] = [\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'surface',\n] as const;\n\n@Component({\n selector: 'solaris-loading',\n standalone: true,\n templateUrl: './loading.html',\n styleUrls: ['./loading.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisLoading {\n @HostBinding('attr.solaris-loading') readonly marker = '';\n\n @Input() label?: string;\n @Input() value: number | null = null;\n @Input() type: LoadingType = 'spinner';\n @Input() size: SolarisLoadingSize = 'md';\n @Input() speed: SolarisLoadingSpeed = 'md';\n @Input() color: SolarisLoadingColor = 'primary';\n @Input() easing: SolarisLoadingEasing = 'linear';\n @Input() trail: 'forward' | 'reverse' = 'forward';\n @Input() dashDensity: SolarisLoadingDashDensity = 'md';\n @Input({ transform: coerceBoolean }) indeterminate = false;\n\n get percent(): number {\n return clamp(this.value ?? 0, 0, 100);\n }\n get ariaLabel(): string {\n return this.label ?? 'Loading';\n }\n get dashedSpokes(): Spoke[] {\n return buildSpokes(this.dashedCount, 0.12);\n }\n get inlineColor(): string | null {\n return isPresetColor(this.color) ? null : String(this.color);\n }\n get ariaValueNow(): number | null {\n if (this.role !== 'progressbar') return null;\n if (this.indeterminate || this.value == null) return null;\n return clamp(this.value, 0, 100);\n }\n get role(): 'status' | 'progressbar' {\n return this.type === 'progress' || this.type === 'bar' ? 'progressbar' : 'status';\n }\n get dataColor(): SolarisLoadingPresetColor | null {\n return isPresetColor(this.color) ? this.color : null;\n }\n\n private get dashedCount(): number {\n switch (this.dashDensity) {\n case 'low':\n return 8;\n case 'high':\n return 16;\n case 'md':\n default:\n return 12;\n }\n }\n}\n\nfunction isPresetColor(v: unknown): v is SolarisLoadingPresetColor {\n return PRESET_COLORS.includes(v as SolarisLoadingPresetColor);\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n\nfunction clamp(n: number, min: number, max: number) {\n return Math.max(min, Math.min(max, n));\n}\n\ntype Spoke = { angle: number; opacity: number };\n\nconst SPOKE_CACHE = new Map<number, Spoke[]>();\n\nfunction buildSpokes(count: number, minOpacity = 0.12): Spoke[] {\n const cached = SPOKE_CACHE.get(count);\n if (cached) return cached;\n\n const res: Spoke[] = [];\n const step = 360 / count;\n const span = 1 - minOpacity;\n for (let i = 0; i < count; i++) {\n const t = count === 1 ? 0 : i / (count - 1);\n const opacity = 1 - span * t;\n res.push({ angle: i * step, opacity: Number(opacity.toFixed(2)) });\n }\n\n SPOKE_CACHE.set(count, res);\n return res;\n}\n","<div\n class=\"solaris-loading\"\n [attr.data-type]=\"type\"\n [attr.data-size]=\"size\"\n [attr.data-color]=\"dataColor\"\n [attr.data-speed]=\"speed\"\n [attr.data-easing]=\"easing\"\n [class.is-indeterminate]=\"indeterminate || value === null\"\n [attr.role]=\"role\"\n [attr.aria-label]=\"ariaLabel\"\n [style.--solaris-loading-color]=\"inlineColor\"\n [attr.aria-valuemin]=\"role === 'progressbar' ? 0 : null\"\n [attr.aria-valuemax]=\"role === 'progressbar' ? 100 : null\"\n [attr.aria-valuenow]=\"role === 'progressbar' ? ariaValueNow : null\"\n>\n @if (type === 'spinner') {\n <span class=\"solaris-loading__spinner\" aria-hidden=\"true\"></span>\n }\n\n @if (type === 'spinner-dashed') {\n <svg class=\"solaris-loading__spinner-stacked\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n @for (spoke of dashedSpokes; track spoke.angle) {\n <line\n x1=\"22\"\n y1=\"6\"\n x2=\"22\"\n y2=\"12\"\n [attr.opacity]=\"spoke.opacity\"\n [attr.transform]=\"'rotate(' + spoke.angle + ' 22 22)'\"\n ></line>\n }\n </svg>\n }\n\n @if (type === 'progress') {\n <svg class=\"solaris-loading__ring\" viewBox=\"0 0 44 44\" aria-hidden=\"true\">\n <circle class=\"ring-track\" cx=\"22\" cy=\"22\" r=\"18\"></circle>\n <circle\n class=\"ring-value\"\n cx=\"22\"\n cy=\"22\"\n r=\"18\"\n [attr.stroke-dasharray]=\"113.097\"\n [attr.stroke-dashoffset]=\"113.097 - (113.097 * percent) / 100\"\n ></circle>\n </svg>\n\n <span class=\"solaris-loading__percent\" aria-hidden=\"true\"> {{ percent }}% </span>\n }\n\n @if (type === 'bar') {\n <span class=\"solaris-loading__bar\" aria-hidden=\"true\">\n <span\n class=\"solaris-loading__bar-inner\"\n [style.width.%]=\"indeterminate || value === null ? 30 : percent\"\n ></span>\n </span>\n }\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { SolarisCarouselContext } from '../model/carousel.type';\n\n@Directive({\n selector: 'ng-template[solaris-carousel-overlay]',\n standalone: true,\n})\nexport class SolarisCarouselOverlayDirective<TItem = unknown> {\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\nimport { SolarisCarouselContext } from '../model/carousel.type';\n\n@Directive({\n selector: 'ng-template[solaris-carousel-slide]',\n standalone: true,\n})\nexport class SolarisCarouselSlideDirective<TItem = unknown> {\n readonly templateRef = inject<TemplateRef<SolarisCarouselContext<TItem>>>(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostBinding,\n HostListener,\n TemplateRef,\n Type,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\n\nimport {\n SolarisCarouselAppearance,\n SolarisCarouselAspect,\n SolarisCarouselChangeEvent,\n SolarisCarouselContext,\n SolarisCarouselControlsPosition,\n SolarisCarouselItem,\n SolarisCarouselNavigationSource,\n SolarisCarouselOverlayDirective,\n SolarisCarouselRadius,\n SolarisCarouselSlideDirective,\n SolarisCarouselTextResolver,\n} from '../carousel.index';\n\n@Component({\n selector: 'solaris-carousel',\n standalone: true,\n imports: [NgTemplateOutlet, NgComponentOutlet],\n templateUrl: './carousel.html',\n styleUrls: ['./carousel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisCarousel {\n private readonly destroyRef = inject(DestroyRef);\n\n private timer: ReturnType<typeof setInterval> | null = null;\n private readonly projectedSlide = contentChild(SolarisCarouselSlideDirective);\n private readonly projectedOverlay = contentChild(SolarisCarouselOverlayDirective);\n\n readonly activeIndex = model(0);\n\n readonly items = input<SolarisCarouselItem[]>([]);\n readonly radius = input<SolarisCarouselRadius>('lg');\n readonly aspect = input<SolarisCarouselAspect>('16/9');\n readonly appearance = input<SolarisCarouselAppearance>('plain');\n readonly controlsPosition = input<SolarisCarouselControlsPosition>('inside');\n\n readonly loop = input(true, { transform: booleanAttribute });\n readonly autoplay = input(false, { transform: booleanAttribute });\n readonly intervalMs = input(4500, { transform: numberAttribute });\n readonly transitionMs = input(520, { transform: numberAttribute });\n\n readonly pauseOnHover = input(true, { transform: booleanAttribute });\n readonly pauseOnFocus = input(true, { transform: booleanAttribute });\n readonly resetAutoplayOnInteraction = input(true, { transform: booleanAttribute });\n\n readonly showDots = input(true, { transform: booleanAttribute });\n readonly showArrows = input(true, { transform: booleanAttribute });\n readonly keyboard = input(true, { transform: booleanAttribute });\n\n readonly ariaLabel = input('Carousel');\n readonly ariaLabelKey = input<string | undefined>(undefined);\n\n readonly previousLabel = input('Previous slide');\n readonly previousLabelKey = input<string | undefined>(undefined);\n\n readonly nextLabel = input('Next slide');\n readonly nextLabelKey = input<string | undefined>(undefined);\n\n readonly navigationLabel = input('Slide navigation');\n readonly navigationLabelKey = input<string | undefined>(undefined);\n\n readonly goToSlideLabel = input('Go to slide');\n readonly goToSlideLabelKey = input<string | undefined>(undefined);\n\n readonly openLabel = input('Open');\n readonly openLabelKey = input<string | undefined>(undefined);\n\n readonly textResolver = input<SolarisCarouselTextResolver | null>(null);\n\n readonly slideTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\n readonly overlayTpl = input<TemplateRef<SolarisCarouselContext> | undefined>(undefined);\n\n readonly slideComponent = input<Type<unknown> | undefined>(undefined);\n readonly overlayComponent = input<Type<unknown> | undefined>(undefined);\n\n readonly slideChange = output<SolarisCarouselChangeEvent>();\n\n protected readonly viewReady = signal(false);\n protected readonly paused = signal(false);\n\n protected readonly count = computed(() => this.items().length);\n protected readonly hasMultiple = computed(() => this.count() > 1);\n\n protected readonly isFirst = computed(() => this.activeIndex() === 0);\n protected readonly isLast = computed(() => this.activeIndex() === this.count() - 1);\n\n protected readonly canGoPrev = computed(() => this.loop() || !this.isFirst());\n protected readonly canGoNext = computed(() => this.loop() || !this.isLast());\n\n protected readonly isPlaying = computed(() => {\n return this.autoplay() && this.hasMultiple() && !this.paused();\n });\n\n protected readonly canRunAutoplay = computed(() => {\n return this.viewReady() && this.autoplay() && this.hasMultiple() && !this.paused();\n });\n\n protected readonly resolvedSlideTpl = computed(() => {\n return this.slideTpl() ?? this.projectedSlide()?.templateRef;\n });\n\n protected readonly resolvedOverlayTpl = computed(() => {\n return this.overlayTpl() ?? this.projectedOverlay()?.templateRef;\n });\n\n @HostBinding('attr.data-aspect') get dataAspect(): SolarisCarouselAspect {\n return this.aspect();\n }\n\n @HostBinding('attr.data-radius') get dataRadius(): SolarisCarouselRadius {\n return this.radius();\n }\n\n @HostBinding('attr.data-appearance') get dataAppearance(): SolarisCarouselAppearance {\n return this.appearance();\n }\n\n @HostBinding('attr.data-controls-position')\n get dataControlsPosition(): SolarisCarouselControlsPosition {\n return this.controlsPosition();\n }\n\n constructor() {\n afterNextRender(() => this.viewReady.set(true));\n\n effect((onCleanup) => {\n this.stopTimer();\n\n if (!this.canRunAutoplay()) return;\n\n const ms = this.intervalMs();\n\n if (!Number.isFinite(ms) || ms <= 0) return;\n\n this.startTimer(ms);\n\n onCleanup(() => this.stopTimer());\n });\n\n effect(() => {\n const len = this.count();\n const idx = this.activeIndex();\n\n if (!len) {\n if (idx !== 0) this.activeIndex.set(0);\n return;\n }\n\n if (idx > len - 1) {\n this.activeIndex.set(len - 1);\n }\n\n if (idx < 0) {\n this.activeIndex.set(0);\n }\n });\n\n this.destroyRef.onDestroy(() => this.stopTimer());\n }\n\n protected readonly goTo = (\n index: number,\n source: SolarisCarouselNavigationSource = 'api',\n ): void => {\n const length = this.count();\n\n if (!length) return;\n\n const previousIndex = this.activeIndex();\n const nextIndex = this.normalizeIndex(index, length);\n\n if (nextIndex === previousIndex) return;\n\n this.activeIndex.set(nextIndex);\n\n this.slideChange.emit({\n index: nextIndex,\n previousIndex,\n item: this.items()[nextIndex],\n source,\n });\n\n if (source !== 'autoplay' && this.resetAutoplayOnInteraction()) {\n this.restartAutoplay();\n }\n };\n\n private normalizeIndex(index: number, length: number): number {\n if (this.loop()) {\n return ((index % length) + length) % length;\n }\n\n return Math.max(0, Math.min(index, length - 1));\n }\n\n protected readonly next = (source: SolarisCarouselNavigationSource = 'api'): void => {\n if (!this.canGoNext()) return;\n this.goTo(this.activeIndex() + 1, source);\n };\n\n protected readonly prev = (source: SolarisCarouselNavigationSource = 'api'): void => {\n if (!this.canGoPrev()) return;\n this.goTo(this.activeIndex() - 1, source);\n };\n\n protected readonly pause = (): void => {\n this.paused.set(true);\n };\n\n protected readonly resume = (): void => {\n this.paused.set(false);\n };\n\n protected onMouseEnter(): void {\n if (!this.pauseOnHover()) return;\n this.pause();\n }\n\n protected onMouseLeave(): void {\n if (!this.pauseOnHover()) return;\n this.resume();\n }\n\n protected onFocusIn(): void {\n if (!this.pauseOnFocus()) return;\n this.pause();\n }\n\n protected onFocusOut(): void {\n if (!this.pauseOnFocus()) return;\n this.resume();\n }\n\n protected carouselContext(index: number): SolarisCarouselContext {\n const item = this.items()[index];\n\n return {\n $implicit: item,\n item,\n\n index,\n active: index === this.activeIndex(),\n first: index === 0,\n last: index === this.count() - 1,\n count: this.count(),\n\n isPlaying: this.isPlaying(),\n\n goTo: this.goTo,\n next: this.next,\n prev: this.prev,\n\n pause: this.pause,\n resume: this.resume,\n };\n }\n\n protected slideComponentInputs(index: number): Record<string, unknown> {\n const context = this.carouselContext(index);\n const itemInputs = context.item.slideInputs ?? {};\n\n if (!context.item.passCarouselContext) {\n return itemInputs;\n }\n\n return {\n item: context.item,\n index: context.index,\n active: context.active,\n first: context.first,\n last: context.last,\n count: context.count,\n isPlaying: context.isPlaying,\n goTo: context.goTo,\n next: context.next,\n prev: context.prev,\n pause: context.pause,\n resume: context.resume,\n ...itemInputs,\n };\n }\n\n protected overlayComponentInputs(index: number): Record<string, unknown> {\n const context = this.carouselContext(index);\n const itemInputs = context.item.overlayInputs ?? {};\n\n if (!context.item.passOverlayContext) {\n return itemInputs;\n }\n\n return {\n item: context.item,\n index: context.index,\n active: context.active,\n first: context.first,\n last: context.last,\n count: context.count,\n isPlaying: context.isPlaying,\n goTo: context.goTo,\n next: context.next,\n prev: context.prev,\n pause: context.pause,\n resume: context.resume,\n ...itemInputs,\n };\n }\n\n protected text(text?: string, key?: string): string {\n const directValue = text?.trim();\n\n if (directValue) return directValue;\n\n const resolver = this.textResolver();\n\n if (key && resolver) return resolver(key);\n\n return '';\n }\n\n protected itemAlt(item: SolarisCarouselItem): string {\n return this.text(item.alt, item.altKey);\n }\n\n protected itemAriaLabel(item: SolarisCarouselItem): string | null {\n return (\n this.text(item.ariaLabel, item.ariaLabelKey) ||\n this.text(item.alt, item.altKey) ||\n this.text(this.openLabel(), this.openLabelKey()) ||\n null\n );\n }\n\n protected rootAriaLabel(): string {\n return this.text(this.ariaLabel(), this.ariaLabelKey()) || 'Carousel';\n }\n\n protected previousAriaLabel(): string {\n return this.text(this.previousLabel(), this.previousLabelKey()) || 'Previous slide';\n }\n\n protected nextAriaLabel(): string {\n return this.text(this.nextLabel(), this.nextLabelKey()) || 'Next slide';\n }\n\n protected navigationAriaLabel(): string {\n return this.text(this.navigationLabel(), this.navigationLabelKey()) || 'Slide navigation';\n }\n\n protected dotAriaLabel(index: number): string {\n const label = this.text(this.goToSlideLabel(), this.goToSlideLabelKey()) || 'Go to slide';\n return `${label} ${index + 1}`;\n }\n\n protected trackByItem(index: number, item: SolarisCarouselItem): string | number {\n return item.id ?? index;\n }\n\n private startTimer(ms: number): void {\n this.timer = setInterval(() => this.next('autoplay'), ms);\n }\n\n private stopTimer(): void {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.timer = null;\n }\n\n private restartAutoplay(): void {\n if (!this.autoplay() || this.paused() || !this.hasMultiple()) return;\n\n this.stopTimer();\n\n const ms = this.intervalMs();\n\n if (!Number.isFinite(ms) || ms <= 0) return;\n\n this.startTimer(ms);\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeyDown(ev: KeyboardEvent): void {\n if (!this.keyboard() || !this.hasMultiple()) return;\n\n switch (ev.key) {\n case 'ArrowLeft':\n ev.preventDefault();\n this.prev('keyboard');\n break;\n\n case 'ArrowRight':\n ev.preventDefault();\n this.next('keyboard');\n break;\n\n case 'Home':\n ev.preventDefault();\n this.goTo(0, 'keyboard');\n break;\n\n case 'End':\n ev.preventDefault();\n this.goTo(this.count() - 1, 'keyboard');\n break;\n }\n }\n}\n","<div\n class=\"solaris-carousel\"\n role=\"region\"\n aria-roledescription=\"carousel\"\n [attr.aria-label]=\"rootAriaLabel()\"\n [attr.tabindex]=\"keyboard() ? '0' : null\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut()\"\n>\n <div class=\"solaris-carousel__viewport\">\n <div\n class=\"solaris-carousel__track\"\n [style.transition-duration.ms]=\"transitionMs()\"\n [style.transform]=\"'translate3d(' + -activeIndex() * 100 + '%, 0, 0)'\"\n >\n @for (item of items(); track trackByItem($index, item)) {\n <div\n class=\"solaris-carousel__slide\"\n role=\"group\"\n aria-roledescription=\"slide\"\n [attr.aria-label]=\"$index + 1 + ' / ' + count()\"\n [attr.aria-hidden]=\"$index !== activeIndex() ? 'true' : null\"\n >\n @if (resolvedSlideTpl(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl; context: carouselContext($index)\"> </ng-container>\n } @else if (item.slideComponent; as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\n </ng-container>\n } @else if (slideComponent(); as component) {\n <ng-container *ngComponentOutlet=\"component; inputs: slideComponentInputs($index)\">\n </ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultImageSlide; context: carouselContext($index)\">\n </ng-container>\n }\n\n @if (resolvedOverlayTpl(); as tpl) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngTemplateOutlet=\"tpl; context: carouselContext($index)\">\n </ng-container>\n </div>\n } @else if (item.overlayComponent; as component) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\n </ng-container>\n </div>\n } @else if (overlayComponent(); as component) {\n <div class=\"solaris-carousel__overlay\">\n <ng-container *ngComponentOutlet=\"component; inputs: overlayComponentInputs($index)\">\n </ng-container>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n @if (showArrows() && hasMultiple()) {\n <button\n type=\"button\"\n class=\"solaris-carousel__arrow is-prev\"\n [disabled]=\"!canGoPrev()\"\n [attr.aria-label]=\"previousAriaLabel()\"\n (click)=\"prev('arrow')\"\n >\n <i class=\"ph ph-caret-left\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n type=\"button\"\n class=\"solaris-carousel__arrow is-next\"\n [disabled]=\"!canGoNext()\"\n [attr.aria-label]=\"nextAriaLabel()\"\n (click)=\"next('arrow')\"\n >\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\n </button>\n }\n\n @if (showDots() && hasMultiple()) {\n <div class=\"solaris-carousel__dots\" role=\"tablist\" [attr.aria-label]=\"navigationAriaLabel()\">\n @for (item of items(); track trackByItem($index, item)) {\n <button\n type=\"button\"\n class=\"solaris-carousel__dot\"\n role=\"tab\"\n [class.is-active]=\"$index === activeIndex()\"\n [attr.aria-label]=\"dotAriaLabel($index)\"\n [attr.aria-selected]=\"$index === activeIndex() ? 'true' : 'false'\"\n [attr.aria-current]=\"$index === activeIndex() ? 'true' : null\"\n (click)=\"goTo($index, 'dot')\"\n ></button>\n }\n </div>\n }\n</div>\n\n<ng-template #defaultImageSlide let-item>\n @if (item.src) {\n @if (item.href) {\n <a\n class=\"solaris-carousel__media\"\n [href]=\"item.href\"\n [attr.target]=\"item.target ?? null\"\n [attr.aria-label]=\"itemAriaLabel(item)\"\n >\n <img\n class=\"solaris-carousel__img\"\n [src]=\"item.src\"\n [attr.srcset]=\"item.srcSet ?? null\"\n [attr.sizes]=\"item.sizes ?? null\"\n [attr.alt]=\"itemAlt(item)\"\n />\n </a>\n } @else {\n <div class=\"solaris-carousel__media\">\n <img\n class=\"solaris-carousel__img\"\n [src]=\"item.src\"\n [attr.srcset]=\"item.srcSet ?? null\"\n [attr.sizes]=\"item.sizes ?? null\"\n [attr.alt]=\"itemAlt(item)\"\n />\n </div>\n }\n } @else {\n <div class=\"solaris-carousel__empty\" aria-hidden=\"true\"></div>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'solaris-section',\n standalone: true,\n imports: [NgClass],\n templateUrl: './section.html',\n styleUrls: ['./section.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisSectionComponent {\n @Input() title?: string;\n @Input() description?: string;\n @Input() appearance: 'plain' | 'card' = 'plain';\n @Input() density: 'comfortable' | 'compact' = 'comfortable';\n}\n","<section class=\"solaris-section\" [ngClass]=\"['appearance-' + appearance, 'density-' + density]\">\n @if (title || description) {\n <header class=\"solaris-section__header\">\n @if (title) {\n <h2 class=\"solaris-section__title\">{{ title }}</h2>\n }\n @if (description) {\n <p class=\"solaris-section__description\">{{ description }}</p>\n }\n </header>\n }\n\n <div class=\"solaris-section__content\">\n <ng-content></ng-content>\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n DividerLabelAlign,\n DividerOrientation,\n DividerSpacing,\n DividerStrength,\n DividerVariant,\n} from '../model/divider.type';\n\n@Component({\n selector: 'solaris-divider',\n standalone: true,\n imports: [NgClass],\n templateUrl: './divider.html',\n styleUrls: ['./divider.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { role: 'separator' },\n})\nexport class SolarisDivider {\n @Input() label?: string;\n @Input() inset = false;\n @Input() spacing: DividerSpacing = 'none';\n @Input() variant: DividerVariant = 'solid';\n @Input() strength: DividerStrength = 'normal';\n @Input() orientation: DividerOrientation = 'horizontal';\n @Input({ alias: 'label-align' }) labelAlign: DividerLabelAlign = 'center';\n\n @HostBinding('class') hostClass = 'solaris-divider-host';\n @HostBinding('attr.aria-orientation') get ariaOrientation() {\n return this.orientation === 'vertical' ? 'vertical' : 'horizontal';\n }\n\n get hasLabel(): boolean {\n return !!this.label && this.orientation === 'horizontal';\n }\n}\n","<div\n class=\"solaris-divider\"\n [ngClass]=\"[\n 'orientation-' + orientation,\n 'spacing-' + spacing,\n 'strength-' + strength,\n 'variant-' + variant,\n inset ? 'is-inset' : '',\n hasLabel ? 'has-label' : '',\n hasLabel ? 'label-' + labelAlign : '',\n ]\"\n>\n @if (hasLabel) {\n <span class=\"solaris-divider__line\"></span>\n <span class=\"solaris-divider__label\">{{ label }}</span>\n <span class=\"solaris-divider__line\"></span>\n }\n</div>\n","import { InjectionToken } from '@angular/core';\n\nexport const SOLARIS_DIALOG_STEP_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_STEP_DATA');\n","import { InjectionToken } from '@angular/core';\n\nexport const SOLARIS_DIALOG_DATA = new InjectionToken<unknown>('SOLARIS_DIALOG_DATA');\n","import { SolarisDialogAction, SolarisDialogHeaderConfiguration } from '../model/dialog.type';\nimport { Observable, Subject } from 'rxjs';\n\nexport class SolarisDialogRef<TResult = unknown> {\n private readonly actionSubject = new Subject<SolarisDialogAction<TResult>>();\n private readonly closedSubject = new Subject<TResult | undefined>();\n\n private closeFn?: (result?: TResult) => void;\n private updateActionsFn?: (actions: SolarisDialogAction<TResult>[]) => void;\n private updateHeaderFn?: (header: SolarisDialogHeaderConfiguration) => void;\n\n afterClosed(): Observable<TResult | undefined> {\n return this.closedSubject.asObservable();\n }\n\n afterAction(): Observable<SolarisDialogAction<TResult>> {\n return this.actionSubject.asObservable();\n }\n\n close(result?: TResult): void {\n this.closeFn?.(result);\n }\n\n updateActions(actions: SolarisDialogAction<TResult>[]): void {\n this.updateActionsFn?.(actions);\n }\n\n updateHeader(header: SolarisDialogHeaderConfiguration): void {\n this.updateHeaderFn?.(header);\n }\n\n _attachCloseFn(fn: (result?: TResult) => void): void {\n this.closeFn = fn;\n }\n\n _attachActionsUpdateFn(fn: (actions: SolarisDialogAction<TResult>[]) => void): void {\n this.updateActionsFn = fn;\n }\n\n _attachHeaderUpdateFn(fn: (header: SolarisDialogHeaderConfiguration) => void): void {\n this.updateHeaderFn = fn;\n }\n\n _emitAction(action: SolarisDialogAction<TResult>): void {\n this.actionSubject.next(action);\n }\n\n _finishClose(result?: TResult): void {\n this.closedSubject.next(result);\n this.closedSubject.complete();\n this.actionSubject.complete();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Injector,\n computed,\n effect,\n inject,\n signal,\n AfterViewInit,\n ViewChildren,\n ElementRef,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgComponentOutlet } from '@angular/common';\n\nimport {\n SolarisDialogStep,\n SolarisDialogStepActionValue,\n SolarisDialogStepDirection,\n SolarisDialogStepsConfiguration,\n} from '../../model/dialog-steps.type';\nimport { SOLARIS_DIALOG_STEP_DATA } from '../../token/dialog-step-data.token';\nimport { SOLARIS_DIALOG_DATA } from '../../token/dialog-data.token';\nimport { SolarisDialogAction } from '../../model/dialog.type';\nimport { SolarisDialogRef } from '../../token/dialog-ref';\n\n@Component({\n selector: 'solaris-dialog-steps-container',\n standalone: true,\n imports: [NgComponentOutlet],\n templateUrl: './dialog-steps-container.html',\n styleUrls: ['./dialog-steps-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisDialogStepsContainer<TResult = unknown> implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n private readonly configuration = inject(\n SOLARIS_DIALOG_DATA,\n ) as SolarisDialogStepsConfiguration<TResult>;\n\n private readonly dialogRef =\n inject<SolarisDialogRef<TResult | SolarisDialogStepActionValue>>(SolarisDialogRef);\n\n protected readonly steps = this.configuration?.steps ?? [];\n\n protected readonly showProgress = this.configuration?.showProgress ?? true;\n protected readonly transitionBlur = this.configuration?.transitionBlur ?? true;\n protected readonly contentMinHeight = this.configuration?.contentMinHeight ?? '0';\n protected readonly transitionDurationMs = this.configuration?.transitionDurationMs ?? 420;\n\n protected readonly loading = signal(false);\n protected readonly transitioning = signal(false);\n protected readonly transitionHalfway = signal(false);\n\n protected readonly currentStepIndex = signal(this.resolveInitialStepIndex());\n\n @ViewChildren('stepElement', { read: ElementRef })\n private readonly stepElements!: QueryList<ElementRef<HTMLElement>>;\n\n protected readonly activeStepHeight = signal('auto');\n\n private measureRaf = 0;\n private resizeObserver?: ResizeObserver;\n\n private halfwayTimer = 0;\n private transitionTimer = 0;\n\n private readonly stepInjectors = this.steps.map((step) =>\n Injector.create({\n providers: [\n {\n provide: SOLARIS_DIALOG_STEP_DATA,\n useValue: step.data,\n },\n ],\n parent: this.injector,\n }),\n );\n\n protected readonly trackTransform = computed(() => {\n return `translate3d(-${this.currentStepIndex() * 100}%, 0, 0)`;\n });\n\n protected readonly isFirstStep = computed(() => this.currentStepIndex() === 0);\n\n protected readonly isLastStep = computed(() => {\n return this.currentStepIndex() === this.steps.length - 1;\n });\n\n protected readonly transitionDuration = computed(() => {\n return `${this.transitionDurationMs}ms`;\n });\n\n constructor() {\n this.destroyRef.onDestroy(() => {\n globalThis.clearTimeout(this.halfwayTimer);\n globalThis.clearTimeout(this.transitionTimer);\n\n if (this.measureRaf) {\n cancelAnimationFrame(this.measureRaf);\n }\n\n this.resizeObserver?.disconnect();\n });\n\n this.dialogRef\n .afterAction()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((action) => {\n void this.handleAction(action.value as SolarisDialogStepActionValue);\n });\n\n effect(() => {\n this.currentStepIndex();\n this.loading();\n\n this.updateDialogHeader();\n this.updateDialogActions();\n\n queueMicrotask(() => {\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n });\n });\n\n queueMicrotask(() => {\n void this.runBeforeEnter(this.currentStepIndex(), 'initial');\n });\n }\n\n ngAfterViewInit(): void {\n this.stepElements.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n });\n\n this.observeActiveStepHeight();\n this.scheduleActiveStepHeightMeasure();\n }\n\n protected stepInjector(index: number): Injector {\n return this.stepInjectors[index];\n }\n\n private async handleAction(value: SolarisDialogStepActionValue): Promise<void> {\n switch (value) {\n case 'cancel':\n this.dialogRef.close();\n return;\n\n case 'back':\n await this.goToStep(this.currentStepIndex() - 1, 'backward');\n return;\n\n case 'next':\n await this.goToStep(this.currentStepIndex() + 1, 'forward');\n return;\n\n case 'finish':\n await this.finish();\n return;\n }\n }\n\n private async goToStep(\n targetIndex: number,\n direction: SolarisDialogStepDirection,\n ): Promise<void> {\n if (this.loading()) return;\n if (targetIndex < 0 || targetIndex >= this.steps.length) return;\n\n const fromIndex = this.currentStepIndex();\n const canLeave = await this.runBeforeLeave(fromIndex, targetIndex, direction);\n\n if (!canLeave) return;\n\n const canEnter = await this.runBeforeEnter(targetIndex, direction, fromIndex);\n\n if (!canEnter) return;\n\n this.runTransitionTo(targetIndex);\n }\n\n private async finish(): Promise<void> {\n if (this.loading()) return;\n\n const index = this.currentStepIndex();\n const canLeave = await this.runBeforeLeave(index, index, 'forward');\n\n if (!canLeave) return;\n\n this.dialogRef.close(this.configuration.finishValue);\n }\n\n private async runBeforeEnter(\n toIndex: number,\n direction: SolarisDialogStepDirection,\n fromIndex = toIndex,\n ): Promise<boolean> {\n const step = this.steps[toIndex];\n\n if (!step?.beforeEnter) {\n return true;\n }\n\n this.loading.set(true);\n\n try {\n const result = await step.beforeEnter({\n fromIndex,\n toIndex,\n direction,\n });\n\n return result !== false;\n } finally {\n this.loading.set(false);\n }\n }\n\n private async runBeforeLeave(\n fromIndex: number,\n toIndex: number,\n direction: SolarisDialogStepDirection,\n ): Promise<boolean> {\n const step = this.steps[fromIndex];\n\n if (!step?.beforeLeave) {\n return true;\n }\n\n this.loading.set(true);\n\n try {\n const result = await step.beforeLeave({\n fromIndex,\n toIndex,\n direction,\n });\n\n return result !== false;\n } finally {\n this.loading.set(false);\n }\n }\n\n private updateDialogActions(): void {\n if (!this.steps.length) {\n this.dialogRef.updateActions([]);\n return;\n }\n\n const step = this.steps[this.currentStepIndex()];\n const customActions = this.resolveStepActions(step);\n\n if (customActions.length) {\n this.dialogRef.updateActions(\n customActions.map((action) => ({\n ...action,\n disabled: action.disabled || this.loading(),\n })),\n );\n return;\n }\n\n const leftAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> =\n this.isFirstStep()\n ? {\n label: this.configuration.cancelLabel ?? 'Cancelar',\n labelKey: this.configuration.cancelLabelKey,\n value: 'cancel',\n variant: 'outline',\n color: 'surface',\n closesDialog: false,\n disabled: this.loading(),\n }\n : {\n label: this.configuration.backLabel ?? 'Voltar',\n labelKey: this.configuration.backLabelKey,\n value: 'back',\n variant: 'outline',\n color: 'surface',\n closesDialog: false,\n disabled: this.loading(),\n };\n\n const rightAction: SolarisDialogAction<TResult | SolarisDialogStepActionValue> =\n this.isLastStep()\n ? {\n label: this.configuration.finishLabel ?? 'Finalizar',\n labelKey: this.configuration.finishLabelKey,\n value: 'finish',\n variant: 'solid',\n color: 'primary',\n closesDialog: false,\n loading: this.loading(),\n }\n : {\n label: this.configuration.nextLabel ?? 'Continuar',\n labelKey: this.configuration.nextLabelKey,\n value: 'next',\n variant: 'solid',\n color: 'primary',\n closesDialog: false,\n loading: this.loading(),\n };\n\n this.dialogRef.updateActions([leftAction, rightAction]);\n }\n\n private resolveStepActions(\n step: SolarisDialogStep<unknown, TResult> | undefined,\n ): SolarisDialogAction<TResult | SolarisDialogStepActionValue>[] {\n if (!step?.actions) {\n return [];\n }\n\n if (typeof step.actions === 'function') {\n return step.actions({\n index: this.currentStepIndex(),\n loading: this.loading(),\n isFirstStep: this.isFirstStep(),\n isLastStep: this.isLastStep(),\n });\n }\n\n return step.actions;\n }\n\n private resolveInitialStepIndex(): number {\n if (!this.steps.length) {\n return 0;\n }\n\n const index = this.configuration.initialStepIndex ?? 0;\n\n return Math.max(0, Math.min(index, this.steps.length - 1));\n }\n\n private runTransitionTo(targetIndex: number): void {\n globalThis.clearTimeout(this.halfwayTimer);\n globalThis.clearTimeout(this.transitionTimer);\n\n this.transitioning.set(true);\n this.transitionHalfway.set(false);\n\n this.currentStepIndex.set(targetIndex);\n\n this.observeActiveStepHeight(targetIndex);\n this.scheduleActiveStepHeightMeasure(targetIndex);\n\n if (this.transitionBlur) {\n this.halfwayTimer = globalThis.setTimeout(\n () => {\n if (this.transitioning()) {\n this.transitionHalfway.set(true);\n }\n },\n Math.round(this.transitionDurationMs / 2),\n );\n }\n\n this.transitionTimer = globalThis.setTimeout(() => {\n this.transitioning.set(false);\n this.transitionHalfway.set(false);\n }, this.transitionDurationMs);\n }\n\n private updateDialogHeader(): void {\n const step = this.steps[this.currentStepIndex()];\n\n const title = step?.title;\n const titleKey = step?.titleKey;\n\n const description = step?.description;\n const descriptionKey = step?.descriptionKey;\n\n this.dialogRef.updateHeader({\n title: titleKey ? undefined : (title ?? this.configuration.title),\n titleKey: titleKey ?? (title ? undefined : this.configuration.titleKey),\n titleParams: step?.titleParams ?? this.configuration.titleParams,\n\n description: descriptionKey ? undefined : (description ?? this.configuration.description),\n descriptionKey:\n descriptionKey ?? (description ? undefined : this.configuration.descriptionKey),\n descriptionParams: step?.descriptionParams ?? this.configuration.descriptionParams,\n });\n }\n\n private scheduleActiveStepHeightMeasure(index = this.currentStepIndex()): void {\n if (this.measureRaf) {\n cancelAnimationFrame(this.measureRaf);\n }\n\n this.measureRaf = requestAnimationFrame(() => {\n this.measureStepHeight(index);\n });\n }\n\n private measureStepHeight(index = this.currentStepIndex()): void {\n const element = this.stepElements?.toArray()[index]?.nativeElement;\n\n if (!element) {\n this.activeStepHeight.set('auto');\n return;\n }\n\n const height = Math.ceil(element.scrollHeight);\n\n this.activeStepHeight.set(`${height}px`);\n }\n\n private observeActiveStepHeight(index = this.currentStepIndex()): void {\n this.resizeObserver?.disconnect();\n\n const element = this.stepElements?.toArray()[index]?.nativeElement;\n\n if (!element || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n this.resizeObserver = new ResizeObserver(() => {\n this.scheduleActiveStepHeightMeasure(index);\n });\n\n this.resizeObserver.observe(element);\n }\n}\n","<div\n class=\"solaris-dialog-steps\"\n [class.is-transitioning]=\"transitioning()\"\n [class.is-halfway]=\"transitionHalfway()\"\n [class.has-transition-blur]=\"transitionBlur\"\n [style.--solaris-dialog-steps-min-height]=\"contentMinHeight\"\n [style.--solaris-dialog-steps-active-height]=\"activeStepHeight()\"\n>\n @if (showProgress) {\n <div class=\"solaris-dialog-steps__progress\" aria-hidden=\"true\">\n @for (step of steps; track step.key; let index = $index) {\n <span\n class=\"solaris-dialog-steps__dot\"\n [class.is-active]=\"index === currentStepIndex()\"\n [class.is-complete]=\"index < currentStepIndex()\"\n ></span>\n }\n </div>\n }\n\n <div class=\"solaris-dialog-steps__viewport\">\n <div\n class=\"solaris-dialog-steps__track\"\n [style.transform]=\"trackTransform()\"\n [style.--solaris-dialog-steps-transition-duration]=\"transitionDuration()\"\n >\n @for (step of steps; track step.key; let index = $index) {\n <section\n #stepElement\n class=\"solaris-dialog-steps__step\"\n [class.is-active]=\"index === currentStepIndex()\"\n [class.is-before]=\"index < currentStepIndex()\"\n [class.is-after]=\"index > currentStepIndex()\"\n >\n <div class=\"solaris-dialog-steps__step-inner\">\n <ng-container\n *ngComponentOutlet=\"step.component; injector: stepInjector(index)\"\n ></ng-container>\n </div>\n </section>\n }\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n SolarisDialogAction,\n SolarisDialogActionAlignment,\n SolarisDialogSize,\n} from '../../model/dialog.type';\nimport {\n SolarisButtonColorInput,\n SolarisButtonVariant,\n} from '../../../../actions/button/model/button.type';\nimport { SolarisButtonDirective } from '../../../../actions/button/directives/button.directive';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-dialog-container',\n standalone: true,\n imports: [SolarisButtonDirective, SolarisTranslationPipe],\n templateUrl: './dialog-container.html',\n styleUrls: ['./dialog-container.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisDialogContainer<TResult = unknown> {\n @ViewChild('contentHost', { read: ViewContainerRef, static: true })\n readonly contentHost!: ViewContainerRef;\n\n @Input() title?: string;\n @Input() titleKey?: string;\n @Input() titleParams?: Record<string, unknown>;\n\n @Input() description?: string;\n @Input() descriptionKey?: string;\n @Input() descriptionParams?: Record<string, unknown>;\n\n @Input() size: SolarisDialogSize = 'md';\n @Input() showCloseButton = true;\n @Input() actionSize?: SolarisSizePreset;\n @Input() actions: SolarisDialogAction<TResult>[] = [];\n @Input() actionAlignment: SolarisDialogActionAlignment = 'end';\n\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() ariaDescribedBy?: string;\n\n @Output() readonly closeClick = new EventEmitter<void>();\n @Output() readonly actionClick = new EventEmitter<SolarisDialogAction<TResult>>();\n\n readonly titleId = `solaris-dialog-title-${Math.round(Math.random() * 1_000_000)}`;\n readonly descriptionId = `solaris-dialog-description-${Math.round(Math.random() * 1_000_000)}`;\n\n get hasHeader(): boolean {\n return (\n !!this.title ||\n !!this.titleKey ||\n !!this.description ||\n !!this.descriptionKey ||\n this.showCloseButton\n );\n }\n\n get hasDescription(): boolean {\n return !!this.description || !!this.descriptionKey;\n }\n\n get hasActions(): boolean {\n return this.actions.length > 0;\n }\n\n get resolvedAriaLabelledBy(): string | null {\n if (this.ariaLabelledBy) return this.ariaLabelledBy;\n if (this.title || this.titleKey) return this.titleId;\n return null;\n }\n\n get resolvedAriaDescribedBy(): string | null {\n if (this.ariaDescribedBy) return this.ariaDescribedBy;\n if (this.description || this.descriptionKey) return this.descriptionId;\n return null;\n }\n\n protected resolveActionSize(action: SolarisDialogAction<TResult>): SolarisSizePreset {\n if (action.size) {\n return action.size;\n }\n\n if (this.actionSize) {\n return this.actionSize;\n }\n\n switch (this.size) {\n case 'sm':\n return 'sm';\n case 'md':\n return 'md';\n case 'lg':\n case 'xl':\n case 'fullscreen':\n return 'lg';\n }\n }\n\n protected resolveActionVariant(action: SolarisDialogAction<TResult>): SolarisButtonVariant {\n if (action.variant) {\n return action.variant;\n }\n\n return 'solid';\n }\n\n protected resolveActionColor(action: SolarisDialogAction<TResult>): SolarisButtonColorInput {\n if (action.color) {\n return action.color;\n }\n\n switch (action.variant) {\n case 'ghost':\n case 'outline':\n case 'soft':\n return 'surface';\n default:\n return 'primary';\n }\n }\n}\n","<section\n class=\"solaris-dialog\"\n [attr.data-size]=\"size\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"resolvedAriaLabelledBy\"\n [attr.aria-describedby]=\"resolvedAriaDescribedBy\"\n>\n @if (hasHeader) {\n <header class=\"solaris-dialog__header\">\n <div class=\"solaris-dialog__heading\">\n @if (title || titleKey) {\n <h2 class=\"solaris-dialog__title\" [id]=\"titleId\">\n @if (titleKey) {\n {{ titleKey | translate }}\n } @else {\n {{ title }}\n }\n </h2>\n }\n\n @if (hasDescription) {\n <p class=\"solaris-dialog__description\" [id]=\"descriptionId\">\n @if (descriptionKey) {\n {{ descriptionKey | translate }}\n } @else {\n {{ description }}\n }\n </p>\n }\n </div>\n\n @if (showCloseButton) {\n <button\n type=\"button\"\n class=\"solaris-dialog__close\"\n aria-label=\"Fechar\"\n (click)=\"closeClick.emit()\"\n >\n <i class=\"ph ph-x\"></i>\n </button>\n }\n </header>\n }\n\n <div class=\"solaris-dialog__body\">\n <ng-template #contentHost></ng-template>\n </div>\n\n @if (hasActions) {\n <footer class=\"solaris-dialog__footer\" [attr.data-action-alignment]=\"actionAlignment\">\n @for (action of actions; track action.label ?? action.labelKey ?? $index) {\n <button\n type=\"button\"\n solaris-button\n class=\"solaris-dialog__action\"\n [size]=\"resolveActionSize(action)\"\n [variant]=\"resolveActionVariant(action)\"\n [color]=\"resolveActionColor(action)\"\n [disabled]=\"action.disabled\"\n [loading]=\"action.loading\"\n [fullWidth]=\"action.fullWidth\"\n (click)=\"actionClick.emit(action)\"\n >\n @if (action.prefixIcon) {\n <i\n [attr.class]=\"\n 'solaris-dialog__action-icon solaris-dialog__action-icon--prefix ' +\n action.prefixIcon\n \"\n aria-hidden=\"true\"\n ></i>\n }\n\n <span class=\"solaris-dialog__action-label\">\n @if (action.labelKey) {\n {{ action.labelKey | translate: action.labelParams }}\n } @else {\n {{ action.label }}\n }\n </span>\n\n @if (action.suffixIcon) {\n <i\n [attr.class]=\"\n 'solaris-dialog__action-icon solaris-dialog__action-icon--suffix ' +\n action.suffixIcon\n \"\n aria-hidden=\"true\"\n ></i>\n }\n </button>\n }\n </footer>\n }\n</section>\n","import {\n ApplicationRef,\n EnvironmentInjector,\n Injectable,\n Injector,\n Type,\n createComponent,\n inject,\n} from '@angular/core';\n\nimport { SolarisDialogStepsContainer } from '../components/dialog-steps-container/dialog-steps-container';\nimport { SolarisDialogContainer } from '../components/dialog-container/dialog-container';\nimport { SolarisDialogStepsConfiguration } from '../model/dialog-steps.type';\nimport { SolarisDialogConfiguration } from '../model/dialog.type';\nimport { SOLARIS_DIALOG_DATA } from '../token/dialog-data.token';\nimport { SolarisDialogRef } from '../token/dialog-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SolarisDialogService {\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly appRef = inject(ApplicationRef);\n\n open<TComponent, TData = unknown, TResult = unknown>(\n component: Type<TComponent>,\n configuration: SolarisDialogConfiguration<TData, TResult> = {},\n ): SolarisDialogRef<TResult> {\n const dialogRef = new SolarisDialogRef<TResult>();\n\n const backdrop = document.createElement('div');\n backdrop.className = 'solaris-dialog-backdrop';\n\n const host = document.createElement('div');\n const positionClass = `position-${configuration.position ?? 'center'}`;\n\n host.className = ['solaris-dialog-host', positionClass, configuration.panelClass ?? '']\n .filter(Boolean)\n .join(' ');\n\n document.body.appendChild(backdrop);\n document.body.appendChild(host);\n\n const dialogInjector = Injector.create({\n providers: [\n { provide: SOLARIS_DIALOG_DATA, useValue: configuration.data },\n { provide: SolarisDialogRef, useValue: dialogRef },\n ],\n parent: this.environmentInjector,\n });\n\n const containerRef = createComponent(SolarisDialogContainer<TResult>, {\n environmentInjector: this.environmentInjector,\n hostElement: host,\n });\n\n containerRef.setInput('title', configuration.title);\n containerRef.setInput('titleKey', configuration.titleKey);\n containerRef.setInput('titleParams', configuration.titleParams);\n containerRef.setInput('description', configuration.description);\n containerRef.setInput('descriptionKey', configuration.descriptionKey);\n containerRef.setInput('descriptionParams', configuration.descriptionParams);\n containerRef.setInput('size', configuration.size ?? 'md');\n containerRef.setInput('actions', configuration.actions ?? []);\n containerRef.setInput('actionSize', configuration.actionSize);\n containerRef.setInput('actionAlignment', configuration.actionAlignment ?? 'end');\n containerRef.setInput('ariaLabel', configuration.ariaLabel);\n containerRef.setInput('ariaLabelledBy', configuration.ariaLabelledBy);\n containerRef.setInput('ariaDescribedBy', configuration.ariaDescribedBy);\n containerRef.setInput(\n 'showCloseButton',\n configuration.showCloseButton ?? !configuration.disableClose,\n );\n\n dialogRef._attachActionsUpdateFn((actions) => {\n containerRef.setInput('actions', [...actions]);\n containerRef.changeDetectorRef.detectChanges();\n });\n\n dialogRef._attachHeaderUpdateFn((header) => {\n containerRef.setInput('title', header.title);\n containerRef.setInput('titleKey', header.titleKey);\n containerRef.setInput('titleParams', header.titleParams);\n\n containerRef.setInput('description', header.description);\n containerRef.setInput('descriptionKey', header.descriptionKey);\n containerRef.setInput('descriptionParams', header.descriptionParams);\n\n containerRef.changeDetectorRef.detectChanges();\n });\n\n this.appRef.attachView(containerRef.hostView);\n containerRef.changeDetectorRef.detectChanges();\n\n const contentRef = createComponent(component, {\n environmentInjector: this.environmentInjector,\n elementInjector: dialogInjector,\n });\n\n containerRef.instance.contentHost.insert(contentRef.hostView);\n contentRef.changeDetectorRef.detectChanges();\n\n const close = (result?: TResult) => {\n this.appRef.detachView(contentRef.hostView);\n contentRef.destroy();\n\n this.appRef.detachView(containerRef.hostView);\n containerRef.destroy();\n\n backdrop.remove();\n host.remove();\n\n document.removeEventListener('keydown', onKeyDown, true);\n backdrop.removeEventListener('pointerdown', onBackdropClick, true);\n\n dialogRef._finishClose(result);\n };\n\n dialogRef._attachCloseFn(close);\n\n const closeOnBackdropClick = configuration.closeOnBackdropClick ?? !configuration.disableClose;\n const closeOnEscape = configuration.closeOnEscape ?? !configuration.disableClose;\n\n const onBackdropClick = () => {\n if (closeOnBackdropClick) {\n dialogRef.close();\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && closeOnEscape) {\n dialogRef.close();\n }\n };\n\n backdrop.addEventListener('pointerdown', onBackdropClick, true);\n document.addEventListener('keydown', onKeyDown, true);\n\n containerRef.instance.closeClick.subscribe(() => {\n if (!configuration.disableClose) {\n dialogRef.close();\n }\n });\n\n containerRef.instance.actionClick.subscribe((action) => {\n if (action.disabled || action.loading) return;\n\n dialogRef._emitAction(action);\n if (action.closesDialog ?? true) {\n dialogRef.close(action.value as TResult);\n }\n });\n\n return dialogRef;\n }\n\n openSteps<TResult = unknown>(\n configuration: SolarisDialogStepsConfiguration<TResult>,\n ): SolarisDialogRef<TResult> {\n return this.open<\n SolarisDialogStepsContainer<TResult>,\n SolarisDialogStepsConfiguration<TResult>,\n TResult\n >(SolarisDialogStepsContainer, {\n ...configuration,\n data: configuration,\n actions: [],\n actionAlignment: configuration.actionAlignment ?? 'space-between',\n showCloseButton: configuration.showCloseButton ?? true,\n });\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-drawer-header]',\n standalone: true,\n})\nexport class SolarisDrawerHeaderDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-drawer-footer]',\n standalone: true,\n})\nexport class SolarisDrawerFooterDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { SolarisDrawerHeaderDirective } from '../directives/drawer-header.directive';\nimport { SolarisDrawerFooterDirective } from '../directives/drawer-footer.directive';\nimport { SolarisDrawerSide } from '../model/drawer.type';\n\n@Component({\n selector: 'solaris-drawer',\n standalone: true,\n imports: [],\n templateUrl: './drawer.html',\n styleUrls: ['./drawer.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-drawer-host' },\n})\nexport class SolarisDrawer {\n private readonly doc = inject(DOCUMENT);\n\n @Input() title = '';\n @Input() titleKey = '';\n @Input() panelClass = '';\n @Input() backdrop = true;\n @Input() showClose = true;\n @Input() trapFocus = true;\n @Input() backdropClass = '';\n @Input() showHeader = true;\n @Input() lockScroll = true;\n @Input() restoreFocus = true;\n @Input() closeOnEscape = true;\n @Input() width = 'min(26rem, 92vw)';\n @Input() side: SolarisDrawerSide = 'right';\n @Input() height = 'min(70vh, 40rem)';\n @Input() closeOnOutsideClick = true;\n\n private readonly _openInput = signal<boolean | null>(null);\n private readonly _internalOpen = signal(false);\n\n @Input()\n set open(value: boolean | null) {\n this._openInput.set(value);\n }\n\n get open(): boolean | null {\n return this._openInput();\n }\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Output() openChange = new EventEmitter<boolean>();\n\n @ContentChild(SolarisDrawerHeaderDirective) headerSlot?: SolarisDrawerHeaderDirective;\n @ContentChild(SolarisDrawerFooterDirective) footerSlot?: SolarisDrawerFooterDirective;\n @ViewChild('panelEl', { read: ElementRef }) panelEl?: ElementRef<HTMLElement>;\n\n private static seq = 0;\n readonly _id = `solaris-drawer-${++SolarisDrawer.seq}`;\n private static scrollLockCount = 0;\n private static prevBodyOverflow = '';\n readonly titleId = `${this._id}-title`;\n private prevFocused: HTMLElement | null = null;\n private static prevBodyPaddingRight = '';\n\n @HostBinding('attr.data-side')\n get dataSide(): SolarisDrawerSide {\n return this.side;\n }\n\n @HostBinding('attr.data-open')\n get dataOpen(): string | null {\n return this.isOpen() ? 'true' : null;\n }\n\n get hasCustomHeader(): boolean {\n return !!this.headerSlot;\n }\n\n get hasCustomFooter(): boolean {\n return !!this.footerSlot;\n }\n\n constructor() {\n effect((onCleanup) => {\n const open = this.isOpen();\n\n if (open) {\n this.onOpen();\n } else {\n this.onClose();\n }\n\n const onKeyDown = (ev: KeyboardEvent) => {\n if (!this.isOpen()) return;\n if (this.closeOnEscape && ev.key === 'Escape') {\n ev.preventDefault();\n this.setOpen(false);\n }\n };\n\n const onDocPointerDown = (ev: PointerEvent) => {\n if (!this.isOpen()) return;\n if (!this.closeOnOutsideClick) return;\n if (this.backdrop) return;\n\n const panel = this.panelEl?.nativeElement;\n const t = ev.target as Node | null;\n if (!panel || !t) return;\n\n if (!panel.contains(t)) this.setOpen(false);\n };\n\n const onFocusIn = (ev: FocusEvent) => {\n if (!this.isOpen()) return;\n if (!this.trapFocus) return;\n\n const panel = this.panelEl?.nativeElement;\n const target = ev.target as Node | null;\n if (!panel || !target) return;\n\n if (!panel.contains(target)) {\n this.focusFirst();\n }\n };\n\n this.doc.addEventListener('keydown', onKeyDown, { capture: true });\n this.doc.addEventListener('pointerdown', onDocPointerDown, { capture: true });\n this.doc.addEventListener('focusin', onFocusIn, { capture: true });\n\n onCleanup(() => {\n this.doc.removeEventListener('keydown', onKeyDown, true);\n this.doc.removeEventListener('pointerdown', onDocPointerDown, true);\n this.doc.removeEventListener('focusin', onFocusIn, true);\n });\n });\n }\n\n toggle(): void {\n this.setOpen(!this.isOpen());\n }\n\n setOpen(next: boolean): void {\n const cur = this.isOpen();\n if (next === cur) return;\n\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') {\n this._internalOpen.set(next);\n }\n }\n\n onBackdropClick(): void {\n if (!this.closeOnOutsideClick) return;\n this.setOpen(false);\n }\n\n onPanelKeydown(ev: KeyboardEvent): void {\n if (!this.trapFocus) return;\n if (ev.key !== 'Tab') return;\n\n const panel = this.panelEl?.nativeElement;\n if (!panel) return;\n\n const focusables = this.getFocusable(panel);\n if (!focusables.length) return;\n\n const first = focusables[0];\n const last = focusables.at(-1);\n\n const active = this.doc.activeElement as HTMLElement | null;\n\n if (ev.shiftKey) {\n if (!active || active === first) {\n ev.preventDefault();\n if (last) {\n last.focus();\n }\n }\n } else if (!active || active === last) {\n ev.preventDefault();\n first.focus();\n }\n }\n\n private onOpen(): void {\n if (this.restoreFocus) {\n this.prevFocused = this.doc.activeElement as HTMLElement | null;\n }\n\n if (this.lockScroll) this.lockBodyScroll();\n queueMicrotask(() => {\n requestAnimationFrame(() => this.focusFirst());\n });\n }\n\n private onClose(): void {\n if (this.lockScroll) this.unlockBodyScroll();\n\n if (this.restoreFocus && this.prevFocused?.isConnected) {\n queueMicrotask(() => this.prevFocused?.focus?.());\n }\n this.prevFocused = null;\n }\n\n private focusFirst(): void {\n const panel = this.panelEl?.nativeElement;\n if (!panel) return;\n\n const focusables = this.getFocusable(panel);\n if (focusables.length) {\n focusables[0].focus();\n return;\n }\n\n panel.focus?.();\n }\n\n private getFocusable(root: HTMLElement): HTMLElement[] {\n const selector =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n const all = Array.from(root.querySelectorAll<HTMLElement>(selector));\n return all.filter((el) => {\n const style = getComputedStyle(el);\n const visible = style.visibility !== 'hidden' && style.display !== 'none';\n const inDom = el.offsetParent !== null || style.position === 'fixed';\n return visible && inDom;\n });\n }\n\n private lockBodyScroll(): void {\n const body = this.doc.body;\n if (!body) return;\n\n if (SolarisDrawer.scrollLockCount === 0) {\n SolarisDrawer.prevBodyOverflow = body.style.overflow;\n SolarisDrawer.prevBodyPaddingRight = body.style.paddingRight;\n\n const scrollbarW = Math.max(0, window.innerWidth - this.doc.documentElement.clientWidth);\n body.style.overflow = 'hidden';\n if (scrollbarW) body.style.paddingRight = `${scrollbarW}px`;\n }\n\n SolarisDrawer.scrollLockCount++;\n }\n\n private unlockBodyScroll(): void {\n const body = this.doc.body;\n if (!body) return;\n\n SolarisDrawer.scrollLockCount = Math.max(0, SolarisDrawer.scrollLockCount - 1);\n\n if (SolarisDrawer.scrollLockCount === 0) {\n body.style.overflow = SolarisDrawer.prevBodyOverflow;\n body.style.paddingRight = SolarisDrawer.prevBodyPaddingRight;\n }\n }\n}\n","@if (isOpen()) {\n @if (backdrop) {\n <div\n class=\"solaris-drawer__backdrop {{ backdropClass }}\"\n (click)=\"onBackdropClick()\"\n aria-hidden=\"true\"\n ></div>\n }\n\n <aside\n #panelEl\n class=\"solaris-drawer__panel {{ panelClass }}\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"showHeader ? titleId : null\"\n [style.--solaris-drawer-width]=\"width\"\n [style.--solaris-drawer-height]=\"height\"\n (keydown)=\"onPanelKeydown($event)\"\n tabindex=\"-1\"\n >\n @if (showHeader) {\n <header class=\"solaris-drawer__header\">\n @if (hasCustomHeader) {\n <ng-content select=\"[solaris-drawer-header]\"></ng-content>\n } @else {\n <div class=\"solaris-drawer__title\" [id]=\"titleId\">{{ title }}</div>\n\n @if (showClose) {\n <button\n type=\"button\"\n class=\"solaris-drawer__close\"\n (click)=\"setOpen(false)\"\n aria-label=\"Close\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </button>\n }\n }\n </header>\n }\n\n <div class=\"solaris-drawer__content\">\n <ng-content></ng-content>\n </div>\n\n @if (hasCustomFooter) {\n <footer class=\"solaris-drawer__footer\">\n <ng-content select=\"[solaris-drawer-footer]\"></ng-content>\n </footer>\n }\n </aside>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-filter-panel-footer]',\n standalone: true,\n})\nexport class SolarisFilterPanelFooterDirective {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'solaris-table-filters',\n standalone: true,\n templateUrl: './table-filters.html',\n styleUrls: ['./table-filters.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-table-filters' },\n})\nexport class SolarisTableFilters {}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-filter-field',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './filter-field.html',\n styleUrls: ['./filter-field.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-field-host' },\n})\nexport class SolarisFilterField {\n @Input() label = '';\n @Input() labelKey = '';\n @Input() active = false;\n @Input() resetLabel = 'Reset';\n @Input() resetLabelKey = 'ui.solaris.common.reset';\n\n @Output() reset = new EventEmitter<void>();\n\n get showReset(): boolean {\n return this.reset.observed;\n }\n\n onResetClick(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.reset.emit();\n }\n}\n","<div class=\"solaris-filter-field\">\n <div class=\"solaris-filter-field__head\">\n <span class=\"solaris-filter-field__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label }}\n }\n </span>\n\n @if (showReset) {\n <button\n type=\"button\"\n class=\"solaris-filter-field__reset\"\n (click)=\"onResetClick($event)\"\n [disabled]=\"!active\"\n >\n @if (resetLabelKey) {\n {{ resetLabelKey | translate }}\n } @else {\n {{ resetLabel }}\n }\n </button>\n }\n </div>\n\n <div class=\"solaris-filter-field__body\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-filter-panel-chips]',\n standalone: true,\n})\nexport class SolarisFilterPanelChipsDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n computed,\n signal,\n} from '@angular/core';\n\nimport { SolarisFilterPanelFooterDirective } from '../../../directives/filter-panel-footer.directive';\nimport { SolarisDrawerFooterDirective } from '../../../../../layouts/drawer/directives/drawer-footer.directive';\nimport { SolarisDrawerHeaderDirective } from '../../../../../layouts/drawer/directives/drawer-header.directive';\nimport { SolarisFilterPanelChipsDirective } from '../../../directives/filter-panel-chips.directive';\nimport { SolarisButtonDirective } from '../../../../../actions/button/directives/button.directive';\nimport { SolarisFilterPanelRadius } from '../../../model/filter-panel/filter-panel.type';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisDrawer } from '../../../../../layouts/drawer/component/drawer';\n\n@Component({\n selector: 'solaris-filter-panel',\n standalone: true,\n imports: [\n SolarisTranslationPipe,\n SolarisButtonDirective,\n SolarisDrawerHeaderDirective,\n SolarisDrawerFooterDirective,\n SolarisDrawer,\n ],\n templateUrl: './filter-panel.html',\n styleUrls: ['./filter-panel.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-panel-host' },\n})\nexport class SolarisFilterPanel {\n @Input() count = 0;\n @Input() labelKey = '';\n @Input() titleKey = '';\n @Input() disabled = false;\n @Input() drawerSide: 'right' | 'left' = 'right';\n @Input() radius: SolarisFilterPanelRadius = 'sm';\n @Input() drawerWidth: string = 'min(30rem, 92vw)';\n @Input() label = 'ui.solaris.tables.filter.filters';\n @Input() title = 'ui.solaris.tables.filter.filters';\n\n private readonly _internalOpen = signal(false);\n private readonly _openInput = signal<boolean | null>(null);\n private readonly _chipsSlot = signal<SolarisFilterPanelChipsDirective | null>(null);\n\n @Input() set open(v: boolean | null) {\n this._openInput.set(v);\n }\n get open(): boolean | null {\n return this._openInput();\n }\n\n readonly isOpen = computed(() => {\n const v = this._openInput();\n return typeof v === 'boolean' ? v : this._internalOpen();\n });\n\n @Output() apply = new EventEmitter<void>();\n @Output() clearAll = new EventEmitter<void>();\n @Output() openChange = new EventEmitter<boolean>();\n\n @ContentChild(SolarisFilterPanelFooterDirective) footerSlot?: SolarisFilterPanelFooterDirective;\n @ContentChild(SolarisFilterPanelChipsDirective) set chipsSlot(\n v: SolarisFilterPanelChipsDirective | undefined,\n ) {\n this._chipsSlot.set(v ?? null);\n }\n\n readonly hasChips = computed(() => !!this._chipsSlot());\n get hasCustomFooter(): boolean {\n return !!this.footerSlot;\n }\n\n setOpen(next: boolean) {\n if (this.disabled) return;\n if (next === this.isOpen()) return;\n\n this.openChange.emit(next);\n if (typeof this._openInput() !== 'boolean') this._internalOpen.set(next);\n }\n\n toggle() {\n this.setOpen(!this.isOpen());\n }\n}\n","<button\n type=\"button\"\n class=\"solaris-filter-panel__trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n [attr.data-radius]=\"radius\"\n>\n <i class=\"ph ph-sliders-horizontal\"></i>\n\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label | translate }}\n }\n\n @if (count > 0) {\n <span class=\"solaris-filter-panel__count\">{{ count }}</span>\n }\n</button>\n\n<solaris-drawer\n [open]=\"isOpen()\"\n (openChange)=\"setOpen($event)\"\n [side]=\"drawerSide\"\n [width]=\"drawerWidth\"\n [backdrop]=\"true\"\n [closeOnEscape]=\"true\"\n [closeOnOutsideClick]=\"true\"\n [lockScroll]=\"true\"\n [restoreFocus]=\"true\"\n [trapFocus]=\"true\"\n panelClass=\"solaris-filter-panel__drawer\"\n>\n <div solaris-drawer-header class=\"solaris-filter-panel__header\">\n <div class=\"solaris-filter-panel__title\">\n @if (titleKey) {\n {{ titleKey | translate }}\n } @else {\n {{ title | translate }}\n }\n </div>\n\n <button type=\"button\" class=\"solaris-filter-panel__close\" (click)=\"setOpen(false)\">\n <i class=\"ph ph-x\"></i>\n </button>\n </div>\n\n @if (hasChips()) {\n <div class=\"solaris-filter-panel__chips\">\n <ng-content select=\"[solarisFilterPanelChips]\"></ng-content>\n </div>\n }\n\n <div class=\"solaris-filter-panel__content\">\n <ng-content></ng-content>\n </div>\n\n <footer solaris-drawer-footer class=\"solaris-filter-panel__footer\">\n <ng-content select=\"[solarisFilterPanelFooter]\"></ng-content>\n\n @if (!hasCustomFooter) {\n <div class=\"solaris-filter-panel__footer-default\">\n <button\n solaris-button\n color=\"surface\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"clearAll.emit()\"\n >\n {{ 'ui.solaris.common.clearAll' | translate }}\n </button>\n\n <button solaris-button type=\"button\" (click)=\"apply.emit()\">\n {{ 'ui.solaris.common.apply' | translate }}\n </button>\n </div>\n }\n </footer>\n</solaris-drawer>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisRadiusPreset } from '../../../../../common/model/common-configurations.type';\n\n@Component({\n selector: 'solaris-filter-chip',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './filter-chip.html',\n styleUrls: ['./filter-chip.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-chip-host' },\n})\nexport class SolarisFilterChip {\n @Input() label = '';\n @Input() value = '';\n @Input() labelKey = '';\n @Input() valueKey = '';\n @Input() disabled = false;\n @Input() removable = true;\n @Input() radius: SolarisRadiusPreset = 'md';\n\n @Output() remove = new EventEmitter<void>();\n @Output() chipClick = new EventEmitter<void>();\n\n onRemoveClick(ev: MouseEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n if (!this.disabled) this.remove.emit();\n }\n}\n","<button\n type=\"button\"\n class=\"solaris-filter-chip\"\n [disabled]=\"disabled\"\n (click)=\"chipClick.emit()\"\n [attr.data-radius]=\"radius\"\n>\n <span class=\"solaris-filter-chip__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else {\n {{ label }}\n }\n </span>\n\n <span class=\"solaris-filter-chip__value\">\n @if (valueKey) {\n {{ valueKey | translate }}\n } @else {\n {{ value }}\n }\n </span>\n\n @if (removable) {\n <span\n class=\"solaris-filter-chip__remove\"\n role=\"button\"\n tabindex=\"-1\"\n (click)=\"onRemoveClick($event)\"\n >\n <i class=\"ph ph-x\" aria-hidden=\"true\"></i>\n </span>\n }\n</button>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'solaris-table-skeleton',\n standalone: true,\n templateUrl: './table-skeleton.html',\n styleUrls: ['./table-skeleton.scss'],\n})\nexport class SolarisTableSkeleton {\n @Input() rows = 10;\n @Input() columns = 6;\n @Input() selectable = false;\n @Input() gridTemplateColumns = '';\n\n public rowsArray() {\n return Array.from({ length: this.rows }, (_, i) => i);\n }\n public colsArray() {\n return Array.from({ length: this.columns }, (_, i) => i);\n }\n}\n","<div class=\"solaris-table-skeleton\" role=\"status\" aria-live=\"polite\">\n @for (r of rowsArray(); track r) {\n <div class=\"solaris-table-skeleton__row\" [style.gridTemplateColumns]=\"gridTemplateColumns\">\n @for (c of colsArray(); track c; let i = $index) {\n <div class=\"solaris-table-skeleton__cell\" [class.is-first]=\"i === 0\">\n @if (selectable && i === 0) {\n <span class=\"solaris-table-skeleton__select-prefix\">\n <span class=\"sk sk--circle\"></span>\n </span>\n }\n\n <span class=\"sk sk--line\"></span>\n </div>\n }\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'solaris-filter-bar',\n standalone: true,\n templateUrl: './filter-bar.html',\n styleUrls: ['./filter-bar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-filter-bar' },\n})\nexport class SolarisFilterBar {}\n","<ng-content></ng-content>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[solaris-column-cell]',\n standalone: true,\n})\nexport class SolarisColumnCellDef {\n constructor(public readonly template: TemplateRef<any>) {}\n}\n\n@Directive({\n selector: 'ng-template[solaris-column-header]',\n standalone: true,\n})\nexport class SolarisColumnHeaderDef {\n constructor(public readonly template: TemplateRef<any>) {}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class SolarisIdGenerator {\n private readonly counters = new Map<string, number>();\n\n public next(prefix = 'solaris'): string {\n const current = this.counters.get(prefix) ?? 0;\n const next = current + 1;\n this.counters.set(prefix, next);\n return `${prefix}-${next}`;\n }\n}\n","import { booleanAttribute, Component, ContentChild, inject, Input } from '@angular/core';\n\nimport { SolarisColumnCellDef, SolarisColumnHeaderDef } from '../../directives/column.directive';\nimport { SolarisIdGenerator } from '../../../../common/service/id-generator.service';\nimport { SolarisAlign } from '../../model/table/table.types';\n\n@Component({\n selector: 'solaris-column',\n standalone: true,\n templateUrl: './table-column.html',\n styleUrls: ['./table-column.scss'],\n})\nexport class SolarisTableColumn {\n private readonly ids = inject(SolarisIdGenerator);\n readonly id = this.ids.next('solaris-column');\n\n @Input() field?: string;\n @Input() width?: string;\n @Input() header?: string;\n @Input() sortKey?: string;\n @Input() minWidth?: string;\n @Input() maxWidth?: string;\n @Input() headerKey?: string;\n @Input() headerIconClass?: string;\n @Input() align: SolarisAlign = 'start';\n @Input({ transform: booleanAttribute }) grow = false;\n @Input({ transform: booleanAttribute }) resizable = true;\n @Input({ transform: booleanAttribute }) sortable = false;\n\n @ContentChild(SolarisColumnCellDef) cellDef?: SolarisColumnCellDef;\n @ContentChild(SolarisColumnHeaderDef) headerDef?: SolarisColumnHeaderDef;\n}\n","","import { inject } from '@angular/core';\n\nimport { SolarisIdGenerator } from '../service/id-generator.service';\n\nexport function uniqueId(prefix: string): string {\n return inject(SolarisIdGenerator).next(prefix);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewChild,\n forwardRef,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n SolarisColorPreset,\n SolarisSizePreset,\n} from '../../../common/model/common-configurations.type';\nimport { CheckboxAppearance, CheckboxColorInput, CheckboxVariant } from '../model/checkbox.type';\nimport { uniqueId } from '../../../common/helper/unique-id';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\n@Component({\n selector: 'solaris-checkbox',\n standalone: true,\n templateUrl: './checkbox.html',\n styleUrls: ['./checkbox.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisCheckbox),\n multi: true,\n },\n ],\n host: {\n class: 'solaris-checkbox-host',\n '[attr.data-size]': 'size()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-appearance]': 'appearance()',\n '[style.--solaris-checkbox-ink]': 'ink()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[style.--solaris-checkbox-custom]': 'customAccent()',\n },\n})\nexport class SolarisCheckbox implements ControlValueAccessor {\n readonly indeterminate = input<boolean>(false);\n readonly ariaLabel = input<string | null>(null);\n readonly size = input<SolarisSizePreset>('md');\n readonly variant = input<CheckboxVariant>('square');\n readonly color = input<CheckboxColorInput>('primary');\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly appearance = input<CheckboxAppearance>('solid');\n readonly checkColor = input<CheckboxColorInput | null>(null);\n\n readonly checked = signal(false);\n readonly disabled = signal(false);\n readonly checkedChange = output<boolean>();\n readonly indeterminateChange = output<boolean>();\n\n @ViewChild('native', { static: true })\n private readonly native?: ElementRef<HTMLInputElement>;\n\n readonly customAccent = computed(() => {\n if (this.colorKey() !== 'custom') return null;\n const raw = String(this.color() ?? '').trim();\n return !raw || raw === 'custom' ? null : raw;\n });\n readonly colorKey = computed(() => {\n const raw = String(this.color() ?? '').trim();\n if (!raw || raw === 'custom') return 'custom';\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\n });\n private readonly autoId = uniqueId('solaris-checkbox');\n readonly id = computed(() => this.inputId() ?? this.autoId);\n readonly ink = computed(() => resolveColor(this.checkColor(), null));\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n const el = this.native?.nativeElement;\n if (!el) return;\n el.indeterminate = this.indeterminate();\n });\n }\n\n public onNativeChange(next: boolean) {\n if (this.indeterminate()) this.indeterminateChange.emit(false);\n\n this.checked.set(next);\n this.onChange(next);\n this.checkedChange.emit(next);\n this.onTouched();\n }\n\n public onBlur() {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked.set(!!value);\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n}\n\nfunction resolveColor(\n v: CheckboxColorInput | null | undefined,\n fallback: string | null,\n): string | null {\n const s = v == null ? '' : String(v).trim();\n if (!s || s === 'custom') return fallback;\n if (PRESET_COLORS.has(s as SolarisColorPreset)) return `var(--solaris-color-${s})`;\n return s;\n}\n","<label class=\"solaris-checkbox\">\n <input\n #native\n class=\"solaris-checkbox__native\"\n type=\"checkbox\"\n [attr.id]=\"id()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked() ? 'true' : 'false'\"\n (change)=\"onNativeChange(native.checked)\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"solaris-checkbox__control\" aria-hidden=\"true\">\n @if (variant() === 'icon') {\n <span class=\"solaris-checkbox__dot\" aria-hidden=\"true\"></span>\n } @else {\n <i\n class=\"ph solaris-checkbox__icon\"\n [class.ph-check]=\"!indeterminate()\"\n [class.ph-minus]=\"indeterminate()\"\n aria-hidden=\"true\"\n ></i>\n }\n </span>\n\n @if (variant() !== 'icon') {\n <span class=\"solaris-checkbox__content\"><ng-content /></span>\n }\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n SolarisPageChange,\n SolarisRowKey,\n SolarisSort,\n SolarisTableVariant,\n} from '../../model/table/table.types';\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisTableSkeleton } from '../skeleton/table-skeleton';\nimport { SolarisTableColumn } from '../column/table-column';\n\n@Component({\n selector: 'solaris-table',\n standalone: true,\n imports: [\n FormsModule,\n SolarisCheckbox,\n NgTemplateOutlet,\n SolarisTableSkeleton,\n SolarisTranslationPipe,\n ],\n templateUrl: './table.html',\n styleUrls: ['./table.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-table-host',\n '[attr.data-scroll]': 'needsScroll() ? \"true\" : null',\n },\n})\nexport class SolarisTable implements AfterContentInit, OnChanges {\n private readonly destroyRef: DestroyRef = inject(DestroyRef);\n\n @Input() length = 0;\n @Input() pageIndex = 0;\n @Input() pageSize = 10;\n @Input() rowsCount = 0;\n @Input() loading = false;\n @Input() sort: SolarisSort[] = [];\n @Input() selectable = false;\n @Input() tableDescription = '';\n @Input() selection: SolarisRowKey[] = [];\n @Input() variant: SolarisTableVariant = 'grid';\n @Input() emptyIconClass = 'ph ph-database';\n @Input() pageSizeOptions: number[] = [10, 20, 50];\n @Input() emptyTextKey = 'ui.solaris.table.empty';\n\n @Output() sortChange = new EventEmitter<SolarisSort[]>();\n @Output() pageChange = new EventEmitter<SolarisPageChange>();\n @Output() selectionChange = new EventEmitter<SolarisRowKey[]>();\n\n @ContentChildren(SolarisTableColumn) private readonly columnQuery!: QueryList<SolarisTableColumn>;\n @ViewChild('tableRoot', { static: true }) private readonly tableRoot!: ElementRef<HTMLElement>;\n\n readonly needsScroll = signal(false);\n readonly measuredReady = signal(false);\n readonly sortState = signal<SolarisSort[]>([]);\n private readonly measuredPx = signal<number[]>([]);\n readonly columns = signal<SolarisTableColumn[]>([]);\n private readonly selectionSig = signal<SolarisRowKey[]>([]);\n private readonly rowKeys = signal<Set<SolarisRowKey>>(new Set());\n private readonly manualPx = signal<Record<number, number>>({});\n private readonly selectionSetSig = computed(() => new Set(this.selectionSig()));\n\n readonly selectAllChecked = computed(() => {\n const keys = Array.from(this.rowKeys());\n if (!keys.length) return false;\n const sel = this.selectionSetSig();\n return keys.every((k) => sel.has(k));\n });\n readonly selectAllIndeterminate = computed(() => {\n const keys = Array.from(this.rowKeys());\n if (!keys.length) return false;\n const sel = this.selectionSetSig();\n const any = keys.some((k) => sel.has(k));\n return any && !this.selectAllChecked();\n });\n readonly selectedCount = computed(() => this.selectionSig().length);\n readonly gridTemplateColumns = computed(() => this.buildGridTemplateColumns());\n\n private rafId: number | null = null;\n private resizeObserver?: ResizeObserver;\n\n get rangeStart(): number {\n if (!this.length) return 0;\n return this.pageIndex * this.pageSize + 1;\n }\n\n get rangeEnd(): number {\n if (!this.length) return 0;\n return Math.min(this.length, (this.pageIndex + 1) * this.pageSize);\n }\n\n get totalPages(): number {\n return Math.max(1, Math.ceil((this.length || 0) / (this.pageSize || 1)));\n }\n\n ngAfterContentInit(): void {\n this.syncColumns();\n this.selectionSig.set(this.selection ?? []);\n this.sortState.set(this.sort ?? []);\n\n this.columnQuery.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.syncColumns();\n this.scheduleMeasure();\n });\n\n this.resizeObserver = new ResizeObserver(() => this.scheduleMeasure());\n this.resizeObserver.observe(this.tableRoot.nativeElement);\n this.destroyRef.onDestroy(() => this.resizeObserver?.disconnect());\n\n const fonts = (document as any).fonts;\n if (fonts?.ready?.then) fonts.ready.then(() => this.scheduleMeasure());\n\n this.scheduleMeasure();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['sort']) this.sortState.set(this.sort ?? []);\n if (changes['selection']) this.selectionSig.set(this.selection ?? []);\n\n if (\n changes['variant'] ||\n changes['rowsCount'] ||\n changes['pageIndex'] ||\n changes['pageSize'] ||\n changes['loading']\n ) {\n this.scheduleMeasure();\n }\n }\n\n private syncColumns(): void {\n this.columns.set(this.columnQuery?.toArray() ?? []);\n }\n\n private scheduleMeasure(): void {\n if (this.loading) return;\n\n if (this.rafId != null) cancelAnimationFrame(this.rafId);\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n this.measureColumns();\n });\n }\n\n private measureColumns(): void {\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n const cols = this.columns();\n if (!cols.length) return;\n\n const isGrid = this.variant === 'grid';\n const borderPx = isGrid ? 2 : 0;\n const safetyPx = isGrid ? 2 : 0;\n const perColOverhead = borderPx + safetyPx;\n\n const widths: number[] = [];\n\n for (let i = 0; i < cols.length; i++) {\n const col = cols[i];\n\n if (col.width) {\n widths[i] = -1;\n continue;\n }\n\n const manual = this.manualPx()[i];\n if (manual != null) {\n widths[i] = manual;\n continue;\n }\n\n const headerCell = root.querySelector<HTMLElement>(\n `.solaris-table__row--header [data-col-idx=\"${i}\"]`,\n );\n const bodyCells = Array.from(\n root.querySelectorAll<HTMLElement>(`.solaris-table__body [data-col-idx=\"${i}\"]`),\n );\n\n const headerW = headerCell ? this.measureHeaderCellWidth(headerCell) : 0;\n const bodyW = this.measureBodyCellsWidth(bodyCells);\n\n const cap = this.toPx(col.maxWidth ?? '18rem', root);\n const ideal = Math.max(headerW, bodyW);\n const withOverhead = ideal + perColOverhead;\n\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\n\n widths[i] = Math.max(min, Math.min(withOverhead, cap));\n }\n\n this.measuredPx.set(widths);\n this.measuredReady.set(true);\n this.updateScrollFlag();\n }\n\n private measureHeaderCellWidth(cell: HTMLElement): number {\n const root = this.tableRoot?.nativeElement;\n if (!root) return 0;\n\n const clone = cell.cloneNode(true) as HTMLElement;\n\n clone.style.position = 'absolute';\n clone.style.left = '-99999px';\n clone.style.top = '0';\n clone.style.visibility = 'hidden';\n clone.style.pointerEvents = 'none';\n clone.style.width = 'max-content';\n clone.style.maxWidth = 'none';\n\n const resizer = clone.querySelector<HTMLElement>('.solaris-table__col-resizer');\n if (resizer) resizer.style.display = 'none';\n\n const headerContent = clone.querySelector<HTMLElement>('.solaris-table__header-content');\n if (headerContent) {\n headerContent.style.width = 'max-content';\n headerContent.style.justifyContent = 'flex-start';\n }\n\n const left = clone.querySelector<HTMLElement>('.solaris-table__header-left');\n if (left) {\n left.style.overflow = 'visible';\n left.style.maxWidth = 'none';\n left.style.minWidth = '0';\n }\n\n const text = clone.querySelector<HTMLElement>('.solaris-table__header-text');\n if (text) {\n text.style.maxWidth = 'none';\n text.style.overflow = 'visible';\n text.style.textOverflow = 'clip';\n text.style.whiteSpace = 'nowrap';\n text.style.display = 'inline-block';\n }\n\n const sortBtn = clone.querySelector<HTMLElement>('.solaris-table__sort-btn');\n if (sortBtn) sortBtn.style.width = 'max-content';\n\n root.appendChild(clone);\n const w = clone.getBoundingClientRect().width;\n clone.remove();\n\n return Math.ceil(w);\n }\n\n private measureBodyCellsWidth(cells: HTMLElement[]): number {\n let max = 0;\n for (const cell of cells) max = Math.max(max, this.measureBodyCellWidth(cell));\n return max;\n }\n\n private measureBodyCellWidth(cell: HTMLElement): number {\n const style = getComputedStyle(cell);\n const pad =\n Number.parseFloat(style.paddingLeft || '0') + Number.parseFloat(style.paddingRight || '0');\n\n const prefix = cell.querySelector<HTMLElement>('.solaris-row__select-prefix');\n const content = cell.querySelector<HTMLElement>('.solaris-row__content');\n\n const prefixW = prefix?.scrollWidth ?? 0;\n const contentW = content?.scrollWidth ?? cell.scrollWidth;\n\n const gap = prefix ? 12 : 0;\n return pad + prefixW + gap + contentW;\n }\n\n private toPx(value: string, base: HTMLElement): number {\n const v = value.trim();\n if (v.endsWith('px')) return Number.parseFloat(v);\n if (v.endsWith('rem'))\n return (\n Number.parseFloat(v) *\n Number.parseFloat(getComputedStyle(document.documentElement).fontSize)\n );\n if (v.endsWith('em'))\n return Number.parseFloat(v) * Number.parseFloat(getComputedStyle(base).fontSize);\n const n = Number.parseFloat(v);\n return Number.isFinite(n) ? n : 280;\n }\n\n private updateScrollFlag(): void {\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n requestAnimationFrame(() => {\n const needs = root.scrollWidth > root.clientWidth + 1;\n this.needsScroll.set(needs);\n });\n }\n\n private clamp(n: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, n));\n }\n\n public clearManualWidth(i: number): void {\n const next = { ...this.manualPx() };\n delete next[i];\n this.manualPx.set(next);\n this.scheduleMeasure();\n }\n\n public onResizeStart(ev: PointerEvent, i: number): void {\n ev.preventDefault();\n ev.stopPropagation();\n\n const root = this.tableRoot?.nativeElement;\n if (!root) return;\n\n const headerCell = this.getHeaderCell(i);\n if (!headerCell) return;\n\n const cols = this.columns();\n const col = cols[i];\n if (!col || col.width || !col.resizable) return;\n\n const startX = ev.clientX;\n const startW = this.manualPx()[i] ?? Math.round(headerCell.getBoundingClientRect().width);\n\n const min = col.minWidth ? this.toPx(col.minWidth, root) : 40;\n const hardMax = col.maxWidth ? this.toPx(col.maxWidth, root) : 9999;\n const maxSafe = this.computeResizeMax(i, min, hardMax, root);\n\n root.classList.add('is-resizing');\n (ev.target as HTMLElement).setPointerCapture?.(ev.pointerId);\n\n const onMove = (e: PointerEvent) => {\n const dx = e.clientX - startX;\n const nextW = this.clamp(Math.round(startW + dx), min, maxSafe);\n const cur = this.manualPx();\n if (cur[i] === nextW) return;\n this.manualPx.set({ ...cur, [i]: nextW });\n };\n\n const cleanup = () => {\n root.classList.remove('is-resizing');\n globalThis.removeEventListener('pointermove', onMove);\n globalThis.removeEventListener('pointerup', cleanup);\n globalThis.removeEventListener('pointercancel', cleanup);\n };\n\n globalThis.addEventListener('pointermove', onMove);\n globalThis.addEventListener('pointerup', cleanup);\n globalThis.addEventListener('pointercancel', cleanup);\n }\n\n private getHeaderCell(i: number): HTMLElement | null {\n const root = this.tableRoot?.nativeElement;\n if (!root) return null;\n return root.querySelector<HTMLElement>(`.solaris-table__row--header [data-col-idx=\"${i}\"]`);\n }\n\n private pxMinWidth(c: SolarisTableColumn, root: HTMLElement): number {\n return c.minWidth ? this.toPx(c.minWidth, root) : 0;\n }\n\n private pxFixedWidth(c: SolarisTableColumn, root: HTMLElement): number | null {\n if (!c.width) return null;\n const w = c.width.trim();\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\n const n = Number.parseFloat(w);\n return Number.isFinite(n) ? n : null;\n }\n\n private reservedWidthExcept(i: number, root: HTMLElement): number {\n const cols = this.columns();\n const manualMap = this.manualPx();\n\n let reserved = 0;\n\n for (let j = 0; j < cols.length; j++) {\n if (j === i) continue;\n const c = cols[j];\n\n if (c.width) {\n const px = this.pxFixedWidth(c, root);\n if (px != null) {\n reserved += px;\n continue;\n }\n\n const cell = this.getHeaderCell(j);\n reserved += Math.round(cell?.getBoundingClientRect().width ?? 48);\n continue;\n }\n\n const manual = manualMap[j];\n if (manual != null) {\n reserved += manual;\n continue;\n }\n\n if (c.grow) {\n reserved += this.pxMinWidth(c, root);\n continue;\n }\n\n reserved += 48;\n }\n\n return reserved;\n }\n\n public readField(row: any, path?: string): any {\n if (!path) return '';\n const parts = path.split('.');\n let cur = row;\n\n for (const p of parts) {\n if (cur == null) return '';\n cur = cur[p];\n }\n\n return cur ?? '';\n }\n\n private computeResizeMax(i: number, min: number, hardMax: number, root: HTMLElement): number {\n const available = root.clientWidth;\n const reserved = this.reservedWidthExcept(i, root);\n\n const safety = 8;\n const fitMax = Math.max(min, Math.floor(available - reserved - safety));\n\n return Math.max(min, Math.min(hardMax, fitMax));\n }\n\n public registerRowKey(key: SolarisRowKey): void {\n const next = new Set(this.rowKeys());\n next.add(key);\n this.rowKeys.set(next);\n }\n\n public unregisterRowKey(key: SolarisRowKey): void {\n const next = new Set(this.rowKeys());\n next.delete(key);\n this.rowKeys.set(next);\n }\n\n public onToggleSelectAll(checked: boolean): void {\n const keys = Array.from(this.rowKeys());\n const sel = new Set(this.selectionSig());\n\n if (checked) keys.forEach((k) => sel.add(k));\n else keys.forEach((k) => sel.delete(k));\n\n const out = Array.from(sel);\n this.selectionSig.set(out);\n this.selectionChange.emit(out);\n }\n\n public toggleRow(key: SolarisRowKey, checked: boolean): void {\n const sel = new Set(this.selectionSig());\n if (checked) sel.add(key);\n else sel.delete(key);\n\n const out = Array.from(sel);\n this.selectionSig.set(out);\n this.selectionChange.emit(out);\n }\n\n public isSelected(key: SolarisRowKey): boolean {\n return this.selectionSetSig().has(key);\n }\n\n public getSortFor(col: SolarisTableColumn): SolarisSort | undefined {\n const key = col.sortKey ?? col.field;\n if (!key) return undefined;\n return this.sortState().find((s) => s.key === key);\n }\n\n public onHeaderSortClick(ev: MouseEvent, col: SolarisTableColumn): void {\n ev.stopPropagation();\n\n if (!col.sortable) return;\n\n const key = col.sortKey ?? col.field;\n if (!key) return;\n\n const multi = ev.shiftKey;\n let next = [...this.sortState()];\n\n if (!multi) next = next.filter((s) => s.key === key);\n\n const idx = next.findIndex((s) => s.key === key);\n if (idx === -1) next.push({ key, direction: 'asc', order: next.length + 1 });\n else {\n const cur = next[idx];\n if (cur.direction === 'asc') next[idx] = { ...cur, direction: 'desc' };\n else next.splice(idx, 1);\n }\n\n next = next.map((s, k) => ({ ...s, order: k + 1 }));\n this.sortState.set(next);\n this.sortChange.emit(next);\n }\n\n public ariaSort(col: SolarisTableColumn): 'none' | 'ascending' | 'descending' {\n const s = this.getSortFor(col);\n if (!s) return 'none';\n return s.direction === 'asc' ? 'ascending' : 'descending';\n }\n\n public firstPage(): void {\n this.pageChange.emit({ pageIndex: 0, pageSize: this.pageSize });\n }\n public prevPage(): void {\n this.pageChange.emit({ pageIndex: Math.max(0, this.pageIndex - 1), pageSize: this.pageSize });\n }\n public nextPage(): void {\n this.pageChange.emit({\n pageIndex: Math.min(this.totalPages - 1, this.pageIndex + 1),\n pageSize: this.pageSize,\n });\n }\n public lastPage(): void {\n this.pageChange.emit({ pageIndex: this.totalPages - 1, pageSize: this.pageSize });\n }\n public changePageSize(size: number): void {\n this.pageChange.emit({ pageIndex: 0, pageSize: size });\n }\n\n private buildGridTemplateColumns(): string {\n const cols = this.columns();\n const measured = this.measuredPx();\n const root = this.tableRoot?.nativeElement;\n\n const minPx = (c: SolarisTableColumn) => (root && c.minWidth ? this.toPx(c.minWidth, root) : 0);\n const fixedWidthPx = (c: SolarisTableColumn): number | null => {\n if (!root || !c.width) return null;\n const w = c.width.trim();\n if (w.endsWith('px') || w.endsWith('rem') || w.endsWith('em')) return this.toPx(w, root);\n const n = Number.parseFloat(w);\n return Number.isFinite(n) ? n : null;\n };\n\n if (!measured.length || measured.length !== cols.length) {\n return cols\n .map((c) => {\n if (c.width) return c.width;\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\n if (root && c.maxWidth) {\n const cap = this.toPx(c.maxWidth, root);\n return `minmax(0px, ${cap}px)`;\n }\n return 'minmax(0px, 1fr)';\n })\n .join(' ');\n }\n\n const available = root?.clientWidth ?? 0;\n\n const rawPx: number[] = [];\n const growMinSum = cols.reduce((acc, c) => acc + (c.grow ? minPx(c) : 0), 0);\n\n let fixedSum = 0;\n\n for (let i = 0; i < cols.length; i++) {\n const c = cols[i];\n\n if (c.width) {\n const px = fixedWidthPx(c);\n rawPx[i] = px ?? 0;\n fixedSum += px ?? 0;\n continue;\n }\n\n if (c.grow) {\n rawPx[i] = 0;\n continue;\n }\n\n const manual = this.manualPx()[i];\n const px = manual ?? (measured[i] > 0 ? measured[i] : 180);\n rawPx[i] = px;\n fixedSum += px;\n }\n\n if (!available) {\n return cols\n .map((c, i) => {\n if (c.width) return c.width;\n if (c.grow) return `minmax(${minPx(c)}px, 1fr)`;\n return `${rawPx[i]}px`;\n })\n .join(' ');\n }\n\n const fixedBudget = Math.max(0, available - growMinSum);\n const scale = fixedSum > fixedBudget && fixedSum > 0 ? fixedBudget / fixedSum : 1;\n\n return cols\n .map((c, i) => {\n if (c.width) {\n return c.width;\n }\n\n if (c.grow) {\n const min = minPx(c);\n return `minmax(${min}px, 1fr)`;\n }\n\n const px = Math.max(48, Math.floor(rawPx[i] * scale));\n return `${px}px`;\n })\n .join(' ');\n }\n}\n","<ng-content select=\"solaris-table-filters\"></ng-content>\n\n<div\n class=\"solaris-table\"\n [class.solaris-table--grid]=\"variant === 'grid'\"\n [class.solaris-table--zebra]=\"variant === 'zebra'\"\n>\n <div #tableRoot class=\"solaris-table__inner\" role=\"table\" [attr.aria-rowcount]=\"rowsCount\">\n <div class=\"solaris-table__header\" role=\"rowgroup\">\n <div\n class=\"solaris-table__row solaris-table__row--header\"\n role=\"row\"\n [style.gridTemplateColumns]=\"gridTemplateColumns()\"\n >\n @for (col of columns(); track col.id; let i = $index) {\n <div\n class=\"solaris-table__cell solaris-table__cell--header\"\n role=\"columnheader\"\n [attr.data-col-idx]=\"i\"\n [attr.aria-sort]=\"ariaSort(col)\"\n [style.--solaris-col-max]=\"col.maxWidth || null\"\n >\n <div class=\"solaris-table__header-content\">\n <span class=\"solaris-table__header-left\">\n @if (selectable && i === 0) {\n <span class=\"solaris-table__select-prefix\" (click)=\"$event.stopPropagation()\">\n <solaris-checkbox\n variant=\"square\"\n color=\"primary\"\n size=\"sm\"\n [ngModel]=\"selectAllChecked()\"\n (ngModelChange)=\"onToggleSelectAll($event)\"\n [indeterminate]=\"selectAllIndeterminate()\"\n >\n </solaris-checkbox>\n </span>\n }\n\n @if (col.headerIconClass) {\n <i [class]=\"col.headerIconClass\"></i>\n }\n\n @if (col.headerDef?.template) {\n <ng-container [ngTemplateOutlet]=\"col.headerDef?.template\"></ng-container>\n } @else {\n @if (col.headerKey) {\n <span class=\"solaris-table__header-text\">{{ col.headerKey | translate }}</span>\n } @else {\n <span class=\"solaris-table__header-text\">{{ col.header }}</span>\n }\n }\n </span>\n\n @if (col.sortable) {\n <button\n type=\"button\"\n class=\"solaris-table__sort-btn\"\n (click)=\"onHeaderSortClick($event, col)\"\n >\n <span class=\"solaris-table__sort\">\n <i\n class=\"ph ph-arrow-up\"\n [class.is-active]=\"getSortFor(col)?.direction === 'asc'\"\n ></i>\n <i\n class=\"ph ph-arrow-down\"\n [class.is-active]=\"getSortFor(col)?.direction === 'desc'\"\n ></i>\n\n @if (getSortFor(col)?.order && sortState().length > 1) {\n <span class=\"solaris-table__sort-order\">{{ getSortFor(col)!.order }}</span>\n }\n </span>\n </button>\n }\n </div>\n\n @if (col.resizable && !col.width) {\n <span\n class=\"solaris-table__col-resizer\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n (pointerdown)=\"onResizeStart($event, i)\"\n (dblclick)=\"clearManualWidth(i)\"\n (click)=\"$event.stopPropagation()\"\n >\n </span>\n }\n </div>\n }\n </div>\n </div>\n\n <div class=\"solaris-table__body\" role=\"rowgroup\">\n @if (loading) {\n <solaris-table-skeleton\n [rows]=\"pageSize\"\n [columns]=\"columns().length\"\n [selectable]=\"selectable\"\n [gridTemplateColumns]=\"gridTemplateColumns()\"\n >\n </solaris-table-skeleton>\n } @else {\n @if (rowsCount === 0) {\n <div class=\"solaris-table__empty\" role=\"row\">\n <i [class]=\"emptyIconClass\"></i>\n <div class=\"solaris-table__empty-text\">{{ 'ui.solaris.tables.empty' | translate }}</div>\n </div>\n } @else {\n <ng-content select=\"solaris-row\"></ng-content>\n }\n }\n </div>\n\n <div class=\"solaris-table__footer\" role=\"rowgroup\">\n <div class=\"solaris-table__footer-left\">\n @if (selectedCount() > 0) {\n <div class=\"solaris-table__selected\">\n {{ selectedCount() }} {{ 'ui.solaris.tables.selection.selected' | translate }}\n </div>\n } @else if (tableDescription != null) {\n <div class=\"solaris-table__description\">\n {{ tableDescription }}\n </div>\n }\n </div>\n\n <div class=\"solaris-table__footer-right\">\n <div class=\"solaris-table__rows-per-page\">\n <span>{{ 'ui.solaris.tables.pagination.rowsPerPage' | translate }}:</span>\n <select [ngModel]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n @for (opt of pageSizeOptions; track opt) {\n <option [ngValue]=\"opt\">{{ opt }}</option>\n }\n </select>\n </div>\n\n <div class=\"solaris-table__range\">\n {{ rangeStart }}–{{ rangeEnd }} {{ 'ui.solaris.common.of' | translate }} {{ length }}\n </div>\n\n <div class=\"solaris-table__pager\">\n <button type=\"button\" (click)=\"firstPage()\" [disabled]=\"pageIndex === 0\">\n <i class=\"ph ph-caret-line-left\"></i>\n </button>\n <button type=\"button\" (click)=\"prevPage()\" [disabled]=\"pageIndex === 0\">\n <i class=\"ph ph-caret-left\"></i>\n </button>\n <button type=\"button\" (click)=\"nextPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\n <i class=\"ph ph-caret-right\"></i>\n </button>\n <button type=\"button\" (click)=\"lastPage()\" [disabled]=\"pageIndex >= totalPages - 1\">\n <i class=\"ph ph-caret-line-right\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Host,\n Input,\n OnInit,\n Optional,\n inject,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { SolarisCheckbox } from '../../../../actions/checkbox/component/checkbox';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { SolarisRowKey } from '../../model/table/table.types';\nimport { SolarisTable } from '../table/table';\n\n@Component({\n selector: 'solaris-row',\n standalone: true,\n imports: [FormsModule, SolarisCheckbox, SolarisTranslationPipe, NgTemplateOutlet],\n templateUrl: './table-row.html',\n styleUrls: ['./table-row.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'solaris-row-host' },\n})\nexport class SolarisRowComponent implements OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() rowKey!: SolarisRowKey;\n @Input({ required: true }) value!: any;\n\n constructor(@Optional() @Host() public readonly table: SolarisTable) {}\n\n ngOnInit(): void {\n if (!this.table) {\n throw new Error('<solaris-row> deve ser usado dentro de <solaris-table>.');\n }\n\n if (this.table.selectable && (this.rowKey === null || this.rowKey === undefined)) {\n throw new Error('Quando selectable=true, <solaris-row> exige [rowKey].');\n }\n\n if (this.table.selectable) {\n this.table.registerRowKey(this.rowKey);\n this.destroyRef.onDestroy(() => this.table.unregisterRowKey(this.rowKey));\n }\n }\n\n get isSelected(): boolean {\n return this.table.isSelected(this.rowKey);\n }\n}\n","<div\n class=\"solaris-row\"\n role=\"row\"\n [attr.aria-selected]=\"isSelected\"\n [class.is-selected]=\"isSelected\"\n [style.gridTemplateColumns]=\"table.gridTemplateColumns()\"\n>\n @for (col of table.columns(); track col.id; let i = $index) {\n <div\n class=\"solaris-row__cell\"\n role=\"cell\"\n [attr.data-col-idx]=\"i\"\n [class.align-end]=\"col.align === 'end'\"\n [class.align-center]=\"col.align === 'center'\"\n [style.--solaris-col-max]=\"col.maxWidth || null\"\n >\n @if (table.selectable && i === 0) {\n <span class=\"solaris-row__select-prefix\">\n <solaris-checkbox\n variant=\"square\"\n color=\"primary\"\n size=\"sm\"\n [ngModel]=\"isSelected\"\n (ngModelChange)=\"table.toggleRow(rowKey, $event)\"\n [attr.aria-label]=\"'ui.solaris.tables.aria.selectRow' | translate\"\n />\n </span>\n }\n\n <span class=\"solaris-row__label\">\n @if (col.headerKey) {\n {{ col.headerKey | translate }}\n } @else {\n {{ col.header }}\n }\n </span>\n\n <span class=\"solaris-row__content\">\n @if (col.cellDef?.template) {\n <ng-container\n [ngTemplateOutlet]=\"col.cellDef!.template\"\n [ngTemplateOutletContext]=\"{ $implicit: value, row: value, col: col }\"\n />\n } @else {\n {{ table.readField(value, col.field) }}\n }\n </span>\n </div>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-header]',\n standalone: true,\n})\nexport class SolarisHeaderDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-footer]',\n standalone: true,\n})\nexport class SolarisFooterDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-body]',\n standalone: true,\n})\nexport class SolarisBodyDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SolarisDivider } from '../../divider/component/divider';\n\n@Component({\n selector: 'solaris-page',\n standalone: true,\n imports: [NgClass, SolarisDivider],\n templateUrl: './page.html',\n styleUrls: ['./page.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-page-host',\n },\n})\nexport class SolarisPage {\n @Input() stickyHeader = false;\n @Input() container: 'contained' | 'fluid' = 'contained';\n}\n","<div class=\"solaris-page\" [ngClass]=\"['container-' + container]\">\n <header class=\"solaris-page__header\" [ngClass]=\"{ 'is-sticky': stickyHeader }\">\n <ng-content select=\"[solaris-header]\"></ng-content>\n @if (stickyHeader) {\n <solaris-divider class=\"solaris-page__header-divider\" />\n }\n </header>\n\n <main class=\"solaris-page__body\">\n <ng-content select=\"[solaris-body]\"></ng-content>\n </main>\n\n <footer class=\"solaris-page__footer\">\n <solaris-divider class=\"solaris-page__footer-divider\" />\n\n <div class=\"solaris-page__footer-content\">\n <ng-content select=\"[solaris-footer]\"></ng-content>\n </div>\n </footer>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-description]',\n standalone: true,\n})\nexport class SolarisPageHeaderDescriptionDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-breadcrumb]',\n standalone: true,\n})\nexport class SolarisPageHeaderBreadcrumbDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-title]',\n standalone: true,\n})\nexport class SolarisPageHeaderTitleDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'solaris-page-header-title',\n standalone: true,\n imports: [NgClass],\n templateUrl: './page-header-title.html',\n styleUrls: ['./page-header-title.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPageHeaderTitle {\n @Input() title = '';\n @Input() overline?: string;\n @Input() description?: string;\n @Input() size: 'md' | 'lg' = 'lg';\n}\n","<div class=\"solaris-page-title\" [ngClass]=\"['size-' + size]\">\n @if (overline) {\n <div class=\"solaris-page-title__overline\">{{ overline }}</div>\n }\n\n <h1 class=\"solaris-page-title__title\">{{ title }}</h1>\n\n @if (description) {\n <p class=\"solaris-page-title__description\">{{ description }}</p>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-page-header-actions]',\n standalone: true,\n})\nexport class SolarisPageHeaderActionsDirective {}\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport { SolarisPageHeaderDescriptionDirective } from '../directives/solaris-header-description.directive';\nimport { SolarisPageHeaderBreadcrumbDirective } from '../directives/solaris-header-breadcrumb.directive';\nimport { SolarisPageHeaderActionsDirective } from '../directives/solaris-header-actions.directive';\nimport { SolarisPageHeaderTitleDirective } from '../directives/solaris-header-title.directive';\nimport { SolarisSizePreset } from '../../../../common/model/common-configurations.type';\n\n@Component({\n selector: 'solaris-page-header',\n standalone: true,\n imports: [NgClass],\n templateUrl: './page-header.html',\n styleUrls: ['./page-header.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPageHeader {\n @Input() layout: 'split' | 'stacked' = 'split';\n @Input() density: SolarisSizePreset = 'md';\n\n @ContentChild(SolarisPageHeaderTitleDirective) titleSlot?: SolarisPageHeaderTitleDirective;\n @ContentChild(SolarisPageHeaderActionsDirective) actionsSlot?: SolarisPageHeaderActionsDirective;\n @ContentChild(SolarisPageHeaderBreadcrumbDirective)\n breadcrumbSlot?: SolarisPageHeaderBreadcrumbDirective;\n @ContentChild(SolarisPageHeaderDescriptionDirective)\n descriptionSlot?: SolarisPageHeaderDescriptionDirective;\n}\n","<header class=\"solaris-page-header\" [ngClass]=\"['layout-' + layout, 'density-' + density]\">\n <div class=\"solaris-page-header__left\">\n <div class=\"solaris-page-header__breadcrumb\">\n <ng-content select=\"[solaris-page-header-breadcrumb]\" />\n </div>\n\n <div class=\"solaris-page-header__titles\">\n <div class=\"solaris-page-header__title-row\">\n <h1 class=\"solaris-page-header__title\">\n <span class=\"solaris-page-header__title-slot\">\n <ng-content select=\"[solaris-page-header-title]\" />\n </span>\n\n <span class=\"solaris-page-header__title-meta\">\n <ng-content select=\"[solaris-page-header-title-meta]\" />\n </span>\n </h1>\n\n <div class=\"solaris-page-header__title-meta\">\n <ng-content select=\"[solaris-page-header-title-meta]\" />\n </div>\n </div>\n\n <p class=\"solaris-page-header__description\">\n <ng-content select=\"[solaris-page-header-description]\" />\n </p>\n </div>\n </div>\n\n <div class=\"solaris-page-header__actions\">\n <ng-content select=\"[solaris-page-header-actions]\" />\n </div>\n</header>\n","import { Directive, HostBinding, Input } from '@angular/core';\n\nimport { SolarisRadiusInput } from '../model/button.type';\n\nfunction resolveRadius(v: SolarisRadiusInput): string {\n const s = String(v).trim();\n switch (s) {\n case 'none':\n return '0';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return s;\n }\n}\n\n@Directive({\n selector: '[solaris-button-group]',\n standalone: true,\n})\nexport class ButtonGroupDirective {\n private _radius: SolarisRadiusInput | null = null;\n\n @Input() set radius(v: SolarisRadiusInput | null | undefined) {\n this._radius = v == null || String(v).trim() === '' ? null : v;\n }\n\n @HostBinding('attr.solaris-button-group') readonly attr = '';\n @HostBinding('style.--solaris-button-group-radius') get groupRadius() {\n return this._radius ? resolveRadius(this._radius) : null;\n }\n}\n","import { InjectionToken, Signal } from '@angular/core';\n\nimport { RadioCompareWith } from '../model/radio.type';\nimport { SolarisRadio } from '../component/radio';\n\nexport interface SolarisRadioGroupApi {\n readonly name: Signal<string>;\n readonly disabled: Signal<boolean>;\n readonly compareWith: Signal<RadioCompareWith>;\n\n notifyTouched(): void;\n select(radio: SolarisRadio): void;\n isSelected(value: unknown): boolean;\n tabIndexFor(radio: SolarisRadio): number;\n handleKeydown(event: KeyboardEvent, current: SolarisRadio): void;\n}\n\nexport const SOLARIS_RADIO_GROUP = new InjectionToken<SolarisRadioGroupApi>('SOLARIS_RADIO_GROUP');\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewChild,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n SolarisSizePreset,\n SolarisColorPreset,\n} from '../../../common/model/common-configurations.type';\nimport { RadioAppearance, RadioColorInput, RadioVariant } from '../model/radio.type';\nimport { SOLARIS_RADIO_GROUP } from '../token/radio-group.token';\nimport { uniqueId } from '../../../common/helper/unique-id';\n\nconst PRESET_COLORS = new Set<SolarisColorPreset>([\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\n@Component({\n selector: 'solaris-radio',\n standalone: true,\n templateUrl: './radio.html',\n styleUrls: ['./radio.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisRadio),\n multi: true,\n },\n ],\n host: {\n class: 'solaris-radio-host',\n '[attr.data-size]': 'size()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-variant]': 'variant()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-checked]': 'checked() ? \"true\" : null',\n '[style.--solaris-radio-custom]': 'customAccent()',\n },\n})\nexport class SolarisRadio implements ControlValueAccessor {\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly inputId = input<string | null>(null, { alias: 'id' });\n readonly inputName = input<string | null>(null, { alias: 'name' });\n readonly size = input<SolarisSizePreset>('md');\n readonly variant = input<RadioVariant>('dot');\n readonly appearance = input<RadioAppearance>('solid');\n readonly color = input<RadioColorInput>('primary');\n readonly value = input<unknown>(true);\n readonly checkedInput = input<boolean>(false, { alias: 'checked' });\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n\n readonly checkedChange = output<boolean>();\n\n @ViewChild('native', { static: true })\n private readonly native?: ElementRef<HTMLInputElement>;\n\n private readonly group = inject(SOLARIS_RADIO_GROUP, { optional: true });\n private readonly autoId = uniqueId('solaris-radio');\n private readonly autoName = uniqueId('solaris-radio-name');\n\n private readonly localChecked = signal(false);\n private readonly cvaDisabled = signal(false);\n\n readonly id = computed(() => this.inputId() ?? this.autoId);\n readonly name = computed(() => this.group?.name() ?? this.inputName() ?? this.autoName);\n\n readonly disabled = computed(() => {\n return !!this.group?.disabled() || this.disabledInput() || this.cvaDisabled();\n });\n\n readonly checked = computed(() => {\n if (this.group) return this.group.isSelected(this.value());\n return this.localChecked();\n });\n\n readonly tabIndex = computed(() => {\n if (this.group) return this.group.tabIndexFor(this);\n return this.disabled() ? -1 : 0;\n });\n\n readonly customAccent = computed(() => {\n if (this.colorKey() !== 'custom') return null;\n const raw = String(this.color() ?? '').trim();\n return !raw || raw === 'custom' ? null : raw;\n });\n\n readonly colorKey = computed(() => {\n const raw = String(this.color() ?? '').trim();\n if (!raw || raw === 'custom') return 'custom';\n return PRESET_COLORS.has(raw as SolarisColorPreset) ? (raw as SolarisColorPreset) : 'custom';\n });\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n effect(() => {\n if (this.group) return;\n this.localChecked.set(this.checkedInput());\n });\n }\n\n public onNativeChange() {\n if (this.disabled()) return;\n\n if (this.group) {\n const wasChecked = this.checked();\n this.group.select(this);\n if (!wasChecked) this.checkedChange.emit(true);\n return;\n }\n\n if (this.localChecked()) {\n this.onTouched();\n return;\n }\n\n this.localChecked.set(true);\n this.onChange(true);\n this.checkedChange.emit(true);\n this.onTouched();\n }\n\n public onNativeKeydown(event: KeyboardEvent) {\n if (this.disabled()) return;\n\n if (this.group) {\n this.group.handleKeydown(event, this);\n return;\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.onNativeChange();\n }\n }\n\n public onBlur() {\n if (this.group) {\n this.group.notifyTouched();\n return;\n }\n this.onTouched();\n }\n\n public focus() {\n this.native?.nativeElement.focus();\n }\n\n writeValue(value: boolean | null): void {\n if (this.group) return;\n this.localChecked.set(!!value);\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n}\n","<label class=\"solaris-radio\">\n <input\n #native\n class=\"solaris-radio__native\"\n type=\"radio\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.tabindex]=\"tabIndex()\"\n (change)=\"onNativeChange()\"\n (keydown)=\"onNativeKeydown($event)\"\n (blur)=\"onBlur()\"\n />\n\n <span class=\"solaris-radio__control\" aria-hidden=\"true\">\n <span class=\"solaris-radio__inner\" aria-hidden=\"true\"></span>\n </span>\n\n <span class=\"solaris-radio__content\">\n <ng-content />\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n QueryList,\n computed,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SOLARIS_RADIO_GROUP, SolarisRadioGroupApi } from '../../token/radio-group.token';\nimport { SolarisSizeValue } from '../../../../common/model/common-configurations.type';\nimport { RadioCompareWith, RadioGroupOrientation } from '../../model/radio.type';\nimport { uniqueId } from '../../../../common/helper/unique-id';\nimport { SolarisRadio } from '../../component/radio';\n\n@Component({\n selector: 'solaris-radio-group',\n standalone: true,\n templateUrl: './radio-group.html',\n styleUrls: ['./radio-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisRadioGroup),\n multi: true,\n },\n {\n provide: SOLARIS_RADIO_GROUP,\n useExisting: forwardRef(() => SolarisRadioGroup),\n },\n ],\n host: {\n class: 'solaris-radio-group-host',\n role: 'radiogroup',\n '[attr.data-orientation]': 'orientation()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-label]': 'ariaLabel() ?? null',\n '[attr.aria-orientation]': 'orientation()',\n '[style.--solaris-radio-group-gap]': 'resolvedGap()',\n },\n})\nexport class SolarisRadioGroup implements ControlValueAccessor, AfterContentInit, SolarisRadioGroupApi {\n readonly gap = input<SolarisSizeValue>('md');\n readonly compareWith = input<RadioCompareWith>(Object.is);\n readonly nameInput = input<string | null>(null, { alias: 'name' });\n readonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n readonly orientation = input<RadioGroupOrientation>('vertical');\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n readonly valueChange = output<unknown>();\n\n @ContentChildren(forwardRef(() => SolarisRadio), { descendants: true })\n private readonly radiosQuery?: QueryList<SolarisRadio>;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly autoName = uniqueId('solaris-radio-group');\n private readonly cvaDisabled = signal(false);\n private readonly internalValue = signal<unknown>(null);\n private readonly radiosVersion = signal(0);\n\n readonly name = computed(() => this.nameInput() ?? this.autoName);\n readonly disabled = computed(() => this.disabledInput() || this.cvaDisabled());\n\n readonly resolvedGap = computed(() => {\n const value = String(this.gap() ?? 'md').trim();\n switch (value) {\n case 'sm':\n return 'var(--solaris-space-2)';\n case 'md':\n return 'var(--solaris-space-3)';\n case 'lg':\n return 'var(--solaris-space-4)';\n default:\n return value;\n }\n });\n\n private onChange: (value: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngAfterContentInit(): void {\n this.bumpRadiosVersion();\n\n this.radiosQuery?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.bumpRadiosVersion());\n }\n\n public isSelected(value: unknown): boolean {\n return this.compareWith()(this.internalValue(), value);\n }\n\n public select(radio: SolarisRadio): void {\n if (this.disabled() || radio.disabled()) return;\n\n const nextValue = radio.value();\n if (!this.isSelected(nextValue)) {\n this.internalValue.set(nextValue);\n this.onChange(nextValue);\n this.valueChange.emit(nextValue);\n }\n\n this.onTouched();\n this.bumpRadiosVersion();\n }\n\n public tabIndexFor(radio: SolarisRadio): number {\n this.radiosVersion();\n\n if (this.disabled() || radio.disabled()) return -1;\n\n const enabled = this.enabledRadios();\n if (!enabled.length) return -1;\n\n const selected = enabled.find((item) => this.isSelected(item.value()));\n const target = selected ?? enabled[0];\n\n return target === radio ? 0 : -1;\n }\n\n public handleKeydown(event: KeyboardEvent, current: SolarisRadio): void {\n if (this.disabled()) return;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.move(current, +1);\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.move(current, -1);\n break;\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.select(current);\n break;\n default:\n break;\n }\n }\n\n public notifyTouched(): void {\n this.onTouched();\n }\n\n writeValue(value: unknown): void {\n this.internalValue.set(value);\n this.bumpRadiosVersion();\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n this.bumpRadiosVersion();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n private move(current: SolarisRadio, direction: 1 | -1): void {\n const enabled = this.enabledRadios();\n if (!enabled.length) return;\n\n const currentIndex = enabled.indexOf(current);\n const startIndex = Math.max(currentIndex, 0);\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\n const next = enabled[nextIndex];\n\n this.select(next);\n next.focus();\n }\n\n private enabledRadios(): SolarisRadio[] {\n this.radiosVersion();\n return (this.radiosQuery?.toArray() ?? []).filter((radio) => !radio.disabled());\n }\n\n private bumpRadiosVersion(): void {\n this.radiosVersion.update((value) => value + 1);\n }\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-avatar-overlay]',\n standalone: true,\n})\nexport class SolarisAvatarOverlayDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n HostBinding,\n Signal,\n booleanAttribute,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass } from '@angular/common';\n\nimport {\n SOLARIS_TRANSLATION,\n SOLARIS_TRANSLATION_CONFIGURATION,\n SolarisTranslationConfiguration,\n TranslationInterface,\n} from '@educarehq/solaris-services';\nimport {\n SolarisPresenceQuietHours,\n SolarisPresenceState,\n TimeContext,\n} from '../../../presence-avatar/model/presence-avatar.type';\nimport { SolarisAvatarShape } from '../../../avatar/model/avatar.type';\n\n@Component({\n selector: 'solaris-avatar-presence',\n standalone: true,\n imports: [NgClass],\n templateUrl: './avatar-presence.html',\n styleUrls: ['./avatar-presence.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarPresence {\n private readonly translation = inject<TranslationInterface | null>(SOLARIS_TRANSLATION, {\n optional: true,\n });\n private readonly translationConfiguration = inject<SolarisTranslationConfiguration | null>(\n SOLARIS_TRANSLATION_CONFIGURATION,\n { optional: true },\n );\n private readonly destroyRef = inject(DestroyRef);\n\n readonly presence = input<SolarisPresenceState>('offline');\n readonly timezone = input<string | null>(null);\n readonly lastSeenAt = input<string | Date | number | null>(null);\n readonly quietHours = input<SolarisPresenceQuietHours>(false);\n readonly workHoursStart = input(9);\n readonly workHoursEnd = input(18);\n\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n @HostBinding('class')\n protected readonly hostClass = 'solaris-avatar-presence-host';\n\n private readonly nowTick = signal(Date.now());\n\n private readonly fallbackLanguage = this.translationConfiguration?.defaultLanguage ?? 'en-US';\n\n private readonly activeLanguage: Signal<string> = this.translation\n ? toSignal(this.translation.languageChanges(), {\n initialValue: this.translation.language(),\n })\n : signal(this.fallbackLanguage);\n\n private readonly browserTimezone =\n typeof Intl === 'undefined' ? null : Intl.DateTimeFormat().resolvedOptions().timeZone || null;\n\n constructor() {\n if (globalThis.window !== undefined) {\n const intervalId = globalThis.setInterval(() => {\n this.nowTick.set(Date.now());\n }, 60_000);\n\n this.destroyRef.onDestroy(() => {\n globalThis.clearInterval(intervalId);\n });\n }\n }\n\n readonly normalizedTimezone = computed(() => this.normalize(this.timezone()));\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\n readonly parsedLastSeenAt = computed(() => this.parseDate(this.lastSeenAt()));\n\n readonly effectiveTimezone = computed(() => {\n return this.normalizedTimezone() || this.browserTimezone || null;\n });\n\n readonly intlLocale = computed(() => {\n const lang = this.activeLanguage() || this.fallbackLanguage || 'en-US';\n return lang.replace('_', '-');\n });\n\n readonly translationPrefix = computed(() => {\n const uiScope = this.translationConfiguration?.uiScope ?? 'ui';\n return `${uiScope}.solaris.avatar.presence`;\n });\n\n readonly normalizedWorkHours = computed(() => {\n const start = this.coerceHour(this.workHoursStart(), 9, 0, 23);\n const end = this.coerceHour(this.workHoursEnd(), 18, 1, 24);\n\n if (end <= start) {\n return { start: 9, end: 18 };\n }\n\n return { start, end };\n });\n\n readonly currentTimeContext = computed<TimeContext | null>(() => {\n this.nowTick();\n this.activeLanguage();\n\n const timezone = this.effectiveTimezone();\n if (!timezone || typeof Intl === 'undefined') {\n return null;\n }\n\n try {\n const formatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n weekday: 'short',\n hourCycle: 'h23',\n timeZone: timezone,\n });\n\n const parts = formatter.formatToParts(new Date(this.nowTick()));\n const hour = Number(parts.find((part) => part.type === 'hour')?.value ?? Number.NaN);\n const weekday = parts.find((part) => part.type === 'weekday')?.value ?? '';\n\n if (Number.isNaN(hour)) {\n return null;\n }\n\n const weekdayIndex = this.resolveWeekdayIndex(weekday);\n\n return {\n hour,\n timezone,\n isWeekend: weekdayIndex === 0 || weekdayIndex === 6,\n };\n } catch {\n return null;\n }\n });\n\n readonly isQuietHoursAuto = computed(() => {\n const context = this.currentTimeContext();\n if (!context) {\n return false;\n }\n\n if (context.isWeekend) {\n return true;\n }\n\n const { start, end } = this.normalizedWorkHours();\n return context.hour < start || context.hour >= end;\n });\n\n readonly showQuietHoursAccent = computed(() => {\n const mode = this.quietHours();\n\n if (mode === true) return true;\n if (mode === false) return false;\n\n return this.isQuietHoursAuto();\n });\n\n readonly showDndSlash = computed(() => this.presence() === 'dnd');\n\n readonly stateClasses = computed(() => [\n `state-${this.presence()}`,\n this.showQuietHoursAccent() ? 'has-quiet-hours' : '',\n ]);\n\n readonly titleText = computed(() => {\n if (this.ariaHidden()) return null;\n\n this.activeLanguage();\n return this.buildSemanticText();\n });\n\n readonly resolvedAriaLabel = computed(() => {\n if (this.ariaHidden()) return null;\n\n this.activeLanguage();\n return this.normalizedAriaLabel() || this.buildSemanticText();\n });\n\n private buildSemanticText(): string {\n const parts: string[] = [this.translate(`states.${this.presence()}`)];\n\n if (this.presence() === 'offline') {\n const lastSeen = this.getLastSeenLabel(this.parsedLastSeenAt());\n if (lastSeen) {\n parts.push(lastSeen);\n }\n }\n\n if (this.showQuietHoursAccent()) {\n parts.push(this.translate('quietHours'));\n }\n\n return parts.join(' • ');\n }\n\n private getLastSeenLabel(value: Date | null): string | null {\n if (!value || Number.isNaN(value.getTime())) {\n return null;\n }\n\n const now = new Date(this.nowTick());\n const diffMs = Math.max(0, now.getTime() - value.getTime());\n\n const minuteMs = 60_000;\n const hourMs = 60 * minuteMs;\n\n if (diffMs < minuteMs) {\n return this.translate('lastSeen.now');\n }\n\n if (diffMs < hourMs) {\n return this.translate('lastSeen.minutesAgo', {\n minutes: Math.floor(diffMs / minuteMs),\n });\n }\n\n if (diffMs < 6 * hourMs) {\n return this.translate('lastSeen.hoursAgo', {\n hours: Math.floor(diffMs / hourMs),\n });\n }\n\n const timeLabel = this.formatDate(value, {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n if (this.isSameCalendarDay(value, now)) {\n return this.translate('lastSeen.todayAt', {\n time: timeLabel,\n });\n }\n\n const yesterday = new Date(now);\n yesterday.setDate(now.getDate() - 1);\n\n if (this.isSameCalendarDay(value, yesterday)) {\n return this.translate('lastSeen.yesterdayAt', {\n time: timeLabel,\n });\n }\n\n return this.translate('lastSeen.onDate', {\n date: this.formatDate(value, {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n }),\n });\n }\n\n private formatDate(value: Date, options: Intl.DateTimeFormatOptions): string {\n try {\n return new Intl.DateTimeFormat(this.intlLocale(), options).format(value);\n } catch {\n return value.toLocaleString();\n }\n }\n\n private translate(key: string, params?: Record<string, unknown>): string {\n const fullKey = `${this.translationPrefix()}.${key}`;\n\n if (this.translation) {\n const translated = this.translation.translate(fullKey, params);\n if (translated && translated !== fullKey) {\n return translated;\n }\n }\n\n return this.fallbackTranslate(key, params);\n }\n\n private fallbackTranslate(key: string, params?: Record<string, unknown>): string {\n const isPt = this.intlLocale().toLowerCase().startsWith('pt');\n\n const dict = isPt\n ? {\n 'states.online': 'Online',\n 'states.offline': 'Offline',\n 'states.away': 'Ausente',\n 'states.busy': 'Ocupado',\n 'states.dnd': 'Não perturbe',\n quietHours: 'Fora do expediente local',\n 'lastSeen.now': 'Visto agora',\n 'lastSeen.minutesAgo': `Visto há ${params?.['minutes'] ?? 0} min`,\n 'lastSeen.hoursAgo': `Visto há ${params?.['hours'] ?? 0} h`,\n 'lastSeen.todayAt': `Visto hoje às ${params?.['time'] ?? ''}`,\n 'lastSeen.yesterdayAt': `Visto ontem às ${params?.['time'] ?? ''}`,\n 'lastSeen.onDate': `Visto em ${params?.['date'] ?? ''}`,\n }\n : {\n 'states.online': 'Online',\n 'states.offline': 'Offline',\n 'states.away': 'Away',\n 'states.busy': 'Busy',\n 'states.dnd': 'Do not disturb',\n quietHours: 'Outside local working hours',\n 'lastSeen.now': 'Seen just now',\n 'lastSeen.minutesAgo': `Seen ${params?.['minutes'] ?? 0} min ago`,\n 'lastSeen.hoursAgo': `Seen ${params?.['hours'] ?? 0} h ago`,\n 'lastSeen.todayAt': `Seen today at ${params?.['time'] ?? ''}`,\n 'lastSeen.yesterdayAt': `Seen yesterday at ${params?.['time'] ?? ''}`,\n 'lastSeen.onDate': `Seen on ${params?.['date'] ?? ''}`,\n };\n\n return dict[key as keyof typeof dict] ?? key;\n }\n\n private isSameCalendarDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n private resolveWeekdayIndex(weekday: string): number {\n switch (weekday.toLowerCase()) {\n case 'sun':\n return 0;\n case 'mon':\n return 1;\n case 'tue':\n return 2;\n case 'wed':\n return 3;\n case 'thu':\n return 4;\n case 'fri':\n return 5;\n case 'sat':\n return 6;\n default:\n return -1;\n }\n }\n\n private coerceHour(value: unknown, fallback: number, min: number, max: number): number {\n const numeric = Number(value);\n if (Number.isNaN(numeric)) {\n return fallback;\n }\n\n return Math.min(Math.max(Math.floor(numeric), min), max);\n }\n\n private parseDate(value: string | Date | number | null): Date | null {\n if (value == null || value === '') {\n return null;\n }\n\n if (value instanceof Date) {\n return Number.isNaN(value.getTime()) ? null : value;\n }\n\n const parsed = new Date(value);\n return Number.isNaN(parsed.getTime()) ? null : parsed;\n }\n\n private normalize(value: unknown): string {\n return String(value ?? '').trim();\n }\n}\n","<span\n class=\"solaris-avatar-presence\"\n [attr.title]=\"titleText()\"\n [attr.aria-label]=\"resolvedAriaLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [ngClass]=\"[...stateClasses(), shape() === 'square' ? 'shape-square' : 'shape-circle']\"\n>\n <span class=\"solaris-avatar-presence__dot\" aria-hidden=\"true\">\n @if (showDndSlash()) {\n <span class=\"solaris-avatar-presence__slash\"></span>\n }\n </span>\n\n @if (showQuietHoursAccent()) {\n <span class=\"solaris-avatar-presence__quiet\" aria-hidden=\"true\">z</span>\n }\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n booleanAttribute,\n computed,\n effect,\n input,\n signal,\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\n\nimport {\n SolarisAvatarButtonType,\n SolarisAvatarColorInput,\n SolarisAvatarColorPreset,\n SolarisAvatarObjectFit,\n SolarisAvatarRadiusInput,\n SolarisAvatarShape,\n SolarisAvatarSize,\n SolarisAvatarVariant,\n} from '../model/avatar.type';\n\n@Component({\n selector: 'solaris-avatar',\n standalone: true,\n imports: [NgClass],\n templateUrl: './avatar.html',\n styleUrls: ['./avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatar {\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly variant = input<SolarisAvatarVariant>('auto');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n readonly name = input<string | null>(null);\n readonly initials = input<string | null>(null);\n\n readonly color = input<SolarisAvatarColorInput>('surface');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly buttonType = input<SolarisAvatarButtonType>('button');\n readonly asButton = input(false, { transform: booleanAttribute });\n\n readonly radius = input<SolarisAvatarRadiusInput>(null);\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n @HostBinding('class')\n protected readonly hostClass = 'solaris-avatar-host';\n\n private readonly imageFailed = signal(false);\n\n private readonly presetColors = new Set<SolarisAvatarColorPreset>([\n 'primary',\n 'surface',\n 'success',\n 'warning',\n 'error',\n 'info',\n ]);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageFailed.set(false);\n });\n }\n\n readonly normalizedSrc = computed(() => this.normalize(this.src()));\n readonly normalizedAlt = computed(() => this.normalize(this.alt()));\n readonly normalizedName = computed(() => this.normalize(this.name()));\n readonly normalizedInitials = computed(() => this.normalize(this.initials()));\n readonly normalizedAriaLabel = computed(() => this.normalize(this.ariaLabel()));\n\n readonly resolvedInitials = computed(() => {\n const explicit = this.normalizedInitials();\n if (explicit) return explicit.slice(0, 2).toUpperCase();\n\n const name = this.normalizedName();\n if (!name) return '';\n\n const parts = name\n .split(/\\s+/)\n .map((part) => part.trim())\n .filter(Boolean);\n\n if (!parts.length) return '';\n if (parts.length === 1) return parts[0].slice(0, 1).toUpperCase();\n\n const first = parts[0]?.slice(0, 1) ?? '';\n const last = parts.at(-1)?.slice(0, 1) ?? '';\n\n return `${first}${last}`.toUpperCase();\n });\n\n readonly showImage = computed(() => {\n if (this.loading()) return false;\n\n const variant = this.variant();\n if (variant === 'letter' || variant === 'default') return false;\n\n return !!this.normalizedSrc() && !this.imageFailed();\n });\n\n readonly showLetter = computed(() => {\n if (this.loading()) return false;\n\n const variant = this.variant();\n const initials = this.resolvedInitials();\n\n if (!initials) return false;\n if (variant === 'letter') return true;\n if (variant === 'default') return false;\n\n return !this.showImage();\n });\n\n readonly showDefault = computed(() => {\n if (this.loading()) return false;\n return !this.showImage() && !this.showLetter();\n });\n\n readonly isCustomColor = computed(\n () => !this.presetColors.has(this.color() as SolarisAvatarColorPreset),\n );\n\n readonly colorClass = computed(() => {\n return this.isCustomColor() ? 'color-custom' : `color-${this.color()}`;\n });\n\n readonly customColorValue = computed(() => {\n return this.isCustomColor() ? String(this.color()) : null;\n });\n\n readonly resolvedRadius = computed(() => {\n const radius = this.normalize(this.radius());\n\n if (!radius) {\n return this.shape() === 'circle'\n ? 'var(--solaris-avatar-radius-circle)'\n : 'var(--solaris-avatar-radius-square)';\n }\n\n switch (radius) {\n case 'none':\n return 'var(--solaris-radius-none)';\n case 'sm':\n return 'var(--solaris-radius-sm)';\n case 'md':\n return 'var(--solaris-radius-md)';\n case 'lg':\n return 'var(--solaris-radius-lg)';\n case 'full':\n return 'var(--solaris-radius-full)';\n default:\n return radius;\n }\n });\n\n readonly rootClasses = computed(() => [\n `size-${this.size()}`,\n `shape-${this.shape()}`,\n this.colorClass(),\n this.interactive() ? 'is-interactive' : '',\n this.disabled() ? 'is-disabled' : '',\n this.loading() ? 'is-loading' : '',\n this.asButton() ? 'is-button' : '',\n ]);\n\n readonly accessibleLabel = computed(() => {\n if (this.ariaHidden()) return null;\n\n return (\n this.normalizedAriaLabel() ||\n this.normalizedAlt() ||\n this.normalizedName() ||\n this.resolvedInitials() ||\n 'Avatar'\n );\n });\n\n readonly rootRole = computed(() => {\n if (this.ariaHidden() || this.asButton()) return null;\n return 'img';\n });\n\n onImageLoad(): void {\n this.imageFailed.set(false);\n }\n\n onImageError(): void {\n this.imageFailed.set(true);\n }\n\n private normalize(value: unknown): string {\n return String(value ?? '').trim();\n }\n}\n","@if (asButton()) {\n <button\n class=\"solaris-avatar\"\n [ngClass]=\"rootClasses()\"\n [type]=\"buttonType()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"accessibleLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [style.--solaris-avatar-radius]=\"resolvedRadius()\"\n [style.--solaris-avatar-image-fit]=\"objectFit()\"\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\"\n >\n <span class=\"solaris-avatar__body\">\n @if (loading()) {\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-avatar__image\"\n [src]=\"normalizedSrc()\"\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n } @else if (showLetter()) {\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">\n {{ resolvedInitials() }}\n </span>\n } @else if (showDefault()) {\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\n <svg\n class=\"solaris-avatar__placeholder-svg\"\n viewBox=\"0 0 64 64\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\n <path\n class=\"solaris-avatar__placeholder-body\"\n d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"\n ></path>\n </svg>\n </span>\n }\n </span>\n\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </span>\n </button>\n} @else {\n <span\n class=\"solaris-avatar\"\n [ngClass]=\"rootClasses()\"\n [attr.role]=\"rootRole()\"\n [attr.aria-label]=\"accessibleLabel()\"\n [attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n [style.--solaris-avatar-radius]=\"resolvedRadius()\"\n [style.--solaris-avatar-image-fit]=\"objectFit()\"\n [style.--solaris-avatar-custom-bg]=\"customColorValue()\"\n >\n <span class=\"solaris-avatar__body\">\n @if (loading()) {\n <span class=\"solaris-avatar__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-avatar__image\"\n [src]=\"normalizedSrc()\"\n alt=\"\"\n aria-hidden=\"true\"\n decoding=\"async\"\n (load)=\"onImageLoad()\"\n (error)=\"onImageError()\"\n />\n } @else if (showLetter()) {\n <span class=\"solaris-avatar__label\" aria-hidden=\"true\">{{ resolvedInitials() }}</span>\n } @else if (showDefault()) {\n <span class=\"solaris-avatar__placeholder\" aria-hidden=\"true\">\n <svg\n class=\"solaris-avatar__placeholder-svg\"\n viewBox=\"0 0 64 64\"\n preserveAspectRatio=\"xMidYMid meet\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle class=\"solaris-avatar__placeholder-head\" cx=\"32\" cy=\"25\" r=\"14\"></circle>\n <path\n class=\"solaris-avatar__placeholder-body\"\n d=\"M2 64 C6 50, 18 42, 32 45 C46 42, 58 50, 62 64 Z\"\n ></path>\n </svg>\n </span>\n }\n </span>\n\n <span class=\"solaris-avatar__overlay\" aria-hidden=\"true\">\n <ng-content></ng-content>\n </span>\n </span>\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n SolarisAvatarButtonType,\n SolarisAvatarColorInput,\n SolarisAvatarObjectFit,\n SolarisAvatarRadiusInput,\n SolarisAvatarShape,\n SolarisAvatarSize,\n SolarisAvatarVariant,\n} from '../../avatar/model/avatar.type';\nimport { SolarisTooltipDirective } from '../../../feedbacks/tooltip/directives/tooltip.directive';\nimport { SolarisAvatarOverlayDirective } from '../../avatar/directives/avatar-overlay.directive';\nimport { SolarisAvatarPresence } from '../../internal/avatar-presence/component/avatar-presence';\nimport { SolarisPresenceQuietHours, SolarisPresenceState } from '../model/presence-avatar.type';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-presence-avatar',\n standalone: true,\n imports: [\n SolarisAvatar,\n SolarisAvatarPresence,\n SolarisTooltipDirective,\n SolarisAvatarOverlayDirective,\n ],\n templateUrl: './presence-avatar.html',\n styleUrls: ['./presence-avatar.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisPresenceAvatar {\n readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly variant = input<SolarisAvatarVariant>('auto');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n readonly name = input<string | null>(null);\n readonly initials = input<string | null>(null);\n\n readonly color = input<SolarisAvatarColorInput>('surface');\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly buttonType = input<SolarisAvatarButtonType>('button');\n readonly asButton = input(false, { transform: booleanAttribute });\n\n readonly radius = input<SolarisAvatarRadiusInput>(null);\n readonly objectFit = input<SolarisAvatarObjectFit>('cover');\n\n readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n readonly ariaHidden = input(false, { alias: 'aria-hidden', transform: booleanAttribute });\n\n readonly presence = input<SolarisPresenceState>('offline');\n readonly presenceAriaLabel = input<string | null>(null);\n readonly timezone = input<string | null>(null);\n readonly lastSeenAt = input<string | Date | number | null>(null);\n readonly quietHours = input<SolarisPresenceQuietHours>('auto');\n readonly workHoursStart = input(9);\n readonly workHoursEnd = input(18);\n\n readonly presenceTooltipKey = computed(() => {\n return this.translationService.translate(\n `ui.solaris.avatar.presence.states.${this.presence()}`,\n );\n });\n}\n","<solaris-avatar\n [src]=\"src()\"\n [alt]=\"alt()\"\n [name]=\"name()\"\n [initials]=\"initials()\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [variant]=\"variant()\"\n [color]=\"color()\"\n [loading]=\"loading()\"\n [disabled]=\"disabled()\"\n [interactive]=\"interactive()\"\n [buttonType]=\"buttonType()\"\n [asButton]=\"asButton()\"\n [radius]=\"radius()\"\n [objectFit]=\"objectFit()\"\n [aria-label]=\"ariaLabel()\"\n [aria-hidden]=\"ariaHidden()\"\n solaris-tooltip\n [tooltip-key]=\"presenceTooltipKey()\"\n tooltip-variant=\"default\"\n tooltip-size=\"sm\"\n tooltip-prefix-icon=\"ph ph-info\"\n>\n <span solaris-avatar-overlay class=\"solaris-presence-avatar__overlay\" aria-hidden=\"true\">\n <solaris-avatar-presence\n [presence]=\"presence()\"\n [timezone]=\"timezone()\"\n [lastSeenAt]=\"lastSeenAt()\"\n [quietHours]=\"quietHours()\"\n [workHoursStart]=\"workHoursStart()\"\n [workHoursEnd]=\"workHoursEnd()\"\n [aria-label]=\"presenceAriaLabel()\"\n [aria-hidden]=\"ariaHidden()\"\n [shape]=\"shape()\"\n >\n </solaris-avatar-presence>\n </span>\n</solaris-avatar>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\nimport { SolarisPresenceAvatar } from '../../presence-avatar/component/presence-avatar';\nimport { SolarisAvatarStackItem, SolarisAvatarStackOverlap } from '../model/avatar-stack.type';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\n\n@Component({\n selector: 'solaris-avatar-stack',\n standalone: true,\n imports: [SolarisPresenceAvatar, SolarisAvatar],\n templateUrl: './avatar-stack.html',\n styleUrls: ['./avatar-stack.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarStack {\n readonly items = input<SolarisAvatarStackItem[]>([]);\n readonly max = input(4, { transform: numberAttribute });\n readonly showPresence = input(false, { transform: booleanAttribute });\n\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\n\n readonly visibleItems = computed(() => {\n const max = Math.max(1, this.max());\n return this.items().slice(0, max);\n });\n\n readonly hiddenCount = computed(() => {\n return Math.max(0, this.items().length - this.visibleItems().length);\n });\n\n readonly hasHiddenItems = computed(() => this.hiddenCount() > 0);\n}\n","<div\n class=\"solaris-avatar-stack\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.data-overlap]=\"overlap()\"\n>\n @for (item of visibleItems(); track item.name ?? item.src ?? $index) {\n <span class=\"solaris-avatar-stack__item\">\n @if (showPresence()) {\n <solaris-presence-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n [presence]=\"item.presence ?? 'offline'\"\n [timezone]=\"item.timezone ?? null\"\n [lastSeenAt]=\"item.lastSeenAt ?? null\"\n [quietHours]=\"item.quietHours ?? false\"\n />\n } @else {\n <solaris-avatar\n [size]=\"size()\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n />\n }\n </span>\n }\n\n @if (hasHiddenItems()) {\n <span class=\"solaris-avatar-stack__item solaris-avatar-stack__more\">\n +{{ hiddenCount() }}\n </span>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Output,\n booleanAttribute,\n input,\n numberAttribute,\n} from '@angular/core';\n\nimport {\n SolarisAvatarDropdownItem,\n SolarisAvatarDropdownPlacement,\n SolarisAvatarDropdownSelectEvent,\n} from '../model/avatar-dropdown.type';\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\nimport { SolarisAvatarShape, SolarisAvatarSize } from '../../avatar/model/avatar.type';\nimport { SolarisAvatarStackOverlap } from '../../avatar-stack/model/avatar-stack.type';\nimport { SolarisAvatarStack } from '../../avatar-stack/component/avatar-stack';\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\nimport { SolarisAvatar } from '../../avatar/component/avatar';\n\n@Component({\n selector: 'solaris-avatar-dropdown',\n standalone: true,\n imports: [\n SolarisPopover,\n SolarisPopoverTriggerDirective,\n SolarisPopoverPanelDirective,\n SolarisAvatarStack,\n SolarisAvatar,\n ],\n templateUrl: './avatar-dropdown.html',\n styleUrls: ['./avatar-dropdown.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisAvatarDropdown {\n readonly items = input<SolarisAvatarDropdownItem[]>([]);\n\n readonly size = input<SolarisAvatarSize>('md');\n readonly shape = input<SolarisAvatarShape>('circle');\n readonly overlap = input<SolarisAvatarStackOverlap>('md');\n\n readonly maxVisible = input(4, { transform: numberAttribute });\n readonly placement = input<SolarisAvatarDropdownPlacement>('bottom-end');\n\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly closeOnSelect = input(true, { transform: booleanAttribute });\n\n readonly panelLabel = input('Avatar dropdown');\n\n @Output() readonly itemSelect = new EventEmitter<SolarisAvatarDropdownSelectEvent>();\n @Output() readonly openChange = new EventEmitter<boolean>();\n\n onItemClick(item: SolarisAvatarDropdownItem, index: number, popover: SolarisPopover): void {\n if (item.disabled) return;\n\n this.itemSelect.emit({ item, index });\n\n if (this.closeOnSelect()) {\n popover.setOpen(false);\n }\n }\n}\n","<solaris-popover\n #popover\n [placement]=\"placement()\"\n [offset]=\"8\"\n [autoFlip]=\"true\"\n [autoShift]=\"true\"\n [closeOnEscape]=\"true\"\n [closeOnOutsideClick]=\"true\"\n panelClass=\"solaris-avatar-dropdown-popover\"\n (openChange)=\"openChange.emit($event)\"\n>\n <button\n type=\"button\"\n solaris-popover-trigger\n class=\"solaris-avatar-dropdown__trigger\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"panelLabel()\"\n [attr.aria-expanded]=\"popover.isOpen() ? 'true' : 'false'\"\n (click)=\"popover.toggle()\"\n >\n <solaris-avatar-stack\n [items]=\"items()\"\n [max]=\"maxVisible()\"\n [size]=\"size()\"\n [shape]=\"shape()\"\n [overlap]=\"overlap()\"\n [showPresence]=\"false\"\n />\n </button>\n\n <ng-template solaris-popover-panel>\n <div class=\"solaris-avatar-dropdown__panel\" role=\"listbox\" [attr.aria-label]=\"panelLabel()\">\n @for (item of items(); track item.id ?? item.name ?? item.src ?? $index) {\n <button\n type=\"button\"\n class=\"solaris-avatar-dropdown__item\"\n [disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n (click)=\"onItemClick(item, $index, popover)\"\n >\n <solaris-avatar\n size=\"sm\"\n [shape]=\"shape()\"\n [src]=\"item.src ?? null\"\n [alt]=\"item.alt ?? null\"\n [name]=\"item.name ?? null\"\n [initials]=\"item.initials ?? null\"\n />\n\n <span class=\"solaris-avatar-dropdown__item-body\">\n <span class=\"solaris-avatar-dropdown__item-title\">\n {{ item.name || item.initials || 'User' }}\n </span>\n </span>\n </button>\n }\n </div>\n </ng-template>\n</solaris-popover>\n","import { InjectionToken, Signal } from '@angular/core';\n\nimport { CardGroupSelectionMode } from '../model/card-group.type';\n\nexport interface SolarisSelectionCardHandle {\n focus(): void;\n value(): unknown;\n disabled(): boolean;\n}\n\nexport interface SolarisCardGroupApi {\n readonly disabled: Signal<boolean>;\n readonly selectionMode: Signal<CardGroupSelectionMode>;\n\n notifyTouched(): void;\n isSelected(value: unknown): boolean;\n activate(card: SolarisSelectionCardHandle): void;\n tabIndexFor(card: SolarisSelectionCardHandle): number;\n handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void;\n}\n\nexport const SOLARIS_CARD_GROUP = new InjectionToken<SolarisCardGroupApi>('SOLARIS_CARD_GROUP');\n","import { CardColorInput, CardColorPreset } from '../model/card.type';\n\nconst CARD_PRESET_COLORS = new Set<CardColorPreset>([\n 'neutral',\n 'primary',\n 'success',\n 'warning',\n 'error',\n 'info',\n]);\n\nexport function resolveCardColorKey(\n value: CardColorInput | null | undefined,\n): CardColorPreset | 'custom' {\n const normalized = String(value ?? '').trim();\n if (!normalized) return 'neutral';\n\n return CARD_PRESET_COLORS.has(normalized as CardColorPreset)\n ? (normalized as CardColorPreset)\n : 'custom';\n}\n\nexport function resolveCardCustomColor(value: CardColorInput | null | undefined): string | null {\n const normalized = String(value ?? '').trim();\n if (!normalized || normalized === 'custom') return null;\n\n return CARD_PRESET_COLORS.has(normalized as CardColorPreset) ? null : normalized;\n}\n","import { CardRadiusInput } from '../model/card.type';\n\nexport function resolveCardRadius(value: CardRadiusInput | null | undefined): string | null {\n const normalized = normalizeCardValue(value);\n if (!normalized) return null;\n\n switch (normalized) {\n case 'none':\n return '0';\n\n case 'sm':\n return 'var(--solaris-radius-sm)';\n\n case 'md':\n return 'var(--solaris-radius-md, var(--solaris-radius-sm))';\n\n case 'lg':\n return 'var(--solaris-radius-lg, var(--solaris-radius-md, var(--solaris-radius-sm)))';\n\n case 'full':\n return 'var(--solaris-radius-full)';\n\n default:\n return normalized;\n }\n}\n\nexport function normalizeCardValue(value: unknown): string {\n return String(value ?? '').trim();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport {\n CardAppearance,\n CardColorInput,\n CardOrientation,\n CardRadiusInput,\n CardSize,\n} from '../model/card.type';\nimport { resolveCardCustomColor, resolveCardColorKey } from '../utils/resolve-card-color';\nimport { normalizeCardValue, resolveCardRadius } from '../utils/resolve-card-radius';\n\n@Component({\n selector: 'solaris-card',\n standalone: true,\n imports: [],\n templateUrl: './card.html',\n styleUrls: ['./card.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-card-host',\n\n '[attr.data-size]': 'size()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-color]': 'colorKey()',\n\n '[attr.data-selected]': 'selected() ? \"true\" : null',\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-interactive]': 'interactive() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n\n '[style.--solaris-card-radius]': 'resolvedRadius()',\n '[style.--solaris-card-accent-custom]': 'customColor()',\n '[style.--solaris-card-min-height]': 'normalizedMinHeight()',\n '[style.--solaris-card-reserved-inline-end]': 'normalizedReservedInlineEnd()',\n },\n})\nexport class SolarisCard {\n readonly size = input<CardSize>('md');\n readonly orientation = input<CardOrientation>('vertical');\n readonly radius = input<CardRadiusInput | null>(null);\n\n readonly color = input<CardColorInput>('neutral');\n readonly appearance = input<CardAppearance>('outline');\n\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly selected = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly interactive = input(false, { transform: booleanAttribute });\n\n readonly minHeight = input<string | null>(null);\n readonly reservedInlineEnd = input<string | null>(null);\n\n readonly normalizedMinHeight = computed(() => {\n return normalizeCardValue(this.minHeight()) || null;\n });\n\n readonly normalizedReservedInlineEnd = computed(() => {\n return normalizeCardValue(this.reservedInlineEnd()) || null;\n });\n\n readonly resolvedRadius = computed(() => resolveCardRadius(this.radius()));\n\n readonly customColor = computed(() => resolveCardCustomColor(this.color()));\n readonly colorKey = computed(() => resolveCardColorKey(this.color()));\n}\n","<article class=\"solaris-card\">\n <div class=\"solaris-card__media\">\n <ng-content select=\"solaris-card-media, [solaris-card-media]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__content\">\n <div class=\"solaris-card__header\">\n <div class=\"solaris-card__header-main\">\n <div class=\"solaris-card__eyebrow\">\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__title\">\n <ng-content select=\"[solaris-card-title]\"></ng-content>\n </div>\n </div>\n\n <div class=\"solaris-card__badge\">\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\n </div>\n </div>\n\n <div class=\"solaris-card__description\">\n <ng-content select=\"[solaris-card-description]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__meta\">\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__footer\">\n <div class=\"solaris-card__footer-main\">\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\n </div>\n\n <div class=\"solaris-card__actions\">\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\n </div>\n </div>\n </div>\n</article>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport {\n ResolvedSelectionCardIndicator,\n SelectionCardAppearance,\n SelectionCardColorInput,\n SelectionCardIndicator,\n SelectionCardOrientation,\n SelectionCardRadiusInput,\n SelectionCardSize,\n} from '../model/selection-card.type';\nimport {\n SOLARIS_CARD_GROUP,\n SolarisSelectionCardHandle,\n} from '../../card-group/token/card-group.token';\nimport { resolveCardColorKey, resolveCardCustomColor } from '../../card/utils/resolve-card-color';\nimport { CardGroupSelectionMode } from '../../card-group/model/card-group.type';\nimport { SolarisCard } from '../../card/component/card';\n\n@Component({\n selector: 'solaris-selection-card',\n standalone: true,\n imports: [SolarisCard],\n templateUrl: './selection-card.html',\n styleUrls: ['./selection-card.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-selection-card-host',\n\n '[attr.data-size]': 'size()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-selected]': 'selected() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n '[attr.data-invalid]': 'invalid() ? \"true\" : null',\n '[attr.data-appearance]': 'appearance()',\n '[attr.data-color]': 'colorKey()',\n '[attr.data-indicator]': 'resolvedIndicator()',\n\n '[attr.role]': 'role()',\n '[attr.aria-checked]': 'ariaChecked()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.tabindex]': 'tabIndex()',\n\n '[style.--solaris-selection-card-custom]': 'customAccent()',\n\n '(click)': 'onHostClick($event)',\n '(keydown)': 'onHostKeydown($event)',\n '(blur)': 'onHostBlur()',\n },\n})\nexport class SolarisSelectionCard implements SolarisSelectionCardHandle {\n readonly value = input<unknown>(null);\n\n readonly size = input<SelectionCardSize>('md');\n readonly color = input<SelectionCardColorInput>('primary');\n readonly orientation = input<SelectionCardOrientation>('vertical');\n readonly radius = input<SelectionCardRadiusInput | null>(null);\n readonly appearance = input<SelectionCardAppearance>('outline');\n\n readonly selectionIndicator = input<SelectionCardIndicator>('auto');\n\n readonly invalid = input(false, { transform: booleanAttribute });\n\n readonly disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n\n readonly selectedInput = input(false, {\n alias: 'selected',\n transform: booleanAttribute,\n });\n\n readonly selectedChange = output<boolean>();\n readonly cardClick = output<MouseEvent>();\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly group = inject(SOLARIS_CARD_GROUP, { optional: true });\n\n private readonly localSelected = signal(false);\n\n readonly disabled = computed(() => {\n return !!this.group?.disabled() || this.disabledInput();\n });\n\n readonly selected = computed(() => {\n if (this.group) return this.group.isSelected(this.value());\n\n return this.localSelected();\n });\n\n readonly resolvedMode = computed<CardGroupSelectionMode>(() => {\n if (this.group) return this.group.selectionMode();\n\n return inferStandaloneMode(this.selectionIndicator());\n });\n\n readonly resolvedIndicator = computed<ResolvedSelectionCardIndicator>(() => {\n const requested = this.selectionIndicator();\n\n if (requested !== 'auto') return requested;\n\n switch (this.resolvedMode()) {\n case 'single':\n return 'radio';\n\n case 'multiple':\n return 'checkbox';\n\n case 'none':\n default:\n return 'none';\n }\n });\n\n readonly tabIndex = computed(() => {\n if (this.disabled()) return -1;\n if (this.group) return this.group.tabIndexFor(this);\n\n return 0;\n });\n\n readonly role = computed(() => {\n switch (this.resolvedMode()) {\n case 'single':\n return 'radio';\n\n case 'multiple':\n return 'checkbox';\n\n case 'none':\n default:\n return 'button';\n }\n });\n\n readonly ariaChecked = computed(() => {\n if (this.resolvedMode() === 'none') return null;\n\n return this.selected() ? 'true' : 'false';\n });\n\n readonly colorKey = computed(() => {\n return resolveCardColorKey(this.color());\n });\n\n readonly customAccent = computed(() => {\n return resolveCardCustomColor(this.color());\n });\n\n readonly minHeight = computed(() => {\n return 'var(--ssc-min-height)';\n });\n\n readonly reservedInlineEnd = computed(() => {\n if (this.resolvedIndicator() === 'none') return null;\n\n return 'var(--ssc-reserved-inline-end)';\n });\n\n constructor() {\n effect(() => {\n if (this.group) return;\n\n this.localSelected.set(this.selectedInput());\n });\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n public onHostBlur(): void {\n this.group?.notifyTouched();\n }\n\n public onHostClick(event: MouseEvent): void {\n if (this.isActionZone(event.target)) return;\n\n this.cardClick.emit(event);\n\n if (this.disabled()) return;\n\n const previous = this.selected();\n\n if (this.group) {\n this.group.activate(this);\n\n if (previous !== this.selected()) {\n this.selectedChange.emit(this.selected());\n }\n\n return;\n }\n\n const next = this.activateStandalone();\n\n if (next !== previous) {\n this.selectedChange.emit(next);\n }\n }\n\n public onHostKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n\n if (this.group) {\n this.group.handleKeydown(event, this);\n return;\n }\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n\n const previous = this.selected();\n const next = this.activateStandalone();\n\n if (next !== previous) {\n this.selectedChange.emit(next);\n }\n }\n }\n\n private activateStandalone(): boolean {\n switch (this.resolvedMode()) {\n case 'single':\n if (!this.localSelected()) {\n this.localSelected.set(true);\n }\n\n return this.localSelected();\n\n case 'multiple':\n this.localSelected.update((value) => !value);\n\n return this.localSelected();\n\n case 'none':\n default:\n return this.localSelected();\n }\n }\n\n private isActionZone(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) return false;\n\n return !!target.closest(\n ['[data-card-actions=\"true\"]', '[solaris-card-actions]', '.solaris-card-slot--actions'].join(\n ',',\n ),\n );\n }\n}\n\nfunction inferStandaloneMode(indicator: SelectionCardIndicator): CardGroupSelectionMode {\n switch (indicator) {\n case 'radio':\n return 'single';\n\n case 'checkbox':\n case 'icon':\n case 'auto':\n return 'multiple';\n\n case 'none':\n default:\n return 'none';\n }\n}\n","<div class=\"solaris-selection-card\">\n @if (resolvedIndicator() !== 'none') {\n <span class=\"solaris-selection-card__indicator\" aria-hidden=\"true\">\n <span class=\"solaris-selection-card__indicator-control\">\n @switch (resolvedIndicator()) {\n @case ('radio') {\n <span class=\"solaris-selection-card__indicator-dot\"></span>\n }\n\n @case ('checkbox') {\n <i class=\"ph ph-check solaris-selection-card__indicator-check\"></i>\n }\n\n @case ('icon') {\n <span class=\"solaris-selection-card__indicator-icon-dot\"></span>\n }\n }\n </span>\n </span>\n }\n\n <solaris-card\n class=\"solaris-selection-card__card\"\n [orientation]=\"orientation()\"\n [size]=\"size()\"\n [radius]=\"radius()\"\n [appearance]=\"appearance()\"\n [color]=\"color()\"\n [selected]=\"selected()\"\n [invalid]=\"invalid()\"\n [interactive]=\"!disabled()\"\n [disabled]=\"disabled()\"\n [minHeight]=\"minHeight()\"\n [reservedInlineEnd]=\"reservedInlineEnd()\"\n >\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"solaris-card-media\">\n <ng-content select=\"solaris-card-media\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-media]\">\n <ng-content select=\"[solaris-card-media]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-eyebrow]\">\n <ng-content select=\"[solaris-card-eyebrow]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-title]\">\n <ng-content select=\"[solaris-card-title]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-description]\">\n <ng-content select=\"[solaris-card-description]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-meta]\">\n <ng-content select=\"[solaris-card-meta]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-badge]\">\n <ng-content select=\"[solaris-card-badge]\"></ng-content>\n </div>\n\n <div class=\"solaris-selection-card__slot\" ngProjectAs=\"[solaris-card-footer]\">\n <ng-content select=\"[solaris-card-footer]\"></ng-content>\n </div>\n\n <div\n class=\"solaris-selection-card__slot\"\n ngProjectAs=\"[solaris-card-actions]\"\n data-card-actions=\"true\"\n >\n <ng-content select=\"[solaris-card-actions]\"></ng-content>\n </div>\n </solaris-card>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-media-overlay]',\n standalone: true,\n})\nexport class SolarisCardMediaOverlayDirective {\n @HostBinding('attr.solaris-card-media-overlay')\n readonly attr = '';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nimport {\n SolarisCardMediaAlign,\n SolarisCardMediaAppearance,\n SolarisCardMediaColor,\n SolarisCardMediaFit,\n SolarisCardMediaOverlayPosition,\n SolarisCardMediaPadding,\n SolarisCardMediaRadius,\n SolarisCardMediaRatio,\n SolarisCardMediaVariant,\n} from '../model/card-media.type';\n\n@Component({\n selector: 'solaris-card-media',\n standalone: true,\n templateUrl: './card-media.html',\n styleUrls: ['./card-media.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-card-media-host',\n },\n})\nexport class SolarisCardMedia {\n readonly variant = input<SolarisCardMediaVariant>('image');\n\n readonly src = input<string | null>(null);\n readonly alt = input<string | null>(null);\n\n readonly color = input<SolarisCardMediaColor>('neutral');\n readonly appearance = input<SolarisCardMediaAppearance>('solid');\n\n readonly ratio = input<SolarisCardMediaRatio>('16:9');\n readonly customRatio = input<string | null>(null);\n\n readonly fit = input<SolarisCardMediaFit>('cover');\n readonly objectPosition = input<string>('center');\n\n readonly radius = input<SolarisCardMediaRadius>('inherit');\n readonly align = input<SolarisCardMediaAlign>('center');\n readonly padding = input<SolarisCardMediaPadding>('md');\n\n readonly height = input<string | null>(null);\n readonly minHeight = input<string | null>(null);\n readonly maxHeight = input<string | null>(null);\n\n readonly shadow = input<string | null>(null);\n readonly background = input<string | null>(null);\n readonly foreground = input<string | null>(null);\n readonly borderColor = input<string | null>(null);\n\n readonly overlayInset = input<string | null>(null);\n readonly overlayPosition = input<SolarisCardMediaOverlayPosition>('top-end');\n\n readonly loading = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly normalizedSrc = computed(() => normalizeCardMediaValue(this.src()));\n readonly normalizedAlt = computed(() => normalizeCardMediaValue(this.alt()));\n\n readonly normalizedShadow = computed(() => normalizeCardMediaValue(this.shadow()));\n readonly normalizedHeight = computed(() => normalizeCardMediaValue(this.height()));\n readonly normalizedMinHeight = computed(() => normalizeCardMediaValue(this.minHeight()));\n readonly normalizedMaxHeight = computed(() => normalizeCardMediaValue(this.maxHeight()));\n\n readonly normalizedBackground = computed(() => normalizeCardMediaValue(this.background()));\n readonly normalizedForeground = computed(() => normalizeCardMediaValue(this.foreground()));\n readonly normalizedBorderColor = computed(() => normalizeCardMediaValue(this.borderColor()));\n\n readonly normalizedCustomRatio = computed(() => normalizeCardMediaValue(this.customRatio()));\n readonly normalizedOverlayInset = computed(() => normalizeCardMediaValue(this.overlayInset()));\n\n readonly resolvedCustomRatio = computed(() => {\n return this.ratio() === 'custom' ? this.normalizedCustomRatio() : '';\n });\n\n readonly showImage = computed(() => {\n return !this.loading() && this.variant() === 'image' && !!this.normalizedSrc();\n });\n}\n\nfunction normalizeCardMediaValue(value: unknown): string {\n return String(value ?? '').trim();\n}\n","<div\n class=\"solaris-card-media\"\n [class.is-loading]=\"loading()\"\n [class.is-disabled]=\"disabled()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-appearance]=\"appearance()\"\n [attr.data-color]=\"color()\"\n [attr.data-ratio]=\"ratio()\"\n [attr.data-align]=\"align()\"\n [attr.data-radius]=\"radius()\"\n [attr.data-padding]=\"padding()\"\n [attr.data-overlay-position]=\"overlayPosition()\"\n [style.--solaris-card-media-fit]=\"fit()\"\n [style.--solaris-card-media-object-position]=\"objectPosition()\"\n [style.--solaris-card-media-custom-ratio]=\"resolvedCustomRatio() || null\"\n [style.--solaris-card-media-bg-override]=\"normalizedBackground() || null\"\n [style.--solaris-card-media-fg-override]=\"normalizedForeground() || null\"\n [style.--solaris-card-media-border-override]=\"normalizedBorderColor() || null\"\n [style.--solaris-card-media-shadow-override]=\"normalizedShadow() || null\"\n [style.--solaris-card-media-height]=\"normalizedHeight() || null\"\n [style.--solaris-card-media-min-height-override]=\"normalizedMinHeight() || null\"\n [style.--solaris-card-media-max-height]=\"normalizedMaxHeight() || null\"\n [style.--solaris-card-media-overlay-inset]=\"normalizedOverlayInset() || null\"\n>\n <div class=\"solaris-card-media__surface\">\n @if (loading()) {\n <span class=\"solaris-card-media__skeleton\" aria-hidden=\"true\"></span>\n } @else if (showImage()) {\n <img\n class=\"solaris-card-media__image\"\n [src]=\"normalizedSrc()\"\n [alt]=\"normalizedAlt()\"\n decoding=\"async\"\n />\n } @else {\n <div class=\"solaris-card-media__content\">\n <ng-content></ng-content>\n </div>\n }\n\n <div class=\"solaris-card-media__overlay\">\n <ng-content select=\"[solaris-card-media-overlay]\"></ng-content>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SolarisTranslationParams, SolarisTranslationPipe } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-field-error',\n standalone: true,\n imports: [SolarisTranslationPipe],\n templateUrl: './field-error.html',\n styleUrls: ['./field-error.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FieldErrorComponent {\n @Input() public text?: string;\n @Input() public textKey?: string;\n @Input() public textParams?: SolarisTranslationParams;\n}\n","<div class=\"solaris-field-error\" role=\"alert\" aria-live=\"polite\">\n <span class=\"solaris-field-error__text\">\n @if (textKey) {\n {{ textKey | translate: textParams }}\n } @else {\n {{ text }}\n }\n </span>\n</div>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n QueryList,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport {\n CardGroupCompareWith,\n CardGroupGap,\n CardGroupLayout,\n CardGroupOrientation,\n CardGroupSelectionMode,\n CardGroupValue,\n} from '../model/card-group.type';\nimport {\n SOLARIS_CARD_GROUP,\n SolarisCardGroupApi,\n SolarisSelectionCardHandle,\n} from '../token/card-group.token';\nimport { FieldErrorComponent } from '../../../forms/form-field/messages/error/field-error';\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\nimport { SolarisSelectionCard } from '../../selection-card/component/selection-card';\nimport { CardGroupValidationError } from '../model/card-group-error.type';\nimport { SolarisTranslationParams } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-card-group',\n standalone: true,\n imports: [FieldErrorComponent],\n templateUrl: './card-group.html',\n styleUrls: ['./card-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisCardGroup),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisCardGroup),\n multi: true,\n },\n {\n provide: SOLARIS_CARD_GROUP,\n useExisting: forwardRef(() => SolarisCardGroup),\n },\n ],\n host: {\n class: 'solaris-card-group-host',\n\n '[attr.data-layout]': 'layout()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-selection-mode]': 'selectionMode()',\n\n '[attr.data-invalid]': 'invalidComputed() ? \"true\" : null',\n '[attr.data-readonly]': 'readonly() ? \"true\" : null',\n '[attr.data-disabled]': 'disabled() ? \"true\" : null',\n\n '[style.--solaris-card-group-gap]': 'resolvedGap()',\n },\n})\nexport class SolarisCardGroup<T = unknown>\n implements ControlValueAccessor, Validator, AfterContentInit, SolarisCardGroupApi\n{\n readonly disabledInput = input(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly required = input(false, { transform: booleanAttribute });\n readonly submitted = input(false, { transform: booleanAttribute });\n readonly selectOnFocus = input(false, { transform: booleanAttribute });\n\n readonly gap = input<CardGroupGap>('md');\n readonly invalid = input<boolean | null>(null);\n readonly minSelected = input<number | null>(null);\n readonly maxSelected = input<number | null>(null);\n\n readonly layout = input<CardGroupLayout>('stack');\n readonly orientation = input<CardGroupOrientation>('vertical');\n readonly selectionMode = input<CardGroupSelectionMode>('single');\n\n readonly compareWith = input<CardGroupCompareWith<T>>(Object.is);\n readonly showErrors = input<SolarisShowErrors>('dirtyOrTouched');\n\n readonly requiredErrorKey = input('solaris.cardGroup.errors.required');\n readonly minSelectedErrorKey = input('solaris.cardGroup.errors.minSelected');\n readonly maxSelectedErrorKey = input('solaris.cardGroup.errors.maxSelected');\n\n readonly selectionRejected = output<{\n reason: 'readonly' | 'maxSelected';\n value: unknown;\n }>();\n readonly valueChange = output<CardGroupValue<T>>();\n\n @ContentChildren(forwardRef(() => SolarisSelectionCard), { descendants: true })\n private readonly cardsQuery?: QueryList<SolarisSelectionCard>;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly dirtyState = signal(false);\n private readonly cardsVersion = signal(0);\n private readonly cvaDisabled = signal(false);\n private readonly touchedState = signal(false);\n private readonly internalValue = signal<CardGroupValue<T>>(null);\n\n private onTouched: () => void = () => {};\n private onChange: (value: CardGroupValue<T>) => void = () => {};\n private onValidatorChange: () => void = () => {};\n\n constructor() {\n effect(() => {\n this.selectionMode();\n this.required();\n this.minSelected();\n this.maxSelected();\n this.compareWith();\n this.internalValue();\n\n this.onValidatorChange();\n });\n }\n\n ngAfterContentInit(): void {\n this.bumpCardsVersion();\n\n this.cardsQuery?.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.bumpCardsVersion());\n }\n\n readonly resolvedGap = computed(() => {\n const value = String(this.gap() ?? 'md').trim();\n\n switch (value) {\n case 'sm':\n return 'var(--solaris-space-3)';\n\n case 'md':\n return 'var(--solaris-space-4)';\n\n case 'lg':\n return 'var(--solaris-space-5)';\n\n default:\n return value;\n }\n });\n\n readonly disabled = computed(() => {\n return this.disabledInput() || this.cvaDisabled();\n });\n\n readonly groupRole = computed(() => {\n switch (this.selectionMode()) {\n case 'single':\n return 'radiogroup';\n\n case 'multiple':\n case 'none':\n default:\n return 'group';\n }\n });\n\n readonly selectionCount = computed(() => {\n const value = this.internalValue();\n\n if (Array.isArray(value)) return value.length;\n if (value == null) return 0;\n\n return 1;\n });\n\n readonly validationError = computed<CardGroupValidationError>(() => {\n if (this.disabled() || this.selectionMode() === 'none') return null;\n\n const count = this.selectionCount();\n\n if (this.required() && count === 0) return 'required';\n\n if (this.selectionMode() === 'multiple') {\n const min = this.minSelected();\n const max = this.maxSelected();\n\n if (min != null && count < min) return 'minSelected';\n if (max != null && count > max) return 'maxSelected';\n }\n\n return null;\n });\n\n readonly invalidComputed = computed(() => {\n const explicitInvalid = this.invalid();\n\n if (explicitInvalid !== null) return explicitInvalid;\n\n const localInvalid = this.validationError() !== null;\n\n switch (this.showErrors()) {\n case 'always':\n return localInvalid;\n\n case 'submitted':\n return localInvalid && this.submitted();\n\n case 'dirtyOrTouched':\n default:\n return localInvalid && (this.touchedState() || this.dirtyState());\n }\n });\n\n readonly errorKeyComputed = computed<string | undefined>(() => {\n switch (this.validationError()) {\n case 'required':\n return this.requiredErrorKey();\n\n case 'minSelected':\n return this.minSelectedErrorKey();\n\n case 'maxSelected':\n return this.maxSelectedErrorKey();\n\n default:\n return undefined;\n }\n });\n\n readonly errorParamsComputed = computed<SolarisTranslationParams | undefined>(() => {\n switch (this.validationError()) {\n case 'minSelected':\n return { min: this.minSelected() ?? undefined };\n\n case 'maxSelected':\n return { max: this.maxSelected() ?? undefined };\n\n default:\n return undefined;\n }\n });\n\n public isSelected(value: unknown): boolean {\n const currentValue = this.internalValue();\n\n switch (this.selectionMode()) {\n case 'single':\n return (\n !Array.isArray(currentValue) &&\n currentValue !== null &&\n this.compareWith()(currentValue, value as T)\n );\n\n case 'multiple': {\n const list: T[] = Array.isArray(currentValue) ? currentValue : [];\n\n return list.some((item) => this.compareWith()(item, value as T));\n }\n\n case 'none':\n default:\n return false;\n }\n }\n\n public activate(card: SolarisSelectionCardHandle): void {\n if (this.disabled() || card.disabled()) return;\n\n this.notifyTouched();\n\n if (this.readonly()) {\n this.selectionRejected.emit({\n reason: 'readonly',\n value: card.value(),\n });\n return;\n }\n\n switch (this.selectionMode()) {\n case 'single':\n this.activateSingle(card);\n break;\n\n case 'multiple':\n this.activateMultiple(card);\n break;\n\n case 'none':\n default:\n break;\n }\n\n this.bumpCardsVersion();\n }\n\n public tabIndexFor(card: SolarisSelectionCardHandle): number {\n this.cardsVersion();\n\n if (this.disabled() || card.disabled()) return -1;\n if (this.selectionMode() === 'none') return 0;\n\n const enabled = this.enabledCards();\n\n if (!enabled.length) return -1;\n\n const selected = enabled.find((item) => this.isSelected(item.value()));\n const target = selected ?? enabled[0];\n\n return target === card ? 0 : -1;\n }\n\n public handleKeydown(event: KeyboardEvent, current: SolarisSelectionCardHandle): void {\n if (this.disabled()) return;\n if (this.selectionMode() === 'none') return;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.move(current, 1);\n break;\n\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.move(current, -1);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusFirst();\n break;\n\n case 'End':\n event.preventDefault();\n this.focusLast();\n break;\n\n case ' ':\n case 'Enter':\n event.preventDefault();\n this.activate(current);\n break;\n }\n }\n\n public notifyTouched(): void {\n if (!this.touchedState()) {\n this.touchedState.set(true);\n }\n\n this.onTouched();\n }\n\n writeValue(value: CardGroupValue<T>): void {\n this.internalValue.set(this.normalizeIncomingValue(value, this.selectionMode()));\n\n this.bumpCardsVersion();\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n registerOnChange(fn: (value: CardGroupValue<T>) => void): void {\n this.onChange = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.cvaDisabled.set(isDisabled);\n this.bumpCardsVersion();\n }\n\n validate(_: AbstractControl): ValidationErrors | null {\n switch (this.validationError()) {\n case 'required':\n return { required: true };\n\n case 'minSelected':\n return {\n minSelected: {\n min: this.minSelected(),\n actual: this.selectionCount(),\n },\n };\n\n case 'maxSelected':\n return {\n maxSelected: {\n max: this.maxSelected(),\n actual: this.selectionCount(),\n },\n };\n\n default:\n return null;\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n private activateSingle(card: SolarisSelectionCardHandle): void {\n const nextValue = card.value() as T;\n const currentValue = this.internalValue();\n\n const alreadySelected =\n !Array.isArray(currentValue) &&\n currentValue !== null &&\n this.compareWith()(currentValue, nextValue);\n\n if (alreadySelected) return;\n\n this.internalValue.set(nextValue);\n this.emitModelChange(nextValue);\n }\n\n private activateMultiple(card: SolarisSelectionCardHandle): void {\n const currentValue = this.internalValue();\n const current: T[] = Array.isArray(currentValue) ? [...currentValue] : [];\n const cardValue = card.value() as T;\n\n const index = current.findIndex((item) => this.compareWith()(item, cardValue));\n\n if (index >= 0) {\n current.splice(index, 1);\n this.internalValue.set(current);\n this.emitModelChange(current);\n return;\n }\n\n const max = this.maxSelected();\n\n if (max != null && current.length >= max) {\n this.selectionRejected.emit({\n reason: 'maxSelected',\n value: cardValue,\n });\n return;\n }\n\n current.push(cardValue);\n this.internalValue.set(current);\n this.emitModelChange(current);\n }\n\n private move(current: SolarisSelectionCardHandle, direction: 1 | -1): void {\n const enabled = this.enabledCards();\n\n if (!enabled.length) return;\n\n const currentIndex = enabled.indexOf(current);\n const startIndex = Math.max(currentIndex, 0);\n const nextIndex = (startIndex + direction + enabled.length) % enabled.length;\n const next = enabled[nextIndex];\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(next);\n }\n\n next.focus();\n }\n\n private focusFirst(): void {\n const first = this.enabledCards()[0];\n\n if (!first) return;\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(first);\n }\n\n first.focus();\n }\n\n private focusLast(): void {\n const enabled = this.enabledCards();\n const last = enabled.at(-1);\n\n if (!last) return;\n\n if (this.selectionMode() === 'single' && this.selectOnFocus()) {\n this.activate(last);\n }\n\n last.focus();\n }\n\n private enabledCards(): SolarisSelectionCardHandle[] {\n this.cardsVersion();\n\n return (this.cardsQuery?.toArray() ?? []).filter((card) => !card.disabled());\n }\n\n private emitModelChange(value: CardGroupValue<T>): void {\n this.dirtyState.set(true);\n\n this.onChange(value);\n this.valueChange.emit(value);\n this.onValidatorChange();\n }\n\n private normalizeIncomingValue(\n value: CardGroupValue<T>,\n mode: CardGroupSelectionMode,\n ): CardGroupValue<T> {\n switch (mode) {\n case 'single':\n return Array.isArray(value) ? (value[0] ?? null) : value;\n\n case 'multiple':\n if (value == null) return [];\n\n return Array.isArray(value) ? value : [value];\n\n case 'none':\n default:\n return null;\n }\n }\n\n private bumpCardsVersion(): void {\n this.cardsVersion.update((value) => value + 1);\n }\n}\n","<div\n class=\"solaris-card-group__control\"\n [attr.role]=\"groupRole()\"\n [attr.aria-disabled]=\"disabled() ? 'true' : null\"\n [attr.aria-invalid]=\"invalidComputed() ? 'true' : null\"\n>\n <ng-content></ng-content>\n</div>\n\n<div class=\"solaris-card-group__message\">\n @if (errorKeyComputed()) {\n <solaris-field-error\n [textKey]=\"errorKeyComputed()\"\n [textParams]=\"errorParamsComputed()\"\n ></solaris-field-error>\n } @else {\n <ng-content select=\"[solaris-card-group-message], [card-group-message]\"></ng-content>\n }\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-description]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--description' },\n})\nexport class SolarisCardDescriptionDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-actions]',\n standalone: true,\n host: {\n class: 'solaris-card-slot solaris-card-slot--actions',\n 'data-card-actions': 'true',\n },\n})\nexport class SolarisCardActionsDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-eyebrow]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--eyebrow' },\n})\nexport class SolarisCardEyebrowDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-footer]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--footer' },\n})\nexport class SolarisCardFooterDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-media]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--media' },\n})\nexport class SolarisCardMediaDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-meta]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--meta' },\n})\nexport class SolarisCardMetaDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-badge]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--badge' },\n})\nexport class SolarisCardBadgeDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-card-title]',\n standalone: true,\n host: { class: 'solaris-card-slot solaris-card-slot--title' },\n})\nexport class SolarisCardTitleDirective {}\n","import { SolarisCardDescriptionDirective } from './card-description.directive';\nimport { SolarisCardEyebrowDirective } from './card-eyebrow.directive';\nimport { SolarisCardActionsDirective } from './card-actions.directive';\nimport { SolarisCardFooterDirective } from './card-footer.directive';\nimport { SolarisCardMediaDirective } from './card-media.directive';\nimport { SolarisCardTitleDirective } from './card-title.directive';\nimport { SolarisCardBadgeDirective } from './card-badge.directive';\nimport { SolarisCardMetaDirective } from './card-meta.directive';\n\nexport const SOLARIS_CARD_SLOT_DIRECTIVES = [\n SolarisCardMediaDirective,\n SolarisCardEyebrowDirective,\n SolarisCardTitleDirective,\n SolarisCardDescriptionDirective,\n SolarisCardMetaDirective,\n SolarisCardBadgeDirective,\n SolarisCardActionsDirective,\n SolarisCardFooterDirective,\n] as const;\n","export type PhoneSanitizeConfig = {\n allowedChars: RegExp;\n};\n\nexport function sanitizePhoneInput(v: string): string {\n let s = (v ?? '').replace(/[^\\d+\\-\\s().]/g, '');\n s = s.replace(/\\+/g, (_m, offset) => (offset === 0 ? '+' : ''));\n return s;\n}\n\nexport function insertAtCursor(input: HTMLInputElement, text: string): void {\n const start = input.selectionStart ?? input.value.length;\n const end = input.selectionEnd ?? input.value.length;\n input.value = input.value.slice(0, start) + text + input.value.slice(end);\n const pos = start + text.length;\n input.setSelectionRange(pos, pos);\n}\n\nexport function enforceMaxDigitsInPlace(input: HTMLInputElement, maxDigits?: number): void {\n if (!maxDigits) return;\n\n const v = input.value ?? '';\n const sanitized = sanitizePhoneInput(v);\n\n const digits = (sanitized.match(/\\d/g) ?? []).length;\n if (digits <= maxDigits) {\n if (sanitized !== v) input.value = sanitized;\n return;\n }\n\n let digitCount = 0;\n let out = '';\n for (const ch of sanitized) {\n if (/\\d/.test(ch)) {\n if (digitCount >= maxDigits) break;\n digitCount++;\n }\n out += ch;\n }\n input.value = out;\n}\n\nexport function shouldBlockBeforeInput(ev: InputEvent, cfg: PhoneSanitizeConfig): boolean {\n return !!ev.data && !cfg.allowedChars.test(ev.data);\n}\n\nexport function shouldBlockKeyDown(ev: KeyboardEvent): boolean {\n if (ev.ctrlKey || ev.metaKey || ev.altKey) return false;\n\n const k = ev.key;\n const allowedControl = [\n 'Backspace',\n 'Delete',\n 'Tab',\n 'Enter',\n 'Escape',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'ArrowDown',\n 'Home',\n 'End',\n ];\n if (allowedControl.includes(k)) return false;\n if (/^\\d$/.test(k)) return false;\n return !(k === '+' || k === '-' || k === ' ' || k === '(' || k === ')' || k === '.');\n}\n","import { getCountries, getCountryCallingCode } from 'libphonenumber-js';\n\nexport function buildCallingCodeIndex(): Map<string, string[]> {\n const m = new Map<string, string[]>();\n for (const c of getCountries()) {\n const code = getCountryCallingCode(c);\n const arr = m.get(code) ?? [];\n arr.push(c.toLowerCase());\n m.set(code, arr);\n }\n return m;\n}\n\nexport function pickIso2ForCallingCode(\n callingCode: string,\n selectedIso2: string | null,\n index: Map<string, string[]>,\n preferredCountries?: string[],\n): string | null {\n const list = index.get(callingCode) ?? [];\n if (!list.length) return null;\n\n const sel = selectedIso2?.toLowerCase() ?? null;\n if (sel && list.includes(sel)) return sel;\n\n if (callingCode === '1') {\n if (list.includes('us')) return 'us';\n if (list.includes('ca')) return 'ca';\n }\n\n const preferred = (preferredCountries ?? []).map((x) => x.toLowerCase());\n for (const p of preferred) {\n if (list.includes(p)) return p;\n }\n\n return list[0] ?? null;\n}\n\nexport function getInitialCountryFromBrowser(fallbackIso2: string): string {\n const lang = globalThis?.navigator?.language ?? '';\n const region = lang.split('-')[1]?.toLowerCase() ?? '';\n return region.length === 2 ? region : fallbackIso2;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisFormFieldFeature {\n kind: 'email' | 'password';\n}\n\nexport const SOLARIS_FORM_FIELD_FEATURES = new InjectionToken<\n ReadonlyArray<SolarisFormFieldFeature>\n>('SOLARIS_FORM_FIELD_FEATURES');\n","import { Injectable, Optional, inject, signal, DestroyRef } from '@angular/core';\nimport { NgControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport type { SolarisPasswordDirective } from '../../input-text/directives/input-password.directive';\nimport type { SolarisEmailDirective } from '../../input-text/directives/input-email.directive';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../tokens/form-field-features';\n\n@Injectable()\nexport class SolarisFormFieldController {\n features = inject(SOLARIS_FORM_FIELD_FEATURES, { optional: true }) ?? [];\n @Optional() private readonly ngForm = inject(NgForm, { optional: true });\n @Optional() private readonly formGroupDir = inject(FormGroupDirective, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n readonly submitted = signal<boolean>(false);\n readonly control = signal<NgControl | null>(null);\n readonly email = signal<SolarisEmailDirective | null>(null);\n readonly password = signal<SolarisPasswordDirective | null>(null);\n\n constructor() {\n this.formGroupDir?.ngSubmit\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.submitted.set(true));\n\n this.ngForm?.ngSubmit\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.submitted.set(true));\n }\n\n registerPassword(dir: SolarisPasswordDirective | null) {\n this.password.set(dir);\n }\n\n registerEmail(dir: SolarisEmailDirective | null) {\n this.email.set(dir);\n }\n\n registerControl(ctrl: NgControl | null) {\n if (!ctrl && this.control()) return;\n this.control.set(ctrl);\n }\n\n passwordVisible(): boolean {\n return this.password()?.visible() ?? false;\n }\n\n togglePasswordVisibility(): void {\n this.password()?.toggle();\n }\n\n resetSubmitted() {\n this.submitted.set(false);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisInputApi {\n element: HTMLInputElement | HTMLTextAreaElement;\n setType?(type: string): void;\n getType?(): string;\n}\n\nexport const SOLARIS_INPUT = new InjectionToken<SolarisInputApi>('SOLARIS_INPUT');\n","import { Directive, ElementRef, HostBinding, inject, Injector, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_INPUT, SolarisInputApi } from '../tokens/input.token';\n\n@Directive({\n selector: 'input[solaris-input],textarea[solaris-input]',\n standalone: true,\n providers: [\n {\n provide: SOLARIS_INPUT,\n useFactory: (): SolarisInputApi => {\n const el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>).nativeElement;\n return {\n element: el,\n setType: (type: string) => {\n if (el instanceof HTMLInputElement) el.type = type;\n },\n getType: () => (el instanceof HTMLInputElement ? el.type : 'textarea'),\n };\n },\n },\n ],\n})\nexport class InputTextDirective {\n private readonly el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n private readonly injector = inject(Injector);\n\n @Optional()\n private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n @HostBinding('attr.solaris-input') readonly attr = '';\n\n @HostBinding('attr.placeholder') get placeholderAttr() {\n return this.el.nativeElement.getAttribute('placeholder');\n }\n\n constructor() {\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n Injector,\n Input,\n OnDestroy,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport {\n enforceMaxDigitsInPlace,\n insertAtCursor,\n sanitizePhoneInput,\n shouldBlockBeforeInput,\n shouldBlockKeyDown,\n} from '../helper/phone-input.sanitize';\nimport {\n buildCallingCodeIndex,\n getInitialCountryFromBrowser,\n pickIso2ForCallingCode,\n} from '../helper/phone-input.country';\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { InputTextDirective } from '../../input-text/directives/input-text.directive';\nimport type { ItiInstance, ItiUtils } from '../model/phone-input.iti-types';\nimport { AsYouType, parsePhoneNumberFromString } from 'libphonenumber-js';\nimport { PhoneFormat, Iso2 } from '../model/phone-input.type';\nimport intlTelInput from 'intl-tel-input';\n\n@Component({\n selector: 'solaris-phone-input',\n standalone: true,\n templateUrl: './phone-input.html',\n styleUrls: ['./phone-input.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisPhoneInput),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisPhoneInput),\n multi: true,\n },\n ],\n imports: [InputTextDirective],\n})\nexport class SolarisPhoneInput\n implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator\n{\n private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly renderer = inject(Renderer2);\n private readonly injector = inject(Injector);\n\n @HostBinding('attr.solaris-phone-input') readonly marker = '';\n @ViewChild('input', { static: false }) inputRef?: ElementRef<HTMLInputElement>;\n\n @Input() set placeholder(v: string | undefined) {\n this._placeholder = v;\n this.applyPlaceholderIfCustom();\n }\n get placeholder(): string | undefined {\n return this._placeholder;\n }\n\n @Input() format: PhoneFormat = 'e164';\n @Input({ alias: 'only-countries' }) onlyCountries?: Iso2[];\n @Input({ alias: 'default-country' }) defaultCountry: Iso2 = 'br';\n @Input({ alias: 'preferred-countries' }) preferredCountries?: Iso2[];\n\n private _raw = '';\n private maxDigits?: number;\n private _placeholder?: string;\n protected _disabled = false;\n private iti: ItiInstance | null = null;\n private _lastE164: string | null = null;\n private readonly allowedChars = /^[0-9+\\-\\s().]*$/;\n private callingCodeIndex = new Map<string, string[]>();\n\n private onChange: (v: string | null) => void = () => {};\n private onTouched: () => void = () => {};\n private onValidatorChange?: () => void;\n\n constructor() {\n queueMicrotask(() => {\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngControl);\n });\n }\n\n ngAfterViewInit(): void {\n const el = this.el;\n if (!el) return;\n this.callingCodeIndex = buildCallingCodeIndex();\n this.initIntlTelInput(el);\n this.setupListeners(el);\n\n if (this._raw) el.value = this._raw;\n\n this.normalizeAndFormat(true);\n this.recalculateLimits();\n this.afterUtilsReady();\n }\n\n ngOnDestroy(): void {\n const el = this.el;\n if (el) this.teardownListeners(el);\n this.iti?.destroy?.();\n this.iti = null;\n }\n\n public writeValue(value: string | null): void {\n this._lastE164 = value ?? null;\n const el = this.el;\n if (!el) return;\n\n if (!value) {\n this._raw = '';\n el.value = '';\n this.recomputeFromRaw(true);\n return;\n }\n const iso2 = this.getSelectedIso2();\n const cc = iso2 ? iso2.toUpperCase() : undefined;\n const parsed = parsePhoneNumberFromString(value, cc as any);\n const next = parsed ? parsed.formatNational() : value;\n this._raw = next;\n el.value = next;\n\n this.recomputeFromRaw(true);\n }\n\n public registerOnChange(fn: (v: string | null) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this._disabled = isDisabled;\n const el = this.el;\n if (el) el.disabled = isDisabled;\n }\n\n public validate(): ValidationErrors | null {\n if (!this._raw?.trim()) return null;\n return this._lastE164 ? null : { solarisPhone: true };\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.onValidatorChange = fn;\n }\n\n protected onInput(silent = false): void {\n this.normalizeAndFormat(silent);\n }\n\n protected onBlur(): void {\n this.onTouched();\n const el = this.el;\n if (!el) return;\n\n this._raw = el.value ?? '';\n this.recomputeFromRaw(false);\n }\n\n protected onFocus(): void {\n const el = this.el;\n if (!el || this._disabled) return;\n if ((el.value ?? '').trim().length) return;\n\n const dial = this.getSelectedDialCode();\n if (!dial) return;\n\n const v = `+${dial} `;\n el.value = v;\n this._raw = v;\n\n queueMicrotask(() => el.setSelectionRange(v.length, v.length));\n this.recomputeFromRaw(false);\n }\n\n private normalizeAndFormat(silent: boolean): void {\n const el = this.el;\n if (!el) return;\n\n const raw = sanitizePhoneInput(el.value ?? '');\n const selectedIso2 = this.getSelectedIso2();\n const selectedCountry = selectedIso2 ? selectedIso2.toUpperCase() : undefined;\n\n const ayt = raw.trim().startsWith('+')\n ? new AsYouType()\n : new AsYouType(selectedCountry as any);\n\n const formatted = ayt.input(raw);\n el.value = formatted;\n this._raw = formatted;\n\n const number = ayt.getNumber();\n if (number?.countryCallingCode && this.iti) {\n const nextIso2 = pickIso2ForCallingCode(\n number.countryCallingCode,\n selectedIso2,\n this.callingCodeIndex,\n this.preferredCountries,\n );\n if (nextIso2 && nextIso2 !== selectedIso2) {\n this.setCountrySafely(nextIso2);\n }\n }\n\n enforceMaxDigitsInPlace(el, this.maxDigits);\n this.recomputeFromRaw(silent);\n }\n\n private recomputeFromRaw(silent: boolean): void {\n const raw = (this._raw ?? '').trim();\n\n if (!raw) {\n this._lastE164 = null;\n if (!silent) this.emit(null);\n return;\n }\n\n const iso2 = this.getSelectedIso2();\n const cc = iso2 ? iso2.toUpperCase() : undefined;\n\n const parsed = raw.startsWith('+')\n ? parsePhoneNumberFromString(raw)\n : parsePhoneNumberFromString(raw, cc as any);\n\n if (parsed?.isValid()) {\n this._lastE164 = parsed.number;\n if (!silent) this.emit(parsed.number);\n return;\n }\n\n this._lastE164 = null;\n if (!silent) this.emit(null);\n }\n\n private emit(v: string | null): void {\n this.onChange(v);\n this.onValidatorChange?.();\n }\n\n private initIntlTelInput(el: HTMLInputElement): void {\n const options: Record<string, unknown> = {\n initialCountry: getInitialCountryFromBrowser((this.defaultCountry || 'br').toLowerCase()),\n separateDialCode: false,\n nationalMode: false,\n formatOnDisplay: true,\n autoPlaceholder: 'aggressive',\n loadUtils: () => import('intl-tel-input/build/js/utils.js'),\n };\n\n const only = this.onlyCountries?.map((x) => x.toLowerCase());\n if (only?.length) options['onlyCountries'] = only;\n const preferred = this.preferredCountries?.map((x) => x.toLowerCase());\n if (preferred?.length) options['preferredCountries'] = preferred;\n this.iti = intlTelInput(el, options) as unknown as ItiInstance;\n this.applyPlaceholderIfCustom();\n }\n\n private afterUtilsReady(): void {\n const itiAny: any = this.iti as any;\n const p: Promise<unknown> | undefined = itiAny?.promise;\n\n const run = () => {\n const iso2 = this.getSelectedIso2();\n if (iso2) this.setCountrySafely(iso2);\n this.recalculateLimits();\n };\n\n if (p?.then) p.then(run);\n else queueMicrotask(run);\n }\n\n private setCountrySafely(iso2: string): void {\n try {\n (this.iti as any)?.setCountry?.(iso2);\n } catch {}\n }\n\n private recalculateLimits(): void {\n this.updateMaxDigits();\n const el = this.el;\n if (el) enforceMaxDigitsInPlace(el, this.maxDigits);\n }\n\n private updateMaxDigits(): void {\n if (!this.iti) {\n this.maxDigits = undefined;\n return;\n }\n\n const c: any = (this.iti as any).getSelectedCountryData?.();\n const iso2 = String(c?.iso2 ?? '').toLowerCase();\n const dialDigits = String(c?.dialCode ?? '').replace(/\\D/g, '').length;\n\n const u = this.getUtils();\n\n const exNationalDigits = this.safe(() => {\n if (!u?.getExampleNumber) return undefined;\n const t = u.numberType?.MOBILE;\n const ex = u.getExampleNumber?.(iso2, true, t);\n return ex ? (String(ex).match(/\\d/g) ?? []).length : undefined;\n });\n\n if (exNationalDigits && exNationalDigits > 0) {\n this.maxDigits = dialDigits + exNationalDigits;\n return;\n }\n\n const el = this.el;\n const ph = el?.getAttribute('placeholder') ?? '';\n const phDigits = (ph.match(/\\d/g) ?? []).length;\n this.maxDigits = phDigits > 0 ? phDigits : undefined;\n }\n\n private setupListeners(el: HTMLInputElement): void {\n el.addEventListener('beforeinput', this.onBeforeInput as any);\n el.addEventListener('keydown', this.onKeyDown);\n el.addEventListener('paste', this.onPaste);\n el.addEventListener('countrychange', this.onCountryChange);\n }\n\n private teardownListeners(el: HTMLInputElement): void {\n el.removeEventListener('beforeinput', this.onBeforeInput as any);\n el.removeEventListener('keydown', this.onKeyDown);\n el.removeEventListener('paste', this.onPaste);\n el.removeEventListener('countrychange', this.onCountryChange);\n }\n\n private readonly onCountryChange = () => {\n this.recalculateLimits();\n\n const el = this.el;\n if (!el || !(el.value ?? '').trim()) return;\n\n this._raw = el.value ?? '';\n this.normalizeAndFormat(false);\n };\n\n private readonly onBeforeInput = (ev: InputEvent) => {\n if (shouldBlockBeforeInput(ev, { allowedChars: this.allowedChars })) {\n ev.preventDefault();\n }\n };\n\n private readonly onKeyDown = (ev: KeyboardEvent) => {\n if (shouldBlockKeyDown(ev)) ev.preventDefault();\n };\n\n private readonly onPaste = (ev: ClipboardEvent) => {\n const el = this.el;\n if (!el) return;\n\n const text = ev.clipboardData?.getData('text') ?? '';\n if (!text) return;\n\n const sanitized = sanitizePhoneInput(text);\n if (sanitized === text) return;\n\n ev.preventDefault();\n insertAtCursor(el, sanitized);\n\n queueMicrotask(() => {\n this.recalculateLimits();\n this.normalizeAndFormat(false);\n });\n };\n\n private applyPlaceholderIfCustom(): void {\n const el = this.el;\n if (!el) return;\n\n const ph = this._placeholder?.trim();\n if (ph) this.renderer.setAttribute(el, 'placeholder', ph);\n }\n\n private getSelectedIso2(): string | null {\n try {\n const data = (this.iti as any)?.getSelectedCountryData?.();\n return (data?.iso2 as string | undefined)?.toLowerCase() ?? null;\n } catch {\n return null;\n }\n }\n\n private getSelectedDialCode(): string | null {\n try {\n const data = (this.iti as any)?.getSelectedCountryData?.();\n return (data?.dialCode as string | undefined) ?? null;\n } catch {\n return null;\n }\n }\n\n private getUtils(): ItiUtils | undefined {\n return (globalThis as any).intlTelInputUtils as ItiUtils | undefined;\n }\n\n private safe<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n return undefined;\n }\n }\n\n private get el(): HTMLInputElement | null {\n return this.inputRef?.nativeElement ?? null;\n }\n}\n","<input\n #input\n solaris-input\n type=\"tel\"\n [disabled]=\"_disabled\"\n (focus)=\"onFocus()\"\n (input)=\"onInput()\"\n (blur)=\"onBlur()\"\n data-bwignore=\"true\"\n/>\n","import {\n Directive,\n HostBinding,\n Optional,\n inject,\n signal,\n WritableSignal,\n Input,\n forwardRef,\n Injector,\n} from '@angular/core';\nimport {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n NgControl,\n} from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\nimport { SolarisPasswordErrorBag } from '../model/password-directive.type';\n\n@Directive({\n selector: 'input[solaris-password]',\n standalone: true,\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SolarisPasswordDirective),\n multi: true,\n },\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'password' }, multi: true },\n ],\n})\nexport class SolarisPasswordDirective implements Validator {\n @Input() minLength = 8;\n @Input() requireUpper = true;\n @Input() requireLower = true;\n @Input() requireNumber = true;\n @Input() requireSpecial = false;\n\n @Input() set requireUpperKebab(v: any) {\n this.requireUpper = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set requireLowerKebab(v: any) {\n this.requireLower = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set requireNumberKebab(v: any) {\n this.requireNumber = coerceBoolean(v);\n this._onChange?.();\n }\n @Input() set minLengthKebab(v: any) {\n this.minLength = coerceNumber(v, 8);\n this._onChange?.();\n }\n @Input() set requireSpecialKebab(v: any) {\n this.requireSpecial = coerceBoolean(v);\n this._onChange?.();\n }\n\n @HostBinding('attr.type') get type() {\n return this.visible() ? 'text' : 'password';\n }\n @HostBinding('attr.spellcheck') spellcheck = 'false';\n @HostBinding('attr.solaris-password') readonly marker = '';\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\n @HostBinding('attr.autocomplete') autocomplete = 'current-password';\n\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly injector = inject(Injector);\n\n readonly visible: WritableSignal<boolean> = signal(false);\n\n private _onChange?: () => void;\n\n constructor() {\n this.field?.registerPassword(this);\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n\n public toggle(): void {\n this.visible.set(!this.visible());\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const v = String(control.value ?? '');\n if (!v) return null;\n\n const errors: SolarisPasswordErrorBag = {};\n\n if (this.minLength && v.length < this.minLength) {\n errors.minLength = { requiredLength: this.minLength, actualLength: v.length };\n }\n if (this.requireLower && !/[a-z]/.test(v)) errors.lowercase = true;\n if (this.requireUpper && !/[A-Z]/.test(v)) errors.uppercase = true;\n if (this.requireNumber && !/\\d/.test(v)) errors.number = true;\n if (this.requireSpecial && !/[^\\w\\s]/.test(v)) errors.special = true;\n\n return Object.keys(errors).length ? { solarisPassword: errors } : null;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this._onChange = fn;\n }\n}\n\nfunction coerceBoolean(v: any): boolean {\n return v === '' || v === true || v === 'true' || v === 1 || v === '1';\n}\n\nfunction coerceNumber(v: any, fallback: number): number {\n const n = Number(v);\n return Number.isFinite(n) ? n : fallback;\n}\n","import {\n AbstractControl,\n NG_VALIDATORS,\n ValidationErrors,\n Validator,\n NgControl,\n} from '@angular/forms';\nimport { Directive, forwardRef, HostBinding, inject, Optional, Injector } from '@angular/core';\n\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SOLARIS_FORM_FIELD_FEATURES } from '../../form-field/tokens/form-field-features';\n\n@Directive({\n selector: 'input[solaris-email],input[solarisEmail]',\n standalone: true,\n providers: [\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SolarisEmailDirective), multi: true },\n { provide: SOLARIS_FORM_FIELD_FEATURES, useValue: { kind: 'email' }, multi: true },\n ],\n})\nexport class SolarisEmailDirective implements Validator {\n @HostBinding('attr.type') type = 'email';\n @HostBinding('attr.inputmode') inputmode = 'email';\n @HostBinding('attr.spellcheck') spellcheck = 'false';\n @HostBinding('attr.autocomplete') autocomplete = 'email';\n @HostBinding('attr.solaris-input') readonly solarisInput = '';\n @HostBinding('attr.autocapitalize') autocapitalize = 'none';\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n private readonly injector = inject(Injector);\n\n constructor() {\n this.field?.registerEmail(this);\n queueMicrotask(() => {\n const ngc = this.injector.get(NgControl, null, { self: true, optional: true });\n this.field?.registerControl(ngc);\n });\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const v = String(control.value ?? '').trim();\n if (!v) return null;\n const ok = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v);\n return ok ? null : { solarisEmail: true };\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface SolarisFormFieldControllerLike {\n passwordVisible(): boolean;\n togglePasswordVisibility(): void;\n}\n\nexport const SOLARIS_FORM_FIELD_CONTROLLER = new InjectionToken<SolarisFormFieldControllerLike>(\n 'SOLARIS_FORM_FIELD_CONTROLLER',\n);\n","import { ChangeDetectionStrategy, Component, HostBinding, Optional, inject } from '@angular/core';\n\nimport {\n SOLARIS_FORM_FIELD_CONTROLLER,\n SolarisFormFieldControllerLike,\n} from '../../form-field/tokens/form-field-controller.token';\nimport { SOLARIS_TRANSLATION, TranslationInterface } from '@educarehq/solaris-services';\n\n@Component({\n selector: 'solaris-password-toggle',\n standalone: true,\n templateUrl: './password-toggle.html',\n styleUrls: ['./password-toggle.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordToggle {\n private readonly translationService: TranslationInterface = inject(SOLARIS_TRANSLATION);\n\n @HostBinding('attr.solaris-suffix') readonly solarisSuffix = '';\n @Optional() private readonly field = inject<SolarisFormFieldControllerLike>(\n SOLARIS_FORM_FIELD_CONTROLLER,\n { optional: true },\n );\n\n protected visible = () => this.field?.passwordVisible() ?? false;\n\n protected toggle(): void {\n this.field?.togglePasswordVisibility();\n }\n protected get ariaLabelHide() {\n return this.translationService.translate('ui.solaris.password.aria.hidePassword');\n }\n protected get ariaLabelShow() {\n return this.translationService.translate('ui.solaris.password.aria.showPassword');\n }\n}\n","<button\n class=\"solaris-password-toggle\"\n type=\"button\"\n (click)=\"toggle()\"\n [attr.aria-pressed]=\"visible() ? 'true' : 'false'\"\n [attr.aria-label]=\"visible() ? ariaLabelHide : ariaLabelShow\"\n>\n @if (visible()) {\n <i class=\"ph ph-eye-slash\"></i>\n } @else {\n <i class=\"ph ph-eye\"></i>\n }\n</button>\n","import { Directive, Optional, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\n\n@Directive({\n selector:\n 'input[solaris-password],input[solaris-email],input[solaris-input],textarea[solaris-input]',\n standalone: true,\n})\nexport class SolarisControlBridgeDirective {\n @Optional() private readonly ctrl = inject(NgControl, { optional: true });\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n constructor() {\n if (this.ctrl) this.field?.registerControl(this.ctrl);\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[solaris-prefix]',\n standalone: true,\n})\nexport class SolarisPrefixDirective {\n @HostBinding('attr.solaris-prefix') readonly attr = '';\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[solaris-suffix]',\n standalone: true,\n})\nexport class SolarisSuffixDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Input,\n computed,\n effect,\n inject,\n signal,\n input,\n} from '@angular/core';\n\nimport { SolarisFormFieldAppearance, SolarisFormFieldRadius } from '../model/form-field.type';\nimport { SOLARIS_FORM_FIELD_CONTROLLER } from '../tokens/form-field-controller.token';\nimport { SolarisShowErrors } from '../../../common/model/common-configurations.type';\nimport { PasswordToggle } from '../../input-text/password-toggle/password-toggle';\nimport { SolarisFormFieldController } from '../controller/form-field-controller';\nimport { SolarisPrefixDirective } from '../directives/prefix.directive';\nimport { SolarisSuffixDirective } from '../directives/suffix.directive';\nimport { SolarisTranslationPipe } from '@educarehq/solaris-services';\nimport { FieldErrorComponent } from '../messages/error/field-error';\nimport { merge } from 'rxjs';\n\n@Component({\n selector: 'solaris-form-field',\n standalone: true,\n imports: [PasswordToggle, FieldErrorComponent, SolarisTranslationPipe],\n templateUrl: './form-field.html',\n styleUrls: ['./form-field.scss'],\n providers: [\n SolarisFormFieldController,\n { provide: SOLARIS_FORM_FIELD_CONTROLLER, useExisting: SolarisFormFieldController },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormField {\n protected readonly field = inject(SolarisFormFieldController);\n @ContentChild(SolarisPrefixDirective) prefix?: SolarisPrefixDirective;\n @ContentChild(SolarisSuffixDirective) suffix?: SolarisSuffixDirective;\n\n @Input() public hint?: string = '';\n @Input() public label?: string = '';\n @Input() public hintKey?: string = '';\n @Input() public labelKey?: string = '';\n @Input() public radius: SolarisFormFieldRadius = 'sm';\n @Input() public showErrors: SolarisShowErrors = 'dirtyOrTouched';\n @Input() public appearance: SolarisFormFieldAppearance = 'filled';\n\n private readonly _tick = signal(0);\n readonly customErrorKey = input<string>('');\n readonly invalid = input<boolean | null>(null);\n readonly customErrorParams = input<Record<string, unknown> | undefined>(undefined);\n\n constructor() {\n effect((onCleanup) => {\n const ac = this.field.control()?.control;\n if (!ac) return;\n\n const sub = merge(ac.statusChanges, ac.valueChanges).subscribe(() => {\n this._tick.update((v) => v + 1);\n });\n\n onCleanup(() => sub.unsubscribe());\n });\n }\n\n get hasPrefix(): boolean {\n return !!this.prefix;\n }\n get hasSuffix(): boolean {\n return !!this.suffix;\n }\n\n private getDirectErrorKey(errors: Record<string, any>): string {\n if (errors['required']) return 'ui.solaris.validation.required';\n if (errors['email'] || errors['solarisEmail']) return 'ui.solaris.validation.email';\n return '';\n }\n\n private getPasswordErrorKey(bag: any): string {\n if (bag?.minLength) return 'ui.solaris.validation.password.minLength';\n if (bag?.uppercase) return 'ui.solaris.validation.password.uppercase';\n if (bag?.lowercase) return 'ui.solaris.validation.password.lowercase';\n if (bag?.number) return 'ui.solaris.validation.password.number';\n if (bag?.special) return 'ui.solaris.validation.password.special';\n return 'ui.solaris.validation.password.invalid';\n }\n\n readonly showPasswordToggle = computed(() => !!this.field.password());\n\n readonly invalidComputed = computed(() => {\n this._tick();\n const invalid = this.invalid();\n if (invalid !== null) return invalid;\n const c = this.field.control();\n if (!c) return false;\n if (this.showErrors === 'always') return !!c.invalid;\n if (this.showErrors === 'submitted') return !!(c.invalid && this.field.submitted());\n return !!(c.invalid && (c.touched || c.dirty));\n });\n\n readonly errorParams = computed<Record<string, unknown> | undefined>(() => {\n this._tick();\n if (!this.invalidComputed()) return undefined;\n\n const customKey = this.customErrorKey()?.trim();\n if (customKey) {\n return this.customErrorParams();\n }\n\n const errors = this.field.control()?.errors;\n if (!errors) return undefined;\n\n if (errors['solarisPassword']) {\n return errors['solarisPassword'];\n }\n\n return undefined;\n });\n\n readonly errorKey = computed(() => {\n this._tick();\n\n if (!this.invalidComputed()) return '';\n\n const customKey = this.customErrorKey()?.trim();\n if (customKey) return customKey;\n\n const errors = this.field.control()?.errors;\n if (!errors) return '';\n\n const direct = this.getDirectErrorKey(errors);\n if (direct) return direct;\n\n if (errors['solarisPassword']) {\n return this.getPasswordErrorKey(errors['solarisPassword']);\n }\n\n return 'solaris.validation.invalid';\n });\n\n readonly disabledComputed = computed(() => {\n this._tick();\n const c = this.field.control();\n return !!c?.disabled;\n });\n}\n","<div\n class=\"solaris-form-field\"\n [class.solaris-form-field--has-prefix]=\"hasPrefix\"\n [attr.data-appearance]=\"appearance\"\n [attr.data-invalid]=\"invalidComputed() ? 'true' : null\"\n [attr.data-radius]=\"radius\"\n [attr.data-disabled]=\"disabledComputed() ? 'true' : null\"\n>\n @if (label || labelKey) {\n <label class=\"solaris-form-field__label\">\n @if (labelKey) {\n {{ labelKey | translate }}\n } @else if (label) {\n {{ label }}\n }\n </label>\n }\n\n <div class=\"solaris-form-field__frame\">\n @if (hasPrefix) {\n <span class=\"solaris-form-field__prefix\" aria-hidden=\"true\">\n <ng-content select=\"[solaris-prefix]\"></ng-content>\n </span>\n }\n\n <div class=\"solaris-form-field__body\">\n <div class=\"solaris-form-field__control-slot\">\n <ng-content></ng-content>\n </div>\n\n @if (hasSuffix || showPasswordToggle() || invalidComputed() || disabledComputed()) {\n <span class=\"solaris-form-field__suffix\">\n @if (disabledComputed()) {\n <span\n class=\"solaris-form-field__status solaris-form-field__status--disabled\"\n aria-hidden=\"true\"\n >\n <i class=\"ph ph-lock-simple\"></i>\n </span>\n } @else {\n <ng-content select=\"[solaris-suffix]\"></ng-content>\n\n @if (showPasswordToggle()) {\n <solaris-password-toggle></solaris-password-toggle>\n }\n\n @if (invalidComputed()) {\n <span class=\"solaris-form-field__status\" aria-hidden=\"true\">\n <i class=\"ph ph-warning-circle\"></i>\n </span>\n }\n }\n </span>\n }\n </div>\n </div>\n\n @if (errorKey()) {\n <solaris-field-error [textKey]=\"errorKey()\" [textParams]=\"errorParams()\"></solaris-field-error>\n } @else {\n <ng-content select=\"[form-field-message]\"></ng-content>\n }\n\n @if (hint || hintKey) {\n <div class=\"solaris-form-field__hint\">\n @if (hintKey) {\n {{ hintKey | translate }}\n } @else {\n {{ hint }}\n }\n </div>\n }\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n Input,\n Optional,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n Injector,\n forwardRef,\n OnInit,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { NgOptimizedImage } from '@angular/common';\n\nimport {\n SolarisSelectNode,\n SelectionDisplay,\n StackLevel,\n SolarisSelectItem,\n SolarisSelectRow,\n} from '../model/select.type';\nimport { SolarisPopoverTriggerDirective } from '../../../navigations/popover/directives/popover-trigger.directive';\nimport { SolarisPopoverPanelDirective } from '../../../navigations/popover/directives/popover-panel.directive';\nimport { SolarisFormFieldController } from '../../form-field/controller/form-field-controller';\nimport { SolarisTranslationPipe, SOLARIS_TRANSLATION } from '@educarehq/solaris-services';\nimport { SolarisPopover } from '../../../navigations/popover/component/popover';\n\n@Component({\n selector: 'solaris-select',\n standalone: true,\n imports: [\n SolarisPopover,\n SolarisPopoverTriggerDirective,\n SolarisPopoverPanelDirective,\n SolarisTranslationPipe,\n NgOptimizedImage,\n ],\n templateUrl: './select.html',\n styleUrls: ['./select.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SolarisSelect),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SolarisSelect implements OnInit, ControlValueAccessor, AfterViewInit {\n private readonly translationService = inject(SOLARIS_TRANSLATION);\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n\n @Optional() private readonly field = inject(SolarisFormFieldController, { optional: true });\n\n @ViewChild('tokenEl', { read: ElementRef }) tokenEl?: ElementRef<HTMLElement>;\n @ViewChild('measureSlot', { read: ElementRef }) measureSlot?: ElementRef<HTMLElement>;\n @ViewChild('triggerWrap', { read: ElementRef }) triggerWrap?: ElementRef<HTMLElement>;\n @ViewChild('triggerInput', { read: ElementRef }) triggerInput?: ElementRef<HTMLInputElement>;\n\n @HostBinding('attr.data-open') get dataOpen() {\n return this.open() ? 'true' : null;\n }\n\n @HostBinding('attr.data-compact') get dataCompact() {\n return this.compactInput() ? 'true' : null;\n }\n\n @HostBinding('attr.data-multiple') get dataMultiple() {\n return this.multiple ? 'true' : 'false';\n }\n\n private readonly _rootNodes = signal<SolarisSelectNode[]>([]);\n\n @Input() set items(v: SolarisSelectNode[] | null | undefined) {\n this._rootNodes.set(v ?? []);\n this.resetStack();\n\n const cur = this._value();\n const next = this.sanitizeValue(cur);\n const changed = !this.sameCvaValue(cur, next);\n\n if (changed) this._value.set(next);\n }\n\n private _multiple = false;\n\n @Input() set multiple(v: boolean) {\n this._multiple = v;\n\n const cur = this._value();\n\n if (this._multiple && !Array.isArray(cur)) this._value.set([]);\n if (!this._multiple && Array.isArray(cur)) this._value.set(null);\n }\n\n get multiple() {\n return this._multiple;\n }\n\n @Input() valueKey?: string;\n @Input() backKey = '';\n @Input() placeholder = '';\n @Input() placeholderKey = '';\n @Input() searchable = true;\n @Input() selectedCountKey = '';\n @Input() selectedFirst = true;\n @Input() searchPlaceholder = '';\n @Input() selectedCountText = '';\n @Input() panelMaxHeight = '32rem';\n @Input() searchPlaceholderKey = '';\n @Input() selectionSeparator = ', ';\n @Input() compareWith?: (a: any, b: any) => boolean;\n @Input() backText = 'ui.solaris.common.back';\n @Input() selectionDisplay: SelectionDisplay = 'auto';\n\n private readonly _disabled = signal(false);\n\n @Input() set disabled(v: boolean) {\n this._disabled.set(v);\n if (v) this.open.set(false);\n }\n\n get disabled() {\n return this._disabled();\n }\n\n readonly open = signal(false);\n readonly searchTerm = signal('');\n readonly activeIndex = signal(0);\n readonly showCount = signal(false);\n\n private readonly _value = signal<any>(null);\n private readonly _stack = signal<StackLevel[]>([]);\n\n readonly selectedItems = computed(() => {\n const all: SolarisSelectItem[] = [];\n this.collectAllItems(this._rootNodes(), all);\n\n const v = this._value();\n\n if (this.multiple) {\n const arr = Array.isArray(v) ? v : [];\n return all.filter((it) => arr.some((s) => this.eq(s, it.value)));\n }\n\n return all.filter((it) => v != null && this.eq(v, it.value));\n });\n\n readonly showToken = computed(() => {\n return this.selectedCount() > 0;\n });\n\n readonly selectedText = computed(() => {\n const items = this.selectedItems();\n if (!items.length) return '';\n\n return items\n .map((it) => this.itemLabel(it))\n .filter(Boolean)\n .join(this.selectionSeparator);\n });\n\n readonly triggerValue = computed(() => {\n if (this.isSearchMode()) return this.searchTerm();\n return '';\n });\n\n readonly activeOptionId = computed(() => {\n const idx = this.activeIndex();\n const row = this.itemRows()[idx];\n\n return row?.id ?? null;\n });\n\n readonly inputPlaceholderKey = computed(() => {\n if (this.selectedCount() > 0) return '';\n if (this.searchTerm().length > 0) return '';\n\n return this.open() && this.searchable\n ? this.searchPlaceholderKey || this.placeholderKey || ''\n : this.placeholderKey || '';\n });\n\n readonly inputPlaceholderText = computed(() => {\n if (this.selectedCount() > 0) return '';\n if (this.searchTerm().length > 0) return '';\n\n return this.open() && this.searchable\n ? this.searchPlaceholder || this.placeholder || 'Search...'\n : this.placeholder || '';\n });\n\n readonly viewModel = computed(() => {\n const lvl = this.currentLevel();\n const ordered = this.applySelectedFirst(lvl.nodes);\n const filtered = this.filterNodes(ordered, this.searchTerm());\n return this.buildRows(filtered);\n });\n\n readonly rows = computed(() => this.viewModel().rows);\n readonly canGoBack = computed(() => this._stack().length > 1);\n readonly selectedCount = computed(() => this.selectedItems().length);\n readonly isSearchMode = computed(() => this.open() && this.searchable);\n readonly itemRows = computed(() => this.viewModel().itemRows);\n readonly compactInput = computed(\n () => this.selectedCount() > 0 && this.searchTerm().length === 0,\n );\n readonly currentLevel = computed(() => this._stack().at(-1) ?? { nodes: this._rootNodes() });\n\n private static seq = 0;\n\n private _measureNonce = 0;\n private resizeObs?: ResizeObserver;\n private propagateTouched: () => void = () => {};\n private propagateChange: (v: any) => void = () => {};\n private resolvedNgControl: NgControl | null | undefined = undefined;\n\n matchWidthEl: HTMLElement | null = null;\n\n public readonly _id = `solaris-select-${++SolarisSelect.seq}`;\n\n constructor() {\n this.resetStack();\n\n effect(() => {\n this.selectedText();\n this.compactInput();\n this.scheduleAutoMeasure();\n });\n\n effect(() => {\n const isOpen = this.open();\n\n if (isOpen) {\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n } else {\n this.propagateTouched();\n this.searchTerm.set('');\n this.resetStack();\n }\n });\n }\n\n ngOnInit() {\n this.resolveNgControlOnce();\n }\n\n ngAfterViewInit() {\n const trigger = this.triggerWrap?.nativeElement;\n\n if (trigger) {\n this.matchWidthEl =\n (trigger\n .closest('.solaris-form-field')\n ?.querySelector('.solaris-form-field__frame') as HTMLElement) ?? null;\n }\n\n const el = this.triggerWrap?.nativeElement;\n\n if (!el) return;\n if (typeof ResizeObserver === 'undefined') return;\n\n this.resizeObs = new ResizeObserver(() => this.scheduleAutoMeasure(true));\n this.resizeObs.observe(el);\n\n if ((document as any).fonts?.ready) {\n (document as any).fonts.ready.then(() => this.scheduleAutoMeasure(true));\n }\n\n this.destroyRef.onDestroy(() => this.resizeObs?.disconnect());\n }\n\n writeValue(obj: any): void {\n this._value.set(this.sanitizeValue(obj));\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n private translate(key?: string, params?: any): string {\n if (!key) return '';\n return this.translationService.translate(key, params);\n }\n\n private itemLabel(item: SolarisSelectItem): string {\n if (item.labelKey) return this.translate(item.labelKey);\n return item.label ?? item.searchText ?? '';\n }\n\n private itemDescription(item: SolarisSelectItem): string {\n if (item.descriptionKey) return this.translate(item.descriptionKey);\n return item.description ?? '';\n }\n\n private itemEndText(item: SolarisSelectItem): string {\n if (item.endTextKey) return this.translate(item.endTextKey);\n return item.endText ?? '';\n }\n\n private itemSearchText(item: SolarisSelectItem): string {\n return [\n item.searchText,\n this.itemLabel(item),\n this.itemDescription(item),\n this.itemEndText(item),\n item.labelKey,\n item.descriptionKey,\n item.endTextKey,\n ]\n .filter(Boolean)\n .join(' ')\n .toLowerCase();\n }\n\n private sameCvaValue(a: any, b: any): boolean {\n if (this.multiple) {\n const aa = Array.isArray(a) ? a : [];\n const bb = Array.isArray(b) ? b : [];\n\n if (aa.length !== bb.length) return false;\n\n for (let i = 0; i < aa.length; i++) {\n if (!this.eq(aa[i], bb[i])) return false;\n }\n\n return true;\n }\n\n if (a == null && b == null) return true;\n if (a == null || b == null) return false;\n\n return this.eq(a, b);\n }\n\n private eq(a: any, b: any): boolean {\n if (this.compareWith) return this.compareWith(a, b);\n if (this.valueKey) return a?.[this.valueKey] === b?.[this.valueKey];\n\n return Object.is(a, b);\n }\n\n private resolveNgControlOnce() {\n if (this.resolvedNgControl !== undefined) return;\n\n this.resolvedNgControl = this.injector.get(NgControl, null, {\n self: true,\n optional: true,\n });\n\n if (this.resolvedNgControl) {\n this.field?.registerControl(this.resolvedNgControl);\n }\n }\n\n private collectAllItems(nodes: SolarisSelectNode[], out: SolarisSelectItem[]) {\n for (const n of nodes) {\n if (n.kind === 'item') {\n out.push(n);\n\n if (n.children?.length) {\n this.collectAllItems(n.children, out);\n }\n } else if (n.kind === 'group') {\n this.collectAllItems(n.items, out);\n }\n }\n }\n\n private resetStack() {\n this._stack.set([{ nodes: this._rootNodes() }]);\n }\n\n public goBack() {\n if (!this.canGoBack()) return;\n\n const s = [...this._stack()];\n s.pop();\n\n this._stack.set(s);\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n private enterChildren(item: SolarisSelectItem) {\n if (!item.children?.length) return;\n\n this._stack.set([\n ...this._stack(),\n {\n title: item.childrenTitle,\n titleKey: item.childrenTitleKey,\n nodes: item.children,\n },\n ]);\n\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n private filterNodes(nodes: SolarisSelectNode[], termRaw: string): SolarisSelectNode[] {\n const term = termRaw.trim().toLowerCase();\n\n if (!term) return nodes;\n\n const matchItem = (it: SolarisSelectItem) => {\n return this.itemSearchText(it).includes(term);\n };\n\n const walk = (list: SolarisSelectNode[]): SolarisSelectNode[] => {\n const res: SolarisSelectNode[] = [];\n\n for (const n of list) {\n if (n.kind === 'divider') {\n res.push(n);\n continue;\n }\n\n if (n.kind === 'group') {\n const sub = walk(n.items);\n\n if (sub.some((x) => x.kind !== 'divider')) {\n res.push({ ...n, items: sub });\n }\n\n continue;\n }\n\n if (n.children?.length) {\n const sub = walk(n.children);\n\n if (matchItem(n) || sub.some((x) => x.kind !== 'divider')) {\n res.push({ ...n, children: sub });\n }\n } else if (matchItem(n)) {\n res.push(n);\n }\n }\n\n return this.cleanupDividers(res);\n };\n\n return walk(nodes);\n }\n\n private cleanupDividers(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\n const out: SolarisSelectNode[] = [];\n\n for (const n of nodes) {\n if (n.kind === 'divider') {\n if (!out.length) continue;\n if (out.at(-1)?.kind === 'divider') continue;\n }\n\n out.push(n);\n }\n\n while (out.length && out[0].kind === 'divider') out.shift();\n while (out.length && out.at(-1)?.kind === 'divider') out.pop();\n\n return out;\n }\n\n private applySelectedFirst(nodes: SolarisSelectNode[]): SolarisSelectNode[] {\n if (!this.multiple || !this.selectedFirst) return nodes;\n\n const selected = (it: SolarisSelectItem) => {\n const v = this._value();\n const arr = Array.isArray(v) ? v : [];\n\n return arr.some((s) => this.eq(s, it.value));\n };\n\n const reorderSegment = (segment: SolarisSelectNode[]) => {\n const items: SolarisSelectItem[] = [];\n const others: SolarisSelectNode[] = [];\n\n for (const n of segment) {\n if (n.kind === 'item') {\n items.push(n);\n } else if (n.kind === 'group') {\n others.push({ ...n, items: this.applySelectedFirst(n.items) });\n } else {\n others.push(n);\n }\n }\n\n const sel: SolarisSelectItem[] = [];\n const non: SolarisSelectItem[] = [];\n\n for (const it of items) {\n if (selected(it)) {\n sel.push(it);\n } else {\n non.push(it);\n }\n }\n\n return [...sel, ...non, ...others];\n };\n\n const res: SolarisSelectNode[] = [];\n let buf: SolarisSelectNode[] = [];\n\n const flush = () => {\n if (!buf.length) return;\n\n res.push(...reorderSegment(buf));\n buf = [];\n };\n\n for (const n of nodes) {\n if (n.kind === 'divider') {\n flush();\n res.push(n);\n } else {\n buf.push(n);\n }\n }\n\n flush();\n\n return this.cleanupDividers(res);\n }\n\n private buildRows(nodes: SolarisSelectNode[]) {\n const rows: SolarisSelectRow[] = [];\n let optionIndex = 0;\n\n const pushItem = (it: SolarisSelectItem) => {\n const hasChildren = !!it.children?.length;\n const selectable = !hasChildren;\n const disabled = !!it.disabled;\n const selected = selectable ? this.isSelected(it.value) : false;\n\n rows.push({\n kind: 'item',\n key: `item-${optionIndex}-${this.itemLabel(it)}-${String(it.value)}`,\n id: `${this._id}-opt-${optionIndex}`,\n optionIndex,\n item: it,\n disabled,\n selected,\n hasChildren,\n selectable,\n });\n\n optionIndex++;\n };\n\n const walk = (list: SolarisSelectNode[]) => {\n for (const n of list) {\n if (n.kind === 'divider') {\n rows.push({ kind: 'divider', key: `div-${rows.length}` });\n continue;\n }\n\n if (n.kind === 'group') {\n rows.push({\n kind: 'group',\n key: `grp-${rows.length}-${n.label ?? n.labelKey ?? ''}`,\n label: n.label,\n labelKey: n.labelKey,\n });\n\n walk(n.items);\n continue;\n }\n\n pushItem(n);\n }\n };\n\n walk(nodes);\n\n const itemRows = rows.filter((r) => r.kind === 'item');\n\n return { rows, itemRows };\n }\n\n isSelected(value: any): boolean {\n const v = this._value();\n\n if (this.multiple) {\n const arr = Array.isArray(v) ? v : [];\n return arr.some((s) => this.eq(s, value));\n }\n\n return v != null && this.eq(v, value);\n }\n\n private setValue(next: any) {\n const cur = this._value();\n\n if (this.sameCvaValue(cur, next)) return;\n\n this._value.set(next);\n this.propagateChange(next);\n }\n\n toggleItem(value: any) {\n if (!this.multiple) return;\n\n const cur = this._value();\n const arr = Array.isArray(cur) ? [...cur] : [];\n const idx = arr.findIndex((v) => this.eq(v, value));\n\n if (idx >= 0) {\n arr.splice(idx, 1);\n } else {\n arr.push(value);\n }\n\n this.setValue(arr);\n this.searchTerm.set('');\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n }\n\n selectSingle(value: any) {\n if (this.multiple) return;\n\n this.searchTerm.set('');\n this.setValue(value);\n this.open.set(false);\n }\n\n onOptionClick(item: SolarisSelectItem) {\n if (this.disabled) return;\n\n if (item.children?.length) {\n this.enterChildren(item);\n return;\n }\n\n if (this.multiple) {\n this.toggleItem(item.value);\n this.searchTerm.set('');\n this.activeIndex.set(0);\n this.scheduleFocusTrigger();\n } else {\n this.searchTerm.set('');\n this.selectSingle(item.value);\n }\n }\n\n openFromTrigger() {\n if (this.disabled) return;\n\n if (!this.open()) {\n this.open.set(true);\n }\n }\n\n toggleOpen() {\n if (this.disabled) return;\n\n const next = !this.open();\n\n if (next) {\n this.searchTerm.set('');\n }\n\n this.open.set(next);\n }\n\n onTriggerInput(v: string) {\n if (this.disabled) return;\n\n if (!this.open()) {\n this.open.set(true);\n }\n\n this.searchTerm.set(v);\n this.activeIndex.set(0);\n }\n\n onTriggerKeydown(ev: KeyboardEvent) {\n if (this.disabled) return;\n\n if (!this.open()) {\n if (ev.key === 'ArrowDown' || ev.key === 'Enter') {\n ev.preventDefault();\n this.searchTerm.set('');\n this.open.set(true);\n this.activeIndex.set(0);\n return;\n }\n\n if (this.searchable && ev.key.length === 1 && !ev.ctrlKey && !ev.metaKey && !ev.altKey) {\n ev.preventDefault();\n this.searchTerm.set(ev.key);\n this.open.set(true);\n this.activeIndex.set(0);\n return;\n }\n\n return;\n }\n\n if (\n ev.key === 'ArrowDown' ||\n ev.key === 'ArrowUp' ||\n ev.key === 'Home' ||\n ev.key === 'End' ||\n ev.key === 'Enter' ||\n ev.key === 'Escape'\n ) {\n this.onPanelKeydown(ev);\n return;\n }\n\n if (\n (ev.key === 'Backspace' || ev.key === 'ArrowLeft') &&\n this.canGoBack() &&\n !this.searchTerm()\n ) {\n ev.preventDefault();\n this.goBack();\n }\n }\n\n onPanelKeydown(ev: KeyboardEvent) {\n const items = this.itemRows();\n\n if (!items.length) return;\n\n const max = items.length - 1;\n const clamp = (n: number) => Math.max(0, Math.min(max, n));\n\n switch (ev.key) {\n case 'ArrowDown':\n ev.preventDefault();\n this.activeIndex.set(clamp(this.activeIndex() + 1));\n break;\n\n case 'ArrowUp':\n ev.preventDefault();\n this.activeIndex.set(clamp(this.activeIndex() - 1));\n break;\n\n case 'Home':\n ev.preventDefault();\n this.activeIndex.set(0);\n break;\n\n case 'End':\n ev.preventDefault();\n this.activeIndex.set(max);\n break;\n\n case 'Enter':\n ev.preventDefault();\n this.onOptionClick(items[this.activeIndex()].item);\n break;\n\n case 'ArrowRight': {\n const row = items[this.activeIndex()];\n\n if (row?.hasChildren) {\n ev.preventDefault();\n this.enterChildren(row.item);\n }\n\n break;\n }\n\n case 'Escape':\n ev.preventDefault();\n this.open.set(false);\n break;\n }\n }\n\n private scheduleAutoMeasure(force = false) {\n if (!this.multiple) {\n this.showCount.set(false);\n return;\n }\n\n if (this.selectionDisplay === 'count') {\n this.showCount.set(true);\n return;\n }\n\n if (this.selectionDisplay === 'list') {\n this.showCount.set(false);\n return;\n }\n\n const nonce = ++this._measureNonce;\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (nonce !== this._measureNonce) return;\n\n this.measureAuto(force);\n });\n });\n }\n\n private measureAuto(_force: boolean) {\n if (!this.multiple) {\n this.showCount.set(false);\n return;\n }\n\n if (this.selectionDisplay === 'count') {\n this.showCount.set(true);\n return;\n }\n\n if (this.selectionDisplay === 'list') {\n this.showCount.set(false);\n return;\n }\n\n if (!this.compactInput()) {\n if (this.showCount()) this.showCount.set(false);\n return;\n }\n\n const wrap = this.triggerWrap?.nativeElement;\n const inputEl = this.triggerInput?.nativeElement;\n const measureEl = this.measureSlot?.nativeElement;\n\n if (!wrap || !inputEl || !measureEl) return;\n\n const text = this.selectedText();\n\n if (!text) {\n if (this.showCount()) this.showCount.set(false);\n }\n\n const ws = getComputedStyle(wrap);\n const padL = this.px(ws.paddingLeft);\n const padR = this.px(ws.paddingRight);\n const gap = this.px(ws.columnGap || ws.gap);\n const contentWidth = wrap.clientWidth - padL - padR;\n\n const inputWidth = inputEl.getBoundingClientRect().width;\n const tokenMaxWidth = Math.max(0, contentWidth - gap - inputWidth);\n\n const needed = Math.ceil(measureEl.scrollWidth);\n const available = Math.floor(tokenMaxWidth);\n\n const current = this.showCount();\n\n const marginForward = 1;\n const marginBack = 3;\n\n const next = current ? needed > available - marginBack : needed > available + marginForward;\n\n if (next !== current) {\n this.showCount.set(next);\n }\n }\n\n private px(v: string): number {\n const first = (v ?? '0').split(' ')[0];\n const n = Number.parseFloat(first);\n\n return Number.isFinite(n) ? n : 0;\n }\n\n private scheduleFocusTrigger() {\n requestAnimationFrame(() => {\n this.triggerInput?.nativeElement?.focus?.();\n\n if (this.searchable) {\n this.triggerInput?.nativeElement?.select?.();\n }\n });\n }\n\n private isSelectableValue(v: any): boolean {\n if (v == null) return false;\n\n let selectable = false;\n\n const walk = (nodes: SolarisSelectNode[]) => {\n for (const n of nodes) {\n if (n.kind === 'group') {\n walk(n.items);\n continue;\n }\n\n if (n.kind === 'item') {\n if (this.eq(n.value, v)) {\n selectable = !n.children?.length;\n return;\n }\n\n if (n.children?.length) {\n walk(n.children);\n }\n }\n }\n };\n\n walk(this._rootNodes());\n\n return selectable;\n }\n\n private sanitizeValue(next: any): any {\n if (this.multiple) {\n const arr = Array.isArray(next) ? next : [];\n return arr.filter((v) => this.isSelectableValue(v));\n }\n\n return this.isSelectableValue(next) ? next : null;\n }\n\n selectedCountLabel(): string {\n const count = this.selectedCount();\n\n if (this.selectedCountKey) {\n return this.translate(this.selectedCountKey, { count });\n }\n\n if (this.selectedCountText) {\n return this.selectedCountText.replace('{count}', String(count));\n }\n\n return `${count} selecionados`;\n }\n\n trackRow = (_: number, r: SolarisSelectRow) => r.key;\n}\n","<solaris-popover\n [open]=\"open()\"\n (openChange)=\"open.set($event)\"\n placement=\"bottom-start\"\n [offset]=\"6\"\n [matchWidth]=\"true\"\n [anchorElement]=\"matchWidthEl\"\n [matchWidthElement]=\"matchWidthEl\"\n [closeOnOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n panelClass=\"solaris-select__popover\"\n>\n <div\n #triggerWrap\n solaris-popover-trigger\n class=\"solaris-select__trigger\"\n (click)=\"openFromTrigger()\"\n >\n @if (showToken()) {\n <span #tokenEl class=\"solaris-select__token\" aria-hidden=\"true\">\n @if (multiple && showCount()) {\n @if (selectedCountKey) {\n {{ selectedCountKey | translate: { count: selectedCount() } }}\n } @else {\n {{ selectedCountLabel() }}\n }\n } @else {\n {{ selectedText() }}\n }\n </span>\n }\n\n <input\n #triggerInput\n type=\"text\"\n class=\"solaris-select__input\"\n [disabled]=\"disabled\"\n [attr.aria-activedescendant]=\"open() ? activeOptionId() : null\"\n (click)=\"openFromTrigger()\"\n [readonly]=\"!isSearchMode()\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"{{ _id }}-listbox\"\n aria-expanded=\"false\"\n [attr.aria-expanded]=\"open() ? 'true' : 'false'\"\n [attr.placeholder]=\"\n inputPlaceholderKey() ? (inputPlaceholderKey() | translate) : inputPlaceholderText()\n \"\n [value]=\"triggerValue()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (focus)=\"openFromTrigger()\"\n (input)=\"onTriggerInput(triggerInput.value)\"\n />\n\n <button\n type=\"button\"\n class=\"solaris-select__chevron-btn\"\n [disabled]=\"disabled\"\n (click)=\"toggleOpen()\"\n [attr.aria-label]=\"'ui.solaris.aria.toggleOptions' | translate\"\n >\n <i class=\"ph ph-caret-down\" aria-hidden=\"true\"></i>\n </button>\n\n <span class=\"solaris-select__measure solaris-select__token\" #measureSlot aria-hidden=\"true\">\n {{ selectedText() }}\n </span>\n </div>\n\n <ng-template solaris-popover-panel>\n <div\n class=\"solaris-select__panel\"\n (keydown)=\"onPanelKeydown($event)\"\n [style.max-height]=\"panelMaxHeight\"\n >\n @if (canGoBack()) {\n <div class=\"solaris-select__nav\">\n <button type=\"button\" class=\"solaris-select__back\" (click)=\"goBack()\">\n <i class=\"ph ph-arrow-left\"></i>\n <span>\n @if (backKey) {\n {{ backKey | translate }}\n } @else {\n {{ backText | translate }}\n }\n </span>\n </button>\n\n <div class=\"solaris-select__title\">\n @if (currentLevel().titleKey) {\n {{ currentLevel().titleKey! | translate }}\n } @else {\n {{ currentLevel().title ?? '' }}\n }\n </div>\n </div>\n }\n\n <div\n class=\"solaris-select__list\"\n role=\"listbox\"\n [id]=\"_id + '-listbox'\"\n [attr.aria-multiselectable]=\"multiple ? 'true' : null\"\n [attr.aria-activedescendant]=\"activeOptionId()\"\n >\n @for (row of rows(); track trackRow($index, row)) {\n @if (row.kind === 'group') {\n <div class=\"solaris-select__group\">\n @if (row.labelKey) {\n {{ row.labelKey | translate }}\n } @else {\n {{ row.label }}\n }\n </div>\n }\n\n @if (row.kind === 'divider') {\n <div class=\"solaris-select__divider\" aria-hidden=\"true\"></div>\n }\n\n @if (row.kind === 'item') {\n <button\n type=\"button\"\n class=\"solaris-select__option\"\n [id]=\"row.id\"\n [disabled]=\"row.disabled\"\n [attr.aria-selected]=\"row.selected ? 'true' : 'false'\"\n [class.is-active]=\"row.optionIndex === activeIndex()\"\n [class.is-selected]=\"row.selected\"\n [class.is-navigable]=\"row.hasChildren\"\n (click)=\"onOptionClick(row.item)\"\n >\n <span class=\"solaris-select__option-leading\">\n @if (multiple) {\n @if (!row.hasChildren) {\n <span\n class=\"solaris-select__checkbox\"\n aria-hidden=\"true\"\n [class.is-checked]=\"row.selected\"\n >\n <i class=\"ph ph-check\"></i>\n </span>\n } @else {\n @if (row.item.imageUrl) {\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\n } @else if (row.item.icon) {\n <i\n class=\"solaris-select__icon\"\n [class]=\"row.item.icon\"\n aria-hidden=\"true\"\n ></i>\n } @else {\n <span class=\"solaris-select__checkbox-spacer\" aria-hidden=\"true\"></span>\n }\n }\n }\n\n @if (!multiple) {\n @if (row.item.imageUrl) {\n <img class=\"solaris-select__avatar\" [ngSrc]=\"row.item.imageUrl\" alt=\"\" fill />\n } @else if (row.item.icon) {\n <i class=\"solaris-select__icon\" [class]=\"row.item.icon\" aria-hidden=\"true\"></i>\n }\n }\n </span>\n\n <span class=\"solaris-select__option-main\">\n <span class=\"solaris-select__option-label\">\n @if (row.item.labelKey) {\n {{ row.item.labelKey | translate }}\n } @else {\n {{ row.item.label }}\n }\n </span>\n\n @if (row.item.description || row.item.descriptionKey) {\n <span class=\"solaris-select__option-desc\">\n @if (row.item.descriptionKey) {\n {{ row.item.descriptionKey | translate }}\n } @else {\n {{ row.item.description }}\n }\n </span>\n }\n </span>\n\n <span class=\"solaris-select__option-end\">\n @if (row.item.endTextKey) {\n <span class=\"solaris-select__end-text\">{{\n row.item.endTextKey | translate\n }}</span>\n } @else if (row.item.endText) {\n <span class=\"solaris-select__end-text\">{{ row.item.endText }}</span>\n }\n\n @if (!multiple && row.selected) {\n <i class=\"ph ph-check\" aria-hidden=\"true\"></i>\n }\n\n @if (row.hasChildren) {\n <i class=\"ph ph-caret-right\" aria-hidden=\"true\"></i>\n }\n </span>\n </button>\n }\n }\n </div>\n </div>\n </ng-template>\n</solaris-popover>\n","/// <reference path=\"./typings/intl-tel-input-utils.d.ts\" />\n\nexport * from './lib/navigations/navigations.index';\nexport * from './lib/feedbacks/feedbacks.index';\nexport * from './lib/layouts/layouts.index';\nexport * from './lib/data-display/data-display.index';\nexport * from './lib/actions/actions.index';\nexport * from './lib/visual/visual.index';\nexport * from './lib/core/core.index';\nexport * from './services/services.index';\nexport * from './lib/common/common.index';\nexport * from './lib/cards/cards.index';\nexport * from './lib/forms/forms.index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["clamp","initialXY","i1.SolarisTabs","coerceBoolean","PRESET_COLORS","resolveRadius","i1","i1.SolarisTable"],"mappings":"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"}