@filip.mazev/blocks 1.2.22 → 1.2.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, NgZone, PLATFORM_ID, signal, computed } from '@angular/core';
2
+ import { Injectable, inject, NgZone, PLATFORM_ID, signal, computed, InjectionToken } from '@angular/core';
3
3
  import { isPlatformBrowser } from '@angular/common';
4
4
  import { fromEvent } from 'rxjs';
5
5
  import { debounceTime, map, distinctUntilChanged } from 'rxjs/operators';
@@ -442,6 +442,8 @@ const SCROLL_LOCK_INSTANCE_IDENTIFIER = 'scroll_lock_instance_';
442
442
  // THIS FILE IS AUTO-GENERATED. DO NOT EDIT DIRECTLY.
443
443
  // Update the $required-theme-keys in the _theme-engine.scss file instead.
444
444
 
445
+ const BX_I18N = new InjectionToken('BX_I18N');
446
+
445
447
  /**
446
448
  * Type Guard: Detects if a token is a static palette shade (e.g., 'orange-500')
447
449
  */
@@ -514,5 +516,5 @@ function uuidv4() {
514
516
  * Generated bundle index. Do not edit.
515
517
  */
516
518
 
517
- export { BREAKPOINTS, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, invertPaletteToken, isPaletteToken, isThemedColor, resolveTokenToCssVar, uuidv4 };
519
+ export { BREAKPOINTS, BX_I18N, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, invertPaletteToken, isPaletteToken, isThemedColor, resolveTokenToCssVar, uuidv4 };
518
520
  //# sourceMappingURL=filip.mazev-blocks-core.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-blocks-core.mjs","sources":["../../../projects/blocks/core/enums/desktop-os.enum.ts","../../../projects/blocks/core/enums/mobile-os.enum.ts","../../../projects/blocks/core/services/device-type.service.ts","../../../projects/blocks/core/constants/window-dimension.constants.ts","../../../projects/blocks/core/services/window-dimension.service.ts","../../../projects/blocks/core/services/scroll-lock.service.ts","../../../projects/blocks/core/services/theming.service.ts","../../../projects/blocks/core/constants/tokens.constants.ts","../../../projects/blocks/core/constants/scroll-lock.constants.ts","../../../projects/blocks/core/types/theme.types.ts","../../../projects/blocks/core/helpers/token-functions.ts","../../../projects/blocks/core/helpers/uui4.ts","../../../projects/blocks/core/public-api.ts","../../../projects/blocks/core/filip.mazev-blocks-core.ts"],"sourcesContent":["export enum DesktopOS {\n Linux = 'linux',\n MacOS = 'mac_os',\n Unix = 'unix',\n Unknown = 'unknown',\n Windows = 'windows'\n}\n","export enum MobileOS {\n Android = 'android',\n iOS = 'ios',\n Unknown = 'unknown',\n WindowsPhone = 'Windows Phone'\n}\n","import { Injectable } from '@angular/core';\nimport { DesktopOS } from '../enums/desktop-os.enum';\nimport { MobileOS } from '../enums/mobile-os.enum';\nimport { DeviceState } from '../interfaces/device-state.interface';\nimport { DeviceOS, DeviceOrientationType, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow } from '../types/core.types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceTypeService {\n private readonly isDesktopDevice = !this.isMobileDevice() && !this.isTabletDevice();\n private userAgent?: string = navigator.userAgent || navigator.vendor || (window as OperaCapableWindow)?.opera || undefined;\n\n private supportedScreenOrientation =\n (screen?.orientation || {}).type ?? (screen as LegacyScreenOrientation).mozOrientation ?? (screen as LegacyScreenOrientation).msOrientation;\n\n private safariScreenOrientation: DeviceOrientationType =\n !screen?.orientation && matchMedia('(orientation: portrait)').matches ? 'portrait-primary' : 'landscape-primary';\n\n private initialScreenOrientation: DeviceOrientationType = this.supportedScreenOrientation ?? this.safariScreenOrientation ?? 'portrait-primary';\n private screenOrientation: DeviceOrientationType = this.initialScreenOrientation;\n\n constructor() {\n if (screen.orientation) {\n screen.orientation.addEventListener('change', (ev: Event) => {\n const orientation = ev.target as ScreenOrientation | null;\n if (orientation?.type) {\n this.screenOrientation = orientation.type;\n }\n });\n }\n }\n\n public isLandscapeOrientation(): boolean {\n return ['landscape-primary', 'landscape-secondary'].includes(this.screenOrientation);\n }\n\n public isPortraitOrientation(): boolean {\n return ['portrait-primary', 'portrait-secondary'].includes(this.screenOrientation);\n }\n\n public getDeviceState(): DeviceState {\n const isDesktop = this.isDesktopDevice;\n const isMobile = this.isMobileDevice();\n const isTablet = this.isTabletDevice();\n const mobileOS: MobileOS | undefined = this.getMobileOS();\n const isAndroidDevice = this.getDeviceOS() === MobileOS.Android;\n const isAppleDevice = this.getDeviceOS() === MobileOS.iOS || this.getDeviceOS() === DesktopOS.MacOS;\n const isUnknownMobileDevice = this.getDeviceOS() === MobileOS.Unknown;\n const desktopOS: DesktopOS | undefined = this.getDesktopOS();\n const isWindowsDesktop = this.getDeviceOS() === DesktopOS.Windows;\n const isLinuxOrUnixDesktop = this.getDeviceOS() === DesktopOS.Linux || this.getDeviceOS() === DesktopOS.Unix;\n\n return {\n isDesktop,\n desktopOS,\n isWindowsDesktop,\n isLinuxOrUnixDesktop,\n isMobile,\n mobileOS,\n isAndroidDevice,\n isAppleDevice,\n isUnknownMobileDevice,\n isTablet,\n isLandscapeOrientation: () => this.isLandscapeOrientation(),\n isPortraitOrientation: () => this.isPortraitOrientation()\n };\n }\n\n private isMobileDevice(): boolean {\n const regexs = [/(Android)(.+)(Mobile)/i, /BlackBerry/i, /iPhone|iPod/i, /Opera Mini/i, /IEMobile/i];\n return regexs.some((b) => this.userAgent?.match(b) !== null);\n }\n\n private isTabletDevice(): boolean {\n const regex = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/;\n return regex.test(this.userAgent?.toLowerCase() ?? '');\n }\n\n private getMobileOS(): MobileOS | undefined {\n if (this.isMobileDevice() && this.userAgent) {\n if (/windows phone/i.test(this.userAgent)) return MobileOS.WindowsPhone;\n else if (/android/i.test(this.userAgent)) return MobileOS.Android;\n else if (/iPad|iPhone|iPod/.test(this.userAgent) && !(window as MSStreamWindow).MSStream) return MobileOS.iOS;\n\n return MobileOS.Unknown;\n }\n return undefined;\n }\n\n private getDesktopOS(): DesktopOS | undefined {\n if (this.isDesktopDevice && this.userAgent) {\n if (this.userAgent.indexOf('Win') !== -1) return DesktopOS.Windows;\n else if (this.userAgent.indexOf('Mac') !== -1) return DesktopOS.MacOS;\n else if (this.userAgent.indexOf('X11') !== -1) return DesktopOS.Unix;\n else if (this.userAgent.indexOf('Linux') !== -1) return DesktopOS.Linux;\n\n return DesktopOS.Unknown;\n } else return undefined;\n }\n\n private getDeviceOS(): DeviceOS | undefined {\n return this.getMobileOS() ?? this.getDesktopOS();\n }\n}\n","export const BREAKPOINTS = {\n xs: 360,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n '3xl': 1920,\n '4xl': 2560\n} as const;\n","import { Injectable, inject, NgZone, PLATFORM_ID, signal, computed } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { BREAKPOINTS } from '../constants/window-dimension.constants';\nimport { WindowDimensions } from '../interfaces/window-dimensions.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowDimensionsService {\n public readonly ngZone = inject(NgZone);\n public readonly platformId = inject(PLATFORM_ID);\n\n public readonly isBrowser = isPlatformBrowser(this.platformId);\n\n public readonly _dimensions = signal<WindowDimensions>(this.getCurrentDimensions());\n\n public readonly dimensions = this._dimensions.asReadonly();\n\n public readonly isMobile = computed(() => this.dimensions().width < BREAKPOINTS.md);\n public readonly isTablet = computed(() => this.dimensions().width >= BREAKPOINTS.md && this.dimensions().width < BREAKPOINTS.lg);\n public readonly isDesktop = computed(() => this.dimensions().width >= BREAKPOINTS.lg);\n\n public readonly breakpoints = BREAKPOINTS;\n\n constructor() {\n this.initResizeListener();\n }\n\n private getCurrentDimensions(): WindowDimensions {\n if (!this.isBrowser) {\n return { width: 0, height: 0 };\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n\n private initResizeListener(): void {\n if (!this.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(150),\n map(() => this.getCurrentDimensions()),\n distinctUntilChanged((prev, curr) => prev.width === curr.width && prev.height === curr.height)\n )\n .subscribe((dims) => {\n this.ngZone.run(() => {\n this._dimensions.set(dims);\n });\n });\n });\n }\n}\n","import { Injectable, OnDestroy, inject, signal, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DeviceTypeService } from './device-type.service';\nimport { WindowDimensionsService } from './window-dimension.service';\nimport { IScrollLockConfig } from '../interfaces/scroll-lock-config.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollLockService implements OnDestroy {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly deviceTypeService = inject(DeviceTypeService);\n private readonly windowDimensionsService = inject(WindowDimensionsService);\n\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n private readonly activeLocks = new Map<string, IScrollLockConfig>();\n private readonly boundHandleTouchMove = this.handleTouchMove.bind(this);\n private readonly boundPreventDefault = this.preventDefault.bind(this);\n\n public readonly _isScrollDisabled = signal(false);\n public readonly isScrollDisabled = this._isScrollDisabled.asReadonly();\n\n private previousBodyPadding: string | null = null;\n\n private pendingListenerTimeout: number | null = null;\n\n public ngOnDestroy(): void {\n if (!this.isBrowser) return;\n this.clearPendingTimeout();\n this.forceCleanupAll();\n }\n\n public disableScroll(usageId: string, config: IScrollLockConfig): void {\n if (!this.isBrowser) return;\n\n const wasDisabled = this._isScrollDisabled();\n\n this.activeLocks.set(usageId, config);\n this._isScrollDisabled.set(true);\n\n if (wasDisabled) return;\n\n const documentWidth = document.documentElement.clientWidth;\n const windowWidth = window.innerWidth;\n const scrollBarWidth = windowWidth - documentWidth;\n\n if (scrollBarWidth > 0) {\n this.previousBodyPadding = document.body.style.paddingRight;\n const computedPadding = parseInt(getComputedStyle(document.body).paddingRight, 10) || 0;\n\n document.body.style.setProperty('padding-right', `${computedPadding + scrollBarWidth}px`, 'important');\n }\n\n document.body.style.setProperty('overflow', 'hidden', 'important');\n\n if (config.handleTouchInput !== false) {\n document.body.style.setProperty('touch-action', 'none', 'important');\n }\n\n this.clearPendingTimeout();\n\n this.pendingListenerTimeout = window.setTimeout(\n () => {\n if (!this._isScrollDisabled()) return;\n\n if (config.handleTouchInput === true) {\n document.body.addEventListener('touchmove', this.boundHandleTouchMove, { passive: false });\n }\n\n if (config.handleExtremeOverflow === true) {\n const opt = { passive: false };\n window.addEventListener('wheel', this.boundPreventDefault, opt);\n window.addEventListener('mousewheel', this.boundPreventDefault, opt);\n window.addEventListener('scroll', this.boundPreventDefault, opt);\n window.addEventListener('DOMMouseScroll', this.boundPreventDefault, opt);\n }\n },\n (config.animationDuration ?? 0) + 10\n );\n }\n\n public enableScroll(usageId: string, extremeOverflow?: boolean): void {\n if (!this.isBrowser) return;\n\n if (!this.activeLocks.has(usageId)) return;\n\n this.activeLocks.delete(usageId);\n\n if (this.activeLocks.size > 0) return;\n\n this.updateStateAndCleanup(extremeOverflow);\n }\n\n private getActiveConfig(): IScrollLockConfig | null {\n if (this.activeLocks.size === 0) return null;\n const keys = Array.from(this.activeLocks.keys());\n return this.activeLocks.get(keys[keys.length - 1]) ?? null;\n }\n\n private updateStateAndCleanup(extremeOverflow?: boolean): void {\n if (!this.isBrowser) return;\n\n this.clearPendingTimeout();\n\n this._isScrollDisabled.set(false);\n\n document.body.style.removeProperty('overflow');\n\n if (this.previousBodyPadding !== null) {\n if (this.previousBodyPadding) {\n document.body.style.setProperty('padding-right', this.previousBodyPadding);\n } else {\n document.body.style.removeProperty('padding-right');\n }\n this.previousBodyPadding = null;\n }\n\n document.body.removeEventListener('touchmove', this.boundHandleTouchMove);\n document.body.style.removeProperty('touch-action');\n\n if (extremeOverflow !== false) {\n window.removeEventListener('wheel', this.boundPreventDefault);\n window.removeEventListener('mousewheel', this.boundPreventDefault);\n window.removeEventListener('scroll', this.boundPreventDefault);\n window.removeEventListener('DOMMouseScroll', this.boundPreventDefault);\n }\n }\n\n private forceCleanupAll(): void {\n this.activeLocks.clear();\n this.updateStateAndCleanup(true);\n }\n\n private clearPendingTimeout(): void {\n if (this.pendingListenerTimeout !== null) {\n clearTimeout(this.pendingListenerTimeout);\n this.pendingListenerTimeout = null;\n }\n }\n\n private handleTouchMove(event: Event): void {\n const targetNode = event.target as Node;\n const cfg = this.getActiveConfig();\n\n if (!this.isAllowedToScroll(targetNode) && (cfg === null || cfg.handleTouchInput !== false)) {\n if (\n cfg === null ||\n cfg.mobileOnlyTouchPrevention !== true ||\n (cfg.mobileOnlyTouchPrevention === true &&\n (!this.deviceTypeService.getDeviceState().isMobile || !this.deviceTypeService.getDeviceState().isTablet) &&\n this.windowDimensionsService.dimensions().width < this.windowDimensionsService.breakpoints.sm)\n ) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n private isAllowedToScroll(targetNode: Node): boolean {\n const cfg = this.getActiveConfig();\n const allow = cfg?.allowTouchInputOn;\n\n if (!allow) return true;\n\n if (Array.isArray(allow)) {\n if (allow.length === 0) return true;\n return allow.some((el) => el.contains(targetNode));\n }\n\n return false;\n }\n\n private preventDefault(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { Injectable, OnDestroy, inject, signal, PLATFORM_ID, computed } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DeviceTheme } from '../types/core.types';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemingService implements OnDestroy {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _systemTheme = signal<DeviceTheme>('light');\n private readonly _applicationTheme = signal<DeviceTheme | null>(null);\n\n public readonly systemTheme = this._systemTheme.asReadonly();\n public readonly applicationTheme = this._applicationTheme.asReadonly();\n public readonly activeTheme = computed(() => this.applicationTheme() ?? this.systemTheme());\n\n private readonly systemTheme$ = toObservable(this._systemTheme);\n private readonly applicationTheme$ = toObservable(this._applicationTheme);\n\n private mediaQueryList?: MediaQueryList;\n private mediaQueryListener?: (event: MediaQueryListEvent) => void;\n\n constructor() {\n if (this.isBrowser) {\n this._systemTheme.set(this.detectInitialSystemTheme());\n\n const storedTheme = localStorage.getItem('theme') as DeviceTheme | null;\n if (storedTheme === 'dark' || storedTheme === 'light') {\n this._applicationTheme.set(storedTheme);\n }\n\n this.initSystemThemeListener();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.mediaQueryList && this.mediaQueryListener) {\n this.mediaQueryList.removeEventListener('change', this.mediaQueryListener);\n }\n }\n\n public setApplicationTheme(theme: DeviceTheme): void {\n this._applicationTheme.set(theme);\n if (this.isBrowser) {\n localStorage.setItem('theme', theme);\n }\n }\n\n public getSystemTheme$() {\n return this.systemTheme$;\n }\n\n public getApplicationTheme$() {\n return this.applicationTheme$;\n }\n\n private detectInitialSystemTheme(): DeviceTheme {\n if (!this.isBrowser) return 'light';\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n\n private initSystemThemeListener(): void {\n this.mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n this.mediaQueryListener = (event: MediaQueryListEvent) => {\n this._systemTheme.set(event.matches ? 'dark' : 'light');\n };\n this.mediaQueryList.addEventListener('change', this.mediaQueryListener);\n }\n}\n","import { SemanticColorToken } from '../types/theme.types';\n\nexport const PALETTE_NAMES = ['orange', 'purple', 'red', 'green', 'danger', 'success', 'information', 'neutral'] as const;\nexport const SHADE_NUMBERS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000] as const;\n\nexport const TOKEN_PREFIX = 'bx';\nexport const TOKEN_DELIMITER = '-';\nexport const TOKEN_COLOR_DELIMITER = 'color';\nexport const FALLBACK_COLOR = '#000000';\n\nexport const SEMANTIC_PAIRS: Partial<Record<SemanticColorToken, SemanticColorToken>> = {\n 'bg-canvas': 'text-primary',\n 'bg-surface': 'text-primary',\n 'bg-surface-alt': 'text-primary',\n 'bg-element': 'text-primary',\n 'bg-element-hover': 'text-primary',\n\n 'text-heading': 'bg-element',\n 'text-primary': 'bg-element',\n 'text-secondary': 'bg-element',\n 'text-brand': 'bg-surface',\n 'text-inverse': 'primary',\n 'on-primary': 'primary',\n\n primary: 'primary-subtle',\n 'primary-hover': 'on-primary',\n 'primary-active': 'on-primary',\n 'primary-subtle': 'text-primary',\n\n 'border-subtle': 'bg-surface',\n 'border-default': 'bg-surface',\n 'border-strong': 'bg-surface',\n 'border-brand': 'bg-surface',\n\n 'bg-info': 'text-info',\n 'bg-info-active': 'text-info',\n 'bg-info-hover': 'text-info',\n 'bg-info-disabled': 'border-info',\n 'bg-info-subtle': 'border-info',\n 'border-info': 'bg-info',\n 'text-info': 'bg-info',\n\n 'bg-success': 'text-success',\n 'bg-success-active': 'text-success',\n 'bg-success-hover': 'text-success',\n 'bg-success-disabled': 'border-success',\n 'bg-success-subtle': 'border-success',\n 'border-success': 'bg-success',\n 'text-success': 'bg-success',\n\n 'bg-warn': 'text-warn',\n 'bg-warn-active': 'text-warn',\n 'bg-warn-hover': 'text-warn',\n 'bg-warn-disabled': 'border-warn',\n 'bg-warn-subtle': 'border-warn',\n 'border-warn': 'bg-warn',\n 'text-warn': 'bg-warn',\n\n 'bg-danger': 'text-danger',\n 'bg-danger-active': 'text-danger',\n 'bg-danger-hover': 'text-danger',\n 'bg-danger-disabled': 'border-danger',\n 'bg-danger-subtle': 'border-danger',\n 'border-danger': 'bg-danger',\n 'text-danger': 'bg-danger',\n\n 'scroll-bg': 'bg-surface',\n 'scroll-thumb': 'scroll-bg',\n 'scroll-thumb-hover': 'scroll-bg'\n};\n","export const SCROLL_LOCK_INSTANCE_IDENTIFIER = 'scroll_lock_instance_';\n","// THIS FILE IS AUTO-GENERATED. DO NOT EDIT DIRECTLY.\n// Update the $required-theme-keys in the _theme-engine.scss file instead.\n\nexport type SemanticColorToken =\n | 'bg-canvas'\n | 'bg-surface'\n | 'bg-surface-alt'\n | 'bg-element'\n | 'bg-element-hover'\n | 'bg-element-active'\n | 'primary'\n | 'primary-hover'\n | 'primary-active'\n | 'primary-subtle'\n | 'on-primary'\n | 'text-heading'\n | 'text-primary'\n | 'text-secondary'\n | 'text-brand'\n | 'text-inverse'\n | 'text-info'\n | 'text-warn'\n | 'text-success'\n | 'text-danger'\n | 'border-subtle'\n | 'border-default'\n | 'border-strong'\n | 'border-brand'\n | 'border-info'\n | 'border-success'\n | 'border-warn'\n | 'border-danger'\n | 'bg-info'\n | 'bg-info-hover'\n | 'bg-info-active'\n | 'bg-info-disabled'\n | 'bg-info-subtle'\n | 'bg-success'\n | 'bg-success-hover'\n | 'bg-success-active'\n | 'bg-success-disabled'\n | 'bg-success-subtle'\n | 'bg-warn'\n | 'bg-warn-hover'\n | 'bg-warn-active'\n | 'bg-warn-disabled'\n | 'bg-warn-subtle'\n | 'bg-danger'\n | 'bg-danger-hover'\n | 'bg-danger-active'\n | 'bg-danger-disabled'\n | 'bg-danger-subtle'\n | 'scroll-bg'\n | 'scroll-thumb'\n | 'scroll-thumb-hover';\n","import { Color, ThemeColorToken, ThemedColor } from '../types/tokens.types';\nimport { SemanticColorToken } from '../types/theme.types';\nimport * as tokenConsts from '../constants/tokens.constants';\n\n/**\n * Type Guard: Detects if a token is a static palette shade (e.g., 'orange-500')\n */\nexport function isPaletteToken(token: Color): token is ThemeColorToken {\n return /-\\d+$/.test(token);\n}\n\n/**\n * Type Guard: Detects if the provided color is a ThemedColor configuration object.\n */\nexport function isThemedColor(color: unknown): color is Extract<ThemedColor, object> {\n return color !== null && typeof color === 'object' && 'light' in color;\n}\n\n/**\n * Returns the correct CSS variable string based on the token type.\n */\nexport function resolveTokenToCssVar(token: Color): string {\n if (isPaletteToken(token)) {\n return `var(--${tokenConsts.TOKEN_PREFIX}${tokenConsts.TOKEN_DELIMITER}${tokenConsts.TOKEN_COLOR_DELIMITER}${tokenConsts.TOKEN_DELIMITER}${token})`;\n } else {\n return `var(--${tokenConsts.TOKEN_PREFIX}${tokenConsts.TOKEN_DELIMITER}${token})`;\n }\n}\n\n/**\n * Smartly resolves the complementary background token.\n */\nexport function getComplementaryToken(token: Color): Color {\n if (!isPaletteToken(token)) {\n return (tokenConsts.SEMANTIC_PAIRS[token as SemanticColorToken] as Color) || 'surface';\n }\n\n const parts = token.split(tokenConsts.TOKEN_DELIMITER);\n const shade = parts.pop();\n const palette = parts.join(tokenConsts.TOKEN_DELIMITER);\n\n const shadeNum = parseInt(shade || '500', 10);\n const bgShade = shadeNum > 400 ? 50 : 900;\n\n return `${palette}-${bgShade}` as Color;\n}\n\n/**\n * Provides the inverted value of a given token color\n */\nexport function invertPaletteToken(token: Color): Color {\n const parts = token.split(tokenConsts.TOKEN_DELIMITER);\n if (parts.length < 2) return token;\n\n const shadeStr = parts.pop();\n const base = parts.join(tokenConsts.TOKEN_DELIMITER);\n const shade = Number(shadeStr);\n\n if (isNaN(shade)) return token;\n\n let invertedShade: number;\n if (shade === 50) invertedShade = 900;\n else if (shade === 1000) invertedShade = 50;\n else invertedShade = 1000 - shade;\n\n const finalShade = (tokenConsts.SHADE_NUMBERS as readonly number[]).includes(invertedShade) ? invertedShade : shade;\n\n return `${base}-${finalShade}` as Color;\n}\n","export function uuidv4() {\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))).toString(16));\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './services/device-type.service';\nexport * from './services/scroll-lock.service';\nexport * from './services/window-dimension.service';\nexport * from './services/theming.service';\n\nexport * from './enums/desktop-os.enum';\nexport * from './enums/mobile-os.enum';\n\nexport * from './interfaces/device-state.interface';\nexport * from './interfaces/scroll-lock-config.interface';\nexport * from './interfaces/window-dimensions.interface';\n\nexport * from './constants/tokens.constants';\nexport * from './constants/window-dimension.constants';\nexport * from './constants/scroll-lock.constants';\n\nexport * from './types/core.types';\nexport * from './types/tokens.types';\nexport * from './types/theme.types';\n\nexport * from './helpers/token-functions';\nexport * from './helpers/uui4';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["tokenConsts.TOKEN_PREFIX","tokenConsts.TOKEN_DELIMITER","tokenConsts.TOKEN_COLOR_DELIMITER","tokenConsts.SEMANTIC_PAIRS","tokenConsts.SHADE_NUMBERS"],"mappings":"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"}
1
+ {"version":3,"file":"filip.mazev-blocks-core.mjs","sources":["../../../projects/blocks/core/enums/desktop-os.enum.ts","../../../projects/blocks/core/enums/mobile-os.enum.ts","../../../projects/blocks/core/services/device-type.service.ts","../../../projects/blocks/core/constants/window-dimension.constants.ts","../../../projects/blocks/core/services/window-dimension.service.ts","../../../projects/blocks/core/services/scroll-lock.service.ts","../../../projects/blocks/core/services/theming.service.ts","../../../projects/blocks/core/constants/tokens.constants.ts","../../../projects/blocks/core/constants/scroll-lock.constants.ts","../../../projects/blocks/core/types/theme.types.ts","../../../projects/blocks/core/tokens/bx-i18n.token.ts","../../../projects/blocks/core/helpers/token-functions.ts","../../../projects/blocks/core/helpers/uui4.ts","../../../projects/blocks/core/public-api.ts","../../../projects/blocks/core/filip.mazev-blocks-core.ts"],"sourcesContent":["export enum DesktopOS {\n Linux = 'linux',\n MacOS = 'mac_os',\n Unix = 'unix',\n Unknown = 'unknown',\n Windows = 'windows'\n}\n","export enum MobileOS {\n Android = 'android',\n iOS = 'ios',\n Unknown = 'unknown',\n WindowsPhone = 'Windows Phone'\n}\n","import { Injectable } from '@angular/core';\nimport { DesktopOS } from '../enums/desktop-os.enum';\nimport { MobileOS } from '../enums/mobile-os.enum';\nimport { IDeviceState } from '../interfaces/idevice-state.interface';\nimport { DeviceOS, DeviceOrientationType, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow } from '../types/core.types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceTypeService {\n private readonly isDesktopDevice = !this.isMobileDevice() && !this.isTabletDevice();\n private userAgent?: string = navigator.userAgent || navigator.vendor || (window as OperaCapableWindow)?.opera || undefined;\n\n private supportedScreenOrientation =\n (screen?.orientation || {}).type ?? (screen as LegacyScreenOrientation).mozOrientation ?? (screen as LegacyScreenOrientation).msOrientation;\n\n private safariScreenOrientation: DeviceOrientationType =\n !screen?.orientation && matchMedia('(orientation: portrait)').matches ? 'portrait-primary' : 'landscape-primary';\n\n private initialScreenOrientation: DeviceOrientationType = this.supportedScreenOrientation ?? this.safariScreenOrientation ?? 'portrait-primary';\n private screenOrientation: DeviceOrientationType = this.initialScreenOrientation;\n\n constructor() {\n if (screen.orientation) {\n screen.orientation.addEventListener('change', (ev: Event) => {\n const orientation = ev.target as ScreenOrientation | null;\n if (orientation?.type) {\n this.screenOrientation = orientation.type;\n }\n });\n }\n }\n\n public isLandscapeOrientation(): boolean {\n return ['landscape-primary', 'landscape-secondary'].includes(this.screenOrientation);\n }\n\n public isPortraitOrientation(): boolean {\n return ['portrait-primary', 'portrait-secondary'].includes(this.screenOrientation);\n }\n\n public getDeviceState(): IDeviceState {\n const isDesktop = this.isDesktopDevice;\n const isMobile = this.isMobileDevice();\n const isTablet = this.isTabletDevice();\n const mobileOS: MobileOS | undefined = this.getMobileOS();\n const isAndroidDevice = this.getDeviceOS() === MobileOS.Android;\n const isAppleDevice = this.getDeviceOS() === MobileOS.iOS || this.getDeviceOS() === DesktopOS.MacOS;\n const isUnknownMobileDevice = this.getDeviceOS() === MobileOS.Unknown;\n const desktopOS: DesktopOS | undefined = this.getDesktopOS();\n const isWindowsDesktop = this.getDeviceOS() === DesktopOS.Windows;\n const isLinuxOrUnixDesktop = this.getDeviceOS() === DesktopOS.Linux || this.getDeviceOS() === DesktopOS.Unix;\n\n return {\n isDesktop,\n desktopOS,\n isWindowsDesktop,\n isLinuxOrUnixDesktop,\n isMobile,\n mobileOS,\n isAndroidDevice,\n isAppleDevice,\n isUnknownMobileDevice,\n isTablet,\n isLandscapeOrientation: () => this.isLandscapeOrientation(),\n isPortraitOrientation: () => this.isPortraitOrientation()\n };\n }\n\n private isMobileDevice(): boolean {\n const regexs = [/(Android)(.+)(Mobile)/i, /BlackBerry/i, /iPhone|iPod/i, /Opera Mini/i, /IEMobile/i];\n return regexs.some((b) => this.userAgent?.match(b) !== null);\n }\n\n private isTabletDevice(): boolean {\n const regex = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/;\n return regex.test(this.userAgent?.toLowerCase() ?? '');\n }\n\n private getMobileOS(): MobileOS | undefined {\n if (this.isMobileDevice() && this.userAgent) {\n if (/windows phone/i.test(this.userAgent)) return MobileOS.WindowsPhone;\n else if (/android/i.test(this.userAgent)) return MobileOS.Android;\n else if (/iPad|iPhone|iPod/.test(this.userAgent) && !(window as MSStreamWindow).MSStream) return MobileOS.iOS;\n\n return MobileOS.Unknown;\n }\n return undefined;\n }\n\n private getDesktopOS(): DesktopOS | undefined {\n if (this.isDesktopDevice && this.userAgent) {\n if (this.userAgent.indexOf('Win') !== -1) return DesktopOS.Windows;\n else if (this.userAgent.indexOf('Mac') !== -1) return DesktopOS.MacOS;\n else if (this.userAgent.indexOf('X11') !== -1) return DesktopOS.Unix;\n else if (this.userAgent.indexOf('Linux') !== -1) return DesktopOS.Linux;\n\n return DesktopOS.Unknown;\n } else return undefined;\n }\n\n private getDeviceOS(): DeviceOS | undefined {\n return this.getMobileOS() ?? this.getDesktopOS();\n }\n}\n","export const BREAKPOINTS = {\n xs: 360,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n '3xl': 1920,\n '4xl': 2560\n} as const;\n","import { Injectable, inject, NgZone, PLATFORM_ID, signal, computed } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\nimport { BREAKPOINTS } from '../constants/window-dimension.constants';\nimport { IWindowDimensions } from '../interfaces/iwindow-dimensions.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowDimensionsService {\n public readonly ngZone = inject(NgZone);\n public readonly platformId = inject(PLATFORM_ID);\n\n public readonly isBrowser = isPlatformBrowser(this.platformId);\n\n public readonly _dimensions = signal<IWindowDimensions>(this.getCurrentDimensions());\n\n public readonly dimensions = this._dimensions.asReadonly();\n\n public readonly isMobile = computed(() => this.dimensions().width < BREAKPOINTS.md);\n public readonly isTablet = computed(() => this.dimensions().width >= BREAKPOINTS.md && this.dimensions().width < BREAKPOINTS.lg);\n public readonly isDesktop = computed(() => this.dimensions().width >= BREAKPOINTS.lg);\n\n public readonly breakpoints = BREAKPOINTS;\n\n constructor() {\n this.initResizeListener();\n }\n\n private getCurrentDimensions(): IWindowDimensions {\n if (!this.isBrowser) {\n return { width: 0, height: 0 };\n }\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n }\n\n private initResizeListener(): void {\n if (!this.isBrowser) return;\n\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(150),\n map(() => this.getCurrentDimensions()),\n distinctUntilChanged((prev, curr) => prev.width === curr.width && prev.height === curr.height)\n )\n .subscribe((dims) => {\n this.ngZone.run(() => {\n this._dimensions.set(dims);\n });\n });\n });\n }\n}\n","import { Injectable, OnDestroy, inject, signal, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DeviceTypeService } from './device-type.service';\nimport { WindowDimensionsService } from './window-dimension.service';\nimport { IScrollLockConfig } from '../interfaces/iscroll-lock-config.interface';\n\n@Injectable({ providedIn: 'root' })\nexport class ScrollLockService implements OnDestroy {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly deviceTypeService = inject(DeviceTypeService);\n private readonly windowDimensionsService = inject(WindowDimensionsService);\n\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n private readonly activeLocks = new Map<string, IScrollLockConfig>();\n private readonly boundHandleTouchMove = this.handleTouchMove.bind(this);\n private readonly boundPreventDefault = this.preventDefault.bind(this);\n\n public readonly _isScrollDisabled = signal(false);\n public readonly isScrollDisabled = this._isScrollDisabled.asReadonly();\n\n private previousBodyPadding: string | null = null;\n\n private pendingListenerTimeout: number | null = null;\n\n public ngOnDestroy(): void {\n if (!this.isBrowser) return;\n this.clearPendingTimeout();\n this.forceCleanupAll();\n }\n\n public disableScroll(usageId: string, config: IScrollLockConfig): void {\n if (!this.isBrowser) return;\n\n const wasDisabled = this._isScrollDisabled();\n\n this.activeLocks.set(usageId, config);\n this._isScrollDisabled.set(true);\n\n if (wasDisabled) return;\n\n const documentWidth = document.documentElement.clientWidth;\n const windowWidth = window.innerWidth;\n const scrollBarWidth = windowWidth - documentWidth;\n\n if (scrollBarWidth > 0) {\n this.previousBodyPadding = document.body.style.paddingRight;\n const computedPadding = parseInt(getComputedStyle(document.body).paddingRight, 10) || 0;\n\n document.body.style.setProperty('padding-right', `${computedPadding + scrollBarWidth}px`, 'important');\n }\n\n document.body.style.setProperty('overflow', 'hidden', 'important');\n\n if (config.handleTouchInput !== false) {\n document.body.style.setProperty('touch-action', 'none', 'important');\n }\n\n this.clearPendingTimeout();\n\n this.pendingListenerTimeout = window.setTimeout(\n () => {\n if (!this._isScrollDisabled()) return;\n\n if (config.handleTouchInput === true) {\n document.body.addEventListener('touchmove', this.boundHandleTouchMove, { passive: false });\n }\n\n if (config.handleExtremeOverflow === true) {\n const opt = { passive: false };\n window.addEventListener('wheel', this.boundPreventDefault, opt);\n window.addEventListener('mousewheel', this.boundPreventDefault, opt);\n window.addEventListener('scroll', this.boundPreventDefault, opt);\n window.addEventListener('DOMMouseScroll', this.boundPreventDefault, opt);\n }\n },\n (config.animationDuration ?? 0) + 10\n );\n }\n\n public enableScroll(usageId: string, extremeOverflow?: boolean): void {\n if (!this.isBrowser) return;\n\n if (!this.activeLocks.has(usageId)) return;\n\n this.activeLocks.delete(usageId);\n\n if (this.activeLocks.size > 0) return;\n\n this.updateStateAndCleanup(extremeOverflow);\n }\n\n private getActiveConfig(): IScrollLockConfig | null {\n if (this.activeLocks.size === 0) return null;\n const keys = Array.from(this.activeLocks.keys());\n return this.activeLocks.get(keys[keys.length - 1]) ?? null;\n }\n\n private updateStateAndCleanup(extremeOverflow?: boolean): void {\n if (!this.isBrowser) return;\n\n this.clearPendingTimeout();\n\n this._isScrollDisabled.set(false);\n\n document.body.style.removeProperty('overflow');\n\n if (this.previousBodyPadding !== null) {\n if (this.previousBodyPadding) {\n document.body.style.setProperty('padding-right', this.previousBodyPadding);\n } else {\n document.body.style.removeProperty('padding-right');\n }\n this.previousBodyPadding = null;\n }\n\n document.body.removeEventListener('touchmove', this.boundHandleTouchMove);\n document.body.style.removeProperty('touch-action');\n\n if (extremeOverflow !== false) {\n window.removeEventListener('wheel', this.boundPreventDefault);\n window.removeEventListener('mousewheel', this.boundPreventDefault);\n window.removeEventListener('scroll', this.boundPreventDefault);\n window.removeEventListener('DOMMouseScroll', this.boundPreventDefault);\n }\n }\n\n private forceCleanupAll(): void {\n this.activeLocks.clear();\n this.updateStateAndCleanup(true);\n }\n\n private clearPendingTimeout(): void {\n if (this.pendingListenerTimeout !== null) {\n clearTimeout(this.pendingListenerTimeout);\n this.pendingListenerTimeout = null;\n }\n }\n\n private handleTouchMove(event: Event): void {\n const targetNode = event.target as Node;\n const cfg = this.getActiveConfig();\n\n if (!this.isAllowedToScroll(targetNode) && (cfg === null || cfg.handleTouchInput !== false)) {\n if (\n cfg === null ||\n cfg.mobileOnlyTouchPrevention !== true ||\n (cfg.mobileOnlyTouchPrevention === true &&\n (!this.deviceTypeService.getDeviceState().isMobile || !this.deviceTypeService.getDeviceState().isTablet) &&\n this.windowDimensionsService.dimensions().width < this.windowDimensionsService.breakpoints.sm)\n ) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n private isAllowedToScroll(targetNode: Node): boolean {\n const cfg = this.getActiveConfig();\n const allow = cfg?.allowTouchInputOn;\n\n if (!allow) return true;\n\n if (Array.isArray(allow)) {\n if (allow.length === 0) return true;\n return allow.some((el) => el.contains(targetNode));\n }\n\n return false;\n }\n\n private preventDefault(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","import { Injectable, OnDestroy, inject, signal, PLATFORM_ID, computed } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DeviceTheme } from '../types/core.types';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemingService implements OnDestroy {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _systemTheme = signal<DeviceTheme>('light');\n private readonly _applicationTheme = signal<DeviceTheme | null>(null);\n\n public readonly systemTheme = this._systemTheme.asReadonly();\n public readonly applicationTheme = this._applicationTheme.asReadonly();\n public readonly activeTheme = computed(() => this.applicationTheme() ?? this.systemTheme());\n\n private readonly systemTheme$ = toObservable(this._systemTheme);\n private readonly applicationTheme$ = toObservable(this._applicationTheme);\n\n private mediaQueryList?: MediaQueryList;\n private mediaQueryListener?: (event: MediaQueryListEvent) => void;\n\n constructor() {\n if (this.isBrowser) {\n this._systemTheme.set(this.detectInitialSystemTheme());\n\n const storedTheme = localStorage.getItem('theme') as DeviceTheme | null;\n if (storedTheme === 'dark' || storedTheme === 'light') {\n this._applicationTheme.set(storedTheme);\n }\n\n this.initSystemThemeListener();\n }\n }\n\n public ngOnDestroy(): void {\n if (this.mediaQueryList && this.mediaQueryListener) {\n this.mediaQueryList.removeEventListener('change', this.mediaQueryListener);\n }\n }\n\n public setApplicationTheme(theme: DeviceTheme): void {\n this._applicationTheme.set(theme);\n if (this.isBrowser) {\n localStorage.setItem('theme', theme);\n }\n }\n\n public getSystemTheme$() {\n return this.systemTheme$;\n }\n\n public getApplicationTheme$() {\n return this.applicationTheme$;\n }\n\n private detectInitialSystemTheme(): DeviceTheme {\n if (!this.isBrowser) return 'light';\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n\n private initSystemThemeListener(): void {\n this.mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n this.mediaQueryListener = (event: MediaQueryListEvent) => {\n this._systemTheme.set(event.matches ? 'dark' : 'light');\n };\n this.mediaQueryList.addEventListener('change', this.mediaQueryListener);\n }\n}\n","import { SemanticColorToken } from '../types/theme.types';\n\nexport const PALETTE_NAMES = ['orange', 'purple', 'red', 'green', 'danger', 'success', 'information', 'neutral'] as const;\nexport const SHADE_NUMBERS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000] as const;\n\nexport const TOKEN_PREFIX = 'bx';\nexport const TOKEN_DELIMITER = '-';\nexport const TOKEN_COLOR_DELIMITER = 'color';\nexport const FALLBACK_COLOR = '#000000';\n\nexport const SEMANTIC_PAIRS: Partial<Record<SemanticColorToken, SemanticColorToken>> = {\n 'bg-canvas': 'text-primary',\n 'bg-surface': 'text-primary',\n 'bg-surface-alt': 'text-primary',\n 'bg-element': 'text-primary',\n 'bg-element-hover': 'text-primary',\n\n 'text-heading': 'bg-element',\n 'text-primary': 'bg-element',\n 'text-secondary': 'bg-element',\n 'text-brand': 'bg-surface',\n 'text-inverse': 'primary',\n 'on-primary': 'primary',\n\n primary: 'primary-subtle',\n 'primary-hover': 'on-primary',\n 'primary-active': 'on-primary',\n 'primary-subtle': 'text-primary',\n\n 'border-subtle': 'bg-surface',\n 'border-default': 'bg-surface',\n 'border-strong': 'bg-surface',\n 'border-brand': 'bg-surface',\n\n 'bg-info': 'text-info',\n 'bg-info-active': 'text-info',\n 'bg-info-hover': 'text-info',\n 'bg-info-disabled': 'border-info',\n 'bg-info-subtle': 'border-info',\n 'border-info': 'bg-info',\n 'text-info': 'bg-info',\n\n 'bg-success': 'text-success',\n 'bg-success-active': 'text-success',\n 'bg-success-hover': 'text-success',\n 'bg-success-disabled': 'border-success',\n 'bg-success-subtle': 'border-success',\n 'border-success': 'bg-success',\n 'text-success': 'bg-success',\n\n 'bg-warn': 'text-warn',\n 'bg-warn-active': 'text-warn',\n 'bg-warn-hover': 'text-warn',\n 'bg-warn-disabled': 'border-warn',\n 'bg-warn-subtle': 'border-warn',\n 'border-warn': 'bg-warn',\n 'text-warn': 'bg-warn',\n\n 'bg-danger': 'text-danger',\n 'bg-danger-active': 'text-danger',\n 'bg-danger-hover': 'text-danger',\n 'bg-danger-disabled': 'border-danger',\n 'bg-danger-subtle': 'border-danger',\n 'border-danger': 'bg-danger',\n 'text-danger': 'bg-danger',\n\n 'scroll-bg': 'bg-surface',\n 'scroll-thumb': 'scroll-bg',\n 'scroll-thumb-hover': 'scroll-bg'\n};\n","export const SCROLL_LOCK_INSTANCE_IDENTIFIER = 'scroll_lock_instance_';\n","// THIS FILE IS AUTO-GENERATED. DO NOT EDIT DIRECTLY.\n// Update the $required-theme-keys in the _theme-engine.scss file instead.\n\nexport type SemanticColorToken =\n | 'bg-canvas'\n | 'bg-surface'\n | 'bg-surface-alt'\n | 'bg-element'\n | 'bg-element-hover'\n | 'bg-element-active'\n | 'primary'\n | 'primary-hover'\n | 'primary-active'\n | 'primary-subtle'\n | 'on-primary'\n | 'text-heading'\n | 'text-primary'\n | 'text-secondary'\n | 'text-brand'\n | 'text-inverse'\n | 'text-info'\n | 'text-warn'\n | 'text-success'\n | 'text-danger'\n | 'border-subtle'\n | 'border-default'\n | 'border-strong'\n | 'border-brand'\n | 'border-info'\n | 'border-success'\n | 'border-warn'\n | 'border-danger'\n | 'bg-info'\n | 'bg-info-hover'\n | 'bg-info-active'\n | 'bg-info-disabled'\n | 'bg-info-subtle'\n | 'bg-success'\n | 'bg-success-hover'\n | 'bg-success-active'\n | 'bg-success-disabled'\n | 'bg-success-subtle'\n | 'bg-warn'\n | 'bg-warn-hover'\n | 'bg-warn-active'\n | 'bg-warn-disabled'\n | 'bg-warn-subtle'\n | 'bg-danger'\n | 'bg-danger-hover'\n | 'bg-danger-active'\n | 'bg-danger-disabled'\n | 'bg-danger-subtle'\n | 'scroll-bg'\n | 'scroll-thumb'\n | 'scroll-thumb-hover';\n","import { InjectionToken } from \"@angular/core\";\nimport { IBxI18nAdapter } from \"../interfaces/ibx-i18n-adapter.interface\";\n\nexport const BX_I18N = new InjectionToken<IBxI18nAdapter>('BX_I18N');","import { Color, ThemeColorToken, ThemedColor } from '../types/tokens.types';\nimport { SemanticColorToken } from '../types/theme.types';\nimport * as tokenConsts from '../constants/tokens.constants';\n\n/**\n * Type Guard: Detects if a token is a static palette shade (e.g., 'orange-500')\n */\nexport function isPaletteToken(token: Color): token is ThemeColorToken {\n return /-\\d+$/.test(token);\n}\n\n/**\n * Type Guard: Detects if the provided color is a ThemedColor configuration object.\n */\nexport function isThemedColor(color: unknown): color is Extract<ThemedColor, object> {\n return color !== null && typeof color === 'object' && 'light' in color;\n}\n\n/**\n * Returns the correct CSS variable string based on the token type.\n */\nexport function resolveTokenToCssVar(token: Color): string {\n if (isPaletteToken(token)) {\n return `var(--${tokenConsts.TOKEN_PREFIX}${tokenConsts.TOKEN_DELIMITER}${tokenConsts.TOKEN_COLOR_DELIMITER}${tokenConsts.TOKEN_DELIMITER}${token})`;\n } else {\n return `var(--${tokenConsts.TOKEN_PREFIX}${tokenConsts.TOKEN_DELIMITER}${token})`;\n }\n}\n\n/**\n * Smartly resolves the complementary background token.\n */\nexport function getComplementaryToken(token: Color): Color {\n if (!isPaletteToken(token)) {\n return (tokenConsts.SEMANTIC_PAIRS[token as SemanticColorToken] as Color) || 'surface';\n }\n\n const parts = token.split(tokenConsts.TOKEN_DELIMITER);\n const shade = parts.pop();\n const palette = parts.join(tokenConsts.TOKEN_DELIMITER);\n\n const shadeNum = parseInt(shade || '500', 10);\n const bgShade = shadeNum > 400 ? 50 : 900;\n\n return `${palette}-${bgShade}` as Color;\n}\n\n/**\n * Provides the inverted value of a given token color\n */\nexport function invertPaletteToken(token: Color): Color {\n const parts = token.split(tokenConsts.TOKEN_DELIMITER);\n if (parts.length < 2) return token;\n\n const shadeStr = parts.pop();\n const base = parts.join(tokenConsts.TOKEN_DELIMITER);\n const shade = Number(shadeStr);\n\n if (isNaN(shade)) return token;\n\n let invertedShade: number;\n if (shade === 50) invertedShade = 900;\n else if (shade === 1000) invertedShade = 50;\n else invertedShade = 1000 - shade;\n\n const finalShade = (tokenConsts.SHADE_NUMBERS as readonly number[]).includes(invertedShade) ? invertedShade : shade;\n\n return `${base}-${finalShade}` as Color;\n}\n","export function uuidv4() {\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))).toString(16));\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './services/device-type.service';\nexport * from './services/scroll-lock.service';\nexport * from './services/window-dimension.service';\nexport * from './services/theming.service';\n\nexport * from './enums/desktop-os.enum';\nexport * from './enums/mobile-os.enum';\n\nexport * from './interfaces/ibx-i18n-adapter.interface';\nexport * from './interfaces/idevice-state.interface';\nexport * from './interfaces/iscroll-lock-config.interface';\nexport * from './interfaces/iwindow-dimensions.interface';\n\nexport * from './constants/tokens.constants';\nexport * from './constants/window-dimension.constants';\nexport * from './constants/scroll-lock.constants';\n\nexport * from './types/core.types';\nexport * from './types/tokens.types';\nexport * from './types/theme.types';\n\nexport * from './tokens/bx-i18n.token';\n\nexport * from './helpers/token-functions';\nexport * from './helpers/uui4';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["tokenConsts.TOKEN_PREFIX","tokenConsts.TOKEN_DELIMITER","tokenConsts.TOKEN_COLOR_DELIMITER","tokenConsts.SEMANTIC_PAIRS","tokenConsts.SHADE_NUMBERS"],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, computed, Injectable } from '@angular/core';
2
+ import { InjectionToken, inject, computed, Injectable, input, Component } from '@angular/core';
3
3
  import { Router, NavigationEnd } from '@angular/router';
4
+ import { NgClass } from '@angular/common';
4
5
  import { filter } from 'rxjs';
5
6
  import { toSignal } from '@angular/core/rxjs-interop';
7
+ import { BX_I18N } from '@filip.mazev/blocks/core';
8
+ import { Icon } from '@filip.mazev/blocks/icons';
6
9
 
7
10
  const NAVIGATION_CONFIG = new InjectionToken('NAVIGATION_CONFIG');
8
11
 
9
- const NAVIGATION_I18N = new InjectionToken('NAVIGATION_I18N');
10
-
11
12
  const NAVIGATION_ACCESS_ADAPTER = new InjectionToken('NAVIGATION_ACCESS_ADAPTER');
12
13
 
13
14
  class NavigationService {
14
15
  router = inject(Router);
15
16
  config = inject(NAVIGATION_CONFIG, { optional: true });
16
- i18n = inject(NAVIGATION_I18N, { optional: true });
17
+ i18n = inject(BX_I18N, { optional: true });
17
18
  accessAdapter = inject(NAVIGATION_ACCESS_ADAPTER, { optional: true });
18
19
  navEnd = toSignal(this.router.events.pipe(filter((e) => e instanceof NavigationEnd)));
19
20
  current = computed(() => {
@@ -214,6 +215,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
214
215
  args: [{ providedIn: 'root' }]
215
216
  }] });
216
217
 
218
+ class Breadcrumbs {
219
+ navigationService = inject(NavigationService);
220
+ router = inject(Router);
221
+ minimumBreadcrumbs = input(2, ...(ngDevMode ? [{ debugName: "minimumBreadcrumbs" }] : /* istanbul ignore next */ []));
222
+ isAnimated = input(true, ...(ngDevMode ? [{ debugName: "isAnimated" }] : /* istanbul ignore next */ []));
223
+ divider = input('chevron-right', ...(ngDevMode ? [{ debugName: "divider" }] : /* istanbul ignore next */ []));
224
+ showBreadcumbs = computed(() => {
225
+ const minimum = Math.max(1, this.minimumBreadcrumbs());
226
+ return this.current().breadcrumbs.length >= minimum;
227
+ }, ...(ngDevMode ? [{ debugName: "showBreadcumbs" }] : /* istanbul ignore next */ []));
228
+ ariaLabel = computed(() => {
229
+ const labels = this.current().breadcrumbs.map(crumb => crumb.label).join(' > ');
230
+ return `Breadcrumbs: ${labels}`;
231
+ }, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
232
+ current = this.navigationService.current;
233
+ navigateTo(url) {
234
+ this.router.navigateByUrl(url);
235
+ }
236
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Breadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component });
237
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: Breadcrumbs, isStandalone: true, selector: "bx-breadcrumbs", inputs: { minimumBreadcrumbs: { classPropertyName: "minimumBreadcrumbs", publicName: "minimumBreadcrumbs", isSignal: true, isRequired: false, transformFunction: null }, isAnimated: { classPropertyName: "isAnimated", publicName: "isAnimated", isSignal: true, isRequired: false, transformFunction: null }, divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if(showBreadcumbs()) {\n<nav class=\"breadcrumbs\" [aria-label]=\"ariaLabel()\">\n @for (crumb of current().breadcrumbs; track crumb.route; let i = $index) {\n <button class=\"crumb\" (click)=\"navigateTo(crumb.route)\" [ngClass]=\"{\n 'last': i === current().breadcrumbs.length - 1,\n 'breadcrumb-on-appear': i === current().breadcrumbs.length - 1 && current().breadcrumbs.length > 1\n }\" [style.--crumb-index]=\"i\" [class.animated]=\"isAnimated()\">\n {{ crumb.label }}\n </button>\n\n @if (i !== current().breadcrumbs.length - 1) {\n <bx-icon [name]=\"divider()\" size=\"16\" class=\"breadcrumb-separator\" />\n }\n }\n</nav>\n}", styles: [".bx-p-0{padding:0}.bx-pt-0{padding-top:0}.bx-pr-0{padding-right:0}.bx-pb-0{padding-bottom:0}.bx-pl-0{padding-left:0}.bx-px-0{padding-left:0;padding-right:0}.bx-py-0{padding-top:0;padding-bottom:0}.bx-m-0{margin:0}.bx-mt-0{margin-top:0}.bx-mr-0{margin-right:0}.bx-mb-0{margin-bottom:0}.bx-ml-0{margin-left:0}.bx-mx-0{margin-left:0;margin-right:0}.bx-my-0{margin-top:0;margin-bottom:0}.bx-p-1{padding:.25rem}.bx-pt-1{padding-top:.25rem}.bx-pr-1{padding-right:.25rem}.bx-pb-1{padding-bottom:.25rem}.bx-pl-1{padding-left:.25rem}.bx-px-1{padding-left:.25rem;padding-right:.25rem}.bx-py-1{padding-top:.25rem;padding-bottom:.25rem}.bx-m-1{margin:.25rem}.bx-mt-1{margin-top:.25rem}.bx-mr-1{margin-right:.25rem}.bx-mb-1{margin-bottom:.25rem}.bx-ml-1{margin-left:.25rem}.bx-mx-1{margin-left:.25rem;margin-right:.25rem}.bx-my-1{margin-top:.25rem;margin-bottom:.25rem}.bx-p-2{padding:.5rem}.bx-pt-2{padding-top:.5rem}.bx-pr-2{padding-right:.5rem}.bx-pb-2{padding-bottom:.5rem}.bx-pl-2{padding-left:.5rem}.bx-px-2{padding-left:.5rem;padding-right:.5rem}.bx-py-2{padding-top:.5rem;padding-bottom:.5rem}.bx-m-2{margin:.5rem}.bx-mt-2{margin-top:.5rem}.bx-mr-2{margin-right:.5rem}.bx-mb-2{margin-bottom:.5rem}.bx-ml-2{margin-left:.5rem}.bx-mx-2{margin-left:.5rem;margin-right:.5rem}.bx-my-2{margin-top:.5rem;margin-bottom:.5rem}.bx-p-3{padding:.75rem}.bx-pt-3{padding-top:.75rem}.bx-pr-3{padding-right:.75rem}.bx-pb-3{padding-bottom:.75rem}.bx-pl-3{padding-left:.75rem}.bx-px-3{padding-left:.75rem;padding-right:.75rem}.bx-py-3{padding-top:.75rem;padding-bottom:.75rem}.bx-m-3{margin:.75rem}.bx-mt-3{margin-top:.75rem}.bx-mr-3{margin-right:.75rem}.bx-mb-3{margin-bottom:.75rem}.bx-ml-3{margin-left:.75rem}.bx-mx-3{margin-left:.75rem;margin-right:.75rem}.bx-my-3{margin-top:.75rem;margin-bottom:.75rem}.bx-p-4{padding:1rem}.bx-pt-4{padding-top:1rem}.bx-pr-4{padding-right:1rem}.bx-pb-4{padding-bottom:1rem}.bx-pl-4{padding-left:1rem}.bx-px-4{padding-left:1rem;padding-right:1rem}.bx-py-4{padding-top:1rem;padding-bottom:1rem}.bx-m-4{margin:1rem}.bx-mt-4{margin-top:1rem}.bx-mr-4{margin-right:1rem}.bx-mb-4{margin-bottom:1rem}.bx-ml-4{margin-left:1rem}.bx-mx-4{margin-left:1rem;margin-right:1rem}.bx-my-4{margin-top:1rem;margin-bottom:1rem}.bx-p-5{padding:1.25rem}.bx-pt-5{padding-top:1.25rem}.bx-pr-5{padding-right:1.25rem}.bx-pb-5{padding-bottom:1.25rem}.bx-pl-5{padding-left:1.25rem}.bx-px-5{padding-left:1.25rem;padding-right:1.25rem}.bx-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.bx-m-5{margin:1.25rem}.bx-mt-5{margin-top:1.25rem}.bx-mr-5{margin-right:1.25rem}.bx-mb-5{margin-bottom:1.25rem}.bx-ml-5{margin-left:1.25rem}.bx-mx-5{margin-left:1.25rem;margin-right:1.25rem}.bx-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.bx-p-6{padding:1.5rem}.bx-pt-6{padding-top:1.5rem}.bx-pr-6{padding-right:1.5rem}.bx-pb-6{padding-bottom:1.5rem}.bx-pl-6{padding-left:1.5rem}.bx-px-6{padding-left:1.5rem;padding-right:1.5rem}.bx-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.bx-m-6{margin:1.5rem}.bx-mt-6{margin-top:1.5rem}.bx-mr-6{margin-right:1.5rem}.bx-mb-6{margin-bottom:1.5rem}.bx-ml-6{margin-left:1.5rem}.bx-mx-6{margin-left:1.5rem;margin-right:1.5rem}.bx-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.bx-p-8{padding:2rem}.bx-pt-8{padding-top:2rem}.bx-pr-8{padding-right:2rem}.bx-pb-8{padding-bottom:2rem}.bx-pl-8{padding-left:2rem}.bx-px-8{padding-left:2rem;padding-right:2rem}.bx-py-8{padding-top:2rem;padding-bottom:2rem}.bx-m-8{margin:2rem}.bx-mt-8{margin-top:2rem}.bx-mr-8{margin-right:2rem}.bx-mb-8{margin-bottom:2rem}.bx-ml-8{margin-left:2rem}.bx-mx-8{margin-left:2rem;margin-right:2rem}.bx-my-8{margin-top:2rem;margin-bottom:2rem}.bx-p-10{padding:2.5rem}.bx-pt-10{padding-top:2.5rem}.bx-pr-10{padding-right:2.5rem}.bx-pb-10{padding-bottom:2.5rem}.bx-pl-10{padding-left:2.5rem}.bx-px-10{padding-left:2.5rem;padding-right:2.5rem}.bx-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.bx-m-10{margin:2.5rem}.bx-mt-10{margin-top:2.5rem}.bx-mr-10{margin-right:2.5rem}.bx-mb-10{margin-bottom:2.5rem}.bx-ml-10{margin-left:2.5rem}.bx-mx-10{margin-left:2.5rem;margin-right:2.5rem}.bx-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.bx-p-12{padding:3rem}.bx-pt-12{padding-top:3rem}.bx-pr-12{padding-right:3rem}.bx-pb-12{padding-bottom:3rem}.bx-pl-12{padding-left:3rem}.bx-px-12{padding-left:3rem;padding-right:3rem}.bx-py-12{padding-top:3rem;padding-bottom:3rem}.bx-m-12{margin:3rem}.bx-mt-12{margin-top:3rem}.bx-mr-12{margin-right:3rem}.bx-mb-12{margin-bottom:3rem}.bx-ml-12{margin-left:3rem}.bx-mx-12{margin-left:3rem;margin-right:3rem}.bx-my-12{margin-top:3rem;margin-bottom:3rem}.bx-rounded-none{border-radius:0}.bx-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.bx-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.bx-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.bx-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.bx-rounded-sm{border-radius:.25rem}.bx-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.bx-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.bx-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.bx-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.bx-rounded-md{border-radius:.5rem}.bx-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bx-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bx-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.bx-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.bx-rounded-lg{border-radius:.75rem}.bx-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.bx-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.bx-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.bx-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.bx-rounded-xl{border-radius:1rem}.bx-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.bx-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.bx-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.bx-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.bx-rounded-2xl{border-radius:1.5rem}.bx-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.bx-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.bx-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.bx-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.bx-rounded-3xl{border-radius:1.875rem}.bx-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.bx-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.bx-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.bx-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.bx-rounded-pill{border-radius:9999px}.bx-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.bx-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.bx-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.bx-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.bx-shadow-sm{box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a}.bx-shadow-md{box-shadow:0 4px 8px -1px #00000026,0 2px 4px -2px #0000001f}.bx-shadow-lg{box-shadow:0 12px 20px -3px #0003,0 4px 6px -2px #0000001a}.bx-shadow-xl{box-shadow:0 24px 32px -5px #00000040,0 10px 12px -5px #00000026}.bx-shadow-modal{box-shadow:0 8px 20px #0000001f}.bx-shadow-toast{box-shadow:0 4px 12px #00000026}.bx-z-base{z-index:1}.bx-z-dropdown{z-index:100}.bx-z-sticky{z-index:200}.bx-z-fixed{z-index:300}.bx-z-modal{z-index:400}.bx-z-popover{z-index:500}.bx-z-tooltip{z-index:600}.bx-z-toast{z-index:9999}.bx-bg-orange-50{background-color:var(--bx-color-orange-50)}.bx-text-orange-50{color:var(--bx-color-orange-50)}.bx-border-orange-50{border-color:var(--bx-color-orange-50)}.bx-bg-orange-100{background-color:var(--bx-color-orange-100)}.bx-text-orange-100{color:var(--bx-color-orange-100)}.bx-border-orange-100{border-color:var(--bx-color-orange-100)}.bx-bg-orange-200{background-color:var(--bx-color-orange-200)}.bx-text-orange-200{color:var(--bx-color-orange-200)}.bx-border-orange-200{border-color:var(--bx-color-orange-200)}.bx-bg-orange-300{background-color:var(--bx-color-orange-300)}.bx-text-orange-300{color:var(--bx-color-orange-300)}.bx-border-orange-300{border-color:var(--bx-color-orange-300)}.bx-bg-orange-400{background-color:var(--bx-color-orange-400)}.bx-text-orange-400{color:var(--bx-color-orange-400)}.bx-border-orange-400{border-color:var(--bx-color-orange-400)}.bx-bg-orange-500{background-color:var(--bx-color-orange-500)}.bx-text-orange-500{color:var(--bx-color-orange-500)}.bx-border-orange-500{border-color:var(--bx-color-orange-500)}.bx-bg-orange-600{background-color:var(--bx-color-orange-600)}.bx-text-orange-600{color:var(--bx-color-orange-600)}.bx-border-orange-600{border-color:var(--bx-color-orange-600)}.bx-bg-orange-700{background-color:var(--bx-color-orange-700)}.bx-text-orange-700{color:var(--bx-color-orange-700)}.bx-border-orange-700{border-color:var(--bx-color-orange-700)}.bx-bg-orange-800{background-color:var(--bx-color-orange-800)}.bx-text-orange-800{color:var(--bx-color-orange-800)}.bx-border-orange-800{border-color:var(--bx-color-orange-800)}.bx-bg-orange-900{background-color:var(--bx-color-orange-900)}.bx-text-orange-900{color:var(--bx-color-orange-900)}.bx-border-orange-900{border-color:var(--bx-color-orange-900)}.bx-bg-orange-1000{background-color:var(--bx-color-orange-1000)}.bx-text-orange-1000{color:var(--bx-color-orange-1000)}.bx-border-orange-1000{border-color:var(--bx-color-orange-1000)}.bx-bg-purple-50{background-color:var(--bx-color-purple-50)}.bx-text-purple-50{color:var(--bx-color-purple-50)}.bx-border-purple-50{border-color:var(--bx-color-purple-50)}.bx-bg-purple-100{background-color:var(--bx-color-purple-100)}.bx-text-purple-100{color:var(--bx-color-purple-100)}.bx-border-purple-100{border-color:var(--bx-color-purple-100)}.bx-bg-purple-200{background-color:var(--bx-color-purple-200)}.bx-text-purple-200{color:var(--bx-color-purple-200)}.bx-border-purple-200{border-color:var(--bx-color-purple-200)}.bx-bg-purple-300{background-color:var(--bx-color-purple-300)}.bx-text-purple-300{color:var(--bx-color-purple-300)}.bx-border-purple-300{border-color:var(--bx-color-purple-300)}.bx-bg-purple-400{background-color:var(--bx-color-purple-400)}.bx-text-purple-400{color:var(--bx-color-purple-400)}.bx-border-purple-400{border-color:var(--bx-color-purple-400)}.bx-bg-purple-500{background-color:var(--bx-color-purple-500)}.bx-text-purple-500{color:var(--bx-color-purple-500)}.bx-border-purple-500{border-color:var(--bx-color-purple-500)}.bx-bg-purple-600{background-color:var(--bx-color-purple-600)}.bx-text-purple-600{color:var(--bx-color-purple-600)}.bx-border-purple-600{border-color:var(--bx-color-purple-600)}.bx-bg-purple-700{background-color:var(--bx-color-purple-700)}.bx-text-purple-700{color:var(--bx-color-purple-700)}.bx-border-purple-700{border-color:var(--bx-color-purple-700)}.bx-bg-purple-800{background-color:var(--bx-color-purple-800)}.bx-text-purple-800{color:var(--bx-color-purple-800)}.bx-border-purple-800{border-color:var(--bx-color-purple-800)}.bx-bg-purple-900{background-color:var(--bx-color-purple-900)}.bx-text-purple-900{color:var(--bx-color-purple-900)}.bx-border-purple-900{border-color:var(--bx-color-purple-900)}.bx-bg-purple-1000{background-color:var(--bx-color-purple-1000)}.bx-text-purple-1000{color:var(--bx-color-purple-1000)}.bx-border-purple-1000{border-color:var(--bx-color-purple-1000)}.bx-bg-red-50{background-color:var(--bx-color-red-50)}.bx-text-red-50{color:var(--bx-color-red-50)}.bx-border-red-50{border-color:var(--bx-color-red-50)}.bx-bg-red-100{background-color:var(--bx-color-red-100)}.bx-text-red-100{color:var(--bx-color-red-100)}.bx-border-red-100{border-color:var(--bx-color-red-100)}.bx-bg-red-200{background-color:var(--bx-color-red-200)}.bx-text-red-200{color:var(--bx-color-red-200)}.bx-border-red-200{border-color:var(--bx-color-red-200)}.bx-bg-red-300{background-color:var(--bx-color-red-300)}.bx-text-red-300{color:var(--bx-color-red-300)}.bx-border-red-300{border-color:var(--bx-color-red-300)}.bx-bg-red-400{background-color:var(--bx-color-red-400)}.bx-text-red-400{color:var(--bx-color-red-400)}.bx-border-red-400{border-color:var(--bx-color-red-400)}.bx-bg-red-500{background-color:var(--bx-color-red-500)}.bx-text-red-500{color:var(--bx-color-red-500)}.bx-border-red-500{border-color:var(--bx-color-red-500)}.bx-bg-red-600{background-color:var(--bx-color-red-600)}.bx-text-red-600{color:var(--bx-color-red-600)}.bx-border-red-600{border-color:var(--bx-color-red-600)}.bx-bg-red-700{background-color:var(--bx-color-red-700)}.bx-text-red-700{color:var(--bx-color-red-700)}.bx-border-red-700{border-color:var(--bx-color-red-700)}.bx-bg-red-800{background-color:var(--bx-color-red-800)}.bx-text-red-800{color:var(--bx-color-red-800)}.bx-border-red-800{border-color:var(--bx-color-red-800)}.bx-bg-red-900{background-color:var(--bx-color-red-900)}.bx-text-red-900{color:var(--bx-color-red-900)}.bx-border-red-900{border-color:var(--bx-color-red-900)}.bx-bg-red-1000{background-color:var(--bx-color-red-1000)}.bx-text-red-1000{color:var(--bx-color-red-1000)}.bx-border-red-1000{border-color:var(--bx-color-red-1000)}.bx-bg-green-50{background-color:var(--bx-color-green-50)}.bx-text-green-50{color:var(--bx-color-green-50)}.bx-border-green-50{border-color:var(--bx-color-green-50)}.bx-bg-green-100{background-color:var(--bx-color-green-100)}.bx-text-green-100{color:var(--bx-color-green-100)}.bx-border-green-100{border-color:var(--bx-color-green-100)}.bx-bg-green-200{background-color:var(--bx-color-green-200)}.bx-text-green-200{color:var(--bx-color-green-200)}.bx-border-green-200{border-color:var(--bx-color-green-200)}.bx-bg-green-300{background-color:var(--bx-color-green-300)}.bx-text-green-300{color:var(--bx-color-green-300)}.bx-border-green-300{border-color:var(--bx-color-green-300)}.bx-bg-green-400{background-color:var(--bx-color-green-400)}.bx-text-green-400{color:var(--bx-color-green-400)}.bx-border-green-400{border-color:var(--bx-color-green-400)}.bx-bg-green-500{background-color:var(--bx-color-green-500)}.bx-text-green-500{color:var(--bx-color-green-500)}.bx-border-green-500{border-color:var(--bx-color-green-500)}.bx-bg-green-600{background-color:var(--bx-color-green-600)}.bx-text-green-600{color:var(--bx-color-green-600)}.bx-border-green-600{border-color:var(--bx-color-green-600)}.bx-bg-green-700{background-color:var(--bx-color-green-700)}.bx-text-green-700{color:var(--bx-color-green-700)}.bx-border-green-700{border-color:var(--bx-color-green-700)}.bx-bg-green-800{background-color:var(--bx-color-green-800)}.bx-text-green-800{color:var(--bx-color-green-800)}.bx-border-green-800{border-color:var(--bx-color-green-800)}.bx-bg-green-900{background-color:var(--bx-color-green-900)}.bx-text-green-900{color:var(--bx-color-green-900)}.bx-border-green-900{border-color:var(--bx-color-green-900)}.bx-bg-green-1000{background-color:var(--bx-color-green-1000)}.bx-text-green-1000{color:var(--bx-color-green-1000)}.bx-border-green-1000{border-color:var(--bx-color-green-1000)}.bx-bg-danger-50{background-color:var(--bx-color-danger-50)}.bx-text-danger-50{color:var(--bx-color-danger-50)}.bx-border-danger-50{border-color:var(--bx-color-danger-50)}.bx-bg-danger-100{background-color:var(--bx-color-danger-100)}.bx-text-danger-100{color:var(--bx-color-danger-100)}.bx-border-danger-100{border-color:var(--bx-color-danger-100)}.bx-bg-danger-200{background-color:var(--bx-color-danger-200)}.bx-text-danger-200{color:var(--bx-color-danger-200)}.bx-border-danger-200{border-color:var(--bx-color-danger-200)}.bx-bg-danger-300{background-color:var(--bx-color-danger-300)}.bx-text-danger-300{color:var(--bx-color-danger-300)}.bx-border-danger-300{border-color:var(--bx-color-danger-300)}.bx-bg-danger-400{background-color:var(--bx-color-danger-400)}.bx-text-danger-400{color:var(--bx-color-danger-400)}.bx-border-danger-400{border-color:var(--bx-color-danger-400)}.bx-bg-danger-500{background-color:var(--bx-color-danger-500)}.bx-text-danger-500{color:var(--bx-color-danger-500)}.bx-border-danger-500{border-color:var(--bx-color-danger-500)}.bx-bg-danger-600{background-color:var(--bx-color-danger-600)}.bx-text-danger-600{color:var(--bx-color-danger-600)}.bx-border-danger-600{border-color:var(--bx-color-danger-600)}.bx-bg-danger-700{background-color:var(--bx-color-danger-700)}.bx-text-danger-700{color:var(--bx-color-danger-700)}.bx-border-danger-700{border-color:var(--bx-color-danger-700)}.bx-bg-danger-800{background-color:var(--bx-color-danger-800)}.bx-text-danger-800{color:var(--bx-color-danger-800)}.bx-border-danger-800{border-color:var(--bx-color-danger-800)}.bx-bg-danger-900{background-color:var(--bx-color-danger-900)}.bx-text-danger-900{color:var(--bx-color-danger-900)}.bx-border-danger-900{border-color:var(--bx-color-danger-900)}.bx-bg-danger-1000{background-color:var(--bx-color-danger-1000)}.bx-text-danger-1000{color:var(--bx-color-danger-1000)}.bx-border-danger-1000{border-color:var(--bx-color-danger-1000)}.bx-bg-warn-50{background-color:var(--bx-color-warn-50)}.bx-text-warn-50{color:var(--bx-color-warn-50)}.bx-border-warn-50{border-color:var(--bx-color-warn-50)}.bx-bg-warn-100{background-color:var(--bx-color-warn-100)}.bx-text-warn-100{color:var(--bx-color-warn-100)}.bx-border-warn-100{border-color:var(--bx-color-warn-100)}.bx-bg-warn-200{background-color:var(--bx-color-warn-200)}.bx-text-warn-200{color:var(--bx-color-warn-200)}.bx-border-warn-200{border-color:var(--bx-color-warn-200)}.bx-bg-warn-300{background-color:var(--bx-color-warn-300)}.bx-text-warn-300{color:var(--bx-color-warn-300)}.bx-border-warn-300{border-color:var(--bx-color-warn-300)}.bx-bg-warn-400{background-color:var(--bx-color-warn-400)}.bx-text-warn-400{color:var(--bx-color-warn-400)}.bx-border-warn-400{border-color:var(--bx-color-warn-400)}.bx-bg-warn-500{background-color:var(--bx-color-warn-500)}.bx-text-warn-500{color:var(--bx-color-warn-500)}.bx-border-warn-500{border-color:var(--bx-color-warn-500)}.bx-bg-warn-600{background-color:var(--bx-color-warn-600)}.bx-text-warn-600{color:var(--bx-color-warn-600)}.bx-border-warn-600{border-color:var(--bx-color-warn-600)}.bx-bg-warn-700{background-color:var(--bx-color-warn-700)}.bx-text-warn-700{color:var(--bx-color-warn-700)}.bx-border-warn-700{border-color:var(--bx-color-warn-700)}.bx-bg-warn-800{background-color:var(--bx-color-warn-800)}.bx-text-warn-800{color:var(--bx-color-warn-800)}.bx-border-warn-800{border-color:var(--bx-color-warn-800)}.bx-bg-warn-900{background-color:var(--bx-color-warn-900)}.bx-text-warn-900{color:var(--bx-color-warn-900)}.bx-border-warn-900{border-color:var(--bx-color-warn-900)}.bx-bg-warn-1000{background-color:var(--bx-color-warn-1000)}.bx-text-warn-1000{color:var(--bx-color-warn-1000)}.bx-border-warn-1000{border-color:var(--bx-color-warn-1000)}.bx-bg-success-50{background-color:var(--bx-color-success-50)}.bx-text-success-50{color:var(--bx-color-success-50)}.bx-border-success-50{border-color:var(--bx-color-success-50)}.bx-bg-success-100{background-color:var(--bx-color-success-100)}.bx-text-success-100{color:var(--bx-color-success-100)}.bx-border-success-100{border-color:var(--bx-color-success-100)}.bx-bg-success-200{background-color:var(--bx-color-success-200)}.bx-text-success-200{color:var(--bx-color-success-200)}.bx-border-success-200{border-color:var(--bx-color-success-200)}.bx-bg-success-300{background-color:var(--bx-color-success-300)}.bx-text-success-300{color:var(--bx-color-success-300)}.bx-border-success-300{border-color:var(--bx-color-success-300)}.bx-bg-success-400{background-color:var(--bx-color-success-400)}.bx-text-success-400{color:var(--bx-color-success-400)}.bx-border-success-400{border-color:var(--bx-color-success-400)}.bx-bg-success-500{background-color:var(--bx-color-success-500)}.bx-text-success-500{color:var(--bx-color-success-500)}.bx-border-success-500{border-color:var(--bx-color-success-500)}.bx-bg-success-600{background-color:var(--bx-color-success-600)}.bx-text-success-600{color:var(--bx-color-success-600)}.bx-border-success-600{border-color:var(--bx-color-success-600)}.bx-bg-success-700{background-color:var(--bx-color-success-700)}.bx-text-success-700{color:var(--bx-color-success-700)}.bx-border-success-700{border-color:var(--bx-color-success-700)}.bx-bg-success-800{background-color:var(--bx-color-success-800)}.bx-text-success-800{color:var(--bx-color-success-800)}.bx-border-success-800{border-color:var(--bx-color-success-800)}.bx-bg-success-900{background-color:var(--bx-color-success-900)}.bx-text-success-900{color:var(--bx-color-success-900)}.bx-border-success-900{border-color:var(--bx-color-success-900)}.bx-bg-success-1000{background-color:var(--bx-color-success-1000)}.bx-text-success-1000{color:var(--bx-color-success-1000)}.bx-border-success-1000{border-color:var(--bx-color-success-1000)}.bx-bg-information-50{background-color:var(--bx-color-information-50)}.bx-text-information-50{color:var(--bx-color-information-50)}.bx-border-information-50{border-color:var(--bx-color-information-50)}.bx-bg-information-100{background-color:var(--bx-color-information-100)}.bx-text-information-100{color:var(--bx-color-information-100)}.bx-border-information-100{border-color:var(--bx-color-information-100)}.bx-bg-information-200{background-color:var(--bx-color-information-200)}.bx-text-information-200{color:var(--bx-color-information-200)}.bx-border-information-200{border-color:var(--bx-color-information-200)}.bx-bg-information-300{background-color:var(--bx-color-information-300)}.bx-text-information-300{color:var(--bx-color-information-300)}.bx-border-information-300{border-color:var(--bx-color-information-300)}.bx-bg-information-400{background-color:var(--bx-color-information-400)}.bx-text-information-400{color:var(--bx-color-information-400)}.bx-border-information-400{border-color:var(--bx-color-information-400)}.bx-bg-information-500{background-color:var(--bx-color-information-500)}.bx-text-information-500{color:var(--bx-color-information-500)}.bx-border-information-500{border-color:var(--bx-color-information-500)}.bx-bg-information-600{background-color:var(--bx-color-information-600)}.bx-text-information-600{color:var(--bx-color-information-600)}.bx-border-information-600{border-color:var(--bx-color-information-600)}.bx-bg-information-700{background-color:var(--bx-color-information-700)}.bx-text-information-700{color:var(--bx-color-information-700)}.bx-border-information-700{border-color:var(--bx-color-information-700)}.bx-bg-information-800{background-color:var(--bx-color-information-800)}.bx-text-information-800{color:var(--bx-color-information-800)}.bx-border-information-800{border-color:var(--bx-color-information-800)}.bx-bg-information-900{background-color:var(--bx-color-information-900)}.bx-text-information-900{color:var(--bx-color-information-900)}.bx-border-information-900{border-color:var(--bx-color-information-900)}.bx-bg-information-1000{background-color:var(--bx-color-information-1000)}.bx-text-information-1000{color:var(--bx-color-information-1000)}.bx-border-information-1000{border-color:var(--bx-color-information-1000)}.bx-bg-neutral-50{background-color:var(--bx-color-neutral-50)}.bx-text-neutral-50{color:var(--bx-color-neutral-50)}.bx-border-neutral-50{border-color:var(--bx-color-neutral-50)}.bx-bg-neutral-100{background-color:var(--bx-color-neutral-100)}.bx-text-neutral-100{color:var(--bx-color-neutral-100)}.bx-border-neutral-100{border-color:var(--bx-color-neutral-100)}.bx-bg-neutral-200{background-color:var(--bx-color-neutral-200)}.bx-text-neutral-200{color:var(--bx-color-neutral-200)}.bx-border-neutral-200{border-color:var(--bx-color-neutral-200)}.bx-bg-neutral-300{background-color:var(--bx-color-neutral-300)}.bx-text-neutral-300{color:var(--bx-color-neutral-300)}.bx-border-neutral-300{border-color:var(--bx-color-neutral-300)}.bx-bg-neutral-400{background-color:var(--bx-color-neutral-400)}.bx-text-neutral-400{color:var(--bx-color-neutral-400)}.bx-border-neutral-400{border-color:var(--bx-color-neutral-400)}.bx-bg-neutral-500{background-color:var(--bx-color-neutral-500)}.bx-text-neutral-500{color:var(--bx-color-neutral-500)}.bx-border-neutral-500{border-color:var(--bx-color-neutral-500)}.bx-bg-neutral-600{background-color:var(--bx-color-neutral-600)}.bx-text-neutral-600{color:var(--bx-color-neutral-600)}.bx-border-neutral-600{border-color:var(--bx-color-neutral-600)}.bx-bg-neutral-700{background-color:var(--bx-color-neutral-700)}.bx-text-neutral-700{color:var(--bx-color-neutral-700)}.bx-border-neutral-700{border-color:var(--bx-color-neutral-700)}.bx-bg-neutral-800{background-color:var(--bx-color-neutral-800)}.bx-text-neutral-800{color:var(--bx-color-neutral-800)}.bx-border-neutral-800{border-color:var(--bx-color-neutral-800)}.bx-bg-neutral-900{background-color:var(--bx-color-neutral-900)}.bx-text-neutral-900{color:var(--bx-color-neutral-900)}.bx-border-neutral-900{border-color:var(--bx-color-neutral-900)}.bx-bg-neutral-1000{background-color:var(--bx-color-neutral-1000)}.bx-text-neutral-1000{color:var(--bx-color-neutral-1000)}.bx-border-neutral-1000{border-color:var(--bx-color-neutral-1000)}:root{--bx-space-0: 0;--bx-space-1: .25rem;--bx-space-2: .5rem;--bx-space-3: .75rem;--bx-space-4: 1rem;--bx-space-5: 1.25rem;--bx-space-6: 1.5rem;--bx-space-8: 2rem;--bx-space-10: 2.5rem;--bx-space-12: 3rem;--bx-rounded-none: 0;--bx-rounded-sm: .25rem;--bx-rounded-md: .5rem;--bx-rounded-lg: .75rem;--bx-rounded-xl: 1rem;--bx-rounded-2xl: 1.5rem;--bx-rounded-3xl: 1.875rem;--bx-rounded-pill: 9999px;--bx-shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--bx-shadow-md: 0 4px 8px -1px rgba(0, 0, 0, .15), 0 2px 4px -2px rgba(0, 0, 0, .12);--bx-shadow-lg: 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1);--bx-shadow-xl: 0 24px 32px -5px rgba(0, 0, 0, .25), 0 10px 12px -5px rgba(0, 0, 0, .15);--bx-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--bx-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--bx-z-base: 1;--bx-z-dropdown: 100;--bx-z-sticky: 200;--bx-z-fixed: 300;--bx-z-modal: 400;--bx-z-popover: 500;--bx-z-tooltip: 600;--bx-z-toast: 9999;--bx-color-orange-50: #FFF7ED;--bx-color-orange-100: #FFEDD4;--bx-color-orange-200: #FFD6A7;--bx-color-orange-300: #FFB86A;--bx-color-orange-400: #FF8904;--bx-color-orange-500: #FF6900;--bx-color-orange-600: #F54900;--bx-color-orange-700: #CA3500;--bx-color-orange-800: #9F2D00;--bx-color-orange-900: #551111;--bx-color-orange-1000: #441306;--bx-color-purple-50: #F4EBFF;--bx-color-purple-100: #E6D4FF;--bx-color-purple-200: #CFA3FF;--bx-color-purple-300: #B36BFF;--bx-color-purple-400: #922FFF;--bx-color-purple-500: #6D00FF;--bx-color-purple-600: #5700CC;--bx-color-purple-700: #410099;--bx-color-purple-800: #2C0066;--bx-color-purple-900: #160033;--bx-color-purple-1000: #0B001A;--bx-color-red-50: #FDF1F0;--bx-color-red-100: #FADCDA;--bx-color-red-200: #F5B0AB;--bx-color-red-300: #EF8079;--bx-color-red-400: #EA4C43;--bx-color-red-500: #E3241B;--bx-color-red-600: #BE1810;--bx-color-red-700: #991009;--bx-color-red-800: #750904;--bx-color-red-900: #520401;--bx-color-red-1000: #2E0200;--bx-color-green-50: #F7FCE8;--bx-color-green-100: #EDF8C8;--bx-color-green-200: #DDF19C;--bx-color-green-300: #CAE96A;--bx-color-green-400: #BEE046;--bx-color-green-500: #B0D624;--bx-color-green-600: #92B518;--bx-color-green-700: #718F10;--bx-color-green-800: #556D0C;--bx-color-green-900: #3C4E08;--bx-color-green-1000: #212C03;--bx-color-danger-50: #FFFCFC;--bx-color-danger-100: #F4E5E5;--bx-color-danger-200: #EAD0D0;--bx-color-danger-300: #DE9E9E;--bx-color-danger-400: #F76D6D;--bx-color-danger-500: #D94D4D;--bx-color-danger-600: #C93D3D;--bx-color-danger-700: #BA2E2E;--bx-color-danger-800: #722222;--bx-color-danger-900: #2B1717;--bx-color-danger-1000: #0E0C0C;--bx-color-warn-50: #FFFEFB;--bx-color-warn-100: #F7F0E3;--bx-color-warn-200: #EAE3D0;--bx-color-warn-300: #E7C892;--bx-color-warn-400: #E4AD55;--bx-color-warn-500: #C68D36;--bx-color-warn-600: #B77D27;--bx-color-warn-700: #A96D18;--bx-color-warn-800: #6A4817;--bx-color-warn-900: #2B2317;--bx-color-warn-1000: #0E0D0C;--bx-color-success-50: #FCFFFC;--bx-color-success-100: #E6F4E6;--bx-color-success-200: #D1EAD0;--bx-color-success-300: #98D6A0;--bx-color-success-400: #5FC370;--bx-color-success-500: #3FA94E;--bx-color-success-600: #2E9C3E;--bx-color-success-700: #1E8F2D;--bx-color-success-800: #1A5D22;--bx-color-success-900: #172B18;--bx-color-success-1000: #0C0E0C;--bx-color-information-50: #FBFDFF;--bx-color-information-100: #E5EEF7;--bx-color-information-200: #D0DDEA;--bx-color-information-300: #97CACE;--bx-color-information-400: #5FB7C3;--bx-color-information-500: #3E90B5;--bx-color-information-600: #2E7CAE;--bx-color-information-700: #1E69A7;--bx-color-information-800: #1A4469;--bx-color-information-900: #17202B;--bx-color-information-1000: #0C0D0E;--bx-color-neutral-50: #FAFAFA;--bx-color-neutral-100: #F5F5F5;--bx-color-neutral-200: #E5E5E5;--bx-color-neutral-300: #D4D4D4;--bx-color-neutral-400: #A1A1A1;--bx-color-neutral-500: #737373;--bx-color-neutral-600: #525252;--bx-color-neutral-700: #404040;--bx-color-neutral-800: #262626;--bx-color-neutral-900: #171717;--bx-color-neutral-1000: #0A0A0A}:root .bx-icon-pos-start{margin-right:.5rem}:root .bx-icon-pos-end{margin-left:.5rem}.bx-bg-canvas{background-color:var(--bx-bg-canvas);transition:background-color .2s ease-in-out}.bx-bg-surface{background-color:var(--bx-bg-surface);transition:background-color .2s ease-in-out}.bx-bg-surface-alt{background-color:var(--bx-bg-surface-alt);transition:background-color .2s ease-in-out}.bx-bg-element{background-color:var(--bx-bg-element);transition:background-color .2s ease-in-out}.bx-bg-element-hover{background-color:var(--bx-bg-element-hover);transition:background-color .2s ease-in-out}.bx-bg-element-active{background-color:var(--bx-bg-element-active);transition:background-color .2s ease-in-out}.bx-bg-primary{background-color:var(--bx-primary);transition:background-color .2s ease-in-out}.bx-text-primary{color:var(--bx-primary);transition:color .2s ease-in-out}.bx-border-primary{border-color:var(--bx-primary);transition:border-color .2s ease-in-out}.bx-bg-primary-hover{background-color:var(--bx-primary-hover);transition:background-color .2s ease-in-out}.bx-text-primary-hover{color:var(--bx-primary-hover);transition:color .2s ease-in-out}.bx-border-primary-hover{border-color:var(--bx-primary-hover);transition:border-color .2s ease-in-out}.bx-bg-primary-active{background-color:var(--bx-primary-active);transition:background-color .2s ease-in-out}.bx-text-primary-active{color:var(--bx-primary-active);transition:color .2s ease-in-out}.bx-border-primary-active{border-color:var(--bx-primary-active);transition:border-color .2s ease-in-out}.bx-bg-primary-subtle{background-color:var(--bx-primary-subtle);transition:background-color .2s ease-in-out}.bx-text-primary-subtle{color:var(--bx-primary-subtle);transition:color .2s ease-in-out}.bx-border-primary-subtle{border-color:var(--bx-primary-subtle);transition:border-color .2s ease-in-out}.bx-bg-on-primary{background-color:var(--bx-on-primary);transition:background-color .2s ease-in-out}.bx-text-on-primary{color:var(--bx-on-primary);transition:color .2s ease-in-out}.bx-border-on-primary{border-color:var(--bx-on-primary);transition:border-color .2s ease-in-out}.bx-text-heading{color:var(--bx-text-heading);transition:color .2s ease-in-out}.bx-text-primary{color:var(--bx-text-primary);transition:color .2s ease-in-out}.bx-text-secondary{color:var(--bx-text-secondary);transition:color .2s ease-in-out}.bx-text-brand{color:var(--bx-text-brand);transition:color .2s ease-in-out}.bx-text-inverse{color:var(--bx-text-inverse);transition:color .2s ease-in-out}.bx-text-info{color:var(--bx-text-info);transition:color .2s ease-in-out}.bx-text-warn{color:var(--bx-text-warn);transition:color .2s ease-in-out}.bx-text-success{color:var(--bx-text-success);transition:color .2s ease-in-out}.bx-text-danger{color:var(--bx-text-danger);transition:color .2s ease-in-out}.bx-border-subtle{border-color:var(--bx-border-subtle);transition:border-color .2s ease-in-out}.bx-border-default{border-color:var(--bx-border-default);transition:border-color .2s ease-in-out}.bx-border-strong{border-color:var(--bx-border-strong);transition:border-color .2s ease-in-out}.bx-border-brand{border-color:var(--bx-border-brand);transition:border-color .2s ease-in-out}.bx-border-info{border-color:var(--bx-border-info);transition:border-color .2s ease-in-out}.bx-border-success{border-color:var(--bx-border-success);transition:border-color .2s ease-in-out}.bx-border-warn{border-color:var(--bx-border-warn);transition:border-color .2s ease-in-out}.bx-border-danger{border-color:var(--bx-border-danger);transition:border-color .2s ease-in-out}.bx-bg-info{background-color:var(--bx-bg-info);transition:background-color .2s ease-in-out}.bx-bg-info-hover{background-color:var(--bx-bg-info-hover);transition:background-color .2s ease-in-out}.bx-bg-info-active{background-color:var(--bx-bg-info-active);transition:background-color .2s ease-in-out}.bx-bg-info-disabled{background-color:var(--bx-bg-info-disabled);transition:background-color .2s ease-in-out}.bx-bg-info-subtle{background-color:var(--bx-bg-info-subtle);transition:background-color .2s ease-in-out}.bx-bg-success{background-color:var(--bx-bg-success);transition:background-color .2s ease-in-out}.bx-bg-success-hover{background-color:var(--bx-bg-success-hover);transition:background-color .2s ease-in-out}.bx-bg-success-active{background-color:var(--bx-bg-success-active);transition:background-color .2s ease-in-out}.bx-bg-success-disabled{background-color:var(--bx-bg-success-disabled);transition:background-color .2s ease-in-out}.bx-bg-success-subtle{background-color:var(--bx-bg-success-subtle);transition:background-color .2s ease-in-out}.bx-bg-warn{background-color:var(--bx-bg-warn);transition:background-color .2s ease-in-out}.bx-bg-warn-hover{background-color:var(--bx-bg-warn-hover);transition:background-color .2s ease-in-out}.bx-bg-warn-active{background-color:var(--bx-bg-warn-active);transition:background-color .2s ease-in-out}.bx-bg-warn-disabled{background-color:var(--bx-bg-warn-disabled);transition:background-color .2s ease-in-out}.bx-bg-warn-subtle{background-color:var(--bx-bg-warn-subtle);transition:background-color .2s ease-in-out}.bx-bg-danger{background-color:var(--bx-bg-danger);transition:background-color .2s ease-in-out}.bx-bg-danger-hover{background-color:var(--bx-bg-danger-hover);transition:background-color .2s ease-in-out}.bx-bg-danger-active{background-color:var(--bx-bg-danger-active);transition:background-color .2s ease-in-out}.bx-bg-danger-disabled{background-color:var(--bx-bg-danger-disabled);transition:background-color .2s ease-in-out}.bx-bg-danger-subtle{background-color:var(--bx-bg-danger-subtle);transition:background-color .2s ease-in-out}.breadcrumbs{color:var(--bx-text-primary);padding:0rem 3rem;display:flex;flex-wrap:wrap;align-items:center;view-transition-name:breadcrumb-bar}@media(max-width:1280px){.breadcrumbs{padding:0rem 1.5rem;margin-top:1rem}}.crumb{font-size:.9rem;cursor:pointer}.crumb.last{cursor:default;font-family:custom_semibold}.crumb.animated{animation:breadcrumb-appear-anim .3s ease-in-out}.crumb:hover,.crumb:hover.last{color:var(--bx-text-primary)}.breadcrumb-separator{margin:0 .35rem;opacity:.4}.crumb.breadcrumb-on-appear{animation-delay:calc(var(--crumb-index) * .1s)}.breadcrumb-on-appear:not(.single):not(.alone){animation:braedcrumb-on-appear-anim .5s ease-in-out forwards;animation-duration:calc(.5s * (1 - var(--a11y-reduced-motion)))}@keyframes braedcrumb-on-appear-anim{0%{opacity:0;transform:translate(-15px)}to{opacity:1;transform:translate(0)}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: Icon, selector: "bx-icon", inputs: ["name", "size", "color", "bgColor", "strokeWidth", "decorative", "ariaLabel"] }] });
238
+ }
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: Breadcrumbs, decorators: [{
240
+ type: Component,
241
+ args: [{ selector: 'bx-breadcrumbs', imports: [NgClass, Icon], template: "@if(showBreadcumbs()) {\n<nav class=\"breadcrumbs\" [aria-label]=\"ariaLabel()\">\n @for (crumb of current().breadcrumbs; track crumb.route; let i = $index) {\n <button class=\"crumb\" (click)=\"navigateTo(crumb.route)\" [ngClass]=\"{\n 'last': i === current().breadcrumbs.length - 1,\n 'breadcrumb-on-appear': i === current().breadcrumbs.length - 1 && current().breadcrumbs.length > 1\n }\" [style.--crumb-index]=\"i\" [class.animated]=\"isAnimated()\">\n {{ crumb.label }}\n </button>\n\n @if (i !== current().breadcrumbs.length - 1) {\n <bx-icon [name]=\"divider()\" size=\"16\" class=\"breadcrumb-separator\" />\n }\n }\n</nav>\n}", styles: [".bx-p-0{padding:0}.bx-pt-0{padding-top:0}.bx-pr-0{padding-right:0}.bx-pb-0{padding-bottom:0}.bx-pl-0{padding-left:0}.bx-px-0{padding-left:0;padding-right:0}.bx-py-0{padding-top:0;padding-bottom:0}.bx-m-0{margin:0}.bx-mt-0{margin-top:0}.bx-mr-0{margin-right:0}.bx-mb-0{margin-bottom:0}.bx-ml-0{margin-left:0}.bx-mx-0{margin-left:0;margin-right:0}.bx-my-0{margin-top:0;margin-bottom:0}.bx-p-1{padding:.25rem}.bx-pt-1{padding-top:.25rem}.bx-pr-1{padding-right:.25rem}.bx-pb-1{padding-bottom:.25rem}.bx-pl-1{padding-left:.25rem}.bx-px-1{padding-left:.25rem;padding-right:.25rem}.bx-py-1{padding-top:.25rem;padding-bottom:.25rem}.bx-m-1{margin:.25rem}.bx-mt-1{margin-top:.25rem}.bx-mr-1{margin-right:.25rem}.bx-mb-1{margin-bottom:.25rem}.bx-ml-1{margin-left:.25rem}.bx-mx-1{margin-left:.25rem;margin-right:.25rem}.bx-my-1{margin-top:.25rem;margin-bottom:.25rem}.bx-p-2{padding:.5rem}.bx-pt-2{padding-top:.5rem}.bx-pr-2{padding-right:.5rem}.bx-pb-2{padding-bottom:.5rem}.bx-pl-2{padding-left:.5rem}.bx-px-2{padding-left:.5rem;padding-right:.5rem}.bx-py-2{padding-top:.5rem;padding-bottom:.5rem}.bx-m-2{margin:.5rem}.bx-mt-2{margin-top:.5rem}.bx-mr-2{margin-right:.5rem}.bx-mb-2{margin-bottom:.5rem}.bx-ml-2{margin-left:.5rem}.bx-mx-2{margin-left:.5rem;margin-right:.5rem}.bx-my-2{margin-top:.5rem;margin-bottom:.5rem}.bx-p-3{padding:.75rem}.bx-pt-3{padding-top:.75rem}.bx-pr-3{padding-right:.75rem}.bx-pb-3{padding-bottom:.75rem}.bx-pl-3{padding-left:.75rem}.bx-px-3{padding-left:.75rem;padding-right:.75rem}.bx-py-3{padding-top:.75rem;padding-bottom:.75rem}.bx-m-3{margin:.75rem}.bx-mt-3{margin-top:.75rem}.bx-mr-3{margin-right:.75rem}.bx-mb-3{margin-bottom:.75rem}.bx-ml-3{margin-left:.75rem}.bx-mx-3{margin-left:.75rem;margin-right:.75rem}.bx-my-3{margin-top:.75rem;margin-bottom:.75rem}.bx-p-4{padding:1rem}.bx-pt-4{padding-top:1rem}.bx-pr-4{padding-right:1rem}.bx-pb-4{padding-bottom:1rem}.bx-pl-4{padding-left:1rem}.bx-px-4{padding-left:1rem;padding-right:1rem}.bx-py-4{padding-top:1rem;padding-bottom:1rem}.bx-m-4{margin:1rem}.bx-mt-4{margin-top:1rem}.bx-mr-4{margin-right:1rem}.bx-mb-4{margin-bottom:1rem}.bx-ml-4{margin-left:1rem}.bx-mx-4{margin-left:1rem;margin-right:1rem}.bx-my-4{margin-top:1rem;margin-bottom:1rem}.bx-p-5{padding:1.25rem}.bx-pt-5{padding-top:1.25rem}.bx-pr-5{padding-right:1.25rem}.bx-pb-5{padding-bottom:1.25rem}.bx-pl-5{padding-left:1.25rem}.bx-px-5{padding-left:1.25rem;padding-right:1.25rem}.bx-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.bx-m-5{margin:1.25rem}.bx-mt-5{margin-top:1.25rem}.bx-mr-5{margin-right:1.25rem}.bx-mb-5{margin-bottom:1.25rem}.bx-ml-5{margin-left:1.25rem}.bx-mx-5{margin-left:1.25rem;margin-right:1.25rem}.bx-my-5{margin-top:1.25rem;margin-bottom:1.25rem}.bx-p-6{padding:1.5rem}.bx-pt-6{padding-top:1.5rem}.bx-pr-6{padding-right:1.5rem}.bx-pb-6{padding-bottom:1.5rem}.bx-pl-6{padding-left:1.5rem}.bx-px-6{padding-left:1.5rem;padding-right:1.5rem}.bx-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.bx-m-6{margin:1.5rem}.bx-mt-6{margin-top:1.5rem}.bx-mr-6{margin-right:1.5rem}.bx-mb-6{margin-bottom:1.5rem}.bx-ml-6{margin-left:1.5rem}.bx-mx-6{margin-left:1.5rem;margin-right:1.5rem}.bx-my-6{margin-top:1.5rem;margin-bottom:1.5rem}.bx-p-8{padding:2rem}.bx-pt-8{padding-top:2rem}.bx-pr-8{padding-right:2rem}.bx-pb-8{padding-bottom:2rem}.bx-pl-8{padding-left:2rem}.bx-px-8{padding-left:2rem;padding-right:2rem}.bx-py-8{padding-top:2rem;padding-bottom:2rem}.bx-m-8{margin:2rem}.bx-mt-8{margin-top:2rem}.bx-mr-8{margin-right:2rem}.bx-mb-8{margin-bottom:2rem}.bx-ml-8{margin-left:2rem}.bx-mx-8{margin-left:2rem;margin-right:2rem}.bx-my-8{margin-top:2rem;margin-bottom:2rem}.bx-p-10{padding:2.5rem}.bx-pt-10{padding-top:2.5rem}.bx-pr-10{padding-right:2.5rem}.bx-pb-10{padding-bottom:2.5rem}.bx-pl-10{padding-left:2.5rem}.bx-px-10{padding-left:2.5rem;padding-right:2.5rem}.bx-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.bx-m-10{margin:2.5rem}.bx-mt-10{margin-top:2.5rem}.bx-mr-10{margin-right:2.5rem}.bx-mb-10{margin-bottom:2.5rem}.bx-ml-10{margin-left:2.5rem}.bx-mx-10{margin-left:2.5rem;margin-right:2.5rem}.bx-my-10{margin-top:2.5rem;margin-bottom:2.5rem}.bx-p-12{padding:3rem}.bx-pt-12{padding-top:3rem}.bx-pr-12{padding-right:3rem}.bx-pb-12{padding-bottom:3rem}.bx-pl-12{padding-left:3rem}.bx-px-12{padding-left:3rem;padding-right:3rem}.bx-py-12{padding-top:3rem;padding-bottom:3rem}.bx-m-12{margin:3rem}.bx-mt-12{margin-top:3rem}.bx-mr-12{margin-right:3rem}.bx-mb-12{margin-bottom:3rem}.bx-ml-12{margin-left:3rem}.bx-mx-12{margin-left:3rem;margin-right:3rem}.bx-my-12{margin-top:3rem;margin-bottom:3rem}.bx-rounded-none{border-radius:0}.bx-rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.bx-rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0}.bx-rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.bx-rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.bx-rounded-sm{border-radius:.25rem}.bx-rounded-t-sm{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.bx-rounded-b-sm{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.bx-rounded-l-sm{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.bx-rounded-r-sm{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.bx-rounded-md{border-radius:.5rem}.bx-rounded-t-md{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bx-rounded-b-md{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.bx-rounded-l-md{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.bx-rounded-r-md{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.bx-rounded-lg{border-radius:.75rem}.bx-rounded-t-lg{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.bx-rounded-b-lg{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.bx-rounded-l-lg{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}.bx-rounded-r-lg{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.bx-rounded-xl{border-radius:1rem}.bx-rounded-t-xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.bx-rounded-b-xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.bx-rounded-l-xl{border-top-left-radius:1rem;border-bottom-left-radius:1rem}.bx-rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.bx-rounded-2xl{border-radius:1.5rem}.bx-rounded-t-2xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.bx-rounded-b-2xl{border-bottom-left-radius:1.5rem;border-bottom-right-radius:1.5rem}.bx-rounded-l-2xl{border-top-left-radius:1.5rem;border-bottom-left-radius:1.5rem}.bx-rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.bx-rounded-3xl{border-radius:1.875rem}.bx-rounded-t-3xl{border-top-left-radius:1.875rem;border-top-right-radius:1.875rem}.bx-rounded-b-3xl{border-bottom-left-radius:1.875rem;border-bottom-right-radius:1.875rem}.bx-rounded-l-3xl{border-top-left-radius:1.875rem;border-bottom-left-radius:1.875rem}.bx-rounded-r-3xl{border-top-right-radius:1.875rem;border-bottom-right-radius:1.875rem}.bx-rounded-pill{border-radius:9999px}.bx-rounded-t-pill{border-top-left-radius:9999px;border-top-right-radius:9999px}.bx-rounded-b-pill{border-bottom-left-radius:9999px;border-bottom-right-radius:9999px}.bx-rounded-l-pill{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.bx-rounded-r-pill{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.bx-shadow-sm{box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a}.bx-shadow-md{box-shadow:0 4px 8px -1px #00000026,0 2px 4px -2px #0000001f}.bx-shadow-lg{box-shadow:0 12px 20px -3px #0003,0 4px 6px -2px #0000001a}.bx-shadow-xl{box-shadow:0 24px 32px -5px #00000040,0 10px 12px -5px #00000026}.bx-shadow-modal{box-shadow:0 8px 20px #0000001f}.bx-shadow-toast{box-shadow:0 4px 12px #00000026}.bx-z-base{z-index:1}.bx-z-dropdown{z-index:100}.bx-z-sticky{z-index:200}.bx-z-fixed{z-index:300}.bx-z-modal{z-index:400}.bx-z-popover{z-index:500}.bx-z-tooltip{z-index:600}.bx-z-toast{z-index:9999}.bx-bg-orange-50{background-color:var(--bx-color-orange-50)}.bx-text-orange-50{color:var(--bx-color-orange-50)}.bx-border-orange-50{border-color:var(--bx-color-orange-50)}.bx-bg-orange-100{background-color:var(--bx-color-orange-100)}.bx-text-orange-100{color:var(--bx-color-orange-100)}.bx-border-orange-100{border-color:var(--bx-color-orange-100)}.bx-bg-orange-200{background-color:var(--bx-color-orange-200)}.bx-text-orange-200{color:var(--bx-color-orange-200)}.bx-border-orange-200{border-color:var(--bx-color-orange-200)}.bx-bg-orange-300{background-color:var(--bx-color-orange-300)}.bx-text-orange-300{color:var(--bx-color-orange-300)}.bx-border-orange-300{border-color:var(--bx-color-orange-300)}.bx-bg-orange-400{background-color:var(--bx-color-orange-400)}.bx-text-orange-400{color:var(--bx-color-orange-400)}.bx-border-orange-400{border-color:var(--bx-color-orange-400)}.bx-bg-orange-500{background-color:var(--bx-color-orange-500)}.bx-text-orange-500{color:var(--bx-color-orange-500)}.bx-border-orange-500{border-color:var(--bx-color-orange-500)}.bx-bg-orange-600{background-color:var(--bx-color-orange-600)}.bx-text-orange-600{color:var(--bx-color-orange-600)}.bx-border-orange-600{border-color:var(--bx-color-orange-600)}.bx-bg-orange-700{background-color:var(--bx-color-orange-700)}.bx-text-orange-700{color:var(--bx-color-orange-700)}.bx-border-orange-700{border-color:var(--bx-color-orange-700)}.bx-bg-orange-800{background-color:var(--bx-color-orange-800)}.bx-text-orange-800{color:var(--bx-color-orange-800)}.bx-border-orange-800{border-color:var(--bx-color-orange-800)}.bx-bg-orange-900{background-color:var(--bx-color-orange-900)}.bx-text-orange-900{color:var(--bx-color-orange-900)}.bx-border-orange-900{border-color:var(--bx-color-orange-900)}.bx-bg-orange-1000{background-color:var(--bx-color-orange-1000)}.bx-text-orange-1000{color:var(--bx-color-orange-1000)}.bx-border-orange-1000{border-color:var(--bx-color-orange-1000)}.bx-bg-purple-50{background-color:var(--bx-color-purple-50)}.bx-text-purple-50{color:var(--bx-color-purple-50)}.bx-border-purple-50{border-color:var(--bx-color-purple-50)}.bx-bg-purple-100{background-color:var(--bx-color-purple-100)}.bx-text-purple-100{color:var(--bx-color-purple-100)}.bx-border-purple-100{border-color:var(--bx-color-purple-100)}.bx-bg-purple-200{background-color:var(--bx-color-purple-200)}.bx-text-purple-200{color:var(--bx-color-purple-200)}.bx-border-purple-200{border-color:var(--bx-color-purple-200)}.bx-bg-purple-300{background-color:var(--bx-color-purple-300)}.bx-text-purple-300{color:var(--bx-color-purple-300)}.bx-border-purple-300{border-color:var(--bx-color-purple-300)}.bx-bg-purple-400{background-color:var(--bx-color-purple-400)}.bx-text-purple-400{color:var(--bx-color-purple-400)}.bx-border-purple-400{border-color:var(--bx-color-purple-400)}.bx-bg-purple-500{background-color:var(--bx-color-purple-500)}.bx-text-purple-500{color:var(--bx-color-purple-500)}.bx-border-purple-500{border-color:var(--bx-color-purple-500)}.bx-bg-purple-600{background-color:var(--bx-color-purple-600)}.bx-text-purple-600{color:var(--bx-color-purple-600)}.bx-border-purple-600{border-color:var(--bx-color-purple-600)}.bx-bg-purple-700{background-color:var(--bx-color-purple-700)}.bx-text-purple-700{color:var(--bx-color-purple-700)}.bx-border-purple-700{border-color:var(--bx-color-purple-700)}.bx-bg-purple-800{background-color:var(--bx-color-purple-800)}.bx-text-purple-800{color:var(--bx-color-purple-800)}.bx-border-purple-800{border-color:var(--bx-color-purple-800)}.bx-bg-purple-900{background-color:var(--bx-color-purple-900)}.bx-text-purple-900{color:var(--bx-color-purple-900)}.bx-border-purple-900{border-color:var(--bx-color-purple-900)}.bx-bg-purple-1000{background-color:var(--bx-color-purple-1000)}.bx-text-purple-1000{color:var(--bx-color-purple-1000)}.bx-border-purple-1000{border-color:var(--bx-color-purple-1000)}.bx-bg-red-50{background-color:var(--bx-color-red-50)}.bx-text-red-50{color:var(--bx-color-red-50)}.bx-border-red-50{border-color:var(--bx-color-red-50)}.bx-bg-red-100{background-color:var(--bx-color-red-100)}.bx-text-red-100{color:var(--bx-color-red-100)}.bx-border-red-100{border-color:var(--bx-color-red-100)}.bx-bg-red-200{background-color:var(--bx-color-red-200)}.bx-text-red-200{color:var(--bx-color-red-200)}.bx-border-red-200{border-color:var(--bx-color-red-200)}.bx-bg-red-300{background-color:var(--bx-color-red-300)}.bx-text-red-300{color:var(--bx-color-red-300)}.bx-border-red-300{border-color:var(--bx-color-red-300)}.bx-bg-red-400{background-color:var(--bx-color-red-400)}.bx-text-red-400{color:var(--bx-color-red-400)}.bx-border-red-400{border-color:var(--bx-color-red-400)}.bx-bg-red-500{background-color:var(--bx-color-red-500)}.bx-text-red-500{color:var(--bx-color-red-500)}.bx-border-red-500{border-color:var(--bx-color-red-500)}.bx-bg-red-600{background-color:var(--bx-color-red-600)}.bx-text-red-600{color:var(--bx-color-red-600)}.bx-border-red-600{border-color:var(--bx-color-red-600)}.bx-bg-red-700{background-color:var(--bx-color-red-700)}.bx-text-red-700{color:var(--bx-color-red-700)}.bx-border-red-700{border-color:var(--bx-color-red-700)}.bx-bg-red-800{background-color:var(--bx-color-red-800)}.bx-text-red-800{color:var(--bx-color-red-800)}.bx-border-red-800{border-color:var(--bx-color-red-800)}.bx-bg-red-900{background-color:var(--bx-color-red-900)}.bx-text-red-900{color:var(--bx-color-red-900)}.bx-border-red-900{border-color:var(--bx-color-red-900)}.bx-bg-red-1000{background-color:var(--bx-color-red-1000)}.bx-text-red-1000{color:var(--bx-color-red-1000)}.bx-border-red-1000{border-color:var(--bx-color-red-1000)}.bx-bg-green-50{background-color:var(--bx-color-green-50)}.bx-text-green-50{color:var(--bx-color-green-50)}.bx-border-green-50{border-color:var(--bx-color-green-50)}.bx-bg-green-100{background-color:var(--bx-color-green-100)}.bx-text-green-100{color:var(--bx-color-green-100)}.bx-border-green-100{border-color:var(--bx-color-green-100)}.bx-bg-green-200{background-color:var(--bx-color-green-200)}.bx-text-green-200{color:var(--bx-color-green-200)}.bx-border-green-200{border-color:var(--bx-color-green-200)}.bx-bg-green-300{background-color:var(--bx-color-green-300)}.bx-text-green-300{color:var(--bx-color-green-300)}.bx-border-green-300{border-color:var(--bx-color-green-300)}.bx-bg-green-400{background-color:var(--bx-color-green-400)}.bx-text-green-400{color:var(--bx-color-green-400)}.bx-border-green-400{border-color:var(--bx-color-green-400)}.bx-bg-green-500{background-color:var(--bx-color-green-500)}.bx-text-green-500{color:var(--bx-color-green-500)}.bx-border-green-500{border-color:var(--bx-color-green-500)}.bx-bg-green-600{background-color:var(--bx-color-green-600)}.bx-text-green-600{color:var(--bx-color-green-600)}.bx-border-green-600{border-color:var(--bx-color-green-600)}.bx-bg-green-700{background-color:var(--bx-color-green-700)}.bx-text-green-700{color:var(--bx-color-green-700)}.bx-border-green-700{border-color:var(--bx-color-green-700)}.bx-bg-green-800{background-color:var(--bx-color-green-800)}.bx-text-green-800{color:var(--bx-color-green-800)}.bx-border-green-800{border-color:var(--bx-color-green-800)}.bx-bg-green-900{background-color:var(--bx-color-green-900)}.bx-text-green-900{color:var(--bx-color-green-900)}.bx-border-green-900{border-color:var(--bx-color-green-900)}.bx-bg-green-1000{background-color:var(--bx-color-green-1000)}.bx-text-green-1000{color:var(--bx-color-green-1000)}.bx-border-green-1000{border-color:var(--bx-color-green-1000)}.bx-bg-danger-50{background-color:var(--bx-color-danger-50)}.bx-text-danger-50{color:var(--bx-color-danger-50)}.bx-border-danger-50{border-color:var(--bx-color-danger-50)}.bx-bg-danger-100{background-color:var(--bx-color-danger-100)}.bx-text-danger-100{color:var(--bx-color-danger-100)}.bx-border-danger-100{border-color:var(--bx-color-danger-100)}.bx-bg-danger-200{background-color:var(--bx-color-danger-200)}.bx-text-danger-200{color:var(--bx-color-danger-200)}.bx-border-danger-200{border-color:var(--bx-color-danger-200)}.bx-bg-danger-300{background-color:var(--bx-color-danger-300)}.bx-text-danger-300{color:var(--bx-color-danger-300)}.bx-border-danger-300{border-color:var(--bx-color-danger-300)}.bx-bg-danger-400{background-color:var(--bx-color-danger-400)}.bx-text-danger-400{color:var(--bx-color-danger-400)}.bx-border-danger-400{border-color:var(--bx-color-danger-400)}.bx-bg-danger-500{background-color:var(--bx-color-danger-500)}.bx-text-danger-500{color:var(--bx-color-danger-500)}.bx-border-danger-500{border-color:var(--bx-color-danger-500)}.bx-bg-danger-600{background-color:var(--bx-color-danger-600)}.bx-text-danger-600{color:var(--bx-color-danger-600)}.bx-border-danger-600{border-color:var(--bx-color-danger-600)}.bx-bg-danger-700{background-color:var(--bx-color-danger-700)}.bx-text-danger-700{color:var(--bx-color-danger-700)}.bx-border-danger-700{border-color:var(--bx-color-danger-700)}.bx-bg-danger-800{background-color:var(--bx-color-danger-800)}.bx-text-danger-800{color:var(--bx-color-danger-800)}.bx-border-danger-800{border-color:var(--bx-color-danger-800)}.bx-bg-danger-900{background-color:var(--bx-color-danger-900)}.bx-text-danger-900{color:var(--bx-color-danger-900)}.bx-border-danger-900{border-color:var(--bx-color-danger-900)}.bx-bg-danger-1000{background-color:var(--bx-color-danger-1000)}.bx-text-danger-1000{color:var(--bx-color-danger-1000)}.bx-border-danger-1000{border-color:var(--bx-color-danger-1000)}.bx-bg-warn-50{background-color:var(--bx-color-warn-50)}.bx-text-warn-50{color:var(--bx-color-warn-50)}.bx-border-warn-50{border-color:var(--bx-color-warn-50)}.bx-bg-warn-100{background-color:var(--bx-color-warn-100)}.bx-text-warn-100{color:var(--bx-color-warn-100)}.bx-border-warn-100{border-color:var(--bx-color-warn-100)}.bx-bg-warn-200{background-color:var(--bx-color-warn-200)}.bx-text-warn-200{color:var(--bx-color-warn-200)}.bx-border-warn-200{border-color:var(--bx-color-warn-200)}.bx-bg-warn-300{background-color:var(--bx-color-warn-300)}.bx-text-warn-300{color:var(--bx-color-warn-300)}.bx-border-warn-300{border-color:var(--bx-color-warn-300)}.bx-bg-warn-400{background-color:var(--bx-color-warn-400)}.bx-text-warn-400{color:var(--bx-color-warn-400)}.bx-border-warn-400{border-color:var(--bx-color-warn-400)}.bx-bg-warn-500{background-color:var(--bx-color-warn-500)}.bx-text-warn-500{color:var(--bx-color-warn-500)}.bx-border-warn-500{border-color:var(--bx-color-warn-500)}.bx-bg-warn-600{background-color:var(--bx-color-warn-600)}.bx-text-warn-600{color:var(--bx-color-warn-600)}.bx-border-warn-600{border-color:var(--bx-color-warn-600)}.bx-bg-warn-700{background-color:var(--bx-color-warn-700)}.bx-text-warn-700{color:var(--bx-color-warn-700)}.bx-border-warn-700{border-color:var(--bx-color-warn-700)}.bx-bg-warn-800{background-color:var(--bx-color-warn-800)}.bx-text-warn-800{color:var(--bx-color-warn-800)}.bx-border-warn-800{border-color:var(--bx-color-warn-800)}.bx-bg-warn-900{background-color:var(--bx-color-warn-900)}.bx-text-warn-900{color:var(--bx-color-warn-900)}.bx-border-warn-900{border-color:var(--bx-color-warn-900)}.bx-bg-warn-1000{background-color:var(--bx-color-warn-1000)}.bx-text-warn-1000{color:var(--bx-color-warn-1000)}.bx-border-warn-1000{border-color:var(--bx-color-warn-1000)}.bx-bg-success-50{background-color:var(--bx-color-success-50)}.bx-text-success-50{color:var(--bx-color-success-50)}.bx-border-success-50{border-color:var(--bx-color-success-50)}.bx-bg-success-100{background-color:var(--bx-color-success-100)}.bx-text-success-100{color:var(--bx-color-success-100)}.bx-border-success-100{border-color:var(--bx-color-success-100)}.bx-bg-success-200{background-color:var(--bx-color-success-200)}.bx-text-success-200{color:var(--bx-color-success-200)}.bx-border-success-200{border-color:var(--bx-color-success-200)}.bx-bg-success-300{background-color:var(--bx-color-success-300)}.bx-text-success-300{color:var(--bx-color-success-300)}.bx-border-success-300{border-color:var(--bx-color-success-300)}.bx-bg-success-400{background-color:var(--bx-color-success-400)}.bx-text-success-400{color:var(--bx-color-success-400)}.bx-border-success-400{border-color:var(--bx-color-success-400)}.bx-bg-success-500{background-color:var(--bx-color-success-500)}.bx-text-success-500{color:var(--bx-color-success-500)}.bx-border-success-500{border-color:var(--bx-color-success-500)}.bx-bg-success-600{background-color:var(--bx-color-success-600)}.bx-text-success-600{color:var(--bx-color-success-600)}.bx-border-success-600{border-color:var(--bx-color-success-600)}.bx-bg-success-700{background-color:var(--bx-color-success-700)}.bx-text-success-700{color:var(--bx-color-success-700)}.bx-border-success-700{border-color:var(--bx-color-success-700)}.bx-bg-success-800{background-color:var(--bx-color-success-800)}.bx-text-success-800{color:var(--bx-color-success-800)}.bx-border-success-800{border-color:var(--bx-color-success-800)}.bx-bg-success-900{background-color:var(--bx-color-success-900)}.bx-text-success-900{color:var(--bx-color-success-900)}.bx-border-success-900{border-color:var(--bx-color-success-900)}.bx-bg-success-1000{background-color:var(--bx-color-success-1000)}.bx-text-success-1000{color:var(--bx-color-success-1000)}.bx-border-success-1000{border-color:var(--bx-color-success-1000)}.bx-bg-information-50{background-color:var(--bx-color-information-50)}.bx-text-information-50{color:var(--bx-color-information-50)}.bx-border-information-50{border-color:var(--bx-color-information-50)}.bx-bg-information-100{background-color:var(--bx-color-information-100)}.bx-text-information-100{color:var(--bx-color-information-100)}.bx-border-information-100{border-color:var(--bx-color-information-100)}.bx-bg-information-200{background-color:var(--bx-color-information-200)}.bx-text-information-200{color:var(--bx-color-information-200)}.bx-border-information-200{border-color:var(--bx-color-information-200)}.bx-bg-information-300{background-color:var(--bx-color-information-300)}.bx-text-information-300{color:var(--bx-color-information-300)}.bx-border-information-300{border-color:var(--bx-color-information-300)}.bx-bg-information-400{background-color:var(--bx-color-information-400)}.bx-text-information-400{color:var(--bx-color-information-400)}.bx-border-information-400{border-color:var(--bx-color-information-400)}.bx-bg-information-500{background-color:var(--bx-color-information-500)}.bx-text-information-500{color:var(--bx-color-information-500)}.bx-border-information-500{border-color:var(--bx-color-information-500)}.bx-bg-information-600{background-color:var(--bx-color-information-600)}.bx-text-information-600{color:var(--bx-color-information-600)}.bx-border-information-600{border-color:var(--bx-color-information-600)}.bx-bg-information-700{background-color:var(--bx-color-information-700)}.bx-text-information-700{color:var(--bx-color-information-700)}.bx-border-information-700{border-color:var(--bx-color-information-700)}.bx-bg-information-800{background-color:var(--bx-color-information-800)}.bx-text-information-800{color:var(--bx-color-information-800)}.bx-border-information-800{border-color:var(--bx-color-information-800)}.bx-bg-information-900{background-color:var(--bx-color-information-900)}.bx-text-information-900{color:var(--bx-color-information-900)}.bx-border-information-900{border-color:var(--bx-color-information-900)}.bx-bg-information-1000{background-color:var(--bx-color-information-1000)}.bx-text-information-1000{color:var(--bx-color-information-1000)}.bx-border-information-1000{border-color:var(--bx-color-information-1000)}.bx-bg-neutral-50{background-color:var(--bx-color-neutral-50)}.bx-text-neutral-50{color:var(--bx-color-neutral-50)}.bx-border-neutral-50{border-color:var(--bx-color-neutral-50)}.bx-bg-neutral-100{background-color:var(--bx-color-neutral-100)}.bx-text-neutral-100{color:var(--bx-color-neutral-100)}.bx-border-neutral-100{border-color:var(--bx-color-neutral-100)}.bx-bg-neutral-200{background-color:var(--bx-color-neutral-200)}.bx-text-neutral-200{color:var(--bx-color-neutral-200)}.bx-border-neutral-200{border-color:var(--bx-color-neutral-200)}.bx-bg-neutral-300{background-color:var(--bx-color-neutral-300)}.bx-text-neutral-300{color:var(--bx-color-neutral-300)}.bx-border-neutral-300{border-color:var(--bx-color-neutral-300)}.bx-bg-neutral-400{background-color:var(--bx-color-neutral-400)}.bx-text-neutral-400{color:var(--bx-color-neutral-400)}.bx-border-neutral-400{border-color:var(--bx-color-neutral-400)}.bx-bg-neutral-500{background-color:var(--bx-color-neutral-500)}.bx-text-neutral-500{color:var(--bx-color-neutral-500)}.bx-border-neutral-500{border-color:var(--bx-color-neutral-500)}.bx-bg-neutral-600{background-color:var(--bx-color-neutral-600)}.bx-text-neutral-600{color:var(--bx-color-neutral-600)}.bx-border-neutral-600{border-color:var(--bx-color-neutral-600)}.bx-bg-neutral-700{background-color:var(--bx-color-neutral-700)}.bx-text-neutral-700{color:var(--bx-color-neutral-700)}.bx-border-neutral-700{border-color:var(--bx-color-neutral-700)}.bx-bg-neutral-800{background-color:var(--bx-color-neutral-800)}.bx-text-neutral-800{color:var(--bx-color-neutral-800)}.bx-border-neutral-800{border-color:var(--bx-color-neutral-800)}.bx-bg-neutral-900{background-color:var(--bx-color-neutral-900)}.bx-text-neutral-900{color:var(--bx-color-neutral-900)}.bx-border-neutral-900{border-color:var(--bx-color-neutral-900)}.bx-bg-neutral-1000{background-color:var(--bx-color-neutral-1000)}.bx-text-neutral-1000{color:var(--bx-color-neutral-1000)}.bx-border-neutral-1000{border-color:var(--bx-color-neutral-1000)}:root{--bx-space-0: 0;--bx-space-1: .25rem;--bx-space-2: .5rem;--bx-space-3: .75rem;--bx-space-4: 1rem;--bx-space-5: 1.25rem;--bx-space-6: 1.5rem;--bx-space-8: 2rem;--bx-space-10: 2.5rem;--bx-space-12: 3rem;--bx-rounded-none: 0;--bx-rounded-sm: .25rem;--bx-rounded-md: .5rem;--bx-rounded-lg: .75rem;--bx-rounded-xl: 1rem;--bx-rounded-2xl: 1.5rem;--bx-rounded-3xl: 1.875rem;--bx-rounded-pill: 9999px;--bx-shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--bx-shadow-md: 0 4px 8px -1px rgba(0, 0, 0, .15), 0 2px 4px -2px rgba(0, 0, 0, .12);--bx-shadow-lg: 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1);--bx-shadow-xl: 0 24px 32px -5px rgba(0, 0, 0, .25), 0 10px 12px -5px rgba(0, 0, 0, .15);--bx-shadow-modal: 0 8px 20px rgba(0, 0, 0, .12);--bx-shadow-toast: 0 4px 12px rgba(0, 0, 0, .15);--bx-z-base: 1;--bx-z-dropdown: 100;--bx-z-sticky: 200;--bx-z-fixed: 300;--bx-z-modal: 400;--bx-z-popover: 500;--bx-z-tooltip: 600;--bx-z-toast: 9999;--bx-color-orange-50: #FFF7ED;--bx-color-orange-100: #FFEDD4;--bx-color-orange-200: #FFD6A7;--bx-color-orange-300: #FFB86A;--bx-color-orange-400: #FF8904;--bx-color-orange-500: #FF6900;--bx-color-orange-600: #F54900;--bx-color-orange-700: #CA3500;--bx-color-orange-800: #9F2D00;--bx-color-orange-900: #551111;--bx-color-orange-1000: #441306;--bx-color-purple-50: #F4EBFF;--bx-color-purple-100: #E6D4FF;--bx-color-purple-200: #CFA3FF;--bx-color-purple-300: #B36BFF;--bx-color-purple-400: #922FFF;--bx-color-purple-500: #6D00FF;--bx-color-purple-600: #5700CC;--bx-color-purple-700: #410099;--bx-color-purple-800: #2C0066;--bx-color-purple-900: #160033;--bx-color-purple-1000: #0B001A;--bx-color-red-50: #FDF1F0;--bx-color-red-100: #FADCDA;--bx-color-red-200: #F5B0AB;--bx-color-red-300: #EF8079;--bx-color-red-400: #EA4C43;--bx-color-red-500: #E3241B;--bx-color-red-600: #BE1810;--bx-color-red-700: #991009;--bx-color-red-800: #750904;--bx-color-red-900: #520401;--bx-color-red-1000: #2E0200;--bx-color-green-50: #F7FCE8;--bx-color-green-100: #EDF8C8;--bx-color-green-200: #DDF19C;--bx-color-green-300: #CAE96A;--bx-color-green-400: #BEE046;--bx-color-green-500: #B0D624;--bx-color-green-600: #92B518;--bx-color-green-700: #718F10;--bx-color-green-800: #556D0C;--bx-color-green-900: #3C4E08;--bx-color-green-1000: #212C03;--bx-color-danger-50: #FFFCFC;--bx-color-danger-100: #F4E5E5;--bx-color-danger-200: #EAD0D0;--bx-color-danger-300: #DE9E9E;--bx-color-danger-400: #F76D6D;--bx-color-danger-500: #D94D4D;--bx-color-danger-600: #C93D3D;--bx-color-danger-700: #BA2E2E;--bx-color-danger-800: #722222;--bx-color-danger-900: #2B1717;--bx-color-danger-1000: #0E0C0C;--bx-color-warn-50: #FFFEFB;--bx-color-warn-100: #F7F0E3;--bx-color-warn-200: #EAE3D0;--bx-color-warn-300: #E7C892;--bx-color-warn-400: #E4AD55;--bx-color-warn-500: #C68D36;--bx-color-warn-600: #B77D27;--bx-color-warn-700: #A96D18;--bx-color-warn-800: #6A4817;--bx-color-warn-900: #2B2317;--bx-color-warn-1000: #0E0D0C;--bx-color-success-50: #FCFFFC;--bx-color-success-100: #E6F4E6;--bx-color-success-200: #D1EAD0;--bx-color-success-300: #98D6A0;--bx-color-success-400: #5FC370;--bx-color-success-500: #3FA94E;--bx-color-success-600: #2E9C3E;--bx-color-success-700: #1E8F2D;--bx-color-success-800: #1A5D22;--bx-color-success-900: #172B18;--bx-color-success-1000: #0C0E0C;--bx-color-information-50: #FBFDFF;--bx-color-information-100: #E5EEF7;--bx-color-information-200: #D0DDEA;--bx-color-information-300: #97CACE;--bx-color-information-400: #5FB7C3;--bx-color-information-500: #3E90B5;--bx-color-information-600: #2E7CAE;--bx-color-information-700: #1E69A7;--bx-color-information-800: #1A4469;--bx-color-information-900: #17202B;--bx-color-information-1000: #0C0D0E;--bx-color-neutral-50: #FAFAFA;--bx-color-neutral-100: #F5F5F5;--bx-color-neutral-200: #E5E5E5;--bx-color-neutral-300: #D4D4D4;--bx-color-neutral-400: #A1A1A1;--bx-color-neutral-500: #737373;--bx-color-neutral-600: #525252;--bx-color-neutral-700: #404040;--bx-color-neutral-800: #262626;--bx-color-neutral-900: #171717;--bx-color-neutral-1000: #0A0A0A}:root .bx-icon-pos-start{margin-right:.5rem}:root .bx-icon-pos-end{margin-left:.5rem}.bx-bg-canvas{background-color:var(--bx-bg-canvas);transition:background-color .2s ease-in-out}.bx-bg-surface{background-color:var(--bx-bg-surface);transition:background-color .2s ease-in-out}.bx-bg-surface-alt{background-color:var(--bx-bg-surface-alt);transition:background-color .2s ease-in-out}.bx-bg-element{background-color:var(--bx-bg-element);transition:background-color .2s ease-in-out}.bx-bg-element-hover{background-color:var(--bx-bg-element-hover);transition:background-color .2s ease-in-out}.bx-bg-element-active{background-color:var(--bx-bg-element-active);transition:background-color .2s ease-in-out}.bx-bg-primary{background-color:var(--bx-primary);transition:background-color .2s ease-in-out}.bx-text-primary{color:var(--bx-primary);transition:color .2s ease-in-out}.bx-border-primary{border-color:var(--bx-primary);transition:border-color .2s ease-in-out}.bx-bg-primary-hover{background-color:var(--bx-primary-hover);transition:background-color .2s ease-in-out}.bx-text-primary-hover{color:var(--bx-primary-hover);transition:color .2s ease-in-out}.bx-border-primary-hover{border-color:var(--bx-primary-hover);transition:border-color .2s ease-in-out}.bx-bg-primary-active{background-color:var(--bx-primary-active);transition:background-color .2s ease-in-out}.bx-text-primary-active{color:var(--bx-primary-active);transition:color .2s ease-in-out}.bx-border-primary-active{border-color:var(--bx-primary-active);transition:border-color .2s ease-in-out}.bx-bg-primary-subtle{background-color:var(--bx-primary-subtle);transition:background-color .2s ease-in-out}.bx-text-primary-subtle{color:var(--bx-primary-subtle);transition:color .2s ease-in-out}.bx-border-primary-subtle{border-color:var(--bx-primary-subtle);transition:border-color .2s ease-in-out}.bx-bg-on-primary{background-color:var(--bx-on-primary);transition:background-color .2s ease-in-out}.bx-text-on-primary{color:var(--bx-on-primary);transition:color .2s ease-in-out}.bx-border-on-primary{border-color:var(--bx-on-primary);transition:border-color .2s ease-in-out}.bx-text-heading{color:var(--bx-text-heading);transition:color .2s ease-in-out}.bx-text-primary{color:var(--bx-text-primary);transition:color .2s ease-in-out}.bx-text-secondary{color:var(--bx-text-secondary);transition:color .2s ease-in-out}.bx-text-brand{color:var(--bx-text-brand);transition:color .2s ease-in-out}.bx-text-inverse{color:var(--bx-text-inverse);transition:color .2s ease-in-out}.bx-text-info{color:var(--bx-text-info);transition:color .2s ease-in-out}.bx-text-warn{color:var(--bx-text-warn);transition:color .2s ease-in-out}.bx-text-success{color:var(--bx-text-success);transition:color .2s ease-in-out}.bx-text-danger{color:var(--bx-text-danger);transition:color .2s ease-in-out}.bx-border-subtle{border-color:var(--bx-border-subtle);transition:border-color .2s ease-in-out}.bx-border-default{border-color:var(--bx-border-default);transition:border-color .2s ease-in-out}.bx-border-strong{border-color:var(--bx-border-strong);transition:border-color .2s ease-in-out}.bx-border-brand{border-color:var(--bx-border-brand);transition:border-color .2s ease-in-out}.bx-border-info{border-color:var(--bx-border-info);transition:border-color .2s ease-in-out}.bx-border-success{border-color:var(--bx-border-success);transition:border-color .2s ease-in-out}.bx-border-warn{border-color:var(--bx-border-warn);transition:border-color .2s ease-in-out}.bx-border-danger{border-color:var(--bx-border-danger);transition:border-color .2s ease-in-out}.bx-bg-info{background-color:var(--bx-bg-info);transition:background-color .2s ease-in-out}.bx-bg-info-hover{background-color:var(--bx-bg-info-hover);transition:background-color .2s ease-in-out}.bx-bg-info-active{background-color:var(--bx-bg-info-active);transition:background-color .2s ease-in-out}.bx-bg-info-disabled{background-color:var(--bx-bg-info-disabled);transition:background-color .2s ease-in-out}.bx-bg-info-subtle{background-color:var(--bx-bg-info-subtle);transition:background-color .2s ease-in-out}.bx-bg-success{background-color:var(--bx-bg-success);transition:background-color .2s ease-in-out}.bx-bg-success-hover{background-color:var(--bx-bg-success-hover);transition:background-color .2s ease-in-out}.bx-bg-success-active{background-color:var(--bx-bg-success-active);transition:background-color .2s ease-in-out}.bx-bg-success-disabled{background-color:var(--bx-bg-success-disabled);transition:background-color .2s ease-in-out}.bx-bg-success-subtle{background-color:var(--bx-bg-success-subtle);transition:background-color .2s ease-in-out}.bx-bg-warn{background-color:var(--bx-bg-warn);transition:background-color .2s ease-in-out}.bx-bg-warn-hover{background-color:var(--bx-bg-warn-hover);transition:background-color .2s ease-in-out}.bx-bg-warn-active{background-color:var(--bx-bg-warn-active);transition:background-color .2s ease-in-out}.bx-bg-warn-disabled{background-color:var(--bx-bg-warn-disabled);transition:background-color .2s ease-in-out}.bx-bg-warn-subtle{background-color:var(--bx-bg-warn-subtle);transition:background-color .2s ease-in-out}.bx-bg-danger{background-color:var(--bx-bg-danger);transition:background-color .2s ease-in-out}.bx-bg-danger-hover{background-color:var(--bx-bg-danger-hover);transition:background-color .2s ease-in-out}.bx-bg-danger-active{background-color:var(--bx-bg-danger-active);transition:background-color .2s ease-in-out}.bx-bg-danger-disabled{background-color:var(--bx-bg-danger-disabled);transition:background-color .2s ease-in-out}.bx-bg-danger-subtle{background-color:var(--bx-bg-danger-subtle);transition:background-color .2s ease-in-out}.breadcrumbs{color:var(--bx-text-primary);padding:0rem 3rem;display:flex;flex-wrap:wrap;align-items:center;view-transition-name:breadcrumb-bar}@media(max-width:1280px){.breadcrumbs{padding:0rem 1.5rem;margin-top:1rem}}.crumb{font-size:.9rem;cursor:pointer}.crumb.last{cursor:default;font-family:custom_semibold}.crumb.animated{animation:breadcrumb-appear-anim .3s ease-in-out}.crumb:hover,.crumb:hover.last{color:var(--bx-text-primary)}.breadcrumb-separator{margin:0 .35rem;opacity:.4}.crumb.breadcrumb-on-appear{animation-delay:calc(var(--crumb-index) * .1s)}.breadcrumb-on-appear:not(.single):not(.alone){animation:braedcrumb-on-appear-anim .5s ease-in-out forwards;animation-duration:calc(.5s * (1 - var(--a11y-reduced-motion)))}@keyframes braedcrumb-on-appear-anim{0%{opacity:0;transform:translate(-15px)}to{opacity:1;transform:translate(0)}}\n"] }]
242
+ }], propDecorators: { minimumBreadcrumbs: [{ type: i0.Input, args: [{ isSignal: true, alias: "minimumBreadcrumbs", required: false }] }], isAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAnimated", required: false }] }], divider: [{ type: i0.Input, args: [{ isSignal: true, alias: "divider", required: false }] }] } });
243
+
217
244
  function provideNavigation(config) {
218
245
  return [
219
246
  {
@@ -245,5 +272,5 @@ function withNav(route, nav) {
245
272
  * Generated bundle index. Do not edit.
246
273
  */
247
274
 
248
- export { NAVIGATION_ACCESS_ADAPTER, NAVIGATION_CONFIG, NAVIGATION_I18N, NavigationService, provideNavigation, withNav };
275
+ export { Breadcrumbs, NAVIGATION_ACCESS_ADAPTER, NAVIGATION_CONFIG, NavigationService, provideNavigation, withNav };
249
276
  //# sourceMappingURL=filip.mazev-blocks-navigation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-blocks-navigation.mjs","sources":["../../../projects/blocks/navigation/tokens/navigation-config.token.ts","../../../projects/blocks/navigation/tokens/navigation-i18n.token.ts","../../../projects/blocks/navigation/tokens/navigation-access-adapter.token.ts","../../../projects/blocks/navigation/services/navigation.service.ts","../../../projects/blocks/navigation/helpers/navigation-functions.ts","../../../projects/blocks/navigation/public-api.ts","../../../projects/blocks/navigation/filip.mazev-blocks-navigation.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport { INavigationConfig } from \"../interfaces/inavigation-config.interface\";\n\nexport const NAVIGATION_CONFIG = new InjectionToken<INavigationConfig>('NAVIGATION_CONFIG');","import { InjectionToken } from \"@angular/core\";\nimport { INavigationI18nAdapter } from \"../interfaces/inavigation-i18n-adapter.interface\";\n\nexport const NAVIGATION_I18N = new InjectionToken<INavigationI18nAdapter>('NAVIGATION_I18N');","import { InjectionToken } from \"@angular/core\";\nimport { INavigationAccessAdapter } from \"../interfaces/inavigation-access-adapter.interface\";\n\nexport const NAVIGATION_ACCESS_ADAPTER = new InjectionToken<INavigationAccessAdapter>('NAVIGATION_ACCESS_ADAPTER');","import { computed, inject, Injectable, Signal, signal } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, Routes } from \"@angular/router\";\nimport { NAVIGATION_CONFIG } from \"../tokens/navigation-config.token\";\nimport { IResolvedNavigation } from \"../interfaces/iresolved-navigation.interface\";\nimport { filter } from \"rxjs\";\nimport { IBreadcrumbItem } from \"../interfaces/ibreadcrumb-item.interface\";\nimport { INavMeta } from \"../interfaces/inav-meta.interface\";\nimport { INavigationItem } from \"../interfaces/inavigation-item.interface\";\nimport { NAVIGATION_I18N } from \"../tokens/navigation-i18n.token\";\nimport { NAVIGATION_ACCESS_ADAPTER } from \"../tokens/navigation-access-adapter.token\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private readonly router = inject(Router);\n private readonly config = inject(NAVIGATION_CONFIG, { optional: true });\n private readonly i18n = inject(NAVIGATION_I18N, { optional: true });\n private readonly accessAdapter = inject(NAVIGATION_ACCESS_ADAPTER, { optional: true });\n\n private readonly navEnd = toSignal(\n this.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n );\n\n public readonly current = computed<IResolvedNavigation>(() => {\n this.navEnd(); \n this.i18n?.version?.();\n return this.resolveCurrent(this.router.routerState.snapshot.root);\n });\n\n public readonly routeBase = computed<string | undefined>(() => {\n return this.accessAdapter?.resolveBaseRoute();\n });\n\n public readonly routes: Signal<INavigationItem[]> = computed(() => {\n this.i18n?.version?.();\n return this.extractRoutes(this.router.config);\n });\n\n public readonly baseRoute = computed<string | undefined>(() => {\n const viewableRoutes = this.routes();\n \n const primaryPrefix = this.routeBase(); \n\n let firstFoundRoot: string | undefined;\n\n const findRootRoute = (items: INavigationItem[]): string | undefined => {\n for (const item of items) {\n if (item.data?.root) {\n if (!firstFoundRoot) {\n firstFoundRoot = item.route;\n }\n\n if (primaryPrefix && item.route.startsWith(primaryPrefix)) {\n return item.route;\n }\n }\n \n if (item.children?.length) {\n const childRoot = findRootRoute(item.children);\n if (childRoot) return childRoot;\n }\n }\n return undefined;\n };\n\n const perfectMatch = findRootRoute(viewableRoutes);\n\n return perfectMatch ?? firstFoundRoot ?? primaryPrefix;\n });\n\n public readonly menu = computed(() => this.buildMenu(this.routes()));\n\n public navigateBack(): void {\n const breadcrumbs = this.current().breadcrumbs;\n \n if (breadcrumbs.length > 1) {\n const previousBreadcrumb = breadcrumbs[breadcrumbs.length - 2];\n this.router.navigateByUrl(previousBreadcrumb.route);\n } else {\n this.router.navigateByUrl(this.routeBase() ?? '/');\n }\n }\n\n //#region Helpers\n\n private extractRoutes(routes: Routes, parentSegment: string[] = []): INavigationItem[] {\n const items: INavigationItem[] = [];\n\n for(const route of routes) {\n if(route.redirectTo) continue;\n\n if (this.accessAdapter && !this.accessAdapter.canAccessMenu(route.data ?? {})) {\n continue;\n }\n\n const ownPath = route.path ?? '';\n \n const fullSegments = ownPath \n ? [...parentSegment, ownPath] \n : [...parentSegment];\n\n const fullRoute = '/' + fullSegments.filter(Boolean).join('/');\n\n const children = route.children?.length\n ? this.extractRoutes(route.children, fullSegments)\n : [];\n \n const nav = route.data?.['nav'] as INavMeta | undefined;\n\n if(!nav) {\n items.push(...children);\n continue;\n }\n\n const item = {\n id: fullRoute,\n route: fullRoute,\n label: this.resolveNavText(nav, 'label') ?? '',\n icon: nav.icon,\n section: nav.section,\n visible: nav.visible ? nav.visible() : true,\n data: nav,\n children\n };\n\n items.push(item);\n }\n\n return this.sortNavigationItems(items);\n }\n\n private resolveCurrent(root: ActivatedRouteSnapshot): IResolvedNavigation {\n let currentNode: ActivatedRouteSnapshot | null = root;\n let finalSnapshot: ActivatedRouteSnapshot | undefined;\n\n while (currentNode) {\n const next: ActivatedRouteSnapshot | null = currentNode.children.find(child => child.outlet === 'primary') ?? null;\n if (!next) {\n finalSnapshot = currentNode;\n break;\n }\n currentNode = next;\n }\n\n if (!finalSnapshot) return { breadcrumbs: [] };\n\n const urlSegments = finalSnapshot.pathFromRoot\n .flatMap(s => s.url.map(u => u.path))\n .filter(Boolean);\n\n const breadcrumbs: IBreadcrumbItem[] = [];\n const allItems = this.flattenRoutes(this.routes());\n let currentUrl = '';\n\n for (const segment of urlSegments) {\n currentUrl += '/' + segment;\n \n const matchingItem = this.matchRouteToUrl(allItems, currentUrl);\n\n if (matchingItem && matchingItem.data && !matchingItem.data.hidden) {\n const label = this.resolveNavText(matchingItem.data, 'breadcrumb', finalSnapshot) \n ?? this.resolveNavText(matchingItem.data, 'label', finalSnapshot);\n \n if (label && breadcrumbs[breadcrumbs.length - 1]?.label !== label) {\n breadcrumbs.push({ label, route: currentUrl });\n }\n }\n }\n\n const leafNav = finalSnapshot.routeConfig?.data?.['nav'] as INavMeta | undefined;\n const fullUrl = '/' + urlSegments.join('/');\n \n let current: INavigationItem | undefined;\n\n if (leafNav && !leafNav.hidden) {\n current = {\n id: fullUrl,\n route: fullUrl,\n label: this.resolveNavText(leafNav, 'label', finalSnapshot) ?? '',\n icon: leafNav.icon,\n section: leafNav.section,\n visible: leafNav.visible ? leafNav.visible() : true,\n data: leafNav\n };\n }\n\n return { current, breadcrumbs };\n }\n\n private buildMenu(items: INavigationItem[]): INavigationItem[] {\n return items\n .map((item): INavigationItem | null => {\n const children = this.buildMenu(item.children ?? []);\n const includeSelf = item.visible && item.data?.menu !== false;\n\n if (!includeSelf && !children.length) {\n return null;\n }\n\n return {\n ...item,\n children\n };\n }) \n .filter((item): item is INavigationItem => item !== null);\n }\n\n private sortNavigationItems(items: INavigationItem[]): INavigationItem[] {\n const customSort = this.config?.sortItems;\n\n return [...items].sort((a, b) => {\n if(customSort) {\n return customSort(a, b);\n }\n\n const orderA = a.data?.order ?? Number.POSITIVE_INFINITY;\n const orderB = b.data?.order ?? Number.POSITIVE_INFINITY;\n\n if(orderA !== orderB) return orderA - orderB;\n return a.label.localeCompare(b.label);\n });\n }\n\n private resolveNavText(\n nav: INavMeta,\n kind: 'label' | 'breadcrumb',\n snapshot?: ActivatedRouteSnapshot\n ): string | undefined {\n const directValue = kind === 'label' ? nav.label : nav.breadcrumb;\n const key = kind === 'label' ? nav.labelKey : nav.breadcrumbKey;\n\n if(directValue) {\n return typeof directValue === 'function'\n ? directValue({ snapshot: snapshot! })\n : directValue;\n }\n\n if(key) {\n return this.i18n?.translate(key, { route: snapshot });\n }\n\n return undefined;\n }\n\n private matchRouteToUrl(items: INavigationItem[], url: string): INavigationItem | undefined {\n const exactMatch = items.find(i => i.route === url);\n if (exactMatch) return exactMatch;\n\n return items.find(i => {\n if (!i.route.includes(':')) return false;\n const routeRegex = new RegExp('^' + i.route.replace(/:[^\\s/]+/g, '([^/]+)') + '$');\n return routeRegex.test(url);\n });\n }\n\n private flattenRoutes(items: INavigationItem[]): INavigationItem[] {\n return items.reduce((acc, item) => {\n acc.push(item);\n if (item.children) acc.push(...this.flattenRoutes(item.children));\n return acc;\n }, [] as INavigationItem[]);\n }\n\n //#endregion\n}","import { INavMeta } from \"@navigation/interfaces/inav-meta.interface\";\nimport { INavigationConfig } from \"../interfaces/inavigation-config.interface\";\nimport { NAVIGATION_CONFIG } from \"../tokens/navigation-config.token\";\nimport { Route } from \"@angular/router\";\n\nexport function provideNavigation(config: INavigationConfig) {\n return [\n {\n provide: NAVIGATION_CONFIG,\n useValue: config\n }\n ];\n};\n\nexport function withNav(route: Route, nav: INavMeta): Route {\n const existingNav = (route.data?.['nav'] as INavMeta | undefined) ?? {};\n\n return {\n ...route,\n data: {\n ...(route.data ?? {}),\n nav: {\n ...existingNav,\n ...nav\n }\n }\n };\n}","/*\n * Public API Surface of modal\n */\n\nexport * from './services/navigation.service';\n\nexport * from './interfaces/ibreadcrumb-item.interface';\nexport * from './interfaces/inav-context.interface';\nexport * from './interfaces/inav-meta.interface';\nexport * from './interfaces/inav-route-data.interface';\nexport * from './interfaces/inavigation-access-adapter.interface';\nexport * from './interfaces/inavigation-config.interface';\nexport * from './interfaces/inavigation-i18n-adapter.interface';\nexport * from './interfaces/inavigation-item.interface';\nexport * from './interfaces/inavigation-section-config.interface';\nexport * from './interfaces/iresolved-navigation.interface';\n\nexport * from './tokens/navigation-config.token';\nexport * from './tokens/navigation-i18n.token';\nexport * from './tokens/navigation-access-adapter.token';\n\nexport * from './helpers/navigation-functions';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filip.mazev-blocks-navigation.mjs","sources":["../../../projects/blocks/navigation/tokens/navigation-config.token.ts","../../../projects/blocks/navigation/tokens/navigation-access-adapter.token.ts","../../../projects/blocks/navigation/services/navigation.service.ts","../../../projects/blocks/navigation/components/breadcrumbs/breadcrumbs.ts","../../../projects/blocks/navigation/components/breadcrumbs/breadcrumbs.html","../../../projects/blocks/navigation/helpers/navigation-functions.ts","../../../projects/blocks/navigation/public-api.ts","../../../projects/blocks/navigation/filip.mazev-blocks-navigation.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport { INavigationConfig } from \"../interfaces/inavigation-config.interface\";\n\nexport const NAVIGATION_CONFIG = new InjectionToken<INavigationConfig>('NAVIGATION_CONFIG');","import { InjectionToken } from \"@angular/core\";\nimport { INavigationAccessAdapter } from \"../interfaces/inavigation-access-adapter.interface\";\n\nexport const NAVIGATION_ACCESS_ADAPTER = new InjectionToken<INavigationAccessAdapter>('NAVIGATION_ACCESS_ADAPTER');","import { computed, inject, Injectable, Signal } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, NavigationEnd, Router, Routes } from \"@angular/router\";\nimport { NAVIGATION_CONFIG } from \"../tokens/navigation-config.token\";\nimport { IResolvedNavigation } from \"../interfaces/iresolved-navigation.interface\";\nimport { filter } from \"rxjs\";\nimport { IBreadcrumbItem } from \"../interfaces/ibreadcrumb-item.interface\";\nimport { INavMeta } from \"../interfaces/inav-meta.interface\";\nimport { INavigationItem } from \"../interfaces/inavigation-item.interface\";\nimport { NAVIGATION_ACCESS_ADAPTER } from \"../tokens/navigation-access-adapter.token\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { BX_I18N } from \"@filip.mazev/blocks/core\";\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private readonly router = inject(Router);\n private readonly config = inject(NAVIGATION_CONFIG, { optional: true });\n private readonly i18n = inject(BX_I18N, { optional: true });\n private readonly accessAdapter = inject(NAVIGATION_ACCESS_ADAPTER, { optional: true });\n\n private readonly navEnd = toSignal(\n this.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd))\n );\n\n public readonly current = computed<IResolvedNavigation>(() => {\n this.navEnd(); \n this.i18n?.version?.();\n return this.resolveCurrent(this.router.routerState.snapshot.root);\n });\n\n public readonly routeBase = computed<string | undefined>(() => {\n return this.accessAdapter?.resolveBaseRoute();\n });\n\n public readonly routes: Signal<INavigationItem[]> = computed(() => {\n this.i18n?.version?.();\n return this.extractRoutes(this.router.config);\n });\n\n public readonly baseRoute = computed<string | undefined>(() => {\n const viewableRoutes = this.routes();\n \n const primaryPrefix = this.routeBase(); \n\n let firstFoundRoot: string | undefined;\n\n const findRootRoute = (items: INavigationItem[]): string | undefined => {\n for (const item of items) {\n if (item.data?.root) {\n if (!firstFoundRoot) {\n firstFoundRoot = item.route;\n }\n\n if (primaryPrefix && item.route.startsWith(primaryPrefix)) {\n return item.route;\n }\n }\n \n if (item.children?.length) {\n const childRoot = findRootRoute(item.children);\n if (childRoot) return childRoot;\n }\n }\n return undefined;\n };\n\n const perfectMatch = findRootRoute(viewableRoutes);\n\n return perfectMatch ?? firstFoundRoot ?? primaryPrefix;\n });\n\n public readonly menu = computed(() => this.buildMenu(this.routes()));\n\n public navigateBack(): void {\n const breadcrumbs = this.current().breadcrumbs;\n \n if (breadcrumbs.length > 1) {\n const previousBreadcrumb = breadcrumbs[breadcrumbs.length - 2];\n this.router.navigateByUrl(previousBreadcrumb.route);\n } else {\n this.router.navigateByUrl(this.routeBase() ?? '/');\n }\n }\n\n //#region Helpers\n\n private extractRoutes(routes: Routes, parentSegment: string[] = []): INavigationItem[] {\n const items: INavigationItem[] = [];\n\n for(const route of routes) {\n if(route.redirectTo) continue;\n\n if (this.accessAdapter && !this.accessAdapter.canAccessMenu(route.data ?? {})) {\n continue;\n }\n\n const ownPath = route.path ?? '';\n \n const fullSegments = ownPath \n ? [...parentSegment, ownPath] \n : [...parentSegment];\n\n const fullRoute = '/' + fullSegments.filter(Boolean).join('/');\n\n const children = route.children?.length\n ? this.extractRoutes(route.children, fullSegments)\n : [];\n \n const nav = route.data?.['nav'] as INavMeta | undefined;\n\n if(!nav) {\n items.push(...children);\n continue;\n }\n\n const item = {\n id: fullRoute,\n route: fullRoute,\n label: this.resolveNavText(nav, 'label') ?? '',\n icon: nav.icon,\n section: nav.section,\n visible: nav.visible ? nav.visible() : true,\n data: nav,\n children\n };\n\n items.push(item);\n }\n\n return this.sortNavigationItems(items);\n }\n\n private resolveCurrent(root: ActivatedRouteSnapshot): IResolvedNavigation {\n let currentNode: ActivatedRouteSnapshot | null = root;\n let finalSnapshot: ActivatedRouteSnapshot | undefined;\n\n while (currentNode) {\n const next: ActivatedRouteSnapshot | null = currentNode.children.find(child => child.outlet === 'primary') ?? null;\n if (!next) {\n finalSnapshot = currentNode;\n break;\n }\n currentNode = next;\n }\n\n if (!finalSnapshot) return { breadcrumbs: [] };\n\n const urlSegments = finalSnapshot.pathFromRoot\n .flatMap(s => s.url.map(u => u.path))\n .filter(Boolean);\n\n const breadcrumbs: IBreadcrumbItem[] = [];\n const allItems = this.flattenRoutes(this.routes());\n let currentUrl = '';\n\n for (const segment of urlSegments) {\n currentUrl += '/' + segment;\n \n const matchingItem = this.matchRouteToUrl(allItems, currentUrl);\n\n if (matchingItem && matchingItem.data && !matchingItem.data.hidden) {\n const label = this.resolveNavText(matchingItem.data, 'breadcrumb', finalSnapshot) \n ?? this.resolveNavText(matchingItem.data, 'label', finalSnapshot);\n \n if (label && breadcrumbs[breadcrumbs.length - 1]?.label !== label) {\n breadcrumbs.push({ label, route: currentUrl });\n }\n }\n }\n\n const leafNav = finalSnapshot.routeConfig?.data?.['nav'] as INavMeta | undefined;\n const fullUrl = '/' + urlSegments.join('/');\n \n let current: INavigationItem | undefined;\n\n if (leafNav && !leafNav.hidden) {\n current = {\n id: fullUrl,\n route: fullUrl,\n label: this.resolveNavText(leafNav, 'label', finalSnapshot) ?? '',\n icon: leafNav.icon,\n section: leafNav.section,\n visible: leafNav.visible ? leafNav.visible() : true,\n data: leafNav\n };\n }\n\n return { current, breadcrumbs };\n }\n\n private buildMenu(items: INavigationItem[]): INavigationItem[] {\n return items\n .map((item): INavigationItem | null => {\n const children = this.buildMenu(item.children ?? []);\n const includeSelf = item.visible && item.data?.menu !== false;\n\n if (!includeSelf && !children.length) {\n return null;\n }\n\n return {\n ...item,\n children\n };\n }) \n .filter((item): item is INavigationItem => item !== null);\n }\n\n private sortNavigationItems(items: INavigationItem[]): INavigationItem[] {\n const customSort = this.config?.sortItems;\n\n return [...items].sort((a, b) => {\n if(customSort) {\n return customSort(a, b);\n }\n\n const orderA = a.data?.order ?? Number.POSITIVE_INFINITY;\n const orderB = b.data?.order ?? Number.POSITIVE_INFINITY;\n\n if(orderA !== orderB) return orderA - orderB;\n return a.label.localeCompare(b.label);\n });\n }\n\n private resolveNavText(\n nav: INavMeta,\n kind: 'label' | 'breadcrumb',\n snapshot?: ActivatedRouteSnapshot\n ): string | undefined {\n const directValue = kind === 'label' ? nav.label : nav.breadcrumb;\n const key = kind === 'label' ? nav.labelKey : nav.breadcrumbKey;\n\n if(directValue) {\n return typeof directValue === 'function'\n ? directValue({ snapshot: snapshot! })\n : directValue;\n }\n\n if(key) {\n return this.i18n?.translate(key, { route: snapshot });\n }\n\n return undefined;\n }\n\n private matchRouteToUrl(items: INavigationItem[], url: string): INavigationItem | undefined {\n const exactMatch = items.find(i => i.route === url);\n if (exactMatch) return exactMatch;\n\n return items.find(i => {\n if (!i.route.includes(':')) return false;\n const routeRegex = new RegExp('^' + i.route.replace(/:[^\\s/]+/g, '([^/]+)') + '$');\n return routeRegex.test(url);\n });\n }\n\n private flattenRoutes(items: INavigationItem[]): INavigationItem[] {\n return items.reduce((acc, item) => {\n acc.push(item);\n if (item.children) acc.push(...this.flattenRoutes(item.children));\n return acc;\n }, [] as INavigationItem[]);\n }\n\n //#endregion\n}","import { Component, computed, inject, input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgClass } from '@angular/common';\nimport { NavigationService } from '../../services/navigation.service';\nimport { Icon, IconName } from '@filip.mazev/blocks/icons';\n\n@Component({\n selector: 'bx-breadcrumbs',\n imports: [NgClass, Icon],\n templateUrl: './breadcrumbs.html',\n styleUrl: './breadcrumbs.scss'\n})\nexport class Breadcrumbs {\n private readonly navigationService = inject(NavigationService);\n private readonly router = inject(Router);\n\n public readonly minimumBreadcrumbs = input<number>(2);\n public readonly isAnimated = input<boolean>(true);\n public readonly divider = input<IconName>('chevron-right');\n\n protected showBreadcumbs = computed(() => {\n const minimum = Math.max(1, this.minimumBreadcrumbs());\n return this.current().breadcrumbs.length >= minimum;\n });\n\n protected ariaLabel = computed(() => {\n const labels = this.current().breadcrumbs.map(crumb => crumb.label).join(' > ');\n return `Breadcrumbs: ${labels}`;\n });\n\n protected current = this.navigationService.current;\n\n protected navigateTo(url: string) {\n this.router.navigateByUrl(url);\n }\n}\n","@if(showBreadcumbs()) {\n<nav class=\"breadcrumbs\" [aria-label]=\"ariaLabel()\">\n @for (crumb of current().breadcrumbs; track crumb.route; let i = $index) {\n <button class=\"crumb\" (click)=\"navigateTo(crumb.route)\" [ngClass]=\"{\n 'last': i === current().breadcrumbs.length - 1,\n 'breadcrumb-on-appear': i === current().breadcrumbs.length - 1 && current().breadcrumbs.length > 1\n }\" [style.--crumb-index]=\"i\" [class.animated]=\"isAnimated()\">\n {{ crumb.label }}\n </button>\n\n @if (i !== current().breadcrumbs.length - 1) {\n <bx-icon [name]=\"divider()\" size=\"16\" class=\"breadcrumb-separator\" />\n }\n }\n</nav>\n}","import { INavMeta } from \"@navigation/interfaces/inav-meta.interface\";\nimport { INavigationConfig } from \"../interfaces/inavigation-config.interface\";\nimport { NAVIGATION_CONFIG } from \"../tokens/navigation-config.token\";\nimport { Route } from \"@angular/router\";\nimport { Strict } from \"@filip.mazev/blocks/core\";\n\nexport function provideNavigation(config: INavigationConfig) {\n return [\n {\n provide: NAVIGATION_CONFIG,\n useValue: config\n }\n ];\n};\n\nexport function withNav<T>(route: Route, nav: Strict<T, INavMeta>): Route {\n const existingNav = (route.data?.['nav'] as INavMeta | undefined) ?? {};\n\n return {\n ...route,\n data: {\n ...(route.data ?? {}),\n nav: {\n ...existingNav,\n ...nav\n }\n }\n };\n}\n","/*\n * Public API Surface of modal\n */\n\nexport * from './components/breadcrumbs/breadcrumbs';\n\nexport * from './services/navigation.service';\n\nexport * from './interfaces/ibreadcrumb-item.interface';\nexport * from './interfaces/inav-context.interface';\nexport * from './interfaces/inav-meta.interface';\nexport * from './interfaces/inav-route-data.interface';\nexport * from './interfaces/inavigation-access-adapter.interface';\nexport * from './interfaces/inavigation-config.interface';\nexport * from './interfaces/inavigation-item.interface';\nexport * from './interfaces/inavigation-section-config.interface';\nexport * from './interfaces/iresolved-navigation.interface';\n\nexport * from './tokens/navigation-config.token';\nexport * from './tokens/navigation-access-adapter.token';\n\nexport * from './helpers/navigation-functions';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /* * Public API Surface of blocks
2
2
  * This file is auto-generated. Do not edit directly.
3
3
  */
4
- const BLOCKS_VERSION = '1.2.22';
4
+ const BLOCKS_VERSION = '1.2.23';
5
5
 
6
6
  /**
7
7
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-blocks.mjs","sources":["../../../projects/blocks/src/public-api.ts","../../../projects/blocks/src/filip.mazev-blocks.ts"],"sourcesContent":["/* * Public API Surface of blocks\n * This file is auto-generated. Do not edit directly.\n */\n\nexport const BLOCKS_VERSION = '1.2.22';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;AAEI,MAAM,cAAc,GAAG;;ACJ9B;;AAEG;;;;"}
1
+ {"version":3,"file":"filip.mazev-blocks.mjs","sources":["../../../projects/blocks/src/public-api.ts","../../../projects/blocks/src/filip.mazev-blocks.ts"],"sourcesContent":["/* * Public API Surface of blocks\n * This file is auto-generated. Do not edit directly.\n */\n\nexport const BLOCKS_VERSION = '1.2.23';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"AAAA;;AAEG;AAEI,MAAM,cAAc,GAAG;;ACJ9B;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@filip.mazev/blocks",
3
- "version": "1.2.22",
3
+ "version": "1.2.26",
4
4
  "license": "MIT",
5
5
  "schematics": "./schematics/collection.json",
6
6
  "exports": {
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, NgZone } from '@angular/core';
2
+ import { OnDestroy, NgZone, Signal, InjectionToken } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
 
5
5
  declare enum DesktopOS {
@@ -17,7 +17,7 @@ declare enum MobileOS {
17
17
  WindowsPhone = "Windows Phone"
18
18
  }
19
19
 
20
- interface DeviceState {
20
+ interface IDeviceState {
21
21
  isDesktop: boolean;
22
22
  desktopOS: DesktopOS | undefined;
23
23
  isWindowsDesktop: boolean;
@@ -42,7 +42,7 @@ declare class DeviceTypeService {
42
42
  constructor();
43
43
  isLandscapeOrientation(): boolean;
44
44
  isPortraitOrientation(): boolean;
45
- getDeviceState(): DeviceState;
45
+ getDeviceState(): IDeviceState;
46
46
  private isMobileDevice;
47
47
  private isTabletDevice;
48
48
  private getMobileOS;
@@ -86,7 +86,7 @@ declare class ScrollLockService implements OnDestroy {
86
86
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScrollLockService>;
87
87
  }
88
88
 
89
- interface WindowDimensions {
89
+ interface IWindowDimensions {
90
90
  width: number;
91
91
  height: number;
92
92
  }
@@ -95,8 +95,8 @@ declare class WindowDimensionsService {
95
95
  readonly ngZone: NgZone;
96
96
  readonly platformId: Object;
97
97
  readonly isBrowser: boolean;
98
- readonly _dimensions: _angular_core.WritableSignal<WindowDimensions>;
99
- readonly dimensions: _angular_core.Signal<WindowDimensions>;
98
+ readonly _dimensions: _angular_core.WritableSignal<IWindowDimensions>;
99
+ readonly dimensions: _angular_core.Signal<IWindowDimensions>;
100
100
  readonly isMobile: _angular_core.Signal<boolean>;
101
101
  readonly isTablet: _angular_core.Signal<boolean>;
102
102
  readonly isDesktop: _angular_core.Signal<boolean>;
@@ -130,6 +130,9 @@ type LegacyScreenOrientation = Screen & {
130
130
  type MSStreamWindow = Window & {
131
131
  MSStream?: unknown;
132
132
  };
133
+ type Strict<T, Expected> = T & {
134
+ [K in keyof T]: K extends keyof Expected ? Expected[K] : never;
135
+ };
133
136
 
134
137
  declare class ThemingService implements OnDestroy {
135
138
  private readonly platformId;
@@ -154,6 +157,11 @@ declare class ThemingService implements OnDestroy {
154
157
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemingService>;
155
158
  }
156
159
 
160
+ interface IBxI18nAdapter {
161
+ translate(key: string, params?: Record<string, unknown>): string;
162
+ version?: Signal<number>;
163
+ }
164
+
157
165
  type SemanticColorToken = 'bg-canvas' | 'bg-surface' | 'bg-surface-alt' | 'bg-element' | 'bg-element-hover' | 'bg-element-active' | 'primary' | 'primary-hover' | 'primary-active' | 'primary-subtle' | 'on-primary' | 'text-heading' | 'text-primary' | 'text-secondary' | 'text-brand' | 'text-inverse' | 'text-info' | 'text-warn' | 'text-success' | 'text-danger' | 'border-subtle' | 'border-default' | 'border-strong' | 'border-brand' | 'border-info' | 'border-success' | 'border-warn' | 'border-danger' | 'bg-info' | 'bg-info-hover' | 'bg-info-active' | 'bg-info-disabled' | 'bg-info-subtle' | 'bg-success' | 'bg-success-hover' | 'bg-success-active' | 'bg-success-disabled' | 'bg-success-subtle' | 'bg-warn' | 'bg-warn-hover' | 'bg-warn-active' | 'bg-warn-disabled' | 'bg-warn-subtle' | 'bg-danger' | 'bg-danger-hover' | 'bg-danger-active' | 'bg-danger-disabled' | 'bg-danger-subtle' | 'scroll-bg' | 'scroll-thumb' | 'scroll-thumb-hover';
158
166
 
159
167
  declare const PALETTE_NAMES: readonly ["orange", "purple", "red", "green", "danger", "success", "information", "neutral"];
@@ -186,6 +194,8 @@ type ThemedColor = Color | {
186
194
  dark?: Color;
187
195
  };
188
196
 
197
+ declare const BX_I18N: InjectionToken<IBxI18nAdapter>;
198
+
189
199
  /**
190
200
  * Type Guard: Detects if a token is a static palette shade (e.g., 'orange-500')
191
201
  */
@@ -209,5 +219,5 @@ declare function invertPaletteToken(token: Color): Color;
209
219
 
210
220
  declare function uuidv4(): string;
211
221
 
212
- export { BREAKPOINTS, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, invertPaletteToken, isPaletteToken, isThemedColor, resolveTokenToCssVar, uuidv4 };
213
- export type { Color, DeviceOS, DeviceOrientationType, DeviceState, DeviceTheme, IScrollLockConfig, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow, SemanticColorToken, ThemeColorToken, ThemePalette, ThemeShade, ThemedColor, WindowDimensions };
222
+ export { BREAKPOINTS, BX_I18N, DesktopOS, DeviceTypeService, FALLBACK_COLOR, MobileOS, PALETTE_NAMES, SCROLL_LOCK_INSTANCE_IDENTIFIER, SEMANTIC_PAIRS, SHADE_NUMBERS, ScrollLockService, TOKEN_COLOR_DELIMITER, TOKEN_DELIMITER, TOKEN_PREFIX, ThemingService, WindowDimensionsService, getComplementaryToken, invertPaletteToken, isPaletteToken, isThemedColor, resolveTokenToCssVar, uuidv4 };
223
+ export type { Color, DeviceOS, DeviceOrientationType, DeviceTheme, IBxI18nAdapter, IDeviceState, IScrollLockConfig, IWindowDimensions, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow, SemanticColorToken, Strict, ThemeColorToken, ThemePalette, ThemeShade, ThemedColor };
@@ -350,7 +350,7 @@ declare class ModalCore<D, R, C extends IModal<D, R> = IModal<D, R>> implements
350
350
  protected isBottomSheetModalActive: _angular_core.WritableSignal<boolean>;
351
351
  protected hasBanner: boolean;
352
352
  protected hasDefaultContentWrapperClass: boolean;
353
- protected windowDimensions: _angular_core.Signal<_filip_mazev_blocks_core.WindowDimensions>;
353
+ protected windowDimensions: _angular_core.Signal<_filip_mazev_blocks_core.IWindowDimensions>;
354
354
  protected modalContainer?: ElementRef;
355
355
  protected contentTemplate?: TemplateRef<HTMLElement>;
356
356
  private sideModalComponents?;
@@ -1,8 +1,24 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _filip_mazev_blocks_navigation from '@filip.mazev/blocks/navigation';
2
+ import * as _angular_core from '@angular/core';
2
3
  import { Signal, InjectionToken } from '@angular/core';
3
4
  import { IconData } from '@filip.mazev/blocks/icons';
4
5
  import { ActivatedRouteSnapshot, Data, Route } from '@angular/router';
5
6
  import { INavMeta as INavMeta$1 } from '@navigation/interfaces/inav-meta.interface';
7
+ import { Strict } from '@filip.mazev/blocks/core';
8
+
9
+ declare class Breadcrumbs {
10
+ private readonly navigationService;
11
+ private readonly router;
12
+ readonly minimumBreadcrumbs: _angular_core.InputSignal<number>;
13
+ readonly isAnimated: _angular_core.InputSignal<boolean>;
14
+ readonly divider: _angular_core.InputSignal<"slice" | "map" | "filter" | "route" | "section" | "a-arrow-down" | "a-arrow-up" | "a-large-small" | "accessibility" | "activity-square" | "activity" | "air-vent" | "airplay" | "alarm-check" | "alarm-clock-check" | "alarm-clock-minus" | "alarm-clock-off" | "alarm-clock-plus" | "alarm-clock" | "alarm-minus" | "alarm-plus" | "alarm-smoke" | "album" | "alert-circle" | "alert-octagon" | "alert-triangle" | "align-center-horizontal" | "align-center-vertical" | "align-center" | "align-end-horizontal" | "align-end-vertical" | "align-horizontal-distribute-center" | "align-horizontal-distribute-end" | "align-horizontal-distribute-start" | "align-horizontal-justify-center" | "align-horizontal-justify-end" | "align-horizontal-justify-start" | "align-horizontal-space-around" | "align-horizontal-space-between" | "align-justify" | "align-left" | "align-right" | "align-start-horizontal" | "align-start-vertical" | "align-vertical-distribute-center" | "align-vertical-distribute-end" | "align-vertical-distribute-start" | "align-vertical-justify-center" | "align-vertical-justify-end" | "align-vertical-justify-start" | "align-vertical-space-around" | "align-vertical-space-between" | "ambulance" | "ampersand" | "ampersands" | "amphora" | "anchor" | "angry" | "annoyed" | "antenna" | "anvil" | "aperture" | "app-window-mac" | "app-window" | "apple" | "archive-restore" | "archive-x" | "archive" | "area-chart" | "armchair" | "arrow-big-down-dash" | "arrow-big-down" | "arrow-big-left-dash" | "arrow-big-left" | "arrow-big-right-dash" | "arrow-big-right" | "arrow-big-up-dash" | "arrow-big-up" | "arrow-down-0-1" | "arrow-down-01" | "arrow-down-1-0" | "arrow-down-10" | "arrow-down-a-z" | "arrow-down-az" | "arrow-down-circle" | "arrow-down-from-line" | "arrow-down-left-from-circle" | "arrow-down-left-from-square" | "arrow-down-left-square" | "arrow-down-left" | "arrow-down-narrow-wide" | "arrow-down-right-from-circle" | "arrow-down-right-from-square" | "arrow-down-right-square" | "arrow-down-right" | "arrow-down-square" | "arrow-down-to-dot" | "arrow-down-to-line" | "arrow-down-up" | "arrow-down-wide-narrow" | "arrow-down-z-a" | "arrow-down-za" | "arrow-down" | "arrow-left-circle" | "arrow-left-from-line" | "arrow-left-right" | "arrow-left-square" | "arrow-left-to-line" | "arrow-left" | "arrow-right-circle" | "arrow-right-from-line" | "arrow-right-left" | "arrow-right-square" | "arrow-right-to-line" | "arrow-right" | "arrow-up-0-1" | "arrow-up-01" | "arrow-up-1-0" | "arrow-up-10" | "arrow-up-a-z" | "arrow-up-az" | "arrow-up-circle" | "arrow-up-down" | "arrow-up-from-dot" | "arrow-up-from-line" | "arrow-up-left-from-circle" | "arrow-up-left-from-square" | "arrow-up-left-square" | "arrow-up-left" | "arrow-up-narrow-wide" | "arrow-up-right-from-circle" | "arrow-up-right-from-square" | "arrow-up-right-square" | "arrow-up-right" | "arrow-up-square" | "arrow-up-to-line" | "arrow-up-wide-narrow" | "arrow-up-z-a" | "arrow-up-za" | "arrow-up" | "arrows-up-from-line" | "asterisk-square" | "asterisk" | "at-sign" | "atom" | "audio-lines" | "audio-waveform" | "award" | "axe" | "axis-3-d" | "axis-3d" | "baby" | "backpack" | "badge-alert" | "badge-cent" | "badge-check" | "badge-dollar-sign" | "badge-euro" | "badge-help" | "badge-indian-rupee" | "badge-info" | "badge-japanese-yen" | "badge-minus" | "badge-percent" | "badge-plus" | "badge-pound-sterling" | "badge-question-mark" | "badge-russian-ruble" | "badge-swiss-franc" | "badge-turkish-lira" | "badge-x" | "badge" | "baggage-claim" | "balloon" | "ban" | "banana" | "bandage" | "banknote-arrow-down" | "banknote-arrow-up" | "banknote-x" | "banknote" | "bar-chart-2" | "bar-chart-3" | "bar-chart-4" | "bar-chart-big" | "bar-chart-horizontal-big" | "bar-chart-horizontal" | "bar-chart" | "barcode" | "barrel" | "baseline" | "bath" | "battery-charging" | "battery-full" | "battery-low" | "battery-medium" | "battery-plus" | "battery-warning" | "battery" | "beaker" | "bean-off" | "bean" | "bed-double" | "bed-single" | "bed" | "beef-off" | "beef" | "beer-off" | "beer" | "bell-dot" | "bell-electric" | "bell-minus" | "bell-off" | "bell-plus" | "bell-ring" | "bell" | "between-horizonal-end" | "between-horizonal-start" | "between-horizontal-end" | "between-horizontal-start" | "between-vertical-end" | "between-vertical-start" | "biceps-flexed" | "bike" | "binary" | "binoculars" | "biohazard" | "bird" | "birdhouse" | "bitcoin" | "blend" | "blinds" | "blocks" | "bluetooth-connected" | "bluetooth-off" | "bluetooth-searching" | "bluetooth" | "bold" | "bolt" | "bomb" | "bone" | "book-a" | "book-alert" | "book-audio" | "book-check" | "book-copy" | "book-dashed" | "book-down" | "book-headphones" | "book-heart" | "book-image" | "book-key" | "book-lock" | "book-marked" | "book-minus" | "book-open-check" | "book-open-text" | "book-open" | "book-plus" | "book-search" | "book-template" | "book-text" | "book-type" | "book-up-2" | "book-up" | "book-user" | "book-x" | "book" | "bookmark-check" | "bookmark-minus" | "bookmark-off" | "bookmark-plus" | "bookmark-x" | "bookmark" | "boom-box" | "bot-message-square" | "bot-off" | "bot" | "bottle-wine" | "bow-arrow" | "box-select" | "box" | "boxes" | "braces" | "brackets" | "brain-circuit" | "brain-cog" | "brain" | "brick-wall-fire" | "brick-wall-shield" | "brick-wall" | "briefcase-business" | "briefcase-conveyor-belt" | "briefcase-medical" | "briefcase" | "bring-to-front" | "brush-cleaning" | "brush" | "bubbles" | "bug-off" | "bug-play" | "bug" | "building-2" | "building" | "bus-front" | "bus" | "cable-car" | "cable" | "cake-slice" | "cake" | "calculator" | "calendar-1" | "calendar-arrow-down" | "calendar-arrow-up" | "calendar-check-2" | "calendar-check" | "calendar-clock" | "calendar-cog" | "calendar-days" | "calendar-fold" | "calendar-heart" | "calendar-minus-2" | "calendar-minus" | "calendar-off" | "calendar-plus-2" | "calendar-plus" | "calendar-range" | "calendar-search" | "calendar-sync" | "calendar-x-2" | "calendar-x" | "calendar" | "calendars" | "camera-off" | "camera" | "candlestick-chart" | "candy-cane" | "candy-off" | "candy" | "cannabis-off" | "cannabis" | "captions-off" | "captions" | "car-front" | "car-taxi-front" | "car" | "caravan" | "card-sim" | "carrot" | "case-lower" | "case-sensitive" | "case-upper" | "cassette-tape" | "cast" | "castle" | "cat" | "cctv-off" | "cctv" | "chart-area" | "chart-bar-big" | "chart-bar-decreasing" | "chart-bar-increasing" | "chart-bar-stacked" | "chart-bar" | "chart-candlestick" | "chart-column-big" | "chart-column-decreasing" | "chart-column-increasing" | "chart-column-stacked" | "chart-column" | "chart-gantt" | "chart-line" | "chart-network" | "chart-no-axes-column-decreasing" | "chart-no-axes-column-increasing" | "chart-no-axes-column" | "chart-no-axes-combined" | "chart-no-axes-gantt" | "chart-pie" | "chart-scatter" | "chart-spline" | "check-check" | "check-circle-2" | "check-circle" | "check-line" | "check-square-2" | "check-square" | "check" | "chef-hat" | "cherry" | "chess-bishop" | "chess-king" | "chess-knight" | "chess-pawn" | "chess-queen" | "chess-rook" | "chevron-down-circle" | "chevron-down-square" | "chevron-down" | "chevron-first" | "chevron-last" | "chevron-left-circle" | "chevron-left-square" | "chevron-left" | "chevron-right-circle" | "chevron-right-square" | "chevron-right" | "chevron-up-circle" | "chevron-up-square" | "chevron-up" | "chevrons-down-up" | "chevrons-down" | "chevrons-left-right-ellipsis" | "chevrons-left-right" | "chevrons-left" | "chevrons-right-left" | "chevrons-right" | "chevrons-up-down" | "chevrons-up" | "church" | "cigarette-off" | "cigarette" | "circle-alert" | "circle-arrow-down" | "circle-arrow-left" | "circle-arrow-out-down-left" | "circle-arrow-out-down-right" | "circle-arrow-out-up-left" | "circle-arrow-out-up-right" | "circle-arrow-right" | "circle-arrow-up" | "circle-check-big" | "circle-check" | "circle-chevron-down" | "circle-chevron-left" | "circle-chevron-right" | "circle-chevron-up" | "circle-dashed" | "circle-divide" | "circle-dollar-sign" | "circle-dot-dashed" | "circle-dot" | "circle-ellipsis" | "circle-equal" | "circle-fading-arrow-up" | "circle-fading-plus" | "circle-gauge" | "circle-help" | "circle-minus" | "circle-off" | "circle-parking-off" | "circle-parking" | "circle-pause" | "circle-percent" | "circle-pile" | "circle-play" | "circle-plus" | "circle-pound-sterling" | "circle-power" | "circle-question-mark" | "circle-slash-2" | "circle-slash" | "circle-slashed" | "circle-small" | "circle-star" | "circle-stop" | "circle-user-round" | "circle-user" | "circle-x" | "circle" | "circuit-board" | "citrus" | "clapperboard" | "clipboard-check" | "clipboard-clock" | "clipboard-copy" | "clipboard-edit" | "clipboard-list" | "clipboard-minus" | "clipboard-paste" | "clipboard-pen-line" | "clipboard-pen" | "clipboard-plus" | "clipboard-signature" | "clipboard-type" | "clipboard-x" | "clipboard" | "clock-1" | "clock-10" | "clock-11" | "clock-12" | "clock-2" | "clock-3" | "clock-4" | "clock-5" | "clock-6" | "clock-7" | "clock-8" | "clock-9" | "clock-alert" | "clock-arrow-down" | "clock-arrow-up" | "clock-check" | "clock-fading" | "clock-plus" | "clock" | "closed-caption" | "cloud-alert" | "cloud-backup" | "cloud-check" | "cloud-cog" | "cloud-download" | "cloud-drizzle" | "cloud-fog" | "cloud-hail" | "cloud-lightning" | "cloud-moon-rain" | "cloud-moon" | "cloud-off" | "cloud-rain-wind" | "cloud-rain" | "cloud-snow" | "cloud-sun-rain" | "cloud-sun" | "cloud-sync" | "cloud-upload" | "cloud" | "cloudy" | "clover" | "club" | "code-2" | "code-square" | "code-xml" | "code" | "coffee" | "cog" | "coins" | "columns-2" | "columns-3-cog" | "columns-3" | "columns-4" | "columns-settings" | "columns" | "combine" | "command" | "compass" | "component" | "computer" | "concierge-bell" | "cone" | "construction" | "contact-2" | "contact-round" | "contact" | "container" | "contrast" | "cookie" | "cooking-pot" | "copy-check" | "copy-minus" | "copy-plus" | "copy-slash" | "copy-x" | "copy" | "copyleft" | "copyright" | "corner-down-left" | "corner-down-right" | "corner-left-down" | "corner-left-up" | "corner-right-down" | "corner-right-up" | "corner-up-left" | "corner-up-right" | "cpu" | "creative-commons" | "credit-card" | "croissant" | "crop" | "cross" | "crosshair" | "crown" | "cuboid" | "cup-soda" | "curly-braces" | "currency" | "cylinder" | "dam" | "database-backup" | "database-search" | "database-zap" | "database" | "decimals-arrow-left" | "decimals-arrow-right" | "delete" | "dessert" | "diameter" | "diamond-minus" | "diamond-percent" | "diamond-plus" | "diamond" | "dice-1" | "dice-2" | "dice-3" | "dice-4" | "dice-5" | "dice-6" | "dices" | "diff" | "disc-2" | "disc-3" | "disc-album" | "disc" | "divide-circle" | "divide-square" | "divide" | "dna-off" | "dna" | "dock" | "dog" | "dollar-sign" | "donut" | "door-closed-locked" | "door-closed" | "door-open" | "dot-square" | "dot" | "download-cloud" | "download" | "drafting-compass" | "drama" | "drill" | "drone" | "droplet-off" | "droplet" | "droplets" | "drum" | "drumstick" | "dumbbell" | "ear-off" | "ear" | "earth-lock" | "earth" | "eclipse" | "edit-2" | "edit-3" | "edit" | "egg-fried" | "egg-off" | "egg" | "ellipse" | "ellipsis-vertical" | "ellipsis" | "equal-approximately" | "equal-not" | "equal-square" | "equal" | "eraser" | "ethernet-port" | "euro" | "ev-charger" | "expand" | "external-link" | "eye-closed" | "eye-off" | "eye" | "factory" | "fan" | "fast-forward" | "feather" | "fence" | "ferris-wheel" | "file-archive" | "file-audio-2" | "file-audio" | "file-axis-3-d" | "file-axis-3d" | "file-badge-2" | "file-badge" | "file-bar-chart-2" | "file-bar-chart" | "file-box" | "file-braces-corner" | "file-braces" | "file-chart-column-increasing" | "file-chart-column" | "file-chart-line" | "file-chart-pie" | "file-check-2" | "file-check-corner" | "file-check" | "file-clock" | "file-code-2" | "file-code-corner" | "file-code" | "file-cog-2" | "file-cog" | "file-diff" | "file-digit" | "file-down" | "file-edit" | "file-exclamation-point" | "file-headphone" | "file-heart" | "file-image" | "file-input" | "file-json-2" | "file-json" | "file-key-2" | "file-key" | "file-line-chart" | "file-lock-2" | "file-lock" | "file-minus-2" | "file-minus-corner" | "file-minus" | "file-music" | "file-output" | "file-pen-line" | "file-pen" | "file-pie-chart" | "file-play" | "file-plus-2" | "file-plus-corner" | "file-plus" | "file-question-mark" | "file-question" | "file-scan" | "file-search-2" | "file-search-corner" | "file-search" | "file-signal" | "file-signature" | "file-sliders" | "file-spreadsheet" | "file-stack" | "file-symlink" | "file-terminal" | "file-text" | "file-type-2" | "file-type-corner" | "file-type" | "file-up" | "file-user" | "file-video-2" | "file-video-camera" | "file-video" | "file-volume-2" | "file-volume" | "file-warning" | "file-x-2" | "file-x-corner" | "file-x" | "file" | "files" | "film" | "filter-x" | "fingerprint-pattern" | "fingerprint" | "fire-extinguisher" | "fish-off" | "fish-symbol" | "fish" | "fishing-hook" | "fishing-rod" | "flag-off" | "flag-triangle-left" | "flag-triangle-right" | "flag" | "flame-kindling" | "flame" | "flashlight-off" | "flashlight" | "flask-conical-off" | "flask-conical" | "flask-round" | "flip-horizontal-2" | "flip-horizontal" | "flip-vertical-2" | "flip-vertical" | "flower-2" | "flower" | "focus" | "fold-horizontal" | "fold-vertical" | "folder-archive" | "folder-check" | "folder-clock" | "folder-closed" | "folder-code" | "folder-cog-2" | "folder-cog" | "folder-dot" | "folder-down" | "folder-edit" | "folder-git-2" | "folder-git" | "folder-heart" | "folder-input" | "folder-kanban" | "folder-key" | "folder-lock" | "folder-minus" | "folder-open-dot" | "folder-open" | "folder-output" | "folder-pen" | "folder-plus" | "folder-root" | "folder-search-2" | "folder-search" | "folder-symlink" | "folder-sync" | "folder-tree" | "folder-up" | "folder-x" | "folder" | "folders" | "footprints" | "fork-knife-crossed" | "fork-knife" | "forklift" | "form-input" | "form" | "forward" | "frame" | "frown" | "fuel" | "fullscreen" | "function-square" | "funnel-plus" | "funnel-x" | "funnel" | "gallery-horizontal-end" | "gallery-horizontal" | "gallery-thumbnails" | "gallery-vertical-end" | "gallery-vertical" | "gamepad-2" | "gamepad-directional" | "gamepad" | "gantt-chart-square" | "gantt-chart" | "gauge-circle" | "gauge" | "gavel" | "gem" | "georgian-lari" | "ghost" | "gift" | "git-branch-minus" | "git-branch-plus" | "git-branch" | "git-commit-horizontal" | "git-commit-vertical" | "git-commit" | "git-compare-arrows" | "git-compare" | "git-fork" | "git-graph" | "git-merge-conflict" | "git-merge" | "git-pull-request-arrow" | "git-pull-request-closed" | "git-pull-request-create-arrow" | "git-pull-request-create" | "git-pull-request-draft" | "git-pull-request" | "glass-water" | "glasses" | "globe-2" | "globe-lock" | "globe-off" | "globe-x" | "globe" | "goal" | "gpu" | "grab" | "graduation-cap" | "grape" | "grid-2-x-2-check" | "grid-2-x-2-plus" | "grid-2-x-2-x" | "grid-2-x-2" | "grid-2x2-check" | "grid-2x2-plus" | "grid-2x2-x" | "grid-2x2" | "grid-3-x-3" | "grid-3x2" | "grid-3x3" | "grid" | "grip-horizontal" | "grip-vertical" | "grip" | "group" | "guitar" | "ham" | "hamburger" | "hammer" | "hand-coins" | "hand-fist" | "hand-grab" | "hand-heart" | "hand-helping" | "hand-metal" | "hand-platter" | "hand" | "handbag" | "handshake" | "hard-drive-download" | "hard-drive-upload" | "hard-drive" | "hard-hat" | "hash" | "hat-glasses" | "haze" | "hd" | "hdmi-port" | "heading-1" | "heading-2" | "heading-3" | "heading-4" | "heading-5" | "heading-6" | "heading" | "headphone-off" | "headphones" | "headset" | "heart-crack" | "heart-handshake" | "heart-minus" | "heart-off" | "heart-plus" | "heart-pulse" | "heart" | "heater" | "helicopter" | "help-circle" | "helping-hand" | "hexagon" | "highlighter" | "history" | "home" | "hop-off" | "hop" | "hospital" | "hotel" | "hourglass" | "house-heart" | "house-plug" | "house-plus" | "house-wifi" | "house" | "ice-cream-2" | "ice-cream-bowl" | "ice-cream-cone" | "ice-cream" | "id-card-lanyard" | "id-card" | "image-down" | "image-minus" | "image-off" | "image-play" | "image-plus" | "image-up" | "image-upscale" | "image" | "images" | "import" | "inbox" | "indent-decrease" | "indent-increase" | "indent" | "indian-rupee" | "infinity" | "info" | "inspect" | "inspection-panel" | "italic" | "iteration-ccw" | "iteration-cw" | "japanese-yen" | "joystick" | "kanban-square-dashed" | "kanban-square" | "kanban" | "kayak" | "key-round" | "key-square" | "key" | "keyboard-music" | "keyboard-off" | "keyboard" | "lamp-ceiling" | "lamp-desk" | "lamp-floor" | "lamp-wall-down" | "lamp-wall-up" | "lamp" | "land-plot" | "landmark" | "languages" | "laptop-2" | "laptop-minimal-check" | "laptop-minimal" | "laptop" | "lasso-select" | "lasso" | "laugh" | "layers-2" | "layers-3" | "layers-plus" | "layers" | "layout-dashboard" | "layout-grid" | "layout-list" | "layout-panel-left" | "layout-panel-top" | "layout-template" | "layout" | "leaf" | "leafy-green" | "lectern" | "lens-concave" | "lens-convex" | "letter-text" | "library-big" | "library-square" | "library" | "life-buoy" | "ligature" | "lightbulb-off" | "lightbulb" | "line-chart" | "line-dot-right-horizontal" | "line-squiggle" | "line-style" | "link-2-off" | "link-2" | "link" | "list-check" | "list-checks" | "list-chevrons-down-up" | "list-chevrons-up-down" | "list-collapse" | "list-end" | "list-filter-plus" | "list-filter" | "list-indent-decrease" | "list-indent-increase" | "list-minus" | "list-music" | "list-ordered" | "list-plus" | "list-restart" | "list-start" | "list-todo" | "list-tree" | "list-video" | "list-x" | "list" | "loader-2" | "loader-circle" | "loader-pinwheel" | "loader" | "locate-fixed" | "locate-off" | "locate" | "location-edit" | "lock-keyhole-open" | "lock-keyhole" | "lock-open" | "lock" | "log-in" | "log-out" | "logs" | "lollipop" | "luggage" | "m-square" | "magnet" | "mail-check" | "mail-minus" | "mail-open" | "mail-plus" | "mail-question-mark" | "mail-question" | "mail-search" | "mail-warning" | "mail-x" | "mail" | "mailbox" | "mails" | "map-minus" | "map-pin-check-inside" | "map-pin-check" | "map-pin-house" | "map-pin-minus-inside" | "map-pin-minus" | "map-pin-off" | "map-pin-pen" | "map-pin-plus-inside" | "map-pin-plus" | "map-pin-search" | "map-pin-x-inside" | "map-pin-x" | "map-pin" | "map-pinned" | "map-plus" | "mars-stroke" | "mars" | "martini" | "maximize-2" | "maximize" | "medal" | "megaphone-off" | "megaphone" | "meh" | "memory-stick" | "menu-square" | "menu" | "merge" | "message-circle-check" | "message-circle-code" | "message-circle-dashed" | "message-circle-heart" | "message-circle-more" | "message-circle-off" | "message-circle-plus" | "message-circle-question-mark" | "message-circle-question" | "message-circle-reply" | "message-circle-warning" | "message-circle-x" | "message-circle" | "message-square-check" | "message-square-code" | "message-square-dashed" | "message-square-diff" | "message-square-dot" | "message-square-heart" | "message-square-lock" | "message-square-more" | "message-square-off" | "message-square-plus" | "message-square-quote" | "message-square-reply" | "message-square-share" | "message-square-text" | "message-square-warning" | "message-square-x" | "message-square" | "messages-square" | "metronome" | "mic-2" | "mic-off" | "mic-vocal" | "mic" | "microchip" | "microscope" | "microwave" | "milestone" | "milk-off" | "milk" | "minimize-2" | "minimize" | "minus-circle" | "minus-square" | "minus" | "mirror-rectangular" | "mirror-round" | "monitor-check" | "monitor-cloud" | "monitor-cog" | "monitor-dot" | "monitor-down" | "monitor-off" | "monitor-pause" | "monitor-play" | "monitor-smartphone" | "monitor-speaker" | "monitor-stop" | "monitor-up" | "monitor-x" | "monitor" | "moon-star" | "moon" | "more-horizontal" | "more-vertical" | "motorbike" | "mountain-snow" | "mountain" | "mouse-left" | "mouse-off" | "mouse-pointer-2-off" | "mouse-pointer-2" | "mouse-pointer-ban" | "mouse-pointer-click" | "mouse-pointer-square-dashed" | "mouse-pointer" | "mouse-right" | "mouse" | "move-3-d" | "move-3d" | "move-diagonal-2" | "move-diagonal" | "move-down-left" | "move-down-right" | "move-down" | "move-horizontal" | "move-left" | "move-right" | "move-up-left" | "move-up-right" | "move-up" | "move-vertical" | "move" | "music-2" | "music-3" | "music-4" | "music" | "navigation-2-off" | "navigation-2" | "navigation-off" | "navigation" | "network" | "newspaper" | "nfc" | "non-binary" | "notebook-pen" | "notebook-tabs" | "notebook-text" | "notebook" | "notepad-text-dashed" | "notepad-text" | "nut-off" | "nut" | "octagon-alert" | "octagon-minus" | "octagon-pause" | "octagon-x" | "octagon" | "omega" | "option" | "orbit" | "origami" | "outdent" | "package-2" | "package-check" | "package-minus" | "package-open" | "package-plus" | "package-search" | "package-x" | "package" | "paint-bucket" | "paint-roller" | "paintbrush-2" | "paintbrush-vertical" | "paintbrush" | "palette" | "palmtree" | "panda" | "panel-bottom-close" | "panel-bottom-dashed" | "panel-bottom-inactive" | "panel-bottom-open" | "panel-bottom" | "panel-left-close" | "panel-left-dashed" | "panel-left-inactive" | "panel-left-open" | "panel-left-right-dashed" | "panel-left" | "panel-right-close" | "panel-right-dashed" | "panel-right-inactive" | "panel-right-open" | "panel-right" | "panel-top-bottom-dashed" | "panel-top-close" | "panel-top-dashed" | "panel-top-inactive" | "panel-top-open" | "panel-top" | "panels-left-bottom" | "panels-left-right" | "panels-right-bottom" | "panels-top-bottom" | "panels-top-left" | "paperclip" | "parentheses" | "parking-circle-off" | "parking-circle" | "parking-meter" | "parking-square-off" | "parking-square" | "party-popper" | "pause-circle" | "pause-octagon" | "pause" | "paw-print" | "pc-case" | "pen-box" | "pen-line" | "pen-off" | "pen-square" | "pen-tool" | "pen" | "pencil-line" | "pencil-off" | "pencil-ruler" | "pencil" | "pentagon" | "percent-circle" | "percent-diamond" | "percent-square" | "percent" | "person-standing" | "philippine-peso" | "phone-call" | "phone-forwarded" | "phone-incoming" | "phone-missed" | "phone-off" | "phone-outgoing" | "phone" | "pi-square" | "pi" | "piano" | "pickaxe" | "picture-in-picture-2" | "picture-in-picture" | "pie-chart" | "piggy-bank" | "pilcrow-left" | "pilcrow-right" | "pilcrow-square" | "pilcrow" | "pill-bottle" | "pill" | "pin-off" | "pin" | "pipette" | "pizza" | "plane-landing" | "plane-takeoff" | "plane" | "play-circle" | "play-square" | "play" | "plug-2" | "plug-zap-2" | "plug-zap" | "plug" | "plus-circle" | "plus-square" | "plus" | "pocket-knife" | "podcast" | "pointer-off" | "pointer" | "popcorn" | "popsicle" | "pound-sterling" | "power-circle" | "power-off" | "power-square" | "power" | "presentation" | "printer-check" | "printer-x" | "printer" | "projector" | "proportions" | "puzzle" | "pyramid" | "qr-code" | "quote" | "rabbit" | "radar" | "radiation" | "radical" | "radio-off" | "radio-receiver" | "radio-tower" | "radio" | "radius" | "rainbow" | "rat" | "ratio" | "receipt-cent" | "receipt-euro" | "receipt-indian-rupee" | "receipt-japanese-yen" | "receipt-pound-sterling" | "receipt-russian-ruble" | "receipt-swiss-franc" | "receipt-text" | "receipt-turkish-lira" | "receipt" | "rectangle-circle" | "rectangle-ellipsis" | "rectangle-goggles" | "rectangle-horizontal" | "rectangle-vertical" | "recycle" | "redo-2" | "redo-dot" | "redo" | "refresh-ccw-dot" | "refresh-ccw" | "refresh-cw-off" | "refresh-cw" | "refrigerator" | "regex" | "remove-formatting" | "repeat-1" | "repeat-2" | "repeat" | "replace-all" | "replace" | "reply-all" | "reply" | "rewind" | "ribbon" | "road" | "rocket" | "rocking-chair" | "roller-coaster" | "rose" | "rotate-3-d" | "rotate-3d" | "rotate-ccw-key" | "rotate-ccw-square" | "rotate-ccw" | "rotate-cw-square" | "rotate-cw" | "route-off" | "router" | "rows-2" | "rows-3" | "rows-4" | "rows" | "rss" | "ruler-dimension-line" | "ruler" | "russian-ruble" | "sailboat" | "salad" | "sandwich" | "satellite-dish" | "satellite" | "saudi-riyal" | "save-all" | "save-off" | "save" | "scale-3-d" | "scale-3d" | "scale" | "scaling" | "scan-barcode" | "scan-eye" | "scan-face" | "scan-heart" | "scan-line" | "scan-qr-code" | "scan-search" | "scan-text" | "scan" | "scatter-chart" | "school-2" | "school" | "scissors-line-dashed" | "scissors-square-dashed-bottom" | "scissors-square" | "scissors" | "scooter" | "screen-share-off" | "screen-share" | "scroll-text" | "scroll" | "search-alert" | "search-check" | "search-code" | "search-slash" | "search-x" | "search" | "send-horizonal" | "send-horizontal" | "send-to-back" | "send" | "separator-horizontal" | "separator-vertical" | "server-cog" | "server-crash" | "server-off" | "server" | "settings-2" | "settings" | "shapes" | "share-2" | "share" | "sheet" | "shell" | "shelving-unit" | "shield-alert" | "shield-ban" | "shield-check" | "shield-close" | "shield-cog-corner" | "shield-cog" | "shield-ellipsis" | "shield-half" | "shield-minus" | "shield-off" | "shield-plus" | "shield-question-mark" | "shield-question" | "shield-user" | "shield-x" | "shield" | "ship-wheel" | "ship" | "shirt" | "shopping-bag" | "shopping-basket" | "shopping-cart" | "shovel" | "shower-head" | "shredder" | "shrimp" | "shrink" | "shrub" | "shuffle" | "sidebar-close" | "sidebar-open" | "sidebar" | "sigma-square" | "sigma" | "signal-high" | "signal-low" | "signal-medium" | "signal-zero" | "signal" | "signature" | "signpost-big" | "signpost" | "siren" | "skip-back" | "skip-forward" | "skull" | "slash-square" | "slash" | "sliders-horizontal" | "sliders-vertical" | "sliders" | "smartphone-charging" | "smartphone-nfc" | "smartphone" | "smile-plus" | "smile" | "snail" | "snowflake" | "soap-dispenser-droplet" | "sofa" | "solar-panel" | "sort-asc" | "sort-desc" | "soup" | "space" | "spade" | "sparkle" | "sparkles" | "speaker" | "speech" | "spell-check-2" | "spell-check" | "spline-pointer" | "spline" | "split-square-horizontal" | "split-square-vertical" | "split" | "spool" | "sport-shoe" | "spotlight" | "spray-can" | "sprout" | "square-activity" | "square-arrow-down-left" | "square-arrow-down-right" | "square-arrow-down" | "square-arrow-left" | "square-arrow-out-down-left" | "square-arrow-out-down-right" | "square-arrow-out-up-left" | "square-arrow-out-up-right" | "square-arrow-right-enter" | "square-arrow-right-exit" | "square-arrow-right" | "square-arrow-up-left" | "square-arrow-up-right" | "square-arrow-up" | "square-asterisk" | "square-bottom-dashed-scissors" | "square-centerline-dashed-horizontal" | "square-centerline-dashed-vertical" | "square-chart-gantt" | "square-check-big" | "square-check" | "square-chevron-down" | "square-chevron-left" | "square-chevron-right" | "square-chevron-up" | "square-code" | "square-dashed-bottom-code" | "square-dashed-bottom" | "square-dashed-kanban" | "square-dashed-mouse-pointer" | "square-dashed-text" | "square-dashed-top-solid" | "square-dashed" | "square-divide" | "square-dot" | "square-equal" | "square-function" | "square-gantt-chart" | "square-kanban" | "square-library" | "square-m" | "square-menu" | "square-minus" | "square-mouse-pointer" | "square-parking-off" | "square-parking" | "square-pause" | "square-pen" | "square-percent" | "square-pi" | "square-pilcrow" | "square-play" | "square-plus" | "square-power" | "square-radical" | "square-round-corner" | "square-scissors" | "square-sigma" | "square-slash" | "square-split-horizontal" | "square-split-vertical" | "square-square" | "square-stack" | "square-star" | "square-stop" | "square-terminal" | "square-user-round" | "square-user" | "square-x" | "square" | "squares-exclude" | "squares-intersect" | "squares-subtract" | "squares-unite" | "squircle-dashed" | "squircle" | "squirrel" | "stamp" | "star-half" | "star-off" | "star" | "stars" | "step-back" | "step-forward" | "stethoscope" | "sticker" | "sticky-note" | "stone" | "stop-circle" | "store" | "stretch-horizontal" | "stretch-vertical" | "strikethrough" | "subscript" | "subtitles" | "sun-dim" | "sun-medium" | "sun-moon" | "sun-snow" | "sun" | "sunrise" | "sunset" | "superscript" | "swatch-book" | "swiss-franc" | "switch-camera" | "sword" | "swords" | "syringe" | "table-2" | "table-cells-merge" | "table-cells-split" | "table-columns-split" | "table-config" | "table-of-contents" | "table-properties" | "table-rows-split" | "table" | "tablet-smartphone" | "tablet" | "tablets" | "tag" | "tags" | "tally-1" | "tally-2" | "tally-3" | "tally-4" | "tally-5" | "tangent" | "target" | "telescope" | "tent-tree" | "tent" | "terminal-square" | "terminal" | "test-tube-2" | "test-tube-diagonal" | "test-tube" | "test-tubes" | "text-align-center" | "text-align-end" | "text-align-justify" | "text-align-start" | "text-cursor-input" | "text-cursor" | "text-initial" | "text-quote" | "text-search" | "text-select" | "text-selection" | "text-wrap" | "text" | "theater" | "thermometer-snowflake" | "thermometer-sun" | "thermometer" | "thumbs-down" | "thumbs-up" | "ticket-check" | "ticket-minus" | "ticket-percent" | "ticket-plus" | "ticket-slash" | "ticket-x" | "ticket" | "tickets-plane" | "tickets" | "timer-off" | "timer-reset" | "timer" | "toggle-left" | "toggle-right" | "toilet" | "tool-case" | "toolbox" | "tornado" | "torus" | "touchpad-off" | "touchpad" | "towel-rack" | "tower-control" | "toy-brick" | "tractor" | "traffic-cone" | "train-front-tunnel" | "train-front" | "train-track" | "train" | "tram-front" | "transgender" | "trash-2" | "trash" | "tree-deciduous" | "tree-palm" | "tree-pine" | "trees" | "trending-down" | "trending-up-down" | "trending-up" | "triangle-alert" | "triangle-dashed" | "triangle-right" | "triangle" | "trophy" | "truck-electric" | "truck" | "turkish-lira" | "turntable" | "turtle" | "tv-2" | "tv-minimal-play" | "tv-minimal" | "tv" | "type-outline" | "type" | "umbrella-off" | "umbrella" | "underline" | "undo-2" | "undo-dot" | "undo" | "unfold-horizontal" | "unfold-vertical" | "ungroup" | "university" | "unlink-2" | "unlink" | "unlock-keyhole" | "unlock" | "unplug" | "upload-cloud" | "upload" | "usb" | "user-2" | "user-check-2" | "user-check" | "user-circle-2" | "user-circle" | "user-cog-2" | "user-cog" | "user-key" | "user-lock" | "user-minus-2" | "user-minus" | "user-pen" | "user-plus-2" | "user-plus" | "user-round-check" | "user-round-cog" | "user-round-key" | "user-round-minus" | "user-round-pen" | "user-round-plus" | "user-round-search" | "user-round-x" | "user-round" | "user-search" | "user-square-2" | "user-square" | "user-star" | "user-x-2" | "user-x" | "user" | "users-2" | "users-round" | "users" | "utensils-crossed" | "utensils" | "utility-pole" | "van" | "variable" | "vault" | "vector-square" | "vegan" | "venetian-mask" | "venus-and-mars" | "venus" | "verified" | "vibrate-off" | "vibrate" | "video-off" | "video" | "videotape" | "view" | "voicemail" | "volleyball" | "volume-1" | "volume-2" | "volume-off" | "volume-x" | "volume" | "vote" | "wallet-2" | "wallet-cards" | "wallet-minimal" | "wallet" | "wallpaper" | "wand-2" | "wand-sparkles" | "wand" | "warehouse" | "washing-machine" | "watch" | "waves-arrow-down" | "waves-arrow-up" | "waves-ladder" | "waves" | "waypoints" | "webcam" | "webhook-off" | "webhook" | "weight-tilde" | "weight" | "wheat-off" | "wheat" | "whole-word" | "wifi-cog" | "wifi-high" | "wifi-low" | "wifi-off" | "wifi-pen" | "wifi-sync" | "wifi-zero" | "wifi" | "wind-arrow-down" | "wind" | "wine-off" | "wine" | "workflow" | "worm" | "wrap-text" | "wrench" | "x-circle" | "x-line-top" | "x-octagon" | "x-square" | "x" | "zap-off" | "zap" | "zodiac-aquarius" | "zodiac-aries" | "zodiac-cancer" | "zodiac-capricorn" | "zodiac-gemini" | "zodiac-leo" | "zodiac-libra" | "zodiac-ophiuchus" | "zodiac-pisces" | "zodiac-sagittarius" | "zodiac-scorpio" | "zodiac-taurus" | "zodiac-virgo" | "zoom-in" | "zoom-out">;
15
+ protected showBreadcumbs: _angular_core.Signal<boolean>;
16
+ protected ariaLabel: _angular_core.Signal<string>;
17
+ protected current: _angular_core.Signal<_filip_mazev_blocks_navigation.IResolvedNavigation>;
18
+ protected navigateTo(url: string): void;
19
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Breadcrumbs, never>;
20
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Breadcrumbs, "bx-breadcrumbs", never, { "minimumBreadcrumbs": { "alias": "minimumBreadcrumbs"; "required": false; "isSignal": true; }; "isAnimated": { "alias": "isAnimated"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
21
+ }
6
22
 
7
23
  interface IBreadcrumbItem {
8
24
  label: string;
@@ -62,8 +78,8 @@ declare class NavigationService {
62
78
  private resolveNavText;
63
79
  private matchRouteToUrl;
64
80
  private flattenRoutes;
65
- static ɵfac: i0.ɵɵFactoryDeclaration<NavigationService, never>;
66
- static ɵprov: i0.ɵɵInjectableDeclaration<NavigationService>;
81
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationService, never>;
82
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NavigationService>;
67
83
  }
68
84
 
69
85
  interface INavRouteData {
@@ -87,22 +103,15 @@ interface INavigationConfig {
87
103
  sortItems?: (a: INavigationItem, b: INavigationItem) => number;
88
104
  }
89
105
 
90
- interface INavigationI18nAdapter {
91
- translate(key: string, params?: Record<string, unknown>): string;
92
- version?: Signal<number>;
93
- }
94
-
95
106
  declare const NAVIGATION_CONFIG: InjectionToken<INavigationConfig>;
96
107
 
97
- declare const NAVIGATION_I18N: InjectionToken<INavigationI18nAdapter>;
98
-
99
108
  declare const NAVIGATION_ACCESS_ADAPTER: InjectionToken<INavigationAccessAdapter>;
100
109
 
101
110
  declare function provideNavigation(config: INavigationConfig): {
102
- provide: i0.InjectionToken<INavigationConfig>;
111
+ provide: _angular_core.InjectionToken<INavigationConfig>;
103
112
  useValue: INavigationConfig;
104
113
  }[];
105
- declare function withNav(route: Route, nav: INavMeta$1): Route;
114
+ declare function withNav<T>(route: Route, nav: Strict<T, INavMeta$1>): Route;
106
115
 
107
- export { NAVIGATION_ACCESS_ADAPTER, NAVIGATION_CONFIG, NAVIGATION_I18N, NavigationService, provideNavigation, withNav };
108
- export type { IBreadcrumbItem, INavContext, INavMeta, INavRouteData, INavigationAccessAdapter, INavigationConfig, INavigationI18nAdapter, INavigationItem, INavigationSectionConfig, IResolvedNavigation };
116
+ export { Breadcrumbs, NAVIGATION_ACCESS_ADAPTER, NAVIGATION_CONFIG, NavigationService, provideNavigation, withNav };
117
+ export type { IBreadcrumbItem, INavContext, INavMeta, INavRouteData, INavigationAccessAdapter, INavigationConfig, INavigationItem, INavigationSectionConfig, IResolvedNavigation };
@@ -1,3 +1,3 @@
1
- declare const BLOCKS_VERSION = "1.2.22";
1
+ declare const BLOCKS_VERSION = "1.2.23";
2
2
 
3
3
  export { BLOCKS_VERSION };