@shival99/z-ui 1.0.32 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, input, inject, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, makeEnvironmentProviders, Injector, PLATFORM_ID, Injectable } from '@angular/core';
2
+ import { InjectionToken, input, inject, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, makeEnvironmentProviders, Injector, PLATFORM_ID, NgZone, Injectable } from '@angular/core';
3
3
  import { ZThemeService } from '@shival99/z-ui/services';
4
4
  import { zMergeClasses } from '@shival99/z-ui/utils';
5
5
  import { NgxSonnerToaster, toast } from 'ngx-sonner';
6
6
  import { cva } from 'class-variance-authority';
7
7
  import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
8
8
  import { ComponentPortal } from '@angular/cdk/portal';
9
- import { isPlatformBrowser } from '@angular/common';
9
+ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
10
10
 
11
11
  /* eslint-disable @typescript-eslint/no-explicit-any */
12
12
  const Z_TOAST_DATA = new InjectionToken('Z_TOAST_DATA');
@@ -109,9 +109,12 @@ class ZToastService {
109
109
  _overlay = inject(Overlay);
110
110
  _injector = inject(Injector);
111
111
  _platformId = inject(PLATFORM_ID);
112
+ _document = inject(DOCUMENT);
113
+ _ngZone = inject(NgZone);
112
114
  _providedConfig = inject(Z_TOASTER_CONFIG, { optional: true });
113
115
  _overlayRef = null;
114
116
  _toasterAttached = false;
117
+ _mutationObserver = null;
115
118
  create(config) {
116
119
  if (this._toasterAttached) {
117
120
  return;
@@ -120,30 +123,37 @@ class ZToastService {
120
123
  }
121
124
  show(message, options) {
122
125
  this._ensureToasterAttached();
126
+ this._moveToTop();
123
127
  return toast(message, options);
124
128
  }
125
129
  success(message, options) {
126
130
  this._ensureToasterAttached();
131
+ this._moveToTop();
127
132
  return toast.success(message, options);
128
133
  }
129
134
  error(message, options) {
130
135
  this._ensureToasterAttached();
136
+ this._moveToTop();
131
137
  return toast.error(message, options);
132
138
  }
133
139
  warning(message, options) {
134
140
  this._ensureToasterAttached();
141
+ this._moveToTop();
135
142
  return toast.warning(message, options);
136
143
  }
137
144
  info(message, options) {
138
145
  this._ensureToasterAttached();
146
+ this._moveToTop();
139
147
  return toast.info(message, options);
140
148
  }
141
149
  loading(message, options) {
142
150
  this._ensureToasterAttached();
151
+ this._moveToTop();
143
152
  return toast.loading(message, options);
144
153
  }
145
154
  promise(promise, messages) {
146
155
  this._ensureToasterAttached();
156
+ this._moveToTop();
147
157
  return toast.promise(promise, messages);
148
158
  }
149
159
  dismiss(toastId) {
@@ -153,17 +163,65 @@ class ZToastService {
153
163
  toast.dismiss();
154
164
  }
155
165
  destroy() {
166
+ this._disconnectObserver();
156
167
  if (this._overlayRef) {
157
168
  this._overlayRef.dispose();
158
169
  this._overlayRef = null;
159
170
  this._toasterAttached = false;
160
171
  }
161
172
  }
173
+ ngOnDestroy() {
174
+ this.destroy();
175
+ }
162
176
  _ensureToasterAttached() {
163
177
  if (!this._toasterAttached) {
164
178
  this._attachToaster();
165
179
  }
166
180
  }
181
+ _moveToTop() {
182
+ const wrapperElement = this._overlayRef?.overlayElement?.parentElement;
183
+ if (!wrapperElement?.hasAttribute('popover')) {
184
+ return;
185
+ }
186
+ try {
187
+ wrapperElement.hidePopover();
188
+ wrapperElement.showPopover();
189
+ }
190
+ catch {
191
+ console.warn('Popover API not supported on this browser.');
192
+ }
193
+ }
194
+ _setupOverlayObserver() {
195
+ if (!isPlatformBrowser(this._platformId)) {
196
+ return;
197
+ }
198
+ if (this._mutationObserver) {
199
+ return;
200
+ }
201
+ const overlayContainer = this._document.querySelector('.cdk-overlay-container');
202
+ if (!overlayContainer) {
203
+ return;
204
+ }
205
+ this._ngZone.runOutsideAngular(() => {
206
+ this._mutationObserver = new MutationObserver(mutations => {
207
+ const hasNewPopover = mutations.some(mutation => mutation.type === 'childList' &&
208
+ Array.from(mutation.addedNodes).some(node => node instanceof HTMLElement && node.classList.contains('cdk-overlay-popover')));
209
+ if (hasNewPopover) {
210
+ this._moveToTop();
211
+ }
212
+ });
213
+ this._mutationObserver.observe(overlayContainer, {
214
+ childList: true,
215
+ subtree: false,
216
+ });
217
+ });
218
+ }
219
+ _disconnectObserver() {
220
+ if (this._mutationObserver) {
221
+ this._mutationObserver.disconnect();
222
+ this._mutationObserver = null;
223
+ }
224
+ }
167
225
  _attachToaster(config) {
168
226
  if (!isPlatformBrowser(this._platformId)) {
169
227
  return;
@@ -187,6 +245,7 @@ class ZToastService {
187
245
  const portal = new ComponentPortal(ZToastComponent, null, injector);
188
246
  this._overlayRef.attach(portal);
189
247
  this._toasterAttached = true;
248
+ this._setupOverlayObserver();
190
249
  }
191
250
  _createOverlay() {
192
251
  if (!isPlatformBrowser(this._platformId)) {
@@ -197,7 +256,9 @@ class ZToastService {
197
256
  positionStrategy: this._overlay.position().global(),
198
257
  scrollStrategy: this._overlay.scrollStrategies.noop(),
199
258
  });
200
- return this._overlay.create(overlayConfig);
259
+ const overlayRef = this._overlay.create(overlayConfig);
260
+ overlayRef.overlayElement.style.zIndex = '99999';
261
+ return overlayRef;
201
262
  }
202
263
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
203
264
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZToastService, providedIn: 'root' });
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-toast.mjs","sources":["../../../../libs/core-ui/components/z-toast/z-toast.types.ts","../../../../libs/core-ui/components/z-toast/z-toast.variants.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.html","../../../../libs/core-ui/components/z-toast/z-toast.provider.ts","../../../../libs/core-ui/components/z-toast/z-toast.service.ts","../../../../libs/core-ui/components/z-toast/shival99-z-ui-components-z-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core';\nimport type { ExternalToast } from 'ngx-sonner';\n\nexport type ZToastTheme = 'light' | 'dark' | 'system';\nexport type ZToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\nexport type ZToastDir = 'ltr' | 'rtl' | 'auto';\nexport type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nexport const Z_TOAST_DATA = new InjectionToken<any>('Z_TOAST_DATA');\nexport const Z_TOAST_ANIMATION_DURATION = 200;\nexport const Z_TOASTER_CONFIG = new InjectionToken<ZToasterConfig>('Z_TOASTER_CONFIG');\n\nexport interface ZToastOptions extends ExternalToast {\n description?: string;\n duration?: number;\n id?: string | number;\n}\n\nexport interface ZToastPromiseMessages<T> {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n}\n\nexport interface ZToasterConfig {\n zTheme?: ZToastTheme;\n zPosition?: ZToastPosition;\n zRichColors?: boolean;\n zExpand?: boolean;\n zDuration?: number;\n zVisibleToasts?: number;\n zCloseButton?: boolean;\n zDir?: ZToastDir;\n}\n\nexport const Z_TOASTER_DEFAULT_CONFIG: ZToasterConfig = {\n zTheme: 'system',\n zPosition: 'top-right',\n zRichColors: true,\n zExpand: true,\n zDuration: 2500,\n zVisibleToasts: 3,\n zCloseButton: true,\n zDir: 'auto',\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zToastVariants = cva(\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n {\n variants: {\n zVariant: {\n default: 'group-[.toaster]:bg-background group-[.toaster]:text-foreground',\n success:\n 'group-[.toaster]:bg-green-50 group-[.toaster]:text-green-800 group-[.toaster]:border-green-200 dark:group-[.toaster]:bg-green-950 dark:group-[.toaster]:text-green-200 dark:group-[.toaster]:border-green-800',\n error:\n 'group-[.toaster]:bg-red-50 group-[.toaster]:text-red-800 group-[.toaster]:border-red-200 dark:group-[.toaster]:bg-red-950 dark:group-[.toaster]:text-red-200 dark:group-[.toaster]:border-red-800',\n warning:\n 'group-[.toaster]:bg-amber-50 group-[.toaster]:text-amber-800 group-[.toaster]:border-amber-200 dark:group-[.toaster]:bg-amber-950 dark:group-[.toaster]:text-amber-200 dark:group-[.toaster]:border-amber-800',\n info: 'group-[.toaster]:bg-blue-50 group-[.toaster]:text-blue-800 group-[.toaster]:border-blue-200 dark:group-[.toaster]:bg-blue-950 dark:group-[.toaster]:text-blue-200 dark:group-[.toaster]:border-blue-800',\n },\n },\n defaultVariants: {\n zVariant: 'default',\n },\n }\n);\n\nexport type ZToastVariants = VariantProps<typeof zToastVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ZThemeService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxSonnerToaster } from 'ngx-sonner';\nimport {\n Z_TOASTER_CONFIG,\n Z_TOASTER_DEFAULT_CONFIG,\n type ZToasterConfig,\n type ZToastDir,\n type ZToastOptions,\n type ZToastPosition,\n type ZToastTheme,\n} from './z-toast.types';\nimport { zToastVariants, type ZToastVariants } from './z-toast.variants';\n\n@Component({\n selector: 'z-toast, z-toaster',\n imports: [NgxSonnerToaster],\n standalone: true,\n templateUrl: './z-toast.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zToast',\n})\nexport class ZToastComponent {\n public readonly class = input<ClassValue>('');\n public readonly zVariant = input<ZToastVariants['zVariant']>('default');\n public readonly zTheme = input<ZToastTheme>();\n public readonly zPosition = input<ZToastPosition>();\n public readonly zRichColors = input<boolean>();\n public readonly zExpand = input<boolean>();\n public readonly zDuration = input<number>();\n public readonly zVisibleToasts = input<number>();\n public readonly zCloseButton = input<boolean>();\n public readonly zToastOptions = input<ZToastOptions>({});\n public readonly zDir = input<ZToastDir>();\n\n private readonly _themeService = inject(ZThemeService);\n private readonly _config: ZToasterConfig = inject(Z_TOASTER_CONFIG, { optional: true }) ?? Z_TOASTER_DEFAULT_CONFIG;\n\n protected readonly effectiveTheme = computed(() => this.zTheme() ?? this._config.zTheme ?? 'system');\n protected readonly effectivePosition = computed(() => this.zPosition() ?? this._config.zPosition ?? 'bottom-right');\n protected readonly effectiveRichColors = computed(() => this.zRichColors() ?? this._config.zRichColors ?? true);\n protected readonly effectiveExpand = computed(() => this.zExpand() ?? this._config.zExpand ?? false);\n protected readonly effectiveDuration = computed(() => this.zDuration() ?? this._config.zDuration ?? 4000);\n protected readonly effectiveVisibleToasts = computed(() => this.zVisibleToasts() ?? this._config.zVisibleToasts ?? 3);\n\n protected readonly effectiveCloseButton = computed(() => this.zCloseButton() ?? this._config.zCloseButton ?? false);\n protected readonly effectiveDir = computed(() => this.zDir() ?? this._config.zDir ?? 'auto');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses('toaster group', zToastVariants({ zVariant: this.zVariant() }), this.class())\n );\n\n protected readonly detectTheme = computed(() => {\n const theme = this.effectiveTheme();\n if (theme !== 'system') {\n return theme;\n }\n\n return this._themeService.isDark() ? 'dark' : 'light';\n });\n}\n","<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"effectivePosition()\"\n [richColors]=\"effectiveRichColors()\"\n [expand]=\"effectiveExpand()\"\n [duration]=\"effectiveDuration()\"\n [visibleToasts]=\"effectiveVisibleToasts()\"\n [closeButton]=\"effectiveCloseButton()\"\n [toastOptions]=\"zToastOptions()\"\n [dir]=\"effectiveDir()\" />\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { Z_TOASTER_CONFIG, Z_TOASTER_DEFAULT_CONFIG, type ZToasterConfig } from './z-toast.types';\n\n/**\n * Provides global toast configuration options\n * Use this in app.config.ts: providers: [provideZToast({ zPosition: 'top-right' })]\n *\n * @param config - Partial configuration to override default options\n * @returns EnvironmentProviders for the toast service\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZToast({\n * zPosition: 'top-right',\n * zDuration: 5000,\n * zCloseButton: true,\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZToast(config?: Partial<ZToasterConfig>): EnvironmentProviders {\n const mergedConfig: ZToasterConfig = {\n ...Z_TOASTER_DEFAULT_CONFIG,\n ...config,\n };\n\n return makeEnvironmentProviders([{ provide: Z_TOASTER_CONFIG, useValue: mergedConfig }]);\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { toast } from 'ngx-sonner';\nimport { ZToastComponent } from './z-toast.component';\nimport {\n Z_TOASTER_CONFIG,\n Z_TOASTER_DEFAULT_CONFIG,\n type ZToasterConfig,\n type ZToastOptions,\n type ZToastPromiseMessages,\n} from './z-toast.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ZToastService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _providedConfig = inject(Z_TOASTER_CONFIG, { optional: true });\n\n private _overlayRef: OverlayRef | null = null;\n private _toasterAttached = false;\n\n public create(config?: ZToasterConfig): void {\n if (this._toasterAttached) {\n return;\n }\n\n this._attachToaster(config);\n }\n\n public show(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast(message, options);\n }\n\n public success(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.success(message, options);\n }\n\n public error(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.error(message, options);\n }\n\n public warning(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.warning(message, options);\n }\n\n public info(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.info(message, options);\n }\n\n public loading(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n return toast.loading(message, options);\n }\n\n public promise<T>(promise: Promise<T>, messages: ZToastPromiseMessages<T>): string | number | undefined {\n this._ensureToasterAttached();\n return toast.promise(promise, messages);\n }\n\n public dismiss(toastId?: string | number): void {\n toast.dismiss(toastId);\n }\n\n public dismissAll(): void {\n toast.dismiss();\n }\n\n public destroy(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._toasterAttached = false;\n }\n }\n\n private _ensureToasterAttached(): void {\n if (!this._toasterAttached) {\n this._attachToaster();\n }\n }\n\n private _attachToaster(config?: ZToasterConfig): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n if (this._toasterAttached) {\n return;\n }\n\n this._overlayRef = this._createOverlay();\n if (!this._overlayRef) {\n return;\n }\n\n const effectiveConfig: ZToasterConfig = {\n ...Z_TOASTER_DEFAULT_CONFIG,\n ...this._providedConfig,\n ...config,\n };\n\n const injector = Injector.create({\n parent: this._injector,\n providers: [{ provide: Z_TOASTER_CONFIG, useValue: effectiveConfig }],\n });\n\n const portal = new ComponentPortal(ZToastComponent, null, injector);\n this._overlayRef.attach(portal);\n this._toasterAttached = true;\n }\n\n private _createOverlay(): OverlayRef | null {\n if (!isPlatformBrowser(this._platformId)) {\n return null;\n }\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n });\n\n return this._overlay.create(overlayConfig);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shival99-z-ui-components-z-toast.mjs","sources":["../../../../libs/core-ui/components/z-toast/z-toast.types.ts","../../../../libs/core-ui/components/z-toast/z-toast.variants.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.ts","../../../../libs/core-ui/components/z-toast/z-toast.component.html","../../../../libs/core-ui/components/z-toast/z-toast.provider.ts","../../../../libs/core-ui/components/z-toast/z-toast.service.ts","../../../../libs/core-ui/components/z-toast/shival99-z-ui-components-z-toast.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core';\nimport type { ExternalToast } from 'ngx-sonner';\n\nexport type ZToastTheme = 'light' | 'dark' | 'system';\nexport type ZToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';\nexport type ZToastDir = 'ltr' | 'rtl' | 'auto';\nexport type ZToastType = 'default' | 'success' | 'error' | 'warning' | 'info' | 'loading';\n\nexport const Z_TOAST_DATA = new InjectionToken<any>('Z_TOAST_DATA');\nexport const Z_TOAST_ANIMATION_DURATION = 200;\nexport const Z_TOASTER_CONFIG = new InjectionToken<ZToasterConfig>('Z_TOASTER_CONFIG');\n\nexport interface ZToastOptions extends ExternalToast {\n description?: string;\n duration?: number;\n id?: string | number;\n}\n\nexport interface ZToastPromiseMessages<T> {\n loading: string;\n success: string | ((data: T) => string);\n error: string | ((error: unknown) => string);\n}\n\nexport interface ZToasterConfig {\n zTheme?: ZToastTheme;\n zPosition?: ZToastPosition;\n zRichColors?: boolean;\n zExpand?: boolean;\n zDuration?: number;\n zVisibleToasts?: number;\n zCloseButton?: boolean;\n zDir?: ZToastDir;\n}\n\nexport const Z_TOASTER_DEFAULT_CONFIG: ZToasterConfig = {\n zTheme: 'system',\n zPosition: 'top-right',\n zRichColors: true,\n zExpand: true,\n zDuration: 2500,\n zVisibleToasts: 3,\n zCloseButton: true,\n zDir: 'auto',\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zToastVariants = cva(\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n {\n variants: {\n zVariant: {\n default: 'group-[.toaster]:bg-background group-[.toaster]:text-foreground',\n success:\n 'group-[.toaster]:bg-green-50 group-[.toaster]:text-green-800 group-[.toaster]:border-green-200 dark:group-[.toaster]:bg-green-950 dark:group-[.toaster]:text-green-200 dark:group-[.toaster]:border-green-800',\n error:\n 'group-[.toaster]:bg-red-50 group-[.toaster]:text-red-800 group-[.toaster]:border-red-200 dark:group-[.toaster]:bg-red-950 dark:group-[.toaster]:text-red-200 dark:group-[.toaster]:border-red-800',\n warning:\n 'group-[.toaster]:bg-amber-50 group-[.toaster]:text-amber-800 group-[.toaster]:border-amber-200 dark:group-[.toaster]:bg-amber-950 dark:group-[.toaster]:text-amber-200 dark:group-[.toaster]:border-amber-800',\n info: 'group-[.toaster]:bg-blue-50 group-[.toaster]:text-blue-800 group-[.toaster]:border-blue-200 dark:group-[.toaster]:bg-blue-950 dark:group-[.toaster]:text-blue-200 dark:group-[.toaster]:border-blue-800',\n },\n },\n defaultVariants: {\n zVariant: 'default',\n },\n }\n);\n\nexport type ZToastVariants = VariantProps<typeof zToastVariants>;\n","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ZThemeService } from '@shival99/z-ui/services';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { NgxSonnerToaster } from 'ngx-sonner';\nimport {\n Z_TOASTER_CONFIG,\n Z_TOASTER_DEFAULT_CONFIG,\n type ZToasterConfig,\n type ZToastDir,\n type ZToastOptions,\n type ZToastPosition,\n type ZToastTheme,\n} from './z-toast.types';\nimport { zToastVariants, type ZToastVariants } from './z-toast.variants';\n\n@Component({\n selector: 'z-toast, z-toaster',\n imports: [NgxSonnerToaster],\n standalone: true,\n templateUrl: './z-toast.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'zToast',\n})\nexport class ZToastComponent {\n public readonly class = input<ClassValue>('');\n public readonly zVariant = input<ZToastVariants['zVariant']>('default');\n public readonly zTheme = input<ZToastTheme>();\n public readonly zPosition = input<ZToastPosition>();\n public readonly zRichColors = input<boolean>();\n public readonly zExpand = input<boolean>();\n public readonly zDuration = input<number>();\n public readonly zVisibleToasts = input<number>();\n public readonly zCloseButton = input<boolean>();\n public readonly zToastOptions = input<ZToastOptions>({});\n public readonly zDir = input<ZToastDir>();\n\n private readonly _themeService = inject(ZThemeService);\n private readonly _config: ZToasterConfig = inject(Z_TOASTER_CONFIG, { optional: true }) ?? Z_TOASTER_DEFAULT_CONFIG;\n\n protected readonly effectiveTheme = computed(() => this.zTheme() ?? this._config.zTheme ?? 'system');\n protected readonly effectivePosition = computed(() => this.zPosition() ?? this._config.zPosition ?? 'bottom-right');\n protected readonly effectiveRichColors = computed(() => this.zRichColors() ?? this._config.zRichColors ?? true);\n protected readonly effectiveExpand = computed(() => this.zExpand() ?? this._config.zExpand ?? false);\n protected readonly effectiveDuration = computed(() => this.zDuration() ?? this._config.zDuration ?? 4000);\n protected readonly effectiveVisibleToasts = computed(() => this.zVisibleToasts() ?? this._config.zVisibleToasts ?? 3);\n\n protected readonly effectiveCloseButton = computed(() => this.zCloseButton() ?? this._config.zCloseButton ?? false);\n protected readonly effectiveDir = computed(() => this.zDir() ?? this._config.zDir ?? 'auto');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses('toaster group', zToastVariants({ zVariant: this.zVariant() }), this.class())\n );\n\n protected readonly detectTheme = computed(() => {\n const theme = this.effectiveTheme();\n if (theme !== 'system') {\n return theme;\n }\n\n return this._themeService.isDark() ? 'dark' : 'light';\n });\n}\n","<ngx-sonner-toaster\n [theme]=\"detectTheme()\"\n [class]=\"zClasses()\"\n [position]=\"effectivePosition()\"\n [richColors]=\"effectiveRichColors()\"\n [expand]=\"effectiveExpand()\"\n [duration]=\"effectiveDuration()\"\n [visibleToasts]=\"effectiveVisibleToasts()\"\n [closeButton]=\"effectiveCloseButton()\"\n [toastOptions]=\"zToastOptions()\"\n [dir]=\"effectiveDir()\" />\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { Z_TOASTER_CONFIG, Z_TOASTER_DEFAULT_CONFIG, type ZToasterConfig } from './z-toast.types';\n\n/**\n * Provides global toast configuration options\n * Use this in app.config.ts: providers: [provideZToast({ zPosition: 'top-right' })]\n *\n * @param config - Partial configuration to override default options\n * @returns EnvironmentProviders for the toast service\n *\n * @example\n * ```typescript\n * // In app.config.ts\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideZToast({\n * zPosition: 'top-right',\n * zDuration: 5000,\n * zCloseButton: true,\n * }),\n * ],\n * };\n * ```\n */\nexport function provideZToast(config?: Partial<ZToasterConfig>): EnvironmentProviders {\n const mergedConfig: ZToasterConfig = {\n ...Z_TOASTER_DEFAULT_CONFIG,\n ...config,\n };\n\n return makeEnvironmentProviders([{ provide: Z_TOASTER_CONFIG, useValue: mergedConfig }]);\n}\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, Injector, NgZone, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { toast } from 'ngx-sonner';\nimport { ZToastComponent } from './z-toast.component';\nimport {\n Z_TOASTER_CONFIG,\n Z_TOASTER_DEFAULT_CONFIG,\n type ZToasterConfig,\n type ZToastOptions,\n type ZToastPromiseMessages,\n} from './z-toast.types';\n\n@Injectable({ providedIn: 'root' })\nexport class ZToastService implements OnDestroy {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _platformId = inject(PLATFORM_ID);\n private readonly _document = inject(DOCUMENT);\n private readonly _ngZone = inject(NgZone);\n private readonly _providedConfig = inject(Z_TOASTER_CONFIG, { optional: true });\n\n private _overlayRef: OverlayRef | null = null;\n private _toasterAttached = false;\n private _mutationObserver: MutationObserver | null = null;\n\n public create(config?: ZToasterConfig): void {\n if (this._toasterAttached) {\n return;\n }\n\n this._attachToaster(config);\n }\n\n public show(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast(message, options);\n }\n\n public success(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast.success(message, options);\n }\n\n public error(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast.error(message, options);\n }\n\n public warning(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast.warning(message, options);\n }\n\n public info(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast.info(message, options);\n }\n\n public loading(message: string, options?: ZToastOptions): string | number {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast.loading(message, options);\n }\n\n public promise<T>(promise: Promise<T>, messages: ZToastPromiseMessages<T>): string | number | undefined {\n this._ensureToasterAttached();\n this._moveToTop();\n return toast.promise(promise, messages);\n }\n\n public dismiss(toastId?: string | number): void {\n toast.dismiss(toastId);\n }\n\n public dismissAll(): void {\n toast.dismiss();\n }\n\n public destroy(): void {\n this._disconnectObserver();\n\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n this._toasterAttached = false;\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n private _ensureToasterAttached(): void {\n if (!this._toasterAttached) {\n this._attachToaster();\n }\n }\n\n private _moveToTop(): void {\n const wrapperElement = this._overlayRef?.overlayElement?.parentElement as HTMLElement | null;\n if (!wrapperElement?.hasAttribute('popover')) {\n return;\n }\n\n try {\n wrapperElement.hidePopover();\n wrapperElement.showPopover();\n } catch {\n console.warn('Popover API not supported on this browser.');\n }\n }\n\n private _setupOverlayObserver(): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n if (this._mutationObserver) {\n return;\n }\n\n const overlayContainer = this._document.querySelector('.cdk-overlay-container');\n if (!overlayContainer) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n this._mutationObserver = new MutationObserver(mutations => {\n const hasNewPopover = mutations.some(\n mutation =>\n mutation.type === 'childList' &&\n Array.from(mutation.addedNodes).some(\n node => node instanceof HTMLElement && node.classList.contains('cdk-overlay-popover')\n )\n );\n\n if (hasNewPopover) {\n this._moveToTop();\n }\n });\n\n this._mutationObserver.observe(overlayContainer, {\n childList: true,\n subtree: false,\n });\n });\n }\n\n private _disconnectObserver(): void {\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n this._mutationObserver = null;\n }\n }\n\n private _attachToaster(config?: ZToasterConfig): void {\n if (!isPlatformBrowser(this._platformId)) {\n return;\n }\n\n if (this._toasterAttached) {\n return;\n }\n\n this._overlayRef = this._createOverlay();\n if (!this._overlayRef) {\n return;\n }\n\n const effectiveConfig: ZToasterConfig = {\n ...Z_TOASTER_DEFAULT_CONFIG,\n ...this._providedConfig,\n ...config,\n };\n\n const injector = Injector.create({\n parent: this._injector,\n providers: [{ provide: Z_TOASTER_CONFIG, useValue: effectiveConfig }],\n });\n\n const portal = new ComponentPortal(ZToastComponent, null, injector);\n this._overlayRef.attach(portal);\n this._toasterAttached = true;\n\n this._setupOverlayObserver();\n }\n\n private _createOverlay(): OverlayRef | null {\n if (!isPlatformBrowser(this._platformId)) {\n return null;\n }\n\n const overlayConfig = new OverlayConfig({\n hasBackdrop: false,\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.noop(),\n });\n\n const overlayRef = this._overlay.create(overlayConfig);\n overlayRef.overlayElement.style.zIndex = '99999';\n\n return overlayRef;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAAA;MASa,YAAY,GAAG,IAAI,cAAc,CAAM,cAAc;AAC3D,MAAM,0BAA0B,GAAG,GAAG;MAChC,gBAAgB,GAAG,IAAI,cAAc,CAAiB,kBAAkB;AAyB9E,MAAM,wBAAwB,GAAmB;AACtD,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,WAAW;AACtB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,IAAI,EAAE,MAAM;;;AC1CP,MAAM,cAAc,GAAG,GAAG,CAC/B,uIAAuI,EACvI;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,QAAQ,EAAE;AACR,YAAA,OAAO,EAAE,iEAAiE;AAC1E,YAAA,OAAO,EACL,+MAA+M;AACjN,YAAA,KAAK,EACH,mMAAmM;AACrM,YAAA,OAAO,EACL,+MAA+M;AACjN,YAAA,IAAI,EAAE,yMAAyM;AAChN,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,QAAQ,EAAE,SAAS;AACpB,KAAA;AACF,CAAA;;MCKU,eAAe,CAAA;AACV,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;AAC7B,IAAA,QAAQ,GAAG,KAAK,CAA6B,SAAS,oDAAC;IACvD,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAe;IAC7B,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkB;IACnC,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;IAC9B,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;IAC1B,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IAC3B,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;IAChC,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;AAC/B,IAAA,aAAa,GAAG,KAAK,CAAgB,EAAE,yDAAC;IACxC,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAExB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,OAAO,GAAmB,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,wBAAwB;AAEhG,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,0DAAC;AACjF,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,cAAc,6DAAC;AAChG,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,+DAAC;AAC5F,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,2DAAC;AACjF,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,6DAAC;AACtF,IAAA,sBAAsB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,kEAAC;AAElG,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,KAAK,gEAAC;AAChG,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,wDAAC;AAEzE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MACrC,aAAa,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC5F;AAEkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;AACnC,QAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AACtB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO;AACvD,IAAA,CAAC,uDAAC;uGArCS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzB5B,uYAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDOY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAOf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB,CAAC,gBAAgB,CAAC,cACf,IAAI,EAAA,eAAA,EAEC,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,YAC3B,QAAQ,EAAA,QAAA,EAAA,uYAAA,EAAA;;;AEpBpB;;;;;;;;;;;;;;;;;;;;AAoBG;AACG,SAAU,aAAa,CAAC,MAAgC,EAAA;AAC5D,IAAA,MAAM,YAAY,GAAmB;AACnC,QAAA,GAAG,wBAAwB;AAC3B,QAAA,GAAG,MAAM;KACV;AAED,IAAA,OAAO,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1F;;MChBa,aAAa,CAAA;AACP,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,eAAe,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEvE,WAAW,GAAsB,IAAI;IACrC,gBAAgB,GAAG,KAAK;IACxB,iBAAiB,GAA4B,IAAI;AAElD,IAAA,MAAM,CAAC,MAAuB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IAC7B;IAEO,IAAI,CAAC,OAAe,EAAE,OAAuB,EAAA;QAClD,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,OAAO,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAChC;IAEO,OAAO,CAAC,OAAe,EAAE,OAAuB,EAAA;QACrD,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC;IAEO,KAAK,CAAC,OAAe,EAAE,OAAuB,EAAA;QACnD,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IACtC;IAEO,OAAO,CAAC,OAAe,EAAE,OAAuB,EAAA;QACrD,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC;IAEO,IAAI,CAAC,OAAe,EAAE,OAAuB,EAAA;QAClD,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IACrC;IAEO,OAAO,CAAC,OAAe,EAAE,OAAuB,EAAA;QACrD,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC;IAEO,OAAO,CAAI,OAAmB,EAAE,QAAkC,EAAA;QACvE,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,UAAU,EAAE;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;IACzC;AAEO,IAAA,OAAO,CAAC,OAAyB,EAAA;AACtC,QAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB;IAEO,UAAU,GAAA;QACf,KAAK,CAAC,OAAO,EAAE;IACjB;IAEO,OAAO,GAAA;QACZ,IAAI,CAAC,mBAAmB,EAAE;AAE1B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QAC/B;IACF;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,OAAO,EAAE;IAChB;IAEQ,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;IAEQ,UAAU,GAAA;QAChB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,aAAmC;QAC5F,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;YAC5C;QACF;AAEA,QAAA,IAAI;YACF,cAAc,CAAC,WAAW,EAAE;YAC5B,cAAc,CAAC,WAAW,EAAE;QAC9B;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;QAC5D;IACF;IAEQ,qBAAqB,GAAA;QAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B;QACF;QAEA,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,wBAAwB,CAAC;QAC/E,IAAI,CAAC,gBAAgB,EAAE;YACrB;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,SAAS,IAAG;AACxD,gBAAA,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAClC,QAAQ,IACN,QAAQ,CAAC,IAAI,KAAK,WAAW;AAC7B,oBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAClC,IAAI,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACtF,CACJ;gBAED,IAAI,aAAa,EAAE;oBACjB,IAAI,CAAC,UAAU,EAAE;gBACnB;AACF,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE;AAC/C,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,OAAO,EAAE,KAAK;AACf,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEQ,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AACnC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC/B;IACF;AAEQ,IAAA,cAAc,CAAC,MAAuB,EAAA;QAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACxC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB;QACF;AAEA,QAAA,MAAM,eAAe,GAAmB;AACtC,YAAA,GAAG,wBAAwB;YAC3B,GAAG,IAAI,CAAC,eAAe;AACvB,YAAA,GAAG,MAAM;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;AACtE,SAAA,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,eAAe,EAAE,IAAI,EAAE,QAAQ,CAAC;AACnE,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAE5B,IAAI,CAAC,qBAAqB,EAAE;IAC9B;IAEQ,cAAc,GAAA;QACpB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACxC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;AACtC,YAAA,WAAW,EAAE,KAAK;YAClB,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YACnD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACtD,SAAA,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;QACtD,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO;AAEhD,QAAA,OAAO,UAAU;IACnB;uGAlMW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACdlC;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shival99/z-ui",
3
- "version": "1.0.32",
3
+ "version": "1.1.0",
4
4
  "description": "Z-UI: Modern Angular UI Component Library - A comprehensive, high-performance design system built with Angular 20+, featuring 40+ customizable components with dark mode, accessibility, and enterprise-ready features.",
5
5
  "keywords": [
6
6
  "angular",
@@ -178,11 +178,11 @@ declare class ZInputComponent implements OnInit, ControlValueAccessor {
178
178
 
179
179
  declare const zInputVariants: (props?: ({
180
180
  zSize?: "sm" | "default" | "lg" | null | undefined;
181
- zStatus?: "default" | "error" | "disabled" | "readonly" | null | undefined;
181
+ zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
182
182
  } & class_variance_authority_types.ClassProp) | undefined) => string;
183
183
  type ZInputVariants = VariantProps<typeof zInputVariants>;
184
184
  declare const zTextareaVariants: (props?: ({
185
- zStatus?: "default" | "error" | "disabled" | "readonly" | null | undefined;
185
+ zStatus?: "default" | "disabled" | "readonly" | "error" | null | undefined;
186
186
  } & class_variance_authority_types.ClassProp) | undefined) => string;
187
187
  type ZTextareaVariants = VariantProps<typeof zTextareaVariants>;
188
188
 
@@ -104,6 +104,7 @@ declare class ZSelectComponent<T = unknown> implements OnInit, ControlValueAcces
104
104
  readonly zVirtualScroll: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
105
105
  readonly zShowAction: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
106
106
  readonly zOptions: _angular_core.InputSignal<ZSelectOption<T>[]>;
107
+ readonly zTranslateLabels: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
107
108
  readonly zKey: _angular_core.InputSignal<string>;
108
109
  readonly zSearchServer: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
109
110
  readonly zLoadingMore: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
@@ -168,6 +169,7 @@ declare class ZSelectComponent<T = unknown> implements OnInit, ControlValueAcces
168
169
  protected readonly effectiveSelectAllText: _angular_core.Signal<string>;
169
170
  protected readonly effectiveClearAllText: _angular_core.Signal<string>;
170
171
  protected readonly effectiveRequiredErrorText: _angular_core.Signal<string>;
172
+ protected readonly translatedOptions: _angular_core.Signal<ZSelectOption<T>[]>;
171
173
  protected readonly isMultipleMode: _angular_core.Signal<boolean>;
172
174
  protected readonly isTagsMode: _angular_core.Signal<boolean>;
173
175
  protected readonly effectiveSelectedTemplate: _angular_core.Signal<TemplateRef<any> | null>;
@@ -231,7 +233,7 @@ declare class ZSelectComponent<T = unknown> implements OnInit, ControlValueAcces
231
233
  private _cancelAsyncValidation;
232
234
  private _triggerAsyncValidation;
233
235
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZSelectComponent<any>, never>;
234
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZSelectComponent<any>, "z-select", ["zSelect"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zLabel": { "alias": "zLabel"; "required": false; "isSignal": true; }; "zLabelClass": { "alias": "zLabelClass"; "required": false; "isSignal": true; }; "zPlaceholder": { "alias": "zPlaceholder"; "required": false; "isSignal": true; }; "zRequired": { "alias": "zRequired"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; "zReadonly": { "alias": "zReadonly"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; "zPrefix": { "alias": "zPrefix"; "required": false; "isSignal": true; }; "zAllowClear": { "alias": "zAllowClear"; "required": false; "isSignal": true; }; "zWrap": { "alias": "zWrap"; "required": false; "isSignal": true; }; "zShowSearch": { "alias": "zShowSearch"; "required": false; "isSignal": true; }; "zPlaceholderSearch": { "alias": "zPlaceholderSearch"; "required": false; "isSignal": true; }; "zDebounce": { "alias": "zDebounce"; "required": false; "isSignal": true; }; "zNotFoundText": { "alias": "zNotFoundText"; "required": false; "isSignal": true; }; "zEmptyText": { "alias": "zEmptyText"; "required": false; "isSignal": true; }; "zEmptyIcon": { "alias": "zEmptyIcon"; "required": false; "isSignal": true; }; "zMaxTagCount": { "alias": "zMaxTagCount"; "required": false; "isSignal": true; }; "zDropdownMaxHeight": { "alias": "zDropdownMaxHeight"; "required": false; "isSignal": true; }; "zOptionHeight": { "alias": "zOptionHeight"; "required": false; "isSignal": true; }; "zVirtualScroll": { "alias": "zVirtualScroll"; "required": false; "isSignal": true; }; "zShowAction": { "alias": "zShowAction"; "required": false; "isSignal": true; }; "zOptions": { "alias": "zOptions"; "required": false; "isSignal": true; }; "zKey": { "alias": "zKey"; "required": false; "isSignal": true; }; "zSearchServer": { "alias": "zSearchServer"; "required": false; "isSignal": true; }; "zLoadingMore": { "alias": "zLoadingMore"; "required": false; "isSignal": true; }; "zEnableLoadMore": { "alias": "zEnableLoadMore"; "required": false; "isSignal": true; }; "zScrollDistance": { "alias": "zScrollDistance"; "required": false; "isSignal": true; }; "zSelectedTemplate": { "alias": "zSelectedTemplate"; "required": false; "isSignal": true; }; "zOptionTemplate": { "alias": "zOptionTemplate"; "required": false; "isSignal": true; }; "zActionTemplate": { "alias": "zActionTemplate"; "required": false; "isSignal": true; }; "zAsyncValidators": { "alias": "zAsyncValidators"; "required": false; "isSignal": true; }; "zAsyncDebounce": { "alias": "zAsyncDebounce"; "required": false; "isSignal": true; }; "zAsyncValidateOn": { "alias": "zAsyncValidateOn"; "required": false; "isSignal": true; }; "zValidators": { "alias": "zValidators"; "required": false; "isSignal": true; }; }, { "zOnSearch": "zOnSearch"; "zOnLoadMore": "zOnLoadMore"; "zControl": "zControl"; }, ["customSelectedDirective", "customOptionDirective"], never, true, never>;
236
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZSelectComponent<any>, "z-select", ["zSelect"], { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zLabel": { "alias": "zLabel"; "required": false; "isSignal": true; }; "zLabelClass": { "alias": "zLabelClass"; "required": false; "isSignal": true; }; "zPlaceholder": { "alias": "zPlaceholder"; "required": false; "isSignal": true; }; "zRequired": { "alias": "zRequired"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; "zReadonly": { "alias": "zReadonly"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; "zPrefix": { "alias": "zPrefix"; "required": false; "isSignal": true; }; "zAllowClear": { "alias": "zAllowClear"; "required": false; "isSignal": true; }; "zWrap": { "alias": "zWrap"; "required": false; "isSignal": true; }; "zShowSearch": { "alias": "zShowSearch"; "required": false; "isSignal": true; }; "zPlaceholderSearch": { "alias": "zPlaceholderSearch"; "required": false; "isSignal": true; }; "zDebounce": { "alias": "zDebounce"; "required": false; "isSignal": true; }; "zNotFoundText": { "alias": "zNotFoundText"; "required": false; "isSignal": true; }; "zEmptyText": { "alias": "zEmptyText"; "required": false; "isSignal": true; }; "zEmptyIcon": { "alias": "zEmptyIcon"; "required": false; "isSignal": true; }; "zMaxTagCount": { "alias": "zMaxTagCount"; "required": false; "isSignal": true; }; "zDropdownMaxHeight": { "alias": "zDropdownMaxHeight"; "required": false; "isSignal": true; }; "zOptionHeight": { "alias": "zOptionHeight"; "required": false; "isSignal": true; }; "zVirtualScroll": { "alias": "zVirtualScroll"; "required": false; "isSignal": true; }; "zShowAction": { "alias": "zShowAction"; "required": false; "isSignal": true; }; "zOptions": { "alias": "zOptions"; "required": false; "isSignal": true; }; "zTranslateLabels": { "alias": "zTranslateLabels"; "required": false; "isSignal": true; }; "zKey": { "alias": "zKey"; "required": false; "isSignal": true; }; "zSearchServer": { "alias": "zSearchServer"; "required": false; "isSignal": true; }; "zLoadingMore": { "alias": "zLoadingMore"; "required": false; "isSignal": true; }; "zEnableLoadMore": { "alias": "zEnableLoadMore"; "required": false; "isSignal": true; }; "zScrollDistance": { "alias": "zScrollDistance"; "required": false; "isSignal": true; }; "zSelectedTemplate": { "alias": "zSelectedTemplate"; "required": false; "isSignal": true; }; "zOptionTemplate": { "alias": "zOptionTemplate"; "required": false; "isSignal": true; }; "zActionTemplate": { "alias": "zActionTemplate"; "required": false; "isSignal": true; }; "zAsyncValidators": { "alias": "zAsyncValidators"; "required": false; "isSignal": true; }; "zAsyncDebounce": { "alias": "zAsyncDebounce"; "required": false; "isSignal": true; }; "zAsyncValidateOn": { "alias": "zAsyncValidateOn"; "required": false; "isSignal": true; }; "zValidators": { "alias": "zValidators"; "required": false; "isSignal": true; }; }, { "zOnSearch": "zOnSearch"; "zOnLoadMore": "zOnLoadMore"; "zControl": "zControl"; }, ["customSelectedDirective", "customOptionDirective"], never, true, never>;
235
237
  }
236
238
 
237
239
  declare class ZIsSelectedPipe implements PipeTransform {
@@ -254,7 +256,7 @@ declare class ZTagClassesPipe implements PipeTransform {
254
256
 
255
257
  declare const zSelectVariants: (props?: ({
256
258
  zSize?: "sm" | "default" | "lg" | null | undefined;
257
- zStatus?: "default" | "disabled" | "readonly" | "open" | "error" | null | undefined;
259
+ zStatus?: "default" | "open" | "error" | "disabled" | "readonly" | null | undefined;
258
260
  } & class_variance_authority_types.ClassProp) | undefined) => string;
259
261
  declare const zSelectTagVariants: (props?: ({
260
262
  zSize?: "sm" | "default" | "lg" | null | undefined;
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders } from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, OnDestroy } from '@angular/core';
3
3
  import { ClassValue } from 'clsx';
4
4
  import { ExternalToast } from 'ngx-sonner';
5
5
  import * as class_variance_authority_types from 'class-variance-authority/types';
@@ -84,13 +84,16 @@ declare class ZToastComponent {
84
84
  */
85
85
  declare function provideZToast(config?: Partial<ZToasterConfig>): EnvironmentProviders;
86
86
 
87
- declare class ZToastService {
87
+ declare class ZToastService implements OnDestroy {
88
88
  private readonly _overlay;
89
89
  private readonly _injector;
90
90
  private readonly _platformId;
91
+ private readonly _document;
92
+ private readonly _ngZone;
91
93
  private readonly _providedConfig;
92
94
  private _overlayRef;
93
95
  private _toasterAttached;
96
+ private _mutationObserver;
94
97
  create(config?: ZToasterConfig): void;
95
98
  show(message: string, options?: ZToastOptions): string | number;
96
99
  success(message: string, options?: ZToastOptions): string | number;
@@ -102,7 +105,11 @@ declare class ZToastService {
102
105
  dismiss(toastId?: string | number): void;
103
106
  dismissAll(): void;
104
107
  destroy(): void;
108
+ ngOnDestroy(): void;
105
109
  private _ensureToasterAttached;
110
+ private _moveToTop;
111
+ private _setupOverlayObserver;
112
+ private _disconnectObserver;
106
113
  private _attachToaster;
107
114
  private _createOverlay;
108
115
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZToastService, never>;