ngx-strata 0.2.1 → 0.2.3
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.
- package/assets/styles/base.scss +4 -0
- package/assets/styles/components/action-menu.scss +2 -1
- package/assets/styles/components/card.scss +2 -1
- package/assets/styles/components/modal.scss +27 -0
- package/assets/styles/components/select.scss +17 -7
- package/assets/styles/components/tag.scss +1 -1
- package/assets/styles/shadows.scss +1 -0
- package/dist/strata/strata.css +1 -1
- package/fesm2022/ngx-strata.mjs +746 -554
- package/fesm2022/ngx-strata.mjs.map +1 -1
- package/package.json +5 -4
- package/skills/ngx-strata/SKILL.md +64 -48
- package/skills/ngx-strata/components/accordion.md +1 -1
- package/skills/ngx-strata/components/action-menu.md +1 -1
- package/skills/ngx-strata/components/alert.md +1 -1
- package/skills/ngx-strata/components/avatar.md +1 -1
- package/skills/ngx-strata/components/breadcrumb.md +1 -1
- package/skills/ngx-strata/components/button.md +1 -1
- package/skills/ngx-strata/components/card.md +8 -2
- package/skills/ngx-strata/components/checkbox.md +1 -1
- package/skills/ngx-strata/components/divider.md +1 -1
- package/skills/ngx-strata/components/icon.md +1 -1
- package/skills/ngx-strata/components/input-field.md +2 -2
- package/skills/ngx-strata/components/item.md +2 -2
- package/skills/ngx-strata/components/kbd.md +1 -1
- package/skills/ngx-strata/components/message-state.md +1 -1
- package/skills/ngx-strata/components/modal.md +16 -6
- package/skills/ngx-strata/components/notification.md +1 -1
- package/skills/ngx-strata/components/number-display.md +1 -1
- package/skills/ngx-strata/components/overlay.md +1 -1
- package/skills/ngx-strata/components/pagination.md +1 -1
- package/skills/ngx-strata/components/progress.md +2 -2
- package/skills/ngx-strata/components/radio.md +1 -1
- package/skills/ngx-strata/components/segmented-control.md +1 -1
- package/skills/ngx-strata/components/shell.md +3 -3
- package/skills/ngx-strata/components/sidemenu.md +2 -2
- package/skills/ngx-strata/components/single-select.md +1 -1
- package/skills/ngx-strata/components/slider.md +1 -1
- package/skills/ngx-strata/components/spinner.md +1 -1
- package/skills/ngx-strata/components/tabs.md +1 -1
- package/skills/ngx-strata/components/tag.md +1 -1
- package/skills/ngx-strata/components/text-stack.md +2 -2
- package/skills/ngx-strata/components/theming.md +2 -2
- package/skills/ngx-strata/components/toggle.md +1 -1
- package/types/ngx-strata.d.ts +24 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-strata.mjs","sources":["../../../projects/ngx-strata/src/lib/directives/activatable.directive.ts","../../../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/app/provider/provide-strata.ts","../../../projects/ngx-strata/src/lib/directives/tooltip.directive.ts","../../../projects/ngx-strata/src/lib/services/darkmode/darkmode.service.ts","../../../projects/ngx-strata/src/lib/services/hotkey/hotkey.service.ts","../../../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/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/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/avatar/components/avatar/avatar.component.ts","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar/avatar.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/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/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/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/divider/components/divider/divider.component.ts","../../../projects/ngx-strata/src/lib/features/divider/components/divider/divider.component.html","../../../projects/ngx-strata/src/lib/features/tag/components/tag/tag.component.ts","../../../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/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/input-field/directives/auto-resize.directive.ts","../../../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/pipes/capitalize.pipe.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.html","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.html","../../../projects/ngx-strata/src/lib/features/radio/components/radio-group/radio-group.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.html","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.html","../../../projects/ngx-strata/src/lib/features/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/slider/components/slider/slider.component.ts","../../../projects/ngx-strata/src/lib/features/slider/components/slider/slider.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/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/theming/directives/theme.directive.ts","../../../projects/ngx-strata/src/lib/features/modal/services/modal.service.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.html","../../../projects/ngx-strata/src/lib/features/modal/modal.model.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.html","../../../projects/ngx-strata/src/lib/features/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/shell/components/shell/shell.component.ts","../../../projects/ngx-strata/src/lib/features/shell/components/shell/shell.component.html","../../../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/public-api.ts","../../../projects/ngx-strata/src/ngx-strata.ts"],"sourcesContent":["import { Directive, input, output, computed, model, inject, ElementRef } from '@angular/core';\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\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 if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.activated.emit(event);\n this._elementRef.nativeElement.click();\n }\n }\n}\n","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 } 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 icons: Record<string, string> = {} as Record<string, string>;\n\n svgs: Record<string, SafeHtml> = {} as Record<string, SafeHtml>;\n\n constructor(private iconLoader: IconLoader) {}\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 Zesto. 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","import {\n EnvironmentProviders,\n inject,\n makeEnvironmentProviders,\n provideAppInitializer,\n 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 { provideBaseIcons } from './provide-icons';\nimport { Provider, InjectionToken, EnvironmentProviders } from '@angular/core';\nimport { provideIconLoader } from './provide-icon-loader';\nimport { provideIconRegistry } from './provide-icon-registry';\n\nconst DEFAULT_CONFIG: StrataConfig = {\n includeBaseIcons: true,\n tooltipDelayMs: 500,\n crossPlatformHotkeys: true,\n shortcutLabels: {\n meta: '⌘',\n ctrl: 'Ctrl',\n shift: 'Shift',\n alt: 'Alt',\n },\n};\n\nexport function provideStrata(\n config: Partial<StrataConfig> = {},\n): (Provider | EnvironmentProviders)[] {\n const mergedConfig = {\n ...DEFAULT_CONFIG,\n ...config,\n shortcutLabels: { ...DEFAULT_CONFIG.shortcutLabels, ...config.shortcutLabels },\n };\n\n const providers: (Provider | EnvironmentProviders)[] = [\n provideIconLoader(),\n provideIconRegistry(),\n {\n provide: STRATA_CONFIG,\n useValue: mergedConfig,\n },\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 /** When true (default), registering a 'meta+x' hotkey also fires on 'ctrl+x' and vice-versa. */\n crossPlatformHotkeys: boolean;\n /** Visual labels for hotkey modifiers */\n shortcutLabels?: {\n meta?: string;\n ctrl?: string;\n shift?: string;\n alt?: string;\n };\n}\n\nexport const STRATA_CONFIG = new InjectionToken<StrataConfig>('STRATA_CONFIG');\n","import {\n AfterContentInit,\n DOCUMENT,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n inject,\n input,\n} 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 stSimpleTooltip = input.required<string>();\n @Input() tooltipEnabled = true;\n @Input() tooltipPlacement: TooltipPlacement = 'top';\n @Input() tooltipAlwaysShow = 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 constructor(\n @Inject(DOCUMENT) private document: Document,\n private element: ElementRef,\n private renderer: Renderer2,\n ) {}\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, 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","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'),\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 { Component, HostListener, input, model } from '@angular/core';\n\n@Component({\n selector: 'st-checkbox',\n imports: [],\n templateUrl: './checkbox.component.html',\n})\nexport class StrataCheckboxComponent {\n value = model<boolean | undefined>(false);\n\n label = input<string | undefined>(undefined);\n\n name = input<string | undefined>(undefined);\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.stopImmediatePropagation();\n this.value.set(!this.value());\n }\n}\n","<input type=\"checkbox\" [checked]=\"value()\" />\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 >\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]=\"name()\"> {{ label() }}</label>\n}\n","import { Component, inject, input, model } from '@angular/core';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-toggle',\n imports: [],\n templateUrl: './toggle.component.html',\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]': 'disabled()',\n '[attr.data-checked]': 'checked()',\n '[attr.data-disabled]': 'disabled()',\n '[class.st-toggle-label-before]': \"labelPosition() === 'before'\",\n '[class.st-toggle-label-after]': \"labelPosition() === 'after'\",\n },\n})\nexport class StrataToggleComponent {\n private _activatable = inject(StrataActivatableDirective);\n\n checked = model<boolean>(false);\n label = input<string | undefined>(undefined);\n labelPosition = input<'before' | 'after'>('after');\n\n disabled = this._activatable.disabled;\n\n onCheckChanged(event?: Event) {\n if (this.disabled()) {\n return;\n }\n if (event) {\n event.stopPropagation();\n }\n this.checked.set(!this.checked());\n }\n}\n","<div class=\"st-toggle-track\">\n <div class=\"toggle-handle\"></div>\n</div>\n@if (label()) {\n <span class=\"st-toggle-label\">{{ label() }}</span>\n}\n<ng-content></ng-content>\n","import { StrataCheckboxComponent } from '../../../checkbox/components/checkbox/checkbox.component';\nimport { StrataToggleComponent } from '../../../toggle/components/toggle/toggle.component';\n\nimport { Component, contentChild, ElementRef, HostBinding, HostListener, inject, input, output } from '@angular/core';\n\n@Component({\n selector: 'st-action-menu-item',\n imports: [],\n templateUrl: './action-menu-item.component.html',\n styleUrl: './action-menu-item.component.scss',\n})\nexport class StrataActionMenuItemComponent {\n private checkbox = contentChild(StrataCheckboxComponent, { read: ElementRef });\n private toggle = contentChild(StrataToggleComponent, { read: ElementRef });\n\n closeMenuOnClick = input(true);\n\n active = input(false);\n\n @HostBinding('class.active')\n get isActive() {\n return this.active();\n }\n\n menuItemClicked = output<boolean>();\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('click', ['$event'])\n onHostClick(event: MouseEvent) {\n this.menuItemClicked.emit(this.closeMenuOnClick());\n event.stopPropagation();\n\n this.checkbox()?.nativeElement.click();\n this.toggle()?.nativeElement.click();\n }\n}\n","<span class=\"item-start\">\n <ng-content select=\"[area='start']\"></ng-content\n></span>\n<span class=\"item-default\"> <ng-content></ng-content></span>\n<span class=\"item-end\">\n <ng-content select=\"[area='end']\"></ng-content>\n</span>\n","import { AfterContentInit, Directive, ElementRef, HostBinding, inject, input, signal } from '@angular/core';\n\n@Directive({\n selector: '[stButton]',\n})\nexport class StrataButtonDirective implements AfterContentInit {\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\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 const nodes = this.host.nativeElement.childNodes;\n\n if (nodes === undefined || nodes.length == 0) {\n return;\n }\n\n if (nodes.length === 1 && this.nodeIsStIcon(nodes[0])) {\n this.iconOnly.set(true);\n return;\n }\n\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 },\n})\nexport class StrataIconComponent {\n private iconRegistry = inject(IconRegistry);\n\n name = input<string>('question');\n\n size = model<IconSize>('md');\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,\n ElementRef,\n inject,\n input,\n model,\n OnChanges,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n EmbeddedViewRef,\n} from '@angular/core';\nimport { autoUpdate, computePosition, flip, offset, Placement, shift } from '@floating-ui/dom';\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 private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainerRef = inject<ViewContainerRef>(ViewContainerRef);\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 { x, y } = await computePosition(this.element.nativeElement, this.overlayEl, {\n placement: this.overlayPlacement(),\n strategy: 'fixed',\n middleware: [offset(this.overlayOffset()), flip(), shift()],\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 ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import {\n Component,\n contentChild,\n contentChildren,\n ElementRef,\n inject,\n input,\n Renderer2,\n signal,\n viewChild,\n effect,\n} from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataCardComponent } from '../../../card/components/card/card.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataActionMenuItemComponent } from '../action-menu-item/action-menu-item.component';\n\n@Component({\n selector: 'st-action-menu',\n imports: [StrataCardComponent, StrataOverlayDirective, StrataIconComponent, StrataButtonDirective],\n templateUrl: './action-menu.component.html',\n styleUrl: './action-menu.component.scss',\n})\nexport class StrataActionMenuComponent {\n projectedButton = contentChild(StrataButtonDirective, {\n descendants: true,\n read: ElementRef,\n });\n\n defaultButton = viewChild(StrataButtonDirective, {\n read: ElementRef,\n });\n\n actionMenuItems = contentChildren(StrataActionMenuItemComponent);\n\n placement = input<Placement>('bottom-end');\n\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 const subs = this.actionMenuItems().map((item) =>\n item.menuItemClicked.subscribe((shouldClose) => {\n if (shouldClose) {\n this.menuOpen.set(false);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n}\n","<div [stOverlay]=\"menu\" [overlayOpen]=\"menuOpen()\" [overlayPlacement]=\"placement()\">\n <ng-content select=\"button[stButton]\"></ng-content>\n @if (!projectedButton()) {\n <button stButton><st-icon name=\"more\"></st-icon></button>\n }\n</div>\n\n<ng-template #menu>\n <st-card [padding]=\"false\" class=\"action-menu-card\"><ng-content select=\"st-action-menu-item\"></ng-content></st-card>\n</ng-template>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-text-stack',\n imports: [],\n templateUrl: './text-stack.component.html',\n styleUrl: './text-stack.component.scss',\n})\nexport class StrataTextStackComponent {\n overflow = input<TextStackOverflow>('truncate');\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [this.overflow()];\n }\n}\n\nexport type TextStackOverflow = 'truncate' | 'wrap';\n","<ng-content></ng-content>\n","import { Component, input, output } from '@angular/core';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataTextStackComponent } from '../../../text-stack/components/text-stack/text-stack.component';\n\n@Component({\n selector: 'st-alert',\n templateUrl: './alert.component.html',\n imports: [StrataIconComponent, StrataButtonDirective, StrataTextStackComponent],\n})\nexport class StrataAlertComponent {\n\n header = input<string | undefined>(undefined);\n message = input.required<string>();\n iconName = input<string | undefined>(undefined);\n dismissible = input<boolean>(false);\n\n dismiss = output<void>();\n}\n\n\n\n","<div class=\"st-alert-container\">\n @if (iconName()) {\n <div class=\"st-alert-icon\">\n <st-icon [name]=\"iconName()!\"></st-icon>\n </div>\n }\n\n <div class=\"st-alert-content\">\n <st-text-stack overflow=\"wrap\">\n @if (header()) {\n <p class=\"st-body-bold st-alert-header\">{{ header() }}</p>\n }\n <p class=\"st-alert-message\">{{ message() }}</p>\n </st-text-stack>\n </div>\n\n\n\n\n <div class=\"st-alert-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (dismissible()) {\n <button stButton variant=\"ghost\" size=\"sm\" class=\"st-alert-dismiss\" (click)=\"dismiss.emit()\"\n aria-label=\"Dismiss alert\">\n <st-icon name=\"close\"></st-icon>\n </button>\n }\n</div>","import { Component, input, output, signal } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-breadcrumb-item',\n imports: [StrataIconComponent, StrataActivatableDirective],\n templateUrl: './breadcrumb-item.component.html',\n host: {\n 'class': 'st-breadcrumb-item',\n },\n})\nexport class StrataBreadcrumbItemComponent {\n text = input.required<string>();\n\n icon = input<string>();\n\n interactable = input<boolean>(false);\n\n disabled = input<boolean>(false);\n\n activated = output<Event>();\n\n separatorIcon = signal<string | undefined>(undefined);\n}\n","<li class=\"st-breadcrumb-item-container\">\n <div class=\"st-breadcrumb-item-content\"\n stActivatable\n [interactable]=\"interactable()\"\n [disabled]=\"disabled()\"\n (click)=\"activated.emit($event)\">\n @if (icon()) {\n <st-icon [name]=\"icon()!\" size=\"sm\" class=\"st-breadcrumb-item-icon\"></st-icon>\n }\n <span class=\"st-breadcrumb-item-text\">{{ text() }}</span>\n </div>\n\n @if (separatorIcon()) {\n <st-icon [name]=\"separatorIcon()!\" size=\"sm\" class=\"st-breadcrumb-separator\"></st-icon>\n }\n</li>\n","import { Component, contentChildren, effect, input } from '@angular/core';\nimport { StrataBreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n selector: 'st-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.component.html',\n host: {\n 'class': 'st-breadcrumb',\n },\n})\nexport class StrataBreadcrumbComponent {\n separatorIcon = input<string>('arrow-right');\n\n items = contentChildren(StrataBreadcrumbItemComponent, { descendants: true });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const separator = this.separatorIcon();\n\n items.forEach((item, index) => {\n const isLast = index === items.length - 1;\n item.separatorIcon.set(isLast ? undefined : separator);\n });\n });\n }\n}\n","<nav aria-label=\"Breadcrumb\">\n <ol class=\"st-breadcrumb-list\">\n <ng-content></ng-content>\n </ol>\n</nav>\n","import { Component, effect, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-accordion-item',\n imports: [],\n templateUrl: './accordion-item.component.html',\n})\nexport class StrataAccordionItemComponent {\n title = input.required<string>();\n\n open = model<boolean>(false);\n\n toggled = output<boolean>();\n\n constructor() {\n let firstRun = true;\n effect(() => {\n const value = this.open();\n if (!firstRun) {\n this.toggled.emit(value);\n }\n firstRun = false;\n return;\n });\n }\n\n @HostBinding('attr.open')\n get isOpen(): boolean {\n return this.open();\n }\n}\n","<div class=\"accordion-header\" (click)=\"this.open.set(!this.open())\">\n {{ title() }}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\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</div>\n\n<div class=\"accordion-content\">\n <ng-content></ng-content>\n</div>\n","import { Component, contentChildren, input, effect } from '@angular/core';\nimport { StrataAccordionItemComponent } from '../accordion-item/accordion-item.component';\n\n@Component({\n selector: 'st-accordion-group',\n imports: [],\n templateUrl: './accordion-group.component.html',\n})\nexport class StrataAccordionGroupComponent {\n items = contentChildren(StrataAccordionItemComponent);\n\n allowMultipleOpen = input<boolean>(false);\n\n constructor() {\n effect((onCleanup) => {\n const subs = this.items().map((item) =>\n item.toggled.subscribe((open) => {\n if (open && !this.allowMultipleOpen()) {\n this.closeOtherItems(item);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n closeOtherItems(currentItem: StrataAccordionItemComponent) {\n this.items().forEach((item) => {\n if (item !== currentItem) {\n item.open.set(false);\n }\n });\n }\n}\n","<ng-content></ng-content>\n","import { AfterViewInit, Component, contentChildren, HostBinding, input, model } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-avatar',\n imports: [],\n templateUrl: './avatar.component.html',\n})\nexport class StrataAvatarComponent implements AfterViewInit {\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n text = input<string | null>(null);\n\n size = model<AvatarSize>('md');\n\n @HostBinding('class')\n get elementClasses() {\n return [this.size()];\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.iconComponents().forEach((icon) => {\n icon.size.set(this.size());\n });\n });\n }\n}\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';\n","@if (text() !== null) {\n <span>{{ text() }}</span>\n}\n<ng-content></ng-content>\n","import { AfterViewInit, Component, contentChildren, ElementRef, HostBinding, input } from '@angular/core';\nimport { AvatarSize, StrataAvatarComponent } from '../avatar/avatar.component';\n\n@Component({\n selector: 'st-avatar-stack',\n imports: [],\n templateUrl: './avatar-stack.component.html',\n})\nexport class StrataAvatarStackComponent implements AfterViewInit {\n avatarRefs = contentChildren(StrataAvatarComponent, {\n descendants: true,\n read: ElementRef,\n });\n\n size = input<AvatarSize>('md');\n\n spacing = input<'loose' | 'mid' | 'tight'>('mid');\n\n firstOnFront = input<boolean>(false);\n\n @HostBinding('class.xs')\n get xsClass(): boolean {\n return this.size() === 'xs';\n }\n\n @HostBinding('class.sm')\n get smClass(): boolean {\n return this.size() === 'sm';\n }\n\n @HostBinding('class.md')\n get mdClass(): boolean {\n return this.size() === 'md';\n }\n\n @HostBinding('class.lg')\n get lgClass(): boolean {\n return this.size() === 'lg';\n }\n\n @HostBinding('class.first-on-front')\n get firstOnFrontClass(): boolean {\n return this.firstOnFront();\n }\n\n @HostBinding('class.loose')\n get looseClass(): boolean {\n return this.spacing() === 'loose';\n }\n\n @HostBinding('class.mid')\n get midClass(): boolean {\n return this.spacing() === 'mid';\n }\n\n @HostBinding('class.tight')\n get tightClass(): boolean {\n return this.spacing() === 'tight';\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.avatarRefs().forEach((ref, index) => {\n if (this.firstOnFront()) {\n ref.nativeElement.style.setProperty('--z', (this.avatarRefs().length - index).toString());\n }\n });\n }, 1);\n }\n}\n","<ng-content></ng-content>\n","import { Component, inject, input, Renderer2 } from '@angular/core';\n\n@Component({\n selector: 'st-button-group',\n imports: [],\n templateUrl: './button-group.component.html',\n})\nexport class StrataButtonGroupComponent {\n renderer = inject(Renderer2);\n\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 { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'input[stInput], textarea[stInput]',\n})\nexport class StrataNativeInputRefDirective {\n el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n\n}\n","import {\n AfterViewInit,\n Component,\n contentChild,\n contentChildren,\n effect,\n signal,\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataNativeInputRefDirective } from '../../directives/native-input-ref.directive';\n\n@Component({\n selector: 'st-input-field',\n imports: [],\n templateUrl: './input-field.component.html',\n})\nexport class StrataInputFieldComponent implements AfterViewInit {\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n inputField = contentChild(StrataNativeInputRefDirective, {\n descendants: true,\n });\n\n private pendingFocus = signal(false);\n\n constructor() {\n effect(() => {\n const input = this.inputField();\n\n if (input && this.pendingFocus()) {\n input.el.nativeElement.focus();\n this.pendingFocus.set(false);\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.iconComponents().forEach((icon) => icon.size.set('sm')), 1);\n }\n\n focus(): void {\n this.pendingFocus.set(true);\n }\n\n blur(): void {\n this.inputField()?.el.nativeElement.blur();\n }\n\n get nativeInput(): HTMLInputElement | undefined {\n return this.inputField()?.el.nativeElement;\n }\n}\n","<ng-content select=\"label\"></ng-content>\n<div class=\"st-input-wrapper\">\n <div class=\"affix\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n <ng-content select=\"input,textarea\"></ng-content>\n <div class=\"affix\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n</div>\n","import { 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 { Component, input, model, output, signal, viewChild, contentChildren, contentChild, TemplateRef, effect, DestroyRef, inject, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataInputFieldComponent } from '../../../input-field/components/input-field/input-field.component';\nimport { StrataNativeInputRefDirective } from '../../../input-field/directives/native-input-ref.directive';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataSelectItemComponent } from '../select-item/select-item.component';\nimport { StrataSelectTriggerDirective } from '../../directives/select-trigger/select-trigger.directive';\n\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})\nexport class StrataSingleSelectComponent {\n open = signal(false);\n\n placeholder = input<string>('Select');\n\n placement = input<Placement>('bottom-start');\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?: MouseEvent): void {\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 this.selected.set(item.value());\n this.itemSelected.emit(item.value());\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\" [id]=\"name()\" #singleSelectInput (click)=\"toggle($event)\" [attr.data-open]=\"open()\"\n tabindex=\"0\" [stOverlay]=\"selector\" [overlayOpen]=\"open()\" [overlayPlacement]=\"placement()\">\n @if (selectedItem()) {\n @if (triggerTemplate()) {\n <ng-container *ngTemplateOutlet=\"triggerTemplate()!\"></ng-container>\n } @else {\n {{ selectedItem()!.text() }}\n }\n } @else {\n <span class=\"placeholder-text\">{{ placeholder() }}</span>\n }\n\n <st-icon name=\"expand-up-down\"></st-icon>\n</div>\n\n<ng-template #selector>\n <div class=\"single-select-selector\" #singleSelectSelector [class.full-width]=\"fullWidth()\">\n @if (searchable()) {\n <st-input-field>\n <input stInput #searchField type=\"text\" [value]=\"searchQuery() || ''\" (input)=\"searchQuery.set($any($event.target).value); onSearchChange(searchQuery())\" [placeholder]=\"searchPlaceholder()\" />\n <button stButton variant=\"ghost\" [class.visible]=\"searchQuery() !== undefined && searchQuery()!.length > 0\" suffix\n size=\"sm\" (click)=\"searchQuery.set(undefined); onSearchChange(undefined)\">\n x\n </button>\n </st-input-field>\n }\n <ng-content select=\"st-select-item\"></ng-content>\n </div>\n</ng-template>","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 { 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","import { Component, computed, inject, input } from '@angular/core';\nimport { 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);\n\n /**\n * The sequence of keys to display.\n * Can be an array like `['⌘', 'K']` or a string combo like `'meta+k'`.\n */\n keys = input<string | string[]>([]);\n\n resolvedKeys = computed(() => {\n const rawKeys = this.keys();\n const labels = this.config.shortcutLabels;\n\n const parseKey = (part: string) => {\n const p = part.trim().toLowerCase();\n if (p === 'meta') return labels?.meta || '⌘';\n if (p === 'ctrl') return labels?.ctrl || 'Ctrl';\n if (p === 'shift') return labels?.shift || 'Shift';\n if (p === 'alt') return labels?.alt || '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 { Component, HostBinding, HostListener, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-radio',\n imports: [],\n templateUrl: './radio.component.html',\n})\nexport class StrataRadioComponent {\n value = input.required<string>();\n\n label = input<string | undefined>(undefined);\n\n checked = model(false);\n\n disabled = input(false);\n\n select = output<void>();\n\n @HostBinding('attr.data-checked')\n get isChecked(): boolean {\n return this.checked();\n }\n\n @HostBinding('attr.data-disabled')\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n event.stopImmediatePropagation();\n this.select.emit();\n this.checked.set(true);\n }\n}\n","<input type=\"radio\" [checked]=\"checked()\" [disabled]=\"disabled()\" />\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 {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Directive({\n selector: '[stAutoResize]',\n})\nexport class StrataAutoResizeDirective implements AfterViewInit, OnChanges {\n minimumRows = input(1);\n maximumRows = input<number>();\n\n private lineHeight = 0;\n\n private element = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n @HostListener('input')\n onInput() {\n this.resize();\n }\n\n @HostListener('window:resize')\n onWindowResize() {\n this.resize();\n }\n\n\n ngAfterViewInit(): void {\n this.calculateLineHeight();\n this.resize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['minRows'] || changes['maxRows']) {\n this.resize();\n }\n }\n\n private calculateLineHeight() {\n const textarea = this.element.nativeElement;\n\n const originalRows = textarea.rows;\n const originalValue = textarea.value;\n\n textarea.rows = 1;\n textarea.value = '';\n\n // Force layout\n this.lineHeight = textarea.scrollHeight;\n\n // Restore\n textarea.rows = originalRows;\n textarea.value = originalValue;\n }\n\n private resize() {\n const textarea = this.element.nativeElement;\n\n textarea.style.height = 'auto';\n\n const scrollHeight = textarea.scrollHeight;\n\n const minHeight = this.minimumRows() * this.lineHeight;\n const maxHeight = this.maximumRows() ? this.maximumRows()! * this.lineHeight : Infinity;\n\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);\n\n textarea.style.height = `${newHeight}px`;\n textarea.style.overflowY = scrollHeight > maxHeight ? 'auto' : 'hidden';\n }\n}\n","import { Component, computed, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-pagination',\n imports: [],\n templateUrl: './pagination.component.html',\n})\nexport class StrataPaginationComponent {\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 [disabled]=\"currentPage() === 1\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n (click)=\"changePage(currentPage() - 1)\"\n>\n Previous\n</button>\n@for (page of pageButtons(); track page) {\n <button\n [class.selected]=\"page.page === currentPage()\"\n [class.clickable]=\"page.clickable\"\n (click)=\"page.page ? changePage(page.page) : null\"\n >\n {{ page.text }}\n </button>\n}\n<button\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"changePage(currentPage() + 1)\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n>\n Next\n</button>\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 { 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 { Component, contentChildren, effect, model } from '@angular/core';\nimport { StrataRadioComponent } from '../radio/radio.component';\n\n@Component({\n selector: 'st-radio-group',\n imports: [],\n template: `<ng-content></ng-content>`,\n})\nexport class StrataRadioGroupComponent {\n value = model<string>('');\n\n radios = contentChildren(StrataRadioComponent, { descendants: true });\n\n constructor() {\n // Sync group value -> children checked state\n effect(() => {\n const currentValue = this.value();\n this.radios().forEach((radio) => {\n radio.checked.set(radio.value() === currentValue);\n });\n });\n\n // Handle child selection -> update group value\n effect((onCleanup) => {\n const radios = this.radios();\n const subs = radios.map((radio) =>\n radio.select.subscribe(() => {\n this.value.set(radio.value());\n })\n );\n\n onCleanup(() => {\n subs.forEach((s) => s.unsubscribe());\n });\n });\n }\n}\n","import { Component, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-segmented-control-item',\n imports: [],\n templateUrl: './segmented-control-item.component.html',\n styleUrl: './segmented-control-item.component.scss',\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class StrataSegmentedControlItemComponent {\n text = input.required<string>();\n\n selected = model(false);\n\n disabled = input(false);\n\n selectionChanged = output();\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.disabled() ? null : 0;\n }\n\n @HostBinding('attr.disabled')\n get disabledAttribute(): boolean | null {\n return this.disabled() ? true : null;\n }\n\n onClick(): void {\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n}\n","{{ text() }}\n","import { \n AfterViewInit, \n Component, \n computed, \n contentChildren, \n ElementRef, \n effect, \n signal, \n input, \n booleanAttribute, \n inject, \n DestroyRef \n} from '@angular/core';\nimport { StrataSegmentedControlItemComponent } from '../segmented-control-item/segmented-control-item.component';\n\n@Component({\n selector: 'st-segmented-control',\n imports: [],\n templateUrl: './segmented-control.component.html',\n host: {\n '[class.st-segmented-control-full-width]': 'fullWidth()',\n },\n})\nexport class StrataSegmentedControlComponent implements AfterViewInit {\n private elementRef = inject(ElementRef);\n private destroyRef = inject(DestroyRef);\n\n fullWidth = input(false, { transform: booleanAttribute });\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 ngAfterViewInit(): void {\n if (this.segmentItems().length === 0) {\n return;\n }\n\n this.updateDimensions();\n\n const initiallySelected = 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);\n } else {\n this.selectItem(initiallySelected!);\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 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 // Also update dimensions when items change\n this.updateDimensions();\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n selectItem(selectedItem: StrataSegmentedControlItemComponent): void {\n this.selectedItem.set(selectedItem);\n this.selectedIndex.set(this.segmentItems().indexOf(selectedItem));\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","<ng-content select=\"st-segmented-control-item\"></ng-content>\n<div class=\"selection-item\" id=\"selection-indicator\" \n [style.left]=\"this.offset() + 'px'\"\n [style.top]=\"this.indicatorTop() + 'px'\"\n [style.width]=\"this.indicatorWidth() + 'px'\"\n [style.height]=\"this.indicatorHeight() + 'px'\">\n {{ this.selectedItem()?.text() }}\n</div>\n","import { Component } from '@angular/core';\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 { Directive, ElementRef, HostBinding, effect, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[stSidemenuItem]'\n})\nexport class StrataSidemenuItemDirective {\n active = input<boolean>(false);\n\n private readonly elementRef = inject(ElementRef);\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\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, 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],\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\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 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 // Wait a tick for RouterLinkActive to update its isActive status\n setTimeout(() => {\n this.checkActiveState();\n });\n });\n }\n }\n\n toggle() {\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","<button stSidemenuItem type=\"button\" [active]=\"hasActiveChild()\" (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<div class=\"st-sidemenu-item-group-content\" [hidden]=\"!expanded()\">\n <ng-content></ng-content>\n</div>\n","import { AfterViewInit, Component, computed, ElementRef, input, model, OnDestroy, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'st-slider',\n imports: [FormsModule],\n templateUrl: './slider.component.html',\n})\nexport class StrataSliderComponent implements AfterViewInit, OnDestroy {\n wrapper = viewChild.required<ElementRef<HTMLDivElement>>('wrapper');\n private resizeObserver!: ResizeObserver;\n\n value = model<number>();\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' : (this.step() as number),\n );\n\n steps = computed(() => {\n const step = this.computedStep();\n if (step === 'any' || step === undefined) {\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 ngAfterViewInit(): void {\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\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 = Math.round(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","<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 [min]=\"minimum()\"\n [max]=\"maximum()\"\n [step]=\"computedStep()\"\n />\n</div>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-spinner',\n imports: [],\n templateUrl: './spinner.component.html',\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 { Component, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-tab-item',\n imports: [],\n templateUrl: './tab-item.component.html',\n host: {\n 'role': 'tab',\n '(click)': 'onClick()',\n },\n})\nexport class StrataTabItemComponent {\n /**\n * The text label for the tab.\n * Can also be provided via content projection.\n */\n text = input<string>();\n\n /**\n * Whether the tab is currently selected.\n */\n selected = model(false);\n\n /**\n * Whether the tab is disabled.\n */\n disabled = input(false);\n\n /**\n * Emitted when the tab is clicked.\n */\n selectionChanged = output<void>();\n\n @HostBinding('attr.aria-selected')\n get isSelected(): boolean {\n return this.selected();\n }\n\n @HostBinding('attr.aria-disabled')\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.disabled() ? null : 0;\n }\n\n @HostBinding('class.active')\n get activeClass(): boolean {\n return this.selected();\n }\n\n @HostBinding('class.disabled')\n get disabledClass(): boolean {\n return this.disabled();\n }\n\n onClick(): void {\n if (this.disabled()) {\n return;\n }\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n}\n","@if (text()) {\n {{ text() }}\n} @else {\n <ng-content></ng-content>\n}\n","import {\n AfterViewInit,\n Component,\n contentChildren,\n effect,\n ElementRef,\n signal,\n 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 { 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 { 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\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 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 } 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 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 constructor(private modalService: ModalService) {}\n\n onAffirmation(): void {\n this.modalService.closeCurrentModal(true);\n }\n\n onCancel(): void {\n this.modalService.closeCurrentModal(false);\n }\n}\n","<div class=\"alert-content\">\n @if (icon() !== undefined) {\n <st-avatar size=\"lg\" [stTheme]=\"theme()\">\n <st-icon [name]=\"computedIcon()\"></st-icon>\n </st-avatar>\n }\n\n <p class=\"alert-title\">{{ title() }}</p>\n @if (message()) {\n <p class=\"alert-message\">{{ message() }}</p>\n }\n</div>\n<st-button-group justification=\"expand\">\n @if (cancelButton()) {\n <button stButton (click)=\"onCancel()\">{{ cancelButton() }}</button>\n }\n <button stButton [stTheme]=\"theme()\" variant=\"primary\" (click)=\"onAffirmation()\">{{ affirmativeButton() }}</button>\n</st-button-group>\n","import { Type } from '@angular/core';\nimport { Theme } from '../theming/directives/theme.directive';\n\nexport interface ModalConfiguration {\n title?: string;\n component: Type<unknown>;\n onModalClosed?: (value?: unknown) => void;\n hideCloseButton?: boolean;\n disableBackdropClosure?: boolean;\n size?: ModalSize;\n 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';\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,\n Component,\n ComponentRef,\n HostBinding,\n inject,\n Injector,\n input,\n model,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ModalConfiguration, ModalSize, 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 AfterViewInit {\n private modalService = inject(ModalService);\n private injector = inject(Injector);\n\n modalContents = viewChild.required<string, ViewContainerRef>('modalBody', {\n read: ViewContainerRef,\n });\n\n configuration = input.required<ModalConfiguration>();\n\n size = model<ModalSize | undefined>('md');\n\n @HostBinding('class')\n get sizeClass(): string {\n return `st-modal-size-${this.size()}`;\n }\n\n ngAfterViewInit(): void {\n if (this.size() === undefined) {\n this.size.set('md');\n }\n\n const modalRef: StrataModalRef = {\n close: (value?: unknown) => this.modalService.close(this.configuration(), value),\n };\n\n const customInjector = Injector.create({\n providers: [{ provide: StrataModalRef, useValue: modalRef }],\n parent: this.injector,\n });\n\n const injectedComponent = this.modalContents().createComponent(this.configuration().component, {\n injector: customInjector,\n });\n\n if (this.configuration().inputs) {\n this.setInputsOnInjectedComponent(injectedComponent, this.configuration().inputs!);\n }\n }\n\n private setInputsOnInjectedComponent(\n injectedComponent: ComponentRef<unknown>,\n inputs: Record<string, unknown>,\n ): void {\n Object.keys(inputs).forEach((key) => {\n injectedComponent.setInput(key, inputs[key]);\n });\n }\n\n onCardClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","@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 } 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 constructor(public modalService: ModalService) {}\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\"> </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 { Theme } from '../theming/directives/theme.directive';\n\nexport interface NotificationConfiguration {\n icon?: string;\n message: string;\n theme?: Theme;\n duration?: number;\n}\n\nexport type NotificationsWithIds = NotificationConfiguration & {\n id: string;\n};\n\nexport const DEFAULT_THEME: Theme = 'info';\n\nexport const DEFAULT_DURATION = 3000;\n","import { Injectable, signal } from '@angular/core';\nimport {\n DEFAULT_DURATION,\n DEFAULT_THEME,\n NotificationConfiguration,\n NotificationsWithIds,\n} from '../notification.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n public notificationStack = signal<NotificationsWithIds[]>([]);\n\n public showNotification(config: NotificationConfiguration): void {\n const newNotificationId = crypto.randomUUID();\n const duration = config.duration ?? DEFAULT_DURATION;\n const currentStack = this.notificationStack();\n this.notificationStack.set([\n ...currentStack,\n {\n id: newNotificationId,\n message: config.message,\n duration: duration,\n theme: config.theme ?? DEFAULT_THEME,\n icon: config.icon,\n }\n ]);\n this.hideNotification(newNotificationId, duration);\n }\n\n private hideNotification(notificationId: string, duration: number): void {\n setTimeout(() => {\n const currentStack = this.notificationStack().filter(\n (notification) => notification.id !== notificationId,\n );\n this.notificationStack.set(currentStack);\n }, duration);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-notification',\n imports: [StrataIconComponent],\n templateUrl: './notification.component.html',\n})\nexport class StrataNotificationComponent {\n @Input()\n icon?: string;\n\n @Input()\n message!: string;\n}\n","@if (icon) {\n <st-icon [name]=\"icon\"></st-icon>\n}\n{{ message }}\n","import { Component, inject } from '@angular/core';\nimport { NotificationService } from '../../services/notification.service';\nimport { StrataNotificationComponent } from '../notification/notification.component';\n\nimport { StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-notification-container',\n imports: [StrataNotificationComponent, StrataThemeDirective],\n templateUrl: './notification-container.component.html',\n})\nexport class StrataNotificationContainerComponent {\n notificationService = inject(NotificationService);\n\n notifications = this.notificationService.notificationStack;\n\n}\n","@for (notification of notifications(); track notification.id) {\n <st-notification [icon]=\"notification.icon\" [message]=\"notification.message\" [stTheme]=\"notification.theme ?? 'info'\">\n </st-notification>\n}\n","import { CommonModule, formatNumber, getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Component, computed, inject, input, LOCALE_ID } from '@angular/core';\n\n@Component({\n selector: 'st-number-display',\n imports: [CommonModule],\n templateUrl: './number-display.component.html',\n})\nexport class StrataNumberDisplayComponent {\n private readonly locale = inject(LOCALE_ID);\n\n value = input.required<number>();\n\n decimals = input<number>(2);\n\n private digitsInfo = computed(() => {\n return `1.${this.decimals()}-${this.decimals()}`;\n });\n\n private formattedNumber = computed(() => formatNumber(this.value(), this.locale, this.digitsInfo()));\n\n readonly separatedDigits = computed(() => {\n const parts = this.formattedNumber().split(this.decimalPoint());\n return {\n integer: parts[0],\n decimals: parts[1] ?? undefined,\n } as { integer: string; decimals?: string };\n });\n\n changedValue = input<boolean>(false);\n\n showPlus = input<boolean>(false);\n\n deemphasizeDecimals = input<boolean>(true);\n\n readonly decimalPoint = computed(() => getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal));\n}\n","<p\n [ngClass]=\"{\n positive: changedValue() && value() > 0,\n negative: changedValue() && value() < 0,\n }\"\n>\n @if (showPlus() && this.value() > 0) {\n +\n }\n <span class=\"integer-value\">{{ separatedDigits().integer }}</span>\n @if (separatedDigits().decimals) {\n <span\n class=\"decimal-number\"\n [ngClass]=\"{ deemphasize: deemphasizeDecimals }\"\n >{{ decimalPoint() }}{{ separatedDigits().decimals }}</span\n >\n }\n</p>\n","import { Component } 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, 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>\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","/*\n * Public API Surface of ngx-strata\n */\n\nexport * from './lib/directives/activatable.directive';\nexport * from './lib/directives/tooltip.directive';\nexport * from './lib/services/darkmode/darkmode.service';\nexport * from './lib/services/hotkey/hotkey.service';\n\n// App\nexport * from './lib/app/provider/provide-icons';\nexport * from './lib/app/provider/provide-strata';\n\n// Action Menu\nexport * from './lib/features/action-menu/components/action-menu-item/action-menu-item.component';\nexport * from './lib/features/action-menu/components/action-menu/action-menu.component';\n\n// Alert\nexport * from './lib/features/alert/components/alert/alert.component';\n\n// Breadcrumb\nexport * from './lib/features/breadcrumb';\n\n// Accordion\nexport * from './lib/features/accordion/components/accordion-group/accordion-group.component';\nexport * from './lib/features/accordion/components/accordion-item/accordion-item.component';\n\n// Avatar\nexport * from './lib/features/avatar/components/avatar-stack/avatar-stack.component';\nexport * from './lib/features/avatar/components/avatar/avatar.component';\n\n// Button\nexport * from './lib/features/button/components/button-group/button-group.component';\nexport * from './lib/features/button/directives/button/button.directive';\n\n// Card\nexport * from './lib/features/card/components/card/card.component';\n\n// Checkbox\nexport * from './lib/features/checkbox/components/checkbox/checkbox.component';\n\n// Single Select\nexport * from './lib/features/single-select';\n\n// Divider\nexport * from './lib/features/divider/components/divider/divider.component';\n\n// Tag\nexport * from './lib/features/tag/components/tag/tag.component';\n\n// Kbd\nexport * from './lib/features/kbd/components/kbd/kbd.component';\n\n// Icon\nexport * from './lib/features/icon/components/icon/icon.component';\nexport * from './lib/features/icon/loader/icon-loader.interface';\nexport * from './lib/features/icon/loader/icon-registry.interface';\nexport * from './lib/features/icon/models/icon.model';\nexport * from './lib/features/icon/services/http-icon-loader/http-icon-loader.service';\nexport * from './lib/features/icon/services/icon-registry/icon-registry.service';\n\n// Item\nexport * from './lib/features/item/components/item-list/item-list.component';\nexport * from './lib/features/item/components/item/item.component';\n\n// Input field\nexport * from './lib/features/input-field/components/input-field/input-field.component';\nexport * from './lib/features/input-field/directives/auto-resize.directive';\nexport * from './lib/features/input-field/directives/native-input-ref.directive';\n\n// Overlay\nexport * from './lib/features/overlay/directives/overlay.directive';\n\n// Pagination\nexport * from './lib/features/pagination/components/pagination/pagination.component';\n\n// Pipes\nexport * from './lib/pipes/capitalize.pipe';\n\n// Progress\nexport * from './lib/features/progress/components/progress-linear/progress-linear.component';\nexport * from './lib/features/progress/components/progress-radial/progress-radial.component';\n\n// Radio\nexport * from './lib/features/radio/components/radio/radio.component';\nexport * from './lib/features/radio/components/radio-group/radio-group.component';\n\n// Segmented Control\nexport * from './lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component';\nexport * from './lib/features/segmented-control/components/segmented-control/segmented-control.component';\n\n// Sidemenu\nexport * from './lib/features/sidemenu';\n\n// Slider\nexport * from './lib/features/slider/components/slider/slider.component';\n\n// Spinner\nexport * from './lib/features/spinner/components/spinner/spinner.component';\n\n// Tabs\nexport * from './lib/features/tabs/components/tabs/tabs.component';\nexport * from './lib/features/tabs/components/tab-item/tab-item.component';\n\n// Text stack\nexport * from './lib/features/text-stack/components/text-stack/text-stack.component';\n\n// Toggle\nexport * from './lib/features/toggle/components/toggle/toggle.component';\n\n// Modal Feature\nexport * from './lib/features/modal/components/alert-content/alert-content.component';\nexport * from './lib/features/modal/components/modal-container/modal-container.component';\nexport * from './lib/features/modal/components/modal-header/modal-header.component';\nexport * from './lib/features/modal/components/modal/modal.component';\nexport * from './lib/features/modal/modal.model';\nexport * from './lib/features/modal/services/modal.service';\n\n// Notification Feature\nexport * from './lib/features/notification/components/notification-container/notification-container.component';\nexport * from './lib/features/notification/components/notification/notification.component';\nexport * from './lib/features/notification/notification.model';\nexport * from './lib/features/notification/services/notification.service';\n\n// Number Display\nexport * from './lib/features/number-display/components/number-display/number-display.component';\n\n// Theming\nexport * from './lib/features/theming/directives/theme.directive';\n\n// Shell Feature\nexport * from './lib/features/shell';\n\n// Message State Feature\nexport * from './lib/features/message-state';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.IconLoader","i1","i1.ModalService","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-strata.mjs","sources":["../../../projects/ngx-strata/src/lib/directives/activatable.directive.ts","../../../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/app/provider/provide-strata.ts","../../../projects/ngx-strata/src/lib/directives/tooltip.directive.ts","../../../projects/ngx-strata/src/lib/services/hotkey/hotkey.service.ts","../../../projects/ngx-strata/src/lib/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/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/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/avatar/components/avatar/avatar.component.ts","../../../projects/ngx-strata/src/lib/features/avatar/components/avatar/avatar.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/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/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/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/divider/components/divider/divider.component.ts","../../../projects/ngx-strata/src/lib/features/divider/components/divider/divider.component.html","../../../projects/ngx-strata/src/lib/features/tag/components/tag/tag.component.ts","../../../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/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/input-field/directives/auto-resize.directive.ts","../../../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/pipes/capitalize.pipe.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-linear/progress-linear.component.html","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.ts","../../../projects/ngx-strata/src/lib/features/progress/components/progress-radial/progress-radial.component.html","../../../projects/ngx-strata/src/lib/features/radio/components/radio-group/radio-group.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component.html","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.ts","../../../projects/ngx-strata/src/lib/features/segmented-control/components/segmented-control/segmented-control.component.html","../../../projects/ngx-strata/src/lib/features/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/slider/components/slider/slider.component.ts","../../../projects/ngx-strata/src/lib/features/slider/components/slider/slider.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/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/modal/services/modal.service.ts","../../../projects/ngx-strata/src/lib/features/theming/directives/theme.directive.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/alert-content/alert-content.component.html","../../../projects/ngx-strata/src/lib/features/modal/modal.model.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-header/modal-header.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal/modal.component.html","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.ts","../../../projects/ngx-strata/src/lib/features/modal/components/modal-container/modal-container.component.html","../../../projects/ngx-strata/src/lib/features/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/shell/components/shell/shell.component.ts","../../../projects/ngx-strata/src/lib/features/shell/components/shell/shell.component.html","../../../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/public-api.ts","../../../projects/ngx-strata/src/ngx-strata.ts"],"sourcesContent":["import { Directive, input, output, computed, model, inject, ElementRef } from '@angular/core';\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\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 if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this.activated.emit(event);\n this._elementRef.nativeElement.click();\n }\n }\n}\n","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 Zesto. 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","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","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';\n\nconst DEFAULT_CONFIG: StrataConfig = {\n includeBaseIcons: true,\n tooltipDelayMs: 500,\n crossPlatformHotkeys: true,\n shortcutLabels: {\n meta: '⌘',\n ctrl: 'Ctrl',\n shift: 'Shift',\n alt: 'Alt'\n },\n overlayViewportBuffer: 16\n};\n\nexport function provideStrata(\n config: Partial<StrataConfig> = {},\n): (Provider | EnvironmentProviders)[] {\n const mergedConfig = {\n ...DEFAULT_CONFIG,\n ...config,\n shortcutLabels: { ...DEFAULT_CONFIG.shortcutLabels, ...config.shortcutLabels }\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 /** When true (default), registering a 'meta+x' hotkey also fires on 'ctrl+x' and vice-versa. */\n crossPlatformHotkeys: boolean;\n /** Visual labels for hotkey modifiers */\n shortcutLabels?: {\n meta?: string;\n ctrl?: string;\n shift?: string;\n alt?: string;\n };\n overlayViewportBuffer?: number;\n}\n\nexport const STRATA_CONFIG = new InjectionToken<StrataConfig>('STRATA_CONFIG');\n","import { AfterContentInit, DOCUMENT, Directive, ElementRef, Input, 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 @Input() tooltipEnabled = true;\n @Input() tooltipPlacement: TooltipPlacement = 'top';\n @Input() tooltipAlwaysShow = false;\n\n private tooltipContentElement!: HTMLElement;\n private arrowElement!: HTMLElement;\n private eventListeners!: (() => void)[];\n private autoUpdateCleanupFunction?: () => void;\n\n private config = inject(STRATA_CONFIG);\n\n ngOnInit(): void {\n if (!this.stSimpleTooltip() || this.stSimpleTooltip() === '' || !this.tooltipEnabled) {\n return;\n }\n\n this.tooltipContentElement = this.document.createElement('div');\n this.tooltipContentElement.classList.add('st-tooltip');\n const textElement = this.document.createElement('p');\n textElement.innerText = this.stSimpleTooltip();\n this.tooltipContentElement.appendChild(textElement);\n this.arrowElement = this.document.createElement('div');\n this.arrowElement.id = 'st-tooltip-arrow';\n this.arrowElement.classList.add('st-tooltip-arrow-' + this.tooltipPlacement);\n this.tooltipContentElement.appendChild(this.arrowElement);\n\n this.renderer.appendChild(this.element.nativeElement, this.tooltipContentElement);\n\n if (!this.tooltipAlwaysShow) {\n this.eventListeners = [\n this.renderer.listen(this.element.nativeElement, 'mouseenter', () => {\n this.show();\n }),\n this.renderer.listen(this.element.nativeElement, 'mouseleave', () => this.hide()),\n ];\n } else {\n this.show();\n }\n }\n\n ngAfterContentInit(): void {\n if (!this.shouldRender()) {\n return;\n }\n\n this.doPosition();\n }\n\n doPosition(): void {\n computePosition(this.element.nativeElement, this.tooltipContentElement, {\n placement: this.tooltipPlacement,\n middleware: [offset(6), arrow({ element: this.arrowElement })]\n}).then(({ x, y, middlewareData }) => {\n Object.assign(this.tooltipContentElement.style, {\n left: `${x}px`,\n top: `${y}px`\n});\n\n if (middlewareData.arrow) {\n const { x, y } = middlewareData.arrow;\n\n Object.assign(this.arrowElement.style, {\n left: x != null ? `${x}px` : '',\n top: y != null ? `${y}px` : ''\n});\n }\n });\n }\n\n ngOnDestroy() {\n this.tooltipContentElement.remove();\n if (this.eventListeners?.length) {\n this.eventListeners.forEach((removeEventListenerFn) => removeEventListenerFn());\n }\n if (this.autoUpdateCleanupFunction) {\n this.autoUpdateCleanupFunction();\n }\n }\n\n private shouldRender(): boolean {\n return !!this.stSimpleTooltip() && this.stSimpleTooltip() !== '' && this.tooltipEnabled;\n }\n\n showTimeoutCancel?: ReturnType<typeof setTimeout>;\n\n private show(): void {\n this.showTimeoutCancel = setTimeout(() => {\n this.tooltipContentElement?.setAttribute('data-show', '');\n this.tooltipContentElement?.setAttribute('aria-hidden', 'false');\n this.autoUpdateCleanupFunction = autoUpdate(this.element.nativeElement, this.tooltipContentElement, () =>\n this.doPosition(),\n );\n }, this.config.tooltipDelayMs);\n }\n\n private hide(): void {\n if (this.showTimeoutCancel) {\n clearTimeout(this.showTimeoutCancel);\n this.showTimeoutCancel = undefined;\n }\n this.tooltipContentElement?.removeAttribute('data-show');\n this.tooltipContentElement?.setAttribute('aria-hidden', 'true');\n if (this.autoUpdateCleanupFunction) {\n this.autoUpdateCleanupFunction();\n }\n }\n}\n\nexport type TooltipPlacement = Exclude<Placement, 'left-start' | 'left-end' | 'right-start' | 'right-end'>;\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { STRATA_CONFIG } from '../../app/provider/provide-strata';\n\nexport interface HotkeyOptions {\n /** If true, the hotkey fires even when focus is inside an input, textarea, or contenteditable. Defaults to false. */\n allowInInput?: boolean;\n}\n\ninterface HotkeyRegistration {\n combos: ParsedCombo[];\n handler: () => void;\n options: Required<HotkeyOptions>;\n}\n\ninterface ParsedCombo {\n key: string;\n meta: boolean;\n ctrl: boolean;\n shift: boolean;\n alt: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class HotkeyService {\n private readonly config = inject(STRATA_CONFIG);\n private readonly destroyRef = inject(DestroyRef);\n private readonly registrations = new Map<symbol, HotkeyRegistration>();\n\n constructor() {\n fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.handleKeydown(event));\n }\n\n /**\n * Register a keyboard shortcut.\n *\n * @param combo - A combo string like `'meta+k'`, `'ctrl+shift+p'`, `'shift+?'`.\n * Use `'meta'` for ⌘ on Mac / Win key on Windows. When `crossPlatformHotkeys` is\n * enabled in StrataConfig (default), registering `meta+k` also fires on `ctrl+k`\n * and vice-versa.\n * @param handler - Callback invoked when the combo is matched.\n * @param options - Optional configuration per registration.\n * @returns A teardown function — call it to unregister the hotkey.\n */\n register(combo: string, handler: () => void, options: HotkeyOptions = {}): () => void {\n const id = Symbol();\n const parsed = this.parseCombo(combo);\n const combos = this.config.crossPlatformHotkeys ? this.expandCrossPlatform(parsed) : [parsed];\n\n this.registrations.set(id, {\n combos,\n handler,\n options: { allowInInput: false, ...options }\n});\n\n return () => this.registrations.delete(id);\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n for (const registration of this.registrations.values()) {\n if (!registration.options.allowInInput && this.isInputFocused(event)) {\n continue;\n }\n\n if (registration.combos.some((combo) => this.matchesCombo(event, combo))) {\n event.preventDefault();\n registration.handler();\n }\n }\n }\n\n private matchesCombo(event: KeyboardEvent, combo: ParsedCombo): boolean {\n return (\n event.key.toLowerCase() === combo.key &&\n event.metaKey === combo.meta &&\n event.ctrlKey === combo.ctrl &&\n event.shiftKey === combo.shift &&\n event.altKey === combo.alt\n );\n }\n\n private parseCombo(combo: string): ParsedCombo {\n const parts = combo.toLowerCase().split('+');\n const key = parts[parts.length - 1];\n return {\n key,\n meta: parts.includes('meta'),\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 { Component, HostListener, input, model } from '@angular/core';\n\n@Component({\n selector: 'st-checkbox',\n imports: [],\n templateUrl: './checkbox.component.html'\n})\nexport class StrataCheckboxComponent {\n value = model<boolean | undefined>(false);\n\n label = input<string | undefined>(undefined);\n\n name = input<string | undefined>(undefined);\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n event.stopImmediatePropagation();\n this.value.set(!this.value());\n }\n}\n","<input type=\"checkbox\" [checked]=\"value()\" />\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 >\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]=\"name()\"> {{ label() }}</label>\n}\n","import { Component, inject, input, model } from '@angular/core';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-toggle',\n imports: [],\n templateUrl: './toggle.component.html',\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]': 'disabled()',\n '[attr.data-checked]': 'checked()',\n '[attr.data-disabled]': 'disabled()',\n '[class.st-toggle-label-before]': \"labelPosition() === 'before'\",\n '[class.st-toggle-label-after]': \"labelPosition() === 'after'\"\n}\n})\nexport class StrataToggleComponent {\n private _activatable = inject(StrataActivatableDirective);\n\n checked = model<boolean>(false);\n label = input<string | undefined>(undefined);\n labelPosition = input<'before' | 'after'>('after');\n\n disabled = this._activatable.disabled;\n\n onCheckChanged(event?: Event) {\n if (this.disabled()) {\n return;\n }\n if (event) {\n event.stopPropagation();\n }\n this.checked.set(!this.checked());\n }\n}\n","<div class=\"st-toggle-track\">\n <div class=\"toggle-handle\"></div>\n</div>\n@if (label()) {\n <span class=\"st-toggle-label\">{{ label() }}</span>\n}\n<ng-content></ng-content>\n","import { StrataCheckboxComponent } from '../../../checkbox/components/checkbox/checkbox.component';\nimport { StrataToggleComponent } from '../../../toggle/components/toggle/toggle.component';\n\nimport { Component, contentChild, ElementRef, HostBinding, HostListener, inject, input, output } from '@angular/core';\n\n@Component({\n selector: 'st-action-menu-item',\n imports: [],\n templateUrl: './action-menu-item.component.html',\n styleUrl: './action-menu-item.component.scss'\n})\nexport class StrataActionMenuItemComponent {\n private checkbox = contentChild(StrataCheckboxComponent, { read: ElementRef });\n private toggle = contentChild(StrataToggleComponent, { read: ElementRef });\n\n closeMenuOnClick = input(true);\n\n active = input(false);\n\n @HostBinding('class.active')\n get isActive() {\n return this.active();\n }\n\n menuItemClicked = output<boolean>();\n\n elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('click', ['$event'])\n onHostClick(event: MouseEvent) {\n this.menuItemClicked.emit(this.closeMenuOnClick());\n event.stopPropagation();\n\n this.checkbox()?.nativeElement.click();\n this.toggle()?.nativeElement.click();\n }\n}\n","<span class=\"item-start\">\n <ng-content select=\"[area='start']\"></ng-content\n></span>\n<span class=\"item-default\"> <ng-content></ng-content></span>\n<span class=\"item-end\">\n <ng-content select=\"[area='end']\"></ng-content>\n</span>\n","import { AfterContentInit, Directive, ElementRef, HostBinding, inject, input, signal } from '@angular/core';\n\n@Directive({\n selector: '[stButton]'\n})\nexport class StrataButtonDirective implements AfterContentInit {\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\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 const nodes = this.host.nativeElement.childNodes;\n\n if (nodes === undefined || nodes.length == 0) {\n return;\n }\n\n if (nodes.length === 1 && this.nodeIsStIcon(nodes[0])) {\n this.iconOnly.set(true);\n return;\n }\n\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}\n})\nexport class StrataIconComponent {\n private iconRegistry = inject(IconRegistry);\n\n name = input<string>('question');\n\n size = model<IconSize>('md');\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 ngOnDestroy(): void {\n this.destroy();\n }\n}\n","import {\n Component, contentChild, contentChildren, ElementRef, inject, input, Renderer2, signal, viewChild, effect\n} from '@angular/core';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataCardComponent } from '../../../card/components/card/card.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataActionMenuItemComponent } from '../action-menu-item/action-menu-item.component';\n\n@Component({\n selector: 'st-action-menu',\n imports: [StrataCardComponent, StrataOverlayDirective, StrataIconComponent, StrataButtonDirective],\n templateUrl: './action-menu.component.html',\n styleUrl: './action-menu.component.scss'\n})\nexport class StrataActionMenuComponent {\n projectedButton = contentChild(StrataButtonDirective, {\n descendants: true,\n read: ElementRef\n});\n\n defaultButton = viewChild(StrataButtonDirective, {\n read: ElementRef\n});\n\n actionMenuItems = contentChildren(StrataActionMenuItemComponent);\n\n placement = input<Placement>('bottom-end');\n\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 const subs = this.actionMenuItems().map((item) =>\n item.menuItemClicked.subscribe((shouldClose) => {\n if (shouldClose) {\n this.menuOpen.set(false);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n}\n","<div [stOverlay]=\"menu\" [overlayOpen]=\"menuOpen()\" [overlayPlacement]=\"placement()\">\n <ng-content select=\"button[stButton]\"></ng-content>\n @if (!projectedButton()) {\n <button stButton><st-icon name=\"more\"></st-icon></button>\n }\n</div>\n\n<ng-template #menu>\n <st-card [padding]=\"false\" class=\"action-menu-card\"><ng-content select=\"st-action-menu-item\"></ng-content></st-card>\n</ng-template>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-text-stack',\n imports: [],\n templateUrl: './text-stack.component.html',\n styleUrl: './text-stack.component.scss'\n})\nexport class StrataTextStackComponent {\n overflow = input<TextStackOverflow>('truncate');\n\n @HostBinding('class')\n get cssClasses(): string[] {\n return [this.overflow()];\n }\n}\n\nexport type TextStackOverflow = 'truncate' | 'wrap';\n","<ng-content></ng-content>\n","import { Component, input, output } from '@angular/core';\nimport { StrataButtonDirective } from '../../../button/directives/button/button.directive';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataTextStackComponent } from '../../../text-stack/components/text-stack/text-stack.component';\n\n@Component({\n selector: 'st-alert',\n templateUrl: './alert.component.html',\n imports: [StrataIconComponent, StrataButtonDirective, StrataTextStackComponent]\n})\nexport class StrataAlertComponent {\n\n header = input<string | undefined>(undefined);\n message = input.required<string>();\n iconName = input<string | undefined>(undefined);\n dismissible = input<boolean>(false);\n\n dismiss = output<void>();\n}\n\n\n\n","<div class=\"st-alert-container\">\n @if (iconName()) {\n <div class=\"st-alert-icon\">\n <st-icon [name]=\"iconName()!\"></st-icon>\n </div>\n }\n\n <div class=\"st-alert-content\">\n <st-text-stack overflow=\"wrap\">\n @if (header()) {\n <p class=\"st-body-bold st-alert-header\">{{ header() }}</p>\n }\n <p class=\"st-alert-message\">{{ message() }}</p>\n </st-text-stack>\n </div>\n\n\n\n\n <div class=\"st-alert-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (dismissible()) {\n <button stButton variant=\"ghost\" size=\"sm\" class=\"st-alert-dismiss\" (click)=\"dismiss.emit()\"\n aria-label=\"Dismiss alert\">\n <st-icon name=\"close\"></st-icon>\n </button>\n }\n</div>","import { Component, input, output, signal } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataActivatableDirective } from '../../../../directives/activatable.directive';\n\n@Component({\n selector: 'st-breadcrumb-item',\n imports: [StrataIconComponent, StrataActivatableDirective],\n templateUrl: './breadcrumb-item.component.html',\n host: {\n 'class': 'st-breadcrumb-item'\n}\n})\nexport class StrataBreadcrumbItemComponent {\n text = input.required<string>();\n\n icon = input<string>();\n\n interactable = input<boolean>(false);\n\n disabled = input<boolean>(false);\n\n activated = output<Event>();\n\n separatorIcon = signal<string | undefined>(undefined);\n}\n","<li class=\"st-breadcrumb-item-container\">\n <div class=\"st-breadcrumb-item-content\"\n stActivatable\n [interactable]=\"interactable()\"\n [disabled]=\"disabled()\"\n (click)=\"activated.emit($event)\">\n @if (icon()) {\n <st-icon [name]=\"icon()!\" size=\"sm\" class=\"st-breadcrumb-item-icon\"></st-icon>\n }\n <span class=\"st-breadcrumb-item-text\">{{ text() }}</span>\n </div>\n\n @if (separatorIcon()) {\n <st-icon [name]=\"separatorIcon()!\" size=\"sm\" class=\"st-breadcrumb-separator\"></st-icon>\n }\n</li>\n","import { Component, contentChildren, effect, input } from '@angular/core';\nimport { StrataBreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n selector: 'st-breadcrumb',\n imports: [],\n templateUrl: './breadcrumb.component.html',\n host: {\n 'class': 'st-breadcrumb'\n}\n})\nexport class StrataBreadcrumbComponent {\n separatorIcon = input<string>('arrow-right');\n\n items = contentChildren(StrataBreadcrumbItemComponent, { descendants: true });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const separator = this.separatorIcon();\n\n items.forEach((item, index) => {\n const isLast = index === items.length - 1;\n item.separatorIcon.set(isLast ? undefined : separator);\n });\n });\n }\n}\n","<nav aria-label=\"Breadcrumb\">\n <ol class=\"st-breadcrumb-list\">\n <ng-content></ng-content>\n </ol>\n</nav>\n","import { Component, effect, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-accordion-item',\n imports: [],\n templateUrl: './accordion-item.component.html'\n})\nexport class StrataAccordionItemComponent {\n title = input.required<string>();\n\n open = model<boolean>(false);\n\n toggled = output<boolean>();\n\n constructor() {\n let firstRun = true;\n effect(() => {\n const value = this.open();\n if (!firstRun) {\n this.toggled.emit(value);\n }\n firstRun = false;\n return;\n });\n }\n\n @HostBinding('attr.open')\n get isOpen(): boolean {\n return this.open();\n }\n}\n","<div class=\"accordion-header\" (click)=\"this.open.set(!this.open())\">\n {{ title() }}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\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</div>\n\n<div class=\"accordion-content\">\n <ng-content></ng-content>\n</div>\n","import { Component, contentChildren, input, effect } from '@angular/core';\nimport { StrataAccordionItemComponent } from '../accordion-item/accordion-item.component';\n\n@Component({\n selector: 'st-accordion-group',\n imports: [],\n templateUrl: './accordion-group.component.html'\n})\nexport class StrataAccordionGroupComponent {\n items = contentChildren(StrataAccordionItemComponent);\n\n allowMultipleOpen = input<boolean>(false);\n\n constructor() {\n effect((onCleanup) => {\n const subs = this.items().map((item) =>\n item.toggled.subscribe((open) => {\n if (open && !this.allowMultipleOpen()) {\n this.closeOtherItems(item);\n }\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n closeOtherItems(currentItem: StrataAccordionItemComponent) {\n this.items().forEach((item) => {\n if (item !== currentItem) {\n item.open.set(false);\n }\n });\n }\n}\n","<ng-content></ng-content>\n","import { AfterViewInit, Component, contentChildren, HostBinding, input, model } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-avatar',\n imports: [],\n templateUrl: './avatar.component.html'\n})\nexport class StrataAvatarComponent implements AfterViewInit {\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n text = input<string | null>(null);\n\n size = model<AvatarSize>('md');\n\n @HostBinding('class')\n get elementClasses() {\n return [this.size()];\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.iconComponents().forEach((icon) => {\n icon.size.set(this.size());\n });\n });\n }\n}\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';\n","@if (text() !== null) {\n <span>{{ text() }}</span>\n}\n<ng-content></ng-content>\n","import { AfterViewInit, Component, contentChildren, ElementRef, HostBinding, input } from '@angular/core';\nimport { AvatarSize, StrataAvatarComponent } from '../avatar/avatar.component';\n\n@Component({\n selector: 'st-avatar-stack',\n imports: [],\n templateUrl: './avatar-stack.component.html'\n})\nexport class StrataAvatarStackComponent implements AfterViewInit {\n avatarRefs = contentChildren(StrataAvatarComponent, {\n descendants: true,\n read: ElementRef\n});\n\n size = input<AvatarSize>('md');\n\n spacing = input<'loose' | 'mid' | 'tight'>('mid');\n\n firstOnFront = input<boolean>(false);\n\n @HostBinding('class.xs')\n get xsClass(): boolean {\n return this.size() === 'xs';\n }\n\n @HostBinding('class.sm')\n get smClass(): boolean {\n return this.size() === 'sm';\n }\n\n @HostBinding('class.md')\n get mdClass(): boolean {\n return this.size() === 'md';\n }\n\n @HostBinding('class.lg')\n get lgClass(): boolean {\n return this.size() === 'lg';\n }\n\n @HostBinding('class.first-on-front')\n get firstOnFrontClass(): boolean {\n return this.firstOnFront();\n }\n\n @HostBinding('class.loose')\n get looseClass(): boolean {\n return this.spacing() === 'loose';\n }\n\n @HostBinding('class.mid')\n get midClass(): boolean {\n return this.spacing() === 'mid';\n }\n\n @HostBinding('class.tight')\n get tightClass(): boolean {\n return this.spacing() === 'tight';\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.avatarRefs().forEach((ref, index) => {\n if (this.firstOnFront()) {\n ref.nativeElement.style.setProperty('--z', (this.avatarRefs().length - index).toString());\n }\n });\n }, 1);\n }\n}\n","<ng-content></ng-content>\n","import { Component, inject, input, Renderer2 } from '@angular/core';\n\n@Component({\n selector: 'st-button-group',\n imports: [],\n templateUrl: './button-group.component.html'\n})\nexport class StrataButtonGroupComponent {\n renderer = inject(Renderer2);\n\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 { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'input[stInput], textarea[stInput]'\n})\nexport class StrataNativeInputRefDirective {\n el = inject(ElementRef<HTMLInputElement | HTMLTextAreaElement>);\n\n}\n","import {\n AfterViewInit, Component, contentChild, contentChildren, effect, signal\n} from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataNativeInputRefDirective } from '../../directives/native-input-ref.directive';\n\n@Component({\n selector: 'st-input-field',\n imports: [],\n templateUrl: './input-field.component.html'\n})\nexport class StrataInputFieldComponent implements AfterViewInit {\n iconComponents = contentChildren(StrataIconComponent, { descendants: true });\n\n inputField = contentChild(StrataNativeInputRefDirective, {\n descendants: true\n});\n\n private pendingFocus = signal(false);\n\n constructor() {\n effect(() => {\n const input = this.inputField();\n\n if (input && this.pendingFocus()) {\n input.el.nativeElement.focus();\n this.pendingFocus.set(false);\n }\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => this.iconComponents().forEach((icon) => icon.size.set('sm')), 1);\n }\n\n focus(): void {\n this.pendingFocus.set(true);\n }\n\n blur(): void {\n this.inputField()?.el.nativeElement.blur();\n }\n\n get nativeInput(): HTMLInputElement | undefined {\n return this.inputField()?.el.nativeElement;\n }\n}\n","<ng-content select=\"label\"></ng-content>\n<div class=\"st-input-wrapper\">\n <div class=\"affix\">\n <ng-content select=\"[prefix]\"></ng-content>\n </div>\n <ng-content select=\"input,textarea\"></ng-content>\n <div class=\"affix\">\n <ng-content select=\"[suffix]\"></ng-content>\n </div>\n</div>\n","import { 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 { Component, input, model, output, signal, viewChild, contentChildren, contentChild, TemplateRef, effect, DestroyRef, inject, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Placement } from '@floating-ui/dom';\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { StrataInputFieldComponent } from '../../../input-field/components/input-field/input-field.component';\nimport { StrataNativeInputRefDirective } from '../../../input-field/directives/native-input-ref.directive';\nimport { StrataOverlayDirective } from '../../../overlay/directives/overlay.directive';\nimport { StrataSelectItemComponent } from '../select-item/select-item.component';\nimport { StrataSelectTriggerDirective } from '../../directives/select-trigger/select-trigger.directive';\n\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})\nexport class StrataSingleSelectComponent {\n open = signal(false);\n\n placeholder = input<string>('Select');\n\n placement = input<Placement>('bottom-start');\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?: MouseEvent): void {\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 this.selected.set(item.value());\n this.itemSelected.emit(item.value());\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\" [id]=\"name()\" #singleSelectInput (click)=\"toggle($event)\" [attr.data-open]=\"open()\"\n tabindex=\"0\" [stOverlay]=\"selector\" [overlayOpen]=\"open()\" [overlayPlacement]=\"placement()\">\n @if (selectedItem()) {\n @if (triggerTemplate()) {\n <ng-container *ngTemplateOutlet=\"triggerTemplate()!\"></ng-container>\n } @else {\n {{ selectedItem()!.text() }}\n }\n } @else {\n <span class=\"placeholder-text\">{{ placeholder() }}</span>\n }\n\n <st-icon name=\"expand-up-down\"></st-icon>\n</div>\n\n<ng-template #selector>\n <div class=\"single-select-selector\" #singleSelectSelector [class.full-width]=\"fullWidth()\">\n @if (searchable()) {\n <st-input-field>\n <input stInput #searchField type=\"text\" [value]=\"searchQuery() || ''\" (input)=\"searchQuery.set($any($event.target).value); onSearchChange(searchQuery())\" [placeholder]=\"searchPlaceholder()\" />\n <button stButton variant=\"ghost\" [class.visible]=\"searchQuery() !== undefined && searchQuery()!.length > 0\" suffix\n size=\"sm\" (click)=\"searchQuery.set(undefined); onSearchChange(undefined)\">\n x\n </button>\n </st-input-field>\n }\n <div class=\"single-select-items-container\">\n <ng-content select=\"st-select-item\"></ng-content>\n </div>\n </div>\n</ng-template>","import { Component, 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 { 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","import { Component, computed, inject, input } from '@angular/core';\nimport { 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);\n\n /**\n * The sequence of keys to display.\n * Can be an array like `['⌘', 'K']` or a string combo like `'meta+k'`.\n */\n keys = input<string | string[]>([]);\n\n resolvedKeys = computed(() => {\n const rawKeys = this.keys();\n const labels = this.config.shortcutLabels;\n\n const parseKey = (part: string) => {\n const p = part.trim().toLowerCase();\n if (p === 'meta') return labels?.meta || '⌘';\n if (p === 'ctrl') return labels?.ctrl || 'Ctrl';\n if (p === 'shift') return labels?.shift || 'Shift';\n if (p === 'alt') return labels?.alt || '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 { Component, HostBinding, HostListener, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-radio',\n imports: [],\n templateUrl: './radio.component.html'\n})\nexport class StrataRadioComponent {\n value = input.required<string>();\n\n label = input<string | undefined>(undefined);\n\n checked = model(false);\n\n disabled = input(false);\n\n selected = output<void>();\n\n @HostBinding('attr.data-checked')\n get isChecked(): boolean {\n return this.checked();\n }\n\n @HostBinding('attr.data-disabled')\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n event.stopImmediatePropagation();\n this.selected.emit();\n this.checked.set(true);\n }\n}\n","<input type=\"radio\" [checked]=\"checked()\" [disabled]=\"disabled()\" />\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 {\n AfterViewInit, Directive, ElementRef, HostListener, inject, input, OnChanges, SimpleChanges\n} from '@angular/core';\n\n@Directive({\n selector: '[stAutoResize]'\n})\nexport class StrataAutoResizeDirective implements AfterViewInit, OnChanges {\n minimumRows = input(1);\n maximumRows = input<number>();\n\n private lineHeight = 0;\n\n private element = inject<ElementRef<HTMLTextAreaElement>>(ElementRef);\n @HostListener('input')\n onInput() {\n this.resize();\n }\n\n @HostListener('window:resize')\n onWindowResize() {\n this.resize();\n }\n\n\n ngAfterViewInit(): void {\n this.calculateLineHeight();\n this.resize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['minRows'] || changes['maxRows']) {\n this.resize();\n }\n }\n\n private calculateLineHeight() {\n const textarea = this.element.nativeElement;\n\n const originalRows = textarea.rows;\n const originalValue = textarea.value;\n\n textarea.rows = 1;\n textarea.value = '';\n\n // Force layout\n this.lineHeight = textarea.scrollHeight;\n\n // Restore\n textarea.rows = originalRows;\n textarea.value = originalValue;\n }\n\n private resize() {\n const textarea = this.element.nativeElement;\n\n textarea.style.height = 'auto';\n\n const scrollHeight = textarea.scrollHeight;\n\n const minHeight = this.minimumRows() * this.lineHeight;\n const maxHeight = this.maximumRows() ? this.maximumRows()! * this.lineHeight : Infinity;\n\n const newHeight = Math.min(Math.max(scrollHeight, minHeight), maxHeight);\n\n textarea.style.height = `${newHeight}px`;\n textarea.style.overflowY = scrollHeight > maxHeight ? 'auto' : 'hidden';\n }\n}\n","import { Component, computed, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-pagination',\n imports: [],\n templateUrl: './pagination.component.html'\n})\nexport class StrataPaginationComponent {\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 [disabled]=\"currentPage() === 1\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n (click)=\"changePage(currentPage() - 1)\"\n>\n Previous\n</button>\n@for (page of pageButtons(); track page) {\n <button\n [class.selected]=\"page.page === currentPage()\"\n [class.clickable]=\"page.clickable\"\n (click)=\"page.page ? changePage(page.page) : null\"\n >\n {{ page.text }}\n </button>\n}\n<button\n [disabled]=\"currentPage() === totalPages()\"\n (click)=\"changePage(currentPage() + 1)\"\n [class.clickable]=\"true\"\n [class.hideOnDisabled]=\"hideNextPreviousAtStartEnd()\"\n>\n Next\n</button>\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 { 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 { Component, contentChildren, effect, model } from '@angular/core';\nimport { StrataRadioComponent } from '../radio/radio.component';\n\n@Component({\n selector: 'st-radio-group',\n imports: [],\n template: `<ng-content></ng-content>`\n})\nexport class StrataRadioGroupComponent {\n value = model<string>('');\n\n radios = contentChildren(StrataRadioComponent, { descendants: true });\n\n constructor() {\n // Sync group value -> children checked state\n effect(() => {\n const currentValue = this.value();\n this.radios().forEach((radio) => {\n radio.checked.set(radio.value() === currentValue);\n });\n });\n\n // Handle child selection -> update group value\n effect((onCleanup) => {\n const radios = this.radios();\n const subs = radios.map((radio) =>\n radio.selected.subscribe(() => {\n this.value.set(radio.value());\n })\n );\n\n onCleanup(() => {\n subs.forEach((s) => s.unsubscribe());\n });\n });\n }\n}\n","import { Component, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-segmented-control-item',\n imports: [],\n templateUrl: './segmented-control-item.component.html',\n styleUrl: './segmented-control-item.component.scss',\n host: {\n '(click)': 'onClick()'\n}\n})\nexport class StrataSegmentedControlItemComponent {\n text = input.required<string>();\n\n selected = model(false);\n\n disabled = input(false);\n\n selectionChanged = output();\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.disabled() ? null : 0;\n }\n\n @HostBinding('attr.disabled')\n get disabledAttribute(): boolean | null {\n return this.disabled() ? true : null;\n }\n\n onClick(): void {\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n}\n","{{ text() }}\n","import {\n AfterViewInit, Component, computed, contentChildren, ElementRef, effect, signal, input, booleanAttribute, inject, DestroyRef\n} from '@angular/core';\nimport { StrataSegmentedControlItemComponent } from '../segmented-control-item/segmented-control-item.component';\n\n@Component({\n selector: 'st-segmented-control',\n imports: [],\n templateUrl: './segmented-control.component.html',\n host: {\n '[class.st-segmented-control-full-width]': 'fullWidth()'\n}\n})\nexport class StrataSegmentedControlComponent implements AfterViewInit {\n private elementRef = inject(ElementRef);\n private destroyRef = inject(DestroyRef);\n\n fullWidth = input(false, { transform: booleanAttribute });\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 ngAfterViewInit(): void {\n if (this.segmentItems().length === 0) {\n return;\n }\n\n this.updateDimensions();\n\n const initiallySelected = 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);\n } else {\n this.selectItem(initiallySelected!);\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 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 // Also update dimensions when items change\n this.updateDimensions();\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n }\n\n selectItem(selectedItem: StrataSegmentedControlItemComponent): void {\n this.selectedItem.set(selectedItem);\n this.selectedIndex.set(this.segmentItems().indexOf(selectedItem));\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","<ng-content select=\"st-segmented-control-item\"></ng-content>\n<div class=\"selection-item\" id=\"selection-indicator\" \n [style.left]=\"this.offset() + 'px'\"\n [style.top]=\"this.indicatorTop() + 'px'\"\n [style.width]=\"this.indicatorWidth() + 'px'\"\n [style.height]=\"this.indicatorHeight() + 'px'\">\n {{ this.selectedItem()?.text() }}\n</div>\n","import { Component } from '@angular/core';\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 { Directive, ElementRef, HostBinding, effect, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[stSidemenuItem]'\n})\nexport class StrataSidemenuItemDirective {\n active = input<boolean>(false);\n\n private readonly elementRef = inject(ElementRef);\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\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, 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],\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\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 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 // Wait a tick for RouterLinkActive to update its isActive status\n setTimeout(() => {\n this.checkActiveState();\n });\n });\n }\n }\n\n toggle() {\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","<button stSidemenuItem type=\"button\" [active]=\"hasActiveChild()\" (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<div class=\"st-sidemenu-item-group-content\" [hidden]=\"!expanded()\">\n <ng-content></ng-content>\n</div>\n","import { AfterViewInit, Component, computed, ElementRef, input, model, OnDestroy, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'st-slider',\n imports: [FormsModule],\n templateUrl: './slider.component.html'\n})\nexport class StrataSliderComponent implements AfterViewInit, OnDestroy {\n wrapper = viewChild.required<ElementRef<HTMLDivElement>>('wrapper');\n private resizeObserver!: ResizeObserver;\n\n value = model<number>();\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' : (this.step() as number),\n );\n\n steps = computed(() => {\n const step = this.computedStep();\n if (step === 'any' || step === undefined) {\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 ngAfterViewInit(): void {\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\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 = Math.round(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","<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 [min]=\"minimum()\"\n [max]=\"maximum()\"\n [step]=\"computedStep()\"\n />\n</div>\n","import { Component, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'st-spinner',\n imports: [],\n templateUrl: './spinner.component.html'\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 { Component, HostBinding, input, model, output } from '@angular/core';\n\n@Component({\n selector: 'st-tab-item',\n imports: [],\n templateUrl: './tab-item.component.html',\n host: {\n 'role': 'tab',\n '(click)': 'onClick()'\n}\n})\nexport class StrataTabItemComponent {\n /**\n * The text label for the tab.\n * Can also be provided via content projection.\n */\n text = input<string>();\n\n /**\n * Whether the tab is currently selected.\n */\n selected = model(false);\n\n /**\n * Whether the tab is disabled.\n */\n disabled = input(false);\n\n /**\n * Emitted when the tab is clicked.\n */\n selectionChanged = output<void>();\n\n @HostBinding('attr.aria-selected')\n get isSelected(): boolean {\n return this.selected();\n }\n\n @HostBinding('attr.aria-disabled')\n get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex(): number | null {\n return this.selected() || this.disabled() ? null : 0;\n }\n\n @HostBinding('class.active')\n get activeClass(): boolean {\n return this.selected();\n }\n\n @HostBinding('class.disabled')\n get disabledClass(): boolean {\n return this.disabled();\n }\n\n onClick(): void {\n if (this.disabled()) {\n return;\n }\n this.selected.set(true);\n this.selectionChanged.emit();\n }\n}\n","@if (text()) {\n {{ text() }}\n} @else {\n <ng-content></ng-content>\n}\n","import {\n AfterViewInit, Component, contentChildren, effect, ElementRef, signal, viewChild\n} from '@angular/core';\nimport { StrataTabItemComponent } from '../tab-item/tab-item.component';\n\n@Component({\n selector: 'st-tabs',\n imports: [],\n templateUrl: './tabs.component.html',\n host: {\n 'class': 'st-tabs-host'\n}\n})\nexport class StrataTabsComponent implements AfterViewInit {\n tabItems = contentChildren(StrataTabItemComponent, { descendants: true });\n tabItemsRefs = contentChildren(StrataTabItemComponent, {\n descendants: true,\n read: ElementRef\n});\n\n indicator = viewChild<ElementRef>('indicator');\n\n selectedTab = signal<StrataTabItemComponent | null>(null);\n selectedIndex = signal<number>(0);\n\n private resizeObserver?: ResizeObserver;\n\n constructor() {\n // Coordinate child selection\n effect((onCleanup) => {\n const items = this.tabItems();\n const subs = items.map((item, index) =>\n item.selectionChanged.subscribe(() => {\n this.selectTab(item, index);\n })\n );\n\n onCleanup(() => {\n subs.forEach((sub) => sub.unsubscribe());\n });\n });\n\n // Handle responsive indicator updates\n effect((onCleanup) => {\n const indicatorEl = this.indicator()?.nativeElement;\n const refs = this.tabItemsRefs();\n const index = this.selectedIndex();\n\n if (!indicatorEl || refs.length === 0 || index < 0) return;\n\n const activeRef = refs[index].nativeElement;\n\n // Update immediately\n this.updateIndicator(activeRef, indicatorEl);\n\n // And on every resize of the active tab\n this.resizeObserver = new ResizeObserver(() => {\n this.updateIndicator(activeRef, indicatorEl);\n });\n this.resizeObserver.observe(activeRef);\n\n onCleanup(() => this.resizeObserver?.disconnect());\n });\n }\n\n ngAfterViewInit(): void {\n // Set initial selection\n const items = this.tabItems();\n if (items.length > 0) {\n const initiallySelected = items.find((item) => item.selected());\n if (initiallySelected) {\n this.selectTab(initiallySelected, items.indexOf(initiallySelected));\n } else {\n this.selectTab(items[0], 0);\n }\n }\n }\n\n private updateIndicator(activeElement: HTMLElement, indicatorElement: HTMLElement): void {\n indicatorElement.style.width = `${activeElement.offsetWidth}px`;\n indicatorElement.style.left = `${activeElement.offsetLeft}px`;\n }\n\n private selectTab(tab: StrataTabItemComponent, index: number): void {\n // Unselect others\n this.tabItems().forEach((item) => {\n if (item !== tab) {\n item.selected.set(false);\n }\n });\n\n tab.selected.set(true);\n this.selectedTab.set(tab);\n this.selectedIndex.set(index);\n }\n}\n","<div class=\"tabs-container\" role=\"tablist\">\n <ng-content></ng-content>\n <div #indicator class=\"selection-indicator\"></div>\n</div>\n","import { 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 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 { 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, computed, input, inject } from '@angular/core';\nimport { ModalService } from '../../services/modal.service';\n\nimport { StrataButtonDirective } from '../../../../../public-api';\nimport { StrataAvatarComponent } from '../../../avatar/components/avatar/avatar.component';\nimport { StrataButtonGroupComponent } from '../../../button/components/button-group/button-group.component';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\nimport { Theme, StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-alert-content',\n imports: [\n StrataAvatarComponent,\n StrataIconComponent,\n StrataThemeDirective,\n StrataButtonGroupComponent,\n StrataButtonDirective,\n ],\n templateUrl: './alert-content.component.html'\n})\nexport class StrataAlertContentComponent {\n private modalService = inject(ModalService);\n\n title = input.required<string>();\n message = input<string>();\n\n icon = input<string | undefined>(undefined);\n\n readonly computedIcon = computed(() => {\n return this.icon() ?? '';\n });\n\n theme = input<Theme>('info');\n\n affirmativeButton = input.required<string>();\n\n cancelButton = input<string | undefined>(undefined);\n\n onAffirmation(): void {\n this.modalService.closeCurrentModal(true);\n }\n\n onCancel(): void {\n this.modalService.closeCurrentModal(false);\n }\n}\n","<div class=\"alert-content\">\n @if (icon() !== undefined) {\n <st-avatar size=\"lg\" [stTheme]=\"theme()\">\n <st-icon [name]=\"computedIcon()\"></st-icon>\n </st-avatar>\n }\n\n <p class=\"alert-title\">{{ title() }}</p>\n @if (message()) {\n <p class=\"alert-message\">{{ message() }}</p>\n }\n</div>\n<st-button-group justification=\"expand\">\n @if (cancelButton()) {\n <button stButton (click)=\"onCancel()\">{{ cancelButton() }}</button>\n }\n <button stButton [stTheme]=\"theme()\" variant=\"primary\" (click)=\"onAffirmation()\">{{ affirmativeButton() }}</button>\n</st-button-group>\n","import { Type } from '@angular/core';\nimport { Theme } from '../theming/directives/theme.directive';\n\nexport interface ModalConfiguration {\n title?: string;\n component: Type<unknown>;\n onModalClosed?: (value?: unknown) => void;\n hideCloseButton?: boolean;\n disableBackdropClosure?: boolean;\n size?: ModalSize;\n 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';\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, HostBinding, inject, Injector, input, model, viewChild, ViewContainerRef\n} from '@angular/core';\nimport { ModalConfiguration, ModalSize, 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 AfterViewInit {\n private modalService = inject(ModalService);\n private injector = inject(Injector);\n\n modalContents = viewChild.required<string, ViewContainerRef>('modalBody', {\n read: ViewContainerRef\n});\n\n configuration = input.required<ModalConfiguration>();\n\n size = model<ModalSize | undefined>('md');\n\n @HostBinding('class')\n get sizeClass(): string {\n return `st-modal-size-${this.size()}`;\n }\n\n ngAfterViewInit(): void {\n if (this.size() === undefined) {\n this.size.set('md');\n }\n\n const modalRef: StrataModalRef = {\n close: (value?: unknown) => this.modalService.close(this.configuration(), value)\n};\n\n const customInjector = Injector.create({\n providers: [{ provide: StrataModalRef, useValue: modalRef }],\n parent: this.injector\n});\n\n const injectedComponent = this.modalContents().createComponent(this.configuration().component, {\n injector: customInjector\n});\n\n if (this.configuration().inputs) {\n this.setInputsOnInjectedComponent(injectedComponent, this.configuration().inputs!);\n }\n }\n\n private setInputsOnInjectedComponent(\n injectedComponent: ComponentRef<unknown>,\n inputs: Record<string, unknown>,\n ): void {\n Object.keys(inputs).forEach((key) => {\n injectedComponent.setInput(key, inputs[key]);\n });\n }\n\n onCardClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n}\n","@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, 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\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\"> </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 { Theme } from '../theming/directives/theme.directive';\n\nexport interface NotificationConfiguration {\n icon?: string;\n message: string;\n theme?: Theme;\n duration?: number;\n}\n\nexport type NotificationsWithIds = NotificationConfiguration & {\n id: string;\n};\n\nexport const DEFAULT_THEME: Theme = 'info';\n\nexport const DEFAULT_DURATION = 3000;\n","import { Injectable, signal } from '@angular/core';\nimport {\n DEFAULT_DURATION,\n DEFAULT_THEME,\n NotificationConfiguration,\n NotificationsWithIds\n} from '../notification.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n public notificationStack = signal<NotificationsWithIds[]>([]);\n\n public showNotification(config: NotificationConfiguration): void {\n const newNotificationId = crypto.randomUUID();\n const duration = config.duration ?? DEFAULT_DURATION;\n const currentStack = this.notificationStack();\n this.notificationStack.set([\n ...currentStack,\n {\n id: newNotificationId,\n message: config.message,\n duration: duration,\n theme: config.theme ?? DEFAULT_THEME,\n icon: config.icon\n}\n ]);\n this.hideNotification(newNotificationId, duration);\n }\n\n private hideNotification(notificationId: string, duration: number): void {\n setTimeout(() => {\n const currentStack = this.notificationStack().filter(\n (notification) => notification.id !== notificationId,\n );\n this.notificationStack.set(currentStack);\n }, duration);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { StrataIconComponent } from '../../../icon/components/icon/icon.component';\n\n@Component({\n selector: 'st-notification',\n imports: [StrataIconComponent],\n templateUrl: './notification.component.html'\n})\nexport class StrataNotificationComponent {\n @Input()\n icon?: string;\n\n @Input()\n message!: string;\n}\n","@if (icon) {\n <st-icon [name]=\"icon\"></st-icon>\n}\n{{ message }}\n","import { Component, inject } from '@angular/core';\nimport { NotificationService } from '../../services/notification.service';\nimport { StrataNotificationComponent } from '../notification/notification.component';\n\nimport { StrataThemeDirective } from '../../../theming/directives/theme.directive';\n\n@Component({\n selector: 'st-notification-container',\n imports: [StrataNotificationComponent, StrataThemeDirective],\n templateUrl: './notification-container.component.html'\n})\nexport class StrataNotificationContainerComponent {\n notificationService = inject(NotificationService);\n\n notifications = this.notificationService.notificationStack;\n\n}\n","@for (notification of notifications(); track notification.id) {\n <st-notification [icon]=\"notification.icon\" [message]=\"notification.message\" [stTheme]=\"notification.theme ?? 'info'\">\n </st-notification>\n}\n","import { CommonModule, formatNumber, getLocaleNumberSymbol, NumberSymbol } from '@angular/common';\nimport { Component, computed, inject, input, LOCALE_ID } from '@angular/core';\n\n@Component({\n selector: 'st-number-display',\n imports: [CommonModule],\n templateUrl: './number-display.component.html'\n})\nexport class StrataNumberDisplayComponent {\n private readonly locale = inject(LOCALE_ID);\n\n value = input.required<number>();\n\n decimals = input<number>(2);\n\n private digitsInfo = computed(() => {\n return `1.${this.decimals()}-${this.decimals()}`;\n });\n\n private formattedNumber = computed(() => formatNumber(this.value(), this.locale, this.digitsInfo()));\n\n readonly separatedDigits = computed(() => {\n const parts = this.formattedNumber().split(this.decimalPoint());\n return {\n integer: parts[0],\n decimals: parts[1] ?? undefined\n} as { integer: string; decimals?: string };\n });\n\n changedValue = input<boolean>(false);\n\n showPlus = input<boolean>(false);\n\n deemphasizeDecimals = input<boolean>(true);\n\n readonly decimalPoint = computed(() => getLocaleNumberSymbol(this.locale, NumberSymbol.Decimal));\n}\n","<p\n [ngClass]=\"{\n positive: changedValue() && value() > 0,\n negative: changedValue() && value() < 0,\n }\"\n>\n @if (showPlus() && this.value() > 0) {\n +\n }\n <span class=\"integer-value\">{{ separatedDigits().integer }}</span>\n @if (separatedDigits().decimals) {\n <span\n class=\"decimal-number\"\n [ngClass]=\"{ deemphasize: deemphasizeDecimals }\"\n >{{ decimalPoint() }}{{ separatedDigits().decimals }}</span\n >\n }\n</p>\n","import { Component } 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, 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>\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","/*\n * Public API Surface of ngx-strata\n */\n\nexport * from './lib/directives/activatable.directive';\nexport * from './lib/directives/tooltip.directive';\nexport * from './lib/services/darkmode/darkmode.service';\nexport * from './lib/services/hotkey/hotkey.service';\n\n// App\nexport * from './lib/app/provider/provide-icons';\nexport * from './lib/app/provider/provide-strata';\n\n// Action Menu\nexport * from './lib/features/action-menu/components/action-menu-item/action-menu-item.component';\nexport * from './lib/features/action-menu/components/action-menu/action-menu.component';\n\n// Alert\nexport * from './lib/features/alert/components/alert/alert.component';\n\n// Breadcrumb\nexport * from './lib/features/breadcrumb';\n\n// Accordion\nexport * from './lib/features/accordion/components/accordion-group/accordion-group.component';\nexport * from './lib/features/accordion/components/accordion-item/accordion-item.component';\n\n// Avatar\nexport * from './lib/features/avatar/components/avatar-stack/avatar-stack.component';\nexport * from './lib/features/avatar/components/avatar/avatar.component';\n\n// Button\nexport * from './lib/features/button/components/button-group/button-group.component';\nexport * from './lib/features/button/directives/button/button.directive';\n\n// Card\nexport * from './lib/features/card/components/card/card.component';\n\n// Checkbox\nexport * from './lib/features/checkbox/components/checkbox/checkbox.component';\n\n// Single Select\nexport * from './lib/features/single-select';\n\n// Divider\nexport * from './lib/features/divider/components/divider/divider.component';\n\n// Tag\nexport * from './lib/features/tag/components/tag/tag.component';\n\n// Kbd\nexport * from './lib/features/kbd/components/kbd/kbd.component';\n\n// Icon\nexport * from './lib/features/icon/components/icon/icon.component';\nexport * from './lib/features/icon/loader/icon-loader.interface';\nexport * from './lib/features/icon/loader/icon-registry.interface';\nexport * from './lib/features/icon/models/icon.model';\nexport * from './lib/features/icon/services/http-icon-loader/http-icon-loader.service';\nexport * from './lib/features/icon/services/icon-registry/icon-registry.service';\n\n// Item\nexport * from './lib/features/item/components/item-list/item-list.component';\nexport * from './lib/features/item/components/item/item.component';\n\n// Input field\nexport * from './lib/features/input-field/components/input-field/input-field.component';\nexport * from './lib/features/input-field/directives/auto-resize.directive';\nexport * from './lib/features/input-field/directives/native-input-ref.directive';\n\n// Overlay\nexport * from './lib/features/overlay/directives/overlay.directive';\n\n// Pagination\nexport * from './lib/features/pagination/components/pagination/pagination.component';\n\n// Pipes\nexport * from './lib/pipes/capitalize.pipe';\n\n// Progress\nexport * from './lib/features/progress/components/progress-linear/progress-linear.component';\nexport * from './lib/features/progress/components/progress-radial/progress-radial.component';\n\n// Radio\nexport * from './lib/features/radio/components/radio/radio.component';\nexport * from './lib/features/radio/components/radio-group/radio-group.component';\n\n// Segmented Control\nexport * from './lib/features/segmented-control/components/segmented-control-item/segmented-control-item.component';\nexport * from './lib/features/segmented-control/components/segmented-control/segmented-control.component';\n\n// Sidemenu\nexport * from './lib/features/sidemenu';\n\n// Slider\nexport * from './lib/features/slider/components/slider/slider.component';\n\n// Spinner\nexport * from './lib/features/spinner/components/spinner/spinner.component';\n\n// Tabs\nexport * from './lib/features/tabs/components/tabs/tabs.component';\nexport * from './lib/features/tabs/components/tab-item/tab-item.component';\n\n// Text stack\nexport * from './lib/features/text-stack/components/text-stack/text-stack.component';\n\n// Toggle\nexport * from './lib/features/toggle/components/toggle/toggle.component';\n\n// Modal Feature\nexport * from './lib/features/modal/components/alert-content/alert-content.component';\nexport * from './lib/features/modal/components/modal-container/modal-container.component';\nexport * from './lib/features/modal/components/modal-header/modal-header.component';\nexport * from './lib/features/modal/components/modal/modal.component';\nexport * from './lib/features/modal/modal.model';\nexport * from './lib/features/modal/services/modal.service';\n\n// Notification Feature\nexport * from './lib/features/notification/components/notification-container/notification-container.component';\nexport * from './lib/features/notification/components/notification/notification.component';\nexport * from './lib/features/notification/notification.model';\nexport * from './lib/features/notification/services/notification.service';\n\n// Number Display\nexport * from './lib/features/number-display/components/number-display/number-display.component';\n\n// Theming\nexport * from './lib/features/theming/directives/theme.directive';\n\n// Shell Feature\nexport * from './lib/features/shell';\n\n// Message State Feature\nexport * from './lib/features/message-state';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","DOCUMENT"],"mappings":"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"}
|