ngx-strata 0.4.0 → 0.4.2

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":"ngx-strata.mjs","sources":["../../../projects/ngx-strata/src/lib/features/icon/loader/icon-loader.interface.ts","../../../projects/ngx-strata/src/lib/features/icon/services/icon-registry/icon-registry.service.ts","../../../projects/ngx-strata/src/lib/icons/icon-configs.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-icons.ts","../../../projects/ngx-strata/src/lib/features/icon/services/http-icon-loader/http-icon-loader.service.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-icon-loader.ts","../../../projects/ngx-strata/src/lib/features/icon/loader/icon-registry.interface.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-icon-registry.ts","../../../projects/ngx-strata/src/lib/services/darkmode/darkmode.service.ts","../../../projects/ngx-strata/src/lib/shared/platform.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-strata.ts","../../../projects/ngx-strata/src/lib/directives/activatable.directive.ts","../../../projects/ngx-strata/src/lib/directives/tooltip.directive.ts","../../../projects/ngx-strata/src/lib/services/hotkey/hotkey.service.ts","../../../projects/ngx-strata/src/lib/pipes/capitalize.pipe.ts","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-item/accordion-item.component.ts","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-item/accordion-item.component.html","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-group/accordion-group.component.ts","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-group/accordion-group.component.html","../../../projects/ngx-strata/src/lib/features/checkbox/components/checkbox/checkbox.component.ts","../../../projects/ngx-strata/src/lib/features/checkbox/components/checkbox/checkbox.component.html","../../../projects/ngx-strata/src/lib/features/toggle/components/toggle/toggle.component.ts","../../../projects/ngx-strata/src/lib/features/toggle/components/toggle/toggle.component.html","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu-item/action-menu-item.component.ts","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu-item/action-menu-item.component.html","../../../projects/ngx-strata/src/lib/features/button/directives/button/button.directive.ts","../../../projects/ngx-strata/src/lib/features/card/components/card/card.component.ts","../../../projects/ngx-strata/src/lib/features/card/components/card/card.component.html","../../../projects/ngx-strata/src/lib/features/icon/components/icon/icon.component.ts","../../../projects/ngx-strata/src/lib/features/icon/components/icon/icon.component.html","../../../projects/ngx-strata/src/lib/features/overlay/directives/overlay.directive.ts","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu/action-menu.component.ts","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu/action-menu.component.html","../../../projects/ngx-strata/src/lib/features/text-stack/components/text-stack/text-stack.component.ts","../../../projects/ngx-strata/src/lib/features/text-stack/components/text-stack/text-stack.component.html","../../../projects/ngx-strata/src/lib/features/alert/components/alert/alert.component.ts","../../../projects/ngx-strata/src/lib/features/alert/components/alert/alert.component.html","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar-stack/avatar-stack.component.ts","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar-stack/avatar-stack.component.html","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar/avatar.component.ts","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar/avatar.component.html","../../../projects/ngx-strata/src/lib/features/badge/components/badge/badge.component.ts","../../../projects/ngx-strata/src/lib/features/badge/components/badge/badge.component.html","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.html","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb/breadcrumb.component.ts","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb/breadcrumb.component.html","../../../projects/ngx-strata/src/lib/features/button/components/button-group/button-group.component.ts","../../../projects/ngx-strata/src/lib/features/button/components/button-group/button-group.component.html","../../../projects/ngx-strata/src/lib/features/divider/components/divider/divider.component.ts","../../../projects/ngx-strata/src/lib/features/divider/components/divider/divider.component.html","../../../projects/ngx-strata/src/lib/features/file-upload/components/file-upload/file-upload.component.ts","../../../projects/ngx-strata/src/lib/features/file-upload/components/file-upload/file-upload.component.html","../../../projects/ngx-strata/src/lib/features/slider/components/slider/slider.component.ts","../../../projects/ngx-strata/src/lib/features/slider/components/slider/slider.component.html","../../../projects/ngx-strata/src/lib/features/image-cropper/components/image-cropper/image-cropper.component.ts","../../../projects/ngx-strata/src/lib/features/image-cropper/components/image-cropper/image-cropper.component.html","../../../projects/ngx-strata/src/lib/features/input-field/directives/native-input-ref.directive.ts","../../../projects/ngx-strata/src/lib/features/input-field/components/input-field/input-field.component.ts","../../../projects/ngx-strata/src/lib/features/input-field/components/input-field/input-field.component.html","../../../projects/ngx-strata/src/lib/features/input-field/directives/auto-resize.directive.ts","../../../projects/ngx-strata/src/lib/features/radio/components/radio/radio.component.ts","../../../projects/ngx-strata/src/lib/features/radio/components/radio/radio.component.html","../../../projects/ngx-strata/src/lib/features/item/components/item/item.component.ts","../../../projects/ngx-strata/src/lib/features/item/components/item/item.component.html","../../../projects/ngx-strata/src/lib/features/item/components/item-list/item-list.component.ts","../../../projects/ngx-strata/src/lib/features/item/components/item-list/item-list.component.html","../../../projects/ngx-strata/src/lib/features/kbd/components/kbd/kbd.component.ts","../../../projects/ngx-strata/src/lib/features/kbd/components/kbd/kbd.component.html","../../../projects/ngx-strata/src/lib/features/theming/directives/theme.directive.ts","../../../projects/ngx-strata/src/lib/features/message-state/components/message-state/message-state.component.ts","../../../projects/ngx-strata/src/lib/features/message-state/components/message-state/message-state.component.html","../../../projects/ngx-strata/src/lib/features/modal/services/modal.service.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.html","../../../projects/ngx-strata/src/lib/features/modal/modal.model.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal-footer/modal-footer.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-footer/modal-footer.component.html","../../../projects/ngx-strata/src/lib/features/notification/notification.model.ts","../../../projects/ngx-strata/src/lib/features/notification/services/notification.service.ts","../../../projects/ngx-strata/src/lib/features/notification/components/notification/notification.component.ts","../../../projects/ngx-strata/src/lib/features/notification/components/notification/notification.component.html","../../../projects/ngx-strata/src/lib/features/notification/components/notification-container/notification-container.component.ts","../../../projects/ngx-strata/src/lib/features/notification/components/notification-container/notification-container.component.html","../../../projects/ngx-strata/src/lib/features/number-display/components/number-display/number-display.component.ts","../../../projects/ngx-strata/src/lib/features/number-display/components/number-display/number-display.component.html","../../../projects/ngx-strata/src/lib/features/spinner/components/spinner/spinner.component.ts","../../../projects/ngx-strata/src/lib/features/spinner/components/spinner/spinner.component.html","../../../projects/ngx-strata/src/lib/features/otp/components/otp/otp.component.ts","../../../projects/ngx-strata/src/lib/features/otp/components/otp/otp.component.html","../../../projects/ngx-strata/src/lib/features/pagination/components/pagination/pagination.component.ts","../../../projects/ngx-strata/src/lib/features/pagination/components/pagination/pagination.component.html","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.html","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.html","../../../projects/ngx-strata/src/lib/features/radio/components/radio-group/radio-group.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.html","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.html","../../../projects/ngx-strata/src/lib/features/shell/components/shell/shell.component.ts","../../../projects/ngx-strata/src/lib/features/shell/components/shell/shell.component.html","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu/sidemenu.component.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu/sidemenu.component.html","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-section/sidemenu-section.component.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-section/sidemenu-section.component.html","../../../projects/ngx-strata/src/lib/features/sidemenu/directives/sidemenu-item/sidemenu-item.directive.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-item-group/sidemenu-item-group.component.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-item-group/sidemenu-item-group.component.html","../../../projects/ngx-strata/src/lib/features/single-select/components/select-item/select-item.component.ts","../../../projects/ngx-strata/src/lib/features/single-select/directives/select-trigger/select-trigger.directive.ts","../../../projects/ngx-strata/src/lib/features/single-select/components/single-select/single-select.component.ts","../../../projects/ngx-strata/src/lib/features/single-select/components/single-select/single-select.component.html","../../../projects/ngx-strata/src/lib/features/stepper/components/step/step.component.ts","../../../projects/ngx-strata/src/lib/features/stepper/components/step/step.component.html","../../../projects/ngx-strata/src/lib/features/stepper/components/stepper/stepper.component.ts","../../../projects/ngx-strata/src/lib/features/stepper/components/stepper/stepper.component.html","../../../projects/ngx-strata/src/lib/features/tabs/components/tab-item/tab-item.component.ts","../../../projects/ngx-strata/src/lib/features/tabs/components/tab-item/tab-item.component.html","../../../projects/ngx-strata/src/lib/features/tabs/components/tabs/tabs.component.ts","../../../projects/ngx-strata/src/lib/features/tabs/components/tabs/tabs.component.html","../../../projects/ngx-strata/src/lib/features/tag/components/tag/tag.component.ts","../../../projects/ngx-strata/src/public-api.ts","../../../projects/ngx-strata/src/ngx-strata.ts"],"sourcesContent":["import { SafeHtml } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\n\nexport abstract class IconLoader {\n abstract loadSvg(url: string): Observable<SafeHtml>;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Observable, tap } from 'rxjs';\nimport { IconLoader } from '../../loader/icon-loader.interface';\nimport { IconConfig } from '../../models/icon.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconRegistryService {\n private iconLoader = inject(IconLoader);\n\n icons: Record<string, string> = {} as Record<string, string>;\n\n svgs: Record<string, SafeHtml> = {} as Record<string, SafeHtml>;\n\n registerIcons(iconConfigs: IconConfig[]): void {\n iconConfigs.forEach((config) => this.registerIcon(config));\n }\n\n registerIcon(iconConfig: IconConfig): void {\n if (this.icons[iconConfig.name]) {\n console.error(\n `Icon with name ${iconConfig.name} already registered with Strata. Please rename or stop registering one of the icons.`,\n );\n }\n\n this.icons[iconConfig.name] = iconConfig.url;\n }\n\n getIconUrl(name: string): string | null {\n const iconUrl = this.icons[name];\n\n return iconUrl ? iconUrl : null;\n }\n\n getIcon(name: string): Observable<SafeHtml> {\n if (this.svgs[name]) {\n return new Observable<SafeHtml>((subscriber) => {\n subscriber.next(this.svgs[name]);\n });\n }\n\n const url = this.getIconUrl(name);\n if (!url) {\n throw new Error(`Icon '${name}' not registered.`);\n }\n return this.iconLoader.loadSvg(url).pipe(\n tap((svg) => {\n this.svgs[name] = svg;\n }),\n );\n }\n}\n","import { IconConfig } from '../features/icon/models/icon.model';\n\nexport const baseIconConfigs: IconConfig[] = [\n {\n name: 'question',\n url: 'assets/icons/question.svg'\n},\n {\n name: 'arrow-right',\n url: 'assets/icons/arrow-right.svg'\n},\n {\n name: 'arrow-left',\n url: 'assets/icons/arrow-left.svg'\n},\n {\n name: 'arrow-up',\n url: 'assets/icons/arrow-up.svg'\n},\n {\n name: 'arrow-down',\n url: 'assets/icons/arrow-down.svg'\n},\n {\n name: 'close',\n url: 'assets/icons/close.svg'\n},\n {\n name: 'expand-up-down',\n url: 'assets/icons/expand-up-down.svg'\n},\n {\n name: 'clipboard',\n url: 'assets/icons/clipboard.svg'\n},\n {\n name: 'more',\n url: 'assets/icons/more.svg'\n },\n {\n name: 'check',\n url: 'assets/icons/check.svg'\n },\n];\n","import {\n EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer, Provider\n} from '@angular/core';\nimport { IconConfig } from '../../features/icon/models/icon.model';\nimport { IconRegistryService } from '../../features/icon/services/icon-registry/icon-registry.service';\nimport { baseIconConfigs } from '../../icons/icon-configs';\n\nexport const provideBaseIcons = (): EnvironmentProviders => {\n return provideIcons(baseIconConfigs);\n};\n\nexport const provideIcons = (\n iconConfigs: IconConfig[],\n): EnvironmentProviders => {\n const providers: (Provider | EnvironmentProviders)[] = [\n provideAppInitializer(() => {\n const initializerFn = ((service: IconRegistryService) =>\n function () {\n return service.registerIcons(iconConfigs);\n })(inject(IconRegistryService));\n return initializerFn();\n }),\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable } from 'rxjs';\nimport { IconLoader } from '../../loader/icon-loader.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class HttpIconLoader implements IconLoader {\n httpClient = inject(HttpClient);\n sanitizer = inject(DomSanitizer);\n\n loadSvg(url: string): Observable<SafeHtml> {\n return this.httpClient\n .get(url, { responseType: 'text' })\n .pipe(map((raw) => this.sanitizer.bypassSecurityTrustHtml(raw)));\n }\n}\n","import { Provider } from '@angular/core';\nimport { IconLoader } from '../../features/icon/loader/icon-loader.interface';\nimport { HttpIconLoader } from '../../features/icon/services/http-icon-loader/http-icon-loader.service';\n\nexport function provideIconLoader(): Provider {\n return {\n provide: IconLoader,\n useExisting: HttpIconLoader\n};\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\n\nexport abstract class IconRegistry {\n abstract getIcon(name: string): Observable<SafeHtml>;\n}\n","import { Provider } from '@angular/core';\nimport { IconRegistry } from '../../features/icon/loader/icon-registry.interface';\nimport { IconRegistryService } from '../../features/icon/services/icon-registry/icon-registry.service';\n\nexport function provideIconRegistry(): Provider {\n return {\n provide: IconRegistry,\n useExisting: IconRegistryService\n};\n}\n","import { computed, DOCUMENT, effect, inject, Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DarkmodeService {\n private readonly STORAGE_KEY = 'strata-darkmode';\n\n private document = inject(DOCUMENT);\n\n private osPrefersDark!: boolean;\n\n private setting = signal<DarkmodeSetting>('SYSTEM');\n private darkmode = signal<CurrentDarkmode>('LIGHT');\n\n public currentMode = computed(() => this.darkmode());\n\n public currentSetting = computed(() => this.setting());\n\n constructor() {\n effect(() => this.updateDarkmodeTagOnDOM(this.darkmode()));\n this.setting.set(this.getSettingFromStorage());\n this.osPrefersDark = this.getSystemDarkmodePreference();\n\n this.calculateDarkmode();\n this.saveSettingToStorage(this.setting());\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => {\n this.osPrefersDark = event.matches;\n if (this.setting() === 'SYSTEM') {\n this.calculateDarkmode();\n }\n });\n }\n\n public setDarkmodeSetting(newSetting: DarkmodeSetting): CurrentDarkmode {\n this.saveSettingToStorage(newSetting);\n\n return this.calculateDarkmode();\n }\n\n private getSystemDarkmodePreference(): boolean {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\n }\n\n private calculateDarkmode(): CurrentDarkmode {\n if (this.setting() === 'SYSTEM') {\n this.darkmode.set(this.osPrefersDark ? 'DARK' : 'LIGHT');\n } else {\n this.darkmode.set(this.setting() === 'DARK' ? 'DARK' : 'LIGHT');\n }\n\n return this.darkmode();\n }\n\n private updateDarkmodeTagOnDOM(mode: CurrentDarkmode): void {\n const documentNode = this.document.getElementsByTagName('html')[0];\n if (mode === 'DARK') {\n documentNode.setAttribute('data-theme', 'dark');\n } else {\n documentNode.setAttribute('data-theme', 'light');\n }\n }\n\n private saveSettingToStorage(newSetting: DarkmodeSetting): void {\n localStorage.setItem(this.STORAGE_KEY, newSetting);\n this.setting.set(newSetting);\n }\n\n private getSettingFromStorage(): DarkmodeSetting {\n return (localStorage.getItem(this.STORAGE_KEY) as DarkmodeSetting) ?? 'SYSTEM';\n }\n}\n\nexport type DarkmodeSetting = 'DARK' | 'LIGHT' | 'SYSTEM';\nexport type CurrentDarkmode = 'LIGHT' | 'DARK';\n","export type StrataPlatform = 'auto' | 'mac' | 'windows' | 'linux';\n\nexport function isApplePlatform(): boolean {\n if (typeof navigator === 'undefined') {\n return false;\n }\n const nav = navigator as Navigator & {\n userAgentData?: { platform?: string };\n };\n if (nav.userAgentData?.platform) {\n return /mac|ios|ip(hone|od|ad)/i.test(nav.userAgentData.platform);\n }\n const ua = nav.userAgent || '';\n const platform = (nav as { platform?: string }).platform || '';\n return /macintosh|mac os x|iphone|ipad|ipod/i.test(ua) || /mac|iphone|ipad|ipod/i.test(platform);\n}\n\nexport function resolveIsApple(platform?: StrataPlatform): boolean {\n if (platform === 'mac') {\n return true;\n }\n if (platform === 'windows' || platform === 'linux') {\n return false;\n }\n return isApplePlatform();\n}\n","import { provideBaseIcons } from './provide-icons';\nimport { Provider, InjectionToken, EnvironmentProviders, provideEnvironmentInitializer, inject } from '@angular/core';\nimport { provideIconLoader } from './provide-icon-loader';\nimport { provideIconRegistry } from './provide-icon-registry';\nimport { DarkmodeService } from '../../services/darkmode/darkmode.service';\nimport { resolveIsApple, StrataPlatform } from '../../shared/platform';\n\nexport function getDefaultShortcutLabels(\n platform?: StrataPlatform,\n crossPlatformHotkeys = true\n): { meta: string; ctrl: string; shift: string; alt: string } {\n const isApple = resolveIsApple(platform);\n return {\n meta: isApple ? '⌘' : crossPlatformHotkeys ? 'Ctrl' : 'Win',\n ctrl: 'Ctrl',\n shift: 'Shift',\n alt: 'Alt'\n };\n}\n\nconst DEFAULT_CONFIG: Omit<StrataConfig, 'shortcutLabels'> = {\n includeBaseIcons: true,\n tooltipDelayMs: 500,\n crossPlatformHotkeys: true,\n overlayViewportBuffer: 16,\n activationKeys: [' ', 'Space', 'Spacebar', 'Enter', 'NumpadEnter'],\n platform: 'auto'\n};\n\nexport function provideStrata(\n config: Partial<StrataConfig> = {},\n): (Provider | EnvironmentProviders)[] {\n const crossPlatformHotkeys = config.crossPlatformHotkeys ?? DEFAULT_CONFIG.crossPlatformHotkeys;\n const platform = config.platform ?? DEFAULT_CONFIG.platform;\n const defaultLabels = getDefaultShortcutLabels(platform, crossPlatformHotkeys);\n\n const mergedConfig: StrataConfig = {\n ...DEFAULT_CONFIG,\n ...config,\n shortcutLabels: {\n ...defaultLabels,\n ...config.shortcutLabels\n }\n };\n\n const providers: (Provider | EnvironmentProviders)[] = [\n provideIconLoader(),\n provideIconRegistry(),\n {\n provide: STRATA_CONFIG,\n useValue: mergedConfig\n },\n provideEnvironmentInitializer(() => inject(DarkmodeService))\n ];\n\n if (mergedConfig.includeBaseIcons) {\n providers.push(provideBaseIcons());\n }\n\n return providers;\n}\n\nexport interface StrataConfig {\n includeBaseIcons: boolean;\n tooltipDelayMs: number;\n crossPlatformHotkeys: boolean;\n shortcutLabels?: {\n meta?: string;\n ctrl?: string;\n shift?: string;\n alt?: string;\n };\n overlayViewportBuffer?: number;\n activationKeys?: string[];\n platform?: StrataPlatform;\n}\n\nexport const STRATA_CONFIG = new InjectionToken<StrataConfig>('STRATA_CONFIG');\n","import { Directive, input, output, computed, model, inject, ElementRef } from '@angular/core';\nimport { STRATA_CONFIG } from '../app/provider/provide-strata';\n\nconst DEFAULT_ACTIVATION_KEYS = [' ', 'Space', 'Spacebar', 'Enter', 'NumpadEnter'];\n\n@Directive({\n selector: '[stActivatable]',\n host: {\n '(keydown)': 'onKeyDown($event)',\n '[attr.tabindex]': 'isFocusable() ? \"0\" : null'\n}\n})\nexport class StrataActivatableDirective {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _config = inject(STRATA_CONFIG, { optional: true });\n\n disabled = input(false);\n\n interactable = model(true);\n\n activated = output<Event>();\n\n isFocusable = computed(() => this.interactable() && !this.disabled());\n\n onKeyDown(event: KeyboardEvent): void {\n if (!this.isFocusable()) {\n return;\n }\n\n const activationKeys = this._config?.activationKeys ?? DEFAULT_ACTIVATION_KEYS;\n const isActivationKey = activationKeys.includes(event.key) || activationKeys.includes(event.code);\n\n if (isActivationKey) {\n event.preventDefault();\n this.activated.emit(event);\n this._elementRef.nativeElement.click();\n }\n }\n}\n","import { AfterContentInit, DOCUMENT, Directive, ElementRef, OnDestroy, OnInit, Renderer2, inject, input } from '@angular/core';\nimport { Placement, arrow, autoUpdate, computePosition, offset } from '@floating-ui/dom';\nimport { STRATA_CONFIG } from '../app/provider/provide-strata';\n\n@Directive({\n selector: '[stSimpleTooltip]'\n})\nexport class StrataTooltipDirective implements OnInit, OnDestroy, AfterContentInit {\n private document = inject<Document>(DOCUMENT);\n private element = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n stSimpleTooltip = input.required<string>();\n tooltipEnabled = input<boolean>(true);\n tooltipPlacement = input<TooltipPlacement>('top');\n tooltipAlwaysShow = input<boolean>(false);\n\n private tooltipContentElement!: HTMLElement;\n private arrowElement!: HTMLElement;\n private eventListeners!: (() => void)[];\n private autoUpdateCleanupFunction?: () => void;\n\n private config = inject(STRATA_CONFIG);\n\n ngOnInit(): void {\n if (!this.stSimpleTooltip() || this.stSimpleTooltip() === '' || !this.tooltipEnabled()) {\n return;\n }\n\n this.tooltipContentElement = this.document.createElement('div');\n this.tooltipContentElement.classList.add('st-tooltip');\n const textElement = this.document.createElement('p');\n textElement.innerText = this.stSimpleTooltip();\n this.tooltipContentElement.appendChild(textElement);\n this.arrowElement = this.document.createElement('div');\n this.arrowElement.id = 'st-tooltip-arrow';\n this.arrowElement.classList.add('st-tooltip-arrow-' + this.tooltipPlacement());\n this.tooltipContentElement.appendChild(this.arrowElement);\n\n this.renderer.appendChild(this.element.nativeElement, this.tooltipContentElement);\n\n if (!this.tooltipAlwaysShow()) {\n this.eventListeners = [\n this.renderer.listen(this.element.nativeElement, 'mouseenter', () => {\n this.show();\n }),\n this.renderer.listen(this.element.nativeElement, 'mouseleave', () => this.hide()),\n ];\n } else {\n this.show();\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.shouldRender()) {\n return;\n }\n\n this.doPosition();\n }\n\n doPosition(): void {\n computePosition(this.element.nativeElement, this.tooltipContentElement, {\n placement: this.tooltipPlacement(),\n middleware: [offset(6), arrow({ element: this.arrowElement })]\n}).then(({ x, y, middlewareData }) => {\n Object.assign(this.tooltipContentElement.style, {\n left: `${x}px`,\n top: `${y}px`\n});\n\n if (middlewareData.arrow) {\n const { x, y } = middlewareData.arrow;\n\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${x}px` : '',\n top: y != null ? `${y}px` : ''\n});\n }\n });\n }\n\n ngOnDestroy() {\n this.tooltipContentElement?.remove();\n if (this.eventListeners?.length) {\n this.eventListeners.forEach((removeEventListenerFn) => removeEventListenerFn());\n }\n if (this.autoUpdateCleanupFunction) {\n this.autoUpdateCleanupFunction();\n }\n }\n\n private shouldRender(): boolean {\n return !!this.stSimpleTooltip() && this.stSimpleTooltip() !== '' && this.tooltipEnabled();\n }\n\n showTimeoutCancel?: ReturnType<typeof setTimeout>;\n\n private show(): void {\n this.showTimeoutCancel = setTimeout(() => {\n this.tooltipContentElement?.setAttribute('data-show', '');\n this.tooltipContentElement?.setAttribute('aria-hidden', 'false');\n this.autoUpdateCleanupFunction = autoUpdate(this.element.nativeElement, this.tooltipContentElement, () =>\n this.doPosition(),\n );\n }, this.config.tooltipDelayMs);\n }\n\n private hide(): void {\n if (this.showTimeoutCancel) {\n clearTimeout(this.showTimeoutCancel);\n this.showTimeoutCancel = undefined;\n }\n this.tooltipContentElement?.removeAttribute('data-show');\n this.tooltipContentElement?.setAttribute('aria-hidden', 'true');\n if (this.autoUpdateCleanupFunction) {\n this.autoUpdateCleanupFunction();\n }\n }\n}\n\nexport type TooltipPlacement = Exclude<Placement, 'left-start' | 'left-end' | 'right-start' | 'right-end'>;\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { STRATA_CONFIG } from '../../app/provider/provide-strata';\n\nexport interface HotkeyOptions {\n /** If true, the hotkey fires even when focus is inside an input, textarea, or contenteditable. Defaults to false. */\n allowInInput?: boolean;\n}\n\ninterface HotkeyRegistration {\n combos: ParsedCombo[];\n handler: () => void;\n options: Required<HotkeyOptions>;\n}\n\ninterface ParsedCombo {\n key: string;\n meta: boolean;\n ctrl: boolean;\n shift: boolean;\n alt: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class HotkeyService {\n private readonly config = inject(STRATA_CONFIG);\n private readonly destroyRef = inject(DestroyRef);\n private readonly registrations = new Map<symbol, HotkeyRegistration>();\n\n constructor() {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.handleKeydown(event));\n }\n\n /**\n * Register a keyboard shortcut.\n *\n * @param combo - A combo string like `'meta+k'`, `'ctrl+shift+p'`, `'shift+?'`.\n * Use `'meta'` for ⌘ on Mac / Win key on Windows. When `crossPlatformHotkeys` is\n * enabled in StrataConfig (default), registering `meta+k` also fires on `ctrl+k`\n * and vice-versa.\n * @param handler - Callback invoked when the combo is matched.\n * @param options - Optional configuration per registration.\n * @returns A teardown function — call it to unregister the hotkey.\n */\n register(combo: string, handler: () => void, options: HotkeyOptions = {}): () => void {\n const id = Symbol();\n const parsed = this.parseCombo(combo);\n const combos = this.config.crossPlatformHotkeys ? this.expandCrossPlatform(parsed) : [parsed];\n\n this.registrations.set(id, {\n combos,\n handler,\n options: { allowInInput: false, ...options }\n});\n\n return () => this.registrations.delete(id);\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n for (const registration of this.registrations.values()) {\n if (!registration.options.allowInInput && this.isInputFocused(event)) {\n continue;\n }\n\n if (registration.combos.some((combo) => this.matchesCombo(event, combo))) {\n event.preventDefault();\n registration.handler();\n }\n }\n }\n\n private matchesCombo(event: KeyboardEvent, combo: ParsedCombo): boolean {\n return (\n event.key.toLowerCase() === combo.key &&\n event.metaKey === combo.meta &&\n event.ctrlKey === combo.ctrl &&\n event.shiftKey === combo.shift &&\n event.altKey === combo.alt\n );\n }\n\n private parseCombo(combo: string): ParsedCombo {\n const parts = combo.toLowerCase().split('+');\n const key = parts[parts.length - 1];\n return {\n key,\n meta: parts.includes('meta') || parts.includes('cmd') || parts.includes('command'),\n ctrl: parts.includes('ctrl'),\n shift: parts.includes('shift'),\n alt: parts.includes('alt')\n};\n }\n\n /**\n * When crossPlatformHotkeys is enabled, mirror meta ↔ ctrl so that\n * a single `register('meta+k', ...)` call fires on both ⌘K (Mac) and Ctrl+K (Win/Linux).\n */\n private expandCrossPlatform(parsed: ParsedCombo): ParsedCombo[] {\n const combos: ParsedCombo[] = [parsed];\n\n if (parsed.meta && !parsed.ctrl) {\n combos.push({ ...parsed, meta: false, ctrl: true });\n } else if (parsed.ctrl && !parsed.meta) {\n combos.push({ ...parsed, ctrl: false, meta: true });\n }\n\n return combos;\n }\n\n private isInputFocused(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement | null;\n if (!target) return false;\n const tag = target.tagName.toLowerCase();\n return tag === 'input' || tag === 'textarea' || target.isContentEditable;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'capitalize',\n standalone: true,\n pure: true\n})\nexport class CapitalizePipe implements PipeTransform {\n public static capitalize(value: string): string {\n return value.substring(0, 1).toLocaleUpperCase() + value.substring(1);\n }\n\n transform(value: string, ..._args: unknown[]): unknown {\n return CapitalizePipe.capitalize(value);\n }\n}\n","import { Component, effect, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-accordion-item',\n imports: [],\n templateUrl: './accordion-item.component.html'\n})\nexport class StrataAccordionItemComponent {\n private static nextId = 0;\n readonly contentId = `st-accordion-content-${StrataAccordionItemComponent.nextId++}`;\n readonly headerId = `st-accordion-header-${StrataAccordionItemComponent.nextId++}`;\n\n title = input.required<string>();\n\n open = model<boolean>(false);\n\n toggled = output<boolean>();\n\n constructor() {\n let firstRun = true;\n effect(() => {\n const value = this.open();\n if (!firstRun) {\n this.toggled.emit(value);\n }\n firstRun = false;\n return;\n });\n }\n\n toggle(): void {\n this.open.set(!this.open());\n }\n\n @HostBinding('attr.open')\n get isOpen(): boolean {\n return this.open();\n }\n}\n","<button\n type=\"button\"\n class=\"accordion-header\"\n [id]=\"headerId\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"contentId\"\n (click)=\"toggle()\"\n>\n <span>{{ title() }}</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"\n ></path>\n </svg>\n</button>\n\n<div\n class=\"accordion-content\"\n [id]=\"contentId\"\n role=\"region\"\n [attr.aria-labelledby]=\"headerId\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, contentChildren, input, effect } from '@angular/core';\nimport { StrataAccordionItemComponent } from '../accordion-item/accordion-item.component';\n\n@Component({\n selector: 'st-accordion-group',\n imports: [],\n templateUrl: './accordion-group.component.html'\n})\nexport class StrataAccordionGroupComponent {\n items = contentChildren(StrataAccordionItemComponent);\n\n allowMultipleOpen = input<boolean>(false);\n\n constructor() {\n effect((onCleanup) => {\n const subs = this.items().map((item) =>\n item.toggled.subscribe((open) => {\n if (open && !this.allowMultipleOpen()) {\n this.closeOtherItems(item);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n closeOtherItems(currentItem: StrataAccordionItemComponent) {\n this.items().forEach((item) => {\n if (item !== currentItem) {\n item.open.set(false);\n }\n });\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'st-checkbox',\n imports: [],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataCheckboxComponent),\n multi: true\n }\n ],\n host: {\n role: 'checkbox',\n '[attr.tabindex]': 'effectiveDisabled() ? -1 : 0',\n '[attr.aria-checked]': '!!value()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[attr.data-disabled]': 'effectiveDisabled()',\n '[class.disabled]': 'effectiveDisabled()',\n '(click)': 'onHostClick($event)',\n '(keydown.space)': 'onSpaceKey($event)'\n }\n})\nexport class StrataCheckboxComponent implements ControlValueAccessor {\n private readonly defaultId = `st-checkbox-${nextUniqueId++}`;\n\n value = model<boolean | undefined>(false);\n label = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n effectiveId = computed(() => this.id() ?? this.name() ?? this.defaultId);\n\n private onChange: (val: boolean) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n toggle(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n const next = !this.value();\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n }\n\n onHostClick(event: MouseEvent): void {\n event.stopImmediatePropagation();\n this.toggle();\n }\n\n onSpaceKey(event: Event): void {\n event.preventDefault();\n this.toggle();\n }\n\n writeValue(val: boolean | null | undefined): void {\n this.value.set(val != null ? Boolean(val) : false);\n }\n\n registerOnChange(fn: (val: boolean) => void): void {\n this.onChange = fn;\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","<input\n type=\"checkbox\"\n [id]=\"effectiveId()\"\n [name]=\"name() ?? effectiveId()\"\n [checked]=\"!!value()\"\n [disabled]=\"effectiveDisabled()\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n/>\n<div class=\"checkbox-visual\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.9997 15.1709L19.1921 5.97852L20.6063 7.39273L9.9997 17.9993L3.63574 11.6354L5.04996 10.2212L9.9997 15.1709Z\"\n ></path>\n </svg>\n</div>\n@if (label()) {\n <label [for]=\"effectiveId()\"> {{ label() }}</label>\n}\n","import { Component, computed, forwardRef, inject, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-toggle',\n imports: [],\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataToggleComponent),\n multi: true\n }\n ],\n hostDirectives: [\n {\n directive: StrataActivatableDirective,\n inputs: ['disabled'],\n outputs: ['activated']\n},\n ],\n host: {\n '(click)': 'onCheckChanged($event)',\n role: 'switch',\n '[attr.aria-checked]': 'checked()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[attr.data-checked]': 'checked()',\n '[attr.data-disabled]': 'effectiveDisabled()',\n '[class.st-toggle-label-before]': \"labelPosition() === 'before'\",\n '[class.st-toggle-label-after]': \"labelPosition() === 'after'\"\n}\n})\nexport class StrataToggleComponent implements ControlValueAccessor {\n private _activatable = inject(StrataActivatableDirective);\n\n checked = model<boolean>(false);\n label = input<string | undefined>(undefined);\n labelPosition = input<'before' | 'after'>('after');\n\n disabled = this._activatable.disabled;\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: boolean) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n onCheckChanged(event?: Event) {\n if (this.effectiveDisabled()) {\n return;\n }\n if (event) {\n event.stopPropagation();\n }\n const next = !this.checked();\n this.checked.set(next);\n this.onChange(next);\n this.onTouched();\n }\n\n writeValue(val: boolean | null | undefined): void {\n this.checked.set(val != null ? Boolean(val) : false);\n }\n\n registerOnChange(fn: (val: boolean) => void): void {\n this.onChange = fn;\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","<div class=\"st-toggle-track\">\n <div class=\"toggle-handle\"></div>\n</div>\n@if (label()) {\n <span class=\"st-toggle-label\">{{ label() }}</span>\n}\n<ng-content></ng-content>\n","import { StrataCheckboxComponent } from '../../../checkbox/components/checkbox/checkbox.component';\nimport { StrataToggleComponent } from '../../../toggle/components/toggle/toggle.component';\n\nimport { Component, contentChild, ElementRef, HostBinding, HostListener, inject, input, output } from '@angular/core';\n\n@Component({\n selector: 'st-action-menu-item',\n imports: [],\n templateUrl: './action-menu-item.component.html',\n styleUrl: './action-menu-item.component.scss'\n})\nexport class StrataActionMenuItemComponent {\n private checkbox = contentChild(StrataCheckboxComponent, { read: ElementRef });\n private toggle = contentChild(StrataToggleComponent, { read: ElementRef });\n\n closeMenuOnClick = input(true);\n\n active = input(false);\n\n @HostBinding('class.active')\n get isActive() {\n return this.active();\n }\n\n menuItemClicked = output<boolean>();\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('click', ['$event'])\n onHostClick(event: MouseEvent) {\n this.menuItemClicked.emit(this.closeMenuOnClick());\n event.stopPropagation();\n\n this.checkbox()?.nativeElement.click();\n this.toggle()?.nativeElement.click();\n }\n}\n","<span class=\"item-start\">\n <ng-content select=\"[area='start']\"></ng-content\n></span>\n<span class=\"item-default\"> <ng-content></ng-content></span>\n<span class=\"item-end\">\n <ng-content select=\"[area='end']\"></ng-content>\n</span>\n","import { AfterContentInit, Directive, ElementRef, HostBinding, inject, input, OnDestroy, signal } from '@angular/core';\n\n@Directive({\n selector: '[stButton]'\n})\nexport class StrataButtonDirective implements AfterContentInit, OnDestroy {\n host = inject(ElementRef);\n\n variant = input<ButtonVariant>('secondary');\n\n size = input<ButtonSize>('md');\n\n fullWidth = input<boolean>(false);\n\n private iconAtStart = signal(false);\n private iconAtEnd = signal(false);\n private iconOnly = signal(false);\n private observer?: MutationObserver;\n\n @HostBinding('class')\n get classes(): string[] {\n return [\n 'st-button',\n `st-button-${this.variant()}`,\n `st-size-${this.size()}`,\n this.iconAtStart() ? 'st-button-has-starting-icon' : '',\n this.iconAtEnd() ? 'st-button-has-ending-icon' : '',\n this.iconOnly() ? 'st-button-icon-only' : '',\n this.fullWidth() ? 'st-button-full-width' : '',\n ];\n }\n\n ngAfterContentInit() {\n this.updateIconState();\n\n if (typeof MutationObserver !== 'undefined') {\n this.observer = new MutationObserver(() => this.updateIconState());\n this.observer.observe(this.host.nativeElement, { childList: true, subtree: true, characterData: true });\n }\n }\n\n ngOnDestroy() {\n this.observer?.disconnect();\n }\n\n private updateIconState() {\n const rawNodes = Array.from(this.host.nativeElement.childNodes as NodeList);\n const nodes = rawNodes.filter((node) => {\n if (node.nodeType === Node.COMMENT_NODE) {\n return false;\n }\n if (node.nodeType === Node.TEXT_NODE && !node.textContent?.trim()) {\n return false;\n }\n return true;\n });\n\n if (nodes.length === 0) {\n this.iconOnly.set(false);\n this.iconAtStart.set(false);\n this.iconAtEnd.set(false);\n return;\n }\n\n if (nodes.length === 1 && this.nodeIsStIcon(nodes[0])) {\n this.iconOnly.set(true);\n this.iconAtStart.set(false);\n this.iconAtEnd.set(false);\n return;\n }\n\n this.iconOnly.set(false);\n this.iconAtStart.set(this.nodeIsStIcon(nodes[0]));\n this.iconAtEnd.set(this.nodeIsStIcon(nodes[nodes.length - 1]));\n }\n\n nodeIsStIcon(node: Node): boolean {\n if (node.nodeType === Node.TEXT_NODE && !node.textContent?.trim()) {\n return false;\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n const tagName = (node as Element).tagName.toLowerCase();\n\n return tagName === 'st-icon';\n }\n return false;\n }\n}\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n","import { Component, HostBinding, HostListener, input, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'st-card',\n imports: [],\n templateUrl: './card.component.html'\n})\nexport class StrataCardComponent {\n private elementRef = inject(ElementRef);\n\n elevated = input<boolean>(false);\n\n selectable = input<boolean>(false);\n\n padding = input<boolean>(true);\n\n variant = input<CardVariant>('elevated');\n\n @HostBinding('class.with-padding')\n get withPadding() {\n return this.padding();\n }\n\n @HostBinding('class.selectable')\n get isSelectable() {\n return this.selectable();\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selectable() ? 0 : null;\n }\n\n @HostBinding('class.elevated')\n get isElevated() {\n return this.variant() === 'elevated';\n }\n\n @HostBinding('class.flat')\n get isFlat() {\n return this.variant() === 'flat';\n }\n\n @HostBinding('class.outline')\n get isOutline() {\n return this.variant() === 'outline';\n }\n\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n handleKeyboardEvent(event: Event) {\n if (this.selectable()) {\n event.preventDefault();\n this.elementRef.nativeElement.click();\n }\n }\n}\n\nexport type CardVariant = 'elevated' | 'flat' | 'outline';\n","<div class=\"cover-area\">\n <ng-content select=\"[area='cover']\"></ng-content>\n</div>\n<div class=\"card-content\">\n <ng-content></ng-content>\n</div>\n","import { Component, inject, input, model } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs';\nimport { IconRegistry } from '../../loader/icon-registry.interface';\nimport { IconSize } from '../../models/icon.model';\n\n@Component({\n selector: 'st-icon',\n imports: [],\n templateUrl: './icon.component.html',\n host: {\n '[class.xs]': 'size() === \"xs\"',\n '[class.sm]': 'size() === \"sm\"',\n '[class.md]': 'size() === \"md\"',\n '[class.lg]': 'size() === \"lg\"',\n '[attr.aria-hidden]': 'ariaLabel() ? null : \"true\"',\n '[attr.role]': 'ariaLabel() ? \"img\" : null',\n '[attr.aria-label]': 'ariaLabel() ?? null'\n}\n})\nexport class StrataIconComponent {\n private iconRegistry = inject(IconRegistry);\n\n name = input<string>('question');\n\n size = model<IconSize>('md');\n\n ariaLabel = input<string | undefined>(undefined);\n\n svgMarkdown = toSignal(\n toObservable(this.name).pipe(\n switchMap((name) => this.iconRegistry.getIcon(name || 'question')),\n ),\n );\n}\n","<span [innerHTML]=\"svgMarkdown()\"></span>\n","import {\n Directive, ElementRef, inject, input, model, OnChanges, OnDestroy, TemplateRef, ViewContainerRef, EmbeddedViewRef\n} from '@angular/core';\nimport { autoUpdate, computePosition, flip, offset, Placement, shift, size } from '@floating-ui/dom';\nimport { STRATA_CONFIG } from '../../../app/provider/provide-strata';\n\n@Directive({\n selector: '[stOverlay]'\n})\nexport class StrataOverlayDirective implements OnChanges, OnDestroy {\n stOverlay = input.required<TemplateRef<unknown>>();\n\n overlayOpen = model(false);\n\n overlayPlacement = input<Placement>('bottom');\n\n overlayOffset = input(8);\n\n overlayFitViewport = input(true);\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject<ViewContainerRef>(ViewContainerRef);\n private readonly config = inject(STRATA_CONFIG, { optional: true });\n\n private overlayEl?: HTMLElement;\n private cleanup?: () => void;\n private viewRef?: EmbeddedViewRef<unknown>;\n\n\n ngOnChanges(): void {\n if (this.overlayOpen()) {\n this.create();\n } else {\n this.destroy();\n }\n }\n\n private async create() {\n if (this.overlayEl) return;\n\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.stOverlay());\n this.viewRef.detectChanges();\n\n this.overlayEl = this.viewRef.rootNodes[0];\n document.body.appendChild(this.overlayEl!);\n\n this.cleanup = autoUpdate(this.element.nativeElement, this.overlayEl!, () => this.updatePosition());\n }\n\n private async updatePosition() {\n if (!this.overlayEl) return;\n\n const middleware = [\n offset(this.overlayOffset()),\n flip(),\n shift()\n ];\n\n if (this.overlayFitViewport()) {\n const buffer = this.config?.overlayViewportBuffer ?? 16;\n middleware.push(\n size({\n apply({ availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n maxHeight: `${availableHeight - buffer}px`\n });\n }\n })\n );\n } else {\n this.overlayEl.style.maxHeight = '';\n }\n\n const { x, y } = await computePosition(this.element.nativeElement, this.overlayEl, {\n placement: this.overlayPlacement(),\n strategy: 'fixed',\n middleware\n });\n\n if (!this.overlayEl) return;\n\n const { width } = this.element.nativeElement.getBoundingClientRect();\n\n Object.assign(this.overlayEl.style, {\n position: 'fixed',\n left: `${x}px`,\n top: `${y}px`,\n zIndex: '10000'\n});\n\n this.overlayEl.style.setProperty('--st-overlay-anchor-element-width', `${width}px`);\n }\n\n private destroy() {\n if (this.cleanup) this.cleanup();\n if (this.overlayEl) this.overlayEl.remove();\n if (this.viewRef) {\n this.viewRef.destroy();\n this.viewRef = undefined;\n }\n\n this.overlayEl = undefined;\n }\n\n getOverlayElement(): HTMLElement | undefined {\n return this.overlayEl;\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import {\n Component, contentChild, contentChildren, ElementRef, inject, input, Renderer2, signal, viewChild, effect\n} from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataCardComponent } from '../../../card/components/card/card.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataActionMenuItemComponent } from '../action-menu-item/action-menu-item.component';\n\n@Component({\n selector: 'st-action-menu',\n imports: [StrataCardComponent, StrataOverlayDirective, StrataIconComponent, StrataButtonDirective],\n templateUrl: './action-menu.component.html',\n styleUrl: './action-menu.component.scss'\n})\nexport class StrataActionMenuComponent {\n projectedButton = contentChild(StrataButtonDirective, {\n descendants: true,\n read: ElementRef\n});\n\n defaultButton = viewChild(StrataButtonDirective, {\n read: ElementRef\n});\n\n overlayDirective = viewChild(StrataOverlayDirective);\n\n actionMenuItems = contentChildren(StrataActionMenuItemComponent);\n\n placement = input<Placement>('bottom-end');\n closeOnOutsideClick = input<boolean>(true);\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n renderer = inject(Renderer2);\n\n menuOpen = signal(false);\n\n constructor() {\n effect((onCleanup) => {\n const button = this.projectedButton() ?? this.defaultButton();\n if (!button) {\n return;\n }\n\n const unlisten = this.renderer.listen(button.nativeElement, 'click', () => {\n this.menuOpen.set(!this.menuOpen());\n });\n\n onCleanup(() => {\n unlisten();\n });\n });\n\n effect((onCleanup) => {\n if (!this.menuOpen() || !this.closeOnOutsideClick()) {\n return;\n }\n\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n const target = event.target as Node | null;\n if (!target) {\n return;\n }\n\n const hostEl = this.elementRef.nativeElement;\n const overlayEl = this.overlayDirective()?.getOverlayElement();\n\n if (hostEl.contains(target) || (overlayEl && overlayEl.contains(target))) {\n return;\n }\n\n this.menuOpen.set(false);\n });\n\n onCleanup(() => {\n unlisten();\n });\n });\n\n effect((onCleanup) => {\n const subs = this.actionMenuItems().map((item) =>\n item.menuItemClicked.subscribe((shouldClose) => {\n if (shouldClose) {\n this.menuOpen.set(false);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n}\n","<div [stOverlay]=\"menu\" [overlayOpen]=\"menuOpen()\" [overlayPlacement]=\"placement()\">\n <ng-content select=\"button[stButton]\"></ng-content>\n @if (!projectedButton()) {\n <button stButton><st-icon name=\"more\"></st-icon></button>\n }\n</div>\n\n<ng-template #menu>\n <st-card [padding]=\"false\" class=\"action-menu-card\"><ng-content select=\"st-action-menu-item\"></ng-content></st-card>\n</ng-template>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-text-stack',\n imports: [],\n templateUrl: './text-stack.component.html',\n styleUrl: './text-stack.component.scss'\n})\nexport class StrataTextStackComponent {\n overflow = input<TextStackOverflow>('truncate');\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [this.overflow()];\n }\n}\n\nexport type TextStackOverflow = 'truncate' | 'wrap';\n","<ng-content></ng-content>\n","import { Component, input, output } from '@angular/core';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataTextStackComponent } from '../../../text-stack/components/text-stack/text-stack.component';\n\n@Component({\n selector: 'st-alert',\n templateUrl: './alert.component.html',\n imports: [StrataIconComponent, StrataButtonDirective, StrataTextStackComponent]\n})\nexport class StrataAlertComponent {\n\n header = input<string | undefined>(undefined);\n message = input.required<string>();\n iconName = input<string | undefined>(undefined);\n dismissible = input<boolean>(false);\n\n dismiss = output<void>();\n}\n\n\n\n","<div class=\"st-alert-container\">\n @if (iconName()) {\n <div class=\"st-alert-icon\">\n <st-icon [name]=\"iconName()!\"></st-icon>\n </div>\n }\n\n <div class=\"st-alert-content\">\n <st-text-stack overflow=\"wrap\">\n @if (header()) {\n <p class=\"st-body-bold st-alert-header\">{{ header() }}</p>\n }\n <p class=\"st-alert-message\">{{ message() }}</p>\n </st-text-stack>\n </div>\n\n\n\n\n <div class=\"st-alert-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (dismissible()) {\n <button stButton variant=\"ghost\" size=\"sm\" class=\"st-alert-dismiss\" (click)=\"dismiss.emit()\"\n aria-label=\"Dismiss alert\">\n <st-icon name=\"close\"></st-icon>\n </button>\n }\n</div>","import { Component, input } from '@angular/core';\nimport { AvatarSize } from '../avatar/avatar.component';\n\n@Component({\n selector: 'st-avatar-stack',\n imports: [],\n templateUrl: './avatar-stack.component.html',\n host: {\n '[class.xs]': 'size() === \"xs\"',\n '[class.sm]': 'size() === \"sm\"',\n '[class.md]': 'size() === \"md\"',\n '[class.lg]': 'size() === \"lg\"',\n '[class.tight]': 'spacing() === \"tight\"',\n '[class.mid]': 'spacing() === \"mid\"',\n '[class.loose]': 'spacing() === \"loose\"',\n '[class.first-on-front]': 'firstOnFront()',\n }\n})\nexport class StrataAvatarStackComponent {\n size = input<AvatarSize>('md');\n\n spacing = input<'loose' | 'mid' | 'tight'>('mid');\n\n firstOnFront = input<boolean>(false);\n}\n\nexport type AvatarStackSpacing = 'loose' | 'mid' | 'tight';\n","<ng-content></ng-content>\n","import {\n AfterViewInit, Component, contentChildren, effect, HostBinding, input, model, signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-avatar',\n imports: [],\n templateUrl: './avatar.component.html'\n})\nexport class StrataAvatarComponent implements AfterViewInit {\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n src = input<string | null>(null);\n alt = input<string>('');\n text = input<string | null>(null);\n\n size = model<AvatarSize>('md');\n\n imageError = signal(false);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageError.set(false);\n });\n }\n\n @HostBinding('class')\n get elementClasses() {\n return [this.size()];\n }\n\n onImageError(): void {\n this.imageError.set(true);\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.iconComponents().forEach((icon) => {\n icon.size.set(this.size());\n });\n });\n }\n}\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';\n","@if (src() && !imageError()) {\n <img [src]=\"src()!\" [alt]=\"alt()\" (error)=\"onImageError()\" />\n} @else if (text() !== null) {\n <span>{{ text() }}</span>\n}\n<ng-content></ng-content>\n","import { Component, computed, HostBinding, input } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { BadgePlacement, BadgeSize, BadgeVariant } from '../../badge.model';\n\n@Component({\n selector: 'st-badge',\n imports: [StrataIconComponent],\n templateUrl: './badge.component.html'\n})\nexport class StrataBadgeComponent {\n value = input<string | number | undefined>(undefined);\n icon = input<string | undefined>(undefined);\n max = input<number>(99);\n variant = input<BadgeVariant>('accent');\n size = input<BadgeSize>('md');\n placement = input<BadgePlacement>('inline');\n visible = input<boolean>(true);\n showZero = input<boolean>(false);\n ariaLabel = input<string | undefined>(undefined);\n\n isDot = computed(() => this.size() === 'xs' || (this.value() === undefined && !this.icon()));\n isIconOnly = computed(() => this.size() !== 'xs' && (this.value() === undefined || this.value() === '') && !!this.icon());\n\n displayValue = computed(() => {\n if (this.size() === 'xs') {\n return '';\n }\n const val = this.value();\n if (typeof val === 'number') {\n const maxVal = this.max();\n return val > maxVal ? `${maxVal}+` : `${val}`;\n }\n return val !== undefined ? `${val}` : '';\n });\n\n shouldRender = computed(() => {\n if (!this.visible()) {\n return false;\n }\n const val = this.value();\n if (typeof val === 'number' && val === 0 && !this.showZero()) {\n return false;\n }\n return true;\n });\n\n computedAriaLabel = computed(() => {\n const custom = this.ariaLabel();\n if (custom !== undefined) {\n return custom;\n }\n if (this.isDot()) {\n return `${this.variant()} status`;\n }\n const display = this.displayValue();\n if (display) {\n return `${display}`;\n }\n const iconName = this.icon();\n if (iconName) {\n return `${iconName} badge`;\n }\n return undefined;\n });\n\n @HostBinding('attr.role')\n readonly role = 'status';\n\n @HostBinding('attr.aria-label')\n get hostAriaLabel(): string | undefined {\n return this.computedAriaLabel();\n }\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = [\n 'st-badge',\n `st-badge-${this.variant()}`,\n `st-badge-${this.size()}`,\n `st-badge-placement-${this.placement()}`\n ];\n if (this.isDot()) {\n classes.push('st-badge-dot');\n }\n if (this.isIconOnly()) {\n classes.push('st-badge-icon-only');\n }\n if (!this.shouldRender()) {\n classes.push('st-badge-hidden');\n }\n return classes.join(' ');\n }\n}\n","@if (shouldRender() && !isDot()) {\n @if (icon()) {\n <st-icon [name]=\"icon()!\" aria-hidden=\"true\"></st-icon>\n }\n @if (displayValue()) {\n <span class=\"st-badge-value\">{{ displayValue() }}</span>\n }\n}\n","import { Component, input, output, signal } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-breadcrumb-item',\n imports: [StrataIconComponent, StrataActivatableDirective],\n templateUrl: './breadcrumb-item.component.html',\n host: {\n 'class': 'st-breadcrumb-item'\n}\n})\nexport class StrataBreadcrumbItemComponent {\n text = input.required<string>();\n\n icon = input<string>();\n\n interactable = input<boolean>(false);\n\n disabled = input<boolean>(false);\n\n activated = output<Event>();\n\n separatorIcon = signal<string | undefined>(undefined);\n}\n","<li class=\"st-breadcrumb-item-container\">\n <div class=\"st-breadcrumb-item-content\"\n stActivatable\n [interactable]=\"interactable()\"\n [disabled]=\"disabled()\"\n (click)=\"activated.emit($event)\">\n @if (icon()) {\n <st-icon [name]=\"icon()!\" size=\"sm\" class=\"st-breadcrumb-item-icon\"></st-icon>\n }\n <span class=\"st-breadcrumb-item-text\">{{ text() }}</span>\n </div>\n\n @if (separatorIcon()) {\n <st-icon [name]=\"separatorIcon()!\" size=\"sm\" class=\"st-breadcrumb-separator\"></st-icon>\n }\n</li>\n","import { Component, contentChildren, effect, input } from '@angular/core';\nimport { StrataBreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n selector: 'st-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.component.html',\n host: {\n 'class': 'st-breadcrumb'\n}\n})\nexport class StrataBreadcrumbComponent {\n separatorIcon = input<string>('arrow-right');\n\n items = contentChildren(StrataBreadcrumbItemComponent, { descendants: true });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const separator = this.separatorIcon();\n\n items.forEach((item, index) => {\n const isLast = index === items.length - 1;\n item.separatorIcon.set(isLast ? undefined : separator);\n });\n });\n }\n}\n","<nav aria-label=\"Breadcrumb\">\n <ol class=\"st-breadcrumb-list\">\n <ng-content></ng-content>\n </ol>\n</nav>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'st-button-group',\n imports: [],\n templateUrl: './button-group.component.html',\n host: {\n '[attr.justification]': 'justification()',\n }\n})\nexport class StrataButtonGroupComponent {\n justification = input<ButtonGroupJustification>('start');\n}\n\nexport type ButtonGroupJustification = 'start' | 'center' | 'end' | 'expand' | 'stack';\n","<ng-content select=\"[stButton], st-divider\" #buttons></ng-content>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'st-divider',\n imports: [],\n templateUrl: './divider.component.html'\n})\nexport class StrataDividerComponent {\n label = input<string>();\n margin = input(true);\n vertical = input(false);\n}\n","@if (!label() || vertical()) {\n <div class=\"divider-line\" [class.divider-margin]=\"margin()\" [class.vertical]=\"vertical()\"></div>\n} @else {\n <div class=\"divider-line-with-text\" [class.divider-margin]=\"margin()\">\n <div class=\"divider-line\"></div>\n <span>{{ label() }}</span>\n <div class=\"divider-line\"></div>\n </div>\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'st-file-upload',\n imports: [],\n templateUrl: './file-upload.component.html'\n})\nexport class StrataFileUploadComponent {\n fileInput = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n accept = input<string>('*');\n multiple = input<boolean>(false);\n maxFileSize = input<number | undefined>(undefined);\n disabled = input<boolean>(false);\n label = input<string>('Choose a file or drag & drop it here');\n hint = input<string | undefined>(undefined);\n\n fileSelect = output<File>();\n filesSelect = output<File[]>();\n fileRejected = output<{ file: File; reason: 'type' | 'size' }>();\n\n isDragOver = signal<boolean>(false);\n\n @HostBinding('class.st-disabled')\n get hostDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.st-drag-over')\n get hostDragOver(): boolean {\n return this.isDragOver();\n }\n\n @HostBinding('attr.role')\n readonly hostRole = 'button';\n\n @HostBinding('attr.tabindex')\n get hostTabIndex(): number {\n return this.disabled() ? -1 : 0;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (target === this.fileInput()?.nativeElement) {\n return;\n }\n this.browse();\n }\n\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onKeydown(event: Event): void {\n event.preventDefault();\n this.browse();\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(true);\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n\n const droppedFiles = event.dataTransfer?.files;\n if (!droppedFiles || droppedFiles.length === 0) return;\n\n this.processFiles(Array.from(droppedFiles));\n }\n\n onFileChange(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n if (!inputEl.files || inputEl.files.length === 0) return;\n\n this.processFiles(Array.from(inputEl.files));\n inputEl.value = '';\n }\n\n browse(): void {\n if (this.disabled()) return;\n this.fileInput()?.nativeElement.click();\n }\n\n clear(): void {\n const inputEl = this.fileInput()?.nativeElement;\n if (inputEl) {\n inputEl.value = '';\n }\n }\n\n private processFiles(files: File[]): void {\n const acceptedFiles: File[] = [];\n const filesToValidate = this.multiple() ? files : files.slice(0, 1);\n\n for (const file of filesToValidate) {\n if (!this.matchesAccept(file, this.accept())) {\n this.fileRejected.emit({ file, reason: 'type' });\n continue;\n }\n\n const maxSize = this.maxFileSize();\n if (maxSize != null && file.size > maxSize) {\n this.fileRejected.emit({ file, reason: 'size' });\n continue;\n }\n\n acceptedFiles.push(file);\n }\n\n if (acceptedFiles.length > 0) {\n this.filesSelect.emit(acceptedFiles);\n if (!this.multiple()) {\n this.fileSelect.emit(acceptedFiles[0]);\n }\n }\n }\n\n private matchesAccept(file: File, accept: string): boolean {\n if (!accept || accept === '*' || accept === '*/*') {\n return true;\n }\n\n const rules = accept.split(',').map((r) => r.trim().toLowerCase());\n const fileName = file.name.toLowerCase();\n const fileType = file.type.toLowerCase();\n\n return rules.some((rule) => {\n if (rule.startsWith('.')) {\n return fileName.endsWith(rule);\n }\n if (rule.endsWith('/*')) {\n const baseType = rule.slice(0, -2);\n return fileType.startsWith(`${baseType}/`);\n }\n return fileType === rule;\n });\n }\n}\n","<input\n #fileInput\n type=\"file\"\n class=\"st-file-upload-input\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"disabled()\"\n (change)=\"onFileChange($event)\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n/>\n\n<div class=\"st-file-upload-content\">\n <div class=\"st-file-upload-icon-wrapper\">\n <ng-content select=\"[uploadIcon]\">\n <svg\n class=\"st-file-upload-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </svg>\n </ng-content>\n </div>\n\n <div class=\"st-file-upload-text\">\n <span class=\"st-file-upload-label\">{{ label() }}</span>\n @if (hint()) {\n <span class=\"st-file-upload-hint\">{{ hint() }}</span>\n }\n </div>\n\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n input,\n model,\n OnDestroy,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'st-slider',\n imports: [FormsModule],\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataSliderComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataSliderComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n wrapper = viewChild.required<ElementRef<HTMLDivElement>>('wrapper');\n private resizeObserver!: ResizeObserver;\n\n value = model<number>();\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: number | undefined) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n minimum = input.required<number>();\n\n maximum = input.required<number>();\n\n step = input<number | 'none' | undefined>();\n\n computedStep = computed(() =>\n this.step() === 'none' || this.step() === undefined ? 'any' : Number(this.step()),\n );\n\n steps = computed(() => {\n const step = this.computedStep();\n if (step === 'any' || step === undefined || !step) {\n return 0;\n }\n return Math.floor((this.maximum() - this.minimum()) / step) + 1;\n });\n\n isStepped = computed(\n () => this.computedStep() !== 'any' && this.computedStep() !== undefined && this.computedStep() !== 0,\n );\n\n private viewInitialized = signal(false);\n\n constructor() {\n effect(() => {\n if (!this.viewInitialized()) return;\n this.steps();\n this.isStepped();\n this.computedStep();\n this.minimum();\n this.maximum();\n this.updateTickMath();\n });\n }\n\n ngAfterViewInit(): void {\n this.viewInitialized.set(true);\n this.updateTickMath();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTickMath();\n });\n\n this.resizeObserver.observe(this.wrapper().nativeElement);\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n }\n\n private updateTickMath(): void {\n if (!this.isStepped()) return;\n\n const wrapperEl = this.wrapper().nativeElement;\n const sliderWidth = wrapperEl.offsetWidth;\n if (!sliderWidth) return;\n\n const thumbSize = this.getThumbSize(wrapperEl);\n\n const usableWidth = sliderWidth - thumbSize;\n\n const intervalCount = this.steps() - 1;\n if (intervalCount <= 0) return;\n\n const intervalPx = usableWidth / intervalCount;\n\n wrapperEl.style.setProperty('--st-slider-usable-width', `${usableWidth}px`);\n wrapperEl.style.setProperty('--st-slider-interval-px', `${intervalPx}px`);\n wrapperEl.style.setProperty('--st-slider-thumb-offset', `${thumbSize / 2}px`);\n }\n\n private getThumbSize(el: HTMLElement): number {\n const styles = getComputedStyle(el);\n const size = styles.getPropertyValue('--st-slider-thumb-size');\n return parseFloat(size);\n }\n\n onModelChange(val: number | string): void {\n const num = Number(val);\n this.value.set(num);\n this.onChange(num);\n this.onTouched();\n }\n\n writeValue(val: number | null | undefined): void {\n this.value.set(val != null ? Number(val) : undefined);\n }\n\n registerOnChange(fn: (val: number | undefined) => void): void {\n this.onChange = fn;\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","<div\n #wrapper\n class=\"range-wrapper\"\n [style.--steps]=\"steps()\"\n [class.stepped]=\"isStepped()\"\n>\n <input\n type=\"range\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onModelChange($event)\"\n [disabled]=\"effectiveDisabled()\"\n [min]=\"minimum()\"\n [max]=\"maximum()\"\n [step]=\"computedStep()\"\n />\n</div>\n","import {\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n computed,\n effect,\n input,\n model,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataButtonGroupComponent } from '../../../button/components/button-group/button-group.component';\nimport { StrataSliderComponent } from '../../../slider/components/slider/slider.component';\nimport { CropPosition, CropResult, CropShape } from '../../models/image-cropper.model';\n\n@Component({\n selector: 'st-image-cropper',\n imports: [\n CommonModule,\n FormsModule,\n StrataButtonDirective,\n StrataButtonGroupComponent,\n StrataSliderComponent\n ],\n templateUrl: './image-cropper.component.html'\n})\nexport class StrataImageCropperComponent implements OnDestroy {\n viewportRef = viewChild<ElementRef<HTMLDivElement>>('viewport');\n imageRef = viewChild<ElementRef<HTMLImageElement>>('imgElement');\n\n image = input<string | File | Blob | null>(null);\n shape = input<CropShape>('circle');\n maskSize = input<number>(240);\n outputWidth = input<number>(400);\n outputHeight = input<number>(400);\n outputFormat = input<'image/png' | 'image/jpeg' | 'image/webp'>('image/png');\n outputQuality = input<number>(0.92);\n minZoom = input<number>(1);\n maxZoom = input<number>(3);\n showZoom = input<boolean>(true);\n showRotate = input<boolean>(true);\n showClear = input<boolean>(true);\n clearLabel = input<string>('Remove');\n autoCrop = input<boolean>(true);\n disabled = input<boolean>(false);\n\n zoom = model<number>(1);\n rotation = model<number>(0);\n\n crop = output<CropResult>();\n imageLoaded = output<{ width: number; height: number; src: string }>();\n imageError = output<string>();\n imageCleared = output<void>();\n\n currentImageSrc = signal<string | null>(null);\n naturalWidth = signal<number>(0);\n naturalHeight = signal<number>(0);\n panX = signal<number>(0);\n panY = signal<number>(0);\n isDragging = signal<boolean>(false);\n isLoading = signal<boolean>(false);\n\n hasImage = computed(() => !!this.currentImageSrc());\n\n baseScale = computed(() => {\n const nw = this.naturalWidth();\n const nh = this.naturalHeight();\n const size = this.maskSize();\n if (nw <= 0 || nh <= 0 || size <= 0) return 1;\n return Math.max(size / nw, size / nh);\n });\n\n imageTransform = computed(() => {\n const px = this.panX();\n const py = this.panY();\n const rot = this.rotation();\n const scale = this.baseScale() * this.zoom();\n return `translate(calc(-50% + ${px}px), calc(-50% + ${py}px)) rotate(${rot}deg) scale(${scale})`;\n });\n\n private startPointerPos: CropPosition = { x: 0, y: 0 };\n private startPanPos: CropPosition = { x: 0, y: 0 };\n private activePointerId: number | null = null;\n private createdBlobUrl: string | null = null;\n private autoCropTimeout: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n effect(() => {\n const imgInput = this.image();\n this.loadImageSource(imgInput);\n });\n\n effect(() => {\n this.panX();\n this.panY();\n this.zoom();\n this.rotation();\n if (this.autoCrop() && this.hasImage()) {\n this.scheduleAutoCrop();\n }\n });\n }\n\n @HostBinding('class.st-disabled')\n get hostDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.st-has-image')\n get hostHasImage(): boolean {\n return this.hasImage();\n }\n\n @HostBinding('style.--st-cropper-mask-size')\n get hostMaskSize(): string {\n return `${this.maskSize()}px`;\n }\n\n ngOnDestroy(): void {\n this.cleanupBlobUrl();\n if (this.autoCropTimeout) {\n clearTimeout(this.autoCropTimeout);\n }\n }\n\n setImage(source: string | File | Blob | null): void {\n this.loadImageSource(source);\n }\n\n center(): void {\n this.panX.set(0);\n this.panY.set(0);\n }\n\n reset(): void {\n this.panX.set(0);\n this.panY.set(0);\n this.zoom.set(1);\n this.rotation.set(0);\n }\n\n clear(): void {\n this.cleanupBlobUrl();\n this.currentImageSrc.set(null);\n this.naturalWidth.set(0);\n this.naturalHeight.set(0);\n this.reset();\n this.imageCleared.emit();\n }\n\n rotateRight(): void {\n if (this.disabled()) return;\n this.rotation.update((r) => (r + 90) % 360);\n }\n\n rotateLeft(): void {\n if (this.disabled()) return;\n this.rotation.update((r) => (r - 90 + 360) % 360);\n }\n\n onImageElementLoad(event: Event): void {\n const img = event.target as HTMLImageElement;\n this.naturalWidth.set(img.naturalWidth);\n this.naturalHeight.set(img.naturalHeight);\n this.isLoading.set(false);\n this.reset();\n this.imageLoaded.emit({\n width: img.naturalWidth,\n height: img.naturalHeight,\n src: img.src\n });\n }\n\n onImageElementError(): void {\n this.isLoading.set(false);\n this.imageError.emit('Failed to load image');\n }\n\n onPointerDown(event: PointerEvent): void {\n if (this.disabled() || !this.hasImage()) return;\n this.activePointerId = event.pointerId;\n const target = event.currentTarget as HTMLElement;\n target.setPointerCapture?.(event.pointerId);\n\n this.isDragging.set(true);\n this.startPointerPos = { x: event.clientX, y: event.clientY };\n this.startPanPos = { x: this.panX(), y: this.panY() };\n }\n\n onPointerMove(event: PointerEvent): void {\n if (!this.isDragging() || this.activePointerId !== event.pointerId) return;\n\n const dx = event.clientX - this.startPointerPos.x;\n const dy = event.clientY - this.startPointerPos.y;\n\n this.panX.set(this.startPanPos.x + dx);\n this.panY.set(this.startPanPos.y + dy);\n }\n\n onPointerUp(event: PointerEvent): void {\n if (this.activePointerId === event.pointerId) {\n const target = event.currentTarget as HTMLElement;\n try {\n target.releasePointerCapture?.(event.pointerId);\n } catch (_err) {\n void _err;\n }\n this.activePointerId = null;\n this.isDragging.set(false);\n }\n }\n\n onWheel(event: WheelEvent): void {\n if (this.disabled() || !this.hasImage() || !this.showZoom()) return;\n event.preventDefault();\n\n const zoomStep = 0.1;\n const delta = event.deltaY < 0 ? zoomStep : -zoomStep;\n const nextZoom = Math.min(\n this.maxZoom(),\n Math.max(this.minZoom(), this.zoom() + delta)\n );\n this.zoom.set(Math.round(nextZoom * 100) / 100);\n }\n\n onZoomChange(val: number | string): void {\n const num = Number(val);\n this.zoom.set(num);\n }\n\n cropImage(): Promise<CropResult> {\n return new Promise((resolve, reject) => {\n const src = this.currentImageSrc();\n if (!src) {\n reject(new Error('No image loaded to crop'));\n return;\n }\n\n const img = new Image();\n img.crossOrigin = 'anonymous';\n\n img.onload = () => {\n try {\n const outW = this.outputWidth();\n const outH = this.outputHeight();\n const mask = this.maskSize();\n\n const canvas = document.createElement('canvas');\n canvas.width = outW;\n canvas.height = outH;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n reject(new Error('Failed to create canvas 2D context'));\n return;\n }\n\n if (this.shape() === 'circle') {\n ctx.beginPath();\n ctx.arc(outW / 2, outH / 2, outW / 2, 0, Math.PI * 2);\n ctx.closePath();\n ctx.clip();\n }\n\n ctx.save();\n ctx.translate(outW / 2, outH / 2);\n\n const canvasScale = outW / mask;\n ctx.translate(this.panX() * canvasScale, this.panY() * canvasScale);\n\n ctx.rotate((this.rotation() * Math.PI) / 180);\n\n const totalScale = this.baseScale() * this.zoom() * canvasScale;\n ctx.scale(totalScale, totalScale);\n\n ctx.drawImage(img, -img.naturalWidth / 2, -img.naturalHeight / 2, img.naturalWidth, img.naturalHeight);\n ctx.restore();\n\n const format = this.outputFormat();\n const quality = this.outputQuality();\n const dataUrl = canvas.toDataURL(format, quality);\n\n canvas.toBlob(\n (blob) => {\n if (blob) {\n const result: CropResult = {\n blob,\n dataUrl,\n width: outW,\n height: outH\n };\n this.crop.emit(result);\n resolve(result);\n } else {\n reject(new Error('Failed to generate image blob'));\n }\n },\n format,\n quality\n );\n } catch (err) {\n reject(err);\n }\n };\n\n img.onerror = () => {\n reject(new Error('Failed to load image for cropping'));\n };\n\n img.src = src;\n });\n }\n\n private scheduleAutoCrop(): void {\n if (this.autoCropTimeout) {\n clearTimeout(this.autoCropTimeout);\n }\n this.autoCropTimeout = setTimeout(() => {\n this.cropImage().catch((_err) => {\n void _err;\n });\n }, 150);\n }\n\n private loadImageSource(source: string | File | Blob | null): void {\n this.cleanupBlobUrl();\n\n if (!source) {\n this.currentImageSrc.set(null);\n this.naturalWidth.set(0);\n this.naturalHeight.set(0);\n return;\n }\n\n this.isLoading.set(true);\n\n if (typeof source === 'string') {\n this.currentImageSrc.set(source);\n } else if (source instanceof File || source instanceof Blob) {\n this.createdBlobUrl = URL.createObjectURL(source);\n this.currentImageSrc.set(this.createdBlobUrl);\n }\n }\n\n private cleanupBlobUrl(): void {\n if (this.createdBlobUrl) {\n URL.revokeObjectURL(this.createdBlobUrl);\n this.createdBlobUrl = null;\n }\n }\n}\n","@if (!hasImage()) {\n <div class=\"st-cropper-empty-state\">\n <ng-content select=\"[emptyState], [placeholder], st-file-upload\">\n <div class=\"st-cropper-empty-placeholder\">\n <svg\n class=\"st-cropper-placeholder-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <polyline points=\"21 15 16 10 5 21\" />\n </svg>\n <span>No image selected</span>\n </div>\n </ng-content>\n </div>\n} @else {\n <div class=\"st-cropper-workspace\">\n <div\n #viewport\n class=\"st-cropper-viewport\"\n [class.st-is-dragging]=\"isDragging()\"\n (pointerdown)=\"onPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp($event)\"\n (wheel)=\"onWheel($event)\"\n >\n <div class=\"st-cropper-stage\">\n <div class=\"st-cropper-image-layer\">\n <img\n #imgElement\n class=\"st-cropper-image\"\n [src]=\"currentImageSrc()\"\n [style.transform]=\"imageTransform()\"\n alt=\"Image to crop\"\n draggable=\"false\"\n (load)=\"onImageElementLoad($event)\"\n (error)=\"onImageElementError()\"\n />\n </div>\n\n <div\n class=\"st-cropper-mask\"\n [class.st-crop-shape-circle]=\"shape() === 'circle'\"\n [class.st-crop-shape-square]=\"shape() === 'square'\"\n ></div>\n\n @if (showClear()) {\n <button\n type=\"button\"\n class=\"st-cropper-floating-close st-cropper-clear-btn\"\n [disabled]=\"disabled()\"\n (click)=\"clear()\"\n (pointerdown)=\"$event.stopPropagation()\"\n [title]=\"clearLabel() || 'Remove photo'\"\n [attr.aria-label]=\"clearLabel() || 'Remove photo'\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n }\n </div>\n\n @if (showZoom() || showRotate()) {\n <div class=\"st-cropper-overlay-controls\" (pointerdown)=\"$event.stopPropagation()\">\n <div class=\"st-cropper-buttons-row\">\n @if (showRotate()) {\n <st-button-group>\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n class=\"st-cropper-icon-btn\"\n [disabled]=\"disabled()\"\n (click)=\"rotateLeft()\"\n title=\"Rotate Counter-Clockwise\"\n aria-label=\"Rotate Counter-Clockwise\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M2.5 2v6h6\" />\n <path d=\"M2.66 15.57a10 10 0 1 0 .57-8.38L2.5 8\" />\n </svg>\n </button>\n\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n class=\"st-cropper-icon-btn\"\n [disabled]=\"disabled()\"\n (click)=\"rotateRight()\"\n title=\"Rotate Clockwise\"\n aria-label=\"Rotate Clockwise\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M21.5 2v6h-6\" />\n <path d=\"M21.34 15.57a10 10 0 1 1-.57-8.38L21.5 8\" />\n </svg>\n </button>\n </st-button-group>\n }\n\n <div class=\"st-cropper-align-group\">\n <st-button-group>\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n [disabled]=\"disabled() || (panX() === 0 && panY() === 0)\"\n (click)=\"center()\"\n title=\"Realign view to center\"\n aria-label=\"Realign view to center\"\n >\n Center\n </button>\n\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n (click)=\"reset()\"\n title=\"Reset position, zoom, and rotation\"\n aria-label=\"Reset position, zoom, and rotation\"\n >\n Reset\n </button>\n </st-button-group>\n\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </div>\n\n @if (showZoom()) {\n <div class=\"st-cropper-slider-row\">\n <st-slider\n class=\"st-cropper-slider\"\n [minimum]=\"minZoom()\"\n [maximum]=\"maxZoom()\"\n [step]=\"0.02\"\n [(value)]=\"zoom\"\n [disabled]=\"disabled()\"\n aria-label=\"Image Zoom\"\n ></st-slider>\n </div>\n }\n </div>\n }\n </div>\n </div>\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'input[stInput], textarea[stInput]'\n})\nexport class StrataNativeInputRefDirective {\n el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n\n}\n","import {\n AfterViewInit, Component, contentChild, contentChildren, effect, input, signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataNativeInputRefDirective } from '../../directives/native-input-ref.directive';\n\nexport type InputFieldSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-input-field',\n imports: [],\n templateUrl: './input-field.component.html',\n host: {\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"'\n }\n})\nexport class StrataInputFieldComponent implements AfterViewInit {\n size = input<InputFieldSize>('md');\n\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n inputField = contentChild(StrataNativeInputRefDirective, {\n descendants: true\n });\n\n private pendingFocus = signal(false);\n\n constructor() {\n effect(() => {\n const input = this.inputField();\n\n if (input && this.pendingFocus()) {\n input.el.nativeElement.focus();\n this.pendingFocus.set(false);\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.iconComponents().forEach((icon) => icon.size.set('sm')), 1);\n }\n\n focus(): void {\n this.pendingFocus.set(true);\n }\n\n blur(): void {\n this.inputField()?.el.nativeElement.blur();\n }\n\n get nativeInput(): HTMLInputElement | undefined {\n return this.inputField()?.el.nativeElement;\n }\n}\n\n","<ng-content select=\"label\"></ng-content>\n<div class=\"st-input-wrapper\">\n <div class=\"affix\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n <ng-content select=\"input,textarea\"></ng-content>\n <div class=\"affix\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n</div>\n","import {\n AfterViewInit, Directive, ElementRef, HostListener, inject, input, OnChanges, SimpleChanges\n} from '@angular/core';\n\n@Directive({\n selector: '[stAutoResize]'\n})\nexport class StrataAutoResizeDirective implements AfterViewInit, OnChanges {\n minimumRows = input(1);\n maximumRows = input<number>();\n\n private lineHeight = 0;\n\n private element = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n @HostListener('input')\n onInput() {\n this.resize();\n }\n\n @HostListener('window:resize')\n onWindowResize() {\n this.resize();\n }\n\n\n ngAfterViewInit(): void {\n this.calculateLineHeight();\n this.resize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['minRows'] || changes['maxRows']) {\n this.resize();\n }\n }\n\n private calculateLineHeight() {\n const textarea = this.element.nativeElement;\n\n const originalRows = textarea.rows;\n const originalValue = textarea.value;\n\n textarea.rows = 1;\n textarea.value = '';\n\n // Force layout\n this.lineHeight = textarea.scrollHeight;\n\n // Restore\n textarea.rows = originalRows;\n textarea.value = originalValue;\n }\n\n private resize() {\n const textarea = this.element.nativeElement;\n\n textarea.style.height = 'auto';\n\n const scrollHeight = textarea.scrollHeight;\n\n const minHeight = this.minimumRows() * this.lineHeight;\n const maxHeight = this.maximumRows() ? this.maximumRows()! * this.lineHeight : Infinity;\n\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);\n\n textarea.style.height = `${newHeight}px`;\n textarea.style.overflowY = scrollHeight > maxHeight ? 'auto' : 'hidden';\n }\n}\n","import { Component, computed, input, model, output, signal } from '@angular/core';\n\n@Component({\n selector: 'st-radio',\n imports: [],\n templateUrl: './radio.component.html',\n host: {\n role: 'radio',\n '[attr.tabindex]': 'effectiveDisabled() ? -1 : (checked() ? 0 : -1)',\n '[attr.aria-checked]': 'checked()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[attr.data-checked]': 'checked()',\n '[attr.data-disabled]': 'effectiveDisabled()',\n '[class.disabled]': 'effectiveDisabled()',\n '(click)': 'onClick($event)',\n '(keydown.space)': 'onSpaceKey($event)'\n }\n})\nexport class StrataRadioComponent {\n value = input.required<string>();\n label = input<string | undefined>(undefined);\n checked = model(false);\n disabled = input(false);\n groupDisabled = signal(false);\n effectiveDisabled = computed(() => this.disabled() || this.groupDisabled());\n\n selected = output<void>();\n\n select(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n this.checked.set(true);\n this.selected.emit();\n }\n\n onClick(event: MouseEvent): void {\n event.stopImmediatePropagation();\n this.select();\n }\n\n onSpaceKey(event: Event): void {\n event.preventDefault();\n this.select();\n }\n}\n","<input type=\"radio\" [checked]=\"checked()\" [disabled]=\"effectiveDisabled()\" tabindex=\"-1\" aria-hidden=\"true\" />\n<div class=\"radio-visual\"></div>\n@if (label()) {\n <label>{{ label() }}</label>\n}\n","import { Component, contentChild, ElementRef, HostBinding, HostListener, inject } from '@angular/core';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\nimport { StrataCheckboxComponent } from '../../../checkbox/components/checkbox/checkbox.component';\nimport { StrataToggleComponent } from '../../../toggle/components/toggle/toggle.component';\nimport { StrataRadioComponent } from '../../../radio/components/radio/radio.component';\n\n@Component({\n selector: 'st-item',\n imports: [],\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n hostDirectives: [\n {\n directive: StrataActivatableDirective,\n inputs: ['disabled', 'interactable'],\n outputs: ['activated']\n},\n ]\n})\nexport class StrataItemComponent {\n private element = inject(ElementRef);\n private _activatable = inject(StrataActivatableDirective);\n\n private checkbox = contentChild(StrataCheckboxComponent, { read: ElementRef });\n private toggle = contentChild(StrataToggleComponent, { read: ElementRef });\n private radio = contentChild(StrataRadioComponent, { read: ElementRef });\n\n interactable = this._activatable.interactable;\n disabled = this._activatable.disabled;\n\n constructor() {\n this.interactable.set(false);\n }\n\n @HostBinding('class.interactable')\n get isInteractable(): boolean {\n return this._activatable.isFocusable();\n }\n\n @HostBinding('class.disabled')\n get isDisabledClass(): boolean {\n return this.disabled();\n }\n\n @HostListener('click', ['$event'])\n onHostClick(event: MouseEvent) {\n if (this.disabled() || !this.interactable()) {\n return;\n }\n\n // Only trigger if we didn't click an interactive element within the item\n const target = event.target as HTMLElement;\n const isControl = target.closest('st-checkbox, st-toggle, st-radio');\n \n if (!isControl) {\n this.onActivated();\n }\n }\n\n onActivated() {\n if (this.disabled()) return;\n\n // Trigger children if they exist\n this.checkbox()?.nativeElement.click();\n this.toggle()?.nativeElement.click();\n this.radio()?.nativeElement.click();\n }\n}\n","<span class=\"item-start\">\n <ng-content select=\"[area='start']\"></ng-content\n></span>\n<span class=\"item-default\"> <ng-content></ng-content></span>\n<span class=\"item-end\">\n <ng-content select=\"[area='end']\"></ng-content>\n</span>\n","import { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { Component, HostBinding, input, TemplateRef } from '@angular/core';\nimport { StrataItemComponent } from '../item/item.component';\n\n@Component({\n selector: 'st-item-list',\n imports: [StrataItemComponent, NgTemplateOutlet, CommonModule],\n templateUrl: './item-list.component.html'\n})\nexport class StrataItemListComponent<T> {\n items = input.required<T[]>();\n\n dividers = input<boolean>(true);\n\n template = input<TemplateRef<T>>();\n\n @HostBinding('class') get hostClasses(): string[] {\n return [this.dividers() ? 'with-dividers' : ''];\n }\n}\n","@for (item of items(); track item; let last = $last) {\n <ng-template #defaultItemTemplate>\n <st-item>{{ item }}</st-item>\n </ng-template>\n <ng-container\n [ngTemplateOutlet]=\"template() || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { getDefaultShortcutLabels, STRATA_CONFIG } from '../../../../app/provider/provide-strata';\n\n@Component({\n selector: 'st-kbd',\n imports: [],\n templateUrl: './kbd.component.html',\n styleUrl: './kbd.component.scss'\n})\nexport class StrataKbdComponent {\n private readonly config = inject(STRATA_CONFIG, { optional: true });\n\n keys = input<string | string[]>([]);\n\n resolvedKeys = computed(() => {\n const rawKeys = this.keys();\n const defaults = getDefaultShortcutLabels(\n this.config?.platform,\n this.config?.crossPlatformHotkeys ?? true\n );\n const labels = {\n ...defaults,\n ...this.config?.shortcutLabels\n };\n\n const parseKey = (part: string) => {\n const p = part.trim().toLowerCase();\n if (p === 'meta' || p === 'cmd' || p === 'command') return labels.meta;\n if (p === 'ctrl') return labels.ctrl;\n if (p === 'shift') return labels.shift;\n if (p === 'alt') return labels.alt;\n return p.length === 1 ? p.toUpperCase() : part.trim();\n };\n\n if (typeof rawKeys === 'string') {\n return rawKeys.split('+').map(parseKey);\n }\n\n return Array.isArray(rawKeys) ? rawKeys.map(parseKey) : [];\n });\n}\n","@for (key of resolvedKeys(); track key) {\n<kbd class=\"st-kbd-key st-mono-s\">{{ key }}</kbd>\n}","import { Directive, effect, ElementRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[stTheme]'\n})\nexport class StrataThemeDirective {\n element = inject(ElementRef);\n\n stTheme = input.required<Theme>();\n\n constructor() {\n effect(() => {\n const theme = this.stTheme();\n const el = this.element.nativeElement;\n\n // remove previous theme classes\n el.classList.forEach((cls: string) => {\n if (cls.startsWith('st-theme-')) {\n el.classList.remove(cls);\n }\n });\n\n el.classList.add(`st-theme-${theme}`);\n });\n }\n}\n\nexport type Theme = 'brand' | 'default' | 'danger' | 'warning' | 'success' | 'info';\n","import { Component, input, output } from '@angular/core';\nimport { StrataTextStackComponent } from '../../../text-stack/components/text-stack/text-stack.component';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataThemeDirective, Theme } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-message-state',\n imports: [StrataTextStackComponent, StrataButtonDirective, StrataThemeDirective],\n templateUrl: './message-state.component.html',\n styleUrl: './message-state.component.scss'\n})\nexport class StrataMessageStateComponent {\n\n header = input.required<string>();\n subtitle = input<string | undefined>(undefined);\n primaryActionText = input<string | undefined>(undefined);\n primaryActionTheme = input<Theme | undefined>(undefined);\n secondaryActionText = input<string | undefined>(undefined);\n primaryAction = output<void>();\n secondaryAction = output<void>();\n}\n","<div class=\"st-message-state-graphic\">\n <ng-content></ng-content>\n</div>\n\n<st-text-stack overflow=\"wrap\">\n <h3 class=\"st-message-state-header\">{{ header() }}</h3>\n @if (subtitle()) {\n <p class=\"st-message-state-subtitle\">{{ subtitle() }}</p>\n }\n</st-text-stack>\n\n@if (primaryActionText() || secondaryActionText()) {\n <div class=\"st-message-state-actions\">\n @if (secondaryActionText()) {\n <button \n stButton \n variant=\"secondary\" \n (click)=\"secondaryAction.emit()\">\n {{ secondaryActionText() }}\n </button>\n }\n @if (primaryActionText()) {\n <button \n stButton \n variant=\"primary\" \n [stTheme]=\"primaryActionTheme() || 'default'\" \n (click)=\"primaryAction.emit()\">\n {{ primaryActionText() }}\n </button>\n }\n </div>\n}\n","import { DOCUMENT } from '@angular/common';\nimport { effect, inject, Injectable, signal } from '@angular/core';\nimport { StrataAlertContentComponent } from '../components/alert-content/alert-content.component';\nimport { AlertConfiguration, ModalConfiguration } from '../modal.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n private _modals = signal<ModalConfiguration[]>([]);\n public modals = this._modals.asReadonly();\n private document = inject(DOCUMENT);\n\n constructor() {\n effect(() => {\n const body = this.document?.body;\n if (body) {\n if (this.modals().length > 0) {\n body.classList.add('st-scroll-lock');\n } else {\n body.classList.remove('st-scroll-lock');\n }\n }\n });\n }\n\n public showModal(config: ModalConfiguration): void {\n if (!config.size) {\n config.size = 'md';\n }\n this._modals.update((prev) => [...prev, config]);\n }\n\n public showAlert(config: AlertConfiguration, callback: (value: boolean) => void): void {\n this.showModal({\n component: StrataAlertContentComponent,\n size: 'xs',\n variant: 'raised',\n hideCloseButton: true,\n onModalClosed: (val: unknown) => callback(val as boolean),\n disableBackdropClosure: true,\n inputs: {\n title: config.title,\n message: config.message,\n affirmativeButton: config.affirmativeButton,\n cancelButton: config.cancelButton,\n theme: config.theme,\n icon: config.icon\n}\n});\n }\n\n public closeCurrentModal(value?: unknown): void {\n const currentStack = this._modals();\n if (currentStack.length === 0) {\n return;\n }\n\n const modalToClose = currentStack[currentStack.length - 1];\n this.close(modalToClose, value);\n }\n\n public close(config: ModalConfiguration, value?: unknown): void {\n const currentStack = this._modals();\n const index = currentStack.lastIndexOf(config);\n\n if (index === -1) {\n return;\n }\n\n this._modals.update((prev) => {\n const next = [...prev];\n next.splice(index, 1);\n return next;\n });\n\n if (config.onModalClosed) {\n config.onModalClosed(value);\n }\n }\n}\n","import { Component, computed, input, inject } from '@angular/core';\nimport { ModalService } from '../../services/modal.service';\n\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataAvatarComponent } from '../../../avatar/components/avatar/avatar.component';\nimport { StrataButtonGroupComponent } from '../../../button/components/button-group/button-group.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { Theme, StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-alert-content',\n imports: [\n StrataAvatarComponent,\n StrataIconComponent,\n StrataThemeDirective,\n StrataButtonGroupComponent,\n StrataButtonDirective,\n ],\n templateUrl: './alert-content.component.html'\n})\nexport class StrataAlertContentComponent {\n private modalService = inject(ModalService);\n\n title = input.required<string>();\n message = input<string>();\n\n icon = input<string | undefined>(undefined);\n\n readonly computedIcon = computed(() => {\n return this.icon() ?? '';\n });\n\n theme = input<Theme>('info');\n\n affirmativeButton = input.required<string>();\n\n cancelButton = input<string | undefined>(undefined);\n\n onAffirmation(): void {\n this.modalService.closeCurrentModal(true);\n }\n\n onCancel(): void {\n this.modalService.closeCurrentModal(false);\n }\n}\n","<div class=\"alert-content\">\n @if (icon() !== undefined) {\n <st-avatar size=\"lg\" [stTheme]=\"theme()\">\n <st-icon [name]=\"computedIcon()\"></st-icon>\n </st-avatar>\n }\n\n <p class=\"alert-title\">{{ title() }}</p>\n @if (message()) {\n <p class=\"alert-message\">{{ message() }}</p>\n }\n</div>\n<st-button-group justification=\"expand\">\n @if (cancelButton()) {\n <button stButton (click)=\"onCancel()\">{{ cancelButton() }}</button>\n }\n <button stButton [stTheme]=\"theme()\" variant=\"primary\" (click)=\"onAffirmation()\">{{ affirmativeButton() }}</button>\n</st-button-group>\n","import { Type } from '@angular/core';\nimport { Theme } from '../theming/directives/theme.directive';\n\nexport interface ModalConfiguration {\n title?: string;\n component: Type<unknown>;\n onModalClosed?: (value?: unknown) => void;\n hideCloseButton?: boolean;\n disableBackdropClosure?: boolean;\n size?: ModalSize;\n variant?: ModalVariant;\n inputs?: Record<string, unknown>;\n}\n\nexport interface AlertConfiguration {\n message: string;\n icon?: string;\n title?: string;\n theme?: Theme;\n affirmativeButton: string;\n cancelButton?: string;\n}\n\nexport type ModalSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ModalVariant = 'default' | 'raised';\n\nexport abstract class StrataModalRef {\n abstract close(value?: unknown): void;\n}\n","import { Component, inject, input } from '@angular/core';\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { ModalService } from '../../services/modal.service';\n\n@Component({\n selector: 'st-modal-header',\n imports: [StrataButtonDirective, StrataIconComponent],\n templateUrl: './modal-header.component.html'\n})\nexport class StrataModalHeaderComponent {\n modalService = inject(ModalService);\n\n title = input<string | null | undefined>(null);\n\n showCloseButton = input<boolean>(true);\n\n onCloseButtonClicked(event: MouseEvent): void {\n this.modalService.closeCurrentModal();\n event.stopPropagation();\n }\n}\n","@if (title()) {\n<span class=\"st-body-l-bold\">{{ title() }}</span>\n}\n@if (showCloseButton()) {\n<button stButton (click)=\"onCloseButtonClicked($event)\" variant=\"ghost\">\n <st-icon name=\"close\" size=\"sm\"></st-icon>\n</button>\n}","import {\n AfterViewInit, Component, ComponentRef, computed, ElementRef, HostBinding, HostListener,\n inject, Injector, input, model, OnDestroy, OnInit, viewChild, ViewContainerRef\n} from '@angular/core';\nimport { ModalConfiguration, ModalSize, ModalVariant, StrataModalRef } from '../../modal.model';\nimport { ModalService } from '../../services/modal.service';\nimport { StrataModalHeaderComponent } from '../modal-header/modal-header.component';\n\n@Component({\n selector: 'st-modal',\n imports: [StrataModalHeaderComponent],\n templateUrl: './modal.component.html'\n})\nexport class StrataModalComponent implements OnInit, AfterViewInit, OnDestroy {\n private modalService = inject(ModalService);\n private injector = inject(Injector);\n private elementRef = inject(ElementRef);\n private previousActiveElement: HTMLElement | null = null;\n\n modalContents = viewChild.required<string, ViewContainerRef>('modalBody', {\n read: ViewContainerRef\n });\n\n configuration = input.required<ModalConfiguration>();\n\n size = model<ModalSize | undefined>('md');\n variant = input<ModalVariant>();\n\n readonly currentSize = computed(() => this.size() ?? this.configuration()?.size ?? 'md');\n readonly currentVariant = computed(() => this.variant() ?? this.configuration()?.variant ?? 'default');\n\n @HostBinding('attr.role')\n readonly role = 'dialog';\n\n @HostBinding('attr.aria-modal')\n readonly ariaModal = 'true';\n\n @HostBinding('attr.tabindex')\n readonly tabIndex = -1;\n\n @HostBinding('class')\n get hostClasses(): string {\n return `st-modal-size-${this.currentSize()} st-modal-variant-${this.currentVariant()}`;\n }\n\n ngOnInit(): void {\n if (typeof document !== 'undefined' && document.activeElement instanceof HTMLElement) {\n this.previousActiveElement = document.activeElement;\n }\n }\n\n ngOnDestroy(): void {\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n }\n\n ngAfterViewInit(): void {\n this.elementRef.nativeElement.focus();\n\n const modalRef: StrataModalRef = {\n close: (value?: unknown) => this.modalService.close(this.configuration(), value)\n };\n\n const customInjector = Injector.create({\n providers: [{ provide: StrataModalRef, useValue: modalRef }],\n parent: this.injector\n});\n\n const injectedComponent = this.modalContents().createComponent(this.configuration().component, {\n injector: customInjector\n});\n\n if (this.configuration().inputs) {\n this.setInputsOnInjectedComponent(injectedComponent, this.configuration().inputs!);\n }\n }\n\n private setInputsOnInjectedComponent(\n injectedComponent: ComponentRef<unknown>,\n inputs: Record<string, unknown>,\n ): void {\n Object.keys(inputs).forEach((key) => {\n injectedComponent.setInput(key, inputs[key]);\n });\n }\n\n onCardClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Tab') {\n return;\n }\n\n const focusable = this.getFocusableElements();\n if (focusable.length === 0) {\n event.preventDefault();\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n if (event.shiftKey) {\n if (document.activeElement === first || !this.elementRef.nativeElement.contains(document.activeElement)) {\n event.preventDefault();\n last.focus();\n }\n } else {\n if (document.activeElement === last || !this.elementRef.nativeElement.contains(document.activeElement)) {\n event.preventDefault();\n first.focus();\n }\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n const selector = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n return Array.from(this.elementRef.nativeElement.querySelectorAll(selector)) as HTMLElement[];\n }\n}\n","@if (configuration().title || !configuration().hideCloseButton) {\n <st-modal-header\n [title]=\"configuration().title\"\n [showCloseButton]=\"configuration().hideCloseButton === true ? false : true\"\n (click)=\"onCardClick($event)\"></st-modal-header>\n}\n\n<div class=\"modal-content\">\n <ng-template #modalBody></ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject } from '@angular/core';\nimport { ModalService } from '../../services/modal.service';\nimport { StrataModalComponent } from '../modal/modal.component';\n\n@Component({\n selector: 'st-modal-container',\n imports: [StrataModalComponent, CommonModule],\n templateUrl: './modal-container.component.html'\n})\nexport class StrataModalContainerComponent {\n modalService = inject(ModalService);\n\n @HostListener('document:keydown.escape', ['$event'])\n onEscape(event: Event): void {\n const modals = this.modalService.modals();\n const currentModal = modals[modals.length - 1];\n\n if (!currentModal || currentModal.disableBackdropClosure) {\n return;\n }\n event.preventDefault();\n this.modalService.closeCurrentModal();\n }\n\n onBackdropClick(event: MouseEvent): void {\n event.stopPropagation();\n const modals = this.modalService.modals();\n const currentModal = modals[modals.length - 1];\n\n if (!currentModal || currentModal.disableBackdropClosure) {\n return;\n }\n this.modalService.closeCurrentModal();\n }\n}\n","<div class=\"modal-wrapper\">\n @for (modal of modalService.modals(); track modal; let last = $last) {\n <st-modal [ngClass]=\"{ 'hidden-under-other-modal': !last }\" [configuration]=\"modal\" [size]=\"modal.size\" [variant]=\"modal.variant\"> </st-modal>\n }\n</div>\n@if (modalService.modals().length > 0) {\n <div class=\"st-internal-backdrop active\" (click)=\"onBackdropClick($event)\"></div>\n}\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-modal-footer',\n imports: [],\n templateUrl: './modal-footer.component.html',\n host: {\n '[attr.justification]': 'justification()',\n }\n})\nexport class StrataModalFooterComponent {\n justification = input<ModalFooterJustification>('end');\n\n @HostBinding('class')\n get hostClass(): string {\n return `st-modal-footer st-modal-footer-${this.justification()}`;\n }\n}\n\nexport type ModalFooterJustification = 'start' | 'center' | 'end' | 'space-between';\n","<ng-content></ng-content>\n","import { Theme } from '../theming/directives/theme.directive';\n\nexport interface StrataNotificationRef {\n readonly id: string;\n dismiss(): void;\n}\n\nexport interface NotificationConfiguration {\n id?: string;\n icon?: string;\n message: string;\n theme?: Theme;\n duration?: number;\n dismissible?: boolean;\n}\n\nexport type NotificationsWithIds = NotificationConfiguration & {\n id: string;\n dismissible: boolean;\n};\n\nexport const DEFAULT_THEME: Theme = 'info';\n\nexport const DEFAULT_DURATION = 3000;\n","import { Injectable, signal } from '@angular/core';\nimport {\n DEFAULT_DURATION,\n DEFAULT_THEME,\n NotificationConfiguration,\n NotificationsWithIds,\n StrataNotificationRef\n} from '../notification.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n public notificationStack = signal<NotificationsWithIds[]>([]);\n\n public dismiss(notificationId: string): void {\n const currentStack = this.notificationStack().filter(\n (notification) => notification.id !== notificationId,\n );\n this.notificationStack.set(currentStack);\n }\n\n public showNotification(config: NotificationConfiguration): StrataNotificationRef {\n const newNotificationId = config.id ?? crypto.randomUUID();\n const duration = config.duration !== undefined ? config.duration : DEFAULT_DURATION;\n const isPersistent = duration === 0;\n const dismissible = config.dismissible !== undefined ? config.dismissible : isPersistent;\n\n const currentStack = this.notificationStack();\n this.notificationStack.set([\n ...currentStack,\n {\n id: newNotificationId,\n message: config.message,\n duration: duration,\n theme: config.theme ?? DEFAULT_THEME,\n icon: config.icon,\n dismissible\n }\n ]);\n\n if (duration > 0) {\n this.hideNotification(newNotificationId, duration);\n }\n\n return {\n id: newNotificationId,\n dismiss: () => this.dismiss(newNotificationId)\n };\n }\n\n private hideNotification(notificationId: string, duration: number): void {\n setTimeout(() => {\n this.dismiss(notificationId);\n }, duration);\n }\n}\n","import { Component, input, output } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-notification',\n imports: [StrataIconComponent],\n templateUrl: './notification.component.html'\n})\nexport class StrataNotificationComponent {\n icon = input<string | undefined>(undefined);\n message = input.required<string>();\n dismissible = input(false);\n dismiss = output<void>();\n\n onDismiss(): void {\n this.dismiss.emit();\n }\n}\n","@if (icon()) {\n <st-icon [name]=\"icon()!\"></st-icon>\n}\n<span class=\"notification-message\">{{ message() }}</span>\n@if (dismissible()) {\n <button\n type=\"button\"\n class=\"notification-close-btn\"\n aria-label=\"Dismiss notification\"\n (click)=\"onDismiss()\"\n >\n <st-icon name=\"close\"></st-icon>\n </button>\n}\n","import { Component, inject } from '@angular/core';\nimport { NotificationService } from '../../services/notification.service';\nimport { StrataNotificationComponent } from '../notification/notification.component';\n\nimport { StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-notification-container',\n imports: [StrataNotificationComponent, StrataThemeDirective],\n templateUrl: './notification-container.component.html'\n})\nexport class StrataNotificationContainerComponent {\n notificationService = inject(NotificationService);\n\n notifications = this.notificationService.notificationStack;\n\n dismiss(id: string): void {\n this.notificationService.dismiss(id);\n }\n}\n","@for (notification of notifications(); track notification.id) {\n <st-notification\n [icon]=\"notification.icon\"\n [message]=\"notification.message\"\n [dismissible]=\"notification.dismissible\"\n [stTheme]=\"notification.theme ?? 'info'\"\n (dismiss)=\"dismiss(notification.id)\"\n >\n </st-notification>\n}\n","import { CommonModule, formatNumber, getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Component, computed, inject, input, LOCALE_ID } from '@angular/core';\n\n@Component({\n selector: 'st-number-display',\n imports: [CommonModule],\n templateUrl: './number-display.component.html'\n})\nexport class StrataNumberDisplayComponent {\n private readonly locale = inject(LOCALE_ID);\n\n value = input.required<number>();\n\n decimals = input<number>(2);\n\n private digitsInfo = computed(() => {\n return `1.${this.decimals()}-${this.decimals()}`;\n });\n\n private formattedNumber = computed(() => formatNumber(this.value(), this.locale, this.digitsInfo()));\n\n readonly separatedDigits = computed(() => {\n const parts = this.formattedNumber().split(this.decimalPoint());\n return {\n integer: parts[0],\n decimals: parts[1] ?? undefined\n} as { integer: string; decimals?: string };\n });\n\n changedValue = input<boolean>(false);\n\n showPlus = input<boolean>(false);\n\n deemphasizeDecimals = input<boolean>(true);\n\n readonly decimalPoint = computed(() => getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal));\n}\n","<p\n [ngClass]=\"{\n positive: changedValue() && value() > 0,\n negative: changedValue() && value() < 0,\n }\"\n>\n @if (showPlus() && this.value() > 0) {\n +\n }\n <span class=\"integer-value\">{{ separatedDigits().integer }}</span>\n @if (separatedDigits().decimals) {\n <span\n class=\"decimal-number\"\n [ngClass]=\"{ deemphasize: deemphasizeDecimals() }\"\n >{{ decimalPoint() }}{{ separatedDigits().decimals }}</span\n >\n }\n</p>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-spinner',\n imports: [],\n templateUrl: './spinner.component.html',\n host: {\n 'role': 'status',\n 'aria-label': 'Loading'\n }\n})\nexport class StrataSpinnerComponent {\n size = input<SpinnerSize>('md');\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [this.size()];\n }\n}\n\nexport type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg';\n","<span class=\"st-spinner\"></span>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n OnDestroy,\n computed,\n effect,\n forwardRef,\n input,\n model,\n output,\n signal,\n viewChildren\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataSpinnerComponent } from '../../../spinner/components/spinner/spinner.component';\n\nexport type OtpType = 'number' | 'alphanumeric' | 'password';\nexport type OtpSize = 'sm' | 'md' | 'lg';\nexport type OtpState = 'idle' | 'loading' | 'success' | 'error';\n\n@Component({\n selector: 'st-otp',\n imports: [StrataSpinnerComponent],\n templateUrl: './otp.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataOtpComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"',\n '[class.st-state-loading]': 'effectiveState() === \"loading\"',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataOtpComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n value = model<string>('');\n length = input<number>(6);\n type = input<OtpType>('number');\n uppercase = input<boolean>(true);\n mask = input<boolean>(false);\n size = input<OtpSize>('md');\n state = model<OtpState>('idle');\n loading = input<boolean>(false);\n error = input<boolean | string>(false);\n success = input<boolean>(false);\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n placeholder = input<string>('');\n ariaLabel = input<string>('One-time password');\n helperText = input<string | undefined>(undefined);\n errorMessage = input<string | undefined>(undefined);\n autofocus = input<boolean>(false);\n clearOnError = input<boolean>(false);\n clearOnErrorDelay = input<number>(800);\n resetErrorOnInput = input<boolean>(true);\n\n completed = output<string>();\n errorReset = output<void>();\n\n slotInputs = viewChildren<ElementRef<HTMLInputElement>>('slotInput');\n\n digits = signal<string[]>([]);\n private cvaDisabled = signal<boolean>(false);\n private clearOnErrorTimer: ReturnType<typeof setTimeout> | null = null;\n\n effectiveState = computed<OtpState>(() => {\n if (this.loading() || this.state() === 'loading') {\n return 'loading';\n }\n if (this.error() || this.state() === 'error') {\n return 'error';\n }\n if (this.success() || this.state() === 'success') {\n return 'success';\n }\n return this.state();\n });\n\n effectiveDisabled = computed<boolean>(() => {\n return this.disabled() || this.cvaDisabled() || this.effectiveState() === 'loading';\n });\n\n computedErrorMessage = computed<string | undefined>(() => {\n const err = this.error();\n if (typeof err === 'string' && err.length > 0) {\n return err;\n }\n return this.errorMessage();\n });\n\n private onChange: (val: string) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n constructor() {\n effect(() => {\n const len = this.length();\n const val = this.value() || '';\n const currentDigits = this.digits();\n const chars = val.slice(0, len).split('');\n const nextDigits = Array.from({ length: len }, (_, i) => chars[i] || '');\n\n const isDifferent =\n nextDigits.length !== currentDigits.length ||\n nextDigits.some((d, i) => d !== currentDigits[i]);\n\n if (isDifferent) {\n this.digits.set(nextDigits);\n }\n });\n\n effect(() => {\n const currentState = this.effectiveState();\n const shouldAutoClear = this.clearOnError();\n const delay = this.clearOnErrorDelay();\n\n if (currentState === 'error' && shouldAutoClear) {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n }\n this.clearOnErrorTimer = setTimeout(() => {\n this.clear();\n }, delay);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus() && !this.effectiveDisabled()) {\n this.focus(0);\n }\n }\n\n ngOnDestroy(): void {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n this.clearOnErrorTimer = null;\n }\n }\n\n focus(index = 0): void {\n const inputs = this.slotInputs();\n if (inputs && inputs[index]) {\n inputs[index].nativeElement.focus();\n inputs[index].nativeElement.select();\n }\n }\n\n clear(): void {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n this.clearOnErrorTimer = null;\n }\n const emptyDigits = Array.from({ length: this.length() }, () => '');\n this.digits.set(emptyDigits);\n this.value.set('');\n this.onChange('');\n if (this.state() === 'error') {\n this.state.set('idle');\n }\n this.errorReset.emit();\n this.focus(0);\n }\n\n onKeyDown(event: KeyboardEvent, index: number): void {\n if (this.effectiveDisabled() || this.readonly()) {\n return;\n }\n\n if (event.key === 'Backspace') {\n this.handleUserInputStart();\n event.preventDefault();\n if (this.digits()[index]) {\n this.updateSlot(index, '');\n } else if (index > 0) {\n this.focus(index - 1);\n this.updateSlot(index - 1, '');\n }\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (index > 0) {\n this.focus(index - 1);\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (index < this.length() - 1) {\n this.focus(index + 1);\n }\n return;\n }\n\n if (event.key === 'Delete') {\n this.handleUserInputStart();\n event.preventDefault();\n this.updateSlot(index, '');\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n if (event.key.length === 1) {\n event.preventDefault();\n if (this.isValidChar(event.key)) {\n this.handleUserInputStart();\n const char = this.sanitizeChar(event.key);\n this.updateSlot(index, char);\n if (index < this.length() - 1) {\n this.focus(index + 1);\n }\n }\n }\n }\n\n onInput(event: Event, index: number): void {\n if (this.effectiveDisabled() || this.readonly()) {\n return;\n }\n\n this.handleUserInputStart();\n const inputEl = event.target as HTMLInputElement;\n const rawVal = inputEl.value;\n\n if (rawVal.length > 1) {\n this.distributeChars(rawVal, index);\n } else if (rawVal.length === 1) {\n if (this.isValidChar(rawVal)) {\n const char = this.sanitizeChar(rawVal);\n this.updateSlot(index, char);\n if (index < this.length() - 1) {\n this.focus(index + 1);\n }\n } else {\n inputEl.value = this.digits()[index] || '';\n }\n } else {\n this.updateSlot(index, '');\n }\n }\n\n onPaste(event: ClipboardEvent, index: number): void {\n if (this.effectiveDisabled() || this.readonly()) {\n return;\n }\n\n event.preventDefault();\n const pastedText = event.clipboardData?.getData('text') || '';\n if (!pastedText) {\n return;\n }\n\n this.handleUserInputStart();\n this.distributeChars(pastedText, index);\n }\n\n onFocus(index: number): void {\n const inputs = this.slotInputs();\n if (inputs && inputs[index]) {\n inputs[index].nativeElement.select();\n }\n }\n\n onClick(index: number): void {\n const inputs = this.slotInputs();\n if (inputs && inputs[index]) {\n inputs[index].nativeElement.select();\n }\n }\n\n writeValue(val: string | null | undefined): void {\n const safeVal = val != null ? String(val) : '';\n this.value.set(safeVal);\n }\n\n registerOnChange(fn: (val: string) => void): void {\n this.onChange = fn;\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 private handleUserInputStart(): void {\n if (this.effectiveState() === 'error' && this.resetErrorOnInput()) {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n this.clearOnErrorTimer = null;\n }\n if (this.state() === 'error') {\n this.state.set('idle');\n }\n this.errorReset.emit();\n }\n }\n\n private isValidChar(char: string): boolean {\n if (this.type() === 'number') {\n return /^[0-9]$/.test(char);\n }\n return /^[a-zA-Z0-9]$/.test(char);\n }\n\n private sanitizeChar(char: string): string {\n if (this.type() === 'alphanumeric' && this.uppercase()) {\n return char.toUpperCase();\n }\n return char;\n }\n\n private distributeChars(rawText: string, startIndex: number): void {\n const chars = rawText\n .split('')\n .filter((c) => this.isValidChar(c))\n .map((c) => this.sanitizeChar(c));\n\n if (chars.length === 0) {\n return;\n }\n\n const current = [...this.digits()];\n const start = chars.length >= this.length() ? 0 : startIndex;\n\n chars.forEach((c, idx) => {\n const targetIndex = start + idx;\n if (targetIndex < this.length()) {\n current[targetIndex] = c;\n }\n });\n\n this.digits.set(current);\n const newVal = current.join('');\n this.value.set(newVal);\n this.onChange(newVal);\n this.onTouched();\n\n const nextEmptyIndex = current.findIndex((d) => !d);\n const focusIndex =\n nextEmptyIndex !== -1\n ? nextEmptyIndex\n : Math.min(start + chars.length, this.length() - 1);\n\n this.focus(focusIndex);\n\n if (newVal.length === this.length() && current.every((d) => d.length === 1)) {\n this.completed.emit(newVal);\n }\n }\n\n private updateSlot(index: number, char: string): void {\n const current = [...this.digits()];\n current[index] = char;\n this.digits.set(current);\n const newVal = current.join('');\n this.value.set(newVal);\n this.onChange(newVal);\n this.onTouched();\n\n if (newVal.length === this.length() && current.every((d) => d.length === 1)) {\n this.completed.emit(newVal);\n }\n }\n}\n","<div class=\"st-otp-container\" role=\"group\" [attr.aria-label]=\"ariaLabel()\">\n @for (digit of digits(); track $index) {\n <input\n #slotInput\n class=\"st-otp-input\"\n [attr.type]=\"(type() === 'password' || mask()) ? 'password' : 'text'\"\n [attr.inputmode]=\"type() === 'number' ? 'numeric' : 'text'\"\n [attr.pattern]=\"type() === 'number' ? '[0-9]*' : undefined\"\n [attr.autocomplete]=\"'one-time-code'\"\n [attr.aria-label]=\"'Digit ' + ($index + 1) + ' of ' + length()\"\n [attr.aria-invalid]=\"effectiveState() === 'error'\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n [value]=\"digit\"\n (keydown)=\"onKeyDown($event, $index)\"\n (input)=\"onInput($event, $index)\"\n (paste)=\"onPaste($event, $index)\"\n (focus)=\"onFocus($index)\"\n (click)=\"onClick($index)\"\n />\n }\n\n @if (effectiveState() === 'loading') {\n <div class=\"st-otp-loading-overlay\" aria-hidden=\"true\">\n <st-spinner size=\"sm\"></st-spinner>\n </div>\n }\n</div>\n\n@if (computedErrorMessage()) {\n <div class=\"st-otp-message st-message-error\" role=\"alert\">\n {{ computedErrorMessage() }}\n </div>\n} @else if (helperText()) {\n <div class=\"st-otp-message\">\n {{ helperText() }}\n </div>\n}\n","import { Component, computed, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-pagination',\n imports: [],\n templateUrl: './pagination.component.html'\n})\nexport class StrataPaginationComponent {\n @HostBinding('attr.role')\n readonly role = 'navigation';\n\n @HostBinding('attr.aria-label')\n readonly ariaLabel = 'Pagination';\n\n currentPage = model<number>(1);\n\n totalPages = input.required<number>();\n\n pageSelected = output<number>();\n\n pageButtons = computed(() => this.calculatePageButtons(this.currentPage(), this.totalPages()));\n\n hideNextPreviousAtStartEnd = input(false);\n\n changePage(newPage: number): void {\n this.currentPage.set(newPage);\n this.pageSelected.emit(this.currentPage());\n }\n\n private calculatePageButtons(currentPage: number, totalPages: number): PaginationItem[] {\n const buttons: PaginationItem[] = [];\n\n if (totalPages <= 7) {\n return this.showAllPages(totalPages);\n }\n\n if (currentPage < 4) {\n return this.showStartingPages(totalPages);\n }\n\n if (currentPage > totalPages - 4) {\n return this.showEndingPages(totalPages);\n }\n buttons.push(this.pageItem(1));\n buttons.push(this.spaceItem());\n buttons.push(this.pageItem(currentPage - 1));\n buttons.push(this.pageItem(currentPage));\n buttons.push(this.pageItem(currentPage + 1));\n\n buttons.push(this.spaceItem());\n\n buttons.push(this.pageItem(totalPages));\n return buttons;\n }\n\n private showStartingPages(totalPages: number): PaginationItem[] {\n return [\n this.pageItem(1),\n this.pageItem(2),\n this.pageItem(3),\n this.pageItem(4),\n this.spaceItem(),\n this.pageItem(totalPages - 1),\n this.pageItem(totalPages),\n ];\n }\n\n private showEndingPages(totalPages: number): PaginationItem[] {\n return [\n this.pageItem(1),\n this.pageItem(2),\n this.spaceItem(),\n this.pageItem(totalPages - 3),\n this.pageItem(totalPages - 2),\n this.pageItem(totalPages - 1),\n this.pageItem(totalPages),\n ];\n }\n\n private showAllPages(totalPages: number): PaginationItem[] {\n const buttons: PaginationItem[] = [];\n\n for (let i = 1; i <= totalPages; i++) {\n buttons.push(this.pageItem(i));\n }\n return buttons;\n }\n\n private spaceItem(): PaginationItem {\n return { page: undefined, text: '...', clickable: false };\n }\n\n private pageItem(page: number): PaginationItem {\n return {\n page: page,\n text: page + '',\n clickable: true\n};\n }\n}\n\nexport interface PaginationItem {\n page: number | undefined;\n text: string;\n clickable: boolean;\n}\n","<button\n type=\"button\"\n [disabled]=\"currentPage() === 1\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n aria-label=\"Previous page\"\n (click)=\"changePage(currentPage() - 1)\"\n>\n Previous\n</button>\n@for (page of pageButtons(); track $index) {\n @if (page.clickable) {\n <button\n type=\"button\"\n [class.selected]=\"page.page === currentPage()\"\n [class.clickable]=\"true\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : null\"\n [attr.aria-label]=\"'Page ' + page.page\"\n (click)=\"page.page ? changePage(page.page) : null\"\n >\n {{ page.text }}\n </button>\n } @else {\n <span class=\"pagination-ellipsis\" aria-hidden=\"true\">\n {{ page.text }}\n </span>\n }\n}\n<button\n type=\"button\"\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"changePage(currentPage() + 1)\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n aria-label=\"Next page\"\n>\n Next\n</button>\n","import { DecimalPipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-progress-linear',\n imports: [DecimalPipe, NgTemplateOutlet],\n templateUrl: './progress-linear.component.html'\n})\nexport class StrataProgressLinearComponent {\n min = input(0);\n max = input(100);\n value = input.required<number>();\n showLabel = input(true);\n labelFormat = input<ProgressLinearLabelFormat>('percentage');\n growDirection = input<ProgressLinearGrowDirection>('right');\n\n percentage = computed(() => {\n if (this.max() <= this.min()) {\n return 0;\n }\n\n const clampedValue = Math.min(Math.max(this.value(), this.min()), this.max());\n const progressedValue = clampedValue - this.min();\n const progressableValues = this.max() - this.min();\n return (progressedValue / progressableValues) * 100;\n });\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [`grow-${this.growDirection()}`];\n }\n\n @HostBinding('style.--st-progress-percentage')\n get percentageProperty(): number {\n return this.percentage();\n }\n}\n\nexport type ProgressLinearLabelFormat = 'percentage' | 'value';\nexport type ProgressLinearGrowDirection = 'left' | 'right';\n","<div class=\"linear-container\">\n <div class=\"linear-bar\" [style.width.%]=\"percentage()\"></div>\n</div>\n\n<ng-container [ngTemplateOutlet]=\"label\"></ng-container>\n\n<ng-template #label>\n @if (showLabel()) {\n <span class=\"label\">\n @switch (labelFormat()) {\n @case (\"percentage\") {\n {{ percentage() | number: \"1.0-0\" }}%\n }\n @case (\"value\") {\n {{ value() | number: \"1.0-0\" }}\n }\n }\n </span>\n }\n</ng-template>\n","import { DecimalPipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-progress-radial',\n imports: [DecimalPipe, NgTemplateOutlet],\n templateUrl: './progress-radial.component.html'\n})\nexport class StrataProgressRadialComponent {\n min = input(0);\n max = input(100);\n value = input.required<number>();\n showLabel = input(true);\n labelFormat = input<ProgressRadialLabelFormat>('percentage');\n\n size = input(120);\n strokeWidth = input(10);\n\n percentage = computed(() => {\n if (this.max() <= this.min()) {\n return 0;\n }\n\n const clampedValue = Math.min(Math.max(this.value(), this.min()), this.max());\n const progressedValue = clampedValue - this.min();\n const progressableValues = this.max() - this.min();\n return (progressedValue / progressableValues) * 100;\n });\n\n radius = computed(() => (this.size() - this.strokeWidth()) / 2);\n circumference = computed(() => 2 * Math.PI * this.radius());\n dashOffset = computed(() => this.circumference() * (1 - this.percentage() / 100));\n\n @HostBinding('style.--st-progress-percentage')\n get percentageProperty(): number {\n return this.percentage();\n }\n}\n\nexport type ProgressRadialLabelFormat = 'percentage' | 'value';\n","<div class=\"radial-container\">\n <svg width=\"100%\" height=\"100%\">\n <circle class=\"background\"></circle>\n\n <circle class=\"progress\" stroke-linecap=\"round\"></circle>\n </svg>\n\n <ng-container [ngTemplateOutlet]=\"label\"></ng-container>\n</div>\n\n<ng-template #label>\n @if (showLabel()) {\n <span class=\"label\">\n @switch (labelFormat()) {\n @case (\"percentage\") {\n {{ percentage() | number: \"1.0-0\" }}%\n }\n @case (\"value\") {\n {{ value() | number: \"1.0-0\" }}\n }\n }\n </span>\n }\n</ng-template>\n","import {\n Component,\n computed,\n contentChildren,\n effect,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataRadioComponent } from '../radio/radio.component';\n\n@Component({\n selector: 'st-radio-group',\n imports: [],\n template: `<ng-content></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataRadioGroupComponent),\n multi: true\n }\n ],\n host: {\n role: 'radiogroup',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[class.disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataRadioGroupComponent implements ControlValueAccessor {\n value = model<string>('');\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n radios = contentChildren(StrataRadioComponent, { descendants: true });\n\n private onChange: (val: string) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n constructor() {\n effect(() => {\n const currentValue = this.value();\n this.radios().forEach((radio) => {\n radio.checked.set(radio.value() === currentValue);\n });\n });\n\n effect(() => {\n const isDisabled = this.effectiveDisabled();\n this.radios().forEach((radio) => {\n radio.groupDisabled.set(isDisabled);\n });\n });\n\n effect((onCleanup) => {\n const radios = this.radios();\n const subs = radios.map((radio) =>\n radio.selected.subscribe(() => {\n const val = radio.value();\n this.value.set(val);\n this.onChange(val);\n this.onTouched();\n })\n );\n\n onCleanup(() => {\n subs.forEach((s) => s.unsubscribe());\n });\n });\n }\n\n writeValue(val: string | null | undefined): void {\n this.value.set(val != null ? String(val) : '');\n }\n\n registerOnChange(fn: (val: string) => void): void {\n this.onChange = fn;\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","import { Component, computed, HostBinding, input, model, output, signal } from '@angular/core';\n\n@Component({\n selector: 'st-segmented-control-item',\n imports: [],\n templateUrl: './segmented-control-item.component.html',\n styleUrl: './segmented-control-item.component.scss',\n host: {\n role: 'tab',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[class.st-disabled]': 'effectiveDisabled()',\n '(click)': 'onClick()',\n '(keydown.space)': 'onKeydown($event)',\n '(keydown.enter)': 'onKeydown($event)'\n }\n})\nexport class StrataSegmentedControlItemComponent {\n text = input.required<string>();\n value = input<string | undefined>(undefined);\n effectiveValue = computed(() => this.value() ?? this.text());\n\n selected = model(false);\n\n disabled = input(false);\n groupDisabled = signal(false);\n effectiveDisabled = computed(() => this.disabled() || this.groupDisabled());\n\n selectionChanged = output();\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.effectiveDisabled() ? null : 0;\n }\n\n @HostBinding('attr.disabled')\n get disabledAttribute(): boolean | null {\n return this.effectiveDisabled() ? true : null;\n }\n\n onClick(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n\n onKeydown(event: Event): void {\n if (this.effectiveDisabled()) {\n return;\n }\n event.preventDefault();\n this.onClick();\n }\n}\n","{{ text() }}\n","import {\n AfterViewInit,\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataSegmentedControlItemComponent } from '../segmented-control-item/segmented-control-item.component';\n\nexport type SegmentedControlSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-segmented-control',\n imports: [],\n templateUrl: './segmented-control.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataSegmentedControlComponent),\n multi: true\n }\n ],\n host: {\n role: 'tablist',\n '[class.st-segmented-control-full-width]': 'fullWidth()',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataSegmentedControlComponent implements ControlValueAccessor, AfterViewInit {\n private elementRef = inject(ElementRef);\n private destroyRef = inject(DestroyRef);\n\n value = model<string>('');\n disabled = input(false, { transform: booleanAttribute });\n size = input<SegmentedControlSize>('md');\n fullWidth = input(false, { transform: booleanAttribute });\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: string) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n segmentItems = contentChildren(StrataSegmentedControlItemComponent);\n segmentItemsRefs = contentChildren(StrataSegmentedControlItemComponent, {\n read: ElementRef\n });\n\n selectedItem = signal<StrataSegmentedControlItemComponent | null>(null);\n selectedIndex = signal(0);\n\n offsets = signal<number[]>([]);\n itemWidths = signal<number[]>([]);\n tops = signal<number[]>([]);\n heights = signal<number[]>([]);\n\n offset = computed(() => this.offsets()[this.selectedIndex()] ?? 0);\n indicatorWidth = computed(() => this.itemWidths()[this.selectedIndex()] ?? 0);\n indicatorTop = computed(() => this.tops()[this.selectedIndex()] ?? 0);\n indicatorHeight = computed(() => this.heights()[this.selectedIndex()] ?? 0);\n\n constructor() {\n effect((onCleanup) => {\n const items = this.segmentItems();\n const subs = items.map((item) =>\n item.selectionChanged.subscribe(() => {\n this.selectItem(item);\n })\n );\n\n this.updateDimensions();\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n effect(() => {\n const isDisabled = this.effectiveDisabled();\n this.segmentItems().forEach((item) => item.groupDisabled.set(isDisabled));\n });\n\n effect(() => {\n const targetVal = this.value();\n if (!targetVal) return;\n const items = this.segmentItems();\n const match = items.find((item) => item.effectiveValue() === targetVal);\n if (match && match !== this.selectedItem()) {\n this.selectItem(match, false);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.segmentItems().length === 0) {\n return;\n }\n\n this.updateDimensions();\n\n const targetVal = this.value();\n const matchByVal = targetVal ? this.segmentItems().find((item) => item.effectiveValue() === targetVal) : undefined;\n const initiallySelected = matchByVal ?? this.segmentItems().find((item) => item.selected());\n\n if (!initiallySelected) {\n const firstItem = this.segmentItems()[0];\n firstItem.selected.set(true);\n this.selectItem(firstItem, false);\n } else {\n this.selectItem(initiallySelected, false);\n }\n\n const observer = new ResizeObserver(() => {\n this.updateDimensions();\n });\n observer.observe(this.elementRef.nativeElement);\n this.destroyRef.onDestroy(() => observer.disconnect());\n }\n\n selectItem(selectedItem: StrataSegmentedControlItemComponent, emitChange = true): void {\n if (this.effectiveDisabled()) return;\n\n this.segmentItems().forEach((item) => {\n item.selected.set(item === selectedItem);\n });\n\n this.selectedItem.set(selectedItem);\n const index = this.segmentItems().indexOf(selectedItem);\n this.selectedIndex.set(index >= 0 ? index : 0);\n\n const val = selectedItem.effectiveValue();\n this.value.set(val);\n\n if (emitChange) {\n this.onChange(val);\n this.onTouched();\n }\n }\n\n private updateDimensions(): void {\n const refs = this.segmentItemsRefs();\n if (!refs || refs.length === 0) return;\n\n const offsets = refs.map(ref => ref.nativeElement.offsetLeft);\n const widths = refs.map(ref => ref.nativeElement.offsetWidth);\n const tops = refs.map(ref => ref.nativeElement.offsetTop);\n const heights = refs.map(ref => ref.nativeElement.offsetHeight);\n\n this.offsets.set(offsets);\n this.itemWidths.set(widths);\n this.tops.set(tops);\n this.heights.set(heights);\n }\n\n writeValue(val: string | null | undefined): void {\n const safeVal = val != null ? String(val) : '';\n this.value.set(safeVal);\n const items = this.segmentItems();\n if (items.length > 0 && safeVal) {\n const match = items.find((item) => item.effectiveValue() === safeVal);\n if (match) {\n this.selectItem(match, false);\n }\n }\n }\n\n registerOnChange(fn: (val: string) => void): void {\n this.onChange = fn;\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","<ng-content select=\"st-segmented-control-item\"></ng-content>\n<div class=\"selection-item\" id=\"selection-indicator\" \n [style.left]=\"this.offset() + 'px'\"\n [style.top]=\"this.indicatorTop() + 'px'\"\n [style.width]=\"this.indicatorWidth() + 'px'\"\n [style.height]=\"this.indicatorHeight() + 'px'\">\n {{ this.selectedItem()?.text() }}\n</div>\n","import { Component } from '@angular/core';\nimport { StrataModalContainerComponent } from '../../../modal/components/modal-container/modal-container.component';\nimport { StrataNotificationContainerComponent } from '../../../notification/components/notification-container/notification-container.component';\n\n@Component({\n selector: 'st-shell',\n templateUrl: './shell.component.html',\n imports: [StrataModalContainerComponent, StrataNotificationContainerComponent]\n})\n\n\nexport class StrataShellComponent {}\n","<st-notification-container></st-notification-container>\n<st-modal-container></st-modal-container>\n<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'st-sidemenu',\n templateUrl: './sidemenu.component.html',\n styleUrls: ['./sidemenu.component.scss']\n})\nexport class StrataSidemenuComponent {}\n","<div class=\"st-sidemenu-header\">\n <ng-content select=\"[st-sidemenu-header]\"></ng-content>\n</div>\n<div class=\"st-sidemenu-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"st-sidemenu-footer\">\n <ng-content select=\"[st-sidemenu-footer]\"></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'st-sidemenu-section',\n templateUrl: './sidemenu-section.component.html',\n styleUrls: ['./sidemenu-section.component.scss']\n})\nexport class StrataSidemenuSectionComponent {\n label = input<string>();\n}\n","@if (label()) {\n<p class=\"st-sidemenu-section-header st-label\">{{ label() }}</p>\n}\n<div class=\"st-sidemenu-section-content\">\n <ng-content></ng-content>\n</div>","import { ComponentRef, Directive, ElementRef, HostBinding, OutputEmitterRef, Renderer2, ViewContainerRef, effect, inject, input, output } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Directive({\n selector: '[stSidemenuItem]'\n})\nexport class StrataSidemenuItemDirective {\n active = input<boolean>(false);\n secondaryActionIcon = input<string | undefined>(undefined);\n secondaryAction: OutputEmitterRef<MouseEvent> = output<MouseEvent>();\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly vcr = inject(ViewContainerRef);\n\n private secondaryButtonEl: HTMLElement | null = null;\n private iconComponentRef: ComponentRef<StrataIconComponent> | null = null;\n private unlistenClick: (() => void) | null = null;\n\n constructor() {\n effect(() => {\n if (this.active()) {\n this.elementRef.nativeElement.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n });\n\n effect(() => {\n const iconName = this.secondaryActionIcon();\n this.updateSecondaryButton(iconName);\n });\n }\n\n private updateSecondaryButton(iconName: string | undefined): void {\n if (!iconName) {\n this.removeSecondaryButton();\n return;\n }\n\n if (!this.secondaryButtonEl) {\n const btn = this.renderer.createElement('button') as HTMLElement;\n this.renderer.setAttribute(btn, 'type', 'button');\n this.renderer.addClass(btn, 'st-sidemenu-item-secondary-action');\n \n this.unlistenClick = this.renderer.listen(btn, 'click', (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.secondaryAction.emit(event);\n });\n\n this.iconComponentRef = this.vcr.createComponent(StrataIconComponent);\n this.iconComponentRef.setInput('name', iconName);\n this.iconComponentRef.setInput('size', 'sm');\n\n this.renderer.insertBefore(\n btn,\n this.iconComponentRef.location.nativeElement,\n null\n );\n\n const hostEl = this.elementRef.nativeElement as HTMLElement;\n this.renderer.appendChild(hostEl, btn);\n this.secondaryButtonEl = btn;\n } else if (this.iconComponentRef) {\n this.iconComponentRef.setInput('name', iconName);\n }\n }\n\n private removeSecondaryButton(): void {\n if (this.unlistenClick) {\n this.unlistenClick();\n this.unlistenClick = null;\n }\n if (this.iconComponentRef) {\n this.iconComponentRef.destroy();\n this.iconComponentRef = null;\n }\n if (this.secondaryButtonEl) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.secondaryButtonEl);\n this.secondaryButtonEl = null;\n }\n }\n\n @HostBinding('class.st-sidemenu-item')\n readonly isSidemenuItem = true;\n\n @HostBinding('class.selected')\n get isSelected(): boolean {\n return this.active();\n }\n}\n","import { AfterContentInit, Component, ContentChildren, DestroyRef, inject, input, QueryList, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { StrataSidemenuItemDirective } from '../../directives/sidemenu-item/sidemenu-item.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-sidemenu-item-group',\n imports: [StrataSidemenuItemDirective, StrataIconComponent, RouterLink, RouterLinkActive],\n templateUrl: './sidemenu-item-group.component.html',\n styleUrls: ['./sidemenu-item-group.component.scss']\n})\nexport class StrataSidemenuItemGroupComponent implements AfterContentInit {\n label = input.required<string>();\n routerLink = input<string | unknown[] | undefined>(undefined);\n href = input<string | undefined>(undefined);\n active = input<boolean | undefined>(undefined);\n\n\n expanded = signal<boolean>(false);\n hasActiveChild = signal<boolean>(false);\n\n private router = inject(Router, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n @ContentChildren(RouterLinkActive, { descendants: true })\n routerLinks!: QueryList<RouterLinkActive>;\n\n get isHeaderActive(): boolean {\n return this.active() ?? this.hasActiveChild();\n }\n\n get isNavigable(): boolean {\n return this.routerLink() !== undefined || this.href() !== undefined;\n }\n\n ngAfterContentInit() {\n setTimeout(() => {\n this.checkActiveState();\n });\n\n if (this.router) {\n this.router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n setTimeout(() => {\n this.checkActiveState();\n });\n });\n }\n }\n\n toggle(event?: MouseEvent) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.expanded.update((e) => !e);\n }\n\n private checkActiveState() {\n if (!this.routerLinks) return;\n\n const isActive = this.routerLinks.some((rla) => rla.isActive);\n this.hasActiveChild.set(isActive);\n \n if (isActive) {\n this.expanded.set(true);\n }\n }\n}\n\n","@if (routerLink()) {\n <a\n stSidemenuItem\n [routerLink]=\"routerLink()\"\n routerLinkActive=\"selected\"\n [active]=\"isHeaderActive\"\n secondaryActionIcon=\"arrow-down\"\n [class.st-sidemenu-item-group-expanded]=\"expanded()\"\n (secondaryAction)=\"toggle($event)\">\n <span class=\"st-sidemenu-item-group-label\">{{ label() }}</span>\n </a>\n} @else if (href()) {\n <a\n stSidemenuItem\n [href]=\"href()\"\n [active]=\"isHeaderActive\"\n secondaryActionIcon=\"arrow-down\"\n [class.st-sidemenu-item-group-expanded]=\"expanded()\"\n (secondaryAction)=\"toggle($event)\">\n <span class=\"st-sidemenu-item-group-label\">{{ label() }}</span>\n </a>\n} @else {\n <button stSidemenuItem type=\"button\" [active]=\"isHeaderActive\" (click)=\"toggle()\">\n <span class=\"st-sidemenu-item-group-label\">{{ label() }}</span>\n <st-icon name=\"arrow-down\" size=\"sm\" class=\"st-sidemenu-item-group-icon\" [class.expanded]=\"expanded()\"></st-icon>\n </button>\n}\n\n\n<div class=\"st-sidemenu-item-group-content\" [hidden]=\"!expanded()\">\n <ng-content></ng-content>\n</div>\n\n","import { Component, ElementRef, HostBinding, HostListener, inject, input, output, signal } from '@angular/core';\n\n@Component({\n selector: 'st-select-item',\n imports: [],\n template: '<ng-content></ng-content>',\n host: {\n class: 'single-select-item'\n}\n})\nexport class StrataSelectItemComponent {\n value = input.required<unknown>();\n \n text = input.required<string>();\n\n itemClicked = output<StrataSelectItemComponent>();\n\n hidden = signal(false);\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('style.display')\n get display(): string {\n return this.hidden() ? 'none' : 'block';\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this.itemClicked.emit(this);\n event.stopPropagation();\n }\n\n @HostListener('mouseover', ['$event'])\n onMouseOver(event: MouseEvent): void {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[stSelectTrigger]'\n})\nexport class StrataSelectTriggerDirective {}\n","import {\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataInputFieldComponent } from '../../../input-field/components/input-field/input-field.component';\nimport { StrataNativeInputRefDirective } from '../../../input-field/directives/native-input-ref.directive';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataSelectItemComponent } from '../select-item/select-item.component';\nimport { StrataSelectTriggerDirective } from '../../directives/select-trigger/select-trigger.directive';\n\nexport type SingleSelectSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-single-select',\n imports: [\n CommonModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataInputFieldComponent,\n FormsModule,\n StrataNativeInputRefDirective,\n StrataButtonDirective,\n ],\n templateUrl: './single-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataSingleSelectComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataSingleSelectComponent implements ControlValueAccessor {\n size = input<SingleSelectSize>('md');\n open = signal(false);\n\n placeholder = input<string>('Select');\n\n placement = input<Placement>('bottom-start');\n\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: unknown) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n fullWidth = input<boolean>(false);\n\n label = input<string>();\n\n name = input<string>();\n\n selected = model<unknown>();\n\n selectedItem = computed(() => {\n const val = this.selected();\n if (val === undefined) return undefined;\n return this.selectItems().find(item => item.value() === val);\n });\n\n searchable = input(false);\n\n searchQuery = model<string>();\n\n searchPlaceholder = input('Search');\n\n itemSelected = output<unknown>();\n\n selectItems = contentChildren(StrataSelectItemComponent);\n \n triggerTemplate = contentChild(StrataSelectTriggerDirective, { read: TemplateRef });\n\n private inputField = viewChild(StrataInputFieldComponent);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n effect((onCleanup) => {\n const items = this.selectItems();\n const subs = items.map((item) =>\n item.itemClicked.subscribe((clickedItem) => {\n this.onItemClick(clickedItem);\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n }\n\n onSearchChange(query: string | undefined): void {\n const q = query?.toLowerCase().trim() || '';\n const items = this.selectItems();\n \n for (const item of items) {\n if (!q) {\n item.hidden.set(false);\n } else {\n const match = item.text().toLowerCase().includes(q);\n item.hidden.set(!match);\n }\n }\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (this.open()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n onItemClick(item: StrataSelectItemComponent): void {\n this.hide();\n const val = item.value();\n this.selected.set(val);\n this.itemSelected.emit(val);\n this.onChange(val);\n this.onTouched();\n }\n\n writeValue(val: unknown): void {\n this.selected.set(val);\n }\n\n registerOnChange(fn: (val: unknown) => void): void {\n this.onChange = fn;\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 private show(): void {\n this.open.set(true);\n setTimeout(() => {\n this.inputField()?.focus();\n }, 10);\n }\n\n private hide(): void {\n this.open.set(false);\n }\n}\n","@if (label()) {\n<label class=\"st-label\" [for]=\"name()\"> {{ label() }}</label>\n}\n<div class=\"single-select-input\" [class.disabled]=\"effectiveDisabled()\" [id]=\"name()\" #singleSelectInput (click)=\"toggle($event)\" (keydown.space)=\"toggle($event)\" (keydown.enter)=\"toggle($event)\" (keydown.escape)=\"open.set(false)\" [attr.data-open]=\"open()\"\n [attr.tabindex]=\"effectiveDisabled() ? -1 : 0\" [stOverlay]=\"selector\" [overlayOpen]=\"open()\" [overlayPlacement]=\"placement()\">\n @if (selectedItem()) {\n @if (triggerTemplate()) {\n <ng-container *ngTemplateOutlet=\"triggerTemplate()!\"></ng-container>\n } @else {\n {{ selectedItem()!.text() }}\n }\n } @else {\n <span class=\"placeholder-text\">{{ placeholder() }}</span>\n }\n\n <st-icon name=\"expand-up-down\"></st-icon>\n</div>\n\n<ng-template #selector>\n <div class=\"single-select-selector\" #singleSelectSelector [class.full-width]=\"fullWidth()\">\n @if (searchable()) {\n <st-input-field>\n <input stInput #searchField type=\"text\" [value]=\"searchQuery() || ''\" (input)=\"searchQuery.set($any($event.target).value); onSearchChange(searchQuery())\" [placeholder]=\"searchPlaceholder()\" />\n <button stButton variant=\"ghost\" [class.visible]=\"searchQuery() !== undefined && searchQuery()!.length > 0\" suffix\n size=\"sm\" (click)=\"searchQuery.set(undefined); onSearchChange(undefined)\">\n x\n </button>\n </st-input-field>\n }\n <div class=\"single-select-items-container\">\n <ng-content select=\"st-select-item\"></ng-content>\n </div>\n </div>\n</ng-template>","import { Component, computed, input, signal } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { IconSize } from '../../../icon/models/icon.model';\nimport { StepState, StepperOrientation, StepperSize } from '../../stepper.model';\n\n@Component({\n selector: 'st-step',\n imports: [StrataIconComponent],\n templateUrl: './step.component.html',\n host: {\n 'class': 'st-step',\n '[class.st-step-first]': 'isFirst() && !isLast()',\n '[class.st-step-last]': 'isLast() && !isFirst()',\n '[class.st-state-completed]': 'effectiveState() === \"completed\"',\n '[class.st-state-current]': 'effectiveState() === \"current\"',\n '[class.st-state-future]': 'effectiveState() === \"future\"',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-orientation-horizontal]': 'orientation() === \"horizontal\"',\n '[class.st-orientation-vertical]': 'orientation() === \"vertical\"',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[attr.aria-current]': 'effectiveState() === \"current\" ? \"step\" : null',\n 'role': 'listitem'\n }\n})\nexport class StrataStepComponent {\n label = input.required<string>();\n description = input<string | undefined>(undefined);\n icon = input<string | undefined>(undefined);\n state = input<StepState | undefined>(undefined);\n keepIconOnCompleted = input<boolean>(false);\n\n index = signal<number>(0);\n isFirst = signal<boolean>(false);\n isLast = signal<boolean>(false);\n orientation = signal<StepperOrientation>('horizontal');\n size = signal<StepperSize>('md');\n showCheckmarkOnCompleted = signal<boolean>(true);\n computedState = signal<StepState>('future');\n\n effectiveState = computed(() => this.state() ?? this.computedState());\n\n iconSize = computed<IconSize>(() => (this.size() === 'sm' ? 'xs' : 'sm'));\n}\n","<div class=\"st-step-wrapper\">\n @if (orientation() === 'horizontal') {\n <div class=\"st-step-top\">\n @if (!isFirst()) {\n <div\n class=\"st-step-line st-step-line-before\"\n [class.st-line-active]=\"effectiveState() === 'completed' || effectiveState() === 'current'\">\n </div>\n }\n\n <div class=\"st-step-indicator\">\n @if (effectiveState() === 'completed' && showCheckmarkOnCompleted() && !keepIconOnCompleted()) {\n <st-icon name=\"check\" [size]=\"iconSize()\"></st-icon>\n } @else if (icon()) {\n <st-icon [name]=\"icon()!\" [size]=\"iconSize()\"></st-icon>\n } @else {\n <span class=\"st-step-number\">{{ index() + 1 }}</span>\n }\n </div>\n\n @if (!isLast()) {\n <div\n class=\"st-step-line st-step-line-after\"\n [class.st-line-active]=\"effectiveState() === 'completed'\">\n </div>\n }\n </div>\n\n <div class=\"st-step-content\">\n <span class=\"st-step-title\">{{ label() }}</span>\n @if (description()) {\n <span class=\"st-step-description\">{{ description() }}</span>\n }\n <ng-content></ng-content>\n </div>\n } @else {\n <div class=\"st-step-vertical-left\">\n <div class=\"st-step-indicator\">\n @if (effectiveState() === 'completed' && showCheckmarkOnCompleted() && !keepIconOnCompleted()) {\n <st-icon name=\"check\" [size]=\"iconSize()\"></st-icon>\n } @else if (icon()) {\n <st-icon [name]=\"icon()!\" [size]=\"iconSize()\"></st-icon>\n } @else {\n <span class=\"st-step-number\">{{ index() + 1 }}</span>\n }\n </div>\n @if (!isLast()) {\n <div class=\"st-step-vertical-line\" [class.st-line-active]=\"effectiveState() === 'completed'\"></div>\n }\n </div>\n\n <div class=\"st-step-content\">\n <div class=\"st-step-header\">\n <span class=\"st-step-title\">{{ label() }}</span>\n @if (description()) {\n <span class=\"st-step-description\">{{ description() }}</span>\n }\n </div>\n <div class=\"st-step-body\">\n <ng-content></ng-content>\n </div>\n </div>\n }\n</div>\n","import { Component, computed, contentChildren, effect, inject, input, model } from '@angular/core';\nimport { StrataStepComponent } from '../step/step.component';\nimport { StepperOrientation, StepperSize, StepState } from '../../stepper.model';\nimport { StrataThemeDirective, Theme } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-stepper',\n imports: [],\n templateUrl: './stepper.component.html',\n host: {\n 'class': 'st-stepper',\n '[class.st-orientation-horizontal]': 'orientation() === \"horizontal\"',\n '[class.st-orientation-vertical]': 'orientation() === \"vertical\"',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-theme-brand]': 'activeTheme() === \"brand\"',\n '[class.st-theme-default]': 'activeTheme() === \"default\"',\n '[class.st-theme-success]': 'activeTheme() === \"success\"',\n '[class.st-theme-warning]': 'activeTheme() === \"warning\"',\n '[class.st-theme-danger]': 'activeTheme() === \"danger\"',\n '[class.st-theme-info]': 'activeTheme() === \"info\"',\n 'role': 'region',\n '[attr.aria-label]': '\"Progress\"'\n }\n})\nexport class StrataStepperComponent {\n private themeDirective = inject(StrataThemeDirective, { optional: true, self: true });\n\n currentStep = model<number>(0);\n orientation = input<StepperOrientation>('horizontal');\n size = input<StepperSize>('md');\n theme = input<Theme | undefined>(undefined);\n showCheckmarkOnCompleted = input<boolean>(true);\n\n readonly activeTheme = computed<Theme>(() => {\n return this.theme() ?? this.themeDirective?.stTheme() ?? 'default';\n });\n\n steps = contentChildren(StrataStepComponent);\n\n constructor() {\n effect(() => {\n const stepItems = this.steps();\n const current = this.currentStep();\n const currentOrientation = this.orientation();\n const currentSize = this.size();\n const showCheckmark = this.showCheckmarkOnCompleted();\n\n stepItems.forEach((step, index) => {\n step.index.set(index);\n step.isFirst.set(index === 0);\n step.isLast.set(index === stepItems.length - 1);\n step.orientation.set(currentOrientation);\n step.size.set(currentSize);\n step.showCheckmarkOnCompleted.set(showCheckmark);\n\n let derivedState: StepState = 'future';\n if (index < current) {\n derivedState = 'completed';\n } else if (index === current) {\n derivedState = 'current';\n }\n\n step.computedState.set(derivedState);\n });\n });\n }\n\n next(): void {\n const total = this.steps().length;\n if (this.currentStep() < total - 1) {\n this.currentStep.update((curr) => curr + 1);\n }\n }\n\n previous(): void {\n if (this.currentStep() > 0) {\n this.currentStep.update((curr) => curr - 1);\n }\n }\n\n reset(): void {\n this.currentStep.set(0);\n }\n\n goTo(index: number): void {\n const total = this.steps().length;\n if (index >= 0 && (total === 0 || index < total)) {\n this.currentStep.set(index);\n }\n }\n}\n","<ol class=\"st-stepper-list\">\n <ng-content></ng-content>\n</ol>\n","import { Component, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-tab-item',\n imports: [],\n templateUrl: './tab-item.component.html',\n host: {\n 'role': 'tab',\n '(click)': 'onClick()'\n}\n})\nexport class StrataTabItemComponent {\n /**\n * The text label for the tab.\n * Can also be provided via content projection.\n */\n text = input<string>();\n\n /**\n * Whether the tab is currently selected.\n */\n selected = model(false);\n\n /**\n * Whether the tab is disabled.\n */\n disabled = input(false);\n\n /**\n * Emitted when the tab is clicked.\n */\n selectionChanged = output<void>();\n\n @HostBinding('attr.aria-selected')\n get isSelected(): boolean {\n return this.selected();\n }\n\n @HostBinding('attr.aria-disabled')\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.disabled() ? null : 0;\n }\n\n @HostBinding('class.active')\n get activeClass(): boolean {\n return this.selected();\n }\n\n @HostBinding('class.disabled')\n get disabledClass(): boolean {\n return this.disabled();\n }\n\n onClick(): void {\n if (this.disabled()) {\n return;\n }\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n}\n","@if (text()) {\n {{ text() }}\n} @else {\n <ng-content></ng-content>\n}\n","import {\n AfterViewInit, Component, contentChildren, effect, ElementRef, signal, viewChild\n} from '@angular/core';\nimport { StrataTabItemComponent } from '../tab-item/tab-item.component';\n\n@Component({\n selector: 'st-tabs',\n imports: [],\n templateUrl: './tabs.component.html',\n host: {\n 'class': 'st-tabs-host'\n}\n})\nexport class StrataTabsComponent implements AfterViewInit {\n tabItems = contentChildren(StrataTabItemComponent, { descendants: true });\n tabItemsRefs = contentChildren(StrataTabItemComponent, {\n descendants: true,\n read: ElementRef\n});\n\n indicator = viewChild<ElementRef>('indicator');\n\n selectedTab = signal<StrataTabItemComponent | null>(null);\n selectedIndex = signal<number>(0);\n\n private resizeObserver?: ResizeObserver;\n\n constructor() {\n // Coordinate child selection\n effect((onCleanup) => {\n const items = this.tabItems();\n const subs = items.map((item, index) =>\n item.selectionChanged.subscribe(() => {\n this.selectTab(item, index);\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n // Handle responsive indicator updates\n effect((onCleanup) => {\n const indicatorEl = this.indicator()?.nativeElement;\n const refs = this.tabItemsRefs();\n const index = this.selectedIndex();\n\n if (!indicatorEl || refs.length === 0 || index < 0) return;\n\n const activeRef = refs[index].nativeElement;\n\n // Update immediately\n this.updateIndicator(activeRef, indicatorEl);\n\n // And on every resize of the active tab\n this.resizeObserver = new ResizeObserver(() => {\n this.updateIndicator(activeRef, indicatorEl);\n });\n this.resizeObserver.observe(activeRef);\n\n onCleanup(() => this.resizeObserver?.disconnect());\n });\n }\n\n ngAfterViewInit(): void {\n // Set initial selection\n const items = this.tabItems();\n if (items.length > 0) {\n const initiallySelected = items.find((item) => item.selected());\n if (initiallySelected) {\n this.selectTab(initiallySelected, items.indexOf(initiallySelected));\n } else {\n this.selectTab(items[0], 0);\n }\n }\n }\n\n private updateIndicator(activeElement: HTMLElement, indicatorElement: HTMLElement): void {\n indicatorElement.style.width = `${activeElement.offsetWidth}px`;\n indicatorElement.style.left = `${activeElement.offsetLeft}px`;\n }\n\n private selectTab(tab: StrataTabItemComponent, index: number): void {\n // Unselect others\n this.tabItems().forEach((item) => {\n if (item !== tab) {\n item.selected.set(false);\n }\n });\n\n tab.selected.set(true);\n this.selectedTab.set(tab);\n this.selectedIndex.set(index);\n }\n}\n","<div class=\"tabs-container\" role=\"tablist\">\n <ng-content></ng-content>\n <div #indicator class=\"selection-indicator\"></div>\n</div>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-tag',\n imports: [],\n template: '<ng-content></ng-content>'\n})\nexport class StrataTagComponent {\n size = input<TagSize>('md');\n\n @HostBinding('class')\n get class() {\n return this.size();\n }\n}\n\nexport type TagSize = 'sm' | 'md' | 'lg';\n","/*\n * Public API Surface of ngx-strata\n */\n\nexport * from './lib/directives/activatable.directive';\nexport * from './lib/directives/tooltip.directive';\nexport * from './lib/services/darkmode/darkmode.service';\nexport * from './lib/services/hotkey/hotkey.service';\n\n// App\nexport * from './lib/app/provider/provide-icons';\nexport * from './lib/app/provider/provide-strata';\nexport * from './lib/shared/platform';\n\n// Pipes\nexport * from './lib/pipes/capitalize.pipe';\n\n// Features\nexport * from './lib/features/accordion';\nexport * from './lib/features/action-menu';\nexport * from './lib/features/alert';\nexport * from './lib/features/avatar';\nexport * from './lib/features/badge';\nexport * from './lib/features/breadcrumb';\nexport * from './lib/features/button';\nexport * from './lib/features/card';\nexport * from './lib/features/checkbox';\nexport * from './lib/features/divider';\nexport * from './lib/features/file-upload';\nexport * from './lib/features/icon';\nexport * from './lib/features/image-cropper';\nexport * from './lib/features/input-field';\nexport * from './lib/features/item';\nexport * from './lib/features/kbd';\nexport * from './lib/features/message-state';\nexport * from './lib/features/modal';\nexport * from './lib/features/notification';\nexport * from './lib/features/number-display';\nexport * from './lib/features/otp';\nexport * from './lib/features/overlay';\nexport * from './lib/features/pagination';\nexport * from './lib/features/progress';\nexport * from './lib/features/radio';\nexport * from './lib/features/segmented-control';\nexport * from './lib/features/shell';\nexport * from './lib/features/sidemenu';\nexport * from './lib/features/single-select';\nexport * from './lib/features/slider';\nexport * from './lib/features/spinner';\nexport * from './lib/features/stepper';\nexport * from './lib/features/tabs';\nexport * from './lib/features/tag';\nexport * from './lib/features/text-stack';\nexport * from './lib/features/theming';\nexport * from './lib/features/toggle';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StrataActivatableDirective","DOCUMENT","i1"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-strata.mjs","sources":["../../../projects/ngx-strata/src/lib/features/icon/loader/icon-loader.interface.ts","../../../projects/ngx-strata/src/lib/features/icon/services/icon-registry/icon-registry.service.ts","../../../projects/ngx-strata/src/lib/icons/icon-configs.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-icons.ts","../../../projects/ngx-strata/src/lib/features/icon/services/http-icon-loader/http-icon-loader.service.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-icon-loader.ts","../../../projects/ngx-strata/src/lib/features/icon/loader/icon-registry.interface.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-icon-registry.ts","../../../projects/ngx-strata/src/lib/services/darkmode/darkmode.service.ts","../../../projects/ngx-strata/src/lib/shared/platform.ts","../../../projects/ngx-strata/src/lib/app/provider/provide-strata.ts","../../../projects/ngx-strata/src/lib/directives/activatable.directive.ts","../../../projects/ngx-strata/src/lib/directives/tooltip.directive.ts","../../../projects/ngx-strata/src/lib/services/hotkey/hotkey.service.ts","../../../projects/ngx-strata/src/lib/pipes/capitalize.pipe.ts","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-item/accordion-item.component.ts","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-item/accordion-item.component.html","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-group/accordion-group.component.ts","../../../projects/ngx-strata/src/lib/features/accordion/components/accordion-group/accordion-group.component.html","../../../projects/ngx-strata/src/lib/features/checkbox/components/checkbox/checkbox.component.ts","../../../projects/ngx-strata/src/lib/features/checkbox/components/checkbox/checkbox.component.html","../../../projects/ngx-strata/src/lib/features/toggle/components/toggle/toggle.component.ts","../../../projects/ngx-strata/src/lib/features/toggle/components/toggle/toggle.component.html","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu-item/action-menu-item.component.ts","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu-item/action-menu-item.component.html","../../../projects/ngx-strata/src/lib/features/button/directives/button/button.directive.ts","../../../projects/ngx-strata/src/lib/features/card/components/card/card.component.ts","../../../projects/ngx-strata/src/lib/features/card/components/card/card.component.html","../../../projects/ngx-strata/src/lib/features/icon/components/icon/icon.component.ts","../../../projects/ngx-strata/src/lib/features/icon/components/icon/icon.component.html","../../../projects/ngx-strata/src/lib/features/overlay/directives/overlay.directive.ts","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu/action-menu.component.ts","../../../projects/ngx-strata/src/lib/features/action-menu/components/action-menu/action-menu.component.html","../../../projects/ngx-strata/src/lib/features/text-stack/components/text-stack/text-stack.component.ts","../../../projects/ngx-strata/src/lib/features/text-stack/components/text-stack/text-stack.component.html","../../../projects/ngx-strata/src/lib/features/alert/components/alert/alert.component.ts","../../../projects/ngx-strata/src/lib/features/alert/components/alert/alert.component.html","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar-stack/avatar-stack.component.ts","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar-stack/avatar-stack.component.html","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar/avatar.component.ts","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar/avatar.component.html","../../../projects/ngx-strata/src/lib/features/badge/components/badge/badge.component.ts","../../../projects/ngx-strata/src/lib/features/badge/components/badge/badge.component.html","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.html","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb/breadcrumb.component.ts","../../../projects/ngx-strata/src/lib/features/breadcrumb/components/breadcrumb/breadcrumb.component.html","../../../projects/ngx-strata/src/lib/features/button/components/button-group/button-group.component.ts","../../../projects/ngx-strata/src/lib/features/button/components/button-group/button-group.component.html","../../../projects/ngx-strata/src/lib/features/divider/components/divider/divider.component.ts","../../../projects/ngx-strata/src/lib/features/divider/components/divider/divider.component.html","../../../projects/ngx-strata/src/lib/features/file-upload/components/file-upload/file-upload.component.ts","../../../projects/ngx-strata/src/lib/features/file-upload/components/file-upload/file-upload.component.html","../../../projects/ngx-strata/src/lib/features/slider/components/slider/slider.component.ts","../../../projects/ngx-strata/src/lib/features/slider/components/slider/slider.component.html","../../../projects/ngx-strata/src/lib/features/image-cropper/components/image-cropper/image-cropper.component.ts","../../../projects/ngx-strata/src/lib/features/image-cropper/components/image-cropper/image-cropper.component.html","../../../projects/ngx-strata/src/lib/features/input-field/directives/native-input-ref.directive.ts","../../../projects/ngx-strata/src/lib/features/input-field/components/input-field/input-field.component.ts","../../../projects/ngx-strata/src/lib/features/input-field/components/input-field/input-field.component.html","../../../projects/ngx-strata/src/lib/features/input-field/directives/auto-resize.directive.ts","../../../projects/ngx-strata/src/lib/features/radio/components/radio/radio.component.ts","../../../projects/ngx-strata/src/lib/features/radio/components/radio/radio.component.html","../../../projects/ngx-strata/src/lib/features/item/components/item/item.component.ts","../../../projects/ngx-strata/src/lib/features/item/components/item/item.component.html","../../../projects/ngx-strata/src/lib/features/item/components/item-list/item-list.component.ts","../../../projects/ngx-strata/src/lib/features/item/components/item-list/item-list.component.html","../../../projects/ngx-strata/src/lib/features/kbd/components/kbd/kbd.component.ts","../../../projects/ngx-strata/src/lib/features/kbd/components/kbd/kbd.component.html","../../../projects/ngx-strata/src/lib/features/theming/directives/theme.directive.ts","../../../projects/ngx-strata/src/lib/features/message-state/components/message-state/message-state.component.ts","../../../projects/ngx-strata/src/lib/features/message-state/components/message-state/message-state.component.html","../../../projects/ngx-strata/src/lib/features/modal/services/modal.service.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.html","../../../projects/ngx-strata/src/lib/features/modal/modal.model.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal-footer/modal-footer.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-footer/modal-footer.component.html","../../../projects/ngx-strata/src/lib/features/notification/notification.model.ts","../../../projects/ngx-strata/src/lib/features/notification/services/notification.service.ts","../../../projects/ngx-strata/src/lib/features/notification/components/notification/notification.component.ts","../../../projects/ngx-strata/src/lib/features/notification/components/notification/notification.component.html","../../../projects/ngx-strata/src/lib/features/notification/components/notification-container/notification-container.component.ts","../../../projects/ngx-strata/src/lib/features/notification/components/notification-container/notification-container.component.html","../../../projects/ngx-strata/src/lib/features/number-display/components/number-display/number-display.component.ts","../../../projects/ngx-strata/src/lib/features/number-display/components/number-display/number-display.component.html","../../../projects/ngx-strata/src/lib/features/spinner/components/spinner/spinner.component.ts","../../../projects/ngx-strata/src/lib/features/spinner/components/spinner/spinner.component.html","../../../projects/ngx-strata/src/lib/features/otp/components/otp/otp.component.ts","../../../projects/ngx-strata/src/lib/features/otp/components/otp/otp.component.html","../../../projects/ngx-strata/src/lib/features/pagination/components/pagination/pagination.component.ts","../../../projects/ngx-strata/src/lib/features/pagination/components/pagination/pagination.component.html","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.html","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.html","../../../projects/ngx-strata/src/lib/features/radio/components/radio-group/radio-group.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.html","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.html","../../../projects/ngx-strata/src/lib/features/shell/components/shell/shell.component.ts","../../../projects/ngx-strata/src/lib/features/shell/components/shell/shell.component.html","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu/sidemenu.component.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu/sidemenu.component.html","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-section/sidemenu-section.component.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-section/sidemenu-section.component.html","../../../projects/ngx-strata/src/lib/features/sidemenu/directives/sidemenu-item/sidemenu-item.directive.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-item-group/sidemenu-item-group.component.ts","../../../projects/ngx-strata/src/lib/features/sidemenu/components/sidemenu-item-group/sidemenu-item-group.component.html","../../../projects/ngx-strata/src/lib/features/single-select/components/select-item/select-item.component.ts","../../../projects/ngx-strata/src/lib/features/single-select/directives/select-trigger/select-trigger.directive.ts","../../../projects/ngx-strata/src/lib/features/single-select/components/single-select/single-select.component.ts","../../../projects/ngx-strata/src/lib/features/single-select/components/single-select/single-select.component.html","../../../projects/ngx-strata/src/lib/features/stepper/components/step/step.component.ts","../../../projects/ngx-strata/src/lib/features/stepper/components/step/step.component.html","../../../projects/ngx-strata/src/lib/features/stepper/components/stepper/stepper.component.ts","../../../projects/ngx-strata/src/lib/features/stepper/components/stepper/stepper.component.html","../../../projects/ngx-strata/src/lib/features/tabs/components/tab-item/tab-item.component.ts","../../../projects/ngx-strata/src/lib/features/tabs/components/tab-item/tab-item.component.html","../../../projects/ngx-strata/src/lib/features/tabs/components/tabs/tabs.component.ts","../../../projects/ngx-strata/src/lib/features/tabs/components/tabs/tabs.component.html","../../../projects/ngx-strata/src/lib/features/tag/components/tag/tag.component.ts","../../../projects/ngx-strata/src/public-api.ts","../../../projects/ngx-strata/src/ngx-strata.ts"],"sourcesContent":["import { SafeHtml } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\n\nexport abstract class IconLoader {\n abstract loadSvg(url: string): Observable<SafeHtml>;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Observable, tap } from 'rxjs';\nimport { IconLoader } from '../../loader/icon-loader.interface';\nimport { IconConfig } from '../../models/icon.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconRegistryService {\n private iconLoader = inject(IconLoader);\n\n icons: Record<string, string> = {} as Record<string, string>;\n\n svgs: Record<string, SafeHtml> = {} as Record<string, SafeHtml>;\n\n registerIcons(iconConfigs: IconConfig[]): void {\n iconConfigs.forEach((config) => this.registerIcon(config));\n }\n\n registerIcon(iconConfig: IconConfig): void {\n if (this.icons[iconConfig.name]) {\n console.error(\n `Icon with name ${iconConfig.name} already registered with Strata. Please rename or stop registering one of the icons.`,\n );\n }\n\n this.icons[iconConfig.name] = iconConfig.url;\n }\n\n getIconUrl(name: string): string | null {\n const iconUrl = this.icons[name];\n\n return iconUrl ? iconUrl : null;\n }\n\n getIcon(name: string): Observable<SafeHtml> {\n if (this.svgs[name]) {\n return new Observable<SafeHtml>((subscriber) => {\n subscriber.next(this.svgs[name]);\n });\n }\n\n const url = this.getIconUrl(name);\n if (!url) {\n throw new Error(`Icon '${name}' not registered.`);\n }\n return this.iconLoader.loadSvg(url).pipe(\n tap((svg) => {\n this.svgs[name] = svg;\n }),\n );\n }\n}\n","import { IconConfig } from '../features/icon/models/icon.model';\n\nexport const baseIconConfigs: IconConfig[] = [\n {\n name: 'question',\n url: 'assets/icons/question.svg'\n},\n {\n name: 'arrow-right',\n url: 'assets/icons/arrow-right.svg'\n},\n {\n name: 'arrow-left',\n url: 'assets/icons/arrow-left.svg'\n},\n {\n name: 'arrow-up',\n url: 'assets/icons/arrow-up.svg'\n},\n {\n name: 'arrow-down',\n url: 'assets/icons/arrow-down.svg'\n},\n {\n name: 'close',\n url: 'assets/icons/close.svg'\n},\n {\n name: 'expand-up-down',\n url: 'assets/icons/expand-up-down.svg'\n},\n {\n name: 'clipboard',\n url: 'assets/icons/clipboard.svg'\n},\n {\n name: 'more',\n url: 'assets/icons/more.svg'\n },\n {\n name: 'check',\n url: 'assets/icons/check.svg'\n },\n];\n","import {\n EnvironmentProviders, inject, makeEnvironmentProviders, provideAppInitializer, Provider\n} from '@angular/core';\nimport { IconConfig } from '../../features/icon/models/icon.model';\nimport { IconRegistryService } from '../../features/icon/services/icon-registry/icon-registry.service';\nimport { baseIconConfigs } from '../../icons/icon-configs';\n\nexport const provideBaseIcons = (): EnvironmentProviders => {\n return provideIcons(baseIconConfigs);\n};\n\nexport const provideIcons = (\n iconConfigs: IconConfig[],\n): EnvironmentProviders => {\n const providers: (Provider | EnvironmentProviders)[] = [\n provideAppInitializer(() => {\n const initializerFn = ((service: IconRegistryService) =>\n function () {\n return service.registerIcons(iconConfigs);\n })(inject(IconRegistryService));\n return initializerFn();\n }),\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable } from 'rxjs';\nimport { IconLoader } from '../../loader/icon-loader.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class HttpIconLoader implements IconLoader {\n httpClient = inject(HttpClient);\n sanitizer = inject(DomSanitizer);\n\n loadSvg(url: string): Observable<SafeHtml> {\n return this.httpClient\n .get(url, { responseType: 'text' })\n .pipe(map((raw) => this.sanitizer.bypassSecurityTrustHtml(raw)));\n }\n}\n","import { Provider } from '@angular/core';\nimport { IconLoader } from '../../features/icon/loader/icon-loader.interface';\nimport { HttpIconLoader } from '../../features/icon/services/http-icon-loader/http-icon-loader.service';\n\nexport function provideIconLoader(): Provider {\n return {\n provide: IconLoader,\n useExisting: HttpIconLoader\n};\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { Observable } from 'rxjs';\n\nexport abstract class IconRegistry {\n abstract getIcon(name: string): Observable<SafeHtml>;\n}\n","import { Provider } from '@angular/core';\nimport { IconRegistry } from '../../features/icon/loader/icon-registry.interface';\nimport { IconRegistryService } from '../../features/icon/services/icon-registry/icon-registry.service';\n\nexport function provideIconRegistry(): Provider {\n return {\n provide: IconRegistry,\n useExisting: IconRegistryService\n};\n}\n","import { computed, DOCUMENT, effect, inject, Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DarkmodeService {\n private readonly STORAGE_KEY = 'strata-darkmode';\n\n private document = inject(DOCUMENT);\n\n private osPrefersDark!: boolean;\n\n private setting = signal<DarkmodeSetting>('SYSTEM');\n private darkmode = signal<CurrentDarkmode>('LIGHT');\n\n public currentMode = computed(() => this.darkmode());\n\n public currentSetting = computed(() => this.setting());\n\n constructor() {\n effect(() => this.updateDarkmodeTagOnDOM(this.darkmode()));\n this.setting.set(this.getSettingFromStorage());\n this.osPrefersDark = this.getSystemDarkmodePreference();\n\n this.calculateDarkmode();\n this.saveSettingToStorage(this.setting());\n\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => {\n this.osPrefersDark = event.matches;\n if (this.setting() === 'SYSTEM') {\n this.calculateDarkmode();\n }\n });\n }\n\n public setDarkmodeSetting(newSetting: DarkmodeSetting): CurrentDarkmode {\n this.saveSettingToStorage(newSetting);\n\n return this.calculateDarkmode();\n }\n\n private getSystemDarkmodePreference(): boolean {\n return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\n }\n\n private calculateDarkmode(): CurrentDarkmode {\n if (this.setting() === 'SYSTEM') {\n this.darkmode.set(this.osPrefersDark ? 'DARK' : 'LIGHT');\n } else {\n this.darkmode.set(this.setting() === 'DARK' ? 'DARK' : 'LIGHT');\n }\n\n return this.darkmode();\n }\n\n private updateDarkmodeTagOnDOM(mode: CurrentDarkmode): void {\n const documentNode = this.document.getElementsByTagName('html')[0];\n if (mode === 'DARK') {\n documentNode.setAttribute('data-theme', 'dark');\n } else {\n documentNode.setAttribute('data-theme', 'light');\n }\n }\n\n private saveSettingToStorage(newSetting: DarkmodeSetting): void {\n localStorage.setItem(this.STORAGE_KEY, newSetting);\n this.setting.set(newSetting);\n }\n\n private getSettingFromStorage(): DarkmodeSetting {\n return (localStorage.getItem(this.STORAGE_KEY) as DarkmodeSetting) ?? 'SYSTEM';\n }\n}\n\nexport type DarkmodeSetting = 'DARK' | 'LIGHT' | 'SYSTEM';\nexport type CurrentDarkmode = 'LIGHT' | 'DARK';\n","export type StrataPlatform = 'auto' | 'mac' | 'windows' | 'linux';\n\nexport function isApplePlatform(): boolean {\n if (typeof navigator === 'undefined') {\n return false;\n }\n const nav = navigator as Navigator & {\n userAgentData?: { platform?: string };\n };\n if (nav.userAgentData?.platform) {\n return /mac|ios|ip(hone|od|ad)/i.test(nav.userAgentData.platform);\n }\n const ua = nav.userAgent || '';\n const platform = (nav as { platform?: string }).platform || '';\n return /macintosh|mac os x|iphone|ipad|ipod/i.test(ua) || /mac|iphone|ipad|ipod/i.test(platform);\n}\n\nexport function resolveIsApple(platform?: StrataPlatform): boolean {\n if (platform === 'mac') {\n return true;\n }\n if (platform === 'windows' || platform === 'linux') {\n return false;\n }\n return isApplePlatform();\n}\n","import { provideBaseIcons } from './provide-icons';\nimport { Provider, InjectionToken, EnvironmentProviders, provideEnvironmentInitializer, inject } from '@angular/core';\nimport { provideIconLoader } from './provide-icon-loader';\nimport { provideIconRegistry } from './provide-icon-registry';\nimport { DarkmodeService } from '../../services/darkmode/darkmode.service';\nimport { resolveIsApple, StrataPlatform } from '../../shared/platform';\n\nexport function getDefaultShortcutLabels(\n platform?: StrataPlatform,\n crossPlatformHotkeys = true\n): { meta: string; ctrl: string; shift: string; alt: string } {\n const isApple = resolveIsApple(platform);\n return {\n meta: isApple ? '⌘' : crossPlatformHotkeys ? 'Ctrl' : 'Win',\n ctrl: 'Ctrl',\n shift: 'Shift',\n alt: 'Alt'\n };\n}\n\nconst DEFAULT_CONFIG: Omit<StrataConfig, 'shortcutLabels'> = {\n includeBaseIcons: true,\n tooltipDelayMs: 500,\n crossPlatformHotkeys: true,\n overlayViewportBuffer: 16,\n activationKeys: [' ', 'Space', 'Spacebar', 'Enter', 'NumpadEnter'],\n platform: 'auto'\n};\n\nexport function provideStrata(\n config: Partial<StrataConfig> = {},\n): (Provider | EnvironmentProviders)[] {\n const crossPlatformHotkeys = config.crossPlatformHotkeys ?? DEFAULT_CONFIG.crossPlatformHotkeys;\n const platform = config.platform ?? DEFAULT_CONFIG.platform;\n const defaultLabels = getDefaultShortcutLabels(platform, crossPlatformHotkeys);\n\n const mergedConfig: StrataConfig = {\n ...DEFAULT_CONFIG,\n ...config,\n shortcutLabels: {\n ...defaultLabels,\n ...config.shortcutLabels\n }\n };\n\n const providers: (Provider | EnvironmentProviders)[] = [\n provideIconLoader(),\n provideIconRegistry(),\n {\n provide: STRATA_CONFIG,\n useValue: mergedConfig\n },\n provideEnvironmentInitializer(() => inject(DarkmodeService))\n ];\n\n if (mergedConfig.includeBaseIcons) {\n providers.push(provideBaseIcons());\n }\n\n return providers;\n}\n\nexport interface StrataConfig {\n includeBaseIcons: boolean;\n tooltipDelayMs: number;\n crossPlatformHotkeys: boolean;\n shortcutLabels?: {\n meta?: string;\n ctrl?: string;\n shift?: string;\n alt?: string;\n };\n overlayViewportBuffer?: number;\n activationKeys?: string[];\n platform?: StrataPlatform;\n}\n\nexport const STRATA_CONFIG = new InjectionToken<StrataConfig>('STRATA_CONFIG');\n","import { Directive, input, output, computed, model, inject, ElementRef } from '@angular/core';\nimport { STRATA_CONFIG } from '../app/provider/provide-strata';\n\nconst DEFAULT_ACTIVATION_KEYS = [' ', 'Space', 'Spacebar', 'Enter', 'NumpadEnter'];\n\n@Directive({\n selector: '[stActivatable]',\n host: {\n '(keydown)': 'onKeyDown($event)',\n '[attr.tabindex]': 'isFocusable() ? \"0\" : null'\n}\n})\nexport class StrataActivatableDirective {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _config = inject(STRATA_CONFIG, { optional: true });\n\n disabled = input(false);\n\n interactable = model(true);\n\n activated = output<Event>();\n\n isFocusable = computed(() => this.interactable() && !this.disabled());\n\n onKeyDown(event: KeyboardEvent): void {\n if (!this.isFocusable()) {\n return;\n }\n\n const activationKeys = this._config?.activationKeys ?? DEFAULT_ACTIVATION_KEYS;\n const isActivationKey = activationKeys.includes(event.key) || activationKeys.includes(event.code);\n\n if (isActivationKey) {\n event.preventDefault();\n this.activated.emit(event);\n this._elementRef.nativeElement.click();\n }\n }\n}\n","import { AfterContentInit, DOCUMENT, Directive, ElementRef, OnDestroy, OnInit, Renderer2, inject, input } from '@angular/core';\nimport { Placement, arrow, autoUpdate, computePosition, offset } from '@floating-ui/dom';\nimport { STRATA_CONFIG } from '../app/provider/provide-strata';\n\n@Directive({\n selector: '[stSimpleTooltip]'\n})\nexport class StrataTooltipDirective implements OnInit, OnDestroy, AfterContentInit {\n private document = inject<Document>(DOCUMENT);\n private element = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n stSimpleTooltip = input.required<string>();\n tooltipEnabled = input<boolean>(true);\n tooltipPlacement = input<TooltipPlacement>('top');\n tooltipAlwaysShow = input<boolean>(false);\n\n private tooltipContentElement!: HTMLElement;\n private arrowElement!: HTMLElement;\n private eventListeners!: (() => void)[];\n private autoUpdateCleanupFunction?: () => void;\n\n private config = inject(STRATA_CONFIG);\n\n ngOnInit(): void {\n if (!this.stSimpleTooltip() || this.stSimpleTooltip() === '' || !this.tooltipEnabled()) {\n return;\n }\n\n this.tooltipContentElement = this.document.createElement('div');\n this.tooltipContentElement.classList.add('st-tooltip');\n const textElement = this.document.createElement('p');\n textElement.innerText = this.stSimpleTooltip();\n this.tooltipContentElement.appendChild(textElement);\n this.arrowElement = this.document.createElement('div');\n this.arrowElement.id = 'st-tooltip-arrow';\n this.arrowElement.classList.add('st-tooltip-arrow-' + this.tooltipPlacement());\n this.tooltipContentElement.appendChild(this.arrowElement);\n\n this.renderer.appendChild(this.element.nativeElement, this.tooltipContentElement);\n\n if (!this.tooltipAlwaysShow()) {\n this.eventListeners = [\n this.renderer.listen(this.element.nativeElement, 'mouseenter', () => {\n this.show();\n }),\n this.renderer.listen(this.element.nativeElement, 'mouseleave', () => this.hide()),\n ];\n } else {\n this.show();\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.shouldRender()) {\n return;\n }\n\n this.doPosition();\n }\n\n doPosition(): void {\n computePosition(this.element.nativeElement, this.tooltipContentElement, {\n placement: this.tooltipPlacement(),\n middleware: [offset(6), arrow({ element: this.arrowElement })]\n}).then(({ x, y, middlewareData }) => {\n Object.assign(this.tooltipContentElement.style, {\n left: `${x}px`,\n top: `${y}px`\n});\n\n if (middlewareData.arrow) {\n const { x, y } = middlewareData.arrow;\n\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${x}px` : '',\n top: y != null ? `${y}px` : ''\n});\n }\n });\n }\n\n ngOnDestroy() {\n this.tooltipContentElement?.remove();\n if (this.eventListeners?.length) {\n this.eventListeners.forEach((removeEventListenerFn) => removeEventListenerFn());\n }\n if (this.autoUpdateCleanupFunction) {\n this.autoUpdateCleanupFunction();\n }\n }\n\n private shouldRender(): boolean {\n return !!this.stSimpleTooltip() && this.stSimpleTooltip() !== '' && this.tooltipEnabled();\n }\n\n showTimeoutCancel?: ReturnType<typeof setTimeout>;\n\n private show(): void {\n this.showTimeoutCancel = setTimeout(() => {\n this.tooltipContentElement?.setAttribute('data-show', '');\n this.tooltipContentElement?.setAttribute('aria-hidden', 'false');\n this.autoUpdateCleanupFunction = autoUpdate(this.element.nativeElement, this.tooltipContentElement, () =>\n this.doPosition(),\n );\n }, this.config.tooltipDelayMs);\n }\n\n private hide(): void {\n if (this.showTimeoutCancel) {\n clearTimeout(this.showTimeoutCancel);\n this.showTimeoutCancel = undefined;\n }\n this.tooltipContentElement?.removeAttribute('data-show');\n this.tooltipContentElement?.setAttribute('aria-hidden', 'true');\n if (this.autoUpdateCleanupFunction) {\n this.autoUpdateCleanupFunction();\n }\n }\n}\n\nexport type TooltipPlacement = Exclude<Placement, 'left-start' | 'left-end' | 'right-start' | 'right-end'>;\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { STRATA_CONFIG } from '../../app/provider/provide-strata';\n\nexport interface HotkeyOptions {\n /** If true, the hotkey fires even when focus is inside an input, textarea, or contenteditable. Defaults to false. */\n allowInInput?: boolean;\n}\n\ninterface HotkeyRegistration {\n combos: ParsedCombo[];\n handler: () => void;\n options: Required<HotkeyOptions>;\n}\n\ninterface ParsedCombo {\n key: string;\n meta: boolean;\n ctrl: boolean;\n shift: boolean;\n alt: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class HotkeyService {\n private readonly config = inject(STRATA_CONFIG);\n private readonly destroyRef = inject(DestroyRef);\n private readonly registrations = new Map<symbol, HotkeyRegistration>();\n\n constructor() {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.handleKeydown(event));\n }\n\n /**\n * Register a keyboard shortcut.\n *\n * @param combo - A combo string like `'meta+k'`, `'ctrl+shift+p'`, `'shift+?'`.\n * Use `'meta'` for ⌘ on Mac / Win key on Windows. When `crossPlatformHotkeys` is\n * enabled in StrataConfig (default), registering `meta+k` also fires on `ctrl+k`\n * and vice-versa.\n * @param handler - Callback invoked when the combo is matched.\n * @param options - Optional configuration per registration.\n * @returns A teardown function — call it to unregister the hotkey.\n */\n register(combo: string, handler: () => void, options: HotkeyOptions = {}): () => void {\n const id = Symbol();\n const parsed = this.parseCombo(combo);\n const combos = this.config.crossPlatformHotkeys ? this.expandCrossPlatform(parsed) : [parsed];\n\n this.registrations.set(id, {\n combos,\n handler,\n options: { allowInInput: false, ...options }\n});\n\n return () => this.registrations.delete(id);\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n for (const registration of this.registrations.values()) {\n if (!registration.options.allowInInput && this.isInputFocused(event)) {\n continue;\n }\n\n if (registration.combos.some((combo) => this.matchesCombo(event, combo))) {\n event.preventDefault();\n registration.handler();\n }\n }\n }\n\n private matchesCombo(event: KeyboardEvent, combo: ParsedCombo): boolean {\n return (\n event.key.toLowerCase() === combo.key &&\n event.metaKey === combo.meta &&\n event.ctrlKey === combo.ctrl &&\n event.shiftKey === combo.shift &&\n event.altKey === combo.alt\n );\n }\n\n private parseCombo(combo: string): ParsedCombo {\n const parts = combo.toLowerCase().split('+');\n const key = parts[parts.length - 1];\n return {\n key,\n meta: parts.includes('meta') || parts.includes('cmd') || parts.includes('command'),\n ctrl: parts.includes('ctrl'),\n shift: parts.includes('shift'),\n alt: parts.includes('alt')\n};\n }\n\n /**\n * When crossPlatformHotkeys is enabled, mirror meta ↔ ctrl so that\n * a single `register('meta+k', ...)` call fires on both ⌘K (Mac) and Ctrl+K (Win/Linux).\n */\n private expandCrossPlatform(parsed: ParsedCombo): ParsedCombo[] {\n const combos: ParsedCombo[] = [parsed];\n\n if (parsed.meta && !parsed.ctrl) {\n combos.push({ ...parsed, meta: false, ctrl: true });\n } else if (parsed.ctrl && !parsed.meta) {\n combos.push({ ...parsed, ctrl: false, meta: true });\n }\n\n return combos;\n }\n\n private isInputFocused(event: KeyboardEvent): boolean {\n const target = event.target as HTMLElement | null;\n if (!target) return false;\n const tag = target.tagName.toLowerCase();\n return tag === 'input' || tag === 'textarea' || target.isContentEditable;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'capitalize',\n standalone: true,\n pure: true\n})\nexport class CapitalizePipe implements PipeTransform {\n public static capitalize(value: string): string {\n return value.substring(0, 1).toLocaleUpperCase() + value.substring(1);\n }\n\n transform(value: string, ..._args: unknown[]): unknown {\n return CapitalizePipe.capitalize(value);\n }\n}\n","import { Component, effect, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-accordion-item',\n imports: [],\n templateUrl: './accordion-item.component.html'\n})\nexport class StrataAccordionItemComponent {\n private static nextId = 0;\n readonly contentId = `st-accordion-content-${StrataAccordionItemComponent.nextId++}`;\n readonly headerId = `st-accordion-header-${StrataAccordionItemComponent.nextId++}`;\n\n title = input.required<string>();\n\n open = model<boolean>(false);\n\n toggled = output<boolean>();\n\n constructor() {\n let firstRun = true;\n effect(() => {\n const value = this.open();\n if (!firstRun) {\n this.toggled.emit(value);\n }\n firstRun = false;\n return;\n });\n }\n\n toggle(): void {\n this.open.set(!this.open());\n }\n\n @HostBinding('attr.open')\n get isOpen(): boolean {\n return this.open();\n }\n}\n","<button\n type=\"button\"\n class=\"accordion-header\"\n [id]=\"headerId\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"contentId\"\n (click)=\"toggle()\"\n>\n <span>{{ title() }}</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"\n ></path>\n </svg>\n</button>\n\n<div\n class=\"accordion-content\"\n [id]=\"contentId\"\n role=\"region\"\n [attr.aria-labelledby]=\"headerId\"\n>\n <ng-content></ng-content>\n</div>\n","import { Component, contentChildren, input, effect } from '@angular/core';\nimport { StrataAccordionItemComponent } from '../accordion-item/accordion-item.component';\n\n@Component({\n selector: 'st-accordion-group',\n imports: [],\n templateUrl: './accordion-group.component.html'\n})\nexport class StrataAccordionGroupComponent {\n items = contentChildren(StrataAccordionItemComponent);\n\n allowMultipleOpen = input<boolean>(false);\n\n constructor() {\n effect((onCleanup) => {\n const subs = this.items().map((item) =>\n item.toggled.subscribe((open) => {\n if (open && !this.allowMultipleOpen()) {\n this.closeOtherItems(item);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n closeOtherItems(currentItem: StrataAccordionItemComponent) {\n this.items().forEach((item) => {\n if (item !== currentItem) {\n item.open.set(false);\n }\n });\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'st-checkbox',\n imports: [],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataCheckboxComponent),\n multi: true\n }\n ],\n host: {\n role: 'checkbox',\n '[attr.tabindex]': 'effectiveDisabled() ? -1 : 0',\n '[attr.aria-checked]': '!!value()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[attr.data-disabled]': 'effectiveDisabled()',\n '[class.disabled]': 'effectiveDisabled()',\n '(click)': 'onHostClick($event)',\n '(keydown.space)': 'onSpaceKey($event)'\n }\n})\nexport class StrataCheckboxComponent implements ControlValueAccessor {\n private readonly defaultId = `st-checkbox-${nextUniqueId++}`;\n\n value = model<boolean | undefined>(false);\n label = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n effectiveId = computed(() => this.id() ?? this.name() ?? this.defaultId);\n\n private onChange: (val: boolean) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n toggle(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n const next = !this.value();\n this.value.set(next);\n this.onChange(next);\n this.onTouched();\n }\n\n onHostClick(event: MouseEvent): void {\n event.stopImmediatePropagation();\n this.toggle();\n }\n\n onSpaceKey(event: Event): void {\n event.preventDefault();\n this.toggle();\n }\n\n writeValue(val: boolean | null | undefined): void {\n this.value.set(val != null ? Boolean(val) : false);\n }\n\n registerOnChange(fn: (val: boolean) => void): void {\n this.onChange = fn;\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","<input\n type=\"checkbox\"\n [id]=\"effectiveId()\"\n [name]=\"name() ?? effectiveId()\"\n [checked]=\"!!value()\"\n [disabled]=\"effectiveDisabled()\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n/>\n<div class=\"checkbox-visual\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M9.9997 15.1709L19.1921 5.97852L20.6063 7.39273L9.9997 17.9993L3.63574 11.6354L5.04996 10.2212L9.9997 15.1709Z\"\n ></path>\n </svg>\n</div>\n@if (label()) {\n <label [for]=\"effectiveId()\"> {{ label() }}</label>\n}\n","import { Component, computed, forwardRef, inject, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-toggle',\n imports: [],\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataToggleComponent),\n multi: true\n }\n ],\n hostDirectives: [\n {\n directive: StrataActivatableDirective,\n inputs: ['disabled'],\n outputs: ['activated']\n},\n ],\n host: {\n '(click)': 'onCheckChanged($event)',\n role: 'switch',\n '[attr.aria-checked]': 'checked()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[attr.data-checked]': 'checked()',\n '[attr.data-disabled]': 'effectiveDisabled()',\n '[class.st-toggle-label-before]': \"labelPosition() === 'before'\",\n '[class.st-toggle-label-after]': \"labelPosition() === 'after'\"\n}\n})\nexport class StrataToggleComponent implements ControlValueAccessor {\n private _activatable = inject(StrataActivatableDirective);\n\n checked = model<boolean>(false);\n label = input<string | undefined>(undefined);\n labelPosition = input<'before' | 'after'>('after');\n\n disabled = this._activatable.disabled;\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: boolean) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n onCheckChanged(event?: Event) {\n if (this.effectiveDisabled()) {\n return;\n }\n if (event) {\n event.stopPropagation();\n }\n const next = !this.checked();\n this.checked.set(next);\n this.onChange(next);\n this.onTouched();\n }\n\n writeValue(val: boolean | null | undefined): void {\n this.checked.set(val != null ? Boolean(val) : false);\n }\n\n registerOnChange(fn: (val: boolean) => void): void {\n this.onChange = fn;\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","<div class=\"st-toggle-track\">\n <div class=\"toggle-handle\"></div>\n</div>\n@if (label()) {\n <span class=\"st-toggle-label\">{{ label() }}</span>\n}\n<ng-content></ng-content>\n","import { StrataCheckboxComponent } from '../../../checkbox/components/checkbox/checkbox.component';\nimport { StrataToggleComponent } from '../../../toggle/components/toggle/toggle.component';\n\nimport { Component, contentChild, ElementRef, HostBinding, HostListener, inject, input, output } from '@angular/core';\n\n@Component({\n selector: 'st-action-menu-item',\n imports: [],\n templateUrl: './action-menu-item.component.html',\n styleUrl: './action-menu-item.component.scss'\n})\nexport class StrataActionMenuItemComponent {\n private checkbox = contentChild(StrataCheckboxComponent, { read: ElementRef });\n private toggle = contentChild(StrataToggleComponent, { read: ElementRef });\n\n closeMenuOnClick = input(true);\n\n active = input(false);\n\n @HostBinding('class.active')\n get isActive() {\n return this.active();\n }\n\n menuItemClicked = output<boolean>();\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('click', ['$event'])\n onHostClick(event: MouseEvent) {\n this.menuItemClicked.emit(this.closeMenuOnClick());\n event.stopPropagation();\n\n this.checkbox()?.nativeElement.click();\n this.toggle()?.nativeElement.click();\n }\n}\n","<span class=\"item-start\">\n <ng-content select=\"[area='start']\"></ng-content\n></span>\n<span class=\"item-default\"> <ng-content></ng-content></span>\n<span class=\"item-end\">\n <ng-content select=\"[area='end']\"></ng-content>\n</span>\n","import { AfterContentInit, Directive, ElementRef, HostBinding, inject, input, OnDestroy, signal } from '@angular/core';\n\n@Directive({\n selector: '[stButton]'\n})\nexport class StrataButtonDirective implements AfterContentInit, OnDestroy {\n host = inject(ElementRef);\n\n variant = input<ButtonVariant>('secondary');\n\n size = input<ButtonSize>('md');\n\n fullWidth = input<boolean>(false);\n\n private iconAtStart = signal(false);\n private iconAtEnd = signal(false);\n private iconOnly = signal(false);\n private observer?: MutationObserver;\n\n @HostBinding('class')\n get classes(): string[] {\n return [\n 'st-button',\n `st-button-${this.variant()}`,\n `st-size-${this.size()}`,\n this.iconAtStart() ? 'st-button-has-starting-icon' : '',\n this.iconAtEnd() ? 'st-button-has-ending-icon' : '',\n this.iconOnly() ? 'st-button-icon-only' : '',\n this.fullWidth() ? 'st-button-full-width' : '',\n ];\n }\n\n ngAfterContentInit() {\n this.updateIconState();\n\n if (typeof MutationObserver !== 'undefined') {\n this.observer = new MutationObserver(() => this.updateIconState());\n this.observer.observe(this.host.nativeElement, { childList: true, subtree: true, characterData: true });\n }\n }\n\n ngOnDestroy() {\n this.observer?.disconnect();\n }\n\n private updateIconState() {\n const rawNodes = Array.from(this.host.nativeElement.childNodes as NodeList);\n const nodes = rawNodes.filter((node) => {\n if (node.nodeType === Node.COMMENT_NODE) {\n return false;\n }\n if (node.nodeType === Node.TEXT_NODE && !node.textContent?.trim()) {\n return false;\n }\n return true;\n });\n\n if (nodes.length === 0) {\n this.iconOnly.set(false);\n this.iconAtStart.set(false);\n this.iconAtEnd.set(false);\n return;\n }\n\n if (nodes.length === 1 && this.nodeIsStIcon(nodes[0])) {\n this.iconOnly.set(true);\n this.iconAtStart.set(false);\n this.iconAtEnd.set(false);\n return;\n }\n\n this.iconOnly.set(false);\n this.iconAtStart.set(this.nodeIsStIcon(nodes[0]));\n this.iconAtEnd.set(this.nodeIsStIcon(nodes[nodes.length - 1]));\n }\n\n nodeIsStIcon(node: Node): boolean {\n if (node.nodeType === Node.TEXT_NODE && !node.textContent?.trim()) {\n return false;\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n const tagName = (node as Element).tagName.toLowerCase();\n\n return tagName === 'st-icon';\n }\n return false;\n }\n}\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n","import { Component, HostBinding, HostListener, input, ElementRef, inject } from '@angular/core';\n\n@Component({\n selector: 'st-card',\n imports: [],\n templateUrl: './card.component.html'\n})\nexport class StrataCardComponent {\n private elementRef = inject(ElementRef);\n\n elevated = input<boolean>(false);\n\n selectable = input<boolean>(false);\n\n padding = input<boolean>(true);\n\n variant = input<CardVariant>('elevated');\n\n @HostBinding('class.with-padding')\n get withPadding() {\n return this.padding();\n }\n\n @HostBinding('class.selectable')\n get isSelectable() {\n return this.selectable();\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selectable() ? 0 : null;\n }\n\n @HostBinding('class.elevated')\n get isElevated() {\n return this.variant() === 'elevated';\n }\n\n @HostBinding('class.flat')\n get isFlat() {\n return this.variant() === 'flat';\n }\n\n @HostBinding('class.outline')\n get isOutline() {\n return this.variant() === 'outline';\n }\n\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n handleKeyboardEvent(event: Event) {\n if (this.selectable()) {\n event.preventDefault();\n this.elementRef.nativeElement.click();\n }\n }\n}\n\nexport type CardVariant = 'elevated' | 'flat' | 'outline';\n","<div class=\"cover-area\">\n <ng-content select=\"[area='cover']\"></ng-content>\n</div>\n<div class=\"card-content\">\n <ng-content></ng-content>\n</div>\n","import { Component, inject, input, model } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs';\nimport { IconRegistry } from '../../loader/icon-registry.interface';\nimport { IconSize } from '../../models/icon.model';\n\n@Component({\n selector: 'st-icon',\n imports: [],\n templateUrl: './icon.component.html',\n host: {\n '[class.xs]': 'size() === \"xs\"',\n '[class.sm]': 'size() === \"sm\"',\n '[class.md]': 'size() === \"md\"',\n '[class.lg]': 'size() === \"lg\"',\n '[attr.aria-hidden]': 'ariaLabel() ? null : \"true\"',\n '[attr.role]': 'ariaLabel() ? \"img\" : null',\n '[attr.aria-label]': 'ariaLabel() ?? null'\n}\n})\nexport class StrataIconComponent {\n private iconRegistry = inject(IconRegistry);\n\n name = input<string>('question');\n\n size = model<IconSize>('md');\n\n ariaLabel = input<string | undefined>(undefined);\n\n svgMarkdown = toSignal(\n toObservable(this.name).pipe(\n switchMap((name) => this.iconRegistry.getIcon(name || 'question')),\n ),\n );\n}\n","<span [innerHTML]=\"svgMarkdown()\"></span>\n","import {\n Directive, ElementRef, inject, input, model, OnChanges, OnDestroy, TemplateRef, ViewContainerRef, EmbeddedViewRef\n} from '@angular/core';\nimport { autoUpdate, computePosition, flip, offset, Placement, shift, size } from '@floating-ui/dom';\nimport { STRATA_CONFIG } from '../../../app/provider/provide-strata';\n\n@Directive({\n selector: '[stOverlay]'\n})\nexport class StrataOverlayDirective implements OnChanges, OnDestroy {\n stOverlay = input.required<TemplateRef<unknown>>();\n\n overlayOpen = model(false);\n\n overlayPlacement = input<Placement>('bottom');\n\n overlayOffset = input(8);\n\n overlayFitViewport = input(true);\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject<ViewContainerRef>(ViewContainerRef);\n private readonly config = inject(STRATA_CONFIG, { optional: true });\n\n private overlayEl?: HTMLElement;\n private cleanup?: () => void;\n private viewRef?: EmbeddedViewRef<unknown>;\n\n\n ngOnChanges(): void {\n if (this.overlayOpen()) {\n this.create();\n } else {\n this.destroy();\n }\n }\n\n private async create() {\n if (this.overlayEl) return;\n\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.stOverlay());\n this.viewRef.detectChanges();\n\n this.overlayEl = this.viewRef.rootNodes[0];\n document.body.appendChild(this.overlayEl!);\n\n this.cleanup = autoUpdate(this.element.nativeElement, this.overlayEl!, () => this.updatePosition());\n }\n\n private async updatePosition() {\n if (!this.overlayEl) return;\n\n const middleware = [\n offset(this.overlayOffset()),\n flip(),\n shift()\n ];\n\n if (this.overlayFitViewport()) {\n const buffer = this.config?.overlayViewportBuffer ?? 16;\n middleware.push(\n size({\n apply({ availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n maxHeight: `${availableHeight - buffer}px`\n });\n }\n })\n );\n } else {\n this.overlayEl.style.maxHeight = '';\n }\n\n const { x, y } = await computePosition(this.element.nativeElement, this.overlayEl, {\n placement: this.overlayPlacement(),\n strategy: 'fixed',\n middleware\n });\n\n if (!this.overlayEl) return;\n\n const { width } = this.element.nativeElement.getBoundingClientRect();\n\n Object.assign(this.overlayEl.style, {\n position: 'fixed',\n left: `${x}px`,\n top: `${y}px`,\n zIndex: '10000'\n});\n\n this.overlayEl.style.setProperty('--st-overlay-anchor-element-width', `${width}px`);\n }\n\n private destroy() {\n if (this.cleanup) this.cleanup();\n if (this.overlayEl) this.overlayEl.remove();\n if (this.viewRef) {\n this.viewRef.destroy();\n this.viewRef = undefined;\n }\n\n this.overlayEl = undefined;\n }\n\n getOverlayElement(): HTMLElement | undefined {\n return this.overlayEl;\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import {\n Component, contentChild, contentChildren, ElementRef, inject, input, Renderer2, signal, viewChild, effect\n} from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataCardComponent } from '../../../card/components/card/card.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataActionMenuItemComponent } from '../action-menu-item/action-menu-item.component';\n\n@Component({\n selector: 'st-action-menu',\n imports: [StrataCardComponent, StrataOverlayDirective, StrataIconComponent, StrataButtonDirective],\n templateUrl: './action-menu.component.html',\n styleUrl: './action-menu.component.scss'\n})\nexport class StrataActionMenuComponent {\n projectedButton = contentChild(StrataButtonDirective, {\n descendants: true,\n read: ElementRef\n});\n\n defaultButton = viewChild(StrataButtonDirective, {\n read: ElementRef\n});\n\n overlayDirective = viewChild(StrataOverlayDirective);\n\n actionMenuItems = contentChildren(StrataActionMenuItemComponent);\n\n placement = input<Placement>('bottom-end');\n closeOnOutsideClick = input<boolean>(true);\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n renderer = inject(Renderer2);\n\n menuOpen = signal(false);\n\n constructor() {\n effect((onCleanup) => {\n const button = this.projectedButton() ?? this.defaultButton();\n if (!button) {\n return;\n }\n\n const unlisten = this.renderer.listen(button.nativeElement, 'click', () => {\n this.menuOpen.set(!this.menuOpen());\n });\n\n onCleanup(() => {\n unlisten();\n });\n });\n\n effect((onCleanup) => {\n if (!this.menuOpen() || !this.closeOnOutsideClick()) {\n return;\n }\n\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n const target = event.target as Node | null;\n if (!target) {\n return;\n }\n\n const hostEl = this.elementRef.nativeElement;\n const overlayEl = this.overlayDirective()?.getOverlayElement();\n\n if (hostEl.contains(target) || (overlayEl && overlayEl.contains(target))) {\n return;\n }\n\n this.menuOpen.set(false);\n });\n\n onCleanup(() => {\n unlisten();\n });\n });\n\n effect((onCleanup) => {\n const subs = this.actionMenuItems().map((item) =>\n item.menuItemClicked.subscribe((shouldClose) => {\n if (shouldClose) {\n this.menuOpen.set(false);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n}\n","<div [stOverlay]=\"menu\" [overlayOpen]=\"menuOpen()\" [overlayPlacement]=\"placement()\">\n <ng-content select=\"button[stButton]\"></ng-content>\n @if (!projectedButton()) {\n <button stButton><st-icon name=\"more\"></st-icon></button>\n }\n</div>\n\n<ng-template #menu>\n <st-card [padding]=\"false\" class=\"action-menu-card\"><ng-content select=\"st-action-menu-item\"></ng-content></st-card>\n</ng-template>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-text-stack',\n imports: [],\n templateUrl: './text-stack.component.html',\n styleUrl: './text-stack.component.scss'\n})\nexport class StrataTextStackComponent {\n overflow = input<TextStackOverflow>('truncate');\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [this.overflow()];\n }\n}\n\nexport type TextStackOverflow = 'truncate' | 'wrap';\n","<ng-content></ng-content>\n","import { Component, input, output } from '@angular/core';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataTextStackComponent } from '../../../text-stack/components/text-stack/text-stack.component';\n\n@Component({\n selector: 'st-alert',\n templateUrl: './alert.component.html',\n imports: [StrataIconComponent, StrataButtonDirective, StrataTextStackComponent]\n})\nexport class StrataAlertComponent {\n\n header = input<string | undefined>(undefined);\n message = input.required<string>();\n iconName = input<string | undefined>(undefined);\n dismissible = input<boolean>(false);\n\n dismiss = output<void>();\n}\n\n\n\n","<div class=\"st-alert-container\">\n @if (iconName()) {\n <div class=\"st-alert-icon\">\n <st-icon [name]=\"iconName()!\"></st-icon>\n </div>\n }\n\n <div class=\"st-alert-content\">\n <st-text-stack overflow=\"wrap\">\n @if (header()) {\n <p class=\"st-body-bold st-alert-header\">{{ header() }}</p>\n }\n <p class=\"st-alert-message\">{{ message() }}</p>\n </st-text-stack>\n </div>\n\n\n\n\n <div class=\"st-alert-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (dismissible()) {\n <button stButton variant=\"ghost\" size=\"sm\" class=\"st-alert-dismiss\" (click)=\"dismiss.emit()\"\n aria-label=\"Dismiss alert\">\n <st-icon name=\"close\"></st-icon>\n </button>\n }\n</div>","import { Component, input } from '@angular/core';\nimport { AvatarSize } from '../avatar/avatar.component';\n\n@Component({\n selector: 'st-avatar-stack',\n imports: [],\n templateUrl: './avatar-stack.component.html',\n host: {\n '[class.xs]': 'size() === \"xs\"',\n '[class.sm]': 'size() === \"sm\"',\n '[class.md]': 'size() === \"md\"',\n '[class.lg]': 'size() === \"lg\"',\n '[class.tight]': 'spacing() === \"tight\"',\n '[class.mid]': 'spacing() === \"mid\"',\n '[class.loose]': 'spacing() === \"loose\"',\n '[class.first-on-front]': 'firstOnFront()',\n }\n})\nexport class StrataAvatarStackComponent {\n size = input<AvatarSize>('md');\n\n spacing = input<'loose' | 'mid' | 'tight'>('mid');\n\n firstOnFront = input<boolean>(false);\n}\n\nexport type AvatarStackSpacing = 'loose' | 'mid' | 'tight';\n","<ng-content></ng-content>\n","import {\n AfterViewInit, Component, contentChildren, effect, HostBinding, input, model, signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-avatar',\n imports: [],\n templateUrl: './avatar.component.html'\n})\nexport class StrataAvatarComponent implements AfterViewInit {\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n src = input<string | null>(null);\n alt = input<string>('');\n text = input<string | null>(null);\n\n size = model<AvatarSize>('md');\n\n imageError = signal(false);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageError.set(false);\n });\n }\n\n @HostBinding('class')\n get elementClasses() {\n return [this.size()];\n }\n\n onImageError(): void {\n this.imageError.set(true);\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.iconComponents().forEach((icon) => {\n icon.size.set(this.size());\n });\n });\n }\n}\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';\n","@if (src() && !imageError()) {\n <img [src]=\"src()!\" [alt]=\"alt()\" (error)=\"onImageError()\" />\n} @else if (text() !== null) {\n <span>{{ text() }}</span>\n}\n<ng-content></ng-content>\n","import { Component, computed, HostBinding, input } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { BadgePlacement, BadgeSize, BadgeVariant } from '../../badge.model';\n\n@Component({\n selector: 'st-badge',\n imports: [StrataIconComponent],\n templateUrl: './badge.component.html'\n})\nexport class StrataBadgeComponent {\n value = input<string | number | undefined>(undefined);\n icon = input<string | undefined>(undefined);\n max = input<number>(99);\n variant = input<BadgeVariant>('accent');\n size = input<BadgeSize>('md');\n placement = input<BadgePlacement>('inline');\n visible = input<boolean>(true);\n showZero = input<boolean>(false);\n ariaLabel = input<string | undefined>(undefined);\n\n isDot = computed(() => this.size() === 'xs' || (this.value() === undefined && !this.icon()));\n isIconOnly = computed(() => this.size() !== 'xs' && (this.value() === undefined || this.value() === '') && !!this.icon());\n\n displayValue = computed(() => {\n if (this.size() === 'xs') {\n return '';\n }\n const val = this.value();\n if (typeof val === 'number') {\n const maxVal = this.max();\n return val > maxVal ? `${maxVal}+` : `${val}`;\n }\n return val !== undefined ? `${val}` : '';\n });\n\n shouldRender = computed(() => {\n if (!this.visible()) {\n return false;\n }\n const val = this.value();\n if (typeof val === 'number' && val === 0 && !this.showZero()) {\n return false;\n }\n return true;\n });\n\n computedAriaLabel = computed(() => {\n const custom = this.ariaLabel();\n if (custom !== undefined) {\n return custom;\n }\n if (this.isDot()) {\n return `${this.variant()} status`;\n }\n const display = this.displayValue();\n if (display) {\n return `${display}`;\n }\n const iconName = this.icon();\n if (iconName) {\n return `${iconName} badge`;\n }\n return undefined;\n });\n\n @HostBinding('attr.role')\n readonly role = 'status';\n\n @HostBinding('attr.aria-label')\n get hostAriaLabel(): string | undefined {\n return this.computedAriaLabel();\n }\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = [\n 'st-badge',\n `st-badge-${this.variant()}`,\n `st-badge-${this.size()}`,\n `st-badge-placement-${this.placement()}`\n ];\n if (this.isDot()) {\n classes.push('st-badge-dot');\n }\n if (this.isIconOnly()) {\n classes.push('st-badge-icon-only');\n }\n if (!this.shouldRender()) {\n classes.push('st-badge-hidden');\n }\n return classes.join(' ');\n }\n}\n","@if (shouldRender() && !isDot()) {\n @if (icon()) {\n <st-icon [name]=\"icon()!\" aria-hidden=\"true\"></st-icon>\n }\n @if (displayValue()) {\n <span class=\"st-badge-value\">{{ displayValue() }}</span>\n }\n}\n","import { Component, input, output, signal } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-breadcrumb-item',\n imports: [StrataIconComponent, StrataActivatableDirective],\n templateUrl: './breadcrumb-item.component.html',\n host: {\n 'class': 'st-breadcrumb-item'\n}\n})\nexport class StrataBreadcrumbItemComponent {\n text = input.required<string>();\n\n icon = input<string>();\n\n interactable = input<boolean>(false);\n\n disabled = input<boolean>(false);\n\n activated = output<Event>();\n\n separatorIcon = signal<string | undefined>(undefined);\n}\n","<li class=\"st-breadcrumb-item-container\">\n <div class=\"st-breadcrumb-item-content\"\n stActivatable\n [interactable]=\"interactable()\"\n [disabled]=\"disabled()\"\n (click)=\"activated.emit($event)\">\n @if (icon()) {\n <st-icon [name]=\"icon()!\" size=\"sm\" class=\"st-breadcrumb-item-icon\"></st-icon>\n }\n <span class=\"st-breadcrumb-item-text\">{{ text() }}</span>\n </div>\n\n @if (separatorIcon()) {\n <st-icon [name]=\"separatorIcon()!\" size=\"sm\" class=\"st-breadcrumb-separator\"></st-icon>\n }\n</li>\n","import { Component, contentChildren, effect, input } from '@angular/core';\nimport { StrataBreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n selector: 'st-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.component.html',\n host: {\n 'class': 'st-breadcrumb'\n}\n})\nexport class StrataBreadcrumbComponent {\n separatorIcon = input<string>('arrow-right');\n\n items = contentChildren(StrataBreadcrumbItemComponent, { descendants: true });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const separator = this.separatorIcon();\n\n items.forEach((item, index) => {\n const isLast = index === items.length - 1;\n item.separatorIcon.set(isLast ? undefined : separator);\n });\n });\n }\n}\n","<nav aria-label=\"Breadcrumb\">\n <ol class=\"st-breadcrumb-list\">\n <ng-content></ng-content>\n </ol>\n</nav>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'st-button-group',\n imports: [],\n templateUrl: './button-group.component.html',\n host: {\n '[attr.justification]': 'justification()',\n }\n})\nexport class StrataButtonGroupComponent {\n justification = input<ButtonGroupJustification>('start');\n}\n\nexport type ButtonGroupJustification = 'start' | 'center' | 'end' | 'expand' | 'stack';\n","<ng-content select=\"[stButton], st-divider\" #buttons></ng-content>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'st-divider',\n imports: [],\n templateUrl: './divider.component.html'\n})\nexport class StrataDividerComponent {\n label = input<string>();\n margin = input(true);\n vertical = input(false);\n}\n","@if (!label() || vertical()) {\n <div class=\"divider-line\" [class.divider-margin]=\"margin()\" [class.vertical]=\"vertical()\"></div>\n} @else {\n <div class=\"divider-line-with-text\" [class.divider-margin]=\"margin()\">\n <div class=\"divider-line\"></div>\n <span>{{ label() }}</span>\n <div class=\"divider-line\"></div>\n </div>\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'st-file-upload',\n imports: [],\n templateUrl: './file-upload.component.html'\n})\nexport class StrataFileUploadComponent {\n fileInput = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n accept = input<string>('*');\n multiple = input<boolean>(false);\n maxFileSize = input<number | undefined>(undefined);\n disabled = input<boolean>(false);\n label = input<string>('Choose a file or drag & drop it here');\n hint = input<string | undefined>(undefined);\n\n fileSelect = output<File>();\n filesSelect = output<File[]>();\n fileRejected = output<{ file: File; reason: 'type' | 'size' }>();\n\n isDragOver = signal<boolean>(false);\n\n @HostBinding('class.st-disabled')\n get hostDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.st-drag-over')\n get hostDragOver(): boolean {\n return this.isDragOver();\n }\n\n @HostBinding('attr.role')\n readonly hostRole = 'button';\n\n @HostBinding('attr.tabindex')\n get hostTabIndex(): number {\n return this.disabled() ? -1 : 0;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (target === this.fileInput()?.nativeElement) {\n return;\n }\n this.browse();\n }\n\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onKeydown(event: Event): void {\n event.preventDefault();\n this.browse();\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(true);\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: DragEvent): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver.set(false);\n\n const droppedFiles = event.dataTransfer?.files;\n if (!droppedFiles || droppedFiles.length === 0) return;\n\n this.processFiles(Array.from(droppedFiles));\n }\n\n onFileChange(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n if (!inputEl.files || inputEl.files.length === 0) return;\n\n this.processFiles(Array.from(inputEl.files));\n inputEl.value = '';\n }\n\n browse(): void {\n if (this.disabled()) return;\n this.fileInput()?.nativeElement.click();\n }\n\n clear(): void {\n const inputEl = this.fileInput()?.nativeElement;\n if (inputEl) {\n inputEl.value = '';\n }\n }\n\n private processFiles(files: File[]): void {\n const acceptedFiles: File[] = [];\n const filesToValidate = this.multiple() ? files : files.slice(0, 1);\n\n for (const file of filesToValidate) {\n if (!this.matchesAccept(file, this.accept())) {\n this.fileRejected.emit({ file, reason: 'type' });\n continue;\n }\n\n const maxSize = this.maxFileSize();\n if (maxSize != null && file.size > maxSize) {\n this.fileRejected.emit({ file, reason: 'size' });\n continue;\n }\n\n acceptedFiles.push(file);\n }\n\n if (acceptedFiles.length > 0) {\n this.filesSelect.emit(acceptedFiles);\n if (!this.multiple()) {\n this.fileSelect.emit(acceptedFiles[0]);\n }\n }\n }\n\n private matchesAccept(file: File, accept: string): boolean {\n if (!accept || accept === '*' || accept === '*/*') {\n return true;\n }\n\n const rules = accept.split(',').map((r) => r.trim().toLowerCase());\n const fileName = file.name.toLowerCase();\n const fileType = file.type.toLowerCase();\n\n return rules.some((rule) => {\n if (rule.startsWith('.')) {\n return fileName.endsWith(rule);\n }\n if (rule.endsWith('/*')) {\n const baseType = rule.slice(0, -2);\n return fileType.startsWith(`${baseType}/`);\n }\n return fileType === rule;\n });\n }\n}\n","<input\n #fileInput\n type=\"file\"\n class=\"st-file-upload-input\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"disabled()\"\n (change)=\"onFileChange($event)\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n/>\n\n<div class=\"st-file-upload-content\">\n <div class=\"st-file-upload-icon-wrapper\">\n <ng-content select=\"[uploadIcon]\">\n <svg\n class=\"st-file-upload-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </svg>\n </ng-content>\n </div>\n\n <div class=\"st-file-upload-text\">\n <span class=\"st-file-upload-label\">{{ label() }}</span>\n @if (hint()) {\n <span class=\"st-file-upload-hint\">{{ hint() }}</span>\n }\n </div>\n\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n input,\n model,\n OnDestroy,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'st-slider',\n imports: [FormsModule],\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataSliderComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataSliderComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n wrapper = viewChild.required<ElementRef<HTMLDivElement>>('wrapper');\n private resizeObserver!: ResizeObserver;\n\n value = model<number>();\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: number | undefined) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n minimum = input.required<number>();\n\n maximum = input.required<number>();\n\n step = input<number | 'none' | undefined>();\n\n computedStep = computed(() =>\n this.step() === 'none' || this.step() === undefined ? 'any' : Number(this.step()),\n );\n\n steps = computed(() => {\n const step = this.computedStep();\n if (step === 'any' || step === undefined || !step) {\n return 0;\n }\n return Math.floor((this.maximum() - this.minimum()) / step) + 1;\n });\n\n isStepped = computed(\n () => this.computedStep() !== 'any' && this.computedStep() !== undefined && this.computedStep() !== 0,\n );\n\n private viewInitialized = signal(false);\n\n constructor() {\n effect(() => {\n if (!this.viewInitialized()) return;\n this.steps();\n this.isStepped();\n this.computedStep();\n this.minimum();\n this.maximum();\n this.updateTickMath();\n });\n }\n\n ngAfterViewInit(): void {\n this.viewInitialized.set(true);\n this.updateTickMath();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTickMath();\n });\n\n this.resizeObserver.observe(this.wrapper().nativeElement);\n }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n }\n\n private updateTickMath(): void {\n if (!this.isStepped()) return;\n\n const wrapperEl = this.wrapper().nativeElement;\n const sliderWidth = wrapperEl.offsetWidth;\n if (!sliderWidth) return;\n\n const thumbSize = this.getThumbSize(wrapperEl);\n\n const usableWidth = sliderWidth - thumbSize;\n\n const intervalCount = this.steps() - 1;\n if (intervalCount <= 0) return;\n\n const intervalPx = usableWidth / intervalCount;\n\n wrapperEl.style.setProperty('--st-slider-usable-width', `${usableWidth}px`);\n wrapperEl.style.setProperty('--st-slider-interval-px', `${intervalPx}px`);\n wrapperEl.style.setProperty('--st-slider-thumb-offset', `${thumbSize / 2}px`);\n }\n\n private getThumbSize(el: HTMLElement): number {\n const styles = getComputedStyle(el);\n const size = styles.getPropertyValue('--st-slider-thumb-size');\n return parseFloat(size);\n }\n\n onModelChange(val: number | string): void {\n const num = Number(val);\n this.value.set(num);\n this.onChange(num);\n this.onTouched();\n }\n\n writeValue(val: number | null | undefined): void {\n this.value.set(val != null ? Number(val) : undefined);\n }\n\n registerOnChange(fn: (val: number | undefined) => void): void {\n this.onChange = fn;\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","<div\n #wrapper\n class=\"range-wrapper\"\n [style.--steps]=\"steps()\"\n [class.stepped]=\"isStepped()\"\n>\n <input\n type=\"range\"\n [ngModel]=\"value()\"\n (ngModelChange)=\"onModelChange($event)\"\n [disabled]=\"effectiveDisabled()\"\n [min]=\"minimum()\"\n [max]=\"maximum()\"\n [step]=\"computedStep()\"\n />\n</div>\n","import {\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n computed,\n effect,\n input,\n model,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataButtonGroupComponent } from '../../../button/components/button-group/button-group.component';\nimport { StrataSliderComponent } from '../../../slider/components/slider/slider.component';\nimport { CropPosition, CropResult, CropShape } from '../../models/image-cropper.model';\n\n@Component({\n selector: 'st-image-cropper',\n imports: [\n CommonModule,\n FormsModule,\n StrataButtonDirective,\n StrataButtonGroupComponent,\n StrataSliderComponent\n ],\n templateUrl: './image-cropper.component.html'\n})\nexport class StrataImageCropperComponent implements OnDestroy {\n viewportRef = viewChild<ElementRef<HTMLDivElement>>('viewport');\n imageRef = viewChild<ElementRef<HTMLImageElement>>('imgElement');\n\n image = input<string | File | Blob | null>(null);\n shape = input<CropShape>('circle');\n maskSize = input<number>(240);\n outputWidth = input<number>(400);\n outputHeight = input<number>(400);\n outputFormat = input<'image/png' | 'image/jpeg' | 'image/webp'>('image/png');\n outputQuality = input<number>(0.92);\n minZoom = input<number>(1);\n maxZoom = input<number>(3);\n showZoom = input<boolean>(true);\n showRotate = input<boolean>(true);\n showClear = input<boolean>(true);\n clearLabel = input<string>('Remove');\n autoCrop = input<boolean>(true);\n disabled = input<boolean>(false);\n\n zoom = model<number>(1);\n rotation = model<number>(0);\n\n crop = output<CropResult>();\n imageLoaded = output<{ width: number; height: number; src: string }>();\n imageError = output<string>();\n imageCleared = output<void>();\n\n currentImageSrc = signal<string | null>(null);\n naturalWidth = signal<number>(0);\n naturalHeight = signal<number>(0);\n panX = signal<number>(0);\n panY = signal<number>(0);\n isDragging = signal<boolean>(false);\n isLoading = signal<boolean>(false);\n\n hasImage = computed(() => !!this.currentImageSrc());\n\n baseScale = computed(() => {\n const nw = this.naturalWidth();\n const nh = this.naturalHeight();\n const size = this.maskSize();\n if (nw <= 0 || nh <= 0 || size <= 0) return 1;\n return Math.max(size / nw, size / nh);\n });\n\n imageTransform = computed(() => {\n const px = this.panX();\n const py = this.panY();\n const rot = this.rotation();\n const scale = this.baseScale() * this.zoom();\n return `translate(calc(-50% + ${px}px), calc(-50% + ${py}px)) rotate(${rot}deg) scale(${scale})`;\n });\n\n private startPointerPos: CropPosition = { x: 0, y: 0 };\n private startPanPos: CropPosition = { x: 0, y: 0 };\n private activePointerId: number | null = null;\n private createdBlobUrl: string | null = null;\n private autoCropTimeout: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n effect(() => {\n const imgInput = this.image();\n this.loadImageSource(imgInput);\n });\n\n effect(() => {\n this.panX();\n this.panY();\n this.zoom();\n this.rotation();\n if (this.autoCrop() && this.hasImage()) {\n this.scheduleAutoCrop();\n }\n });\n }\n\n @HostBinding('class.st-disabled')\n get hostDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.st-has-image')\n get hostHasImage(): boolean {\n return this.hasImage();\n }\n\n @HostBinding('style.--st-cropper-mask-size')\n get hostMaskSize(): string {\n return `${this.maskSize()}px`;\n }\n\n ngOnDestroy(): void {\n this.cleanupBlobUrl();\n if (this.autoCropTimeout) {\n clearTimeout(this.autoCropTimeout);\n }\n }\n\n setImage(source: string | File | Blob | null): void {\n this.loadImageSource(source);\n }\n\n center(): void {\n this.panX.set(0);\n this.panY.set(0);\n }\n\n reset(): void {\n this.panX.set(0);\n this.panY.set(0);\n this.zoom.set(1);\n this.rotation.set(0);\n }\n\n clear(): void {\n this.cleanupBlobUrl();\n this.currentImageSrc.set(null);\n this.naturalWidth.set(0);\n this.naturalHeight.set(0);\n this.reset();\n this.imageCleared.emit();\n }\n\n rotateRight(): void {\n if (this.disabled()) return;\n this.rotation.update((r) => (r + 90) % 360);\n }\n\n rotateLeft(): void {\n if (this.disabled()) return;\n this.rotation.update((r) => (r - 90 + 360) % 360);\n }\n\n onImageElementLoad(event: Event): void {\n const img = event.target as HTMLImageElement;\n this.naturalWidth.set(img.naturalWidth);\n this.naturalHeight.set(img.naturalHeight);\n this.isLoading.set(false);\n this.reset();\n this.imageLoaded.emit({\n width: img.naturalWidth,\n height: img.naturalHeight,\n src: img.src\n });\n }\n\n onImageElementError(): void {\n this.isLoading.set(false);\n this.imageError.emit('Failed to load image');\n }\n\n onPointerDown(event: PointerEvent): void {\n if (this.disabled() || !this.hasImage()) return;\n this.activePointerId = event.pointerId;\n const target = event.currentTarget as HTMLElement;\n target.setPointerCapture?.(event.pointerId);\n\n this.isDragging.set(true);\n this.startPointerPos = { x: event.clientX, y: event.clientY };\n this.startPanPos = { x: this.panX(), y: this.panY() };\n }\n\n onPointerMove(event: PointerEvent): void {\n if (!this.isDragging() || this.activePointerId !== event.pointerId) return;\n\n const dx = event.clientX - this.startPointerPos.x;\n const dy = event.clientY - this.startPointerPos.y;\n\n this.panX.set(this.startPanPos.x + dx);\n this.panY.set(this.startPanPos.y + dy);\n }\n\n onPointerUp(event: PointerEvent): void {\n if (this.activePointerId === event.pointerId) {\n const target = event.currentTarget as HTMLElement;\n try {\n target.releasePointerCapture?.(event.pointerId);\n } catch (_err) {\n void _err;\n }\n this.activePointerId = null;\n this.isDragging.set(false);\n }\n }\n\n onWheel(event: WheelEvent): void {\n if (this.disabled() || !this.hasImage() || !this.showZoom()) return;\n event.preventDefault();\n\n const zoomStep = 0.1;\n const delta = event.deltaY < 0 ? zoomStep : -zoomStep;\n const nextZoom = Math.min(\n this.maxZoom(),\n Math.max(this.minZoom(), this.zoom() + delta)\n );\n this.zoom.set(Math.round(nextZoom * 100) / 100);\n }\n\n onZoomChange(val: number | string): void {\n const num = Number(val);\n this.zoom.set(num);\n }\n\n cropImage(): Promise<CropResult> {\n return new Promise((resolve, reject) => {\n const src = this.currentImageSrc();\n if (!src) {\n reject(new Error('No image loaded to crop'));\n return;\n }\n\n const img = new Image();\n img.crossOrigin = 'anonymous';\n\n img.onload = () => {\n try {\n const outW = this.outputWidth();\n const outH = this.outputHeight();\n const mask = this.maskSize();\n\n const canvas = document.createElement('canvas');\n canvas.width = outW;\n canvas.height = outH;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n reject(new Error('Failed to create canvas 2D context'));\n return;\n }\n\n if (this.shape() === 'circle') {\n ctx.beginPath();\n ctx.arc(outW / 2, outH / 2, outW / 2, 0, Math.PI * 2);\n ctx.closePath();\n ctx.clip();\n }\n\n ctx.save();\n ctx.translate(outW / 2, outH / 2);\n\n const canvasScale = outW / mask;\n ctx.translate(this.panX() * canvasScale, this.panY() * canvasScale);\n\n ctx.rotate((this.rotation() * Math.PI) / 180);\n\n const totalScale = this.baseScale() * this.zoom() * canvasScale;\n ctx.scale(totalScale, totalScale);\n\n ctx.drawImage(img, -img.naturalWidth / 2, -img.naturalHeight / 2, img.naturalWidth, img.naturalHeight);\n ctx.restore();\n\n const format = this.outputFormat();\n const quality = this.outputQuality();\n const dataUrl = canvas.toDataURL(format, quality);\n\n canvas.toBlob(\n (blob) => {\n if (blob) {\n const result: CropResult = {\n blob,\n dataUrl,\n width: outW,\n height: outH\n };\n this.crop.emit(result);\n resolve(result);\n } else {\n reject(new Error('Failed to generate image blob'));\n }\n },\n format,\n quality\n );\n } catch (err) {\n reject(err);\n }\n };\n\n img.onerror = () => {\n reject(new Error('Failed to load image for cropping'));\n };\n\n img.src = src;\n });\n }\n\n private scheduleAutoCrop(): void {\n if (this.autoCropTimeout) {\n clearTimeout(this.autoCropTimeout);\n }\n this.autoCropTimeout = setTimeout(() => {\n this.cropImage().catch((_err) => {\n void _err;\n });\n }, 150);\n }\n\n private loadImageSource(source: string | File | Blob | null): void {\n this.cleanupBlobUrl();\n\n if (!source) {\n this.currentImageSrc.set(null);\n this.naturalWidth.set(0);\n this.naturalHeight.set(0);\n return;\n }\n\n this.isLoading.set(true);\n\n if (typeof source === 'string') {\n this.currentImageSrc.set(source);\n } else if (source instanceof File || source instanceof Blob) {\n this.createdBlobUrl = URL.createObjectURL(source);\n this.currentImageSrc.set(this.createdBlobUrl);\n }\n }\n\n private cleanupBlobUrl(): void {\n if (this.createdBlobUrl) {\n URL.revokeObjectURL(this.createdBlobUrl);\n this.createdBlobUrl = null;\n }\n }\n}\n","@if (!hasImage()) {\n <div class=\"st-cropper-empty-state\">\n <ng-content select=\"[emptyState], [placeholder], st-file-upload\">\n <div class=\"st-cropper-empty-placeholder\">\n <svg\n class=\"st-cropper-placeholder-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\" />\n <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\" />\n <polyline points=\"21 15 16 10 5 21\" />\n </svg>\n <span>No image selected</span>\n </div>\n </ng-content>\n </div>\n} @else {\n <div class=\"st-cropper-workspace\">\n <div\n #viewport\n class=\"st-cropper-viewport\"\n [class.st-is-dragging]=\"isDragging()\"\n (pointerdown)=\"onPointerDown($event)\"\n (pointermove)=\"onPointerMove($event)\"\n (pointerup)=\"onPointerUp($event)\"\n (wheel)=\"onWheel($event)\"\n >\n <div class=\"st-cropper-stage\">\n <div class=\"st-cropper-image-layer\">\n <img\n #imgElement\n class=\"st-cropper-image\"\n [src]=\"currentImageSrc()\"\n [style.transform]=\"imageTransform()\"\n alt=\"Image to crop\"\n draggable=\"false\"\n (load)=\"onImageElementLoad($event)\"\n (error)=\"onImageElementError()\"\n />\n </div>\n\n <div\n class=\"st-cropper-mask\"\n [class.st-crop-shape-circle]=\"shape() === 'circle'\"\n [class.st-crop-shape-square]=\"shape() === 'square'\"\n ></div>\n\n @if (showClear()) {\n <button\n type=\"button\"\n class=\"st-cropper-floating-close st-cropper-clear-btn\"\n [disabled]=\"disabled()\"\n (click)=\"clear()\"\n (pointerdown)=\"$event.stopPropagation()\"\n [title]=\"clearLabel() || 'Remove photo'\"\n [attr.aria-label]=\"clearLabel() || 'Remove photo'\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n }\n </div>\n\n @if (showZoom() || showRotate()) {\n <div class=\"st-cropper-overlay-controls\" (pointerdown)=\"$event.stopPropagation()\">\n <div class=\"st-cropper-buttons-row\">\n @if (showRotate()) {\n <st-button-group>\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n class=\"st-cropper-icon-btn\"\n [disabled]=\"disabled()\"\n (click)=\"rotateLeft()\"\n title=\"Rotate Counter-Clockwise\"\n aria-label=\"Rotate Counter-Clockwise\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M2.5 2v6h6\" />\n <path d=\"M2.66 15.57a10 10 0 1 0 .57-8.38L2.5 8\" />\n </svg>\n </button>\n\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n class=\"st-cropper-icon-btn\"\n [disabled]=\"disabled()\"\n (click)=\"rotateRight()\"\n title=\"Rotate Clockwise\"\n aria-label=\"Rotate Clockwise\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n <path d=\"M21.5 2v6h-6\" />\n <path d=\"M21.34 15.57a10 10 0 1 1-.57-8.38L21.5 8\" />\n </svg>\n </button>\n </st-button-group>\n }\n\n <div class=\"st-cropper-align-group\">\n <st-button-group>\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n [disabled]=\"disabled() || (panX() === 0 && panY() === 0)\"\n (click)=\"center()\"\n title=\"Realign view to center\"\n aria-label=\"Realign view to center\"\n >\n Center\n </button>\n\n <button\n type=\"button\"\n stButton\n variant=\"secondary\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n (click)=\"reset()\"\n title=\"Reset position, zoom, and rotation\"\n aria-label=\"Reset position, zoom, and rotation\"\n >\n Reset\n </button>\n </st-button-group>\n\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </div>\n\n @if (showZoom()) {\n <div class=\"st-cropper-slider-row\">\n <st-slider\n class=\"st-cropper-slider\"\n [minimum]=\"minZoom()\"\n [maximum]=\"maxZoom()\"\n [step]=\"0.02\"\n [(value)]=\"zoom\"\n [disabled]=\"disabled()\"\n aria-label=\"Image Zoom\"\n ></st-slider>\n </div>\n }\n </div>\n }\n </div>\n </div>\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'input[stInput], textarea[stInput]'\n})\nexport class StrataNativeInputRefDirective {\n el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n\n}\n","import {\n AfterViewInit, Component, contentChild, contentChildren, effect, input, signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataNativeInputRefDirective } from '../../directives/native-input-ref.directive';\n\nexport type InputFieldSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-input-field',\n imports: [],\n templateUrl: './input-field.component.html',\n host: {\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"'\n }\n})\nexport class StrataInputFieldComponent implements AfterViewInit {\n size = input<InputFieldSize>('md');\n\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n inputField = contentChild(StrataNativeInputRefDirective, {\n descendants: true\n });\n\n private pendingFocus = signal(false);\n\n constructor() {\n effect(() => {\n const input = this.inputField();\n\n if (input && this.pendingFocus()) {\n input.el.nativeElement.focus();\n this.pendingFocus.set(false);\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.iconComponents().forEach((icon) => icon.size.set('sm')), 1);\n }\n\n focus(): void {\n this.pendingFocus.set(true);\n }\n\n blur(): void {\n this.inputField()?.el.nativeElement.blur();\n }\n\n get nativeInput(): HTMLInputElement | undefined {\n return this.inputField()?.el.nativeElement;\n }\n}\n\n","<ng-content select=\"label\"></ng-content>\n<div class=\"st-input-wrapper\">\n <div class=\"affix\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n <ng-content select=\"input,textarea\"></ng-content>\n <div class=\"affix\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n</div>\n","import {\n AfterViewInit, Directive, ElementRef, HostListener, inject, input, OnChanges, SimpleChanges\n} from '@angular/core';\n\n@Directive({\n selector: '[stAutoResize]'\n})\nexport class StrataAutoResizeDirective implements AfterViewInit, OnChanges {\n minimumRows = input(1);\n maximumRows = input<number>();\n\n private lineHeight = 0;\n\n private element = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n @HostListener('input')\n onInput() {\n this.resize();\n }\n\n @HostListener('window:resize')\n onWindowResize() {\n this.resize();\n }\n\n\n ngAfterViewInit(): void {\n this.calculateLineHeight();\n this.resize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['minRows'] || changes['maxRows']) {\n this.resize();\n }\n }\n\n private calculateLineHeight() {\n const textarea = this.element.nativeElement;\n\n const originalRows = textarea.rows;\n const originalValue = textarea.value;\n\n textarea.rows = 1;\n textarea.value = '';\n\n // Force layout\n this.lineHeight = textarea.scrollHeight;\n\n // Restore\n textarea.rows = originalRows;\n textarea.value = originalValue;\n }\n\n private resize() {\n const textarea = this.element.nativeElement;\n\n textarea.style.height = 'auto';\n\n const scrollHeight = textarea.scrollHeight;\n\n const minHeight = this.minimumRows() * this.lineHeight;\n const maxHeight = this.maximumRows() ? this.maximumRows()! * this.lineHeight : Infinity;\n\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);\n\n textarea.style.height = `${newHeight}px`;\n textarea.style.overflowY = scrollHeight > maxHeight ? 'auto' : 'hidden';\n }\n}\n","import { Component, computed, input, model, output, signal } from '@angular/core';\n\n@Component({\n selector: 'st-radio',\n imports: [],\n templateUrl: './radio.component.html',\n host: {\n role: 'radio',\n '[attr.tabindex]': 'effectiveDisabled() ? -1 : (checked() ? 0 : -1)',\n '[attr.aria-checked]': 'checked()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[attr.data-checked]': 'checked()',\n '[attr.data-disabled]': 'effectiveDisabled()',\n '[class.disabled]': 'effectiveDisabled()',\n '(click)': 'onClick($event)',\n '(keydown.space)': 'onSpaceKey($event)'\n }\n})\nexport class StrataRadioComponent {\n value = input.required<string>();\n label = input<string | undefined>(undefined);\n checked = model(false);\n disabled = input(false);\n groupDisabled = signal(false);\n effectiveDisabled = computed(() => this.disabled() || this.groupDisabled());\n\n selected = output<void>();\n\n select(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n this.checked.set(true);\n this.selected.emit();\n }\n\n onClick(event: MouseEvent): void {\n event.stopImmediatePropagation();\n this.select();\n }\n\n onSpaceKey(event: Event): void {\n event.preventDefault();\n this.select();\n }\n}\n","<input type=\"radio\" [checked]=\"checked()\" [disabled]=\"effectiveDisabled()\" tabindex=\"-1\" aria-hidden=\"true\" />\n<div class=\"radio-visual\"></div>\n@if (label()) {\n <label>{{ label() }}</label>\n}\n","import { Component, contentChild, ElementRef, HostBinding, HostListener, inject } from '@angular/core';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\nimport { StrataCheckboxComponent } from '../../../checkbox/components/checkbox/checkbox.component';\nimport { StrataToggleComponent } from '../../../toggle/components/toggle/toggle.component';\nimport { StrataRadioComponent } from '../../../radio/components/radio/radio.component';\n\n@Component({\n selector: 'st-item',\n imports: [],\n templateUrl: './item.component.html',\n styleUrls: ['./item.component.scss'],\n hostDirectives: [\n {\n directive: StrataActivatableDirective,\n inputs: ['disabled', 'interactable'],\n outputs: ['activated']\n},\n ]\n})\nexport class StrataItemComponent {\n private element = inject(ElementRef);\n private _activatable = inject(StrataActivatableDirective);\n\n private checkbox = contentChild(StrataCheckboxComponent, { read: ElementRef });\n private toggle = contentChild(StrataToggleComponent, { read: ElementRef });\n private radio = contentChild(StrataRadioComponent, { read: ElementRef });\n\n interactable = this._activatable.interactable;\n disabled = this._activatable.disabled;\n\n constructor() {\n this.interactable.set(false);\n }\n\n @HostBinding('class.interactable')\n get isInteractable(): boolean {\n return this._activatable.isFocusable();\n }\n\n @HostBinding('class.disabled')\n get isDisabledClass(): boolean {\n return this.disabled();\n }\n\n @HostListener('click', ['$event'])\n onHostClick(event: MouseEvent) {\n if (this.disabled() || !this.interactable()) {\n return;\n }\n\n // Only trigger if we didn't click an interactive element within the item\n const target = event.target as HTMLElement;\n const isControl = target.closest('st-checkbox, st-toggle, st-radio');\n \n if (!isControl) {\n this.onActivated();\n }\n }\n\n onActivated() {\n if (this.disabled()) return;\n\n // Trigger children if they exist\n this.checkbox()?.nativeElement.click();\n this.toggle()?.nativeElement.click();\n this.radio()?.nativeElement.click();\n }\n}\n","<span class=\"item-start\">\n <ng-content select=\"[area='start']\"></ng-content\n></span>\n<span class=\"item-default\"> <ng-content></ng-content></span>\n<span class=\"item-end\">\n <ng-content select=\"[area='end']\"></ng-content>\n</span>\n","import { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport { Component, HostBinding, input, TemplateRef } from '@angular/core';\nimport { StrataItemComponent } from '../item/item.component';\n\n@Component({\n selector: 'st-item-list',\n imports: [StrataItemComponent, NgTemplateOutlet, CommonModule],\n templateUrl: './item-list.component.html'\n})\nexport class StrataItemListComponent<T> {\n items = input.required<T[]>();\n\n dividers = input<boolean>(true);\n\n template = input<TemplateRef<T>>();\n\n @HostBinding('class') get hostClasses(): string[] {\n return [this.dividers() ? 'with-dividers' : ''];\n }\n}\n","@for (item of items(); track item; let last = $last) {\n <ng-template #defaultItemTemplate>\n <st-item>{{ item }}</st-item>\n </ng-template>\n <ng-container\n [ngTemplateOutlet]=\"template() || defaultItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { getDefaultShortcutLabels, STRATA_CONFIG } from '../../../../app/provider/provide-strata';\n\n@Component({\n selector: 'st-kbd',\n imports: [],\n templateUrl: './kbd.component.html',\n styleUrl: './kbd.component.scss'\n})\nexport class StrataKbdComponent {\n private readonly config = inject(STRATA_CONFIG, { optional: true });\n\n keys = input<string | string[]>([]);\n\n resolvedKeys = computed(() => {\n const rawKeys = this.keys();\n const defaults = getDefaultShortcutLabels(\n this.config?.platform,\n this.config?.crossPlatformHotkeys ?? true\n );\n const labels = {\n ...defaults,\n ...this.config?.shortcutLabels\n };\n\n const parseKey = (part: string) => {\n const p = part.trim().toLowerCase();\n if (p === 'meta' || p === 'cmd' || p === 'command') return labels.meta;\n if (p === 'ctrl') return labels.ctrl;\n if (p === 'shift') return labels.shift;\n if (p === 'alt') return labels.alt;\n return p.length === 1 ? p.toUpperCase() : part.trim();\n };\n\n if (typeof rawKeys === 'string') {\n return rawKeys.split('+').map(parseKey);\n }\n\n return Array.isArray(rawKeys) ? rawKeys.map(parseKey) : [];\n });\n}\n","@for (key of resolvedKeys(); track key) {\n<kbd class=\"st-kbd-key st-mono-s\">{{ key }}</kbd>\n}","import { Directive, effect, ElementRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[stTheme]'\n})\nexport class StrataThemeDirective {\n element = inject(ElementRef);\n\n stTheme = input.required<Theme>();\n\n constructor() {\n effect(() => {\n const theme = this.stTheme();\n const el = this.element.nativeElement;\n\n // remove previous theme classes\n el.classList.forEach((cls: string) => {\n if (cls.startsWith('st-theme-')) {\n el.classList.remove(cls);\n }\n });\n\n el.classList.add(`st-theme-${theme}`);\n });\n }\n}\n\nexport type Theme = 'brand' | 'default' | 'danger' | 'warning' | 'success' | 'info';\n","import { Component, input, output } from '@angular/core';\nimport { StrataTextStackComponent } from '../../../text-stack/components/text-stack/text-stack.component';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataThemeDirective, Theme } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-message-state',\n imports: [StrataTextStackComponent, StrataButtonDirective, StrataThemeDirective],\n templateUrl: './message-state.component.html',\n styleUrl: './message-state.component.scss'\n})\nexport class StrataMessageStateComponent {\n\n header = input.required<string>();\n subtitle = input<string | undefined>(undefined);\n primaryActionText = input<string | undefined>(undefined);\n primaryActionTheme = input<Theme | undefined>(undefined);\n secondaryActionText = input<string | undefined>(undefined);\n primaryAction = output<void>();\n secondaryAction = output<void>();\n}\n","<div class=\"st-message-state-graphic\">\n <ng-content></ng-content>\n</div>\n\n<st-text-stack overflow=\"wrap\">\n <h3 class=\"st-message-state-header\">{{ header() }}</h3>\n @if (subtitle()) {\n <p class=\"st-message-state-subtitle\">{{ subtitle() }}</p>\n }\n</st-text-stack>\n\n@if (primaryActionText() || secondaryActionText()) {\n <div class=\"st-message-state-actions\">\n @if (secondaryActionText()) {\n <button \n stButton \n variant=\"secondary\" \n (click)=\"secondaryAction.emit()\">\n {{ secondaryActionText() }}\n </button>\n }\n @if (primaryActionText()) {\n <button \n stButton \n variant=\"primary\" \n [stTheme]=\"primaryActionTheme() || 'default'\" \n (click)=\"primaryAction.emit()\">\n {{ primaryActionText() }}\n </button>\n }\n </div>\n}\n","import { DOCUMENT } from '@angular/common';\nimport { effect, inject, Injectable, signal } from '@angular/core';\nimport { StrataAlertContentComponent } from '../components/alert-content/alert-content.component';\nimport { AlertConfiguration, ModalConfiguration } from '../modal.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n private _modals = signal<ModalConfiguration[]>([]);\n public modals = this._modals.asReadonly();\n private document = inject(DOCUMENT);\n\n constructor() {\n effect(() => {\n const body = this.document?.body;\n if (body) {\n if (this.modals().length > 0) {\n body.classList.add('st-scroll-lock');\n } else {\n body.classList.remove('st-scroll-lock');\n }\n }\n });\n }\n\n public showModal(config: ModalConfiguration): void {\n if (!config.size) {\n config.size = 'md';\n }\n this._modals.update((prev) => [...prev, config]);\n }\n\n public showAlert(config: AlertConfiguration, callback: (value: boolean) => void): void {\n this.showModal({\n component: StrataAlertContentComponent,\n size: 'xs',\n variant: 'raised',\n hideCloseButton: true,\n onModalClosed: (val: unknown) => callback(val as boolean),\n disableBackdropClosure: true,\n inputs: {\n title: config.title,\n message: config.message,\n affirmativeButton: config.affirmativeButton,\n cancelButton: config.cancelButton,\n theme: config.theme,\n icon: config.icon\n}\n});\n }\n\n public closeCurrentModal(value?: unknown): void {\n const currentStack = this._modals();\n if (currentStack.length === 0) {\n return;\n }\n\n const modalToClose = currentStack[currentStack.length - 1];\n this.close(modalToClose, value);\n }\n\n public close(config: ModalConfiguration, value?: unknown): void {\n const currentStack = this._modals();\n const index = currentStack.lastIndexOf(config);\n\n if (index === -1) {\n return;\n }\n\n this._modals.update((prev) => {\n const next = [...prev];\n next.splice(index, 1);\n return next;\n });\n\n if (config.onModalClosed) {\n config.onModalClosed(value);\n }\n }\n}\n","import { Component, computed, input, inject } from '@angular/core';\nimport { ModalService } from '../../services/modal.service';\n\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataAvatarComponent } from '../../../avatar/components/avatar/avatar.component';\nimport { StrataButtonGroupComponent } from '../../../button/components/button-group/button-group.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { Theme, StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-alert-content',\n imports: [\n StrataAvatarComponent,\n StrataIconComponent,\n StrataThemeDirective,\n StrataButtonGroupComponent,\n StrataButtonDirective,\n ],\n templateUrl: './alert-content.component.html'\n})\nexport class StrataAlertContentComponent {\n private modalService = inject(ModalService);\n\n title = input.required<string>();\n message = input<string>();\n\n icon = input<string | undefined>(undefined);\n\n readonly computedIcon = computed(() => {\n return this.icon() ?? '';\n });\n\n theme = input<Theme>('info');\n\n affirmativeButton = input.required<string>();\n\n cancelButton = input<string | undefined>(undefined);\n\n onAffirmation(): void {\n this.modalService.closeCurrentModal(true);\n }\n\n onCancel(): void {\n this.modalService.closeCurrentModal(false);\n }\n}\n","<div class=\"alert-content\">\n @if (icon() !== undefined) {\n <st-avatar size=\"lg\" [stTheme]=\"theme()\">\n <st-icon [name]=\"computedIcon()\"></st-icon>\n </st-avatar>\n }\n\n <p class=\"alert-title\">{{ title() }}</p>\n @if (message()) {\n <p class=\"alert-message\">{{ message() }}</p>\n }\n</div>\n<st-button-group justification=\"expand\">\n @if (cancelButton()) {\n <button stButton (click)=\"onCancel()\">{{ cancelButton() }}</button>\n }\n <button stButton [stTheme]=\"theme()\" variant=\"primary\" (click)=\"onAffirmation()\">{{ affirmativeButton() }}</button>\n</st-button-group>\n","import { Type } from '@angular/core';\nimport { Theme } from '../theming/directives/theme.directive';\n\nexport interface ModalConfiguration {\n title?: string;\n component: Type<unknown>;\n onModalClosed?: (value?: unknown) => void;\n hideCloseButton?: boolean;\n disableBackdropClosure?: boolean;\n size?: ModalSize;\n variant?: ModalVariant;\n inputs?: Record<string, unknown>;\n}\n\nexport interface AlertConfiguration {\n message: string;\n icon?: string;\n title?: string;\n theme?: Theme;\n affirmativeButton: string;\n cancelButton?: string;\n}\n\nexport type ModalSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ModalVariant = 'default' | 'raised';\n\nexport abstract class StrataModalRef {\n abstract close(value?: unknown): void;\n}\n","import { Component, inject, input } from '@angular/core';\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { ModalService } from '../../services/modal.service';\n\n@Component({\n selector: 'st-modal-header',\n imports: [StrataButtonDirective, StrataIconComponent],\n templateUrl: './modal-header.component.html'\n})\nexport class StrataModalHeaderComponent {\n modalService = inject(ModalService);\n\n title = input<string | null | undefined>(null);\n\n showCloseButton = input<boolean>(true);\n\n onCloseButtonClicked(event: MouseEvent): void {\n this.modalService.closeCurrentModal();\n event.stopPropagation();\n }\n}\n","@if (title()) {\n<span class=\"st-body-l-bold\">{{ title() }}</span>\n}\n@if (showCloseButton()) {\n<button stButton (click)=\"onCloseButtonClicked($event)\" variant=\"ghost\">\n <st-icon name=\"close\" size=\"sm\"></st-icon>\n</button>\n}","import {\n AfterViewInit, Component, ComponentRef, computed, ElementRef, HostBinding, HostListener,\n inject, Injector, input, model, OnDestroy, OnInit, viewChild, ViewContainerRef\n} from '@angular/core';\nimport { ModalConfiguration, ModalSize, ModalVariant, StrataModalRef } from '../../modal.model';\nimport { ModalService } from '../../services/modal.service';\nimport { StrataModalHeaderComponent } from '../modal-header/modal-header.component';\n\n@Component({\n selector: 'st-modal',\n imports: [StrataModalHeaderComponent],\n templateUrl: './modal.component.html'\n})\nexport class StrataModalComponent implements OnInit, AfterViewInit, OnDestroy {\n private modalService = inject(ModalService);\n private injector = inject(Injector);\n private elementRef = inject(ElementRef);\n private previousActiveElement: HTMLElement | null = null;\n\n modalContents = viewChild.required<string, ViewContainerRef>('modalBody', {\n read: ViewContainerRef\n });\n\n configuration = input.required<ModalConfiguration>();\n\n size = model<ModalSize | undefined>('md');\n variant = input<ModalVariant>();\n\n readonly currentSize = computed(() => this.size() ?? this.configuration()?.size ?? 'md');\n readonly currentVariant = computed(() => this.variant() ?? this.configuration()?.variant ?? 'default');\n\n @HostBinding('attr.role')\n readonly role = 'dialog';\n\n @HostBinding('attr.aria-modal')\n readonly ariaModal = 'true';\n\n @HostBinding('attr.tabindex')\n readonly tabIndex = -1;\n\n @HostBinding('class')\n get hostClasses(): string {\n return `st-modal-size-${this.currentSize()} st-modal-variant-${this.currentVariant()}`;\n }\n\n ngOnInit(): void {\n if (typeof document !== 'undefined' && document.activeElement instanceof HTMLElement) {\n this.previousActiveElement = document.activeElement;\n }\n }\n\n ngOnDestroy(): void {\n if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {\n this.previousActiveElement.focus();\n }\n }\n\n ngAfterViewInit(): void {\n const modalRef: StrataModalRef = {\n close: (value?: unknown) => this.modalService.close(this.configuration(), value)\n };\n\n const customInjector = Injector.create({\n providers: [{ provide: StrataModalRef, useValue: modalRef }],\n parent: this.injector\n });\n\n const injectedComponent = this.modalContents().createComponent(this.configuration().component, {\n injector: customInjector\n });\n\n if (this.configuration().inputs) {\n this.setInputsOnInjectedComponent(injectedComponent, this.configuration().inputs!);\n }\n\n this.focusInitialElement();\n }\n\n private setInputsOnInjectedComponent(\n injectedComponent: ComponentRef<unknown>,\n inputs: Record<string, unknown>,\n ): void {\n Object.keys(inputs).forEach((key) => {\n injectedComponent.setInput(key, inputs[key]);\n });\n }\n\n private focusInitialElement(): void {\n const autofocus = this.elementRef.nativeElement.querySelector('[autofocus]') as HTMLElement | null;\n if (autofocus && typeof autofocus.focus === 'function') {\n autofocus.focus();\n return;\n }\n\n this.elementRef.nativeElement.focus();\n }\n\n onCardClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Tab') {\n return;\n }\n\n const focusable = this.getFocusableElements();\n if (focusable.length === 0) {\n event.preventDefault();\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n if (event.shiftKey) {\n if (\n document.activeElement === first ||\n document.activeElement === this.elementRef.nativeElement ||\n !this.elementRef.nativeElement.contains(document.activeElement)\n ) {\n event.preventDefault();\n last.focus();\n }\n } else {\n if (\n document.activeElement === last ||\n document.activeElement === this.elementRef.nativeElement ||\n !this.elementRef.nativeElement.contains(document.activeElement)\n ) {\n event.preventDefault();\n first.focus();\n }\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n const selector = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n return Array.from(this.elementRef.nativeElement.querySelectorAll(selector)) as HTMLElement[];\n }\n}\n","@if (configuration().title || !configuration().hideCloseButton) {\n <st-modal-header\n [title]=\"configuration().title\"\n [showCloseButton]=\"configuration().hideCloseButton === true ? false : true\"\n (click)=\"onCardClick($event)\"></st-modal-header>\n}\n\n<div class=\"modal-content\">\n <ng-template #modalBody></ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject } from '@angular/core';\nimport { ModalService } from '../../services/modal.service';\nimport { StrataModalComponent } from '../modal/modal.component';\n\n@Component({\n selector: 'st-modal-container',\n imports: [StrataModalComponent, CommonModule],\n templateUrl: './modal-container.component.html'\n})\nexport class StrataModalContainerComponent {\n modalService = inject(ModalService);\n\n @HostListener('document:keydown.escape', ['$event'])\n onEscape(event: Event): void {\n const modals = this.modalService.modals();\n const currentModal = modals[modals.length - 1];\n\n if (!currentModal || currentModal.disableBackdropClosure) {\n return;\n }\n event.preventDefault();\n this.modalService.closeCurrentModal();\n }\n\n onBackdropClick(event: MouseEvent): void {\n event.stopPropagation();\n const modals = this.modalService.modals();\n const currentModal = modals[modals.length - 1];\n\n if (!currentModal || currentModal.disableBackdropClosure) {\n return;\n }\n this.modalService.closeCurrentModal();\n }\n}\n","<div class=\"modal-wrapper\">\n @for (modal of modalService.modals(); track modal; let last = $last) {\n <st-modal [ngClass]=\"{ 'hidden-under-other-modal': !last }\" [configuration]=\"modal\" [size]=\"modal.size\" [variant]=\"modal.variant\"> </st-modal>\n }\n</div>\n@if (modalService.modals().length > 0) {\n <div class=\"st-internal-backdrop active\" (click)=\"onBackdropClick($event)\"></div>\n}\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-modal-footer',\n imports: [],\n templateUrl: './modal-footer.component.html',\n host: {\n '[attr.justification]': 'justification()',\n }\n})\nexport class StrataModalFooterComponent {\n justification = input<ModalFooterJustification>('end');\n\n @HostBinding('class')\n get hostClass(): string {\n return `st-modal-footer st-modal-footer-${this.justification()}`;\n }\n}\n\nexport type ModalFooterJustification = 'start' | 'center' | 'end' | 'space-between';\n","<ng-content></ng-content>\n","import { Theme } from '../theming/directives/theme.directive';\n\nexport interface StrataNotificationRef {\n readonly id: string;\n dismiss(): void;\n}\n\nexport interface NotificationConfiguration {\n id?: string;\n icon?: string;\n message: string;\n theme?: Theme;\n duration?: number;\n dismissible?: boolean;\n}\n\nexport type NotificationsWithIds = NotificationConfiguration & {\n id: string;\n dismissible: boolean;\n};\n\nexport const DEFAULT_THEME: Theme = 'info';\n\nexport const DEFAULT_DURATION = 3000;\n","import { Injectable, signal } from '@angular/core';\nimport {\n DEFAULT_DURATION,\n DEFAULT_THEME,\n NotificationConfiguration,\n NotificationsWithIds,\n StrataNotificationRef\n} from '../notification.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n public notificationStack = signal<NotificationsWithIds[]>([]);\n\n public dismiss(notificationId: string): void {\n const currentStack = this.notificationStack().filter(\n (notification) => notification.id !== notificationId,\n );\n this.notificationStack.set(currentStack);\n }\n\n public showNotification(config: NotificationConfiguration): StrataNotificationRef {\n const newNotificationId = config.id ?? crypto.randomUUID();\n const duration = config.duration !== undefined ? config.duration : DEFAULT_DURATION;\n const isPersistent = duration === 0;\n const dismissible = config.dismissible !== undefined ? config.dismissible : isPersistent;\n\n const currentStack = this.notificationStack();\n this.notificationStack.set([\n ...currentStack,\n {\n id: newNotificationId,\n message: config.message,\n duration: duration,\n theme: config.theme ?? DEFAULT_THEME,\n icon: config.icon,\n dismissible\n }\n ]);\n\n if (duration > 0) {\n this.hideNotification(newNotificationId, duration);\n }\n\n return {\n id: newNotificationId,\n dismiss: () => this.dismiss(newNotificationId)\n };\n }\n\n private hideNotification(notificationId: string, duration: number): void {\n setTimeout(() => {\n this.dismiss(notificationId);\n }, duration);\n }\n}\n","import { Component, input, output } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-notification',\n imports: [StrataIconComponent],\n templateUrl: './notification.component.html'\n})\nexport class StrataNotificationComponent {\n icon = input<string | undefined>(undefined);\n message = input.required<string>();\n dismissible = input(false);\n dismiss = output<void>();\n\n onDismiss(): void {\n this.dismiss.emit();\n }\n}\n","@if (icon()) {\n <st-icon [name]=\"icon()!\"></st-icon>\n}\n<span class=\"notification-message\">{{ message() }}</span>\n@if (dismissible()) {\n <button\n type=\"button\"\n class=\"notification-close-btn\"\n aria-label=\"Dismiss notification\"\n (click)=\"onDismiss()\"\n >\n <st-icon name=\"close\"></st-icon>\n </button>\n}\n","import { Component, inject } from '@angular/core';\nimport { NotificationService } from '../../services/notification.service';\nimport { StrataNotificationComponent } from '../notification/notification.component';\n\nimport { StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-notification-container',\n imports: [StrataNotificationComponent, StrataThemeDirective],\n templateUrl: './notification-container.component.html'\n})\nexport class StrataNotificationContainerComponent {\n notificationService = inject(NotificationService);\n\n notifications = this.notificationService.notificationStack;\n\n dismiss(id: string): void {\n this.notificationService.dismiss(id);\n }\n}\n","@for (notification of notifications(); track notification.id) {\n <st-notification\n [icon]=\"notification.icon\"\n [message]=\"notification.message\"\n [dismissible]=\"notification.dismissible\"\n [stTheme]=\"notification.theme ?? 'info'\"\n (dismiss)=\"dismiss(notification.id)\"\n >\n </st-notification>\n}\n","import { CommonModule, formatNumber, getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Component, computed, inject, input, LOCALE_ID } from '@angular/core';\n\n@Component({\n selector: 'st-number-display',\n imports: [CommonModule],\n templateUrl: './number-display.component.html'\n})\nexport class StrataNumberDisplayComponent {\n private readonly locale = inject(LOCALE_ID);\n\n value = input.required<number>();\n\n decimals = input<number>(2);\n\n private digitsInfo = computed(() => {\n return `1.${this.decimals()}-${this.decimals()}`;\n });\n\n private formattedNumber = computed(() => formatNumber(this.value(), this.locale, this.digitsInfo()));\n\n readonly separatedDigits = computed(() => {\n const parts = this.formattedNumber().split(this.decimalPoint());\n return {\n integer: parts[0],\n decimals: parts[1] ?? undefined\n} as { integer: string; decimals?: string };\n });\n\n changedValue = input<boolean>(false);\n\n showPlus = input<boolean>(false);\n\n deemphasizeDecimals = input<boolean>(true);\n\n readonly decimalPoint = computed(() => getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal));\n}\n","<p\n [ngClass]=\"{\n positive: changedValue() && value() > 0,\n negative: changedValue() && value() < 0,\n }\"\n>\n @if (showPlus() && this.value() > 0) {\n +\n }\n <span class=\"integer-value\">{{ separatedDigits().integer }}</span>\n @if (separatedDigits().decimals) {\n <span\n class=\"decimal-number\"\n [ngClass]=\"{ deemphasize: deemphasizeDecimals() }\"\n >{{ decimalPoint() }}{{ separatedDigits().decimals }}</span\n >\n }\n</p>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-spinner',\n imports: [],\n templateUrl: './spinner.component.html',\n host: {\n 'role': 'status',\n 'aria-label': 'Loading'\n }\n})\nexport class StrataSpinnerComponent {\n size = input<SpinnerSize>('md');\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [this.size()];\n }\n}\n\nexport type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg';\n","<span class=\"st-spinner\"></span>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n OnDestroy,\n computed,\n effect,\n forwardRef,\n input,\n model,\n output,\n signal,\n viewChildren\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataSpinnerComponent } from '../../../spinner/components/spinner/spinner.component';\n\nexport type OtpType = 'number' | 'alphanumeric' | 'password';\nexport type OtpSize = 'sm' | 'md' | 'lg';\nexport type OtpState = 'idle' | 'loading' | 'success' | 'error';\n\n@Component({\n selector: 'st-otp',\n imports: [StrataSpinnerComponent],\n templateUrl: './otp.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataOtpComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"',\n '[class.st-state-loading]': 'effectiveState() === \"loading\"',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataOtpComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n value = model<string>('');\n length = input<number>(6);\n type = input<OtpType>('number');\n uppercase = input<boolean>(true);\n mask = input<boolean>(false);\n size = input<OtpSize>('md');\n state = model<OtpState>('idle');\n loading = input<boolean>(false);\n error = input<boolean | string>(false);\n success = input<boolean>(false);\n disabled = input<boolean>(false);\n readonly = input<boolean>(false);\n placeholder = input<string>('');\n ariaLabel = input<string>('One-time password');\n helperText = input<string | undefined>(undefined);\n errorMessage = input<string | undefined>(undefined);\n autofocus = input<boolean>(false);\n clearOnError = input<boolean>(false);\n clearOnErrorDelay = input<number>(800);\n resetErrorOnInput = input<boolean>(true);\n\n completed = output<string>();\n errorReset = output<void>();\n\n slotInputs = viewChildren<ElementRef<HTMLInputElement>>('slotInput');\n\n digits = signal<string[]>([]);\n private cvaDisabled = signal<boolean>(false);\n private clearOnErrorTimer: ReturnType<typeof setTimeout> | null = null;\n\n effectiveState = computed<OtpState>(() => {\n if (this.loading() || this.state() === 'loading') {\n return 'loading';\n }\n if (this.error() || this.state() === 'error') {\n return 'error';\n }\n if (this.success() || this.state() === 'success') {\n return 'success';\n }\n return this.state();\n });\n\n effectiveDisabled = computed<boolean>(() => {\n return this.disabled() || this.cvaDisabled() || this.effectiveState() === 'loading';\n });\n\n computedErrorMessage = computed<string | undefined>(() => {\n const err = this.error();\n if (typeof err === 'string' && err.length > 0) {\n return err;\n }\n return this.errorMessage();\n });\n\n private onChange: (val: string) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n constructor() {\n effect(() => {\n const len = this.length();\n const val = this.value() || '';\n const currentDigits = this.digits();\n const chars = val.slice(0, len).split('');\n const nextDigits = Array.from({ length: len }, (_, i) => chars[i] || '');\n\n const isDifferent =\n nextDigits.length !== currentDigits.length ||\n nextDigits.some((d, i) => d !== currentDigits[i]);\n\n if (isDifferent) {\n this.digits.set(nextDigits);\n }\n });\n\n effect(() => {\n const currentState = this.effectiveState();\n const shouldAutoClear = this.clearOnError();\n const delay = this.clearOnErrorDelay();\n\n if (currentState === 'error' && shouldAutoClear) {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n }\n this.clearOnErrorTimer = setTimeout(() => {\n this.clear();\n }, delay);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.autofocus() && !this.effectiveDisabled()) {\n this.focus(0);\n }\n }\n\n ngOnDestroy(): void {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n this.clearOnErrorTimer = null;\n }\n }\n\n focus(index = 0): void {\n const inputs = this.slotInputs();\n if (inputs && inputs[index]) {\n inputs[index].nativeElement.focus();\n inputs[index].nativeElement.select();\n }\n }\n\n clear(): void {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n this.clearOnErrorTimer = null;\n }\n const emptyDigits = Array.from({ length: this.length() }, () => '');\n this.digits.set(emptyDigits);\n this.value.set('');\n this.onChange('');\n if (this.state() === 'error') {\n this.state.set('idle');\n }\n this.errorReset.emit();\n this.focus(0);\n }\n\n onKeyDown(event: KeyboardEvent, index: number): void {\n if (this.effectiveDisabled() || this.readonly()) {\n return;\n }\n\n if (event.key === 'Backspace') {\n this.handleUserInputStart();\n event.preventDefault();\n if (this.digits()[index]) {\n this.updateSlot(index, '');\n } else if (index > 0) {\n this.focus(index - 1);\n this.updateSlot(index - 1, '');\n }\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (index > 0) {\n this.focus(index - 1);\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (index < this.length() - 1) {\n this.focus(index + 1);\n }\n return;\n }\n\n if (event.key === 'Delete') {\n this.handleUserInputStart();\n event.preventDefault();\n this.updateSlot(index, '');\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n\n if (event.key.length === 1) {\n event.preventDefault();\n if (this.isValidChar(event.key)) {\n this.handleUserInputStart();\n const char = this.sanitizeChar(event.key);\n this.updateSlot(index, char);\n if (index < this.length() - 1) {\n this.focus(index + 1);\n }\n }\n }\n }\n\n onInput(event: Event, index: number): void {\n if (this.effectiveDisabled() || this.readonly()) {\n return;\n }\n\n this.handleUserInputStart();\n const inputEl = event.target as HTMLInputElement;\n const rawVal = inputEl.value;\n\n if (rawVal.length > 1) {\n this.distributeChars(rawVal, index);\n } else if (rawVal.length === 1) {\n if (this.isValidChar(rawVal)) {\n const char = this.sanitizeChar(rawVal);\n this.updateSlot(index, char);\n if (index < this.length() - 1) {\n this.focus(index + 1);\n }\n } else {\n inputEl.value = this.digits()[index] || '';\n }\n } else {\n this.updateSlot(index, '');\n }\n }\n\n onPaste(event: ClipboardEvent, index: number): void {\n if (this.effectiveDisabled() || this.readonly()) {\n return;\n }\n\n event.preventDefault();\n const pastedText = event.clipboardData?.getData('text') || '';\n if (!pastedText) {\n return;\n }\n\n this.handleUserInputStart();\n this.distributeChars(pastedText, index);\n }\n\n onFocus(index: number): void {\n const inputs = this.slotInputs();\n if (inputs && inputs[index]) {\n inputs[index].nativeElement.select();\n }\n }\n\n onClick(index: number): void {\n const inputs = this.slotInputs();\n if (inputs && inputs[index]) {\n inputs[index].nativeElement.select();\n }\n }\n\n writeValue(val: string | null | undefined): void {\n const safeVal = val != null ? String(val) : '';\n this.value.set(safeVal);\n }\n\n registerOnChange(fn: (val: string) => void): void {\n this.onChange = fn;\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 private handleUserInputStart(): void {\n if (this.effectiveState() === 'error' && this.resetErrorOnInput()) {\n if (this.clearOnErrorTimer) {\n clearTimeout(this.clearOnErrorTimer);\n this.clearOnErrorTimer = null;\n }\n if (this.state() === 'error') {\n this.state.set('idle');\n }\n this.errorReset.emit();\n }\n }\n\n private isValidChar(char: string): boolean {\n if (this.type() === 'number') {\n return /^[0-9]$/.test(char);\n }\n return /^[a-zA-Z0-9]$/.test(char);\n }\n\n private sanitizeChar(char: string): string {\n if (this.type() === 'alphanumeric' && this.uppercase()) {\n return char.toUpperCase();\n }\n return char;\n }\n\n private distributeChars(rawText: string, startIndex: number): void {\n const chars = rawText\n .split('')\n .filter((c) => this.isValidChar(c))\n .map((c) => this.sanitizeChar(c));\n\n if (chars.length === 0) {\n return;\n }\n\n const current = [...this.digits()];\n const start = chars.length >= this.length() ? 0 : startIndex;\n\n chars.forEach((c, idx) => {\n const targetIndex = start + idx;\n if (targetIndex < this.length()) {\n current[targetIndex] = c;\n }\n });\n\n this.digits.set(current);\n const newVal = current.join('');\n this.value.set(newVal);\n this.onChange(newVal);\n this.onTouched();\n\n const nextEmptyIndex = current.findIndex((d) => !d);\n const focusIndex =\n nextEmptyIndex !== -1\n ? nextEmptyIndex\n : Math.min(start + chars.length, this.length() - 1);\n\n this.focus(focusIndex);\n\n if (newVal.length === this.length() && current.every((d) => d.length === 1)) {\n this.completed.emit(newVal);\n }\n }\n\n private updateSlot(index: number, char: string): void {\n const current = [...this.digits()];\n current[index] = char;\n this.digits.set(current);\n const newVal = current.join('');\n this.value.set(newVal);\n this.onChange(newVal);\n this.onTouched();\n\n if (newVal.length === this.length() && current.every((d) => d.length === 1)) {\n this.completed.emit(newVal);\n }\n }\n}\n","<div class=\"st-otp-container\" role=\"group\" [attr.aria-label]=\"ariaLabel()\">\n @for (digit of digits(); track $index) {\n <input\n #slotInput\n class=\"st-otp-input\"\n [attr.type]=\"(type() === 'password' || mask()) ? 'password' : 'text'\"\n [attr.inputmode]=\"type() === 'number' ? 'numeric' : 'text'\"\n [attr.pattern]=\"type() === 'number' ? '[0-9]*' : undefined\"\n [attr.autocomplete]=\"'one-time-code'\"\n [attr.aria-label]=\"'Digit ' + ($index + 1) + ' of ' + length()\"\n [attr.aria-invalid]=\"effectiveState() === 'error'\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n [value]=\"digit\"\n (keydown)=\"onKeyDown($event, $index)\"\n (input)=\"onInput($event, $index)\"\n (paste)=\"onPaste($event, $index)\"\n (focus)=\"onFocus($index)\"\n (click)=\"onClick($index)\"\n />\n }\n\n @if (effectiveState() === 'loading') {\n <div class=\"st-otp-loading-overlay\" aria-hidden=\"true\">\n <st-spinner size=\"sm\"></st-spinner>\n </div>\n }\n</div>\n\n@if (computedErrorMessage()) {\n <div class=\"st-otp-message st-message-error\" role=\"alert\">\n {{ computedErrorMessage() }}\n </div>\n} @else if (helperText()) {\n <div class=\"st-otp-message\">\n {{ helperText() }}\n </div>\n}\n","import { Component, computed, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-pagination',\n imports: [],\n templateUrl: './pagination.component.html'\n})\nexport class StrataPaginationComponent {\n @HostBinding('attr.role')\n readonly role = 'navigation';\n\n @HostBinding('attr.aria-label')\n readonly ariaLabel = 'Pagination';\n\n currentPage = model<number>(1);\n\n totalPages = input.required<number>();\n\n pageSelected = output<number>();\n\n pageButtons = computed(() => this.calculatePageButtons(this.currentPage(), this.totalPages()));\n\n hideNextPreviousAtStartEnd = input(false);\n\n changePage(newPage: number): void {\n this.currentPage.set(newPage);\n this.pageSelected.emit(this.currentPage());\n }\n\n private calculatePageButtons(currentPage: number, totalPages: number): PaginationItem[] {\n const buttons: PaginationItem[] = [];\n\n if (totalPages <= 7) {\n return this.showAllPages(totalPages);\n }\n\n if (currentPage < 4) {\n return this.showStartingPages(totalPages);\n }\n\n if (currentPage > totalPages - 4) {\n return this.showEndingPages(totalPages);\n }\n buttons.push(this.pageItem(1));\n buttons.push(this.spaceItem());\n buttons.push(this.pageItem(currentPage - 1));\n buttons.push(this.pageItem(currentPage));\n buttons.push(this.pageItem(currentPage + 1));\n\n buttons.push(this.spaceItem());\n\n buttons.push(this.pageItem(totalPages));\n return buttons;\n }\n\n private showStartingPages(totalPages: number): PaginationItem[] {\n return [\n this.pageItem(1),\n this.pageItem(2),\n this.pageItem(3),\n this.pageItem(4),\n this.spaceItem(),\n this.pageItem(totalPages - 1),\n this.pageItem(totalPages),\n ];\n }\n\n private showEndingPages(totalPages: number): PaginationItem[] {\n return [\n this.pageItem(1),\n this.pageItem(2),\n this.spaceItem(),\n this.pageItem(totalPages - 3),\n this.pageItem(totalPages - 2),\n this.pageItem(totalPages - 1),\n this.pageItem(totalPages),\n ];\n }\n\n private showAllPages(totalPages: number): PaginationItem[] {\n const buttons: PaginationItem[] = [];\n\n for (let i = 1; i <= totalPages; i++) {\n buttons.push(this.pageItem(i));\n }\n return buttons;\n }\n\n private spaceItem(): PaginationItem {\n return { page: undefined, text: '...', clickable: false };\n }\n\n private pageItem(page: number): PaginationItem {\n return {\n page: page,\n text: page + '',\n clickable: true\n};\n }\n}\n\nexport interface PaginationItem {\n page: number | undefined;\n text: string;\n clickable: boolean;\n}\n","<button\n type=\"button\"\n [disabled]=\"currentPage() === 1\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n aria-label=\"Previous page\"\n (click)=\"changePage(currentPage() - 1)\"\n>\n Previous\n</button>\n@for (page of pageButtons(); track $index) {\n @if (page.clickable) {\n <button\n type=\"button\"\n [class.selected]=\"page.page === currentPage()\"\n [class.clickable]=\"true\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : null\"\n [attr.aria-label]=\"'Page ' + page.page\"\n (click)=\"page.page ? changePage(page.page) : null\"\n >\n {{ page.text }}\n </button>\n } @else {\n <span class=\"pagination-ellipsis\" aria-hidden=\"true\">\n {{ page.text }}\n </span>\n }\n}\n<button\n type=\"button\"\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"changePage(currentPage() + 1)\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n aria-label=\"Next page\"\n>\n Next\n</button>\n","import { DecimalPipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-progress-linear',\n imports: [DecimalPipe, NgTemplateOutlet],\n templateUrl: './progress-linear.component.html'\n})\nexport class StrataProgressLinearComponent {\n min = input(0);\n max = input(100);\n value = input.required<number>();\n showLabel = input(true);\n labelFormat = input<ProgressLinearLabelFormat>('percentage');\n growDirection = input<ProgressLinearGrowDirection>('right');\n\n percentage = computed(() => {\n if (this.max() <= this.min()) {\n return 0;\n }\n\n const clampedValue = Math.min(Math.max(this.value(), this.min()), this.max());\n const progressedValue = clampedValue - this.min();\n const progressableValues = this.max() - this.min();\n return (progressedValue / progressableValues) * 100;\n });\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [`grow-${this.growDirection()}`];\n }\n\n @HostBinding('style.--st-progress-percentage')\n get percentageProperty(): number {\n return this.percentage();\n }\n}\n\nexport type ProgressLinearLabelFormat = 'percentage' | 'value';\nexport type ProgressLinearGrowDirection = 'left' | 'right';\n","<div class=\"linear-container\">\n <div class=\"linear-bar\" [style.width.%]=\"percentage()\"></div>\n</div>\n\n<ng-container [ngTemplateOutlet]=\"label\"></ng-container>\n\n<ng-template #label>\n @if (showLabel()) {\n <span class=\"label\">\n @switch (labelFormat()) {\n @case (\"percentage\") {\n {{ percentage() | number: \"1.0-0\" }}%\n }\n @case (\"value\") {\n {{ value() | number: \"1.0-0\" }}\n }\n }\n </span>\n }\n</ng-template>\n","import { DecimalPipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-progress-radial',\n imports: [DecimalPipe, NgTemplateOutlet],\n templateUrl: './progress-radial.component.html'\n})\nexport class StrataProgressRadialComponent {\n min = input(0);\n max = input(100);\n value = input.required<number>();\n showLabel = input(true);\n labelFormat = input<ProgressRadialLabelFormat>('percentage');\n\n size = input(120);\n strokeWidth = input(10);\n\n percentage = computed(() => {\n if (this.max() <= this.min()) {\n return 0;\n }\n\n const clampedValue = Math.min(Math.max(this.value(), this.min()), this.max());\n const progressedValue = clampedValue - this.min();\n const progressableValues = this.max() - this.min();\n return (progressedValue / progressableValues) * 100;\n });\n\n radius = computed(() => (this.size() - this.strokeWidth()) / 2);\n circumference = computed(() => 2 * Math.PI * this.radius());\n dashOffset = computed(() => this.circumference() * (1 - this.percentage() / 100));\n\n @HostBinding('style.--st-progress-percentage')\n get percentageProperty(): number {\n return this.percentage();\n }\n}\n\nexport type ProgressRadialLabelFormat = 'percentage' | 'value';\n","<div class=\"radial-container\">\n <svg width=\"100%\" height=\"100%\">\n <circle class=\"background\"></circle>\n\n <circle class=\"progress\" stroke-linecap=\"round\"></circle>\n </svg>\n\n <ng-container [ngTemplateOutlet]=\"label\"></ng-container>\n</div>\n\n<ng-template #label>\n @if (showLabel()) {\n <span class=\"label\">\n @switch (labelFormat()) {\n @case (\"percentage\") {\n {{ percentage() | number: \"1.0-0\" }}%\n }\n @case (\"value\") {\n {{ value() | number: \"1.0-0\" }}\n }\n }\n </span>\n }\n</ng-template>\n","import {\n Component,\n computed,\n contentChildren,\n effect,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataRadioComponent } from '../radio/radio.component';\n\n@Component({\n selector: 'st-radio-group',\n imports: [],\n template: `<ng-content></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataRadioGroupComponent),\n multi: true\n }\n ],\n host: {\n role: 'radiogroup',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[class.disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataRadioGroupComponent implements ControlValueAccessor {\n value = model<string>('');\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n radios = contentChildren(StrataRadioComponent, { descendants: true });\n\n private onChange: (val: string) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n constructor() {\n effect(() => {\n const currentValue = this.value();\n this.radios().forEach((radio) => {\n radio.checked.set(radio.value() === currentValue);\n });\n });\n\n effect(() => {\n const isDisabled = this.effectiveDisabled();\n this.radios().forEach((radio) => {\n radio.groupDisabled.set(isDisabled);\n });\n });\n\n effect((onCleanup) => {\n const radios = this.radios();\n const subs = radios.map((radio) =>\n radio.selected.subscribe(() => {\n const val = radio.value();\n this.value.set(val);\n this.onChange(val);\n this.onTouched();\n })\n );\n\n onCleanup(() => {\n subs.forEach((s) => s.unsubscribe());\n });\n });\n }\n\n writeValue(val: string | null | undefined): void {\n this.value.set(val != null ? String(val) : '');\n }\n\n registerOnChange(fn: (val: string) => void): void {\n this.onChange = fn;\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","import { Component, computed, HostBinding, input, model, output, signal } from '@angular/core';\n\n@Component({\n selector: 'st-segmented-control-item',\n imports: [],\n templateUrl: './segmented-control-item.component.html',\n styleUrl: './segmented-control-item.component.scss',\n host: {\n role: 'tab',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': 'effectiveDisabled()',\n '[class.st-disabled]': 'effectiveDisabled()',\n '(click)': 'onClick()',\n '(keydown.space)': 'onKeydown($event)',\n '(keydown.enter)': 'onKeydown($event)'\n }\n})\nexport class StrataSegmentedControlItemComponent {\n text = input.required<string>();\n value = input<string | undefined>(undefined);\n effectiveValue = computed(() => this.value() ?? this.text());\n\n selected = model(false);\n\n disabled = input(false);\n groupDisabled = signal(false);\n effectiveDisabled = computed(() => this.disabled() || this.groupDisabled());\n\n selectionChanged = output();\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.effectiveDisabled() ? null : 0;\n }\n\n @HostBinding('attr.disabled')\n get disabledAttribute(): boolean | null {\n return this.effectiveDisabled() ? true : null;\n }\n\n onClick(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n\n onKeydown(event: Event): void {\n if (this.effectiveDisabled()) {\n return;\n }\n event.preventDefault();\n this.onClick();\n }\n}\n","{{ text() }}\n","import {\n AfterViewInit,\n booleanAttribute,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataSegmentedControlItemComponent } from '../segmented-control-item/segmented-control-item.component';\n\nexport type SegmentedControlSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-segmented-control',\n imports: [],\n templateUrl: './segmented-control.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataSegmentedControlComponent),\n multi: true\n }\n ],\n host: {\n role: 'tablist',\n '[class.st-segmented-control-full-width]': 'fullWidth()',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataSegmentedControlComponent implements ControlValueAccessor, AfterViewInit {\n private elementRef = inject(ElementRef);\n private destroyRef = inject(DestroyRef);\n\n value = model<string>('');\n disabled = input(false, { transform: booleanAttribute });\n size = input<SegmentedControlSize>('md');\n fullWidth = input(false, { transform: booleanAttribute });\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: string) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n segmentItems = contentChildren(StrataSegmentedControlItemComponent);\n segmentItemsRefs = contentChildren(StrataSegmentedControlItemComponent, {\n read: ElementRef\n });\n\n selectedItem = signal<StrataSegmentedControlItemComponent | null>(null);\n selectedIndex = signal(0);\n\n offsets = signal<number[]>([]);\n itemWidths = signal<number[]>([]);\n tops = signal<number[]>([]);\n heights = signal<number[]>([]);\n\n offset = computed(() => this.offsets()[this.selectedIndex()] ?? 0);\n indicatorWidth = computed(() => this.itemWidths()[this.selectedIndex()] ?? 0);\n indicatorTop = computed(() => this.tops()[this.selectedIndex()] ?? 0);\n indicatorHeight = computed(() => this.heights()[this.selectedIndex()] ?? 0);\n\n constructor() {\n effect((onCleanup) => {\n const items = this.segmentItems();\n const subs = items.map((item) =>\n item.selectionChanged.subscribe(() => {\n this.selectItem(item);\n })\n );\n\n this.updateDimensions();\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n effect(() => {\n const isDisabled = this.effectiveDisabled();\n this.segmentItems().forEach((item) => item.groupDisabled.set(isDisabled));\n });\n\n effect(() => {\n const targetVal = this.value();\n if (!targetVal) return;\n const items = this.segmentItems();\n const match = items.find((item) => item.effectiveValue() === targetVal);\n if (match && match !== this.selectedItem()) {\n this.selectItem(match, false);\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (this.segmentItems().length === 0) {\n return;\n }\n\n this.updateDimensions();\n\n const targetVal = this.value();\n const matchByVal = targetVal ? this.segmentItems().find((item) => item.effectiveValue() === targetVal) : undefined;\n const initiallySelected = matchByVal ?? this.segmentItems().find((item) => item.selected());\n\n if (!initiallySelected) {\n const firstItem = this.segmentItems()[0];\n firstItem.selected.set(true);\n this.selectItem(firstItem, false);\n } else {\n this.selectItem(initiallySelected, false);\n }\n\n const observer = new ResizeObserver(() => {\n this.updateDimensions();\n });\n observer.observe(this.elementRef.nativeElement);\n this.destroyRef.onDestroy(() => observer.disconnect());\n }\n\n selectItem(selectedItem: StrataSegmentedControlItemComponent, emitChange = true): void {\n if (this.effectiveDisabled()) return;\n\n this.segmentItems().forEach((item) => {\n item.selected.set(item === selectedItem);\n });\n\n this.selectedItem.set(selectedItem);\n const index = this.segmentItems().indexOf(selectedItem);\n this.selectedIndex.set(index >= 0 ? index : 0);\n\n const val = selectedItem.effectiveValue();\n this.value.set(val);\n\n if (emitChange) {\n this.onChange(val);\n this.onTouched();\n }\n }\n\n private updateDimensions(): void {\n const refs = this.segmentItemsRefs();\n if (!refs || refs.length === 0) return;\n\n const offsets = refs.map(ref => ref.nativeElement.offsetLeft);\n const widths = refs.map(ref => ref.nativeElement.offsetWidth);\n const tops = refs.map(ref => ref.nativeElement.offsetTop);\n const heights = refs.map(ref => ref.nativeElement.offsetHeight);\n\n this.offsets.set(offsets);\n this.itemWidths.set(widths);\n this.tops.set(tops);\n this.heights.set(heights);\n }\n\n writeValue(val: string | null | undefined): void {\n const safeVal = val != null ? String(val) : '';\n this.value.set(safeVal);\n const items = this.segmentItems();\n if (items.length > 0 && safeVal) {\n const match = items.find((item) => item.effectiveValue() === safeVal);\n if (match) {\n this.selectItem(match, false);\n }\n }\n }\n\n registerOnChange(fn: (val: string) => void): void {\n this.onChange = fn;\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","<ng-content select=\"st-segmented-control-item\"></ng-content>\n<div class=\"selection-item\" id=\"selection-indicator\" \n [style.left]=\"this.offset() + 'px'\"\n [style.top]=\"this.indicatorTop() + 'px'\"\n [style.width]=\"this.indicatorWidth() + 'px'\"\n [style.height]=\"this.indicatorHeight() + 'px'\">\n {{ this.selectedItem()?.text() }}\n</div>\n","import { Component } from '@angular/core';\nimport { StrataModalContainerComponent } from '../../../modal/components/modal-container/modal-container.component';\nimport { StrataNotificationContainerComponent } from '../../../notification/components/notification-container/notification-container.component';\n\n@Component({\n selector: 'st-shell',\n templateUrl: './shell.component.html',\n imports: [StrataModalContainerComponent, StrataNotificationContainerComponent]\n})\n\n\nexport class StrataShellComponent {}\n","<st-notification-container></st-notification-container>\n<st-modal-container></st-modal-container>\n<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'st-sidemenu',\n templateUrl: './sidemenu.component.html',\n styleUrls: ['./sidemenu.component.scss']\n})\nexport class StrataSidemenuComponent {}\n","<div class=\"st-sidemenu-header\">\n <ng-content select=\"[st-sidemenu-header]\"></ng-content>\n</div>\n<div class=\"st-sidemenu-content\">\n <ng-content></ng-content>\n</div>\n<div class=\"st-sidemenu-footer\">\n <ng-content select=\"[st-sidemenu-footer]\"></ng-content>\n</div>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'st-sidemenu-section',\n templateUrl: './sidemenu-section.component.html',\n styleUrls: ['./sidemenu-section.component.scss']\n})\nexport class StrataSidemenuSectionComponent {\n label = input<string>();\n}\n","@if (label()) {\n<p class=\"st-sidemenu-section-header st-label\">{{ label() }}</p>\n}\n<div class=\"st-sidemenu-section-content\">\n <ng-content></ng-content>\n</div>","import { ComponentRef, Directive, ElementRef, HostBinding, OutputEmitterRef, Renderer2, ViewContainerRef, effect, inject, input, output } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Directive({\n selector: '[stSidemenuItem]'\n})\nexport class StrataSidemenuItemDirective {\n active = input<boolean>(false);\n secondaryActionIcon = input<string | undefined>(undefined);\n secondaryAction: OutputEmitterRef<MouseEvent> = output<MouseEvent>();\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly vcr = inject(ViewContainerRef);\n\n private secondaryButtonEl: HTMLElement | null = null;\n private iconComponentRef: ComponentRef<StrataIconComponent> | null = null;\n private unlistenClick: (() => void) | null = null;\n\n constructor() {\n effect(() => {\n if (this.active()) {\n this.elementRef.nativeElement.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n });\n\n effect(() => {\n const iconName = this.secondaryActionIcon();\n this.updateSecondaryButton(iconName);\n });\n }\n\n private updateSecondaryButton(iconName: string | undefined): void {\n if (!iconName) {\n this.removeSecondaryButton();\n return;\n }\n\n if (!this.secondaryButtonEl) {\n const btn = this.renderer.createElement('button') as HTMLElement;\n this.renderer.setAttribute(btn, 'type', 'button');\n this.renderer.addClass(btn, 'st-sidemenu-item-secondary-action');\n \n this.unlistenClick = this.renderer.listen(btn, 'click', (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n this.secondaryAction.emit(event);\n });\n\n this.iconComponentRef = this.vcr.createComponent(StrataIconComponent);\n this.iconComponentRef.setInput('name', iconName);\n this.iconComponentRef.setInput('size', 'sm');\n\n this.renderer.insertBefore(\n btn,\n this.iconComponentRef.location.nativeElement,\n null\n );\n\n const hostEl = this.elementRef.nativeElement as HTMLElement;\n this.renderer.appendChild(hostEl, btn);\n this.secondaryButtonEl = btn;\n } else if (this.iconComponentRef) {\n this.iconComponentRef.setInput('name', iconName);\n }\n }\n\n private removeSecondaryButton(): void {\n if (this.unlistenClick) {\n this.unlistenClick();\n this.unlistenClick = null;\n }\n if (this.iconComponentRef) {\n this.iconComponentRef.destroy();\n this.iconComponentRef = null;\n }\n if (this.secondaryButtonEl) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.secondaryButtonEl);\n this.secondaryButtonEl = null;\n }\n }\n\n @HostBinding('class.st-sidemenu-item')\n readonly isSidemenuItem = true;\n\n @HostBinding('class.selected')\n get isSelected(): boolean {\n return this.active();\n }\n}\n","import { AfterContentInit, Component, ContentChildren, DestroyRef, inject, input, QueryList, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { StrataSidemenuItemDirective } from '../../directives/sidemenu-item/sidemenu-item.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-sidemenu-item-group',\n imports: [StrataSidemenuItemDirective, StrataIconComponent, RouterLink, RouterLinkActive],\n templateUrl: './sidemenu-item-group.component.html',\n styleUrls: ['./sidemenu-item-group.component.scss']\n})\nexport class StrataSidemenuItemGroupComponent implements AfterContentInit {\n label = input.required<string>();\n routerLink = input<string | unknown[] | undefined>(undefined);\n href = input<string | undefined>(undefined);\n active = input<boolean | undefined>(undefined);\n\n\n expanded = signal<boolean>(false);\n hasActiveChild = signal<boolean>(false);\n\n private router = inject(Router, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n @ContentChildren(RouterLinkActive, { descendants: true })\n routerLinks!: QueryList<RouterLinkActive>;\n\n get isHeaderActive(): boolean {\n return this.active() ?? this.hasActiveChild();\n }\n\n get isNavigable(): boolean {\n return this.routerLink() !== undefined || this.href() !== undefined;\n }\n\n ngAfterContentInit() {\n setTimeout(() => {\n this.checkActiveState();\n });\n\n if (this.router) {\n this.router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n setTimeout(() => {\n this.checkActiveState();\n });\n });\n }\n }\n\n toggle(event?: MouseEvent) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.expanded.update((e) => !e);\n }\n\n private checkActiveState() {\n if (!this.routerLinks) return;\n\n const isActive = this.routerLinks.some((rla) => rla.isActive);\n this.hasActiveChild.set(isActive);\n \n if (isActive) {\n this.expanded.set(true);\n }\n }\n}\n\n","@if (routerLink()) {\n <a\n stSidemenuItem\n [routerLink]=\"routerLink()\"\n routerLinkActive=\"selected\"\n [active]=\"isHeaderActive\"\n secondaryActionIcon=\"arrow-down\"\n [class.st-sidemenu-item-group-expanded]=\"expanded()\"\n (secondaryAction)=\"toggle($event)\">\n <span class=\"st-sidemenu-item-group-label\">{{ label() }}</span>\n </a>\n} @else if (href()) {\n <a\n stSidemenuItem\n [href]=\"href()\"\n [active]=\"isHeaderActive\"\n secondaryActionIcon=\"arrow-down\"\n [class.st-sidemenu-item-group-expanded]=\"expanded()\"\n (secondaryAction)=\"toggle($event)\">\n <span class=\"st-sidemenu-item-group-label\">{{ label() }}</span>\n </a>\n} @else {\n <button stSidemenuItem type=\"button\" [active]=\"isHeaderActive\" (click)=\"toggle()\">\n <span class=\"st-sidemenu-item-group-label\">{{ label() }}</span>\n <st-icon name=\"arrow-down\" size=\"sm\" class=\"st-sidemenu-item-group-icon\" [class.expanded]=\"expanded()\"></st-icon>\n </button>\n}\n\n\n<div class=\"st-sidemenu-item-group-content\" [hidden]=\"!expanded()\">\n <ng-content></ng-content>\n</div>\n\n","import { Component, ElementRef, HostBinding, HostListener, inject, input, output, signal } from '@angular/core';\n\n@Component({\n selector: 'st-select-item',\n imports: [],\n template: '<ng-content></ng-content>',\n host: {\n class: 'single-select-item'\n}\n})\nexport class StrataSelectItemComponent {\n value = input.required<unknown>();\n \n text = input.required<string>();\n\n itemClicked = output<StrataSelectItemComponent>();\n\n hidden = signal(false);\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('style.display')\n get display(): string {\n return this.hidden() ? 'none' : 'block';\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this.itemClicked.emit(this);\n event.stopPropagation();\n }\n\n @HostListener('mouseover', ['$event'])\n onMouseOver(event: MouseEvent): void {\n event.stopPropagation();\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[stSelectTrigger]'\n})\nexport class StrataSelectTriggerDirective {}\n","import {\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataInputFieldComponent } from '../../../input-field/components/input-field/input-field.component';\nimport { StrataNativeInputRefDirective } from '../../../input-field/directives/native-input-ref.directive';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataSelectItemComponent } from '../select-item/select-item.component';\nimport { StrataSelectTriggerDirective } from '../../directives/select-trigger/select-trigger.directive';\n\nexport type SingleSelectSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-single-select',\n imports: [\n CommonModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataInputFieldComponent,\n FormsModule,\n StrataNativeInputRefDirective,\n StrataButtonDirective,\n ],\n templateUrl: './single-select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataSingleSelectComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-size-lg]': 'size() === \"lg\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled()'\n }\n})\nexport class StrataSingleSelectComponent implements ControlValueAccessor {\n size = input<SingleSelectSize>('md');\n open = signal(false);\n\n placeholder = input<string>('Select');\n\n placement = input<Placement>('bottom-start');\n\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: unknown) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n fullWidth = input<boolean>(false);\n\n label = input<string>();\n\n name = input<string>();\n\n selected = model<unknown>();\n\n selectedItem = computed(() => {\n const val = this.selected();\n if (val === undefined) return undefined;\n return this.selectItems().find(item => item.value() === val);\n });\n\n searchable = input(false);\n\n searchQuery = model<string>();\n\n searchPlaceholder = input('Search');\n\n itemSelected = output<unknown>();\n\n selectItems = contentChildren(StrataSelectItemComponent);\n \n triggerTemplate = contentChild(StrataSelectTriggerDirective, { read: TemplateRef });\n\n private inputField = viewChild(StrataInputFieldComponent);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n effect((onCleanup) => {\n const items = this.selectItems();\n const subs = items.map((item) =>\n item.itemClicked.subscribe((clickedItem) => {\n this.onItemClick(clickedItem);\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n }\n\n onSearchChange(query: string | undefined): void {\n const q = query?.toLowerCase().trim() || '';\n const items = this.selectItems();\n \n for (const item of items) {\n if (!q) {\n item.hidden.set(false);\n } else {\n const match = item.text().toLowerCase().includes(q);\n item.hidden.set(!match);\n }\n }\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (this.open()) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n onItemClick(item: StrataSelectItemComponent): void {\n this.hide();\n const val = item.value();\n this.selected.set(val);\n this.itemSelected.emit(val);\n this.onChange(val);\n this.onTouched();\n }\n\n writeValue(val: unknown): void {\n this.selected.set(val);\n }\n\n registerOnChange(fn: (val: unknown) => void): void {\n this.onChange = fn;\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 private show(): void {\n this.open.set(true);\n setTimeout(() => {\n this.inputField()?.focus();\n }, 10);\n }\n\n private hide(): void {\n this.open.set(false);\n }\n}\n","@if (label()) {\n<label class=\"st-label\" [for]=\"name()\"> {{ label() }}</label>\n}\n<div class=\"single-select-input\" [class.disabled]=\"effectiveDisabled()\" [id]=\"name()\" #singleSelectInput (click)=\"toggle($event)\" (keydown.space)=\"toggle($event)\" (keydown.enter)=\"toggle($event)\" (keydown.escape)=\"open.set(false)\" [attr.data-open]=\"open()\"\n [attr.tabindex]=\"effectiveDisabled() ? -1 : 0\" [stOverlay]=\"selector\" [overlayOpen]=\"open()\" [overlayPlacement]=\"placement()\">\n @if (selectedItem()) {\n @if (triggerTemplate()) {\n <ng-container *ngTemplateOutlet=\"triggerTemplate()!\"></ng-container>\n } @else {\n {{ selectedItem()!.text() }}\n }\n } @else {\n <span class=\"placeholder-text\">{{ placeholder() }}</span>\n }\n\n <st-icon name=\"expand-up-down\"></st-icon>\n</div>\n\n<ng-template #selector>\n <div class=\"single-select-selector\" #singleSelectSelector [class.full-width]=\"fullWidth()\">\n @if (searchable()) {\n <st-input-field>\n <input stInput #searchField type=\"text\" [value]=\"searchQuery() || ''\" (input)=\"searchQuery.set($any($event.target).value); onSearchChange(searchQuery())\" [placeholder]=\"searchPlaceholder()\" />\n <button stButton variant=\"ghost\" [class.visible]=\"searchQuery() !== undefined && searchQuery()!.length > 0\" suffix\n size=\"sm\" (click)=\"searchQuery.set(undefined); onSearchChange(undefined)\">\n x\n </button>\n </st-input-field>\n }\n <div class=\"single-select-items-container\">\n <ng-content select=\"st-select-item\"></ng-content>\n </div>\n </div>\n</ng-template>","import { Component, computed, input, signal } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { IconSize } from '../../../icon/models/icon.model';\nimport { StepState, StepperOrientation, StepperSize } from '../../stepper.model';\n\n@Component({\n selector: 'st-step',\n imports: [StrataIconComponent],\n templateUrl: './step.component.html',\n host: {\n 'class': 'st-step',\n '[class.st-step-first]': 'isFirst() && !isLast()',\n '[class.st-step-last]': 'isLast() && !isFirst()',\n '[class.st-state-completed]': 'effectiveState() === \"completed\"',\n '[class.st-state-current]': 'effectiveState() === \"current\"',\n '[class.st-state-future]': 'effectiveState() === \"future\"',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-orientation-horizontal]': 'orientation() === \"horizontal\"',\n '[class.st-orientation-vertical]': 'orientation() === \"vertical\"',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[attr.aria-current]': 'effectiveState() === \"current\" ? \"step\" : null',\n 'role': 'listitem'\n }\n})\nexport class StrataStepComponent {\n label = input.required<string>();\n description = input<string | undefined>(undefined);\n icon = input<string | undefined>(undefined);\n state = input<StepState | undefined>(undefined);\n keepIconOnCompleted = input<boolean>(false);\n\n index = signal<number>(0);\n isFirst = signal<boolean>(false);\n isLast = signal<boolean>(false);\n orientation = signal<StepperOrientation>('horizontal');\n size = signal<StepperSize>('md');\n showCheckmarkOnCompleted = signal<boolean>(true);\n computedState = signal<StepState>('future');\n\n effectiveState = computed(() => this.state() ?? this.computedState());\n\n iconSize = computed<IconSize>(() => (this.size() === 'sm' ? 'xs' : 'sm'));\n}\n","<div class=\"st-step-wrapper\">\n @if (orientation() === 'horizontal') {\n <div class=\"st-step-top\">\n @if (!isFirst()) {\n <div\n class=\"st-step-line st-step-line-before\"\n [class.st-line-active]=\"effectiveState() === 'completed' || effectiveState() === 'current'\">\n </div>\n }\n\n <div class=\"st-step-indicator\">\n @if (effectiveState() === 'completed' && showCheckmarkOnCompleted() && !keepIconOnCompleted()) {\n <st-icon name=\"check\" [size]=\"iconSize()\"></st-icon>\n } @else if (icon()) {\n <st-icon [name]=\"icon()!\" [size]=\"iconSize()\"></st-icon>\n } @else {\n <span class=\"st-step-number\">{{ index() + 1 }}</span>\n }\n </div>\n\n @if (!isLast()) {\n <div\n class=\"st-step-line st-step-line-after\"\n [class.st-line-active]=\"effectiveState() === 'completed'\">\n </div>\n }\n </div>\n\n <div class=\"st-step-content\">\n <span class=\"st-step-title\">{{ label() }}</span>\n @if (description()) {\n <span class=\"st-step-description\">{{ description() }}</span>\n }\n <ng-content></ng-content>\n </div>\n } @else {\n <div class=\"st-step-vertical-left\">\n <div class=\"st-step-indicator\">\n @if (effectiveState() === 'completed' && showCheckmarkOnCompleted() && !keepIconOnCompleted()) {\n <st-icon name=\"check\" [size]=\"iconSize()\"></st-icon>\n } @else if (icon()) {\n <st-icon [name]=\"icon()!\" [size]=\"iconSize()\"></st-icon>\n } @else {\n <span class=\"st-step-number\">{{ index() + 1 }}</span>\n }\n </div>\n @if (!isLast()) {\n <div class=\"st-step-vertical-line\" [class.st-line-active]=\"effectiveState() === 'completed'\"></div>\n }\n </div>\n\n <div class=\"st-step-content\">\n <div class=\"st-step-header\">\n <span class=\"st-step-title\">{{ label() }}</span>\n @if (description()) {\n <span class=\"st-step-description\">{{ description() }}</span>\n }\n </div>\n <div class=\"st-step-body\">\n <ng-content></ng-content>\n </div>\n </div>\n }\n</div>\n","import { Component, computed, contentChildren, effect, inject, input, model } from '@angular/core';\nimport { StrataStepComponent } from '../step/step.component';\nimport { StepperOrientation, StepperSize, StepState } from '../../stepper.model';\nimport { StrataThemeDirective, Theme } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-stepper',\n imports: [],\n templateUrl: './stepper.component.html',\n host: {\n 'class': 'st-stepper',\n '[class.st-orientation-horizontal]': 'orientation() === \"horizontal\"',\n '[class.st-orientation-vertical]': 'orientation() === \"vertical\"',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-theme-brand]': 'activeTheme() === \"brand\"',\n '[class.st-theme-default]': 'activeTheme() === \"default\"',\n '[class.st-theme-success]': 'activeTheme() === \"success\"',\n '[class.st-theme-warning]': 'activeTheme() === \"warning\"',\n '[class.st-theme-danger]': 'activeTheme() === \"danger\"',\n '[class.st-theme-info]': 'activeTheme() === \"info\"',\n 'role': 'region',\n '[attr.aria-label]': '\"Progress\"'\n }\n})\nexport class StrataStepperComponent {\n private themeDirective = inject(StrataThemeDirective, { optional: true, self: true });\n\n currentStep = model<number>(0);\n orientation = input<StepperOrientation>('horizontal');\n size = input<StepperSize>('md');\n theme = input<Theme | undefined>(undefined);\n showCheckmarkOnCompleted = input<boolean>(true);\n\n readonly activeTheme = computed<Theme>(() => {\n return this.theme() ?? this.themeDirective?.stTheme() ?? 'default';\n });\n\n steps = contentChildren(StrataStepComponent);\n\n constructor() {\n effect(() => {\n const stepItems = this.steps();\n const current = this.currentStep();\n const currentOrientation = this.orientation();\n const currentSize = this.size();\n const showCheckmark = this.showCheckmarkOnCompleted();\n\n stepItems.forEach((step, index) => {\n step.index.set(index);\n step.isFirst.set(index === 0);\n step.isLast.set(index === stepItems.length - 1);\n step.orientation.set(currentOrientation);\n step.size.set(currentSize);\n step.showCheckmarkOnCompleted.set(showCheckmark);\n\n let derivedState: StepState = 'future';\n if (index < current) {\n derivedState = 'completed';\n } else if (index === current) {\n derivedState = 'current';\n }\n\n step.computedState.set(derivedState);\n });\n });\n }\n\n next(): void {\n const total = this.steps().length;\n if (this.currentStep() < total - 1) {\n this.currentStep.update((curr) => curr + 1);\n }\n }\n\n previous(): void {\n if (this.currentStep() > 0) {\n this.currentStep.update((curr) => curr - 1);\n }\n }\n\n reset(): void {\n this.currentStep.set(0);\n }\n\n goTo(index: number): void {\n const total = this.steps().length;\n if (index >= 0 && (total === 0 || index < total)) {\n this.currentStep.set(index);\n }\n }\n}\n","<ol class=\"st-stepper-list\">\n <ng-content></ng-content>\n</ol>\n","import { Component, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-tab-item',\n imports: [],\n templateUrl: './tab-item.component.html',\n host: {\n 'role': 'tab',\n '(click)': 'onClick()'\n}\n})\nexport class StrataTabItemComponent {\n /**\n * The text label for the tab.\n * Can also be provided via content projection.\n */\n text = input<string>();\n\n /**\n * Whether the tab is currently selected.\n */\n selected = model(false);\n\n /**\n * Whether the tab is disabled.\n */\n disabled = input(false);\n\n /**\n * Emitted when the tab is clicked.\n */\n selectionChanged = output<void>();\n\n @HostBinding('attr.aria-selected')\n get isSelected(): boolean {\n return this.selected();\n }\n\n @HostBinding('attr.aria-disabled')\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.disabled() ? null : 0;\n }\n\n @HostBinding('class.active')\n get activeClass(): boolean {\n return this.selected();\n }\n\n @HostBinding('class.disabled')\n get disabledClass(): boolean {\n return this.disabled();\n }\n\n onClick(): void {\n if (this.disabled()) {\n return;\n }\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n}\n","@if (text()) {\n {{ text() }}\n} @else {\n <ng-content></ng-content>\n}\n","import {\n AfterViewInit, Component, contentChildren, effect, ElementRef, signal, viewChild\n} from '@angular/core';\nimport { StrataTabItemComponent } from '../tab-item/tab-item.component';\n\n@Component({\n selector: 'st-tabs',\n imports: [],\n templateUrl: './tabs.component.html',\n host: {\n 'class': 'st-tabs-host'\n}\n})\nexport class StrataTabsComponent implements AfterViewInit {\n tabItems = contentChildren(StrataTabItemComponent, { descendants: true });\n tabItemsRefs = contentChildren(StrataTabItemComponent, {\n descendants: true,\n read: ElementRef\n});\n\n indicator = viewChild<ElementRef>('indicator');\n\n selectedTab = signal<StrataTabItemComponent | null>(null);\n selectedIndex = signal<number>(0);\n\n private resizeObserver?: ResizeObserver;\n\n constructor() {\n // Coordinate child selection\n effect((onCleanup) => {\n const items = this.tabItems();\n const subs = items.map((item, index) =>\n item.selectionChanged.subscribe(() => {\n this.selectTab(item, index);\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n // Handle responsive indicator updates\n effect((onCleanup) => {\n const indicatorEl = this.indicator()?.nativeElement;\n const refs = this.tabItemsRefs();\n const index = this.selectedIndex();\n\n if (!indicatorEl || refs.length === 0 || index < 0) return;\n\n const activeRef = refs[index].nativeElement;\n\n // Update immediately\n this.updateIndicator(activeRef, indicatorEl);\n\n // And on every resize of the active tab\n this.resizeObserver = new ResizeObserver(() => {\n this.updateIndicator(activeRef, indicatorEl);\n });\n this.resizeObserver.observe(activeRef);\n\n onCleanup(() => this.resizeObserver?.disconnect());\n });\n }\n\n ngAfterViewInit(): void {\n // Set initial selection\n const items = this.tabItems();\n if (items.length > 0) {\n const initiallySelected = items.find((item) => item.selected());\n if (initiallySelected) {\n this.selectTab(initiallySelected, items.indexOf(initiallySelected));\n } else {\n this.selectTab(items[0], 0);\n }\n }\n }\n\n private updateIndicator(activeElement: HTMLElement, indicatorElement: HTMLElement): void {\n indicatorElement.style.width = `${activeElement.offsetWidth}px`;\n indicatorElement.style.left = `${activeElement.offsetLeft}px`;\n }\n\n private selectTab(tab: StrataTabItemComponent, index: number): void {\n // Unselect others\n this.tabItems().forEach((item) => {\n if (item !== tab) {\n item.selected.set(false);\n }\n });\n\n tab.selected.set(true);\n this.selectedTab.set(tab);\n this.selectedIndex.set(index);\n }\n}\n","<div class=\"tabs-container\" role=\"tablist\">\n <ng-content></ng-content>\n <div #indicator class=\"selection-indicator\"></div>\n</div>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-tag',\n imports: [],\n template: '<ng-content></ng-content>'\n})\nexport class StrataTagComponent {\n size = input<TagSize>('md');\n\n @HostBinding('class')\n get class() {\n return this.size();\n }\n}\n\nexport type TagSize = 'sm' | 'md' | 'lg';\n","/*\n * Public API Surface of ngx-strata\n */\n\nexport * from './lib/directives/activatable.directive';\nexport * from './lib/directives/tooltip.directive';\nexport * from './lib/services/darkmode/darkmode.service';\nexport * from './lib/services/hotkey/hotkey.service';\n\n// App\nexport * from './lib/app/provider/provide-icons';\nexport * from './lib/app/provider/provide-strata';\nexport * from './lib/shared/platform';\n\n// Pipes\nexport * from './lib/pipes/capitalize.pipe';\n\n// Features\nexport * from './lib/features/accordion';\nexport * from './lib/features/action-menu';\nexport * from './lib/features/alert';\nexport * from './lib/features/avatar';\nexport * from './lib/features/badge';\nexport * from './lib/features/breadcrumb';\nexport * from './lib/features/button';\nexport * from './lib/features/card';\nexport * from './lib/features/checkbox';\nexport * from './lib/features/divider';\nexport * from './lib/features/file-upload';\nexport * from './lib/features/icon';\nexport * from './lib/features/image-cropper';\nexport * from './lib/features/input-field';\nexport * from './lib/features/item';\nexport * from './lib/features/kbd';\nexport * from './lib/features/message-state';\nexport * from './lib/features/modal';\nexport * from './lib/features/notification';\nexport * from './lib/features/number-display';\nexport * from './lib/features/otp';\nexport * from './lib/features/overlay';\nexport * from './lib/features/pagination';\nexport * from './lib/features/progress';\nexport * from './lib/features/radio';\nexport * from './lib/features/segmented-control';\nexport * from './lib/features/shell';\nexport * from './lib/features/sidemenu';\nexport * from './lib/features/single-select';\nexport * from './lib/features/slider';\nexport * from './lib/features/spinner';\nexport * from './lib/features/stepper';\nexport * from './lib/features/tabs';\nexport * from './lib/features/tag';\nexport * from './lib/features/text-stack';\nexport * from './lib/features/theming';\nexport * from './lib/features/toggle';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StrataActivatableDirective","DOCUMENT","i1"],"mappings":"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"}