ngx-strata 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +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/breakpoint/breakpoint.service.ts","../../../projects/ngx-strata/src/lib/services/device/device.service.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/date-picker/components/time-picker/time-picker.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/time-picker/time-picker.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/utils/date-utils.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/calendar/calendar.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/calendar/calendar.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/components/datepicker/datepicker.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/datepicker/datepicker.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/components/date-range-picker/date-range-picker.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/date-range-picker/date-range-picker.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/components/modal-body/modal-body.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-body/modal-body.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/number-stepper/components/number-stepper/number-stepper.component.ts","../../../projects/ngx-strata/src/lib/features/number-stepper/components/number-stepper/number-stepper.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/radio/components/radio-group/radio-group.component.html","../../../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/skeleton/components/skeleton/skeleton.component.ts","../../../projects/ngx-strata/src/lib/features/skeleton/components/skeleton/skeleton.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 name: 'calendar',\n url: 'assets/icons/calendar.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 maxNotifications: 5,\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 maxNotifications?: number;\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\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 { computed, DestroyRef, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport type StrataBreakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst BREAKPOINT_ORDER: Record<StrataBreakpoint, number> = {\n xs: 0,\n sm: 1,\n md: 2,\n lg: 3,\n xl: 4\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreakpointService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _width = signal<number>(1280);\n private readonly _current = signal<StrataBreakpoint>('xl');\n\n readonly width = this._width.asReadonly();\n readonly current = this._current.asReadonly();\n\n readonly isMobile = computed(() => this.isSmallerThan('md'));\n readonly isTablet = computed(() => this._current() === 'md');\n readonly isDesktop = computed(() => this.isAtLeast('lg'));\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n\n this.updateBreakpoint();\n\n const resizeHandler = () => this.updateBreakpoint();\n window.addEventListener('resize', resizeHandler);\n\n this.destroyRef.onDestroy(() => {\n window.removeEventListener('resize', resizeHandler);\n });\n }\n\n is(breakpoint: StrataBreakpoint): boolean {\n return this._current() === breakpoint;\n }\n\n isSmallerThan(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] < BREAKPOINT_ORDER[breakpoint];\n }\n\n isLargerThan(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] > BREAKPOINT_ORDER[breakpoint];\n }\n\n isAtLeast(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] >= BREAKPOINT_ORDER[breakpoint];\n }\n\n isAtMost(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] <= BREAKPOINT_ORDER[breakpoint];\n }\n\n private updateBreakpoint(): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n const width = window.innerWidth;\n this._width.set(width);\n\n if (width < 480) {\n this._current.set('xs');\n } else if (width < 768) {\n this._current.set('sm');\n } else if (width < 1024) {\n this._current.set('md');\n } else if (width < 1280) {\n this._current.set('lg');\n } else {\n this._current.set('xl');\n }\n }\n}\n","import { computed, DestroyRef, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport type StrataOS = 'ios' | 'android' | 'macos' | 'windows' | 'linux' | 'unknown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _isTouch = signal<boolean>(false);\n private readonly _hasHover = signal<boolean>(true);\n private readonly _os = signal<StrataOS>('unknown');\n\n readonly isTouch = this._isTouch.asReadonly();\n readonly hasHover = this._hasHover.asReadonly();\n readonly os = this._os.asReadonly();\n\n readonly isApple = computed(() => this._os() === 'macos' || this._os() === 'ios');\n readonly isAndroid = computed(() => this._os() === 'android');\n readonly isWindows = computed(() => this._os() === 'windows');\n readonly isLinux = computed(() => this._os() === 'linux');\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n\n this._os.set(this.detectOS());\n this.updatePointerCapabilities();\n\n if (typeof window !== 'undefined' && window.matchMedia) {\n const hoverQuery = window.matchMedia('(hover: hover)');\n const pointerQuery = window.matchMedia('(pointer: coarse)');\n\n const pointerChangeHandler = () => this.updatePointerCapabilities();\n\n hoverQuery.addEventListener?.('change', pointerChangeHandler);\n pointerQuery.addEventListener?.('change', pointerChangeHandler);\n\n this.destroyRef.onDestroy(() => {\n hoverQuery.removeEventListener?.('change', pointerChangeHandler);\n pointerQuery.removeEventListener?.('change', pointerChangeHandler);\n });\n }\n }\n\n private detectOS(): StrataOS {\n if (typeof navigator === 'undefined') {\n return 'unknown';\n }\n\n const nav = navigator as Navigator & { userAgentData?: { platform?: string } };\n const platform = nav.userAgentData?.platform || (nav as { platform?: string }).platform || '';\n const ua = nav.userAgent || '';\n\n if (/android/i.test(platform) || /android/i.test(ua)) {\n return 'android';\n }\n\n const isIPadOS = /mac/i.test(platform) && typeof navigator.maxTouchPoints === 'number' && navigator.maxTouchPoints > 1;\n if (/iphone|ipad|ipod/i.test(platform) || /iphone|ipad|ipod/i.test(ua) || isIPadOS) {\n return 'ios';\n }\n\n if (/mac/i.test(platform) || /macintosh|mac os x/i.test(ua)) {\n return 'macos';\n }\n\n if (/win/i.test(platform) || /windows/i.test(ua)) {\n return 'windows';\n }\n\n if (/linux/i.test(platform) || /linux/i.test(ua)) {\n return 'linux';\n }\n\n return 'unknown';\n }\n\n private updatePointerCapabilities(): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n const hasTouchPointer = window.matchMedia?.('(pointer: coarse)')?.matches ?? false;\n const maxTouchPoints = typeof navigator !== 'undefined' ? navigator.maxTouchPoints > 0 : false;\n this._isTouch.set(hasTouchPointer || maxTouchPoints);\n\n const hasHoverMedia = window.matchMedia?.('(hover: hover)')?.matches ?? true;\n this._hasHover.set(hasHoverMedia);\n }\n}\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';\nimport { AccordionVariant } from '../../types';\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 variant = input<AccordionVariant>('standalone');\n\n toggled = output<boolean>();\n\n @HostBinding('class.flush')\n get isFlush(): boolean {\n return this.variant() === 'flush';\n }\n\n @HostBinding('class.standalone')\n get isStandalone(): boolean {\n return this.variant() === 'standalone';\n }\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, HostBinding } from '@angular/core';\nimport { StrataAccordionItemComponent } from '../accordion-item/accordion-item.component';\nimport { AccordionVariant } from '../../types';\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 variant = input<AccordionVariant>('standalone');\n\n @HostBinding('class.flush')\n get isFlush(): boolean {\n return this.variant() === 'flush';\n }\n\n @HostBinding('class.standalone')\n get isStandalone(): boolean {\n return this.variant() === 'standalone';\n }\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 booleanAttribute,\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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","<div class=\"st-checkbox-row\">\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</div>\n@if (message()) {\n <div\n class=\"st-checkbox-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\n","import { booleanAttribute, Component, computed, forwardRef, inject, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = this._activatable.disabled;\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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-row\">\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</div>\n@if (message()) {\n <div\n class=\"st-toggle-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\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 { ButtonSize, 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 buttonSize = input<ButtonSize>('md');\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 [size]=\"buttonSize()\"><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, computed, contentChildren, effect, 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 host: {\n '[class]': 'elementClasses()'\n }\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 variant = input<AvatarVariant>('circle');\n\n imageError = signal(false);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageError.set(false);\n });\n }\n\n elementClasses = computed(() => `${this.size()} ${this.variant()}`);\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';\nexport type AvatarVariant = 'circle' | 'rounded';\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';\nimport { BadgeSize, BadgeVariant, StrataBadgeComponent } from '../../../badge';\n\n@Component({\n selector: 'st-breadcrumb-item',\n imports: [StrataIconComponent, StrataActivatableDirective, StrataBadgeComponent],\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 badge = input<string | number | undefined>(undefined);\n\n badgeVariant = input<BadgeVariant>('neutral');\n\n badgeSize = input<BadgeSize>('sm');\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 @if (badge() !== undefined) {\n <st-badge [value]=\"badge()\" [variant]=\"badgeVariant()\" [size]=\"badgeSize()\"></st-badge>\n }\n <ng-content select=\"st-badge\"></ng-content>\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 {\n Component,\n computed,\n effect,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TimeFormat } from '../../models/date-picker.model';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-time-picker',\n imports: [CommonModule, StrataIconComponent],\n templateUrl: './time-picker.component.html',\n styleUrl: './time-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataTimePickerComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-time-picker]': 'true',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null'\n }\n})\nexport class StrataTimePickerComponent implements ControlValueAccessor {\n format = input<TimeFormat>('24h');\n showSeconds = input<boolean>(false);\n minuteStep = input<number>(1);\n disabled = input<boolean>(false);\n\n value = model<string | Date | null>(null);\n\n hours = signal<number>(0);\n minutes = signal<number>(0);\n seconds = signal<number>(0);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: string | Date | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n readonly is12h = computed(() => this.format() === '12h');\n readonly isPM = computed(() => this.hours() >= 12);\n readonly meridiem = computed(() => (this.isPM() ? 'PM' : 'AM'));\n\n readonly displayHours = computed(() => {\n const h = this.hours();\n if (!this.is12h()) {\n return h.toString().padStart(2, '0');\n }\n const h12 = h % 12 || 12;\n return h12.toString().padStart(2, '0');\n });\n\n readonly displayMinutes = computed(() => {\n return this.minutes().toString().padStart(2, '0');\n });\n\n readonly displaySeconds = computed(() => {\n return this.seconds().toString().padStart(2, '0');\n });\n\n constructor() {\n effect(() => {\n const val = this.value();\n this.syncFromValue(val);\n });\n }\n\n private syncFromValue(val: string | Date | null): void {\n if (!val) {\n return;\n }\n if (val instanceof Date) {\n this.hours.set(val.getHours());\n this.minutes.set(val.getMinutes());\n this.seconds.set(val.getSeconds());\n return;\n }\n if (typeof val === 'string') {\n const parts = val.trim().split(':');\n if (parts.length >= 2) {\n const h = parseInt(parts[0], 10) || 0;\n const m = parseInt(parts[1], 10) || 0;\n const s = parts[2] ? parseInt(parts[2], 10) || 0 : 0;\n this.hours.set(Math.min(23, Math.max(0, h)));\n this.minutes.set(Math.min(59, Math.max(0, m)));\n this.seconds.set(Math.min(59, Math.max(0, s)));\n }\n }\n }\n\n incrementHours(): void {\n if (this.effectiveDisabled()) return;\n const current = this.hours();\n this.setHours((current + 1) % 24);\n }\n\n decrementHours(): void {\n if (this.effectiveDisabled()) return;\n const current = this.hours();\n this.setHours((current - 1 + 24) % 24);\n }\n\n incrementMinutes(): void {\n if (this.effectiveDisabled()) return;\n const step = Math.max(1, this.minuteStep());\n const current = this.minutes();\n const next = (Math.floor(current / step) * step + step) % 60;\n this.setMinutes(next);\n }\n\n decrementMinutes(): void {\n if (this.effectiveDisabled()) return;\n const step = Math.max(1, this.minuteStep());\n const current = this.minutes();\n const next = (Math.ceil(current / step) * step - step + 60) % 60;\n this.setMinutes(next);\n }\n\n incrementSeconds(): void {\n if (this.effectiveDisabled()) return;\n const current = this.seconds();\n this.setSeconds((current + 1) % 60);\n }\n\n decrementSeconds(): void {\n if (this.effectiveDisabled()) return;\n const current = this.seconds();\n this.setSeconds((current - 1 + 60) % 60);\n }\n\n toggleMeridiem(): void {\n if (this.effectiveDisabled() || !this.is12h()) return;\n const current = this.hours();\n if (current >= 12) {\n this.setHours(current - 12);\n } else {\n this.setHours(current + 12);\n }\n }\n\n private setHours(h: number): void {\n this.hours.set(h);\n this.emitChange();\n }\n\n private setMinutes(m: number): void {\n this.minutes.set(m);\n this.emitChange();\n }\n\n private setSeconds(s: number): void {\n this.seconds.set(s);\n this.emitChange();\n }\n\n private emitChange(): void {\n const currentVal = this.value();\n let updated: string | Date;\n\n if (currentVal instanceof Date) {\n const d = new Date(currentVal);\n d.setHours(this.hours(), this.minutes(), this.seconds());\n updated = d;\n } else {\n const pad = (n: number) => n.toString().padStart(2, '0');\n updated = this.showSeconds()\n ? `${pad(this.hours())}:${pad(this.minutes())}:${pad(this.seconds())}`\n : `${pad(this.hours())}:${pad(this.minutes())}`;\n }\n\n this.value.set(updated);\n this.onChange(updated);\n this.onTouched();\n }\n\n writeValue(val: string | Date | null): void {\n this.value.set(val);\n this.syncFromValue(val);\n }\n\n registerOnChange(fn: (val: string | Date | null) => 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-time-picker-inner\">\n <div class=\"st-time-col\">\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"incrementHours()\"\n aria-label=\"Increment hours\"\n >\n <st-icon name=\"arrow-up\" size=\"xs\"></st-icon>\n </button>\n <span class=\"st-time-val\" tabindex=\"0\" (keydown.arrowup)=\"incrementHours()\" (keydown.arrowdown)=\"decrementHours()\">\n {{ displayHours() }}\n </span>\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"decrementHours()\"\n aria-label=\"Decrement hours\"\n >\n <st-icon name=\"arrow-down\" size=\"xs\"></st-icon>\n </button>\n </div>\n\n <span class=\"st-time-sep\">:</span>\n\n <div class=\"st-time-col\">\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"incrementMinutes()\"\n aria-label=\"Increment minutes\"\n >\n <st-icon name=\"arrow-up\" size=\"xs\"></st-icon>\n </button>\n <span class=\"st-time-val\" tabindex=\"0\" (keydown.arrowup)=\"incrementMinutes()\" (keydown.arrowdown)=\"decrementMinutes()\">\n {{ displayMinutes() }}\n </span>\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"decrementMinutes()\"\n aria-label=\"Decrement minutes\"\n >\n <st-icon name=\"arrow-down\" size=\"xs\"></st-icon>\n </button>\n </div>\n\n @if (showSeconds()) {\n <span class=\"st-time-sep\">:</span>\n\n <div class=\"st-time-col\">\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"incrementSeconds()\"\n aria-label=\"Increment seconds\"\n >\n <st-icon name=\"arrow-up\" size=\"xs\"></st-icon>\n </button>\n <span class=\"st-time-val\" tabindex=\"0\" (keydown.arrowup)=\"incrementSeconds()\" (keydown.arrowdown)=\"decrementSeconds()\">\n {{ displaySeconds() }}\n </span>\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"decrementSeconds()\"\n aria-label=\"Decrement seconds\"\n >\n <st-icon name=\"arrow-down\" size=\"xs\"></st-icon>\n </button>\n </div>\n }\n\n @if (is12h()) {\n <div class=\"st-time-col st-meridiem-col\">\n <button\n type=\"button\"\n class=\"st-meridiem-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"toggleMeridiem()\"\n aria-label=\"Toggle AM PM\"\n >\n {{ meridiem() }}\n </button>\n </div>\n }\n</div>\n","export function isSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isSameMonth(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n}\n\nexport function isSameYear(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return a.getFullYear() === b.getFullYear();\n}\n\nexport function isBeforeDay(a: Date, b: Date): boolean {\n const aDate = new Date(a.getFullYear(), a.getMonth(), a.getDate()).getTime();\n const bDate = new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();\n return aDate < bDate;\n}\n\nexport function isAfterDay(a: Date, b: Date): boolean {\n const aDate = new Date(a.getFullYear(), a.getMonth(), a.getDate()).getTime();\n const bDate = new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();\n return aDate > bDate;\n}\n\nexport function isWithinDayRange(\n date: Date,\n start: Date | null | undefined,\n end: Date | null | undefined\n): boolean {\n if (!start || !end) return false;\n const target = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n const s = new Date(start.getFullYear(), start.getMonth(), start.getDate()).getTime();\n const e = new Date(end.getFullYear(), end.getMonth(), end.getDate()).getTime();\n const min = Math.min(s, e);\n const max = Math.max(s, e);\n return target >= min && target <= max;\n}\n\nexport function startOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\nexport function endOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n\nexport function addDays(date: Date, amount: number): Date {\n const result = new Date(date);\n result.setDate(result.getDate() + amount);\n return result;\n}\n\nexport function addMonths(date: Date, amount: number): Date {\n const result = new Date(date);\n const targetMonth = result.getMonth() + amount;\n result.setMonth(targetMonth);\n return result;\n}\n\nexport function addYears(date: Date, amount: number): Date {\n const result = new Date(date);\n result.setFullYear(result.getFullYear() + amount);\n return result;\n}\n\nexport function getDayOfWeek(date: Date): number {\n return (date.getDay() + 6) % 7;\n}\n\nexport function isWeekend(date: Date): boolean {\n const day = getDayOfWeek(date);\n return day === 5 || day === 6;\n}\n\nexport function disableWeekends(date: Date): boolean {\n return isWeekend(date);\n}\n\nexport function disablePastDates(date: Date): boolean {\n const today = startOfDay(new Date());\n return isBeforeDay(date, today);\n}\n\nexport function disableFutureDates(date: Date): boolean {\n const today = endOfDay(new Date());\n return isAfterDay(date, today);\n}\n\nexport function disableDaysOfWeek(days: number[]): (date: Date) => boolean {\n return (date: Date) => days.includes(getDayOfWeek(date));\n}\n\nexport function disableDateRange(startDate: Date, endDate: Date): (date: Date) => boolean {\n return (date: Date) => isWithinDayRange(date, startDate, endDate);\n}\n\nexport function getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nexport function getLocaleDefaultDateFormat(locale?: string): string {\n try {\n const formatter = new Intl.DateTimeFormat(locale || undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n const parts = formatter.formatToParts(new Date(2024, 11, 31));\n const order = parts\n .filter((p) => p.type === 'year' || p.type === 'month' || p.type === 'day')\n .map((p) => p.type);\n const sep = (parts.find((p) => p.type === 'literal' && p.value.trim() !== '') || { value: '/' }).value;\n const tokens: Record<string, string> = { year: 'YYYY', month: 'MM', day: 'DD' };\n return order.map((t) => tokens[t]).join(sep);\n } catch {\n return 'YYYY-MM-DD';\n }\n}\n\nexport function formatMonthTitle(date: Date, locale?: string): string {\n const formatter = new Intl.DateTimeFormat(locale || undefined, { month: 'long' });\n const str = formatter.format(date);\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function getMonthNames(\n locale?: string,\n format: 'long' | 'short' | 'narrow' = 'short'\n): string[] {\n const formatter = new Intl.DateTimeFormat(locale || undefined, { month: format });\n return Array.from({ length: 12 }, (_, i) => {\n const date = new Date(2024, i, 1);\n const name = formatter.format(date);\n return name.charAt(0).toUpperCase() + name.slice(1);\n });\n}\n\nexport function getWeekdayNames(\n locale?: string,\n firstDayOfWeek = 0,\n format: 'long' | 'short' | 'narrow' = 'short'\n): string[] {\n const formatter = new Intl.DateTimeFormat(locale || undefined, { weekday: format });\n const daysFromMonday = Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2024, 0, 1 + i);\n const name = formatter.format(date);\n return name.charAt(0).toUpperCase() + name.slice(1);\n });\n const offset = ((firstDayOfWeek % 7) + 7) % 7;\n return [...daysFromMonday.slice(offset), ...daysFromMonday.slice(0, offset)];\n}\n\nexport function createCalendarGrid(viewDate: Date, firstDayOfWeek = 0): Date[] {\n const year = viewDate.getFullYear();\n const month = viewDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const startingDay = (getDayOfWeek(firstDayOfMonth) - (firstDayOfWeek % 7) + 7) % 7;\n\n const startDate = new Date(year, month, 1 - startingDay);\n const days: Date[] = [];\n\n for (let i = 0; i < 42; i++) {\n const current = new Date(startDate);\n current.setDate(startDate.getDate() + i);\n days.push(current);\n }\n\n return days;\n}\n\nexport function formatDate(\n date: Date | null | undefined,\n formatStr = 'YYYY-MM-DD'\n): string {\n if (!date || isNaN(date.getTime())) return '';\n\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const hours24 = date.getHours();\n const hours12 = hours24 % 12 || 12;\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const isPM = hours24 >= 12;\n\n const pad = (n: number) => n.toString().padStart(2, '0');\n\n return formatStr\n .replace(/YYYY/g, year.toString())\n .replace(/YY/g, (year % 100).toString().padStart(2, '0'))\n .replace(/MM/g, pad(month))\n .replace(/\\bM\\b/g, month.toString())\n .replace(/DD/g, pad(day))\n .replace(/\\bD\\b/g, day.toString())\n .replace(/HH/g, pad(hours24))\n .replace(/\\bH\\b/g, hours24.toString())\n .replace(/hh/g, pad(hours12))\n .replace(/\\bh\\b/g, hours12.toString())\n .replace(/mm/g, pad(minutes))\n .replace(/\\bm\\b/g, minutes.toString())\n .replace(/ss/g, pad(seconds))\n .replace(/\\bs\\b/g, seconds.toString())\n .replace(/A/g, isPM ? 'PM' : 'AM')\n .replace(/a/g, isPM ? 'pm' : 'am');\n}\n\nexport function parseDate(\n str: string | null | undefined,\n formatStr = 'YYYY-MM-DD'\n): Date | null {\n if (!str || !str.trim()) return null;\n const trimmed = str.trim();\n\n const tokenMap: Record<string, string> = {\n YYYY: '(?<year>\\\\d{4})',\n YY: '(?<shortYear>\\\\d{2})',\n MM: '(?<month>\\\\d{1,2})',\n M: '(?<month>\\\\d{1,2})',\n DD: '(?<day>\\\\d{1,2})',\n D: '(?<day>\\\\d{1,2})',\n HH: '(?<hours24>\\\\d{1,2})',\n H: '(?<hours24>\\\\d{1,2})',\n hh: '(?<hours12>\\\\d{1,2})',\n h: '(?<hours12>\\\\d{1,2})',\n mm: '(?<minutes>\\\\d{1,2})',\n m: '(?<minutes>\\\\d{1,2})',\n ss: '(?<seconds>\\\\d{1,2})',\n s: '(?<seconds>\\\\d{1,2})',\n A: '(?<meridiem>AM|PM|am|pm)',\n a: '(?<meridiem>AM|PM|am|pm)'\n };\n\n const tokenPattern = /YYYY|YY|MM|\\bM\\b|DD|\\bD\\b|HH|\\bH\\b|hh|\\bh\\b|mm|\\bm\\b|ss|\\bs\\b|A|a/g;\n let lastIndex = 0;\n let regexSource = '^';\n let match: RegExpExecArray | null;\n\n while ((match = tokenPattern.exec(formatStr)) !== null) {\n const literal = formatStr.slice(lastIndex, match.index);\n regexSource += literal.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const token = match[0];\n regexSource += tokenMap[token] || token;\n lastIndex = tokenPattern.lastIndex;\n }\n const trailingLiteral = formatStr.slice(lastIndex);\n regexSource += trailingLiteral.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') + '$';\n\n const reg = new RegExp(regexSource, 'i');\n const resultMatch = reg.exec(trimmed);\n if (!resultMatch || !resultMatch.groups) {\n const fallback = new Date(trimmed);\n return isNaN(fallback.getTime()) ? null : fallback;\n }\n\n const groups = resultMatch.groups;\n const year = groups['year']\n ? parseInt(groups['year'], 10)\n : groups['shortYear']\n ? 2000 + parseInt(groups['shortYear'], 10)\n : new Date().getFullYear();\n\n const month = groups['month'] ? parseInt(groups['month'], 10) - 1 : 0;\n const day = groups['day'] ? parseInt(groups['day'], 10) : 1;\n\n let hours = 0;\n if (groups['hours24']) {\n hours = parseInt(groups['hours24'], 10);\n } else if (groups['hours12']) {\n hours = parseInt(groups['hours12'], 10);\n const meridiem = (groups['meridiem'] || '').toUpperCase();\n if (meridiem === 'PM' && hours < 12) hours += 12;\n if (meridiem === 'AM' && hours === 12) hours = 0;\n }\n\n const minutes = groups['minutes'] ? parseInt(groups['minutes'], 10) : 0;\n const seconds = groups['seconds'] ? parseInt(groups['seconds'], 10) : 0;\n\n const result = new Date(year, month, day, hours, minutes, seconds);\n if (\n result.getFullYear() !== year ||\n result.getMonth() !== month ||\n result.getDate() !== day\n ) {\n return null;\n }\n\n return result;\n}\n","import {\n Component,\n computed,\n forwardRef,\n input,\n model,\n OnInit,\n output,\n signal\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CalendarDayCell,\n CalendarMode,\n CalendarSize,\n CalendarView\n} from '../../models/date-picker.model';\nimport { DateRange } from '../../models/date-range.model';\nimport {\n addMonths,\n addYears,\n createCalendarGrid,\n formatMonthTitle,\n getMonthNames,\n getWeekdayNames,\n isAfterDay,\n isBeforeDay,\n isSameDay,\n isSameMonth,\n isWithinDayRange\n} from '../../utils/date-utils';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-calendar',\n imports: [\n CommonModule,\n StrataIconComponent\n ],\n templateUrl: './calendar.component.html',\n styleUrl: './calendar.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataCalendarComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-calendar]': 'true',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null'\n }\n})\nexport class StrataCalendarComponent implements ControlValueAccessor, OnInit {\n mode = input<CalendarMode>('single');\n size = input<CalendarSize>('md');\n locale = input<string | undefined>(undefined);\n\n value = model<Date | null>(null);\n rangeValue = model<DateRange | null>(null);\n viewDate = model<Date>(new Date());\n\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n disabledDates = input<((date: Date) => boolean) | Date[] | null>(null);\n\n firstDayOfWeek = input<number>(0);\n showAdjacentMonths = input<boolean>(true);\n disabled = input<boolean>(false);\n\n dateSelected = output<Date>();\n rangeSelected = output<DateRange>();\n\n view = signal<CalendarView>('days');\n hoverDate = signal<Date | null>(null);\n focusedDate = signal<Date>(new Date());\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: Date | DateRange | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n ngOnInit(): void {\n if (this.mode() === 'single') {\n const v = this.value();\n if (v && !isNaN(v.getTime())) {\n this.viewDate.set(new Date(v));\n }\n }\n }\n\n readonly weekdays = computed(() => {\n return getWeekdayNames(this.locale(), this.firstDayOfWeek(), 'short');\n });\n\n readonly currentMonthName = computed(() => {\n return formatMonthTitle(this.viewDate(), this.locale());\n });\n\n readonly currentYear = computed(() => {\n return this.viewDate().getFullYear();\n });\n\n readonly yearRangeStart = computed(() => {\n const y = this.viewDate().getFullYear();\n return Math.floor(y / 12) * 12;\n });\n\n readonly yearsList = computed(() => {\n const start = this.yearRangeStart();\n const list: number[] = [];\n for (let i = 0; i < 12; i++) {\n list.push(start + i);\n }\n return list;\n });\n\n readonly monthsList = computed(() => {\n return getMonthNames(this.locale(), 'short');\n });\n\n readonly calendarGrid = computed<CalendarDayCell[]>(() => {\n const vDate = this.viewDate();\n const rawGrid = createCalendarGrid(vDate, this.firstDayOfWeek());\n const today = new Date();\n const min = this.minDate();\n const max = this.maxDate();\n const disabledProp = this.disabledDates();\n const selectedVal = this.value();\n const range = this.rangeValue();\n const hover = this.hoverDate();\n const isRangeMode = this.mode() === 'range';\n\n return rawGrid.map((d) => {\n const isCurrentMonth = isSameMonth(d, vDate);\n const isToday = isSameDay(d, today);\n\n let isDisabled = false;\n if (min && isBeforeDay(d, min)) {\n isDisabled = true;\n }\n if (max && isAfterDay(d, max)) {\n isDisabled = true;\n }\n if (disabledProp) {\n if (typeof disabledProp === 'function') {\n isDisabled = isDisabled || disabledProp(d);\n } else if (Array.isArray(disabledProp)) {\n isDisabled = isDisabled || disabledProp.some((disabledD) => isSameDay(disabledD, d));\n }\n }\n\n let isSelected = false;\n let isRangeStart = false;\n let isRangeEnd = false;\n let isInRange = false;\n let isRangeHover = false;\n\n if (!isRangeMode) {\n isSelected = isSameDay(d, selectedVal);\n } else {\n const rStart = range?.start;\n const rEnd = range?.end;\n\n if (rStart && rEnd) {\n isRangeStart = isSameDay(d, rStart);\n isRangeEnd = isSameDay(d, rEnd);\n isInRange = isWithinDayRange(d, rStart, rEnd) && !isRangeStart && !isRangeEnd;\n isSelected = isRangeStart || isRangeEnd;\n } else if (rStart && !rEnd) {\n if (!hover || isSameDay(rStart, hover)) {\n isRangeStart = isSameDay(d, rStart);\n isRangeEnd = isSameDay(d, rStart);\n isSelected = isRangeStart;\n } else {\n const isHoverBefore = isBeforeDay(hover, rStart);\n const actualStart = isHoverBefore ? hover : rStart;\n const actualEnd = isHoverBefore ? rStart : hover;\n\n isRangeStart = isSameDay(d, actualStart);\n isRangeEnd = isSameDay(d, actualEnd);\n isInRange = isWithinDayRange(d, actualStart, actualEnd) && !isRangeStart && !isRangeEnd;\n isRangeHover = isInRange;\n isSelected = isRangeStart || isRangeEnd;\n }\n }\n }\n\n return {\n date: d,\n dayNumber: d.getDate(),\n isCurrentMonth,\n isToday,\n isSelected,\n isDisabled,\n isRangeStart,\n isRangeEnd,\n isInRange,\n isRangeHover\n };\n });\n });\n\n onPrevClick(): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const v = this.view();\n\n if (v === 'days') {\n this.viewDate.set(addMonths(current, -1));\n } else if (v === 'months') {\n this.viewDate.set(addYears(current, -1));\n } else if (v === 'years') {\n this.viewDate.set(addYears(current, -12));\n }\n }\n\n onNextClick(): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const v = this.view();\n\n if (v === 'days') {\n this.viewDate.set(addMonths(current, 1));\n } else if (v === 'months') {\n this.viewDate.set(addYears(current, 1));\n } else if (v === 'years') {\n this.viewDate.set(addYears(current, 12));\n }\n }\n\n toggleView(): void {\n if (this.effectiveDisabled()) return;\n const v = this.view();\n if (v === 'days') {\n this.view.set('months');\n } else if (v === 'months') {\n this.view.set('years');\n } else {\n this.view.set('days');\n }\n }\n\n selectMonth(monthIndex: number): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const next = new Date(current.getFullYear(), monthIndex, 1);\n this.viewDate.set(next);\n this.view.set('days');\n }\n\n selectYear(year: number): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const next = new Date(year, current.getMonth(), 1);\n this.viewDate.set(next);\n this.view.set('months');\n }\n\n onDayClick(cell: CalendarDayCell): void {\n if (this.effectiveDisabled() || cell.isDisabled) return;\n\n if (!cell.isCurrentMonth) {\n this.viewDate.set(cell.date);\n }\n\n if (this.mode() === 'single') {\n const selected = new Date(cell.date);\n this.value.set(selected);\n this.dateSelected.emit(selected);\n this.onChange(selected);\n this.onTouched();\n } else {\n const currentRange = this.rangeValue();\n if (!currentRange || !currentRange.start || (currentRange.start && currentRange.end)) {\n const nextRange: DateRange = { start: new Date(cell.date), end: null };\n this.rangeValue.set(nextRange);\n this.rangeSelected.emit(nextRange);\n this.onChange(nextRange);\n } else {\n let start = currentRange.start;\n let end = new Date(cell.date);\n if (isBeforeDay(end, start)) {\n const temp = start;\n start = end;\n end = temp;\n }\n const nextRange: DateRange = { start, end };\n this.rangeValue.set(nextRange);\n this.rangeSelected.emit(nextRange);\n this.onChange(nextRange);\n this.onTouched();\n }\n }\n }\n\n onDayHover(cell: CalendarDayCell): void {\n if (this.mode() === 'range' && this.rangeValue()?.start && !this.rangeValue()?.end) {\n this.hoverDate.set(cell.date);\n }\n }\n\n onDayKeyDown(event: KeyboardEvent, cell: CalendarDayCell): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.onDayClick(cell);\n }\n }\n\n writeValue(val: Date | DateRange | null): void {\n if (this.mode() === 'single') {\n const d = val instanceof Date ? val : null;\n this.value.set(d);\n if (d) {\n this.viewDate.set(new Date(d));\n }\n } else {\n const range = val && typeof val === 'object' && 'start' in val ? (val as DateRange) : null;\n this.rangeValue.set(range);\n if (range?.start) {\n this.viewDate.set(new Date(range.start));\n }\n }\n }\n\n registerOnChange(fn: (val: Date | DateRange | null) => 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-calendar-container\">\n <div class=\"st-calendar-header\">\n <button\n type=\"button\"\n class=\"st-cal-nav-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"onPrevClick()\"\n aria-label=\"Previous\"\n >\n <st-icon name=\"arrow-left\" size=\"sm\"></st-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"st-cal-title-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"toggleView()\"\n >\n @if (view() === 'days') {\n {{ currentMonthName() }} {{ currentYear() }}\n } @else if (view() === 'months') {\n {{ currentYear() }}\n } @else {\n {{ yearRangeStart() }} - {{ yearRangeStart() + 11 }}\n }\n </button>\n\n <button\n type=\"button\"\n class=\"st-cal-nav-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"onNextClick()\"\n aria-label=\"Next\"\n >\n <st-icon name=\"arrow-right\" size=\"sm\"></st-icon>\n </button>\n </div>\n\n <div class=\"st-calendar-body\">\n @if (view() === 'days') {\n <div class=\"st-calendar-weekdays\" role=\"row\">\n @for (day of weekdays(); track day) {\n <span class=\"st-calendar-weekday\" role=\"columnheader\">{{ day }}</span>\n }\n </div>\n\n <div class=\"st-calendar-days-grid\" role=\"grid\">\n @for (cell of calendarGrid(); track cell.date.toISOString()) {\n <button\n type=\"button\"\n class=\"st-calendar-day\"\n [class.st-adjacent]=\"!cell.isCurrentMonth\"\n [class.st-today]=\"cell.isToday\"\n [class.st-selected]=\"cell.isSelected\"\n [class.st-range-start]=\"cell.isRangeStart\"\n [class.st-range-end]=\"cell.isRangeEnd\"\n [class.st-in-range]=\"cell.isInRange\"\n [class.st-range-hover]=\"cell.isRangeHover\"\n [disabled]=\"cell.isDisabled || effectiveDisabled()\"\n [attr.aria-selected]=\"cell.isSelected\"\n [attr.aria-disabled]=\"cell.isDisabled\"\n (click)=\"onDayClick(cell)\"\n (mouseenter)=\"onDayHover(cell)\"\n (keydown)=\"onDayKeyDown($event, cell)\"\n >\n <span class=\"st-day-content\">{{ cell.dayNumber }}</span>\n </button>\n }\n </div>\n } @else if (view() === 'months') {\n <div class=\"st-calendar-grid-months\">\n @for (m of monthsList(); track m; let i = $index) {\n <button\n type=\"button\"\n class=\"st-calendar-choice-btn\"\n [class.st-selected]=\"viewDate().getMonth() === i\"\n (click)=\"selectMonth(i)\"\n >\n {{ m }}\n </button>\n }\n </div>\n } @else {\n <div class=\"st-calendar-grid-years\">\n @for (y of yearsList(); track y) {\n <button\n type=\"button\"\n class=\"st-calendar-choice-btn\"\n [class.st-selected]=\"viewDate().getFullYear() === y\"\n (click)=\"selectYear(y)\"\n >\n {{ y }}\n </button>\n }\n </div>\n }\n </div>\n</div>\n","import {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\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 { CalendarSize, DatePickerSize, TimeFormat } from '../../models/date-picker.model';\nimport { formatDate, getLocaleDefaultDateFormat, parseDate } from '../../utils/date-utils';\nimport { InputControlState } from '../../../../shared/control-state';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataCalendarComponent } from '../calendar/calendar.component';\nimport { StrataTimePickerComponent } from '../time-picker/time-picker.component';\n\nlet nextUniqueDatePickerId = 0;\n\n@Component({\n selector: 'st-datepicker',\n imports: [\n CommonModule,\n FormsModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataCalendarComponent,\n StrataTimePickerComponent\n ],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataDatePickerComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-datepicker]': 'true',\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() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataDatePickerComponent implements ControlValueAccessor {\n private readonly defaultId = `st-datepicker-${nextUniqueDatePickerId++}`;\n\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n placeholder = input<string>('Select date');\n format = input<string | undefined>(undefined);\n size = input<DatePickerSize>('md');\n placement = input<Placement>('bottom-start');\n locale = input<string | undefined>(undefined);\n\n readonly calendarSize = computed<CalendarSize>(() => (this.size() === 'sm' ? 'sm' : 'md'));\n\n clearable = input<boolean, unknown>(true, { transform: booleanAttribute });\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n fullWidth = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n showTime = input<boolean, unknown>(false, { transform: booleanAttribute });\n timeFormat = input<TimeFormat>('24h');\n showSeconds = input<boolean, unknown>(false, { transform: booleanAttribute });\n minuteStep = input<number>(1);\n\n state = input<InputControlState | undefined>(undefined);\n error = input<boolean, unknown>(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n disabledDates = input<((date: Date) => boolean) | Date[] | null>(null);\n firstDayOfWeek = input<number>(0);\n\n value = model<Date | null>(null);\n dateSelected = output<Date | null>();\n\n open = signal<boolean>(false);\n textInputValue = signal<string>('');\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n private onChange: (val: Date | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n private overlayDirective = viewChild(StrataOverlayDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n if (!this.open()) return;\n const target = event.target as Node | null;\n if (!target) return;\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.open.set(false);\n });\n\n this.destroyRef.onDestroy(() => unlisten());\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.open.set(!this.open());\n }\n\n onInputTextChange(value: string): void {\n this.textInputValue.set(value);\n if (!value.trim()) {\n this.updateDateValue(null);\n return;\n }\n\n const parsed = parseDate(value, this.effectiveFormat());\n if (parsed) {\n this.updateDateValue(parsed);\n }\n }\n\n onInputBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val) {\n this.textInputValue.set(formatDate(val, this.effectiveFormat()));\n } else {\n this.textInputValue.set('');\n }\n }\n\n onCalendarDateSelected(date: Date): void {\n const prev = this.value();\n if (prev && this.showTime()) {\n date.setHours(prev.getHours(), prev.getMinutes(), prev.getSeconds());\n }\n this.updateDateValue(date);\n if (!this.showTime()) {\n this.open.set(false);\n }\n }\n\n onTimeSelected(val: string | Date | null): void {\n if (!val) return;\n const current = this.value() || new Date();\n const nextDate = new Date(current);\n if (val instanceof Date) {\n nextDate.setHours(val.getHours(), val.getMinutes(), val.getSeconds());\n } else {\n const parts = val.split(':');\n nextDate.setHours(parseInt(parts[0], 10) || 0);\n nextDate.setMinutes(parseInt(parts[1], 10) || 0);\n if (parts[2]) {\n nextDate.setSeconds(parseInt(parts[2], 10) || 0);\n }\n }\n this.updateDateValue(nextDate);\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly()) return;\n this.updateDateValue(null);\n }\n\n private effectiveFormat(): string {\n const explicit = this.format();\n const base = explicit || getLocaleDefaultDateFormat(this.locale());\n if (this.showTime()) {\n return this.timeFormat() === '12h'\n ? this.showSeconds()\n ? `${base} hh:mm:ss A`\n : `${base} hh:mm A`\n : this.showSeconds()\n ? `${base} HH:mm:ss`\n : `${base} HH:mm`;\n }\n return base;\n }\n\n private updateDateValue(date: Date | null): void {\n this.value.set(date);\n this.textInputValue.set(formatDate(date, this.effectiveFormat()));\n this.dateSelected.emit(date);\n this.onChange(date);\n this.onTouched();\n }\n\n writeValue(val: Date | string | null): void {\n let d: Date | null = null;\n if (val instanceof Date) {\n d = val;\n } else if (typeof val === 'string') {\n d = parseDate(val, this.effectiveFormat());\n }\n this.value.set(d);\n this.textInputValue.set(formatDate(d, this.effectiveFormat()));\n }\n\n registerOnChange(fn: (val: Date | null) => 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","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div\n class=\"st-input-wrapper\"\n [class.full-width]=\"fullWidth()\"\n [class.disabled]=\"effectiveDisabled()\"\n [class.open]=\"open()\"\n [stOverlay]=\"calendarOverlay\"\n [overlayOpen]=\"open()\"\n [overlayPlacement]=\"placement()\"\n>\n <input\n type=\"text\"\n [id]=\"effectiveId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"textInputValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInputTextChange($any($event.target).value)\"\n (blur)=\"onInputBlur()\"\n (click)=\"toggle($event)\"\n (keydown.enter)=\"toggle($event)\"\n (keydown.escape)=\"open.set(false)\"\n />\n\n <div class=\"affix\">\n @if (clearable() && value() && !effectiveDisabled() && !readonly()) {\n <button\n type=\"button\"\n class=\"st-icon-btn\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date\"\n >\n <st-icon name=\"close\" size=\"xs\"></st-icon>\n </button>\n }\n\n <span class=\"st-trigger-icon\" (click)=\"toggle($event)\">\n <st-icon name=\"calendar\" size=\"xs\"></st-icon>\n </span>\n </div>\n</div>\n\n@if (message()) {\n <div class=\"st-input-field-footer\">\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\n\n<ng-template #calendarOverlay>\n <div class=\"st-datepicker-dropdown\" [class.st-datepicker-with-time]=\"showTime()\">\n <st-calendar\n mode=\"single\"\n [size]=\"calendarSize()\"\n [locale]=\"locale()\"\n [value]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (dateSelected)=\"onCalendarDateSelected($event)\"\n ></st-calendar>\n @if (showTime()) {\n <div class=\"st-datepicker-time-side\">\n <st-time-picker\n [value]=\"value()\"\n [format]=\"timeFormat()\"\n [showSeconds]=\"showSeconds()\"\n [minuteStep]=\"minuteStep()\"\n [disabled]=\"effectiveDisabled()\"\n (valueChange)=\"onTimeSelected($event)\"\n ></st-time-picker>\n </div>\n }\n </div>\n</ng-template>\n","import {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\n viewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Placement } from '@floating-ui/dom';\nimport { CalendarSize, DatePickerSize, DateRangePreset } from '../../models/date-picker.model';\nimport { DateRange } from '../../models/date-range.model';\nimport {\n addDays,\n addMonths,\n endOfMonth,\n formatDate,\n getLocaleDefaultDateFormat,\n parseDate,\n startOfMonth\n} from '../../utils/date-utils';\nimport { InputControlState } from '../../../../shared/control-state';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataCalendarComponent } from '../calendar/calendar.component';\n\nlet nextUniqueDateRangePickerId = 0;\n\nexport const DEFAULT_DATE_RANGE_PRESETS: DateRangePreset[] = [\n {\n label: 'Today',\n getRange: () => {\n const now = new Date();\n return { start: now, end: now };\n }\n },\n {\n label: 'Yesterday',\n getRange: () => {\n const yesterday = addDays(new Date(), -1);\n return { start: yesterday, end: yesterday };\n }\n },\n {\n label: 'Last 7 Days',\n getRange: () => {\n const now = new Date();\n return { start: addDays(now, -6), end: now };\n }\n },\n {\n label: 'Last 30 Days',\n getRange: () => {\n const now = new Date();\n return { start: addDays(now, -29), end: now };\n }\n },\n {\n label: 'This Month',\n getRange: () => {\n const now = new Date();\n return { start: startOfMonth(now), end: endOfMonth(now) };\n }\n },\n {\n label: 'Last Month',\n getRange: () => {\n const prevMonth = addMonths(new Date(), -1);\n return { start: startOfMonth(prevMonth), end: endOfMonth(prevMonth) };\n }\n }\n];\n\n@Component({\n selector: 'st-date-range-picker',\n imports: [\n CommonModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataCalendarComponent\n ],\n templateUrl: './date-range-picker.component.html',\n styleUrl: './date-range-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataDateRangePickerComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-date-range-picker]': 'true',\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() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataDateRangePickerComponent implements ControlValueAccessor {\n private readonly defaultId = `st-daterange-${nextUniqueDateRangePickerId++}`;\n\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n placeholder = input<string>('Start date – End date');\n separator = input<string>(' – ');\n format = input<string | undefined>(undefined);\n size = input<DatePickerSize>('md');\n placement = input<Placement>('bottom-start');\n locale = input<string | undefined>(undefined);\n\n readonly calendarSize = computed<CalendarSize>(() => (this.size() === 'sm' ? 'sm' : 'md'));\n\n numberOfMonths = input<number>(2);\n showPresets = input<boolean, unknown>(true, { transform: booleanAttribute });\n presets = input<DateRangePreset[]>(DEFAULT_DATE_RANGE_PRESETS);\n\n clearable = input<boolean, unknown>(true, { transform: booleanAttribute });\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n fullWidth = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n state = input<InputControlState | undefined>(undefined);\n error = input<boolean, unknown>(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n disabledDates = input<((date: Date) => boolean) | Date[] | null>(null);\n firstDayOfWeek = input<number>(0);\n initialViewDate = input<Date | null>(null);\n\n value = model<DateRange | null>(null);\n rangeSelected = output<DateRange | null>();\n\n open = signal<boolean>(false);\n textInputValue = signal<string>('');\n calendarViewDate = signal<Date>(new Date());\n\n readonly secondCalendarViewDate = computed(() => {\n return addMonths(this.calendarViewDate(), 1);\n });\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n private onChange: (val: DateRange | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n private overlayDirective = viewChild(StrataOverlayDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n private get effectiveFormat(): string {\n return this.format() || getLocaleDefaultDateFormat(this.locale());\n }\n\n constructor() {\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n if (!this.open()) return;\n const target = event.target as Node | null;\n if (!target) return;\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.open.set(false);\n });\n\n this.destroyRef.onDestroy(() => unlisten());\n\n effect(() => {\n const val = this.value();\n if (val && val.start && val.end) {\n this.textInputValue.set(\n `${formatDate(val.start, this.effectiveFormat)}${this.separator()}${formatDate(val.end, this.effectiveFormat)}`\n );\n this.calendarViewDate.set(new Date(val.start));\n } else {\n this.textInputValue.set('');\n }\n });\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n const opening = !this.open();\n if (opening) {\n const range = this.value();\n const viewDate = range?.start ?? this.initialViewDate() ?? new Date();\n this.calendarViewDate.set(new Date(viewDate));\n }\n this.open.set(opening);\n }\n\n onInputTextChange(value: string): void {\n this.textInputValue.set(value);\n if (!value.trim()) {\n this.updateRangeValue(null);\n return;\n }\n\n const parts = value.split(this.separator());\n if (parts.length === 2) {\n const s = parseDate(parts[0], this.effectiveFormat);\n const e = parseDate(parts[1], this.effectiveFormat);\n if (s && e) {\n this.updateRangeValue({ start: s, end: e });\n }\n }\n }\n\n onInputBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val && val.start && val.end) {\n this.textInputValue.set(\n `${formatDate(val.start, this.effectiveFormat)}${this.separator()}${formatDate(val.end, this.effectiveFormat)}`\n );\n } else {\n this.textInputValue.set('');\n }\n }\n\n onCalendarRangeSelected(range: DateRange): void {\n this.value.set(range);\n if (range.start && range.end) {\n this.textInputValue.set(\n `${formatDate(range.start, this.effectiveFormat)}${this.separator()}${formatDate(range.end, this.effectiveFormat)}`\n );\n this.rangeSelected.emit(range);\n this.onChange(range);\n this.onTouched();\n this.open.set(false);\n }\n }\n\n onSecondCalendarViewDateChange(date: Date): void {\n this.calendarViewDate.set(addMonths(date, -1));\n }\n\n applyPreset(preset: DateRangePreset): void {\n const range = preset.getRange();\n this.updateRangeValue(range);\n this.open.set(false);\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly()) return;\n this.updateRangeValue(null);\n }\n\n private updateRangeValue(range: DateRange | null): void {\n this.value.set(range);\n if (range && range.start && range.end) {\n this.textInputValue.set(\n `${formatDate(range.start, this.effectiveFormat)}${this.separator()}${formatDate(range.end, this.effectiveFormat)}`\n );\n } else {\n this.textInputValue.set('');\n }\n this.rangeSelected.emit(range);\n this.onChange(range);\n this.onTouched();\n }\n\n writeValue(val: DateRange | null): void {\n this.value.set(val);\n if (val && val.start && val.end) {\n this.textInputValue.set(\n `${formatDate(val.start, this.effectiveFormat)}${this.separator()}${formatDate(val.end, this.effectiveFormat)}`\n );\n this.calendarViewDate.set(new Date(val.start));\n } else {\n this.textInputValue.set('');\n }\n }\n\n registerOnChange(fn: (val: DateRange | null) => 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","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div\n class=\"st-input-wrapper\"\n [class.full-width]=\"fullWidth()\"\n [class.disabled]=\"effectiveDisabled()\"\n [class.open]=\"open()\"\n [stOverlay]=\"rangeCalendarOverlay\"\n [overlayOpen]=\"open()\"\n [overlayPlacement]=\"placement()\"\n>\n <input\n type=\"text\"\n [id]=\"effectiveId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"textInputValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInputTextChange($any($event.target).value)\"\n (blur)=\"onInputBlur()\"\n (click)=\"toggle($event)\"\n (keydown.enter)=\"toggle($event)\"\n (keydown.escape)=\"open.set(false)\"\n />\n\n <div class=\"affix\">\n @if (clearable() && value() && !effectiveDisabled() && !readonly()) {\n <button\n type=\"button\"\n class=\"st-icon-btn\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date range\"\n >\n <st-icon name=\"close\" size=\"xs\"></st-icon>\n </button>\n }\n\n <span class=\"st-trigger-icon\" (click)=\"toggle($event)\">\n <st-icon name=\"calendar\" size=\"xs\"></st-icon>\n </span>\n </div>\n</div>\n\n@if (message()) {\n <div class=\"st-input-field-footer\">\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\n\n<ng-template #rangeCalendarOverlay>\n <div class=\"st-date-range-dropdown\">\n @if (showPresets() && presets().length > 0) {\n <div class=\"st-date-range-presets\">\n <div class=\"st-presets-title\">Presets</div>\n @for (preset of presets(); track preset.label) {\n <button\n type=\"button\"\n class=\"st-preset-btn\"\n (click)=\"applyPreset(preset)\"\n >\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <div class=\"st-date-range-calendars\">\n <st-calendar\n mode=\"range\"\n [size]=\"calendarSize()\"\n [locale]=\"locale()\"\n [rangeValue]=\"value()\"\n [viewDate]=\"calendarViewDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (rangeSelected)=\"onCalendarRangeSelected($event)\"\n (viewDateChange)=\"calendarViewDate.set($event)\"\n ></st-calendar>\n\n @if (numberOfMonths() >= 2) {\n <st-calendar\n mode=\"range\"\n [size]=\"calendarSize()\"\n [locale]=\"locale()\"\n [rangeValue]=\"value()\"\n [viewDate]=\"secondCalendarViewDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (rangeSelected)=\"onCalendarRangeSelected($event)\"\n (viewDateChange)=\"onSecondCalendarViewDateChange($event)\"\n ></st-calendar>\n }\n </div>\n </div>\n</ng-template>\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 booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostBinding,\n HostListener,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { InputControlState } from '../../../../shared/control-state';\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n readonly displayMessage = computed(() => this.message() ?? this.hint());\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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-state-error')\n @HostBinding('class.st-error')\n get hostError(): boolean {\n return this.effectiveState() === 'error';\n }\n\n @HostBinding('class.st-state-success')\n get hostSuccess(): boolean {\n return this.effectiveState() === 'success';\n }\n\n @HostBinding('class.st-state-warning')\n get hostWarning(): boolean {\n return this.effectiveState() === 'warning';\n }\n\n @HostBinding('attr.aria-invalid')\n get hostAriaInvalid(): string | null {\n return this.effectiveState() === 'error' ? 'true' : null;\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 (displayMessage()) {\n <span\n class=\"st-file-upload-hint\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >{{ displayMessage() }}</span>\n }\n </div>\n\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n booleanAttribute,\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';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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@if (message()) {\n <div\n class=\"st-slider-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\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 AfterContentChecked,\n AfterViewInit,\n booleanAttribute,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataNativeInputRefDirective } from '../../directives/native-input-ref.directive';\nimport { InputControlState } from '../../../../shared/control-state';\n\nlet nextUniqueId = 0;\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 '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null',\n '(input)': 'onNativeInput()',\n '(change)': 'onNativeInput()'\n }\n})\nexport class StrataInputFieldComponent implements AfterViewInit, AfterContentChecked {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly defaultId = `st-input-${nextUniqueId++}`;\n\n size = input<InputFieldSize>('md');\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = input<boolean | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : booleanAttribute(value)\n });\n\n maxLength = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n showCharacterCounter = input(false, { transform: booleanAttribute });\n\n characterCounterFormatter = input<((current: number, max?: number) => string) | undefined>(undefined);\n\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n inputField = contentChild(StrataNativeInputRefDirective, {\n descendants: true\n });\n\n private pendingFocus = signal(false);\n\n readonly currentLength = signal(0);\n\n private readonly nativeMaxLength = signal<number | undefined>(undefined);\n\n readonly nativeDisabled = signal(false);\n readonly nativeId = signal<string | undefined>(undefined);\n\n readonly effectiveId = computed(() => this.id() ?? this.name() ?? this.nativeId() ?? this.defaultId);\n readonly effectiveMaxLength = computed(() => this.maxLength() ?? this.nativeMaxLength());\n\n readonly effectiveDisabled = computed(() => (this.disabled() ?? false) || this.nativeDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n readonly counterText = computed(() => {\n const current = this.currentLength();\n const max = this.effectiveMaxLength();\n const formatter = this.characterCounterFormatter();\n\n if (formatter) {\n return formatter(current, max);\n }\n\n if (max !== undefined) {\n return `${current} / ${max}`;\n }\n\n return `${current}`;\n });\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 effect(() => {\n const explicitDisabled = this.disabled();\n const input = this.nativeInput;\n\n if (input && explicitDisabled !== undefined && input.disabled !== explicitDisabled) {\n input.disabled = explicitDisabled;\n if (this.nativeDisabled() !== explicitDisabled) {\n this.nativeDisabled.set(explicitDisabled);\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.iconComponents().forEach((icon) => icon.size.set('sm')), 1);\n this.syncNativeState();\n }\n\n ngAfterContentChecked(): void {\n this.syncNativeState();\n }\n\n onNativeInput(): void {\n this.syncNativeState();\n }\n\n focus(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n this.pendingFocus.set(true);\n }\n\n blur(): void {\n this.nativeInput?.blur();\n }\n\n get nativeInput(): HTMLInputElement | HTMLTextAreaElement | undefined {\n return (\n this.inputField()?.el.nativeElement ??\n this.hostElement.nativeElement.querySelector('input, textarea') ??\n undefined\n );\n }\n\n private syncNativeState(): void {\n const input = this.nativeInput;\n if (!input) {\n return;\n }\n\n const explicitId = this.id() ?? this.name();\n if (explicitId !== undefined) {\n if (input.id !== explicitId) {\n input.id = explicitId;\n }\n } else if (!input.id && this.label()) {\n input.id = this.defaultId;\n }\n\n const currentId = input.id || undefined;\n if (this.nativeId() !== currentId) {\n this.nativeId.set(currentId);\n }\n\n const explicitMax = this.maxLength();\n if (explicitMax !== undefined) {\n const maxStr = String(explicitMax);\n if (input.getAttribute('maxlength') !== maxStr) {\n input.setAttribute('maxlength', maxStr);\n }\n\n if (input.value.length > explicitMax) {\n input.value = input.value.slice(0, explicitMax);\n input.dispatchEvent(new Event('input', { bubbles: true }));\n }\n } else {\n const attr = input.getAttribute('maxlength');\n const parsed = attr !== null && attr !== '' ? parseInt(attr, 10) : undefined;\n const validMax = parsed !== undefined && !isNaN(parsed) && parsed >= 0 ? parsed : undefined;\n if (this.nativeMaxLength() !== validMax) {\n this.nativeMaxLength.set(validMax);\n }\n }\n\n const explicitDisabled = this.disabled();\n if (explicitDisabled !== undefined && input.disabled !== explicitDisabled) {\n input.disabled = explicitDisabled;\n }\n\n const isInputDisabled = input.disabled || input.hasAttribute('disabled');\n if (this.nativeDisabled() !== isInputDisabled) {\n this.nativeDisabled.set(isInputDisabled);\n }\n\n const currentLen = input.value.length;\n if (this.currentLength() !== currentLen) {\n this.currentLength.set(currentLen);\n }\n }\n}\n\n","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\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@if (message() || showCharacterCounter()) {\n <div class=\"st-input-field-footer\">\n @if (message()) {\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n }\n @if (showCharacterCounter()) {\n <span class=\"st-input-field-counter\" aria-live=\"polite\">{{ counterText() }}</span>\n }\n </div>\n}\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 { booleanAttribute, Component, computed, input, model, output, signal } from '@angular/core';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n\n groupDisabled = signal(false);\n groupState = signal<InputControlState>('default');\n\n effectiveDisabled = computed(() => this.disabled() || this.groupDisabled());\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n if (this.state()) {\n return this.state()!;\n }\n return this.groupState();\n });\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 { Component } from '@angular/core';\n\n@Component({\n selector: 'st-modal-body',\n imports: [],\n templateUrl: './modal-body.component.html',\n host: {\n class: 'st-modal-body'\n }\n})\nexport class StrataModalBodyComponent {}\n","<ng-content></ng-content>\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 placement?: ModalPlacement;\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';\nexport type ModalPlacement = 'center' | 'right' | 'left' | 'bottom';\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, ModalPlacement, 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>();\n variant = input<ModalVariant>();\n placement = model<ModalPlacement | undefined>();\n\n readonly currentSize = computed(() => this.size() ?? this.configuration()?.size ?? 'md');\n readonly currentVariant = computed(() => this.variant() ?? this.configuration()?.variant ?? 'default');\n readonly currentPlacement = computed(() => this.placement() ?? this.configuration()?.placement ?? 'center');\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()} st-modal-placement-${this.currentPlacement()}`;\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\" [placement]=\"modal.placement\"> </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';\nimport { ButtonVariant } from '../button/directives/button/button.directive';\n\nexport interface StrataNotificationRef {\n readonly id: string;\n dismiss(): void;\n}\n\nexport interface NotificationAction {\n label: string;\n onClick?: (ref: StrataNotificationRef) => void;\n variant?: ButtonVariant;\n}\n\nexport interface NotificationConfiguration {\n id?: string;\n title?: string;\n message: string;\n icon?: string;\n theme?: Theme;\n duration?: number;\n dismissible?: boolean;\n showProgress?: boolean;\n pauseOnHover?: boolean;\n actions?: NotificationAction[];\n}\n\nexport type NotificationsWithIds = NotificationConfiguration & {\n id: string;\n dismissible: boolean;\n showProgress: boolean;\n pauseOnHover: boolean;\n actions: NotificationAction[];\n};\n\nexport const DEFAULT_THEME: Theme = 'default';\n\nexport const DEFAULT_DURATION = 3000;\n\n","import { inject, Injectable, signal } from '@angular/core';\nimport { STRATA_CONFIG } from '../../../app/provider/provide-strata';\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 private strataConfig = inject(STRATA_CONFIG, { optional: true });\n\n public maxNotifications = signal<number>(this.strataConfig?.maxNotifications ?? 5);\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 dismissAll(): void {\n this.notificationStack.set([]);\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 const showProgress = config.showProgress !== undefined ? config.showProgress : false;\n const pauseOnHover = config.pauseOnHover !== undefined ? config.pauseOnHover : true;\n const actions = config.actions ?? [];\n\n const currentStack = this.notificationStack();\n this.notificationStack.set([\n ...currentStack,\n {\n id: newNotificationId,\n title: config.title,\n message: config.message,\n duration: duration,\n theme: config.theme ?? DEFAULT_THEME,\n icon: config.icon,\n dismissible,\n showProgress,\n pauseOnHover,\n actions\n }\n ]);\n\n return {\n id: newNotificationId,\n dismiss: () => this.dismiss(newNotificationId)\n };\n }\n}\n\n\n","import { Component, input, OnDestroy, OnInit, output, signal } from '@angular/core';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { NotificationAction, StrataNotificationRef } from '../../notification.model';\n\n@Component({\n selector: 'st-notification',\n imports: [StrataIconComponent, StrataButtonDirective],\n templateUrl: './notification.component.html',\n host: {\n '[class.st-is-paused]': 'isPaused()',\n '[style.--st-notification-duration]': 'duration() + \"ms\"',\n '(mouseenter)': 'pauseTimer()',\n '(mouseleave)': 'resumeTimer()',\n '(focusin)': 'pauseTimer()',\n '(focusout)': 'resumeTimer()'\n }\n})\nexport class StrataNotificationComponent implements OnInit, OnDestroy {\n id = input<string | undefined>(undefined);\n title = input<string | undefined>(undefined);\n icon = input<string | undefined>(undefined);\n message = input.required<string>();\n duration = input<number>(3000);\n dismissible = input(false);\n showProgress = input(false);\n pauseOnHover = input(true);\n actions = input<NotificationAction[]>([]);\n\n dismiss = output<void>();\n actionClick = output<{ action: NotificationAction; ref: StrataNotificationRef }>();\n\n isPaused = signal(false);\n\n private remainingTime = 0;\n private startTime = 0;\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n ngOnInit(): void {\n if (this.duration() > 0) {\n this.startTimer(this.duration());\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n }\n\n onDismiss(): void {\n this.clearTimer();\n this.dismiss.emit();\n }\n\n onActionClick(action: NotificationAction): void {\n const ref: StrataNotificationRef = {\n id: this.id() ?? '',\n dismiss: () => this.onDismiss()\n };\n this.actionClick.emit({ action, ref });\n if (action.onClick) {\n action.onClick(ref);\n }\n }\n\n pauseTimer(): void {\n if (!this.pauseOnHover() || this.duration() <= 0 || this.isPaused()) {\n return;\n }\n this.clearTimer();\n const elapsed = Date.now() - this.startTime;\n this.remainingTime = Math.max(0, this.remainingTime - elapsed);\n this.isPaused.set(true);\n }\n\n resumeTimer(): void {\n if (!this.pauseOnHover() || this.duration() <= 0 || !this.isPaused()) {\n return;\n }\n if (this.remainingTime <= 0) {\n this.onDismiss();\n return;\n }\n this.startTimer(this.remainingTime);\n }\n\n private startTimer(ms: number): void {\n this.clearTimer();\n this.remainingTime = ms;\n this.startTime = Date.now();\n this.isPaused.set(false);\n this.timeoutId = setTimeout(() => {\n this.onDismiss();\n }, ms);\n }\n\n private clearTimer(): void {\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n}\n\n","@if (icon()) {\n <div class=\"st-notification-icon-wrapper\">\n <st-icon [name]=\"icon()!\"></st-icon>\n </div>\n}\n<div class=\"st-notification-content\">\n @if (title()) {\n <div class=\"st-notification-title\">{{ title() }}</div>\n }\n <div class=\"st-notification-message notification-message\">{{ message() }}</div>\n @if (actions().length > 0) {\n <div class=\"st-notification-actions\">\n @for (action of actions(); track action.label) {\n <button\n type=\"button\"\n stButton\n [variant]=\"action.variant ?? 'secondary'\"\n size=\"sm\"\n (click)=\"onActionClick(action)\"\n >\n {{ action.label }}\n </button>\n }\n </div>\n }\n</div>\n@if (dismissible()) {\n <button\n type=\"button\"\n class=\"st-notification-close-btn notification-close-btn\"\n aria-label=\"Dismiss notification\"\n (click)=\"onDismiss()\"\n >\n <st-icon name=\"close\"></st-icon>\n </button>\n}\n@if (showProgress() && duration() > 0) {\n <div class=\"st-notification-progress-bar\" role=\"progressbar\" aria-hidden=\"true\"></div>\n}\n\n","import { Component, computed, inject } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataThemeDirective } from '../../../theming/directives/theme.directive';\nimport { NotificationService } from '../../services/notification.service';\nimport { StrataNotificationComponent } from '../notification/notification.component';\n\n@Component({\n selector: 'st-notification-container',\n imports: [StrataNotificationComponent, StrataThemeDirective, StrataIconComponent],\n templateUrl: './notification-container.component.html'\n})\nexport class StrataNotificationContainerComponent {\n notificationService = inject(NotificationService);\n\n notifications = this.notificationService.notificationStack;\n maxNotifications = this.notificationService.maxNotifications;\n\n visibleNotifications = computed(() => {\n const max = this.maxNotifications();\n const stack = this.notifications();\n if (max <= 0 || stack.length <= max) {\n return stack;\n }\n return stack.slice(-max);\n });\n\n overflowCount = computed(() => {\n const max = this.maxNotifications();\n const total = this.notifications().length;\n if (max <= 0) {\n return 0;\n }\n return Math.max(0, total - max);\n });\n\n dismiss(id: string): void {\n this.notificationService.dismiss(id);\n }\n\n dismissAll(): void {\n this.notificationService.dismissAll();\n }\n}\n\n","@if (overflowCount() > 0) {\n <div class=\"st-notification-overflow\">\n <span class=\"st-notification-overflow-text\">+{{ overflowCount() }} more</span>\n <button\n type=\"button\"\n class=\"st-notification-overflow-clear\"\n aria-label=\"Dismiss all notifications\"\n (click)=\"dismissAll()\"\n >\n <st-icon name=\"close\"></st-icon>\n </button>\n </div>\n}\n\n@for (notification of visibleNotifications(); track notification.id) {\n <st-notification\n [id]=\"notification.id\"\n [icon]=\"notification.icon\"\n [title]=\"notification.title\"\n [message]=\"notification.message\"\n [dismissible]=\"notification.dismissible\"\n [duration]=\"notification.duration ?? 3000\"\n [showProgress]=\"notification.showProgress\"\n [pauseOnHover]=\"notification.pauseOnHover\"\n [actions]=\"notification.actions\"\n [stTheme]=\"notification.theme ?? 'default'\"\n (dismiss)=\"dismiss(notification.id)\"\n >\n </st-notification>\n}\n\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 {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n forwardRef,\n input,\n model,\n numberAttribute,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { InputControlState } from '../../../../shared/control-state';\n\nlet nextUniqueId = 0;\n\nexport type NumberStepperSize = 'sm' | 'md' | 'lg';\nexport type NumberStepperLayout = 'split' | 'stacked';\n\n@Component({\n selector: 'st-number-stepper',\n imports: [StrataIconComponent],\n templateUrl: './number-stepper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataNumberStepperComponent),\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-layout-split]': 'stepperLayout() === \"split\"',\n '[class.st-layout-stacked]': 'stepperLayout() === \"stacked\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataNumberStepperComponent implements ControlValueAccessor {\n private readonly defaultId = `st-stepper-${nextUniqueId++}`;\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('nativeInput');\n\n value = model<number | null | undefined>(undefined);\n\n min = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n max = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n step = input<number, unknown>(1, {\n transform: (value: unknown) => {\n const parsed = numberAttribute(value);\n return parsed > 0 ? parsed : 1;\n }\n });\n\n precision = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n size = input<NumberStepperSize>('md');\n stepperLayout = input<NumberStepperLayout>('split');\n\n label = input<string | undefined>(undefined);\n placeholder = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = input<boolean | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : booleanAttribute(value)\n });\n\n readonly = input<boolean, unknown>(false, {\n transform: booleanAttribute\n });\n\n private readonly cvaDisabled = signal(false);\n\n readonly effectiveId = computed(() => this.id() ?? this.name() ?? this.defaultId);\n readonly effectiveDisabled = computed(() => (this.disabled() ?? false) || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n readonly canIncrement = computed(() => {\n if (this.effectiveDisabled() || this.readonly()) {\n return false;\n }\n const val = this.value();\n const maxVal = this.max();\n if (val !== undefined && val !== null && maxVal !== undefined && val >= maxVal) {\n return false;\n }\n return true;\n });\n\n readonly canDecrement = computed(() => {\n if (this.effectiveDisabled() || this.readonly()) {\n return false;\n }\n const val = this.value();\n const minVal = this.min();\n if (val !== undefined && val !== null && minVal !== undefined && val <= minVal) {\n return false;\n }\n return true;\n });\n\n readonly formattedValue = computed(() => {\n const val = this.value();\n if (val === undefined || val === null || isNaN(val)) {\n return '';\n }\n return String(val);\n });\n\n private onChange: (val: number | null | undefined) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n stepUp(): void {\n if (!this.canIncrement()) {\n return;\n }\n\n const current = this.value() ?? this.min() ?? 0;\n let next = current + this.step();\n const maxVal = this.max();\n if (maxVal !== undefined && next > maxVal) {\n next = maxVal;\n }\n\n next = this.roundToPrecision(next, this.precision());\n this.updateValue(next);\n }\n\n stepDown(): void {\n if (!this.canDecrement()) {\n return;\n }\n\n const current = this.value() ?? this.max() ?? 0;\n let next = current - this.step();\n const minVal = this.min();\n if (minVal !== undefined && next < minVal) {\n next = minVal;\n }\n\n next = this.roundToPrecision(next, this.precision());\n this.updateValue(next);\n }\n\n onNativeInput(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n const raw = inputEl.value.trim();\n\n if (raw === '') {\n this.updateValue(undefined);\n return;\n }\n\n const parsed = Number(raw);\n if (!isNaN(parsed)) {\n this.updateValue(parsed);\n }\n }\n\n onNativeBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val === undefined || val === null || isNaN(val)) {\n return;\n }\n\n let clamped = val;\n const minVal = this.min();\n const maxVal = this.max();\n\n if (minVal !== undefined && clamped < minVal) {\n clamped = minVal;\n } else if (maxVal !== undefined && clamped > maxVal) {\n clamped = maxVal;\n }\n\n clamped = this.roundToPrecision(clamped, this.precision());\n if (clamped !== val) {\n this.updateValue(clamped);\n }\n }\n\n onNativeKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.stepUp();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.stepDown();\n }\n }\n\n focus(): void {\n this.inputRef()?.nativeElement.focus();\n }\n\n blur(): void {\n this.inputRef()?.nativeElement.blur();\n }\n\n writeValue(val: number | null | undefined): void {\n if (val === null || val === undefined || isNaN(val)) {\n this.value.set(undefined);\n } else {\n this.value.set(Number(val));\n }\n }\n\n registerOnChange(fn: (val: number | null | 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 private updateValue(nextVal: number | undefined): void {\n this.value.set(nextVal);\n this.onChange(nextVal);\n }\n\n private roundToPrecision(val: number, precision?: number): number {\n if (precision !== undefined) {\n const factor = Math.pow(10, precision);\n return Math.round(val * factor) / factor;\n }\n const stepDecimals = this.getDecimalCount(this.step());\n if (stepDecimals > 0) {\n const factor = Math.pow(10, stepDecimals);\n return Math.round(val * factor) / factor;\n }\n return val;\n }\n\n private getDecimalCount(val: number): number {\n const s = String(val);\n const dotIndex = s.indexOf('.');\n return dotIndex >= 0 ? s.length - dotIndex - 1 : 0;\n }\n}\n","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div class=\"st-stepper-wrapper\">\n @if (stepperLayout() === 'split') {\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-dec\"\n [disabled]=\"!canDecrement()\"\n (click)=\"stepDown()\"\n aria-label=\"Decrement\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-down\"></st-icon>\n </button>\n <input\n #nativeInput\n [id]=\"effectiveId()\"\n [name]=\"name() ?? effectiveId()\"\n type=\"text\"\n inputmode=\"decimal\"\n [placeholder]=\"placeholder() ?? ''\"\n [value]=\"formattedValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onNativeBlur()\"\n (keydown)=\"onNativeKeyDown($event)\"\n />\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-inc\"\n [disabled]=\"!canIncrement()\"\n (click)=\"stepUp()\"\n aria-label=\"Increment\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-up\"></st-icon>\n </button>\n } @else {\n <input\n #nativeInput\n [id]=\"effectiveId()\"\n [name]=\"name() ?? effectiveId()\"\n type=\"text\"\n inputmode=\"decimal\"\n [placeholder]=\"placeholder() ?? ''\"\n [value]=\"formattedValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onNativeBlur()\"\n (keydown)=\"onNativeKeyDown($event)\"\n />\n <div class=\"st-stepper-stacked-actions\">\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-inc\"\n [disabled]=\"!canIncrement()\"\n (click)=\"stepUp()\"\n aria-label=\"Increment\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-up\"></st-icon>\n </button>\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-dec\"\n [disabled]=\"!canDecrement()\"\n (click)=\"stepDown()\"\n aria-label=\"Decrement\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-down\"></st-icon>\n </button>\n </div>\n }\n</div>\n\n@if (message()) {\n <div class=\"st-stepper-footer\">\n <span\n class=\"st-stepper-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\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 booleanAttribute,\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 message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\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 readonly effectiveMessage = computed<string | undefined>(() => {\n return this.message() ?? this.computedErrorMessage() ?? this.helperText();\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\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 (effectiveMessage()) {\n <div\n class=\"st-otp-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ effectiveMessage() }}\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 booleanAttribute,\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';\nimport { InputControlState } from '../../../../shared/control-state';\n\n@Component({\n selector: 'st-radio-group',\n imports: [],\n templateUrl: './radio-group.component.html',\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataRadioGroupComponent implements ControlValueAccessor {\n value = model<string>('');\n disabled = input<boolean>(false);\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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(() => {\n const currentState = this.effectiveState();\n this.radios().forEach((radio) => {\n radio.groupState.set(currentState);\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","<div class=\"st-radio-group-radios\">\n <ng-content></ng-content>\n</div>\n@if (message()) {\n <div\n class=\"st-radio-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\n","import { Component, computed, HostBinding, input, model, output, signal } from '@angular/core';\nimport { BadgeSize, BadgeVariant, StrataBadgeComponent } from '../../../badge';\n\n@Component({\n selector: 'st-segmented-control-item',\n imports: [StrataBadgeComponent],\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 badge = input<string | number | undefined>(undefined);\n badgeVariant = input<BadgeVariant>('neutral');\n badgeSize = input<BadgeSize>('sm');\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","<span>{{ text() }}</span>\n@if (badge() !== undefined) {\n <st-badge [value]=\"badge()\" [variant]=\"badgeVariant()\" [size]=\"badgeSize()\"></st-badge>\n}\n<ng-content select=\"st-badge\"></ng-content>\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';\nimport { InputControlState } from '../../../../shared/control-state';\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-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null',\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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","<div class=\"st-segmented-control-track\">\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'\"></div>\n</div>\n@if (message()) {\n <div\n class=\"st-segmented-control-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\n\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 booleanAttribute,\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';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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@if (message()) {\n <div\n class=\"st-select-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\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, HostBinding, input } from '@angular/core';\nimport { SkeletonAnimation, SkeletonSize, SkeletonVariant } from '../../skeleton.model';\n\n@Component({\n selector: 'st-skeleton',\n imports: [],\n templateUrl: './skeleton.component.html'\n})\nexport class StrataSkeletonComponent {\n variant = input<SkeletonVariant>('text');\n size = input<SkeletonSize | undefined>(undefined);\n animation = input<SkeletonAnimation>('shimmer');\n width = input<string | number | undefined>(undefined);\n height = input<string | number | undefined>(undefined);\n radius = input<string | number | undefined>(undefined);\n count = input<number>(1);\n lastLineWidth = input<string | number>('70%');\n gap = input<string | number | undefined>(undefined);\n loading = input<boolean>(true);\n ariaLabel = input<string>('Loading...');\n\n normalizedVariant = computed(() => {\n const v = this.variant();\n if (v === 'circle' || v === 'circular') return 'circular';\n if (v === 'rect' || v === 'rectangular') return 'rectangular';\n if (v === 'pill' || v === 'rounded') return 'rounded';\n return 'text';\n });\n\n normalizedWidth = computed(() => this.formatDimension(this.width()));\n normalizedHeight = computed(() => this.formatDimension(this.height()));\n normalizedRadius = computed(() => this.formatDimension(this.radius()));\n normalizedGap = computed(() => this.formatDimension(this.gap()));\n normalizedLastLineWidth = computed(() => this.formatDimension(this.lastLineWidth()));\n\n isMultiLine = computed(() => this.normalizedVariant() === 'text' && this.count() > 1);\n\n lineIndices = computed(() => {\n const n = Math.max(1, Math.floor(this.count()));\n return Array.from({ length: n }, (_, i) => i);\n });\n\n @HostBinding('attr.role')\n get hostRole(): string | null {\n return this.loading() ? 'status' : null;\n }\n\n @HostBinding('attr.aria-busy')\n get hostAriaBusy(): string | null {\n return this.loading() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-live')\n get hostAriaLive(): string | null {\n return this.loading() ? 'polite' : null;\n }\n\n @HostBinding('attr.aria-label')\n get hostAriaLabel(): string | null {\n return this.loading() ? this.ariaLabel() : null;\n }\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = [\n 'st-skeleton',\n `st-skeleton-${this.normalizedVariant()}`,\n `st-skeleton-anim-${this.animation()}`\n ];\n if (this.size()) {\n classes.push(`st-skeleton-${this.size()}`);\n }\n if (this.isMultiLine()) {\n classes.push('st-skeleton-multiline');\n }\n if (!this.loading()) {\n classes.push('st-skeleton-loaded');\n }\n return classes.join(' ');\n }\n\n getLineWidth(index: number, isLast: boolean): string | undefined {\n if (isLast && this.normalizedVariant() === 'text' && this.isMultiLine()) {\n return this.normalizedLastLineWidth() ?? this.normalizedWidth();\n }\n return this.normalizedWidth();\n }\n\n private formatDimension(value: string | number | undefined): string | undefined {\n if (value === undefined || value === null || value === '') {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n }\n}\n","@if (loading()) {\n @if (isMultiLine()) {\n <div class=\"st-skeleton-group\" [style.gap]=\"normalizedGap()\">\n @for (idx of lineIndices(); track idx; let last = $last) {\n <div\n class=\"st-skeleton-bone\"\n [style.width]=\"getLineWidth(idx, last)\"\n [style.height]=\"normalizedHeight()\"\n [style.border-radius]=\"normalizedRadius()\">\n </div>\n }\n </div>\n } @else {\n <div\n class=\"st-skeleton-bone\"\n [style.width]=\"normalizedWidth()\"\n [style.height]=\"normalizedHeight()\"\n [style.border-radius]=\"normalizedRadius()\">\n </div>\n }\n} @else {\n <ng-content></ng-content>\n}\n","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';\nimport { BadgeSize, BadgeVariant, StrataBadgeComponent } from '../../../badge';\n\n@Component({\n selector: 'st-tab-item',\n imports: [StrataBadgeComponent],\n templateUrl: './tab-item.component.html',\n host: {\n 'role': 'tab',\n '(click)': 'onClick()'\n }\n})\nexport class StrataTabItemComponent {\n text = input<string>();\n badge = input<string | number | undefined>(undefined);\n badgeVariant = input<BadgeVariant>('neutral');\n badgeSize = input<BadgeSize>('sm');\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 <span>{{ text() }}</span>\n @if (badge() !== undefined) {\n <st-badge [value]=\"badge()\" [variant]=\"badgeVariant()\" [size]=\"badgeSize()\"></st-badge>\n }\n <ng-content select=\"st-badge\"></ng-content>\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/breakpoint/breakpoint.service';\nexport * from './lib/services/darkmode/darkmode.service';\nexport * from './lib/services/device/device.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';\nexport * from './lib/shared/control-state';\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/date-picker';\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/number-stepper';\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/skeleton';\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":["nextUniqueId","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/breakpoint/breakpoint.service.ts","../../../projects/ngx-strata/src/lib/services/device/device.service.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/action-menu/directives/context-menu/context-menu.directive.ts","../../../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/chat/components/chat/chat.component.ts","../../../projects/ngx-strata/src/lib/features/chat/components/chat/chat.component.html","../../../projects/ngx-strata/src/lib/features/chat/components/chat-message/chat-message.component.ts","../../../projects/ngx-strata/src/lib/features/chat/components/chat-message/chat-message.component.html","../../../projects/ngx-strata/src/lib/features/chat/components/chat-group/chat-group.component.ts","../../../projects/ngx-strata/src/lib/features/chat/components/chat-group/chat-group.component.html","../../../projects/ngx-strata/src/lib/features/chat/components/chat-separator/chat-separator.component.ts","../../../projects/ngx-strata/src/lib/features/chat/components/chat-separator/chat-separator.component.html","../../../projects/ngx-strata/src/lib/features/chat/components/chat-typing/chat-typing.component.ts","../../../projects/ngx-strata/src/lib/features/chat/components/chat-typing/chat-typing.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/components/time-stepper/time-stepper.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/time-stepper/time-stepper.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/components/timepicker/timepicker.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/timepicker/timepicker.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/utils/date-utils.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/calendar/calendar.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/calendar/calendar.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/components/datepicker/datepicker.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/datepicker/datepicker.component.html","../../../projects/ngx-strata/src/lib/features/date-picker/components/date-range-picker/date-range-picker.component.ts","../../../projects/ngx-strata/src/lib/features/date-picker/components/date-range-picker/date-range-picker.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/components/modal-body/modal-body.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-body/modal-body.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/number-stepper/components/number-stepper/number-stepper.component.ts","../../../projects/ngx-strata/src/lib/features/number-stepper/components/number-stepper/number-stepper.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/radio/components/radio-group/radio-group.component.html","../../../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/skeleton/components/skeleton/skeleton.component.ts","../../../projects/ngx-strata/src/lib/features/skeleton/components/skeleton/skeleton.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 name: 'calendar',\n url: 'assets/icons/calendar.svg'\n },\n {\n name: 'clock',\n url: 'assets/icons/clock.svg'\n },\n {\n name: 'upload',\n url: 'assets/icons/upload.svg'\n },\n {\n name: 'camera',\n url: 'assets/icons/camera.svg'\n },\n {\n name: 'image',\n url: 'assets/icons/image.svg'\n },\n {\n name: 'check-single',\n url: 'assets/icons/check-single.svg'\n },\n {\n name: 'check-double',\n url: 'assets/icons/check-double.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 maxNotifications: 5,\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 maxNotifications?: number;\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\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 { computed, DestroyRef, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport type StrataBreakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst BREAKPOINT_ORDER: Record<StrataBreakpoint, number> = {\n xs: 0,\n sm: 1,\n md: 2,\n lg: 3,\n xl: 4\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreakpointService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _width = signal<number>(1280);\n private readonly _current = signal<StrataBreakpoint>('xl');\n\n readonly width = this._width.asReadonly();\n readonly current = this._current.asReadonly();\n\n readonly isMobile = computed(() => this.isSmallerThan('md'));\n readonly isTablet = computed(() => this._current() === 'md');\n readonly isDesktop = computed(() => this.isAtLeast('lg'));\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n\n this.updateBreakpoint();\n\n const resizeHandler = () => this.updateBreakpoint();\n window.addEventListener('resize', resizeHandler);\n\n this.destroyRef.onDestroy(() => {\n window.removeEventListener('resize', resizeHandler);\n });\n }\n\n is(breakpoint: StrataBreakpoint): boolean {\n return this._current() === breakpoint;\n }\n\n isSmallerThan(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] < BREAKPOINT_ORDER[breakpoint];\n }\n\n isLargerThan(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] > BREAKPOINT_ORDER[breakpoint];\n }\n\n isAtLeast(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] >= BREAKPOINT_ORDER[breakpoint];\n }\n\n isAtMost(breakpoint: StrataBreakpoint): boolean {\n return BREAKPOINT_ORDER[this._current()] <= BREAKPOINT_ORDER[breakpoint];\n }\n\n private updateBreakpoint(): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n const width = window.innerWidth;\n this._width.set(width);\n\n if (width < 480) {\n this._current.set('xs');\n } else if (width < 768) {\n this._current.set('sm');\n } else if (width < 1024) {\n this._current.set('md');\n } else if (width < 1280) {\n this._current.set('lg');\n } else {\n this._current.set('xl');\n }\n }\n}\n","import { computed, DestroyRef, inject, Injectable, PLATFORM_ID, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nexport type StrataOS = 'ios' | 'android' | 'macos' | 'windows' | 'linux' | 'unknown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _isTouch = signal<boolean>(false);\n private readonly _hasHover = signal<boolean>(true);\n private readonly _os = signal<StrataOS>('unknown');\n\n readonly isTouch = this._isTouch.asReadonly();\n readonly hasHover = this._hasHover.asReadonly();\n readonly os = this._os.asReadonly();\n\n readonly isApple = computed(() => this._os() === 'macos' || this._os() === 'ios');\n readonly isAndroid = computed(() => this._os() === 'android');\n readonly isWindows = computed(() => this._os() === 'windows');\n readonly isLinux = computed(() => this._os() === 'linux');\n\n constructor() {\n if (!this.isBrowser) {\n return;\n }\n\n this._os.set(this.detectOS());\n this.updatePointerCapabilities();\n\n if (typeof window !== 'undefined' && window.matchMedia) {\n const hoverQuery = window.matchMedia('(hover: hover)');\n const pointerQuery = window.matchMedia('(pointer: coarse)');\n\n const pointerChangeHandler = () => this.updatePointerCapabilities();\n\n hoverQuery.addEventListener?.('change', pointerChangeHandler);\n pointerQuery.addEventListener?.('change', pointerChangeHandler);\n\n this.destroyRef.onDestroy(() => {\n hoverQuery.removeEventListener?.('change', pointerChangeHandler);\n pointerQuery.removeEventListener?.('change', pointerChangeHandler);\n });\n }\n }\n\n private detectOS(): StrataOS {\n if (typeof navigator === 'undefined') {\n return 'unknown';\n }\n\n const nav = navigator as Navigator & { userAgentData?: { platform?: string } };\n const platform = nav.userAgentData?.platform || (nav as { platform?: string }).platform || '';\n const ua = nav.userAgent || '';\n\n if (/android/i.test(platform) || /android/i.test(ua)) {\n return 'android';\n }\n\n const isIPadOS = /mac/i.test(platform) && typeof navigator.maxTouchPoints === 'number' && navigator.maxTouchPoints > 1;\n if (/iphone|ipad|ipod/i.test(platform) || /iphone|ipad|ipod/i.test(ua) || isIPadOS) {\n return 'ios';\n }\n\n if (/mac/i.test(platform) || /macintosh|mac os x/i.test(ua)) {\n return 'macos';\n }\n\n if (/win/i.test(platform) || /windows/i.test(ua)) {\n return 'windows';\n }\n\n if (/linux/i.test(platform) || /linux/i.test(ua)) {\n return 'linux';\n }\n\n return 'unknown';\n }\n\n private updatePointerCapabilities(): void {\n if (typeof window === 'undefined') {\n return;\n }\n\n const hasTouchPointer = window.matchMedia?.('(pointer: coarse)')?.matches ?? false;\n const maxTouchPoints = typeof navigator !== 'undefined' ? navigator.maxTouchPoints > 0 : false;\n this._isTouch.set(hasTouchPointer || maxTouchPoints);\n\n const hasHoverMedia = window.matchMedia?.('(hover: hover)')?.matches ?? true;\n this._hasHover.set(hasHoverMedia);\n }\n}\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';\nimport { AccordionVariant } from '../../types';\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 variant = input<AccordionVariant>('standalone');\n\n toggled = output<boolean>();\n\n @HostBinding('class.flush')\n get isFlush(): boolean {\n return this.variant() === 'flush';\n }\n\n @HostBinding('class.standalone')\n get isStandalone(): boolean {\n return this.variant() === 'standalone';\n }\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, HostBinding } from '@angular/core';\nimport { StrataAccordionItemComponent } from '../accordion-item/accordion-item.component';\nimport { AccordionVariant } from '../../types';\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 variant = input<AccordionVariant>('standalone');\n\n @HostBinding('class.flush')\n get isFlush(): boolean {\n return this.variant() === 'flush';\n }\n\n @HostBinding('class.standalone')\n get isStandalone(): boolean {\n return this.variant() === 'standalone';\n }\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 booleanAttribute,\n Component,\n computed,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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","<div class=\"st-checkbox-row\">\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</div>\n@if (message()) {\n <div\n class=\"st-checkbox-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\n","import { booleanAttribute, Component, computed, forwardRef, inject, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = this._activatable.disabled;\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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-row\">\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</div>\n@if (message()) {\n <div\n class=\"st-toggle-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\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, ReferenceElement, 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 overlayTarget = input<ReferenceElement | null>(null);\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 ngOnChanges(): void {\n if (this.overlayOpen()) {\n if (!this.overlayEl) {\n this.create();\n } else {\n if (this.cleanup) {\n this.cleanup();\n }\n const target = this.getTarget();\n this.cleanup = autoUpdate(target, this.overlayEl, () => this.updatePosition());\n this.updatePosition();\n }\n } else {\n this.destroy();\n }\n }\n\n private getTarget(): ReferenceElement {\n return this.overlayTarget() ?? this.element.nativeElement;\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 const target = this.getTarget();\n this.cleanup = autoUpdate(target, 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 target = this.getTarget();\n const { x, y } = await computePosition(target, this.overlayEl, {\n placement: this.overlayPlacement(),\n strategy: 'fixed',\n middleware\n });\n\n if (!this.overlayEl) return;\n\n const width = 'getBoundingClientRect' in target ? target.getBoundingClientRect().width : 0;\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, computed, contentChild, contentChildren, effect, ElementRef, inject, input, Renderer2, signal, viewChild\n} from '@angular/core';\nimport { Placement, ReferenceElement, VirtualElement } from '@floating-ui/dom';\nimport { ButtonSize, 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 buttonSize = input<ButtonSize>('md');\n closeOnOutsideClick = input<boolean>(true);\n trigger = input<boolean>(true);\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n renderer = inject(Renderer2);\n\n menuOpen = signal(false);\n customTarget = signal<ReferenceElement | null>(null);\n contextMenuPlacement = signal<Placement | null>(null);\n\n effectivePlacement = computed(() => {\n return this.contextMenuPlacement() ?? this.placement();\n });\n\n constructor() {\n effect((onCleanup) => {\n const button = this.projectedButton() ?? this.defaultButton();\n if (!button || !this.trigger()) {\n return;\n }\n\n const unlisten = this.renderer.listen(button.nativeElement, 'click', () => {\n this.toggle();\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.close();\n });\n\n onCleanup(() => {\n unlisten();\n });\n });\n\n effect((onCleanup) => {\n if (!this.menuOpen()) {\n return;\n }\n\n const unlisten = this.renderer.listen('document', 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.close();\n }\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.close();\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n open(): void {\n this.customTarget.set(null);\n this.contextMenuPlacement.set(null);\n this.menuOpen.set(true);\n }\n\n close(): void {\n this.menuOpen.set(false);\n this.customTarget.set(null);\n this.contextMenuPlacement.set(null);\n }\n\n toggle(): void {\n if (this.menuOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n openAt(position: { x: number; y: number } | MouseEvent | PointerEvent, placement: Placement = 'bottom-start'): void {\n const clientX = 'clientX' in position ? position.clientX : position.x;\n const clientY = 'clientY' in position ? position.clientY : position.y;\n\n const virtualElement: VirtualElement = {\n getBoundingClientRect() {\n return {\n x: clientX,\n y: clientY,\n top: clientY,\n left: clientX,\n bottom: clientY,\n right: clientX,\n width: 0,\n height: 0\n };\n }\n };\n\n this.customTarget.set(virtualElement);\n this.contextMenuPlacement.set(placement);\n this.menuOpen.set(true);\n }\n}\n","<div\n [stOverlay]=\"menu\"\n [overlayOpen]=\"menuOpen()\"\n [overlayPlacement]=\"effectivePlacement()\"\n [overlayTarget]=\"customTarget()\">\n @if (trigger()) {\n <ng-content select=\"button[stButton]\"></ng-content>\n @if (!projectedButton()) {\n <button stButton [size]=\"buttonSize()\"><st-icon name=\"more\"></st-icon></button>\n }\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 { Directive, ElementRef, inject, input, OnDestroy, OnInit, output, Renderer2 } from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataActionMenuComponent } from '../../components/action-menu/action-menu.component';\n\n@Directive({\n selector: '[stContextMenu]'\n})\nexport class StrataContextMenuDirective implements OnInit, OnDestroy {\n stContextMenu = input.required<StrataActionMenuComponent | null | undefined>();\n stContextMenuDisabled = input<boolean>(false);\n stContextMenuPlacement = input<Placement>('bottom-start');\n\n contextMenuOpened = output<MouseEvent>();\n\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly renderer = inject(Renderer2);\n private unlisten?: () => void;\n\n ngOnInit(): void {\n this.unlisten = this.renderer.listen(this.elementRef.nativeElement, 'contextmenu', (event: MouseEvent) => {\n const menu = this.stContextMenu();\n if (this.stContextMenuDisabled() || !menu) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.contextMenuOpened.emit(event);\n menu.openAt(event, this.stContextMenuPlacement());\n });\n }\n\n ngOnDestroy(): void {\n if (this.unlisten) {\n this.unlisten();\n }\n }\n}\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, computed, contentChildren, effect, 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 host: {\n '[class]': 'elementClasses()'\n }\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 variant = input<AvatarVariant>('circle');\n\n imageError = signal(false);\n\n constructor() {\n effect(() => {\n this.src();\n this.imageError.set(false);\n });\n }\n\n elementClasses = computed(() => `${this.size()} ${this.variant()}`);\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';\nexport type AvatarVariant = 'circle' | 'rounded';\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';\nimport { BadgeSize, BadgeVariant, StrataBadgeComponent } from '../../../badge';\n\n@Component({\n selector: 'st-breadcrumb-item',\n imports: [StrataIconComponent, StrataActivatableDirective, StrataBadgeComponent],\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 badge = input<string | number | undefined>(undefined);\n\n badgeVariant = input<BadgeVariant>('neutral');\n\n badgeSize = input<BadgeSize>('sm');\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 @if (badge() !== undefined) {\n <st-badge [value]=\"badge()\" [variant]=\"badgeVariant()\" [size]=\"badgeSize()\"></st-badge>\n }\n <ng-content select=\"st-badge\"></ng-content>\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, computed, input } from '@angular/core';\nimport { ChatSpacing } from '../../models/chat.model';\n\n@Component({\n selector: 'st-chat',\n imports: [],\n templateUrl: './chat.component.html',\n styleUrl: './chat.component.scss',\n host: {\n '[class]': 'hostClasses()'\n }\n})\nexport class StrataChatComponent {\n spacing = input<ChatSpacing>('comfortable');\n\n hostClasses = computed(() => `st-chat ${this.spacing()}`);\n}\n","<ng-content />\n","import {\n booleanAttribute,\n Component,\n computed,\n input,\n signal\n} from '@angular/core';\nimport { ChatMessageStatus, ChatMessageVariant } from '../../models/chat.model';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-chat-message',\n imports: [StrataIconComponent],\n templateUrl: './chat-message.component.html',\n styleUrl: './chat-message.component.scss',\n host: {\n '[class]': 'hostClasses()'\n }\n})\nexport class StrataChatMessageComponent {\n variant = input<ChatMessageVariant>('incoming');\n timestamp = input<string | null>(null);\n status = input<ChatMessageStatus | null>(null);\n showAvatar = input(true, { transform: booleanAttribute });\n position = input<'single' | 'first' | 'middle' | 'last'>('single');\n\n groupVariant = signal<ChatMessageVariant | null>(null);\n groupPosition = signal<'single' | 'first' | 'middle' | 'last' | null>(null);\n groupShowAvatar = signal<boolean | null>(null);\n groupPreserveAvatarSpace = signal<boolean>(false);\n\n effectiveVariant = computed(() => this.groupVariant() ?? this.variant());\n effectivePosition = computed(() => this.groupPosition() ?? this.position());\n effectiveShowAvatar = computed(() => this.groupShowAvatar() ?? this.showAvatar());\n\n hostClasses = computed(() => {\n const classes = [\n 'st-chat-message',\n this.effectiveVariant(),\n this.effectivePosition()\n ];\n return classes.join(' ');\n });\n\n setGroupConfig(\n variant: ChatMessageVariant,\n position: 'single' | 'first' | 'middle' | 'last',\n showAvatar: boolean,\n preserveAvatarSpace: boolean\n ): void {\n this.groupVariant.set(variant);\n this.groupPosition.set(position);\n this.groupShowAvatar.set(showAvatar);\n this.groupPreserveAvatarSpace.set(preserveAvatarSpace);\n }\n}\n","<div class=\"st-chat-message-container\">\n @if (effectiveVariant() === 'incoming') {\n <div\n class=\"st-chat-message-avatar\"\n [class.hidden]=\"!effectiveShowAvatar()\"\n [class.preserve-space]=\"groupPreserveAvatarSpace()\"\n >\n <ng-content select=\"[slot=avatar]\" />\n </div>\n }\n\n <div class=\"st-chat-message-body\">\n <div class=\"st-chat-message-bubble\">\n <div class=\"st-chat-message-media\">\n <ng-content select=\"[slot=media]\" />\n </div>\n <div class=\"st-chat-message-text\">\n <ng-content />\n </div>\n </div>\n\n <div class=\"st-chat-message-footer\">\n @if (timestamp()) {\n <span class=\"st-chat-message-timestamp\">{{ timestamp() }}</span>\n }\n @if (effectiveVariant() === 'outgoing' && status()) {\n <span class=\"st-chat-message-status\" [class]=\"'status-' + status()\">\n @if (status() === 'sent') {\n <st-icon name=\"check-single\" size=\"xs\"></st-icon>\n } @else if (status() === 'delivered' || status() === 'read') {\n <st-icon name=\"check-double\" size=\"xs\"></st-icon>\n }\n </span>\n }\n <ng-content select=\"[slot=footer]\" />\n </div>\n </div>\n\n @if (effectiveVariant() === 'outgoing') {\n <div\n class=\"st-chat-message-avatar\"\n [class.hidden]=\"!effectiveShowAvatar()\"\n [class.preserve-space]=\"groupPreserveAvatarSpace()\"\n >\n <ng-content select=\"[slot=avatar]\" />\n </div>\n }\n</div>\n","import {\n Component,\n computed,\n contentChildren,\n effect,\n input\n} from '@angular/core';\nimport { ChatMessageVariant } from '../../models/chat.model';\nimport { StrataChatMessageComponent } from '../chat-message/chat-message.component';\n\n@Component({\n selector: 'st-chat-group',\n imports: [],\n templateUrl: './chat-group.component.html',\n styleUrl: './chat-group.component.scss',\n host: {\n '[class]': 'hostClasses()'\n }\n})\nexport class StrataChatGroupComponent {\n variant = input<ChatMessageVariant>('incoming');\n\n messages = contentChildren(StrataChatMessageComponent, { descendants: true });\n\n hostClasses = computed(() => `st-chat-group ${this.variant()}`);\n\n constructor() {\n effect(() => {\n const items = this.messages();\n const variant = this.variant();\n const count = items.length;\n\n items.forEach((msg, index) => {\n if (count === 1) {\n msg.setGroupConfig(variant, 'single', true, false);\n return;\n }\n\n const isFirst = index === 0;\n const isLast = index === count - 1;\n const position = isFirst ? 'first' : isLast ? 'last' : 'middle';\n const showAvatar = isLast;\n const preserveAvatarSpace = variant === 'incoming' && !isLast;\n\n msg.setGroupConfig(variant, position, showAvatar, preserveAvatarSpace);\n });\n });\n }\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'st-chat-separator',\n imports: [],\n templateUrl: './chat-separator.component.html',\n styleUrl: './chat-separator.component.scss',\n host: {\n class: 'st-chat-separator'\n }\n})\nexport class StrataChatSeparatorComponent {}\n","<div class=\"st-chat-separator-line\"></div>\n<div class=\"st-chat-separator-content\">\n <ng-content />\n</div>\n<div class=\"st-chat-separator-line\"></div>\n","import { Component, computed, input } from '@angular/core';\nimport { ChatMessageVariant } from '../../models/chat.model';\n\n@Component({\n selector: 'st-chat-typing',\n imports: [],\n templateUrl: './chat-typing.component.html',\n styleUrl: './chat-typing.component.scss',\n host: {\n '[class]': 'hostClasses()'\n }\n})\nexport class StrataChatTypingComponent {\n variant = input<ChatMessageVariant>('incoming');\n ariaLabel = input<string>('Typing');\n\n hostClasses = computed(() => `st-chat-typing ${this.variant()}`);\n}\n","<div class=\"st-chat-typing-container\" role=\"status\" [attr.aria-label]=\"ariaLabel()\">\n @if (variant() === 'incoming') {\n <div class=\"st-chat-typing-avatar\">\n <ng-content select=\"[slot=avatar]\" />\n </div>\n }\n\n <div class=\"st-chat-typing-bubble\">\n <span class=\"st-chat-typing-dot\"></span>\n <span class=\"st-chat-typing-dot\"></span>\n <span class=\"st-chat-typing-dot\"></span>\n </div>\n\n @if (variant() === 'outgoing') {\n <div class=\"st-chat-typing-avatar\">\n <ng-content select=\"[slot=avatar]\" />\n </div>\n }\n</div>\n","import {\n Component,\n computed,\n effect,\n forwardRef,\n input,\n model,\n signal\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TimeFormat } from '../../models/date-picker.model';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-time-stepper',\n imports: [CommonModule, StrataIconComponent],\n templateUrl: './time-stepper.component.html',\n styleUrl: './time-stepper.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataTimeStepperComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-time-stepper]': 'true',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null'\n }\n})\nexport class StrataTimeStepperComponent implements ControlValueAccessor {\n format = input<TimeFormat>('24h');\n showSeconds = input<boolean>(false);\n minuteStep = input<number>(1);\n disabled = input<boolean>(false);\n\n value = model<string | Date | null>(null);\n\n hours = signal<number>(0);\n minutes = signal<number>(0);\n seconds = signal<number>(0);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: string | Date | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n readonly is12h = computed(() => this.format() === '12h');\n readonly isPM = computed(() => this.hours() >= 12);\n readonly meridiem = computed(() => (this.isPM() ? 'PM' : 'AM'));\n\n readonly displayHours = computed(() => {\n const h = this.hours();\n if (!this.is12h()) {\n return h.toString().padStart(2, '0');\n }\n const h12 = h % 12 || 12;\n return h12.toString().padStart(2, '0');\n });\n\n readonly displayMinutes = computed(() => {\n return this.minutes().toString().padStart(2, '0');\n });\n\n readonly displaySeconds = computed(() => {\n return this.seconds().toString().padStart(2, '0');\n });\n\n constructor() {\n effect(() => {\n const val = this.value();\n this.syncFromValue(val);\n });\n }\n\n private syncFromValue(val: string | Date | null): void {\n if (!val) {\n return;\n }\n if (val instanceof Date) {\n this.hours.set(val.getHours());\n this.minutes.set(val.getMinutes());\n this.seconds.set(val.getSeconds());\n return;\n }\n if (typeof val === 'string') {\n const parts = val.trim().split(':');\n if (parts.length >= 2) {\n const h = parseInt(parts[0], 10) || 0;\n const m = parseInt(parts[1], 10) || 0;\n const s = parts[2] ? parseInt(parts[2], 10) || 0 : 0;\n this.hours.set(Math.min(23, Math.max(0, h)));\n this.minutes.set(Math.min(59, Math.max(0, m)));\n this.seconds.set(Math.min(59, Math.max(0, s)));\n }\n }\n }\n\n incrementHours(): void {\n if (this.effectiveDisabled()) return;\n const current = this.hours();\n this.setHours((current + 1) % 24);\n }\n\n decrementHours(): void {\n if (this.effectiveDisabled()) return;\n const current = this.hours();\n this.setHours((current - 1 + 24) % 24);\n }\n\n incrementMinutes(): void {\n if (this.effectiveDisabled()) return;\n const step = Math.max(1, this.minuteStep());\n const current = this.minutes();\n const next = (Math.floor(current / step) * step + step) % 60;\n this.setMinutes(next);\n }\n\n decrementMinutes(): void {\n if (this.effectiveDisabled()) return;\n const step = Math.max(1, this.minuteStep());\n const current = this.minutes();\n const next = (Math.ceil(current / step) * step - step + 60) % 60;\n this.setMinutes(next);\n }\n\n incrementSeconds(): void {\n if (this.effectiveDisabled()) return;\n const current = this.seconds();\n this.setSeconds((current + 1) % 60);\n }\n\n decrementSeconds(): void {\n if (this.effectiveDisabled()) return;\n const current = this.seconds();\n this.setSeconds((current - 1 + 60) % 60);\n }\n\n toggleMeridiem(): void {\n if (this.effectiveDisabled() || !this.is12h()) return;\n const current = this.hours();\n if (current >= 12) {\n this.setHours(current - 12);\n } else {\n this.setHours(current + 12);\n }\n }\n\n private setHours(h: number): void {\n this.hours.set(h);\n this.emitChange();\n }\n\n private setMinutes(m: number): void {\n this.minutes.set(m);\n this.emitChange();\n }\n\n private setSeconds(s: number): void {\n this.seconds.set(s);\n this.emitChange();\n }\n\n private emitChange(): void {\n const currentVal = this.value();\n let updated: string | Date;\n\n if (currentVal instanceof Date) {\n const d = new Date(currentVal);\n d.setHours(this.hours(), this.minutes(), this.seconds());\n updated = d;\n } else {\n const pad = (n: number) => n.toString().padStart(2, '0');\n updated = this.showSeconds()\n ? `${pad(this.hours())}:${pad(this.minutes())}:${pad(this.seconds())}`\n : `${pad(this.hours())}:${pad(this.minutes())}`;\n }\n\n this.value.set(updated);\n this.onChange(updated);\n this.onTouched();\n }\n\n writeValue(val: string | Date | null): void {\n this.value.set(val);\n this.syncFromValue(val);\n }\n\n registerOnChange(fn: (val: string | Date | null) => 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-time-stepper-inner\">\n <div class=\"st-time-col\">\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"incrementHours()\"\n aria-label=\"Increment hours\"\n >\n <st-icon name=\"arrow-up\" size=\"xs\"></st-icon>\n </button>\n <span class=\"st-time-val\" tabindex=\"0\" (keydown.arrowup)=\"incrementHours()\" (keydown.arrowdown)=\"decrementHours()\">\n {{ displayHours() }}\n </span>\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"decrementHours()\"\n aria-label=\"Decrement hours\"\n >\n <st-icon name=\"arrow-down\" size=\"xs\"></st-icon>\n </button>\n </div>\n\n <span class=\"st-time-sep\">:</span>\n\n <div class=\"st-time-col\">\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"incrementMinutes()\"\n aria-label=\"Increment minutes\"\n >\n <st-icon name=\"arrow-up\" size=\"xs\"></st-icon>\n </button>\n <span class=\"st-time-val\" tabindex=\"0\" (keydown.arrowup)=\"incrementMinutes()\" (keydown.arrowdown)=\"decrementMinutes()\">\n {{ displayMinutes() }}\n </span>\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"decrementMinutes()\"\n aria-label=\"Decrement minutes\"\n >\n <st-icon name=\"arrow-down\" size=\"xs\"></st-icon>\n </button>\n </div>\n\n @if (showSeconds()) {\n <span class=\"st-time-sep\">:</span>\n\n <div class=\"st-time-col\">\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"incrementSeconds()\"\n aria-label=\"Increment seconds\"\n >\n <st-icon name=\"arrow-up\" size=\"xs\"></st-icon>\n </button>\n <span class=\"st-time-val\" tabindex=\"0\" (keydown.arrowup)=\"incrementSeconds()\" (keydown.arrowdown)=\"decrementSeconds()\">\n {{ displaySeconds() }}\n </span>\n <button\n type=\"button\"\n class=\"st-time-arrow-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"decrementSeconds()\"\n aria-label=\"Decrement seconds\"\n >\n <st-icon name=\"arrow-down\" size=\"xs\"></st-icon>\n </button>\n </div>\n }\n\n @if (is12h()) {\n <div class=\"st-time-col st-meridiem-col\">\n <button\n type=\"button\"\n class=\"st-meridiem-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"toggleMeridiem()\"\n aria-label=\"Toggle AM PM\"\n >\n {{ meridiem() }}\n </button>\n </div>\n }\n</div>\n","import {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\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 { DatePickerSize, TimeFormat } from '../../models/date-picker.model';\nimport { InputControlState } from '../../../../shared/control-state';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataTimeStepperComponent } from '../time-stepper/time-stepper.component';\n\nlet nextUniqueTimepickerId = 0;\n\n@Component({\n selector: 'st-timepicker',\n imports: [\n CommonModule,\n FormsModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataTimeStepperComponent\n ],\n templateUrl: './timepicker.component.html',\n styleUrl: './timepicker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataTimepickerComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-timepicker]': 'true',\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() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataTimepickerComponent implements ControlValueAccessor {\n private readonly defaultId = `st-timepicker-${nextUniqueTimepickerId++}`;\n\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n placeholder = input<string>('Select time');\n size = input<DatePickerSize>('md');\n placement = input<Placement>('bottom-start');\n format = input<TimeFormat>('24h');\n showSeconds = input<boolean, unknown>(false, { transform: booleanAttribute });\n minuteStep = input<number>(1);\n\n clearable = input<boolean, unknown>(true, { transform: booleanAttribute });\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n fullWidth = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n state = input<InputControlState | undefined>(undefined);\n error = input<boolean, unknown>(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n value = model<string | Date | null>(null);\n timeSelected = output<string | Date | null>();\n\n open = signal<boolean>(false);\n textInputValue = signal<string>('');\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n private onChange: (val: string | Date | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n private overlayDirective = viewChild(StrataOverlayDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n if (!this.open()) return;\n const target = event.target as Node | null;\n if (!target) return;\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.open.set(false);\n });\n\n this.destroyRef.onDestroy(() => unlisten());\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.open.set(!this.open());\n }\n\n onInputTextChange(value: string): void {\n this.textInputValue.set(value);\n if (!value.trim()) {\n this.updateTimeValue(null);\n return;\n }\n\n const parsed = this.parseTimeString(value);\n if (parsed) {\n this.updateTimeValue(parsed);\n }\n }\n\n onInputBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val) {\n this.textInputValue.set(this.formatTimeValue(val));\n } else {\n this.textInputValue.set('');\n }\n }\n\n onStepperTimeSelected(val: string | Date | null): void {\n this.updateTimeValue(val);\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly()) return;\n this.updateTimeValue(null);\n }\n\n private formatTimeValue(val: string | Date | null): string {\n if (!val) return '';\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (val instanceof Date) {\n hours = val.getHours();\n minutes = val.getMinutes();\n seconds = val.getSeconds();\n } else if (typeof val === 'string') {\n const parts = val.trim().split(':');\n hours = parseInt(parts[0], 10) || 0;\n minutes = parseInt(parts[1], 10) || 0;\n seconds = parts[2] ? parseInt(parts[2], 10) || 0 : 0;\n }\n\n const pad = (n: number) => n.toString().padStart(2, '0');\n\n if (this.format() === '12h') {\n const isPM = hours >= 12;\n const h12 = hours % 12 || 12;\n const meridiem = isPM ? 'PM' : 'AM';\n return this.showSeconds()\n ? `${pad(h12)}:${pad(minutes)}:${pad(seconds)} ${meridiem}`\n : `${pad(h12)}:${pad(minutes)} ${meridiem}`;\n }\n\n return this.showSeconds()\n ? `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`\n : `${pad(hours)}:${pad(minutes)}`;\n }\n\n private parseTimeString(input: string): string | null {\n const trimmed = input.trim();\n if (!trimmed) return null;\n\n const is12hInput = /am|pm/i.test(trimmed);\n const cleanTime = trimmed.replace(/\\s*(am|pm)/i, '').trim();\n const parts = cleanTime.split(':').map((p) => parseInt(p, 10));\n\n if (parts.some((n) => isNaN(n))) return null;\n\n let [h, m, s] = parts;\n m = m ?? 0;\n s = s ?? 0;\n\n if (is12hInput || this.format() === '12h') {\n const isPM = /pm/i.test(trimmed);\n if (h < 1 || h > 12 || m < 0 || m > 59 || s < 0 || s > 59) return null;\n if (isPM && h < 12) h += 12;\n if (!isPM && h === 12) h = 0;\n } else {\n if (h < 0 || h > 23 || m < 0 || m > 59 || s < 0 || s > 59) return null;\n }\n\n const pad = (n: number) => n.toString().padStart(2, '0');\n return this.showSeconds() ? `${pad(h)}:${pad(m)}:${pad(s)}` : `${pad(h)}:${pad(m)}`;\n }\n\n private updateTimeValue(val: string | Date | null): void {\n this.value.set(val);\n this.textInputValue.set(this.formatTimeValue(val));\n this.timeSelected.emit(val);\n this.onChange(val);\n this.onTouched();\n }\n\n writeValue(val: string | Date | null): void {\n this.value.set(val);\n this.textInputValue.set(this.formatTimeValue(val));\n }\n\n registerOnChange(fn: (val: string | Date | null) => 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","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div\n class=\"st-input-wrapper\"\n [class.full-width]=\"fullWidth()\"\n [class.disabled]=\"effectiveDisabled()\"\n [class.open]=\"open()\"\n [stOverlay]=\"timeOverlay\"\n [overlayOpen]=\"open()\"\n [overlayPlacement]=\"placement()\"\n>\n <input\n type=\"text\"\n [id]=\"effectiveId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"textInputValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInputTextChange($any($event.target).value)\"\n (blur)=\"onInputBlur()\"\n (click)=\"toggle($event)\"\n (keydown.enter)=\"toggle($event)\"\n (keydown.escape)=\"open.set(false)\"\n />\n\n <div class=\"affix\">\n @if (clearable() && value() && !effectiveDisabled() && !readonly()) {\n <button\n type=\"button\"\n class=\"st-icon-btn\"\n (click)=\"clear($event)\"\n aria-label=\"Clear time\"\n >\n <st-icon name=\"close\" size=\"xs\"></st-icon>\n </button>\n }\n\n <span class=\"st-trigger-icon\" (click)=\"toggle($event)\">\n <st-icon name=\"clock\" size=\"xs\"></st-icon>\n </span>\n </div>\n</div>\n\n@if (message()) {\n <div class=\"st-input-field-footer\">\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\n\n<ng-template #timeOverlay>\n <div class=\"st-timepicker-dropdown\">\n <st-time-stepper\n [value]=\"value()\"\n [format]=\"format()\"\n [showSeconds]=\"showSeconds()\"\n [minuteStep]=\"minuteStep()\"\n [disabled]=\"effectiveDisabled()\"\n (valueChange)=\"onStepperTimeSelected($event)\"\n ></st-time-stepper>\n </div>\n</ng-template>\n","export function isSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isSameMonth(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n}\n\nexport function isSameYear(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return a.getFullYear() === b.getFullYear();\n}\n\nexport function isBeforeDay(a: Date, b: Date): boolean {\n const aDate = new Date(a.getFullYear(), a.getMonth(), a.getDate()).getTime();\n const bDate = new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();\n return aDate < bDate;\n}\n\nexport function isAfterDay(a: Date, b: Date): boolean {\n const aDate = new Date(a.getFullYear(), a.getMonth(), a.getDate()).getTime();\n const bDate = new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();\n return aDate > bDate;\n}\n\nexport function isWithinDayRange(\n date: Date,\n start: Date | null | undefined,\n end: Date | null | undefined\n): boolean {\n if (!start || !end) return false;\n const target = new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n const s = new Date(start.getFullYear(), start.getMonth(), start.getDate()).getTime();\n const e = new Date(end.getFullYear(), end.getMonth(), end.getDate()).getTime();\n const min = Math.min(s, e);\n const max = Math.max(s, e);\n return target >= min && target <= max;\n}\n\nexport function startOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(0, 0, 0, 0);\n return result;\n}\n\nexport function endOfDay(date: Date): Date {\n const result = new Date(date);\n result.setHours(23, 59, 59, 999);\n return result;\n}\n\nexport function startOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nexport function endOfMonth(date: Date): Date {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\n\nexport function addDays(date: Date, amount: number): Date {\n const result = new Date(date);\n result.setDate(result.getDate() + amount);\n return result;\n}\n\nexport function addMonths(date: Date, amount: number): Date {\n const result = new Date(date);\n const targetMonth = result.getMonth() + amount;\n result.setMonth(targetMonth);\n return result;\n}\n\nexport function addYears(date: Date, amount: number): Date {\n const result = new Date(date);\n result.setFullYear(result.getFullYear() + amount);\n return result;\n}\n\nexport function getDayOfWeek(date: Date): number {\n return (date.getDay() + 6) % 7;\n}\n\nexport function isWeekend(date: Date): boolean {\n const day = getDayOfWeek(date);\n return day === 5 || day === 6;\n}\n\nexport function disableWeekends(date: Date): boolean {\n return isWeekend(date);\n}\n\nexport function disablePastDates(date: Date): boolean {\n const today = startOfDay(new Date());\n return isBeforeDay(date, today);\n}\n\nexport function disableFutureDates(date: Date): boolean {\n const today = endOfDay(new Date());\n return isAfterDay(date, today);\n}\n\nexport function disableDaysOfWeek(days: number[]): (date: Date) => boolean {\n return (date: Date) => days.includes(getDayOfWeek(date));\n}\n\nexport function disableDateRange(startDate: Date, endDate: Date): (date: Date) => boolean {\n return (date: Date) => isWithinDayRange(date, startDate, endDate);\n}\n\nexport function getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nexport function getLocaleDefaultDateFormat(locale?: string): string {\n try {\n const formatter = new Intl.DateTimeFormat(locale || undefined, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n });\n const parts = formatter.formatToParts(new Date(2024, 11, 31));\n const order = parts\n .filter((p) => p.type === 'year' || p.type === 'month' || p.type === 'day')\n .map((p) => p.type);\n const sep = (parts.find((p) => p.type === 'literal' && p.value.trim() !== '') || { value: '/' }).value;\n const tokens: Record<string, string> = { year: 'YYYY', month: 'MM', day: 'DD' };\n return order.map((t) => tokens[t]).join(sep);\n } catch {\n return 'YYYY-MM-DD';\n }\n}\n\nexport function formatMonthTitle(date: Date, locale?: string): string {\n const formatter = new Intl.DateTimeFormat(locale || undefined, { month: 'long' });\n const str = formatter.format(date);\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function getMonthNames(\n locale?: string,\n format: 'long' | 'short' | 'narrow' = 'short'\n): string[] {\n const formatter = new Intl.DateTimeFormat(locale || undefined, { month: format });\n return Array.from({ length: 12 }, (_, i) => {\n const date = new Date(2024, i, 1);\n const name = formatter.format(date);\n return name.charAt(0).toUpperCase() + name.slice(1);\n });\n}\n\nexport function getWeekdayNames(\n locale?: string,\n firstDayOfWeek = 0,\n format: 'long' | 'short' | 'narrow' = 'short'\n): string[] {\n const formatter = new Intl.DateTimeFormat(locale || undefined, { weekday: format });\n const daysFromMonday = Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2024, 0, 1 + i);\n const name = formatter.format(date);\n return name.charAt(0).toUpperCase() + name.slice(1);\n });\n const offset = ((firstDayOfWeek % 7) + 7) % 7;\n return [...daysFromMonday.slice(offset), ...daysFromMonday.slice(0, offset)];\n}\n\nexport function createCalendarGrid(viewDate: Date, firstDayOfWeek = 0): Date[] {\n const year = viewDate.getFullYear();\n const month = viewDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const startingDay = (getDayOfWeek(firstDayOfMonth) - (firstDayOfWeek % 7) + 7) % 7;\n\n const startDate = new Date(year, month, 1 - startingDay);\n const days: Date[] = [];\n\n for (let i = 0; i < 42; i++) {\n const current = new Date(startDate);\n current.setDate(startDate.getDate() + i);\n days.push(current);\n }\n\n return days;\n}\n\nexport function formatDate(\n date: Date | null | undefined,\n formatStr = 'YYYY-MM-DD'\n): string {\n if (!date || isNaN(date.getTime())) return '';\n\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const hours24 = date.getHours();\n const hours12 = hours24 % 12 || 12;\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const isPM = hours24 >= 12;\n\n const pad = (n: number) => n.toString().padStart(2, '0');\n\n return formatStr\n .replace(/YYYY/g, year.toString())\n .replace(/YY/g, (year % 100).toString().padStart(2, '0'))\n .replace(/MM/g, pad(month))\n .replace(/\\bM\\b/g, month.toString())\n .replace(/DD/g, pad(day))\n .replace(/\\bD\\b/g, day.toString())\n .replace(/HH/g, pad(hours24))\n .replace(/\\bH\\b/g, hours24.toString())\n .replace(/hh/g, pad(hours12))\n .replace(/\\bh\\b/g, hours12.toString())\n .replace(/mm/g, pad(minutes))\n .replace(/\\bm\\b/g, minutes.toString())\n .replace(/ss/g, pad(seconds))\n .replace(/\\bs\\b/g, seconds.toString())\n .replace(/A/g, isPM ? 'PM' : 'AM')\n .replace(/a/g, isPM ? 'pm' : 'am');\n}\n\nexport function parseDate(\n str: string | null | undefined,\n formatStr = 'YYYY-MM-DD'\n): Date | null {\n if (!str || !str.trim()) return null;\n const trimmed = str.trim();\n\n const tokenMap: Record<string, string> = {\n YYYY: '(?<year>\\\\d{4})',\n YY: '(?<shortYear>\\\\d{2})',\n MM: '(?<month>\\\\d{1,2})',\n M: '(?<month>\\\\d{1,2})',\n DD: '(?<day>\\\\d{1,2})',\n D: '(?<day>\\\\d{1,2})',\n HH: '(?<hours24>\\\\d{1,2})',\n H: '(?<hours24>\\\\d{1,2})',\n hh: '(?<hours12>\\\\d{1,2})',\n h: '(?<hours12>\\\\d{1,2})',\n mm: '(?<minutes>\\\\d{1,2})',\n m: '(?<minutes>\\\\d{1,2})',\n ss: '(?<seconds>\\\\d{1,2})',\n s: '(?<seconds>\\\\d{1,2})',\n A: '(?<meridiem>AM|PM|am|pm)',\n a: '(?<meridiem>AM|PM|am|pm)'\n };\n\n const tokenPattern = /YYYY|YY|MM|\\bM\\b|DD|\\bD\\b|HH|\\bH\\b|hh|\\bh\\b|mm|\\bm\\b|ss|\\bs\\b|A|a/g;\n let lastIndex = 0;\n let regexSource = '^';\n let match: RegExpExecArray | null;\n\n while ((match = tokenPattern.exec(formatStr)) !== null) {\n const literal = formatStr.slice(lastIndex, match.index);\n regexSource += literal.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const token = match[0];\n regexSource += tokenMap[token] || token;\n lastIndex = tokenPattern.lastIndex;\n }\n const trailingLiteral = formatStr.slice(lastIndex);\n regexSource += trailingLiteral.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') + '$';\n\n const reg = new RegExp(regexSource, 'i');\n const resultMatch = reg.exec(trimmed);\n if (!resultMatch || !resultMatch.groups) {\n const fallback = new Date(trimmed);\n return isNaN(fallback.getTime()) ? null : fallback;\n }\n\n const groups = resultMatch.groups;\n const year = groups['year']\n ? parseInt(groups['year'], 10)\n : groups['shortYear']\n ? 2000 + parseInt(groups['shortYear'], 10)\n : new Date().getFullYear();\n\n const month = groups['month'] ? parseInt(groups['month'], 10) - 1 : 0;\n const day = groups['day'] ? parseInt(groups['day'], 10) : 1;\n\n let hours = 0;\n if (groups['hours24']) {\n hours = parseInt(groups['hours24'], 10);\n } else if (groups['hours12']) {\n hours = parseInt(groups['hours12'], 10);\n const meridiem = (groups['meridiem'] || '').toUpperCase();\n if (meridiem === 'PM' && hours < 12) hours += 12;\n if (meridiem === 'AM' && hours === 12) hours = 0;\n }\n\n const minutes = groups['minutes'] ? parseInt(groups['minutes'], 10) : 0;\n const seconds = groups['seconds'] ? parseInt(groups['seconds'], 10) : 0;\n\n const result = new Date(year, month, day, hours, minutes, seconds);\n if (\n result.getFullYear() !== year ||\n result.getMonth() !== month ||\n result.getDate() !== day\n ) {\n return null;\n }\n\n return result;\n}\n","import {\n Component,\n computed,\n forwardRef,\n input,\n model,\n OnInit,\n output,\n signal\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CalendarDayCell,\n CalendarMode,\n CalendarSize,\n CalendarView\n} from '../../models/date-picker.model';\nimport { DateRange } from '../../models/date-range.model';\nimport {\n addMonths,\n addYears,\n createCalendarGrid,\n formatMonthTitle,\n getMonthNames,\n getWeekdayNames,\n isAfterDay,\n isBeforeDay,\n isSameDay,\n isSameMonth,\n isWithinDayRange\n} from '../../utils/date-utils';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-calendar',\n imports: [\n CommonModule,\n StrataIconComponent\n ],\n templateUrl: './calendar.component.html',\n styleUrl: './calendar.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataCalendarComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-calendar]': 'true',\n '[class.st-size-sm]': 'size() === \"sm\"',\n '[class.st-size-md]': 'size() === \"md\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null'\n }\n})\nexport class StrataCalendarComponent implements ControlValueAccessor, OnInit {\n mode = input<CalendarMode>('single');\n size = input<CalendarSize>('md');\n locale = input<string | undefined>(undefined);\n\n value = model<Date | null>(null);\n rangeValue = model<DateRange | null>(null);\n viewDate = model<Date>(new Date());\n\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n disabledDates = input<((date: Date) => boolean) | Date[] | null>(null);\n\n firstDayOfWeek = input<number>(0);\n showAdjacentMonths = input<boolean>(true);\n disabled = input<boolean>(false);\n\n dateSelected = output<Date>();\n rangeSelected = output<DateRange>();\n\n view = signal<CalendarView>('days');\n hoverDate = signal<Date | null>(null);\n focusedDate = signal<Date>(new Date());\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n private onChange: (val: Date | DateRange | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n ngOnInit(): void {\n if (this.mode() === 'single') {\n const v = this.value();\n if (v && !isNaN(v.getTime())) {\n this.viewDate.set(new Date(v));\n }\n }\n }\n\n readonly weekdays = computed(() => {\n return getWeekdayNames(this.locale(), this.firstDayOfWeek(), 'short');\n });\n\n readonly currentMonthName = computed(() => {\n return formatMonthTitle(this.viewDate(), this.locale());\n });\n\n readonly currentYear = computed(() => {\n return this.viewDate().getFullYear();\n });\n\n readonly yearRangeStart = computed(() => {\n const y = this.viewDate().getFullYear();\n return Math.floor(y / 12) * 12;\n });\n\n readonly yearsList = computed(() => {\n const start = this.yearRangeStart();\n const list: number[] = [];\n for (let i = 0; i < 12; i++) {\n list.push(start + i);\n }\n return list;\n });\n\n readonly monthsList = computed(() => {\n return getMonthNames(this.locale(), 'short');\n });\n\n readonly calendarGrid = computed<CalendarDayCell[]>(() => {\n const vDate = this.viewDate();\n const rawGrid = createCalendarGrid(vDate, this.firstDayOfWeek());\n const today = new Date();\n const min = this.minDate();\n const max = this.maxDate();\n const disabledProp = this.disabledDates();\n const selectedVal = this.value();\n const range = this.rangeValue();\n const hover = this.hoverDate();\n const isRangeMode = this.mode() === 'range';\n\n return rawGrid.map((d) => {\n const isCurrentMonth = isSameMonth(d, vDate);\n const isToday = isSameDay(d, today);\n\n let isDisabled = false;\n if (min && isBeforeDay(d, min)) {\n isDisabled = true;\n }\n if (max && isAfterDay(d, max)) {\n isDisabled = true;\n }\n if (disabledProp) {\n if (typeof disabledProp === 'function') {\n isDisabled = isDisabled || disabledProp(d);\n } else if (Array.isArray(disabledProp)) {\n isDisabled = isDisabled || disabledProp.some((disabledD) => isSameDay(disabledD, d));\n }\n }\n\n let isSelected = false;\n let isRangeStart = false;\n let isRangeEnd = false;\n let isInRange = false;\n let isRangeHover = false;\n\n if (!isRangeMode) {\n isSelected = isSameDay(d, selectedVal);\n } else {\n const rStart = range?.start;\n const rEnd = range?.end;\n\n if (rStart && rEnd) {\n isRangeStart = isSameDay(d, rStart);\n isRangeEnd = isSameDay(d, rEnd);\n isInRange = isWithinDayRange(d, rStart, rEnd) && !isRangeStart && !isRangeEnd;\n isSelected = isRangeStart || isRangeEnd;\n } else if (rStart && !rEnd) {\n if (!hover || isSameDay(rStart, hover)) {\n isRangeStart = isSameDay(d, rStart);\n isRangeEnd = isSameDay(d, rStart);\n isSelected = isRangeStart;\n } else {\n const isHoverBefore = isBeforeDay(hover, rStart);\n const actualStart = isHoverBefore ? hover : rStart;\n const actualEnd = isHoverBefore ? rStart : hover;\n\n isRangeStart = isSameDay(d, actualStart);\n isRangeEnd = isSameDay(d, actualEnd);\n isInRange = isWithinDayRange(d, actualStart, actualEnd) && !isRangeStart && !isRangeEnd;\n isRangeHover = isInRange;\n isSelected = isRangeStart || isRangeEnd;\n }\n }\n }\n\n return {\n date: d,\n dayNumber: d.getDate(),\n isCurrentMonth,\n isToday,\n isSelected,\n isDisabled,\n isRangeStart,\n isRangeEnd,\n isInRange,\n isRangeHover\n };\n });\n });\n\n onPrevClick(): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const v = this.view();\n\n if (v === 'days') {\n this.viewDate.set(addMonths(current, -1));\n } else if (v === 'months') {\n this.viewDate.set(addYears(current, -1));\n } else if (v === 'years') {\n this.viewDate.set(addYears(current, -12));\n }\n }\n\n onNextClick(): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const v = this.view();\n\n if (v === 'days') {\n this.viewDate.set(addMonths(current, 1));\n } else if (v === 'months') {\n this.viewDate.set(addYears(current, 1));\n } else if (v === 'years') {\n this.viewDate.set(addYears(current, 12));\n }\n }\n\n toggleView(): void {\n if (this.effectiveDisabled()) return;\n const v = this.view();\n if (v === 'days') {\n this.view.set('months');\n } else if (v === 'months') {\n this.view.set('years');\n } else {\n this.view.set('days');\n }\n }\n\n selectMonth(monthIndex: number): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const next = new Date(current.getFullYear(), monthIndex, 1);\n this.viewDate.set(next);\n this.view.set('days');\n }\n\n selectYear(year: number): void {\n if (this.effectiveDisabled()) return;\n const current = this.viewDate();\n const next = new Date(year, current.getMonth(), 1);\n this.viewDate.set(next);\n this.view.set('months');\n }\n\n onDayClick(cell: CalendarDayCell): void {\n if (this.effectiveDisabled() || cell.isDisabled) return;\n\n if (!cell.isCurrentMonth) {\n this.viewDate.set(cell.date);\n }\n\n if (this.mode() === 'single') {\n const selected = new Date(cell.date);\n this.value.set(selected);\n this.dateSelected.emit(selected);\n this.onChange(selected);\n this.onTouched();\n } else {\n const currentRange = this.rangeValue();\n if (!currentRange || !currentRange.start || (currentRange.start && currentRange.end)) {\n const nextRange: DateRange = { start: new Date(cell.date), end: null };\n this.rangeValue.set(nextRange);\n this.rangeSelected.emit(nextRange);\n this.onChange(nextRange);\n } else {\n let start = currentRange.start;\n let end = new Date(cell.date);\n if (isBeforeDay(end, start)) {\n const temp = start;\n start = end;\n end = temp;\n }\n const nextRange: DateRange = { start, end };\n this.rangeValue.set(nextRange);\n this.rangeSelected.emit(nextRange);\n this.onChange(nextRange);\n this.onTouched();\n }\n }\n }\n\n onDayHover(cell: CalendarDayCell): void {\n if (this.mode() === 'range' && this.rangeValue()?.start && !this.rangeValue()?.end) {\n this.hoverDate.set(cell.date);\n }\n }\n\n onDayKeyDown(event: KeyboardEvent, cell: CalendarDayCell): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.onDayClick(cell);\n }\n }\n\n writeValue(val: Date | DateRange | null): void {\n if (this.mode() === 'single') {\n const d = val instanceof Date ? val : null;\n this.value.set(d);\n if (d) {\n this.viewDate.set(new Date(d));\n }\n } else {\n const range = val && typeof val === 'object' && 'start' in val ? (val as DateRange) : null;\n this.rangeValue.set(range);\n if (range?.start) {\n this.viewDate.set(new Date(range.start));\n }\n }\n }\n\n registerOnChange(fn: (val: Date | DateRange | null) => 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-calendar-container\">\n <div class=\"st-calendar-header\">\n <button\n type=\"button\"\n class=\"st-cal-nav-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"onPrevClick()\"\n aria-label=\"Previous\"\n >\n <st-icon name=\"arrow-left\" size=\"sm\"></st-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"st-cal-title-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"toggleView()\"\n >\n @if (view() === 'days') {\n {{ currentMonthName() }} {{ currentYear() }}\n } @else if (view() === 'months') {\n {{ currentYear() }}\n } @else {\n {{ yearRangeStart() }} - {{ yearRangeStart() + 11 }}\n }\n </button>\n\n <button\n type=\"button\"\n class=\"st-cal-nav-btn\"\n [disabled]=\"effectiveDisabled()\"\n (click)=\"onNextClick()\"\n aria-label=\"Next\"\n >\n <st-icon name=\"arrow-right\" size=\"sm\"></st-icon>\n </button>\n </div>\n\n <div class=\"st-calendar-body\">\n @if (view() === 'days') {\n <div class=\"st-calendar-weekdays\" role=\"row\">\n @for (day of weekdays(); track day) {\n <span class=\"st-calendar-weekday\" role=\"columnheader\">{{ day }}</span>\n }\n </div>\n\n <div class=\"st-calendar-days-grid\" role=\"grid\">\n @for (cell of calendarGrid(); track cell.date.toISOString()) {\n <button\n type=\"button\"\n class=\"st-calendar-day\"\n [class.st-adjacent]=\"!cell.isCurrentMonth\"\n [class.st-today]=\"cell.isToday\"\n [class.st-selected]=\"cell.isSelected\"\n [class.st-range-start]=\"cell.isRangeStart\"\n [class.st-range-end]=\"cell.isRangeEnd\"\n [class.st-in-range]=\"cell.isInRange\"\n [class.st-range-hover]=\"cell.isRangeHover\"\n [disabled]=\"cell.isDisabled || effectiveDisabled()\"\n [attr.aria-selected]=\"cell.isSelected\"\n [attr.aria-disabled]=\"cell.isDisabled\"\n (click)=\"onDayClick(cell)\"\n (mouseenter)=\"onDayHover(cell)\"\n (keydown)=\"onDayKeyDown($event, cell)\"\n >\n <span class=\"st-day-content\">{{ cell.dayNumber }}</span>\n </button>\n }\n </div>\n } @else if (view() === 'months') {\n <div class=\"st-calendar-grid-months\">\n @for (m of monthsList(); track m; let i = $index) {\n <button\n type=\"button\"\n class=\"st-calendar-choice-btn\"\n [class.st-selected]=\"viewDate().getMonth() === i\"\n (click)=\"selectMonth(i)\"\n >\n {{ m }}\n </button>\n }\n </div>\n } @else {\n <div class=\"st-calendar-grid-years\">\n @for (y of yearsList(); track y) {\n <button\n type=\"button\"\n class=\"st-calendar-choice-btn\"\n [class.st-selected]=\"viewDate().getFullYear() === y\"\n (click)=\"selectYear(y)\"\n >\n {{ y }}\n </button>\n }\n </div>\n }\n </div>\n</div>\n","import {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\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 { CalendarSize, DatePickerSize, TimeFormat } from '../../models/date-picker.model';\nimport { formatDate, getLocaleDefaultDateFormat, parseDate } from '../../utils/date-utils';\nimport { InputControlState } from '../../../../shared/control-state';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataCalendarComponent } from '../calendar/calendar.component';\nimport { StrataTimeStepperComponent } from '../time-stepper/time-stepper.component';\n\nlet nextUniqueDatePickerId = 0;\n\n@Component({\n selector: 'st-datepicker',\n imports: [\n CommonModule,\n FormsModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataCalendarComponent,\n StrataTimeStepperComponent\n ],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataDatePickerComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-datepicker]': 'true',\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() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataDatePickerComponent implements ControlValueAccessor {\n private readonly defaultId = `st-datepicker-${nextUniqueDatePickerId++}`;\n\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n placeholder = input<string>('Select date');\n format = input<string | undefined>(undefined);\n size = input<DatePickerSize>('md');\n placement = input<Placement>('bottom-start');\n locale = input<string | undefined>(undefined);\n\n readonly calendarSize = computed<CalendarSize>(() => (this.size() === 'sm' ? 'sm' : 'md'));\n\n clearable = input<boolean, unknown>(true, { transform: booleanAttribute });\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n fullWidth = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n showTime = input<boolean, unknown>(false, { transform: booleanAttribute });\n timeFormat = input<TimeFormat>('24h');\n showSeconds = input<boolean, unknown>(false, { transform: booleanAttribute });\n minuteStep = input<number>(1);\n\n state = input<InputControlState | undefined>(undefined);\n error = input<boolean, unknown>(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n disabledDates = input<((date: Date) => boolean) | Date[] | null>(null);\n firstDayOfWeek = input<number>(0);\n\n value = model<Date | null>(null);\n dateSelected = output<Date | null>();\n\n open = signal<boolean>(false);\n textInputValue = signal<string>('');\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n private onChange: (val: Date | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n private overlayDirective = viewChild(StrataOverlayDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n if (!this.open()) return;\n const target = event.target as Node | null;\n if (!target) return;\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.open.set(false);\n });\n\n this.destroyRef.onDestroy(() => unlisten());\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.open.set(!this.open());\n }\n\n onInputTextChange(value: string): void {\n this.textInputValue.set(value);\n if (!value.trim()) {\n this.updateDateValue(null);\n return;\n }\n\n const parsed = parseDate(value, this.effectiveFormat());\n if (parsed) {\n this.updateDateValue(parsed);\n }\n }\n\n onInputBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val) {\n this.textInputValue.set(formatDate(val, this.effectiveFormat()));\n } else {\n this.textInputValue.set('');\n }\n }\n\n onCalendarDateSelected(date: Date): void {\n const prev = this.value();\n if (prev && this.showTime()) {\n date.setHours(prev.getHours(), prev.getMinutes(), prev.getSeconds());\n }\n this.updateDateValue(date);\n if (!this.showTime()) {\n this.open.set(false);\n }\n }\n\n onTimeSelected(val: string | Date | null): void {\n if (!val) return;\n const current = this.value() || new Date();\n const nextDate = new Date(current);\n if (val instanceof Date) {\n nextDate.setHours(val.getHours(), val.getMinutes(), val.getSeconds());\n } else {\n const parts = val.split(':');\n nextDate.setHours(parseInt(parts[0], 10) || 0);\n nextDate.setMinutes(parseInt(parts[1], 10) || 0);\n if (parts[2]) {\n nextDate.setSeconds(parseInt(parts[2], 10) || 0);\n }\n }\n this.updateDateValue(nextDate);\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly()) return;\n this.updateDateValue(null);\n }\n\n private effectiveFormat(): string {\n const explicit = this.format();\n const base = explicit || getLocaleDefaultDateFormat(this.locale());\n if (this.showTime()) {\n return this.timeFormat() === '12h'\n ? this.showSeconds()\n ? `${base} hh:mm:ss A`\n : `${base} hh:mm A`\n : this.showSeconds()\n ? `${base} HH:mm:ss`\n : `${base} HH:mm`;\n }\n return base;\n }\n\n private updateDateValue(date: Date | null): void {\n this.value.set(date);\n this.textInputValue.set(formatDate(date, this.effectiveFormat()));\n this.dateSelected.emit(date);\n this.onChange(date);\n this.onTouched();\n }\n\n writeValue(val: Date | string | null): void {\n let d: Date | null = null;\n if (val instanceof Date) {\n d = val;\n } else if (typeof val === 'string') {\n d = parseDate(val, this.effectiveFormat());\n }\n this.value.set(d);\n this.textInputValue.set(formatDate(d, this.effectiveFormat()));\n }\n\n registerOnChange(fn: (val: Date | null) => 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","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div\n class=\"st-input-wrapper\"\n [class.full-width]=\"fullWidth()\"\n [class.disabled]=\"effectiveDisabled()\"\n [class.open]=\"open()\"\n [stOverlay]=\"calendarOverlay\"\n [overlayOpen]=\"open()\"\n [overlayPlacement]=\"placement()\"\n>\n <input\n type=\"text\"\n [id]=\"effectiveId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"textInputValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInputTextChange($any($event.target).value)\"\n (blur)=\"onInputBlur()\"\n (click)=\"toggle($event)\"\n (keydown.enter)=\"toggle($event)\"\n (keydown.escape)=\"open.set(false)\"\n />\n\n <div class=\"affix\">\n @if (clearable() && value() && !effectiveDisabled() && !readonly()) {\n <button\n type=\"button\"\n class=\"st-icon-btn\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date\"\n >\n <st-icon name=\"close\" size=\"xs\"></st-icon>\n </button>\n }\n\n <span class=\"st-trigger-icon\" (click)=\"toggle($event)\">\n <st-icon name=\"calendar\" size=\"xs\"></st-icon>\n </span>\n </div>\n</div>\n\n@if (message()) {\n <div class=\"st-input-field-footer\">\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\n\n<ng-template #calendarOverlay>\n <div class=\"st-datepicker-dropdown\" [class.st-datepicker-with-time]=\"showTime()\">\n <st-calendar\n mode=\"single\"\n [size]=\"calendarSize()\"\n [locale]=\"locale()\"\n [value]=\"value()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (dateSelected)=\"onCalendarDateSelected($event)\"\n ></st-calendar>\n @if (showTime()) {\n <div class=\"st-datepicker-time-side\">\n <st-time-stepper\n [value]=\"value()\"\n [format]=\"timeFormat()\"\n [showSeconds]=\"showSeconds()\"\n [minuteStep]=\"minuteStep()\"\n [disabled]=\"effectiveDisabled()\"\n (valueChange)=\"onTimeSelected($event)\"\n ></st-time-stepper>\n </div>\n }\n </div>\n</ng-template>\n","import {\n booleanAttribute,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\n viewChild\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Placement } from '@floating-ui/dom';\nimport { CalendarSize, DatePickerSize, DateRangePreset } from '../../models/date-picker.model';\nimport { DateRange } from '../../models/date-range.model';\nimport {\n addDays,\n addMonths,\n endOfMonth,\n formatDate,\n getLocaleDefaultDateFormat,\n parseDate,\n startOfMonth\n} from '../../utils/date-utils';\nimport { InputControlState } from '../../../../shared/control-state';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataCalendarComponent } from '../calendar/calendar.component';\n\nlet nextUniqueDateRangePickerId = 0;\n\nexport const DEFAULT_DATE_RANGE_PRESETS: DateRangePreset[] = [\n {\n label: 'Today',\n getRange: () => {\n const now = new Date();\n return { start: now, end: now };\n }\n },\n {\n label: 'Yesterday',\n getRange: () => {\n const yesterday = addDays(new Date(), -1);\n return { start: yesterday, end: yesterday };\n }\n },\n {\n label: 'Last 7 Days',\n getRange: () => {\n const now = new Date();\n return { start: addDays(now, -6), end: now };\n }\n },\n {\n label: 'Last 30 Days',\n getRange: () => {\n const now = new Date();\n return { start: addDays(now, -29), end: now };\n }\n },\n {\n label: 'This Month',\n getRange: () => {\n const now = new Date();\n return { start: startOfMonth(now), end: endOfMonth(now) };\n }\n },\n {\n label: 'Last Month',\n getRange: () => {\n const prevMonth = addMonths(new Date(), -1);\n return { start: startOfMonth(prevMonth), end: endOfMonth(prevMonth) };\n }\n }\n];\n\n@Component({\n selector: 'st-date-range-picker',\n imports: [\n CommonModule,\n StrataIconComponent,\n StrataOverlayDirective,\n StrataCalendarComponent\n ],\n templateUrl: './date-range-picker.component.html',\n styleUrl: './date-range-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataDateRangePickerComponent),\n multi: true\n }\n ],\n host: {\n '[class.st-date-range-picker]': 'true',\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() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataDateRangePickerComponent implements ControlValueAccessor {\n private readonly defaultId = `st-daterange-${nextUniqueDateRangePickerId++}`;\n\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n placeholder = input<string>('Start date – End date');\n separator = input<string>(' – ');\n format = input<string | undefined>(undefined);\n size = input<DatePickerSize>('md');\n placement = input<Placement>('bottom-start');\n locale = input<string | undefined>(undefined);\n\n readonly calendarSize = computed<CalendarSize>(() => (this.size() === 'sm' ? 'sm' : 'md'));\n\n numberOfMonths = input<number>(2);\n showPresets = input<boolean, unknown>(true, { transform: booleanAttribute });\n presets = input<DateRangePreset[]>(DEFAULT_DATE_RANGE_PRESETS);\n\n clearable = input<boolean, unknown>(true, { transform: booleanAttribute });\n disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly = input<boolean, unknown>(false, { transform: booleanAttribute });\n fullWidth = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n state = input<InputControlState | undefined>(undefined);\n error = input<boolean, unknown>(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input<boolean, unknown>(true, { transform: booleanAttribute });\n\n minDate = input<Date | null>(null);\n maxDate = input<Date | null>(null);\n disabledDates = input<((date: Date) => boolean) | Date[] | null>(null);\n firstDayOfWeek = input<number>(0);\n initialViewDate = input<Date | null>(null);\n\n value = model<DateRange | null>(null);\n rangeSelected = output<DateRange | null>();\n\n open = signal<boolean>(false);\n textInputValue = signal<string>('');\n calendarViewDate = signal<Date>(new Date());\n\n readonly secondCalendarViewDate = computed(() => {\n return addMonths(this.calendarViewDate(), 1);\n });\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 readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n private onChange: (val: DateRange | null) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n private overlayDirective = viewChild(StrataOverlayDirective);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private renderer = inject(Renderer2);\n private destroyRef = inject(DestroyRef);\n\n private get effectiveFormat(): string {\n return this.format() || getLocaleDefaultDateFormat(this.locale());\n }\n\n constructor() {\n const unlisten = this.renderer.listen('document', 'pointerdown', (event: PointerEvent) => {\n if (!this.open()) return;\n const target = event.target as Node | null;\n if (!target) return;\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.open.set(false);\n });\n\n this.destroyRef.onDestroy(() => unlisten());\n\n effect(() => {\n const val = this.value();\n if (val && val.start && val.end) {\n this.textInputValue.set(\n `${formatDate(val.start, this.effectiveFormat)}${this.separator()}${formatDate(val.end, this.effectiveFormat)}`\n );\n this.calendarViewDate.set(new Date(val.start));\n } else {\n this.textInputValue.set('');\n }\n });\n }\n\n toggle(event?: Event): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n const opening = !this.open();\n if (opening) {\n const range = this.value();\n const viewDate = range?.start ?? this.initialViewDate() ?? new Date();\n this.calendarViewDate.set(new Date(viewDate));\n }\n this.open.set(opening);\n }\n\n onInputTextChange(value: string): void {\n this.textInputValue.set(value);\n if (!value.trim()) {\n this.updateRangeValue(null);\n return;\n }\n\n const parts = value.split(this.separator());\n if (parts.length === 2) {\n const s = parseDate(parts[0], this.effectiveFormat);\n const e = parseDate(parts[1], this.effectiveFormat);\n if (s && e) {\n this.updateRangeValue({ start: s, end: e });\n }\n }\n }\n\n onInputBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val && val.start && val.end) {\n this.textInputValue.set(\n `${formatDate(val.start, this.effectiveFormat)}${this.separator()}${formatDate(val.end, this.effectiveFormat)}`\n );\n } else {\n this.textInputValue.set('');\n }\n }\n\n onCalendarRangeSelected(range: DateRange): void {\n this.value.set(range);\n if (range.start && range.end) {\n this.textInputValue.set(\n `${formatDate(range.start, this.effectiveFormat)}${this.separator()}${formatDate(range.end, this.effectiveFormat)}`\n );\n this.rangeSelected.emit(range);\n this.onChange(range);\n this.onTouched();\n this.open.set(false);\n }\n }\n\n onSecondCalendarViewDateChange(date: Date): void {\n this.calendarViewDate.set(addMonths(date, -1));\n }\n\n applyPreset(preset: DateRangePreset): void {\n const range = preset.getRange();\n this.updateRangeValue(range);\n this.open.set(false);\n }\n\n clear(event: Event): void {\n event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly()) return;\n this.updateRangeValue(null);\n }\n\n private updateRangeValue(range: DateRange | null): void {\n this.value.set(range);\n if (range && range.start && range.end) {\n this.textInputValue.set(\n `${formatDate(range.start, this.effectiveFormat)}${this.separator()}${formatDate(range.end, this.effectiveFormat)}`\n );\n } else {\n this.textInputValue.set('');\n }\n this.rangeSelected.emit(range);\n this.onChange(range);\n this.onTouched();\n }\n\n writeValue(val: DateRange | null): void {\n this.value.set(val);\n if (val && val.start && val.end) {\n this.textInputValue.set(\n `${formatDate(val.start, this.effectiveFormat)}${this.separator()}${formatDate(val.end, this.effectiveFormat)}`\n );\n this.calendarViewDate.set(new Date(val.start));\n } else {\n this.textInputValue.set('');\n }\n }\n\n registerOnChange(fn: (val: DateRange | null) => 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","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div\n class=\"st-input-wrapper\"\n [class.full-width]=\"fullWidth()\"\n [class.disabled]=\"effectiveDisabled()\"\n [class.open]=\"open()\"\n [stOverlay]=\"rangeCalendarOverlay\"\n [overlayOpen]=\"open()\"\n [overlayPlacement]=\"placement()\"\n>\n <input\n type=\"text\"\n [id]=\"effectiveId()\"\n [placeholder]=\"placeholder()\"\n [value]=\"textInputValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onInputTextChange($any($event.target).value)\"\n (blur)=\"onInputBlur()\"\n (click)=\"toggle($event)\"\n (keydown.enter)=\"toggle($event)\"\n (keydown.escape)=\"open.set(false)\"\n />\n\n <div class=\"affix\">\n @if (clearable() && value() && !effectiveDisabled() && !readonly()) {\n <button\n type=\"button\"\n class=\"st-icon-btn\"\n (click)=\"clear($event)\"\n aria-label=\"Clear date range\"\n >\n <st-icon name=\"close\" size=\"xs\"></st-icon>\n </button>\n }\n\n <span class=\"st-trigger-icon\" (click)=\"toggle($event)\">\n <st-icon name=\"calendar\" size=\"xs\"></st-icon>\n </span>\n </div>\n</div>\n\n@if (message()) {\n <div class=\"st-input-field-footer\">\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\n\n<ng-template #rangeCalendarOverlay>\n <div class=\"st-date-range-dropdown\">\n @if (showPresets() && presets().length > 0) {\n <div class=\"st-date-range-presets\">\n <div class=\"st-presets-title\">Presets</div>\n @for (preset of presets(); track preset.label) {\n <button\n type=\"button\"\n class=\"st-preset-btn\"\n (click)=\"applyPreset(preset)\"\n >\n {{ preset.label }}\n </button>\n }\n </div>\n }\n\n <div class=\"st-date-range-calendars\">\n <st-calendar\n mode=\"range\"\n [size]=\"calendarSize()\"\n [locale]=\"locale()\"\n [rangeValue]=\"value()\"\n [viewDate]=\"calendarViewDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (rangeSelected)=\"onCalendarRangeSelected($event)\"\n (viewDateChange)=\"calendarViewDate.set($event)\"\n ></st-calendar>\n\n @if (numberOfMonths() >= 2) {\n <st-calendar\n mode=\"range\"\n [size]=\"calendarSize()\"\n [locale]=\"locale()\"\n [rangeValue]=\"value()\"\n [viewDate]=\"secondCalendarViewDate()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [firstDayOfWeek]=\"firstDayOfWeek()\"\n (rangeSelected)=\"onCalendarRangeSelected($event)\"\n (viewDateChange)=\"onSecondCalendarViewDateChange($event)\"\n ></st-calendar>\n }\n </div>\n </div>\n</ng-template>\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 booleanAttribute,\n Component,\n computed,\n ElementRef,\n HostBinding,\n HostListener,\n input,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { InputControlState } from '../../../../shared/control-state';\nimport { StrataAvatarComponent } from '../../../avatar/components/avatar/avatar.component';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataButtonGroupComponent } from '../../../button/components/button-group/button-group.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-file-upload',\n imports: [\n StrataAvatarComponent,\n StrataButtonDirective,\n StrataButtonGroupComponent,\n StrataIconComponent\n ],\n templateUrl: './file-upload.component.html',\n styleUrl: './file-upload.component.scss'\n})\nexport class StrataFileUploadComponent {\n fileInput = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n cameraInput = viewChild<ElementRef<HTMLInputElement>>('cameraInput');\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 camera = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (val: boolean | string | undefined) => {\n if (val === undefined || val === null) {\n return undefined;\n }\n if (typeof val === 'string') {\n if (val === '' || val === 'true') {\n return true;\n }\n if (val === 'false') {\n return false;\n }\n }\n return Boolean(val);\n }\n });\n choosePhotoLabel = input<string>('Choose Photo');\n takePhotoLabel = input<string>('Take Photo');\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n readonly displayMessage = computed(() => this.message() ?? this.hint());\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n readonly isImageAccept = computed(() => {\n const acc = this.accept().toLowerCase();\n if (!acc || acc === '*' || acc === '*/*') {\n return false;\n }\n const rules = acc.split(',').map((r) => r.trim());\n return rules.some((rule) => {\n return (\n rule.startsWith('image/') ||\n ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.bmp', '.heic', '.heif', '.svg'].some((ext) =>\n rule.endsWith(ext)\n )\n );\n });\n });\n\n readonly showCamera = computed(() => {\n const cam = this.camera();\n if (cam === false) {\n return false;\n }\n if (cam === true) {\n return true;\n }\n return this.isImageAccept();\n });\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-state-error')\n @HostBinding('class.st-error')\n get hostError(): boolean {\n return this.effectiveState() === 'error';\n }\n\n @HostBinding('class.st-state-success')\n get hostSuccess(): boolean {\n return this.effectiveState() === 'success';\n }\n\n @HostBinding('class.st-state-warning')\n get hostWarning(): boolean {\n return this.effectiveState() === 'warning';\n }\n\n @HostBinding('attr.aria-invalid')\n get hostAriaInvalid(): string | null {\n return this.effectiveState() === 'error' ? 'true' : null;\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 || target === this.cameraInput()?.nativeElement) {\n return;\n }\n if (target.closest('.st-file-upload-actions')) {\n return;\n }\n this.browse();\n }\n\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onKeydown(event: Event): void {\n const target = event.target as HTMLElement;\n if (target.closest('.st-file-upload-actions')) {\n return;\n }\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(event?: Event): void {\n event?.stopPropagation();\n if (this.disabled()) return;\n this.fileInput()?.nativeElement.click();\n }\n\n browseCamera(event?: Event): void {\n event?.stopPropagation();\n if (this.disabled()) return;\n this.cameraInput()?.nativeElement.click();\n }\n\n clear(): void {\n const inputEl = this.fileInput()?.nativeElement;\n if (inputEl) {\n inputEl.value = '';\n }\n const cameraEl = this.cameraInput()?.nativeElement;\n if (cameraEl) {\n cameraEl.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@if (showCamera()) {\n <input\n #cameraInput\n type=\"file\"\n class=\"st-file-upload-input\"\n accept=\"image/*\"\n capture=\"environment\"\n [disabled]=\"disabled()\"\n (change)=\"onFileChange($event)\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n />\n}\n\n<div class=\"st-file-upload-content\">\n <ng-content select=\"[uploadIcon]\">\n <st-avatar size=\"md\" variant=\"rounded\" class=\"st-file-upload-avatar\">\n <st-icon name=\"upload\"></st-icon>\n </st-avatar>\n </ng-content>\n\n <div class=\"st-file-upload-text\">\n <span class=\"st-file-upload-label\">{{ label() }}</span>\n @if (displayMessage()) {\n <span\n class=\"st-file-upload-hint\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >{{ displayMessage() }}</span>\n }\n </div>\n\n @if (showCamera()) {\n <st-button-group justification=\"center\" class=\"st-file-upload-actions\">\n <button\n stButton\n type=\"button\"\n variant=\"secondary\"\n size=\"sm\"\n [disabled]=\"disabled()\"\n (click)=\"browse($event)\"\n >\n <st-icon name=\"image\" size=\"sm\"></st-icon>\n <span>{{ choosePhotoLabel() }}</span>\n </button>\n\n <button\n stButton\n type=\"button\"\n variant=\"secondary\"\n size=\"sm\"\n class=\"st-file-upload-action-camera\"\n [disabled]=\"disabled()\"\n (click)=\"browseCamera($event)\"\n >\n <st-icon name=\"camera\" size=\"sm\"></st-icon>\n <span>{{ takePhotoLabel() }}</span>\n </button>\n </st-button-group>\n }\n\n <ng-content></ng-content>\n</div>\n","import {\n AfterViewInit,\n booleanAttribute,\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';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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@if (message()) {\n <div\n class=\"st-slider-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\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 AfterContentChecked,\n AfterViewInit,\n booleanAttribute,\n Component,\n computed,\n contentChild,\n contentChildren,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataNativeInputRefDirective } from '../../directives/native-input-ref.directive';\nimport { InputControlState } from '../../../../shared/control-state';\n\nlet nextUniqueId = 0;\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 '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null',\n '(input)': 'onNativeInput()',\n '(change)': 'onNativeInput()'\n }\n})\nexport class StrataInputFieldComponent implements AfterViewInit, AfterContentChecked {\n private readonly hostElement = inject(ElementRef<HTMLElement>);\n private readonly defaultId = `st-input-${nextUniqueId++}`;\n\n size = input<InputFieldSize>('md');\n label = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = input<boolean | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : booleanAttribute(value)\n });\n\n maxLength = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n showCharacterCounter = input(false, { transform: booleanAttribute });\n\n characterCounterFormatter = input<((current: number, max?: number) => string) | undefined>(undefined);\n\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n inputField = contentChild(StrataNativeInputRefDirective, {\n descendants: true\n });\n\n private pendingFocus = signal(false);\n\n readonly currentLength = signal(0);\n\n private readonly nativeMaxLength = signal<number | undefined>(undefined);\n\n readonly nativeDisabled = signal(false);\n readonly nativeId = signal<string | undefined>(undefined);\n\n readonly effectiveId = computed(() => this.id() ?? this.name() ?? this.nativeId() ?? this.defaultId);\n readonly effectiveMaxLength = computed(() => this.maxLength() ?? this.nativeMaxLength());\n\n readonly effectiveDisabled = computed(() => (this.disabled() ?? false) || this.nativeDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n readonly counterText = computed(() => {\n const current = this.currentLength();\n const max = this.effectiveMaxLength();\n const formatter = this.characterCounterFormatter();\n\n if (formatter) {\n return formatter(current, max);\n }\n\n if (max !== undefined) {\n return `${current} / ${max}`;\n }\n\n return `${current}`;\n });\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 effect(() => {\n const explicitDisabled = this.disabled();\n const input = this.nativeInput;\n\n if (input && explicitDisabled !== undefined && input.disabled !== explicitDisabled) {\n input.disabled = explicitDisabled;\n if (this.nativeDisabled() !== explicitDisabled) {\n this.nativeDisabled.set(explicitDisabled);\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.iconComponents().forEach((icon) => icon.size.set('sm')), 1);\n this.syncNativeState();\n }\n\n ngAfterContentChecked(): void {\n this.syncNativeState();\n }\n\n onNativeInput(): void {\n this.syncNativeState();\n }\n\n focus(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n this.pendingFocus.set(true);\n }\n\n blur(): void {\n this.nativeInput?.blur();\n }\n\n get nativeInput(): HTMLInputElement | HTMLTextAreaElement | undefined {\n return (\n this.inputField()?.el.nativeElement ??\n this.hostElement.nativeElement.querySelector('input, textarea') ??\n undefined\n );\n }\n\n private syncNativeState(): void {\n const input = this.nativeInput;\n if (!input) {\n return;\n }\n\n const explicitId = this.id() ?? this.name();\n if (explicitId !== undefined) {\n if (input.id !== explicitId) {\n input.id = explicitId;\n }\n } else if (!input.id && this.label()) {\n input.id = this.defaultId;\n }\n\n const currentId = input.id || undefined;\n if (this.nativeId() !== currentId) {\n this.nativeId.set(currentId);\n }\n\n const explicitMax = this.maxLength();\n if (explicitMax !== undefined) {\n const maxStr = String(explicitMax);\n if (input.getAttribute('maxlength') !== maxStr) {\n input.setAttribute('maxlength', maxStr);\n }\n\n if (input.value.length > explicitMax) {\n input.value = input.value.slice(0, explicitMax);\n input.dispatchEvent(new Event('input', { bubbles: true }));\n }\n } else {\n const attr = input.getAttribute('maxlength');\n const parsed = attr !== null && attr !== '' ? parseInt(attr, 10) : undefined;\n const validMax = parsed !== undefined && !isNaN(parsed) && parsed >= 0 ? parsed : undefined;\n if (this.nativeMaxLength() !== validMax) {\n this.nativeMaxLength.set(validMax);\n }\n }\n\n const explicitDisabled = this.disabled();\n if (explicitDisabled !== undefined && input.disabled !== explicitDisabled) {\n input.disabled = explicitDisabled;\n }\n\n const isInputDisabled = input.disabled || input.hasAttribute('disabled');\n if (this.nativeDisabled() !== isInputDisabled) {\n this.nativeDisabled.set(isInputDisabled);\n }\n\n const currentLen = input.value.length;\n if (this.currentLength() !== currentLen) {\n this.currentLength.set(currentLen);\n }\n }\n}\n\n","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\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@if (message() || showCharacterCounter()) {\n <div class=\"st-input-field-footer\">\n @if (message()) {\n <span\n class=\"st-input-field-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n }\n @if (showCharacterCounter()) {\n <span class=\"st-input-field-counter\" aria-live=\"polite\">{{ counterText() }}</span>\n }\n </div>\n}\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 { booleanAttribute, Component, computed, input, model, output, signal } from '@angular/core';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n\n groupDisabled = signal(false);\n groupState = signal<InputControlState>('default');\n\n effectiveDisabled = computed(() => this.disabled() || this.groupDisabled());\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n if (this.state()) {\n return this.state()!;\n }\n return this.groupState();\n });\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 { Component } from '@angular/core';\n\n@Component({\n selector: 'st-modal-body',\n imports: [],\n templateUrl: './modal-body.component.html',\n host: {\n class: 'st-modal-body'\n }\n})\nexport class StrataModalBodyComponent {}\n","<ng-content></ng-content>\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 placement?: ModalPlacement;\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';\nexport type ModalPlacement = 'center' | 'right' | 'left' | 'bottom';\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, ModalPlacement, 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>();\n variant = input<ModalVariant>();\n placement = model<ModalPlacement | undefined>();\n\n readonly currentSize = computed(() => this.size() ?? this.configuration()?.size ?? 'md');\n readonly currentVariant = computed(() => this.variant() ?? this.configuration()?.variant ?? 'default');\n readonly currentPlacement = computed(() => this.placement() ?? this.configuration()?.placement ?? 'center');\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()} st-modal-placement-${this.currentPlacement()}`;\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({ preventScroll: true });\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({ preventScroll: true });\n return;\n }\n\n this.elementRef.nativeElement.focus({ preventScroll: true });\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({ preventScroll: true });\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({ preventScroll: true });\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\" [placement]=\"modal.placement\"> </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';\nimport { ButtonVariant } from '../button/directives/button/button.directive';\n\nexport interface StrataNotificationRef {\n readonly id: string;\n dismiss(): void;\n}\n\nexport interface NotificationAction {\n label: string;\n onClick?: (ref: StrataNotificationRef) => void;\n variant?: ButtonVariant;\n}\n\nexport interface NotificationConfiguration {\n id?: string;\n title?: string;\n message: string;\n icon?: string;\n theme?: Theme;\n duration?: number;\n dismissible?: boolean;\n showProgress?: boolean;\n pauseOnHover?: boolean;\n actions?: NotificationAction[];\n}\n\nexport type NotificationsWithIds = NotificationConfiguration & {\n id: string;\n dismissible: boolean;\n showProgress: boolean;\n pauseOnHover: boolean;\n actions: NotificationAction[];\n};\n\nexport const DEFAULT_THEME: Theme = 'default';\n\nexport const DEFAULT_DURATION = 3000;\n\n","import { inject, Injectable, signal } from '@angular/core';\nimport { STRATA_CONFIG } from '../../../app/provider/provide-strata';\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 private strataConfig = inject(STRATA_CONFIG, { optional: true });\n\n public maxNotifications = signal<number>(this.strataConfig?.maxNotifications ?? 5);\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 dismissAll(): void {\n this.notificationStack.set([]);\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 const showProgress = config.showProgress !== undefined ? config.showProgress : false;\n const pauseOnHover = config.pauseOnHover !== undefined ? config.pauseOnHover : true;\n const actions = config.actions ?? [];\n\n const currentStack = this.notificationStack();\n this.notificationStack.set([\n ...currentStack,\n {\n id: newNotificationId,\n title: config.title,\n message: config.message,\n duration: duration,\n theme: config.theme ?? DEFAULT_THEME,\n icon: config.icon,\n dismissible,\n showProgress,\n pauseOnHover,\n actions\n }\n ]);\n\n return {\n id: newNotificationId,\n dismiss: () => this.dismiss(newNotificationId)\n };\n }\n}\n\n\n","import { Component, input, OnDestroy, OnInit, output, signal } from '@angular/core';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { NotificationAction, StrataNotificationRef } from '../../notification.model';\n\n@Component({\n selector: 'st-notification',\n imports: [StrataIconComponent, StrataButtonDirective],\n templateUrl: './notification.component.html',\n host: {\n '[class.st-is-paused]': 'isPaused()',\n '[style.--st-notification-duration]': 'duration() + \"ms\"',\n '(mouseenter)': 'pauseTimer()',\n '(mouseleave)': 'resumeTimer()',\n '(focusin)': 'pauseTimer()',\n '(focusout)': 'resumeTimer()'\n }\n})\nexport class StrataNotificationComponent implements OnInit, OnDestroy {\n id = input<string | undefined>(undefined);\n title = input<string | undefined>(undefined);\n icon = input<string | undefined>(undefined);\n message = input.required<string>();\n duration = input<number>(3000);\n dismissible = input(false);\n showProgress = input(false);\n pauseOnHover = input(true);\n actions = input<NotificationAction[]>([]);\n\n dismiss = output<void>();\n actionClick = output<{ action: NotificationAction; ref: StrataNotificationRef }>();\n\n isPaused = signal(false);\n\n private remainingTime = 0;\n private startTime = 0;\n private timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n ngOnInit(): void {\n if (this.duration() > 0) {\n this.startTimer(this.duration());\n }\n }\n\n ngOnDestroy(): void {\n this.clearTimer();\n }\n\n onDismiss(): void {\n this.clearTimer();\n this.dismiss.emit();\n }\n\n onActionClick(action: NotificationAction): void {\n const ref: StrataNotificationRef = {\n id: this.id() ?? '',\n dismiss: () => this.onDismiss()\n };\n this.actionClick.emit({ action, ref });\n if (action.onClick) {\n action.onClick(ref);\n }\n }\n\n pauseTimer(): void {\n if (!this.pauseOnHover() || this.duration() <= 0 || this.isPaused()) {\n return;\n }\n this.clearTimer();\n const elapsed = Date.now() - this.startTime;\n this.remainingTime = Math.max(0, this.remainingTime - elapsed);\n this.isPaused.set(true);\n }\n\n resumeTimer(): void {\n if (!this.pauseOnHover() || this.duration() <= 0 || !this.isPaused()) {\n return;\n }\n if (this.remainingTime <= 0) {\n this.onDismiss();\n return;\n }\n this.startTimer(this.remainingTime);\n }\n\n private startTimer(ms: number): void {\n this.clearTimer();\n this.remainingTime = ms;\n this.startTime = Date.now();\n this.isPaused.set(false);\n this.timeoutId = setTimeout(() => {\n this.onDismiss();\n }, ms);\n }\n\n private clearTimer(): void {\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n}\n\n","@if (icon()) {\n <div class=\"st-notification-icon-wrapper\">\n <st-icon [name]=\"icon()!\"></st-icon>\n </div>\n}\n<div class=\"st-notification-content\">\n @if (title()) {\n <div class=\"st-notification-title\">{{ title() }}</div>\n }\n <div class=\"st-notification-message notification-message\">{{ message() }}</div>\n @if (actions().length > 0) {\n <div class=\"st-notification-actions\">\n @for (action of actions(); track action.label) {\n <button\n type=\"button\"\n stButton\n [variant]=\"action.variant ?? 'secondary'\"\n size=\"sm\"\n (click)=\"onActionClick(action)\"\n >\n {{ action.label }}\n </button>\n }\n </div>\n }\n</div>\n@if (dismissible()) {\n <button\n type=\"button\"\n class=\"st-notification-close-btn notification-close-btn\"\n aria-label=\"Dismiss notification\"\n (click)=\"onDismiss()\"\n >\n <st-icon name=\"close\"></st-icon>\n </button>\n}\n@if (showProgress() && duration() > 0) {\n <div class=\"st-notification-progress-bar\" role=\"progressbar\" aria-hidden=\"true\"></div>\n}\n\n","import { Component, computed, inject } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataThemeDirective } from '../../../theming/directives/theme.directive';\nimport { NotificationService } from '../../services/notification.service';\nimport { StrataNotificationComponent } from '../notification/notification.component';\n\n@Component({\n selector: 'st-notification-container',\n imports: [StrataNotificationComponent, StrataThemeDirective, StrataIconComponent],\n templateUrl: './notification-container.component.html'\n})\nexport class StrataNotificationContainerComponent {\n notificationService = inject(NotificationService);\n\n notifications = this.notificationService.notificationStack;\n maxNotifications = this.notificationService.maxNotifications;\n\n visibleNotifications = computed(() => {\n const max = this.maxNotifications();\n const stack = this.notifications();\n if (max <= 0 || stack.length <= max) {\n return stack;\n }\n return stack.slice(-max);\n });\n\n overflowCount = computed(() => {\n const max = this.maxNotifications();\n const total = this.notifications().length;\n if (max <= 0) {\n return 0;\n }\n return Math.max(0, total - max);\n });\n\n dismiss(id: string): void {\n this.notificationService.dismiss(id);\n }\n\n dismissAll(): void {\n this.notificationService.dismissAll();\n }\n}\n\n","@if (overflowCount() > 0) {\n <div class=\"st-notification-overflow\">\n <span class=\"st-notification-overflow-text\">+{{ overflowCount() }} more</span>\n <button\n type=\"button\"\n class=\"st-notification-overflow-clear\"\n aria-label=\"Dismiss all notifications\"\n (click)=\"dismissAll()\"\n >\n <st-icon name=\"close\"></st-icon>\n </button>\n </div>\n}\n\n@for (notification of visibleNotifications(); track notification.id) {\n <st-notification\n [id]=\"notification.id\"\n [icon]=\"notification.icon\"\n [title]=\"notification.title\"\n [message]=\"notification.message\"\n [dismissible]=\"notification.dismissible\"\n [duration]=\"notification.duration ?? 3000\"\n [showProgress]=\"notification.showProgress\"\n [pauseOnHover]=\"notification.pauseOnHover\"\n [actions]=\"notification.actions\"\n [stTheme]=\"notification.theme ?? 'default'\"\n (dismiss)=\"dismiss(notification.id)\"\n >\n </st-notification>\n}\n\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 {\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n forwardRef,\n input,\n model,\n numberAttribute,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { InputControlState } from '../../../../shared/control-state';\n\nlet nextUniqueId = 0;\n\nexport type NumberStepperSize = 'sm' | 'md' | 'lg';\nexport type NumberStepperLayout = 'split' | 'stacked';\n\n@Component({\n selector: 'st-number-stepper',\n imports: [StrataIconComponent],\n templateUrl: './number-stepper.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StrataNumberStepperComponent),\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-layout-split]': 'stepperLayout() === \"split\"',\n '[class.st-layout-stacked]': 'stepperLayout() === \"stacked\"',\n '[class.st-disabled]': 'effectiveDisabled()',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null',\n '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataNumberStepperComponent implements ControlValueAccessor {\n private readonly defaultId = `st-stepper-${nextUniqueId++}`;\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('nativeInput');\n\n value = model<number | null | undefined>(undefined);\n\n min = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n max = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n step = input<number, unknown>(1, {\n transform: (value: unknown) => {\n const parsed = numberAttribute(value);\n return parsed > 0 ? parsed : 1;\n }\n });\n\n precision = input<number | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : numberAttribute(value)\n });\n\n size = input<NumberStepperSize>('md');\n stepperLayout = input<NumberStepperLayout>('split');\n\n label = input<string | undefined>(undefined);\n placeholder = input<string | undefined>(undefined);\n id = input<string | undefined>(undefined);\n name = input<string | undefined>(undefined);\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = input<boolean | undefined, unknown>(undefined, {\n transform: (value: unknown) =>\n value === undefined || value === null || value === '' ? undefined : booleanAttribute(value)\n });\n\n readonly = input<boolean, unknown>(false, {\n transform: booleanAttribute\n });\n\n private readonly cvaDisabled = signal(false);\n\n readonly effectiveId = computed(() => this.id() ?? this.name() ?? this.defaultId);\n readonly effectiveDisabled = computed(() => (this.disabled() ?? false) || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\n\n readonly canIncrement = computed(() => {\n if (this.effectiveDisabled() || this.readonly()) {\n return false;\n }\n const val = this.value();\n const maxVal = this.max();\n if (val !== undefined && val !== null && maxVal !== undefined && val >= maxVal) {\n return false;\n }\n return true;\n });\n\n readonly canDecrement = computed(() => {\n if (this.effectiveDisabled() || this.readonly()) {\n return false;\n }\n const val = this.value();\n const minVal = this.min();\n if (val !== undefined && val !== null && minVal !== undefined && val <= minVal) {\n return false;\n }\n return true;\n });\n\n readonly formattedValue = computed(() => {\n const val = this.value();\n if (val === undefined || val === null || isNaN(val)) {\n return '';\n }\n return String(val);\n });\n\n private onChange: (val: number | null | undefined) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n stepUp(): void {\n if (!this.canIncrement()) {\n return;\n }\n\n const current = this.value() ?? this.min() ?? 0;\n let next = current + this.step();\n const maxVal = this.max();\n if (maxVal !== undefined && next > maxVal) {\n next = maxVal;\n }\n\n next = this.roundToPrecision(next, this.precision());\n this.updateValue(next);\n }\n\n stepDown(): void {\n if (!this.canDecrement()) {\n return;\n }\n\n const current = this.value() ?? this.max() ?? 0;\n let next = current - this.step();\n const minVal = this.min();\n if (minVal !== undefined && next < minVal) {\n next = minVal;\n }\n\n next = this.roundToPrecision(next, this.precision());\n this.updateValue(next);\n }\n\n onNativeInput(event: Event): void {\n const inputEl = event.target as HTMLInputElement;\n const raw = inputEl.value.trim();\n\n if (raw === '') {\n this.updateValue(undefined);\n return;\n }\n\n const parsed = Number(raw);\n if (!isNaN(parsed)) {\n this.updateValue(parsed);\n }\n }\n\n onNativeBlur(): void {\n this.onTouched();\n const val = this.value();\n if (val === undefined || val === null || isNaN(val)) {\n return;\n }\n\n let clamped = val;\n const minVal = this.min();\n const maxVal = this.max();\n\n if (minVal !== undefined && clamped < minVal) {\n clamped = minVal;\n } else if (maxVal !== undefined && clamped > maxVal) {\n clamped = maxVal;\n }\n\n clamped = this.roundToPrecision(clamped, this.precision());\n if (clamped !== val) {\n this.updateValue(clamped);\n }\n }\n\n onNativeKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.stepUp();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.stepDown();\n }\n }\n\n focus(): void {\n this.inputRef()?.nativeElement.focus();\n }\n\n blur(): void {\n this.inputRef()?.nativeElement.blur();\n }\n\n writeValue(val: number | null | undefined): void {\n if (val === null || val === undefined || isNaN(val)) {\n this.value.set(undefined);\n } else {\n this.value.set(Number(val));\n }\n }\n\n registerOnChange(fn: (val: number | null | 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 private updateValue(nextVal: number | undefined): void {\n this.value.set(nextVal);\n this.onChange(nextVal);\n }\n\n private roundToPrecision(val: number, precision?: number): number {\n if (precision !== undefined) {\n const factor = Math.pow(10, precision);\n return Math.round(val * factor) / factor;\n }\n const stepDecimals = this.getDecimalCount(this.step());\n if (stepDecimals > 0) {\n const factor = Math.pow(10, stepDecimals);\n return Math.round(val * factor) / factor;\n }\n return val;\n }\n\n private getDecimalCount(val: number): number {\n const s = String(val);\n const dotIndex = s.indexOf('.');\n return dotIndex >= 0 ? s.length - dotIndex - 1 : 0;\n }\n}\n","@if (label()) {\n <label class=\"st-label\" [for]=\"effectiveId()\">{{ label() }}</label>\n}\n\n<div class=\"st-stepper-wrapper\">\n @if (stepperLayout() === 'split') {\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-dec\"\n [disabled]=\"!canDecrement()\"\n (click)=\"stepDown()\"\n aria-label=\"Decrement\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-down\"></st-icon>\n </button>\n <input\n #nativeInput\n [id]=\"effectiveId()\"\n [name]=\"name() ?? effectiveId()\"\n type=\"text\"\n inputmode=\"decimal\"\n [placeholder]=\"placeholder() ?? ''\"\n [value]=\"formattedValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onNativeBlur()\"\n (keydown)=\"onNativeKeyDown($event)\"\n />\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-inc\"\n [disabled]=\"!canIncrement()\"\n (click)=\"stepUp()\"\n aria-label=\"Increment\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-up\"></st-icon>\n </button>\n } @else {\n <input\n #nativeInput\n [id]=\"effectiveId()\"\n [name]=\"name() ?? effectiveId()\"\n type=\"text\"\n inputmode=\"decimal\"\n [placeholder]=\"placeholder() ?? ''\"\n [value]=\"formattedValue()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onNativeBlur()\"\n (keydown)=\"onNativeKeyDown($event)\"\n />\n <div class=\"st-stepper-stacked-actions\">\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-inc\"\n [disabled]=\"!canIncrement()\"\n (click)=\"stepUp()\"\n aria-label=\"Increment\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-up\"></st-icon>\n </button>\n <button\n type=\"button\"\n class=\"st-stepper-btn st-stepper-btn-dec\"\n [disabled]=\"!canDecrement()\"\n (click)=\"stepDown()\"\n aria-label=\"Decrement\"\n tabindex=\"-1\"\n >\n <st-icon name=\"arrow-down\"></st-icon>\n </button>\n </div>\n }\n</div>\n\n@if (message()) {\n <div class=\"st-stepper-footer\">\n <span\n class=\"st-stepper-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </span>\n </div>\n}\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 booleanAttribute,\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 message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\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 readonly effectiveMessage = computed<string | undefined>(() => {\n return this.message() ?? this.computedErrorMessage() ?? this.helperText();\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\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 (effectiveMessage()) {\n <div\n class=\"st-otp-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ effectiveMessage() }}\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 booleanAttribute,\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';\nimport { InputControlState } from '../../../../shared/control-state';\n\n@Component({\n selector: 'st-radio-group',\n imports: [],\n templateUrl: './radio-group.component.html',\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\n }\n})\nexport class StrataRadioGroupComponent implements ControlValueAccessor {\n value = model<string>('');\n disabled = input<boolean>(false);\n\n state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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(() => {\n const currentState = this.effectiveState();\n this.radios().forEach((radio) => {\n radio.groupState.set(currentState);\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","<div class=\"st-radio-group-radios\">\n <ng-content></ng-content>\n</div>\n@if (message()) {\n <div\n class=\"st-radio-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\n","import { Component, computed, HostBinding, input, model, output, signal } from '@angular/core';\nimport { BadgeSize, BadgeVariant, StrataBadgeComponent } from '../../../badge';\n\n@Component({\n selector: 'st-segmented-control-item',\n imports: [StrataBadgeComponent],\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 badge = input<string | number | undefined>(undefined);\n badgeVariant = input<BadgeVariant>('neutral');\n badgeSize = input<BadgeSize>('sm');\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","<span>{{ text() }}</span>\n@if (badge() !== undefined) {\n <st-badge [value]=\"badge()\" [variant]=\"badgeVariant()\" [size]=\"badgeSize()\"></st-badge>\n}\n<ng-content select=\"st-badge\"></ng-content>\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';\nimport { InputControlState } from '../../../../shared/control-state';\n\nexport type SegmentedControlSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'st-segmented-control',\n imports: [],\n templateUrl: './segmented-control.component.html',\n styleUrl: './segmented-control.component.scss',\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-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null',\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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","<div class=\"st-segmented-control-track\">\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'\"></div>\n</div>\n@if (message()) {\n <div\n class=\"st-segmented-control-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\n\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 booleanAttribute,\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';\nimport { InputControlState } from '../../../../shared/control-state';\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 '[class.st-state-error]': 'effectiveState() === \"error\"',\n '[class.st-state-success]': 'effectiveState() === \"success\"',\n '[class.st-state-warning]': 'effectiveState() === \"warning\"',\n '[class.st-error]': 'effectiveState() === \"error\"',\n '[attr.aria-invalid]': 'effectiveState() === \"error\" ? \"true\" : null'\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 state = input<InputControlState | undefined>(undefined);\n error = input(false, { transform: booleanAttribute });\n message = input<string | undefined>(undefined);\n colorMessage = input(true, { transform: booleanAttribute });\n\n disabled = input<boolean>(false);\n\n private cvaDisabled = signal<boolean>(false);\n effectiveDisabled = computed(() => this.disabled() || this.cvaDisabled());\n\n readonly effectiveState = computed<InputControlState>(() => {\n if (this.error()) {\n return 'error';\n }\n return this.state() ?? 'default';\n });\n\n readonly isMessageError = computed(() => this.effectiveState() === 'error' && this.colorMessage());\n readonly isMessageSuccess = computed(() => this.effectiveState() === 'success' && this.colorMessage());\n readonly isMessageWarning = computed(() => this.effectiveState() === 'warning' && this.colorMessage());\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@if (message()) {\n <div\n class=\"st-select-message\"\n [class.st-message-error]=\"isMessageError()\"\n [class.st-message-success]=\"isMessageSuccess()\"\n [class.st-message-warning]=\"isMessageWarning()\"\n [attr.role]=\"isMessageError() ? 'alert' : null\"\n >\n {{ message() }}\n </div>\n}\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, HostBinding, input } from '@angular/core';\nimport { SkeletonAnimation, SkeletonSize, SkeletonVariant } from '../../skeleton.model';\n\n@Component({\n selector: 'st-skeleton',\n imports: [],\n templateUrl: './skeleton.component.html'\n})\nexport class StrataSkeletonComponent {\n variant = input<SkeletonVariant>('text');\n size = input<SkeletonSize | undefined>(undefined);\n animation = input<SkeletonAnimation>('shimmer');\n width = input<string | number | undefined>(undefined);\n height = input<string | number | undefined>(undefined);\n radius = input<string | number | undefined>(undefined);\n count = input<number>(1);\n lastLineWidth = input<string | number>('70%');\n gap = input<string | number | undefined>(undefined);\n loading = input<boolean>(true);\n ariaLabel = input<string>('Loading...');\n\n normalizedVariant = computed(() => {\n const v = this.variant();\n if (v === 'circle' || v === 'circular') return 'circular';\n if (v === 'rect' || v === 'rectangular') return 'rectangular';\n if (v === 'pill' || v === 'rounded') return 'rounded';\n return 'text';\n });\n\n normalizedWidth = computed(() => this.formatDimension(this.width()));\n normalizedHeight = computed(() => this.formatDimension(this.height()));\n normalizedRadius = computed(() => this.formatDimension(this.radius()));\n normalizedGap = computed(() => this.formatDimension(this.gap()));\n normalizedLastLineWidth = computed(() => this.formatDimension(this.lastLineWidth()));\n\n isMultiLine = computed(() => this.normalizedVariant() === 'text' && this.count() > 1);\n\n lineIndices = computed(() => {\n const n = Math.max(1, Math.floor(this.count()));\n return Array.from({ length: n }, (_, i) => i);\n });\n\n @HostBinding('attr.role')\n get hostRole(): string | null {\n return this.loading() ? 'status' : null;\n }\n\n @HostBinding('attr.aria-busy')\n get hostAriaBusy(): string | null {\n return this.loading() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-live')\n get hostAriaLive(): string | null {\n return this.loading() ? 'polite' : null;\n }\n\n @HostBinding('attr.aria-label')\n get hostAriaLabel(): string | null {\n return this.loading() ? this.ariaLabel() : null;\n }\n\n @HostBinding('class')\n get hostClasses(): string {\n const classes = [\n 'st-skeleton',\n `st-skeleton-${this.normalizedVariant()}`,\n `st-skeleton-anim-${this.animation()}`\n ];\n if (this.size()) {\n classes.push(`st-skeleton-${this.size()}`);\n }\n if (this.isMultiLine()) {\n classes.push('st-skeleton-multiline');\n }\n if (!this.loading()) {\n classes.push('st-skeleton-loaded');\n }\n return classes.join(' ');\n }\n\n getLineWidth(index: number, isLast: boolean): string | undefined {\n if (isLast && this.normalizedVariant() === 'text' && this.isMultiLine()) {\n return this.normalizedLastLineWidth() ?? this.normalizedWidth();\n }\n return this.normalizedWidth();\n }\n\n private formatDimension(value: string | number | undefined): string | undefined {\n if (value === undefined || value === null || value === '') {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n }\n}\n","@if (loading()) {\n @if (isMultiLine()) {\n <div class=\"st-skeleton-group\" [style.gap]=\"normalizedGap()\">\n @for (idx of lineIndices(); track idx; let last = $last) {\n <div\n class=\"st-skeleton-bone\"\n [style.width]=\"getLineWidth(idx, last)\"\n [style.height]=\"normalizedHeight()\"\n [style.border-radius]=\"normalizedRadius()\">\n </div>\n }\n </div>\n } @else {\n <div\n class=\"st-skeleton-bone\"\n [style.width]=\"normalizedWidth()\"\n [style.height]=\"normalizedHeight()\"\n [style.border-radius]=\"normalizedRadius()\">\n </div>\n }\n} @else {\n <ng-content></ng-content>\n}\n","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';\nimport { BadgeSize, BadgeVariant, StrataBadgeComponent } from '../../../badge';\n\n@Component({\n selector: 'st-tab-item',\n imports: [StrataBadgeComponent],\n templateUrl: './tab-item.component.html',\n host: {\n 'role': 'tab',\n '(click)': 'onClick()'\n }\n})\nexport class StrataTabItemComponent {\n text = input<string>();\n badge = input<string | number | undefined>(undefined);\n badgeVariant = input<BadgeVariant>('neutral');\n badgeSize = input<BadgeSize>('sm');\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 <span>{{ text() }}</span>\n @if (badge() !== undefined) {\n <st-badge [value]=\"badge()\" [variant]=\"badgeVariant()\" [size]=\"badgeSize()\"></st-badge>\n }\n <ng-content select=\"st-badge\"></ng-content>\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/breakpoint/breakpoint.service';\nexport * from './lib/services/darkmode/darkmode.service';\nexport * from './lib/services/device/device.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';\nexport * from './lib/shared/control-state';\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/chat';\nexport * from './lib/features/date-picker';\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/number-stepper';\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/skeleton';\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":["nextUniqueId","i1.StrataActivatableDirective","DOCUMENT","i1"],"mappings":"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"}