@filip.mazev/blocks 1.2.28 → 1.2.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-blocks-toastr.mjs","sources":["../../../projects/blocks/toastr/classes/toast-ref.ts","../../../projects/blocks/toastr/tokens/toast-data.token.ts","../../../projects/blocks/toastr/services/toastr-global-settings.service.ts","../../../projects/blocks/toastr/components/toast-core.ts","../../../projects/blocks/toastr/components/toast-core.html","../../../projects/blocks/toastr/classes/toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.html","../../../projects/blocks/toastr/services/toastr.service.ts","../../../projects/blocks/toastr/public-api.ts","../../../projects/blocks/toastr/filip.mazev-blocks-toastr.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\n\nexport class ToastRef<D = undefined, R = unknown> {\n private readonly afterClosedSubject = new Subject<R | undefined>();\n\n private readonly pauseSubject = new Subject<void>();\n private readonly resumeSubject = new Subject<void>();\n\n public readonly afterClosed$ = this.afterClosedSubject.asObservable();\n public readonly onPause$ = this.pauseSubject.asObservable();\n public readonly onResume$ = this.resumeSubject.asObservable();\n public config!: IToastConfig<D>;\n\n public close(result?: R): void {\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n public pause(): void {\n this.pauseSubject.next();\n }\n\n public resume(): void {\n this.resumeSubject.next();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TOAST_DATA = new InjectionToken<any>('TOAST_DATA');\n","import { Injectable, signal } from '@angular/core';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ThemedColor } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrGlobalSettingsService {\n public readonly position = signal<ToastPosition>('top-right');\n public readonly animate = signal<boolean>(true);\n public readonly wrapperClass = signal<string | undefined>(undefined);\n public readonly durationInMs = signal<number>(5000);\n public readonly swipeToDismiss = signal<boolean>(true);\n public readonly maxOpened = signal<number>(4);\n\n public readonly showCloseButton = signal<boolean>(true);\n public readonly closeButtonColor = signal<ThemedColor | undefined>('text-primary');\n \n public readonly showProgressBar = signal<boolean>(true);\n public readonly progressBarColor = signal<ThemedColor | undefined>('text-primary');\n\n public update(\n settings: Partial<{\n position: ToastPosition;\n animate: boolean;\n wrapperClass: string;\n durationInMs: number;\n swipeToDismiss: boolean;\n maxOpened: number;\n showCloseButton: boolean;\n closeButtonColor: ThemedColor;\n showProgressBar: boolean;\n progressBarColor: ThemedColor;\n }>\n ): void {\n if (settings.position !== undefined) this.position.set(settings.position);\n if (settings.animate !== undefined) this.animate.set(settings.animate);\n if (settings.wrapperClass !== undefined) this.wrapperClass.set(settings.wrapperClass);\n if (settings.durationInMs !== undefined) this.durationInMs.set(settings.durationInMs);\n if (settings.swipeToDismiss !== undefined) this.swipeToDismiss.set(settings.swipeToDismiss);\n if (settings.maxOpened !== undefined) this.maxOpened.set(settings.maxOpened);\n \n if (settings.showCloseButton !== undefined) this.showCloseButton.set(settings.showCloseButton);\n if (settings.closeButtonColor !== undefined) this.closeButtonColor.set(settings.closeButtonColor);\n \n if (settings.showProgressBar !== undefined) this.showProgressBar.set(settings.showProgressBar);\n if (settings.progressBarColor !== undefined) this.progressBarColor.set(settings.progressBarColor);\n }\n}\n","import {\n Component,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n ElementRef,\n OnInit,\n OnDestroy,\n signal,\n computed,\n AfterViewInit,\n HostListener,\n inject\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { Icon } from '@filip.mazev/blocks/icons';\nimport { Subscription } from 'rxjs';\nimport { Color, getComplementaryToken, resolveTokenToCssVar } from '@filip.mazev/blocks/core';\nimport { ToastrGlobalSettingsService } from '../services/toastr-global-settings.service';\n\n@Component({\n selector: 'bx-toast-core',\n imports: [NgClass, Icon],\n templateUrl: './toast-core.html',\n styleUrl: './toast-core.scss'\n})\nexport class ToastCore<D, R, C extends IToast<D, R> = IToast<D, R>> implements OnInit, AfterViewInit, OnDestroy {\n private readonly toastrGlobalSettingsService = inject(ToastrGlobalSettingsService);\n \n public componentRef!: ComponentRef<C>;\n public config?: IToastConfig<D>;\n public toastRef!: ToastRef<D, R>;\n\n public isVisible = signal(false);\n public currentTranslateY = signal(0);\n public isSwipingFinished = signal(false);\n\n public isCollapsing = signal(false);\n\n protected showCloseButton = computed(() => this.config?.showCloseButton ?? this.toastrGlobalSettingsService.showCloseButton());\n protected closeButtonColor = computed(() => this.config?.closeButtonColor ?? this.toastrGlobalSettingsService.closeButtonColor());\n \n protected showProgressBar = computed(() => {\n if (this.config?.showProgressBar === false)\n return false;\n\n return this.config?.showProgressBar === true || this.config?.progressBarColor !== undefined;\n });\n\n protected progressBarColor = computed(() => {\n return this.showProgressBar() \n ? ((this.config?.progressBarColor ?? this.toastrGlobalSettingsService.progressBarColor()) as Color) \n : undefined;\n });\n\n protected progressBarCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(progressBarColor) : undefined\n });\n\n protected progressBarBgCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(getComplementaryToken(progressBarColor)) : undefined\n });\n\n protected isAnimated = computed(() => this.config?.animate !== false);\n protected isBottom = computed(() => (this.config?.position ?? this.toastrGlobalSettingsService.position()).includes('bottom'));\n\n @ViewChild('dynamicContainer', { read: ViewContainerRef, static: true }) protected dynamicContainer!: ViewContainerRef;\n @ViewChild('toastSwipeTarget', { static: true }) protected toastSwipeTarget!: ElementRef;\n @ViewChild('animatorWrapper', { static: true }) protected animatorWrapper!: ElementRef;\n @ViewChild('progressBar') protected progressBar?: ElementRef<HTMLElement>;\n\n protected wrapperClasses = computed(() => {\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n const animClass = isTop ? 'anim-dir-top' : 'anim-dir-bottom';\n const wrapperClass = this.config?.wrapperClass ?? 'default-wrapper' + (this.config?.hasDefaultBackground === false ? ' no-bg' : '');\n return `${animClass} ${wrapperClass}`;\n });\n\n protected toastrTransform = computed(() => {\n if (!this.isAnimated()) return null;\n\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n if (this.isSwipingFinished()) {\n return isTop ? 'translateY(-150px)' : 'translateY(150px)';\n }\n\n if (this.currentTranslateY() !== 0) {\n return `translateY(${this.currentTranslateY()}px)`;\n }\n\n return null;\n });\n\n private progressAnimation?: Animation;\n private subs = new Subscription();\n\n private remainingMs = 0;\n\n private timerStartTime = 0;\n\n private originalCloseFn!: (result?: R) => void;\n private closeResult?: R;\n\n private isTrackingSwipe = false;\n private isTouchActive = false;\n private autoCloseTimeout?: ReturnType<typeof setTimeout>;\n private hasEmittedClose = false;\n\n private cleanupListeners: Array<() => void> = [];\n private swipeCleanupListeners: (() => void) | null = null;\n private globalResizeCleanup: (() => void) | null = null;\n\n public ngOnInit(): void {\n this.dynamicContainer.insert(this.componentRef.hostView);\n\n this.originalCloseFn = this.toastRef.close.bind(this.toastRef);\n this.toastRef.close = (result?: R) => {\n this.closeToast(result);\n };\n\n setTimeout(() => this.isVisible.set(true), 10);\n\n if (this.config?.swipeToDismiss !== false) {\n this.startVerticalSwipeDetection();\n this.monitorInputType();\n }\n\n const animatorTarget = this.animatorWrapper.nativeElement;\n\n const onAnimatorTransitionEnd = (event: TransitionEvent) => {\n if (event.target !== animatorTarget || event.propertyName !== 'grid-template-rows') return;\n if (this.isCollapsing() && !this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n };\n\n animatorTarget.addEventListener('transitionend', onAnimatorTransitionEnd);\n this.cleanupListeners.push(() => animatorTarget.removeEventListener('transitionend', onAnimatorTransitionEnd));\n }\n\n public ngAfterViewInit(): void {\n const duration = this.config?.durationInMs;\n\n if (duration) {\n this.remainingMs = duration;\n this.startTimer();\n }\n\n if (duration && this.progressBar?.nativeElement) {\n this.progressAnimation = this.progressBar.nativeElement.animate([{ width: '100%' }, { width: '0%' }], { duration, fill: 'forwards' });\n\n this.subs.add(this.toastRef.onPause$.subscribe(() => this.progressAnimation?.pause()));\n this.subs.add(this.toastRef.onResume$.subscribe(() => this.progressAnimation?.play()));\n }\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this.autoCloseTimeout);\n\n this.stopVerticalSwipeDetection();\n this.globalResizeCleanup?.();\n\n this.cleanupListeners.forEach((fn) => fn());\n this.cleanupListeners = [];\n\n this.progressAnimation?.cancel();\n this.subs.unsubscribe();\n }\n\n public closeToast(result?: R, fromSwipe = false): void {\n this.closeResult = result !== undefined ? result : this.closeResult;\n\n if (!this.isAnimated()) {\n if (!this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n return;\n }\n\n this.isVisible.set(false);\n this.isCollapsing.set(true);\n\n if (fromSwipe) {\n this.isSwipingFinished.set(true);\n }\n }\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.pauseTimer();\n }\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.startTimer();\n this.toastRef.resume();\n }\n }\n \n //#region Swipe Logic\n\n private startVerticalSwipeDetection(): void {\n if (this.isTrackingSwipe) return;\n\n const hasTouch = typeof window !== 'undefined' && (window.matchMedia('(pointer: coarse)').matches || navigator.maxTouchPoints > 0);\n if (!hasTouch) return;\n\n this.isTrackingSwipe = true;\n const target = this.toastSwipeTarget.nativeElement;\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n let startY = 0;\n let startTime = 0;\n let isPointerDown = false;\n let limit = 0;\n\n const pointerDown = (event: PointerEvent) => {\n if (event.button !== 0 && event.pointerType === 'mouse') return;\n\n const toastHeight = target.offsetHeight || 0;\n limit = toastHeight / 3;\n\n isPointerDown = true;\n startY = event.clientY;\n startTime = event.timeStamp;\n\n this.pauseTimer();\n target.setPointerCapture(event.pointerId);\n };\n\n const pointerMove = (event: PointerEvent) => {\n if (!isPointerDown) return;\n const currentY = event.clientY - startY;\n\n if ((isTop && currentY < 0) || (!isTop && currentY > 0)) {\n if (event.cancelable) event.preventDefault();\n this.currentTranslateY.set(currentY);\n }\n };\n\n const pointerUp = (event: PointerEvent) => {\n if (!isPointerDown) return;\n isPointerDown = false;\n target.releasePointerCapture(event.pointerId);\n\n const deltaY = event.clientY - startY;\n const duration = event.timeStamp - startTime || 1;\n const velocityY = Math.abs(deltaY / duration);\n\n const crossedLimit = isTop ? deltaY < -limit : deltaY > limit;\n\n if (crossedLimit || velocityY > 0.3) {\n this.closeToast(undefined, true);\n } else {\n this.currentTranslateY.set(0);\n this.startTimer();\n this.toastRef.resume();\n }\n };\n\n target.addEventListener('pointerdown', pointerDown, { passive: false });\n target.addEventListener('pointermove', pointerMove, { passive: false });\n target.addEventListener('pointerup', pointerUp);\n target.addEventListener('pointercancel', pointerUp);\n\n this.swipeCleanupListeners = () => {\n target.removeEventListener('pointerdown', pointerDown);\n target.removeEventListener('pointermove', pointerMove);\n target.removeEventListener('pointerup', pointerUp);\n target.removeEventListener('pointercancel', pointerUp);\n };\n }\n\n private stopVerticalSwipeDetection(): void {\n if (!this.isTrackingSwipe) return;\n\n this.isTrackingSwipe = false;\n\n if (this.swipeCleanupListeners) {\n this.swipeCleanupListeners();\n this.swipeCleanupListeners = null;\n }\n }\n\n private monitorInputType(): void {\n if (this.globalResizeCleanup) return;\n\n const handler = (event: PointerEvent) => {\n const isTouch = event.pointerType === 'touch';\n\n if (isTouch && !this.isTouchActive) {\n this.isTouchActive = true;\n this.startVerticalSwipeDetection();\n } else if (!isTouch && this.isTouchActive) {\n this.isTouchActive = false;\n this.stopVerticalSwipeDetection();\n }\n };\n\n window.addEventListener('pointerdown', handler);\n this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);\n }\n\n //#endregion\n\n //#region Timer Logic\n\n private startTimer(): void {\n if (this.remainingMs <= 0) return;\n\n this.timerStartTime = Date.now();\n this.autoCloseTimeout = setTimeout(() => this.closeToast(), this.remainingMs);\n }\n\n private pauseTimer(): void {\n if (!this.autoCloseTimeout) return;\n\n clearTimeout(this.autoCloseTimeout);\n this.autoCloseTimeout = undefined;\n\n const elapsed = Date.now() - this.timerStartTime;\n this.remainingMs -= elapsed;\n\n this.toastRef.pause();\n }\n\n //#endregion\n}\n","<div #animatorWrapper class=\"toast-animator\" [class.collapsing]=\"isCollapsing()\" [class.is-bottom]=\"isBottom()\">\n <div #toastSwipeTarget class=\"toast-wrapper\" [ngClass]=\"wrapperClasses()\" [class.show]=\"isVisible()\"\n [class.no-animate]=\"!isAnimated()\" [style.transform]=\"toastrTransform()\">\n @if(showCloseButton()) {\n <bx-icon name=\"x\" size=\"20\" [color]=\"closeButtonColor()\" class=\"toast-close-button\" (click)=\"closeToast()\"\n aria-label=\"Close toast\" />\n }\n\n <ng-container #dynamicContainer></ng-container>\n\n @if (config?.durationInMs && showProgressBar() && progressBarCssVar() && progressBarBgCssVar()) {\n <div class=\"toast-progress-container\" [style.background]=\"progressBarBgCssVar()\">\n <div class=\"toast-progress-bar\" [style.background]=\"progressBarCssVar()\" #progressBar></div>\n </div>\n }\n </div>\n</div>","import { inject, Injectable } from '@angular/core';\nimport { ToastRef } from './toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\n\n@Injectable()\nexport abstract class Toast<D = unknown, R = unknown> implements IToast<D, R> {\n /**\n * Data injected into the toast component.\n */\n public data = inject<D>(TOAST_DATA);\n\n /**\n * Reference to the ToastRef instance associated with this toast.\n */\n public toast!: ToastRef<D, R>;\n\n /**\n * Called when the toast is initialized.\n */\n public onToastInit(): void {}\n\n /**\n * Closes the toast with an optional result.\n * @param result The result to be passed when closing the toast.\n */\n public close(result?: R): void {\n this.toast?.close(result);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Toast } from '../../../classes/toast';\nimport { ISimpleToastData } from '../../../interfaces/isimple-toast.interface';\n\n@Component({\n selector: 'bx-simple-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './simple-toast.html',\n styleUrl: './simple-toast.scss'\n})\nexport class SimpleToast extends Toast<ISimpleToastData, undefined> {\n protected dismiss(): void {\n this.toast?.close();\n }\n}\n","<div class=\"simple-toast\" [ngClass]=\"data.type\">\n <div class=\"simple-toast-content\">\n @if(data.title ) {\n <h4 class=\"simple-toast-title\">{{ data.title }}</h4>\n <p class=\"simple-toast-message\">{{ data.message }}</p>\n } @else {\n <p class=\"simple-toast-message large-message\">{{ data.message }}</p>\n }\n </div>\n</div>","import { Injectable, inject, Injector, ApplicationRef, EnvironmentInjector, createComponent, ComponentRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { ToastrGlobalSettingsService } from './toastr-global-settings.service';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ToastCore } from '../components/toast-core';\nimport { take } from 'rxjs';\nimport { SimpleToast } from '../components/views/simple-toast/simple-toast';\nimport { ISimpleToastData } from '../interfaces/isimple-toast.interface';\nimport { IQueueSimpleToastRequest } from '../interfaces/iqueue-simple-toast-request.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrService {\n private readonly injector = inject(Injector);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n private readonly globalSettings = inject(ToastrGlobalSettingsService);\n\n private readonly toastQueue: Array<() => void> = [];\n private readonly activeToasts: Array<ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>> = [];\n private readonly containers = new Map<ToastPosition, HTMLElement>();\n\n private activePauses = 0;\n\n /**\n * Displays a toast notification with the specified component and configuration.\n * @param componentType\n * @param config\n * @returns\n */\n public queueToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config?: IToastConfig<D>): ToastRef<D, R> {\n const resolvedConfig = this.resolveConfig(config);\n const toastRef = new ToastRef<D, R>();\n\n this.toastQueue.push(() => this.buildAndAttachToast(componentType, resolvedConfig, toastRef));\n\n this.processQueue();\n\n return toastRef;\n }\n\n /**\n * Queues a simple success toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueSuccess(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'success'\n },\n closeButtonColor: 'text-success',\n progressBarColor: 'text-success',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple info toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueInfo(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'info'\n },\n closeButtonColor: 'text-info',\n progressBarColor: 'text-info',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple warning toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueWarning(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'warn'\n },\n closeButtonColor: 'text-warn',\n progressBarColor: 'text-warn',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple error toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueDanger(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'danger'\n },\n closeButtonColor: 'text-danger',\n progressBarColor: 'text-danger',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n //#region Helper Methods\n\n private processQueue(): void {\n if (this.activePauses > 0) {\n return;\n }\n\n const max = this.globalSettings.maxOpened();\n\n while (this.activeToasts.length < max && this.toastQueue.length > 0) {\n const buildNext = this.toastQueue.shift();\n if (buildNext) {\n buildNext();\n }\n }\n }\n\n private buildAndAttachToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config: IToastConfig<D>, toastRef: ToastRef<D, R>): void {\n const dataInjector = Injector.create({\n providers: [{ provide: TOAST_DATA, useValue: config.data }],\n parent: this.injector\n });\n\n const contentRef = createComponent(componentType, {\n environmentInjector: this.environmentInjector,\n elementInjector: dataInjector\n });\n\n if (this.isIToast<D, R, C>(contentRef.instance)) {\n contentRef.instance.toast = toastRef;\n contentRef.instance.onToastInit?.();\n }\n\n const wrapperInjector = Injector.create({\n providers: [{ provide: ToastRef, useValue: toastRef }],\n parent: this.injector\n });\n\n const wrapperRef = createComponent<ToastCore<D, R, C>>(ToastCore, {\n environmentInjector: this.environmentInjector,\n elementInjector: wrapperInjector\n });\n\n wrapperRef.instance.componentRef = contentRef;\n wrapperRef.instance.config = config;\n wrapperRef.instance.toastRef = toastRef;\n\n this.appRef.attachView(wrapperRef.hostView);\n\n const container = this.getContainer(config.position || 'top-right');\n container.appendChild(wrapperRef.location.nativeElement);\n\n this.activeToasts.push(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n let isThisToastPausing = false;\n\n toastRef.config = config;\n\n toastRef.onPause$.subscribe(() => {\n if (!isThisToastPausing) {\n isThisToastPausing = true;\n this.activePauses++;\n }\n });\n\n toastRef.onResume$.subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n\n if (this.activePauses === 0) {\n this.processQueue();\n }\n }\n });\n\n toastRef.afterClosed$.pipe(take(1)).subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n }\n\n this.finalizeToast(wrapperRef);\n });\n }\n\n private finalizeToast<D, R, C extends IToast<D, R>>(wrapperRef: ComponentRef<ToastCore<D, R, C>>): void {\n const index = this.activeToasts.indexOf(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n if (index > -1) {\n this.activeToasts.splice(index, 1);\n }\n\n this.appRef.detachView(wrapperRef.hostView);\n wrapperRef.location.nativeElement.remove();\n wrapperRef.destroy();\n\n this.processQueue();\n }\n\n private getContainer(position: ToastPosition): HTMLElement {\n if (this.containers.has(position)) {\n return this.containers.get(position) as HTMLElement;\n }\n\n const container = this.document.createElement('div');\n container.classList.add('toast-container', `toast-container-${position}`);\n this.document.body.appendChild(container);\n\n this.containers.set(position, container);\n\n return container;\n }\n\n private resolveConfig<D>(config?: IToastConfig<D>): IToastConfig<D> {\n return {\n ...config,\n position: config?.position ?? this.globalSettings.position(),\n animate: config?.animate ?? this.globalSettings.animate(),\n wrapperClass: config?.wrapperClass ?? this.globalSettings.wrapperClass(),\n durationInMs: config?.durationInMs ?? this.globalSettings.durationInMs(),\n swipeToDismiss: config?.swipeToDismiss ?? this.globalSettings.swipeToDismiss(),\n showCloseButton: config?.showCloseButton ?? this.globalSettings.showCloseButton(),\n closeButtonColor: config?.closeButtonColor ?? this.globalSettings.closeButtonColor(),\n showProgressBar: config?.showProgressBar ?? this.globalSettings.showProgressBar(),\n progressBarColor: config?.progressBarColor ?? this.globalSettings?.progressBarColor()\n };\n }\n\n private isIToast<D, R, C extends IToast<D, R>>(component: unknown): component is C {\n return typeof component === 'object' && component !== null && 'toast' in component;\n }\n\n //#endregion\n}\n","/*\n * Public API Surface of toastr\n */\n\nexport * from './services/toastr.service';\nexport * from './services/toastr-global-settings.service';\n\nexport * from './components/toast-core';\nexport * from './components/views/simple-toast/simple-toast';\n\nexport * from './interfaces/itoast-config.interface';\nexport * from './interfaces/itoast.interface';\nexport * from './interfaces/isimple-toast.interface';\n\nexport * from './types/toastr.types';\n\nexport * from './tokens/toast-data.token';\n\nexport * from './classes/toast-ref';\nexport * from './classes/toast';\n","/**\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-toastr.mjs","sources":["../../../projects/blocks/toastr/classes/toast-ref.ts","../../../projects/blocks/toastr/tokens/toast-data.token.ts","../../../projects/blocks/toastr/services/toastr-global-settings.service.ts","../../../projects/blocks/toastr/components/toast-core.ts","../../../projects/blocks/toastr/components/toast-core.html","../../../projects/blocks/toastr/classes/toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.ts","../../../projects/blocks/toastr/components/views/simple-toast/simple-toast.html","../../../projects/blocks/toastr/services/toastr.service.ts","../../../projects/blocks/toastr/public-api.ts","../../../projects/blocks/toastr/filip.mazev-blocks-toastr.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\n\nexport class ToastRef<D = undefined, R = unknown> {\n private readonly afterClosedSubject = new Subject<R | undefined>();\n\n private readonly pauseSubject = new Subject<void>();\n private readonly resumeSubject = new Subject<void>();\n\n public readonly afterClosed$ = this.afterClosedSubject.asObservable();\n public readonly onPause$ = this.pauseSubject.asObservable();\n public readonly onResume$ = this.resumeSubject.asObservable();\n public config!: IToastConfig<D>;\n\n public close(result?: R): void {\n this.afterClosedSubject.next(result);\n this.afterClosedSubject.complete();\n }\n\n public pause(): void {\n this.pauseSubject.next();\n }\n\n public resume(): void {\n this.resumeSubject.next();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const TOAST_DATA = new InjectionToken<any>('TOAST_DATA');\n","import { Injectable, signal } from '@angular/core';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ThemedColor } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrGlobalSettingsService {\n public readonly position = signal<ToastPosition>('top-right');\n public readonly animate = signal<boolean>(true);\n public readonly wrapperClass = signal<string | undefined>(undefined);\n public readonly durationInMs = signal<number>(5000);\n public readonly swipeToDismiss = signal<boolean>(true);\n public readonly maxOpened = signal<number>(4);\n\n public readonly showCloseButton = signal<boolean>(true);\n public readonly closeButtonColor = signal<ThemedColor | undefined>('text-primary');\n \n public readonly showProgressBar = signal<boolean>(true);\n public readonly progressBarColor = signal<ThemedColor | undefined>('text-primary');\n\n public update(\n settings: Partial<{\n position: ToastPosition;\n animate: boolean;\n wrapperClass: string;\n durationInMs: number;\n swipeToDismiss: boolean;\n maxOpened: number;\n showCloseButton: boolean;\n closeButtonColor: ThemedColor;\n showProgressBar: boolean;\n progressBarColor: ThemedColor;\n }>\n ): void {\n if (settings.position !== undefined) this.position.set(settings.position);\n if (settings.animate !== undefined) this.animate.set(settings.animate);\n if (settings.wrapperClass !== undefined) this.wrapperClass.set(settings.wrapperClass);\n if (settings.durationInMs !== undefined) this.durationInMs.set(settings.durationInMs);\n if (settings.swipeToDismiss !== undefined) this.swipeToDismiss.set(settings.swipeToDismiss);\n if (settings.maxOpened !== undefined) this.maxOpened.set(settings.maxOpened);\n \n if (settings.showCloseButton !== undefined) this.showCloseButton.set(settings.showCloseButton);\n if (settings.closeButtonColor !== undefined) this.closeButtonColor.set(settings.closeButtonColor);\n \n if (settings.showProgressBar !== undefined) this.showProgressBar.set(settings.showProgressBar);\n if (settings.progressBarColor !== undefined) this.progressBarColor.set(settings.progressBarColor);\n }\n}\n","import {\n Component,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n ElementRef,\n OnInit,\n OnDestroy,\n signal,\n computed,\n AfterViewInit,\n HostListener,\n inject\n} from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { Icon } from '@filip.mazev/blocks/icons';\nimport { Subscription } from 'rxjs';\nimport { Color, getComplementaryToken, resolveTokenToCssVar } from '@filip.mazev/blocks/core';\nimport { ToastrGlobalSettingsService } from '../services/toastr-global-settings.service';\n\n@Component({\n selector: 'bx-toast-core',\n imports: [NgClass, Icon],\n templateUrl: './toast-core.html',\n styleUrl: './toast-core.scss'\n})\nexport class ToastCore<D, R, C extends IToast<D, R> = IToast<D, R>> implements OnInit, AfterViewInit, OnDestroy {\n private readonly toastrGlobalSettingsService = inject(ToastrGlobalSettingsService);\n \n public componentRef!: ComponentRef<C>;\n public config?: IToastConfig<D>;\n public toastRef!: ToastRef<D, R>;\n\n public isVisible = signal(false);\n public currentTranslateY = signal(0);\n public isSwipingFinished = signal(false);\n\n public isCollapsing = signal(false);\n\n protected showCloseButton = computed(() => this.config?.showCloseButton ?? this.toastrGlobalSettingsService.showCloseButton());\n protected closeButtonColor = computed(() => this.config?.closeButtonColor ?? this.toastrGlobalSettingsService.closeButtonColor());\n \n protected showProgressBar = computed(() => {\n if (this.config?.showProgressBar === false)\n return false;\n\n return this.config?.showProgressBar === true || this.config?.progressBarColor !== undefined;\n });\n\n protected progressBarColor = computed(() => {\n return this.showProgressBar() \n ? ((this.config?.progressBarColor ?? this.toastrGlobalSettingsService.progressBarColor()) as Color) \n : undefined;\n });\n\n protected progressBarCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(progressBarColor) : undefined\n });\n\n protected progressBarBgCssVar = computed(() => {\n const progressBarColor = this.progressBarColor();\n return progressBarColor ? resolveTokenToCssVar(getComplementaryToken(progressBarColor)) : undefined\n });\n\n protected isAnimated = computed(() => this.config?.animate !== false);\n protected isBottom = computed(() => (this.config?.position ?? this.toastrGlobalSettingsService.position()).includes('bottom'));\n\n @ViewChild('dynamicContainer', { read: ViewContainerRef, static: true }) protected dynamicContainer!: ViewContainerRef;\n @ViewChild('toastSwipeTarget', { static: true }) protected toastSwipeTarget!: ElementRef;\n @ViewChild('animatorWrapper', { static: true }) protected animatorWrapper!: ElementRef;\n @ViewChild('progressBar') protected progressBar?: ElementRef<HTMLElement>;\n\n protected wrapperClasses = computed(() => {\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n const animClass = isTop ? 'anim-dir-top' : 'anim-dir-bottom';\n const wrapperClass = this.config?.wrapperClass ?? 'default-wrapper' + (this.config?.hasDefaultBackground === false ? ' no-bg' : '');\n return `${animClass} ${wrapperClass}`;\n });\n\n protected toastrTransform = computed(() => {\n if (!this.isAnimated()) return null;\n\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n if (this.isSwipingFinished()) {\n return isTop ? 'translateY(-150px)' : 'translateY(150px)';\n }\n\n if (this.currentTranslateY() !== 0) {\n return `translateY(${this.currentTranslateY()}px)`;\n }\n\n return null;\n });\n\n private progressAnimation?: Animation;\n private subs = new Subscription();\n\n private remainingMs = 0;\n\n private timerStartTime = 0;\n\n private originalCloseFn!: (result?: R) => void;\n private closeResult?: R;\n\n private isTrackingSwipe = false;\n private isTouchActive = false;\n private autoCloseTimeout?: ReturnType<typeof setTimeout>;\n private hasEmittedClose = false;\n\n private cleanupListeners: Array<() => void> = [];\n private swipeCleanupListeners: (() => void) | null = null;\n private globalResizeCleanup: (() => void) | null = null;\n\n public ngOnInit(): void {\n this.dynamicContainer.insert(this.componentRef.hostView);\n\n this.originalCloseFn = this.toastRef.close.bind(this.toastRef);\n this.toastRef.close = (result?: R) => {\n this.closeToast(result);\n };\n\n setTimeout(() => this.isVisible.set(true), 10);\n\n if (this.config?.swipeToDismiss !== false) {\n this.startVerticalSwipeDetection();\n this.monitorInputType();\n }\n\n const animatorTarget = this.animatorWrapper.nativeElement;\n\n const onAnimatorTransitionEnd = (event: TransitionEvent) => {\n if (event.target !== animatorTarget || event.propertyName !== 'grid-template-rows') return;\n if (this.isCollapsing() && !this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n };\n\n animatorTarget.addEventListener('transitionend', onAnimatorTransitionEnd);\n this.cleanupListeners.push(() => animatorTarget.removeEventListener('transitionend', onAnimatorTransitionEnd));\n }\n\n public ngAfterViewInit(): void {\n const duration = this.config?.durationInMs;\n\n if (duration) {\n this.remainingMs = duration;\n this.startTimer();\n }\n\n if (duration && this.progressBar?.nativeElement) {\n this.progressAnimation = this.progressBar.nativeElement.animate([{ width: '100%' }, { width: '0%' }], { duration, fill: 'forwards' });\n\n this.subs.add(this.toastRef.onPause$.subscribe(() => this.progressAnimation?.pause()));\n this.subs.add(this.toastRef.onResume$.subscribe(() => this.progressAnimation?.play()));\n }\n }\n\n public ngOnDestroy(): void {\n clearTimeout(this.autoCloseTimeout);\n\n this.stopVerticalSwipeDetection();\n this.globalResizeCleanup?.();\n\n this.cleanupListeners.forEach((fn) => fn());\n this.cleanupListeners = [];\n\n this.progressAnimation?.cancel();\n this.subs.unsubscribe();\n }\n\n public closeToast(result?: R, fromSwipe = false): void {\n this.closeResult = result !== undefined ? result : this.closeResult;\n\n if (!this.isAnimated()) {\n if (!this.hasEmittedClose) {\n this.hasEmittedClose = true;\n this.originalCloseFn(this.closeResult);\n }\n return;\n }\n\n this.isVisible.set(false);\n this.isCollapsing.set(true);\n\n if (fromSwipe) {\n this.isSwipingFinished.set(true);\n }\n }\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.pauseTimer();\n }\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (!this.isTouchActive && this.config?.durationInMs && !this.isCollapsing()) {\n this.startTimer();\n this.toastRef.resume();\n }\n }\n \n //#region Swipe Logic\n\n private startVerticalSwipeDetection(): void {\n if (this.isTrackingSwipe) return;\n\n const hasTouch = typeof window !== 'undefined' && (window.matchMedia('(pointer: coarse)').matches || navigator.maxTouchPoints > 0);\n if (!hasTouch) return;\n\n this.isTrackingSwipe = true;\n const target = this.toastSwipeTarget.nativeElement;\n const isTop = (this.config?.position ?? 'top-right').includes('top');\n\n let startY = 0;\n let startTime = 0;\n let isPointerDown = false;\n let limit = 0;\n\n const pointerDown = (event: PointerEvent) => {\n if (event.button !== 0 && event.pointerType === 'mouse') return;\n\n const toastHeight = target.offsetHeight || 0;\n limit = toastHeight / 3;\n\n isPointerDown = true;\n startY = event.clientY;\n startTime = event.timeStamp;\n\n this.pauseTimer();\n target.setPointerCapture(event.pointerId);\n };\n\n const pointerMove = (event: PointerEvent) => {\n if (!isPointerDown) return;\n const currentY = event.clientY - startY;\n\n if ((isTop && currentY < 0) || (!isTop && currentY > 0)) {\n if (event.cancelable) event.preventDefault();\n this.currentTranslateY.set(currentY);\n }\n };\n\n const pointerUp = (event: PointerEvent) => {\n if (!isPointerDown) return;\n isPointerDown = false;\n target.releasePointerCapture(event.pointerId);\n\n const deltaY = event.clientY - startY;\n const duration = event.timeStamp - startTime || 1;\n const velocityY = Math.abs(deltaY / duration);\n\n const crossedLimit = isTop ? deltaY < -limit : deltaY > limit;\n\n if (crossedLimit || velocityY > 0.3) {\n this.closeToast(undefined, true);\n } else {\n this.currentTranslateY.set(0);\n this.startTimer();\n this.toastRef.resume();\n }\n };\n\n target.addEventListener('pointerdown', pointerDown, { passive: false });\n target.addEventListener('pointermove', pointerMove, { passive: false });\n target.addEventListener('pointerup', pointerUp);\n target.addEventListener('pointercancel', pointerUp);\n\n this.swipeCleanupListeners = () => {\n target.removeEventListener('pointerdown', pointerDown);\n target.removeEventListener('pointermove', pointerMove);\n target.removeEventListener('pointerup', pointerUp);\n target.removeEventListener('pointercancel', pointerUp);\n };\n }\n\n private stopVerticalSwipeDetection(): void {\n if (!this.isTrackingSwipe) return;\n\n this.isTrackingSwipe = false;\n\n if (this.swipeCleanupListeners) {\n this.swipeCleanupListeners();\n this.swipeCleanupListeners = null;\n }\n }\n\n private monitorInputType(): void {\n if (this.globalResizeCleanup) return;\n\n const handler = (event: PointerEvent) => {\n const isTouch = event.pointerType === 'touch';\n\n if (isTouch && !this.isTouchActive) {\n this.isTouchActive = true;\n this.startVerticalSwipeDetection();\n } else if (!isTouch && this.isTouchActive) {\n this.isTouchActive = false;\n this.stopVerticalSwipeDetection();\n }\n };\n\n window.addEventListener('pointerdown', handler);\n this.globalResizeCleanup = () => window.removeEventListener('pointerdown', handler);\n }\n\n //#endregion\n\n //#region Timer Logic\n\n private startTimer(): void {\n if (this.remainingMs <= 0) return;\n\n this.timerStartTime = Date.now();\n this.autoCloseTimeout = setTimeout(() => this.closeToast(), this.remainingMs);\n }\n\n private pauseTimer(): void {\n if (!this.autoCloseTimeout) return;\n\n clearTimeout(this.autoCloseTimeout);\n this.autoCloseTimeout = undefined;\n\n const elapsed = Date.now() - this.timerStartTime;\n this.remainingMs -= elapsed;\n\n this.toastRef.pause();\n }\n\n //#endregion\n}\n","<div #animatorWrapper class=\"toast-animator\" [class.collapsing]=\"isCollapsing()\" [class.is-bottom]=\"isBottom()\">\n <div #toastSwipeTarget class=\"toast-wrapper\" [ngClass]=\"wrapperClasses()\" [class.show]=\"isVisible()\"\n [class.no-animate]=\"!isAnimated()\" [style.transform]=\"toastrTransform()\">\n @if(showCloseButton()) {\n <bx-icon name=\"x\" size=\"20\" [color]=\"closeButtonColor()\" class=\"toast-close-button\" (click)=\"closeToast()\"\n aria-label=\"Close toast\" />\n }\n\n <ng-container #dynamicContainer></ng-container>\n\n @if (config?.durationInMs && showProgressBar() && progressBarCssVar() && progressBarBgCssVar()) {\n <div class=\"toast-progress-container\" [style.background]=\"progressBarBgCssVar()\">\n <div class=\"toast-progress-bar\" [style.background]=\"progressBarCssVar()\" #progressBar></div>\n </div>\n }\n </div>\n</div>","import { inject, Injectable } from '@angular/core';\nimport { ToastRef } from './toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\n\n@Injectable()\nexport abstract class Toast<D = unknown, R = unknown> implements IToast<D, R> {\n /**\n * Data injected into the toast component.\n */\n public data = inject<D>(TOAST_DATA);\n\n /**\n * Reference to the ToastRef instance associated with this toast.\n */\n public toast!: ToastRef<D, R>;\n\n /**\n * Called when the toast is initialized.\n */\n public onToastInit(): void {}\n\n /**\n * Closes the toast with an optional result.\n * @param result The result to be passed when closing the toast.\n */\n public close(result?: R): void {\n this.toast?.close(result);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, inject } from '@angular/core';\nimport { Toast } from '../../../classes/toast';\nimport { ISimpleToastData } from '../../../interfaces/isimple-toast.interface';\nimport { BX_I18N, isTextWithKey } from '@filip.mazev/blocks/core';\n\n@Component({\n selector: 'bx-simple-toast',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './simple-toast.html',\n styleUrl: './simple-toast.scss'\n})\nexport class SimpleToast extends Toast<ISimpleToastData, undefined> {\n private readonly i18n = inject(BX_I18N, { optional: true });\n \n protected readonly resolvedTitle = computed(() => {\n this.i18n?.version?.();\n\n const title = this.data.title;\n if (!title) return undefined;\n\n if (isTextWithKey(title)) {\n return this.i18n?.translate(title.key) ?? title.key;\n }\n\n return title;\n });\n\n protected readonly resolvedMessage = computed(() => {\n this.i18n?.version?.();\n\n const message = this.data.message;\n if (!message) return undefined;\n\n if (isTextWithKey(message)) {\n return this.i18n?.translate(message.key) ?? message.key;\n }\n\n return message;\n });\n\n protected dismiss(): void {\n this.toast?.close();\n }\n}\n","<div class=\"simple-toast\" [ngClass]=\"data.type\">\n <div class=\"simple-toast-content\">\n @if(resolvedTitle()) {\n <h4 class=\"simple-toast-title\">{{ resolvedTitle() }}</h4>\n <p class=\"simple-toast-message\">{{ resolvedMessage() }}</p>\n } @else {\n <p class=\"simple-toast-message large-message\">{{ resolvedMessage() }}</p>\n }\n </div>\n</div>","import { Injectable, inject, Injector, ApplicationRef, EnvironmentInjector, createComponent, ComponentRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { take } from 'rxjs';\nimport { IToastConfig } from '../interfaces/itoast-config.interface';\nimport { ToastRef } from '../classes/toast-ref';\nimport { TOAST_DATA } from '../tokens/toast-data.token';\nimport { IToast } from '../interfaces/itoast.interface';\nimport { ToastrGlobalSettingsService } from './toastr-global-settings.service';\nimport { ToastPosition } from '../types/toastr.types';\nimport { ToastCore } from '../components/toast-core';\nimport { SimpleToast } from '../components/views/simple-toast/simple-toast';\nimport { ISimpleToastData } from '../interfaces/isimple-toast.interface';\nimport { IQueueSimpleToastRequest } from '../interfaces/iqueue-simple-toast-request.interface';\nimport { BxA11yService } from '@filip.mazev/blocks/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastrService {\n private readonly injector = inject(Injector);\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n private readonly globalSettings = inject(ToastrGlobalSettingsService);\n private readonly a11y = inject(BxA11yService);\n\n private readonly toastQueue: Array<() => void> = [];\n private readonly activeToasts: Array<ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>> = [];\n private readonly containers = new Map<ToastPosition, HTMLElement>();\n\n private activePauses = 0;\n\n /**\n * Displays a toast notification with the specified component and configuration.\n * @param componentType\n * @param config\n * @returns\n */\n public queueToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config?: IToastConfig<D>): ToastRef<D, R> {\n const resolvedConfig = this.resolveConfig(config);\n const toastRef = new ToastRef<D, R>();\n\n this.toastQueue.push(() => this.buildAndAttachToast(componentType, resolvedConfig, toastRef));\n\n this.processQueue();\n\n return toastRef;\n }\n\n /**\n * Queues a simple success toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueSuccess(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'success'\n },\n closeButtonColor: 'text-success',\n progressBarColor: 'text-success',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple info toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueInfo(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'info'\n },\n closeButtonColor: 'text-info',\n progressBarColor: 'text-info',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple warning toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueWarning(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'warn'\n },\n closeButtonColor: 'text-warn',\n progressBarColor: 'text-warn',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n /**\n * Queues a simple error toast notification with the specified message and optional title, position, and duration.\n * @param request An object containing the message, optional title, optional position, and duration for the toast notification.\n * @returns A ToastRef instance representing the queued toast.\n */\n public queueDanger(request: IQueueSimpleToastRequest): ToastRef<ISimpleToastData, undefined> {\n return this.queueToast<ISimpleToastData, undefined, SimpleToast>(SimpleToast, {\n position: request.position ?? this.globalSettings.position(),\n data: {\n title: request.title,\n message: request.message,\n type: 'danger'\n },\n closeButtonColor: 'text-danger',\n progressBarColor: 'text-danger',\n hasDefaultBackground: false,\n durationInMs: request.durationInMs ?? this.globalSettings.durationInMs(),\n animate: request.animate ?? this.globalSettings.animate(),\n showProgressBar: request.showProgessBar ?? this.globalSettings.showProgressBar(),\n showCloseButton: request.showCloseButton ?? this.globalSettings.showCloseButton()\n });\n }\n\n //#region Helper Methods\n\n private processQueue(): void {\n if (this.activePauses > 0) {\n return;\n }\n\n const max = this.globalSettings.maxOpened();\n\n while (this.activeToasts.length < max && this.toastQueue.length > 0) {\n const buildNext = this.toastQueue.shift();\n if (buildNext) {\n buildNext();\n }\n }\n }\n\n private buildAndAttachToast<D, R, C extends IToast<D, R>>(componentType: ComponentType<C>, config: IToastConfig<D>, toastRef: ToastRef<D, R>): void {\n const dataInjector = Injector.create({\n providers: [{ provide: TOAST_DATA, useValue: config.data }],\n parent: this.injector\n });\n\n const contentRef = createComponent(componentType, {\n environmentInjector: this.environmentInjector,\n elementInjector: dataInjector\n });\n\n if (this.isIToast<D, R, C>(contentRef.instance)) {\n contentRef.instance.toast = toastRef;\n contentRef.instance.onToastInit?.();\n }\n\n const wrapperInjector = Injector.create({\n providers: [{ provide: ToastRef, useValue: toastRef }],\n parent: this.injector\n });\n\n const wrapperRef = createComponent<ToastCore<D, R, C>>(ToastCore, {\n environmentInjector: this.environmentInjector,\n elementInjector: wrapperInjector\n });\n\n wrapperRef.instance.componentRef = contentRef;\n wrapperRef.instance.config = config;\n wrapperRef.instance.toastRef = toastRef;\n\n this.appRef.attachView(wrapperRef.hostView);\n\n const container = this.getContainer(config.position || 'top-right');\n container.appendChild(wrapperRef.location.nativeElement);\n\n this.activeToasts.push(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n let isThisToastPausing = false;\n\n toastRef.config = config;\n\n toastRef.onPause$.subscribe(() => {\n if (!isThisToastPausing) {\n isThisToastPausing = true;\n this.activePauses++;\n }\n });\n\n toastRef.onResume$.subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n\n if (this.activePauses === 0) {\n this.processQueue();\n }\n }\n });\n\n toastRef.afterClosed$.pipe(take(1)).subscribe(() => {\n if (isThisToastPausing) {\n isThisToastPausing = false;\n this.activePauses = Math.max(0, this.activePauses - 1);\n }\n\n this.finalizeToast(wrapperRef);\n });\n }\n\n private finalizeToast<D, R, C extends IToast<D, R>>(wrapperRef: ComponentRef<ToastCore<D, R, C>>): void {\n const index = this.activeToasts.indexOf(wrapperRef as ComponentRef<ToastCore<unknown, unknown, IToast<unknown, unknown>>>);\n\n if (index > -1) {\n this.activeToasts.splice(index, 1);\n }\n\n this.appRef.detachView(wrapperRef.hostView);\n wrapperRef.location.nativeElement.remove();\n wrapperRef.destroy();\n\n this.processQueue();\n }\n\n private getContainer(position: ToastPosition): HTMLElement {\n if (this.containers.has(position)) {\n return this.containers.get(position) as HTMLElement;\n }\n\n const container = this.document.createElement('div');\n container.classList.add('toast-container', `toast-container-${position}`);\n this.document.body.appendChild(container);\n\n this.containers.set(position, container);\n\n return container;\n }\n\n private resolveConfig<D>(config?: IToastConfig<D>): IToastConfig<D> {\n const requestedAnimation = config?.animate ?? this.globalSettings.animate();\n const finalAnimateState = this.a11y.isReducedMotion() ? false : requestedAnimation;\n\n return {\n ...config,\n position: config?.position ?? this.globalSettings.position(),\n animate: finalAnimateState,\n wrapperClass: config?.wrapperClass ?? this.globalSettings.wrapperClass(),\n durationInMs: config?.durationInMs ?? this.globalSettings.durationInMs(),\n swipeToDismiss: config?.swipeToDismiss ?? this.globalSettings.swipeToDismiss(),\n showCloseButton: config?.showCloseButton ?? this.globalSettings.showCloseButton(),\n closeButtonColor: config?.closeButtonColor ?? this.globalSettings.closeButtonColor(),\n showProgressBar: config?.showProgressBar ?? this.globalSettings.showProgressBar(),\n progressBarColor: config?.progressBarColor ?? this.globalSettings?.progressBarColor()\n };\n }\n\n private isIToast<D, R, C extends IToast<D, R>>(component: unknown): component is C {\n return typeof component === 'object' && component !== null && 'toast' in component;\n }\n\n //#endregion\n}","/*\n * Public API Surface of toastr\n */\n\nexport * from './services/toastr.service';\nexport * from './services/toastr-global-settings.service';\n\nexport * from './components/toast-core';\nexport * from './components/views/simple-toast/simple-toast';\n\nexport * from './interfaces/itoast-config.interface';\nexport * from './interfaces/itoast.interface';\nexport * from './interfaces/isimple-toast.interface';\n\nexport * from './types/toastr.types';\n\nexport * from './tokens/toast-data.token';\n\nexport * from './classes/toast-ref';\nexport * from './classes/toast';\n","/**\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.28';
4
+ const BLOCKS_VERSION = '1.2.32';
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.28';\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.32';\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.28",
3
+ "version": "1.2.32",
4
4
  "license": "MIT",
5
5
  "schematics": "./schematics/collection.json",
6
6
  "exports": {
@@ -23,9 +23,9 @@
23
23
  "./package.json": {
24
24
  "default": "./package.json"
25
25
  },
26
- "./button": {
27
- "types": "./types/filip.mazev-blocks-button.d.ts",
28
- "default": "./fesm2022/filip.mazev-blocks-button.mjs"
26
+ "./forms": {
27
+ "types": "./types/filip.mazev-blocks-forms.d.ts",
28
+ "default": "./fesm2022/filip.mazev-blocks-forms.mjs"
29
29
  },
30
30
  "./icons": {
31
31
  "types": "./types/filip.mazev-blocks-icons.d.ts",
@@ -133,6 +133,9 @@ type MSStreamWindow = Window & {
133
133
  type Strict<T, Expected> = T & {
134
134
  [K in keyof T]: K extends keyof Expected ? Expected[K] : never;
135
135
  };
136
+ type ResolvableText = string | {
137
+ key: string;
138
+ };
136
139
 
137
140
  declare class ThemingService implements OnDestroy {
138
141
  private readonly platformId;
@@ -157,11 +160,27 @@ declare class ThemingService implements OnDestroy {
157
160
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemingService>;
158
161
  }
159
162
 
163
+ declare class BxA11yService {
164
+ private readonly document;
165
+ private readonly platformId;
166
+ private readonly osPrefersReducedMotion;
167
+ private readonly manualOverride;
168
+ readonly isReducedMotion: _angular_core.Signal<boolean>;
169
+ constructor();
170
+ setReducedMotion(reduce: boolean | null): void;
171
+ private initMediaMatcher;
172
+ private syncWithDOM;
173
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BxA11yService, never>;
174
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<BxA11yService>;
175
+ }
176
+
160
177
  interface IBxI18nAdapter {
161
178
  translate(key: string, params?: Record<string, unknown>): string;
162
179
  version?: Signal<number>;
163
180
  }
164
181
 
182
+ declare const SCROLL_LOCK_INSTANCE_IDENTIFIER = "scroll_lock_instance_";
183
+
165
184
  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';
166
185
 
167
186
  declare const PALETTE_NAMES: readonly ["orange", "purple", "red", "green", "danger", "success", "information", "neutral"];
@@ -183,8 +202,6 @@ declare const BREAKPOINTS: {
183
202
  readonly '4xl': 2560;
184
203
  };
185
204
 
186
- declare const SCROLL_LOCK_INSTANCE_IDENTIFIER = "scroll_lock_instance_";
187
-
188
205
  type ThemePalette = (typeof PALETTE_NAMES)[number];
189
206
  type ThemeShade = (typeof SHADE_NUMBERS)[number];
190
207
  type ThemeColorToken = `${ThemePalette}-${ThemeShade}`;
@@ -196,6 +213,13 @@ type ThemedColor = Color | {
196
213
 
197
214
  declare const BX_I18N: InjectionToken<IBxI18nAdapter>;
198
215
 
216
+ /**
217
+ * Type guard to check if a ResolvableText is an object with a 'key' property, indicating it's a translation key rather than a plain string.
218
+ */
219
+ declare function isTextWithKey(value: ResolvableText): value is {
220
+ key: string;
221
+ };
222
+
199
223
  /**
200
224
  * Type Guard: Detects if a token is a static palette shade (e.g., 'orange-500')
201
225
  */
@@ -219,5 +243,5 @@ declare function invertPaletteToken(token: Color): Color;
219
243
 
220
244
  declare function uuidv4(): string;
221
245
 
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 };
246
+ export { BREAKPOINTS, BX_I18N, BxA11yService, 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, isTextWithKey, isThemedColor, resolveTokenToCssVar, uuidv4 };
247
+ export type { Color, DeviceOS, DeviceOrientationType, DeviceTheme, IBxI18nAdapter, IDeviceState, IScrollLockConfig, IWindowDimensions, LegacyScreenOrientation, MSStreamWindow, OperaCapableWindow, ResolvableText, SemanticColorToken, Strict, ThemeColorToken, ThemePalette, ThemeShade, ThemedColor };
@@ -4,6 +4,8 @@ type ButtonVariant = 'text' | 'filled' | 'tonal' | 'icon' | 'fab' | 'mini-fab' |
4
4
  type ButtonColor = 'primary' | 'success' | 'danger' | 'info' | 'warn' | 'grayscale';
5
5
 
6
6
  declare class Button {
7
+ private readonly a11y;
8
+ readonly isAnimated: _angular_core.Signal<boolean>;
7
9
  readonly variant: _angular_core.InputSignal<ButtonVariant>;
8
10
  readonly color: _angular_core.InputSignal<ButtonColor>;
9
11
  readonly outlined: _angular_core.InputSignal<boolean>;
@@ -4,7 +4,7 @@ import { ThemedColor } from '@filip.mazev/blocks/core';
4
4
  import * as _filip_mazev_blocks_icons from '@filip.mazev/blocks/icons';
5
5
 
6
6
  declare const lucideNames: readonly ["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", "filter", "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", "map", "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", "route", "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", "section", "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", "slice", "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"];
7
- type LucideName = (typeof lucideNames)[number];
7
+ type LucideName = typeof lucideNames[number];
8
8
 
9
9
  type IconSize = '16' | '20' | '24' | '28' | '32' | '36' | '40' | '44' | '48';
10
10
  type IconStrokeWidth = 0.5 | 0.75 | 1 | 1.25 | 1.5 | 1.75 | 2 | 2.25 | 2.5 | 2.75 | 3;
@@ -1,5 +1,5 @@
1
1
  import * as _filip_mazev_blocks_core from '@filip.mazev/blocks/core';
2
- import { BREAKPOINTS } from '@filip.mazev/blocks/core';
2
+ import { BREAKPOINTS, ResolvableText } from '@filip.mazev/blocks/core';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { Type, ComponentRef, OnInit, OnDestroy, Signal, AfterViewInit, TemplateRef, ElementRef, ViewContainerRef, InputSignal, OutputEmitterRef, QueryList, InjectionToken } from '@angular/core';
5
5
  import { Observable, Subject } from 'rxjs';
@@ -141,6 +141,7 @@ declare class ModalService implements IModalService {
141
141
  private readonly document;
142
142
  private readonly renderer;
143
143
  private readonly globalSettings;
144
+ private readonly a11y;
144
145
  private modals;
145
146
  private modalsSubject;
146
147
  constructor();
@@ -234,11 +235,11 @@ interface IModalStyleConfig {
234
235
 
235
236
  /**
236
237
  * IModalHeaderConfig, the configuration for the modal header
237
- * @param {string} text The text to be shown in the header
238
+ * @param {ResolvableText} text The text to be shown in the header as ResolvableText, this can be a string or an object with a translation key
238
239
  * @param {IconData} icon (optional) An icon to display to the left of the text, will default to undefined
239
240
  */
240
241
  interface IModalHeaderConfig {
241
- text: string;
242
+ text: ResolvableText;
242
243
  icon?: IconData;
243
244
  }
244
245
 
@@ -507,12 +508,14 @@ declare class ModalBackdrop {
507
508
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalBackdrop, "bx-modal-backdrop", never, { "isAnimated": { "alias": "isAnimated"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "click": "click"; }, never, never, true, never>;
508
509
  }
509
510
 
510
- declare class ModalBanner<D = unknown, R = unknown> {
511
+ declare class ModalBanner {
512
+ private readonly i18n;
511
513
  readonly header: _angular_core.InputSignal<IModalHeaderConfig$1 | undefined>;
512
514
  readonly showCloseButton: _angular_core.InputSignal<boolean>;
513
515
  readonly close: _angular_core.OutputEmitterRef<ModalCloseMode | undefined>;
514
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalBanner<any, any>, never>;
515
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalBanner<any, any>, "bx-modal-banner", never, { "header": { "alias": "header"; "required": true; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": true; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
516
+ protected readonly resolvedText: _angular_core.Signal<string | undefined>;
517
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalBanner, never>;
518
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalBanner, "bx-modal-banner", never, { "header": { "alias": "header"; "required": true; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": true; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
516
519
  }
517
520
 
518
521
  declare class ModalGlobalSettingsService {