@acorex/components 22.4.31 → 22.4.33

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.
Files changed (46) hide show
  1. package/fesm2022/acorex-components-autocomplete.mjs +1 -1
  2. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  3. package/fesm2022/acorex-components-calendar.mjs +1 -1
  4. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  5. package/fesm2022/acorex-components-color-box.mjs +1 -1
  6. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  7. package/fesm2022/acorex-components-color-palette.mjs +1 -1
  8. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  9. package/fesm2022/acorex-components-datetime-box.mjs +1 -1
  10. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  11. package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
  12. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  13. package/fesm2022/acorex-components-dropdown.mjs +13 -3
  14. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  15. package/fesm2022/acorex-components-lookup.mjs +95 -3
  16. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  17. package/fesm2022/acorex-components-notification.mjs +237 -28
  18. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  19. package/fesm2022/acorex-components-otp.mjs +175 -43
  20. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  21. package/fesm2022/acorex-components-paint.mjs +92 -11
  22. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  23. package/fesm2022/acorex-components-phone-box.mjs +14 -2
  24. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  25. package/fesm2022/acorex-components-picker.mjs +214 -20
  26. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  27. package/fesm2022/acorex-components-rest-api-generator.mjs +1 -1
  28. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  29. package/fesm2022/acorex-components-rrule.mjs +1 -1
  30. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  31. package/fesm2022/acorex-components-scheduler-picker.mjs +5 -5
  32. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  33. package/fesm2022/acorex-components-scheduler.mjs +1 -1
  34. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  35. package/fesm2022/acorex-components-select-box.mjs +25 -6
  36. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  37. package/lookup/README.md +1 -0
  38. package/package.json +3 -3
  39. package/types/acorex-components-dropdown.d.ts +8 -1
  40. package/types/acorex-components-lookup.d.ts +6 -1
  41. package/types/acorex-components-notification.d.ts +66 -3
  42. package/types/acorex-components-otp.d.ts +39 -5
  43. package/types/acorex-components-paint.d.ts +29 -3
  44. package/types/acorex-components-phone-box.d.ts +3 -0
  45. package/types/acorex-components-picker.d.ts +43 -4
  46. package/types/acorex-components-select-box.d.ts +7 -1
@@ -5,7 +5,7 @@ import { AXSafePipe } from '@acorex/core/pipes';
5
5
  import { AXTranslationService, AXTranslatorPipe } from '@acorex/core/translation';
6
6
  import { NgTemplateOutlet, NgComponentOutlet, AsyncPipe } from '@angular/common';
7
7
  import * as i0 from '@angular/core';
8
- import { InjectionToken, inject, signal, Injectable, input, computed, TemplateRef, ViewEncapsulation, Component, NgModule } from '@angular/core';
8
+ import { InjectionToken, inject, signal, Injectable, input, computed, TemplateRef, effect, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
9
9
  import { AXOverlayService } from '@acorex/cdk/overlay';
10
10
 
11
11
  const AX_NOTIFICATION_CONFIG = new InjectionToken('AX_NOTIFICATION_CONFIG', {
@@ -74,15 +74,19 @@ class AXNotificationService {
74
74
  icon: config.icon,
75
75
  title: config.title,
76
76
  content: config.content,
77
+ steps: config.steps,
78
+ stepIndex: config.stepIndex,
77
79
  location: config.location,
78
80
  closeButton: config.closeButton ?? true,
79
81
  color: config.color,
80
82
  timeOut: config.timeOut,
81
83
  timeOutProgress: config.timeOutProgress ?? true,
84
+ stepCompleteTimeOut: config.stepCompleteTimeOut,
82
85
  pauseOnHover: config.pauseOnHover,
83
86
  };
84
87
  const notificationId = `notification-${++notificationIdCounter}`;
85
88
  let internalRef;
89
+ let notificationComponent = null;
86
90
  const closeNotification = () => {
87
91
  if (internalRef) {
88
92
  internalRef.overlayRef.dispose();
@@ -114,6 +118,7 @@ class AXNotificationService {
114
118
  },
115
119
  })
116
120
  .then((overlayRef) => {
121
+ notificationComponent = overlayRef.instance.instance;
117
122
  internalRef = {
118
123
  id: notificationId,
119
124
  overlayRef,
@@ -130,6 +135,12 @@ class AXNotificationService {
130
135
  close: () => {
131
136
  closeNotification();
132
137
  },
138
+ update: (patch) => notificationComponent?.patchConfig(patch),
139
+ nextStep: () => notificationComponent?.nextStep() ?? false,
140
+ previousStep: () => notificationComponent?.previousStep() ?? false,
141
+ goToStep: (index) => notificationComponent?.goToStep(index) ?? false,
142
+ getStepIndex: () => notificationComponent?.getStepIndex() ?? 0,
143
+ getStepCount: () => notificationComponent?.getStepCount() ?? 0,
133
144
  };
134
145
  }
135
146
  hideAll() {
@@ -368,45 +379,135 @@ class AXNotificationComponent extends MXBaseComponent {
368
379
  ...(ngDevMode ? [{ debugName: "remainingTime" }] : /* istanbul ignore next */ []));
369
380
  this.transitionDuration = signal(150, /* @ts-ignore */
370
381
  ...(ngDevMode ? [{ debugName: "transitionDuration" }] : /* istanbul ignore next */ []));
382
+ this.runtimePatch = signal({}, /* @ts-ignore */
383
+ ...(ngDevMode ? [{ debugName: "runtimePatch" }] : /* istanbul ignore next */ []));
384
+ this.currentStepIndex = signal(0, /* @ts-ignore */
385
+ ...(ngDevMode ? [{ debugName: "currentStepIndex" }] : /* istanbul ignore next */ []));
386
+ this.multiStepCompleteCountdown = signal(false, /* @ts-ignore */
387
+ ...(ngDevMode ? [{ debugName: "multiStepCompleteCountdown" }] : /* istanbul ignore next */ []));
388
+ this.stepCompleteTimerId = null;
389
+ this.mergedConfig = computed(() => ({
390
+ ...this.config(),
391
+ ...this.runtimePatch(),
392
+ }), /* @ts-ignore */
393
+ ...(ngDevMode ? [{ debugName: "mergedConfig" }] : /* istanbul ignore next */ []));
394
+ this.steps = computed(() => this.mergedConfig().steps ?? [], /* @ts-ignore */
395
+ ...(ngDevMode ? [{ debugName: "steps" }] : /* istanbul ignore next */ []));
396
+ this.isMultiStep = computed(() => this.steps().length > 0, /* @ts-ignore */
397
+ ...(ngDevMode ? [{ debugName: "isMultiStep" }] : /* istanbul ignore next */ []));
398
+ this.effectiveConfig = computed(() => {
399
+ const base = this.mergedConfig();
400
+ const stepList = base.steps;
401
+ if (!stepList?.length) {
402
+ return base;
403
+ }
404
+ const index = Math.min(Math.max(this.currentStepIndex(), 0), stepList.length - 1);
405
+ const step = stepList[index];
406
+ return {
407
+ ...base,
408
+ title: step.title ?? base.title,
409
+ content: step.content ?? base.content,
410
+ icon: step.icon ?? base.icon,
411
+ color: step.color ?? base.color,
412
+ buttons: step.buttons ?? base.buttons,
413
+ };
414
+ }, /* @ts-ignore */
415
+ ...(ngDevMode ? [{ debugName: "effectiveConfig" }] : /* istanbul ignore next */ []));
416
+ this.stepIndicator = computed(() => {
417
+ const total = this.steps().length;
418
+ if (total <= 1) {
419
+ return null;
420
+ }
421
+ return `${this.currentStepIndex() + 1} / ${total}`;
422
+ }, /* @ts-ignore */
423
+ ...(ngDevMode ? [{ debugName: "stepIndicator" }] : /* istanbul ignore next */ []));
424
+ this.showProgressBar = computed(() => {
425
+ const cfg = this.mergedConfig();
426
+ if (!cfg.timeOutProgress) {
427
+ return false;
428
+ }
429
+ if (this.multiStepCompleteCountdown()) {
430
+ return this.resolveStepCompleteDelay() > 0 && this.remainingTime() > 0;
431
+ }
432
+ if (this.isMultiStep() && this.steps().length > 0) {
433
+ return true;
434
+ }
435
+ return !!cfg.timeOut && this.remainingTime() > 0;
436
+ }, /* @ts-ignore */
437
+ ...(ngDevMode ? [{ debugName: "showProgressBar" }] : /* istanbul ignore next */ []));
438
+ this.progressWidthPercent = computed(() => {
439
+ const cfg = this.mergedConfig();
440
+ const stepTotal = this.steps().length;
441
+ if (cfg.timeOutProgress && this.multiStepCompleteCountdown()) {
442
+ const delay = this.resolveStepCompleteDelay();
443
+ return delay ? (this.remainingTime() * 100) / delay : 0;
444
+ }
445
+ if (cfg.timeOutProgress && this.isMultiStep() && stepTotal > 0) {
446
+ return ((this.currentStepIndex() + 1) / stepTotal) * 100;
447
+ }
448
+ const timeOut = this.mergedConfig().timeOut;
449
+ if (!timeOut) {
450
+ return 0;
451
+ }
452
+ return (this.remainingTime() * 100) / timeOut;
453
+ }, /* @ts-ignore */
454
+ ...(ngDevMode ? [{ debugName: "progressWidthPercent" }] : /* istanbul ignore next */ []));
455
+ this.progressTransitionDuration = computed(() => {
456
+ if (this.multiStepCompleteCountdown()) {
457
+ return this.transitionDuration();
458
+ }
459
+ return this.isMultiStep() ? 300 : this.transitionDuration();
460
+ }, /* @ts-ignore */
461
+ ...(ngDevMode ? [{ debugName: "progressTransitionDuration" }] : /* istanbul ignore next */ []));
371
462
  /** Template content if config.content is a TemplateRef */
372
463
  this.templateContent = computed(() => {
373
- const content = this.config().content;
464
+ const content = this.effectiveConfig().content;
374
465
  return content instanceof TemplateRef ? content : null;
375
466
  }, /* @ts-ignore */
376
467
  ...(ngDevMode ? [{ debugName: "templateContent" }] : /* istanbul ignore next */ []));
377
468
  /** Component content if config.content is a component Type */
378
469
  this.componentContent = computed(() => {
379
- const content = this.config().content;
470
+ const content = this.effectiveConfig().content;
380
471
  return typeof content === 'function' ? content : null;
381
472
  }, /* @ts-ignore */
382
473
  ...(ngDevMode ? [{ debugName: "componentContent" }] : /* istanbul ignore next */ []));
383
474
  /** String content if config.content is a string */
384
475
  this.stringContent = computed(() => {
385
- const content = this.config().content;
476
+ const content = this.effectiveConfig().content;
386
477
  return typeof content === 'string' ? content : '';
387
478
  }, /* @ts-ignore */
388
479
  ...(ngDevMode ? [{ debugName: "stringContent" }] : /* istanbul ignore next */ []));
480
+ this.#iconEffect = effect(() => {
481
+ this._syncIcon(this.effectiveConfig());
482
+ }, /* @ts-ignore */
483
+ ...(ngDevMode ? [{ debugName: "#iconEffect" }] : /* istanbul ignore next */ []));
484
+ }
485
+ static { this.defaultStepCompleteDelayMs = 2000; }
486
+ get hostMultiStepClass() {
487
+ return this.isMultiStep();
389
488
  }
489
+ #iconEffect;
390
490
  ngOnInit() {
391
491
  super.ngOnInit();
392
- this._initIcon();
393
- this.remainingTime.set(this.config().timeOut);
492
+ const initialStep = this.config().stepIndex ?? 0;
493
+ if (this.config().steps?.length) {
494
+ this.currentStepIndex.set(Math.min(initialStep, this.config().steps.length - 1));
495
+ }
496
+ this.remainingTime.set(this.mergedConfig().timeOut);
394
497
  this._handleTimeOut();
395
498
  this.getHostElement().addEventListener('pointerenter', () => {
396
- if (!this.config().pauseOnHover)
499
+ if (!this.mergedConfig().pauseOnHover)
397
500
  return;
398
501
  if (this.isPaused())
399
502
  return;
400
- // Only pause if not already paused
401
503
  this.isPaused.set(true);
402
504
  this.pauseAnimation();
403
505
  });
404
506
  this.getHostElement().addEventListener('pointerleave', () => {
405
- if (!this.config().pauseOnHover)
507
+ if (!this.mergedConfig().pauseOnHover)
406
508
  return;
407
509
  if (!this.isPaused())
408
510
  return;
409
- // Only resume if paused
410
511
  this.isPaused.set(false);
411
512
  this._handleTimeOut();
412
513
  });
@@ -415,20 +516,78 @@ class AXNotificationComponent extends MXBaseComponent {
415
516
  clearInterval(this.intervalId);
416
517
  }
417
518
  _handleTimeOut() {
418
- if (this.config().timeOut) {
419
- this.intervalId = setInterval(() => {
420
- this.remainingTime.update((prev) => prev - this.transitionDuration());
421
- if (this.remainingTime() <= 0) {
422
- clearInterval(this.intervalId);
423
- this.close();
424
- }
425
- }, this.transitionDuration());
519
+ const intervalMs = this.transitionDuration();
520
+ const hasTimeOut = this.multiStepCompleteCountdown()
521
+ ? this.resolveStepCompleteDelay() > 0
522
+ : !!this.mergedConfig().timeOut;
523
+ if (!hasTimeOut) {
524
+ return;
426
525
  }
526
+ this.intervalId = setInterval(() => {
527
+ this.remainingTime.update((prev) => prev - intervalMs);
528
+ if (this.remainingTime() <= 0) {
529
+ clearInterval(this.intervalId);
530
+ this.close();
531
+ }
532
+ }, intervalMs);
427
533
  }
428
- /** @ignore */
429
- _initIcon() {
430
- if (!this.config().icon) {
431
- switch (this.config().color) {
534
+ restartTimeOut() {
535
+ if (this.multiStepCompleteCountdown()) {
536
+ return;
537
+ }
538
+ this.clearStepCompleteClose();
539
+ clearInterval(this.intervalId);
540
+ const timeOut = this.mergedConfig().timeOut;
541
+ this.remainingTime.set(timeOut ?? 0);
542
+ if (timeOut) {
543
+ this._handleTimeOut();
544
+ }
545
+ }
546
+ resolveStepCompleteDelay() {
547
+ const cfg = this.mergedConfig();
548
+ if (cfg.stepCompleteTimeOut === null) {
549
+ return 0;
550
+ }
551
+ if (cfg.stepCompleteTimeOut != null) {
552
+ return cfg.stepCompleteTimeOut;
553
+ }
554
+ return AXNotificationComponent.defaultStepCompleteDelayMs;
555
+ }
556
+ clearStepCompleteClose() {
557
+ if (this.stepCompleteTimerId != null) {
558
+ clearTimeout(this.stepCompleteTimerId);
559
+ this.stepCompleteTimerId = null;
560
+ }
561
+ clearInterval(this.intervalId);
562
+ this.multiStepCompleteCountdown.set(false);
563
+ }
564
+ scheduleStepCompleteClose() {
565
+ if (!this.isMultiStep()) {
566
+ return;
567
+ }
568
+ const delay = this.resolveStepCompleteDelay();
569
+ if (delay <= 0) {
570
+ return;
571
+ }
572
+ this.clearStepCompleteClose();
573
+ const cfg = this.mergedConfig();
574
+ if (cfg.timeOutProgress) {
575
+ this.multiStepCompleteCountdown.set(true);
576
+ this.remainingTime.set(delay);
577
+ this._handleTimeOut();
578
+ return;
579
+ }
580
+ this.stepCompleteTimerId = setTimeout(() => this.close(), delay);
581
+ }
582
+ onReachedFinalMultiStep() {
583
+ const total = this.steps().length;
584
+ if (total > 0 && this.currentStepIndex() === total - 1) {
585
+ this.scheduleStepCompleteClose();
586
+ }
587
+ }
588
+ _syncIcon(cfg) {
589
+ if (!cfg.icon) {
590
+ switch (cfg.color) {
432
591
  case 'success':
433
592
  this._icon = 'ax-icon ax-icon-check-circle';
434
593
  break;
@@ -439,13 +598,60 @@ class AXNotificationComponent extends MXBaseComponent {
439
598
  this._icon = 'ax-icon ax-icon-warning';
440
599
  break;
441
600
  default:
442
- this._icon = this.config().icon || 'ax-icon ax-icon-info';
601
+ this._icon = cfg.icon || 'ax-icon ax-icon-info';
443
602
  break;
444
603
  }
445
604
  }
446
605
  else {
447
- this._icon = this.config().icon;
606
+ this._icon = cfg.icon;
607
+ }
608
+ }
609
+ patchConfig(patch) {
610
+ this.runtimePatch.update((prev) => ({ ...prev, ...patch }));
611
+ if (patch.stepIndex != null && this.steps().length) {
612
+ this.currentStepIndex.set(Math.min(Math.max(patch.stepIndex, 0), this.steps().length - 1));
613
+ }
614
+ if (patch.timeOut != null) {
615
+ this.restartTimeOut();
616
+ }
617
+ }
618
+ nextStep() {
619
+ const total = this.steps().length;
620
+ if (total === 0 || this.currentStepIndex() >= total - 1) {
621
+ return false;
448
622
  }
623
+ this.currentStepIndex.update((index) => index + 1);
624
+ this.restartTimeOut();
625
+ this.onReachedFinalMultiStep();
626
+ return true;
627
+ }
628
+ previousStep() {
629
+ if (this.steps().length === 0 || this.currentStepIndex() <= 0) {
630
+ return false;
631
+ }
632
+ this.clearStepCompleteClose();
633
+ this.currentStepIndex.update((index) => index - 1);
634
+ this.restartTimeOut();
635
+ return true;
636
+ }
637
+ goToStep(index) {
638
+ const total = this.steps().length;
639
+ if (total === 0 || index < 0 || index >= total) {
640
+ return false;
641
+ }
642
+ if (index < total - 1) {
643
+ this.clearStepCompleteClose();
644
+ }
645
+ this.currentStepIndex.set(index);
646
+ this.restartTimeOut();
647
+ this.onReachedFinalMultiStep();
648
+ return true;
649
+ }
650
+ getStepIndex() {
651
+ return this.currentStepIndex();
652
+ }
653
+ getStepCount() {
654
+ return this.steps().length;
449
655
  }
450
656
  /** @ignore */
451
657
  _handleButtonClick(button) {
@@ -469,10 +675,10 @@ class AXNotificationComponent extends MXBaseComponent {
469
675
  this.notificationService.hideAll();
470
676
  }
471
677
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXNotificationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
472
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXNotificationComponent, isStandalone: true, selector: "ax-notification", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, onClose: { classPropertyName: "onClose", publicName: "onClose", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
678
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXNotificationComponent, isStandalone: true, selector: "ax-notification", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, onClose: { classPropertyName: "onClose", publicName: "onClose", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ax-notification-multi-step": "this.hostMultiStepClass" } }, providers: [
473
679
  { provide: AXClosableComponent, useExisting: AXNotificationComponent },
474
680
  { provide: AXComponent, useExisting: AXNotificationComponent },
475
- ], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon ax-icon-solid {{ _icon }} ax-{{ this.config().color }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\" [class.ax-mb-2]=\"config().title && config().content\">\n {{ config().title | translate | async }}\n </div>\n @if (templateContent(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n } @else if (componentContent(); as component) {\n <ng-container [ngComponentOutlet]=\"component\"></ng-container>\n } @else if (stringContent()) {\n <div class=\"ax-notification-body\" [innerHTML]=\"stringContent() | translate | async | safe: 'html'\"></div>\n }\n\n @if (config().buttons?.length) {\n <div class=\"ax-notification-buttons\">\n @for (button of config().buttons; track $index) {\n <ax-button\n class=\"ax-xs\"\n [text]=\"button.text | translate | async\"\n [color]=\"button.color || 'default'\"\n [look]=\"button.look || 'solid'\"\n [disabled]=\"button.disabled\"\n (onClick)=\"_handleButtonClick(button)\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n@if (config().closeButton) {\n <ax-close-button></ax-close-button>\n}\n@if (config().timeOutProgress && config().timeOut && remainingTime()) {\n <div\n [class]=\"'ax-notification-progress ax-' + this.config().color\"\n [style.transition-duration]=\"transitionDuration()\"\n [style.width]=\"(remainingTime() * 100) / config().timeOut + '%'\"\n ></div>\n}\n", styles: ["@layer properties;@layer components{ax-notification{--ax-comp-notification-shadow-rest: var(--ax-sys-effect-prominent-floating);--ax-comp-notification-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-notification-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-notification-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-notification-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-notification-surface-overlay-rest: var(--ax-sys-surface-overlay-prominent-floating);position:relative;display:flex;width:98vw;overflow:hidden;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));background-color:rgba(var(--ax-sys-color-lightest-surface));background-image:linear-gradient(var(--ax-comp-notification-contrast-surface-overlay-rest),var(--ax-comp-notification-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-notification-surface-overlay-rest),var(--ax-comp-notification-surface-overlay-rest));box-shadow:var(--ax-comp-notification-contrast-inner-border-rest),var(--ax-comp-notification-inner-border-rest),var(--ax-comp-notification-shadow-rest);backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest)}ax-notification:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darker-surface))}@media(min-width:768px){ax-notification{width:calc(var(--spacing, .25rem) * 96)}}ax-notification .ax-notification-icon{padding-inline-end:calc(var(--spacing, .25rem) * 3);color:var(--ax-comp-bg)}ax-notification .ax-notification-content{display:flex;flex:1;flex-direction:column;justify-content:center;--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:rgba(var(--ax-sys-color-on-surface))}ax-notification .ax-notification-content .ax-notification-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-notification .ax-notification-content .ax-notification-body{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:calc(var(--spacing, .25rem) * 3);display:flex;gap:calc(var(--spacing, .25rem) * 3)}ax-notification .ax-notification-progress{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 0);inset-inline-end:calc(var(--spacing, .25rem) * 0);bottom:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * 1);width:100%;background-color:var(--ax-comp-bg);transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .3s;transition-duration:.3s;--tw-ease: linear;transition-timing-function:linear}ax-notification .ax-notification-icon{max-width:fit-content;align-items:flex-start!important;font-size:var(--text-xl, 1.25rem)!important;line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))!important}ax-notification ax-close-button{height:fit-content;max-width:fit-content;align-self:flex-start}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-ease{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-leading: initial;--tw-duration: initial;--tw-ease: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], encapsulation: i0.ViewEncapsulation.None }); }
681
+ ], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon ax-icon-solid {{ _icon }} ax-{{ effectiveConfig().color }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\" [class.ax-mb-2]=\"effectiveConfig().title && effectiveConfig().content\">\n {{ effectiveConfig().title | translate | async }}\n @if (stepIndicator(); as indicator) {\n <span class=\"ax-notification-step-indicator\">{{ indicator }}</span>\n }\n </div>\n @if (templateContent(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n } @else if (componentContent(); as component) {\n <ng-container [ngComponentOutlet]=\"component\"></ng-container>\n } @else if (stringContent()) {\n <div class=\"ax-notification-body\" [innerHTML]=\"stringContent() | translate | async | safe: 'html'\"></div>\n }\n\n @if (effectiveConfig().buttons?.length) {\n <div class=\"ax-notification-buttons\">\n @for (button of effectiveConfig().buttons; track $index) {\n <ax-button\n class=\"ax-xs\"\n [text]=\"button.text | translate | async\"\n [color]=\"button.color || 'default'\"\n [look]=\"button.look || 'solid'\"\n [disabled]=\"button.disabled\"\n (onClick)=\"_handleButtonClick(button)\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n@if (effectiveConfig().closeButton) {\n <ax-close-button></ax-close-button>\n}\n@if (showProgressBar()) {\n <div\n [class]=\"'ax-notification-progress ax-' + effectiveConfig().color\"\n [style.transition-duration]=\"progressTransitionDuration() + 'ms'\"\n [style.width]=\"progressWidthPercent() + '%'\"\n ></div>\n}\n", styles: ["@layer properties;@layer components{ax-notification{--ax-comp-notification-shadow-rest: var(--ax-sys-effect-prominent-floating);--ax-comp-notification-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-notification-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-notification-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-notification-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-notification-surface-overlay-rest: var(--ax-sys-surface-overlay-prominent-floating);position:relative;display:flex;width:98vw;overflow:hidden;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));background-color:rgba(var(--ax-sys-color-lightest-surface));background-image:linear-gradient(var(--ax-comp-notification-contrast-surface-overlay-rest),var(--ax-comp-notification-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-notification-surface-overlay-rest),var(--ax-comp-notification-surface-overlay-rest));box-shadow:var(--ax-comp-notification-contrast-inner-border-rest),var(--ax-comp-notification-inner-border-rest),var(--ax-comp-notification-shadow-rest);backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest)}ax-notification:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darker-surface))}@media(min-width:768px){ax-notification{width:calc(var(--spacing, .25rem) * 96)}}ax-notification .ax-notification-icon{padding-inline-end:calc(var(--spacing, .25rem) * 3);color:var(--ax-comp-bg)}ax-notification .ax-notification-content{display:flex;flex:1;flex-direction:column;justify-content:center;--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:rgba(var(--ax-sys-color-on-surface))}ax-notification .ax-notification-content .ax-notification-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-notification .ax-notification-content .ax-notification-body{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:calc(var(--spacing, .25rem) * 3);display:flex;gap:calc(var(--spacing, .25rem) * 3)}ax-notification .ax-notification-progress{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 0);inset-inline-end:calc(var(--spacing, .25rem) * 0);bottom:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * 1);width:100%;background-color:var(--ax-comp-bg);transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .3s;transition-duration:.3s;--tw-ease: linear;transition-timing-function:linear}ax-notification .ax-notification-icon{max-width:fit-content;align-items:flex-start!important;font-size:var(--text-xl, 1.25rem)!important;line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))!important}ax-notification ax-close-button{height:fit-content;max-width:fit-content;align-self:flex-start}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-ease{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-leading: initial;--tw-duration: initial;--tw-ease: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n", "@layer properties;@layer components{ax-notification.ax-notification-multi-step .ax-notification-title{display:flex;flex-wrap:wrap;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2)}ax-notification.ax-notification-multi-step .ax-notification-step-indicator{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:rgba(var(--ax-sys-color-on-surface));--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}@supports (color: color-mix(in lab,red,red)){ax-notification.ax-notification-multi-step .ax-notification-step-indicator{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-ordinal{syntax: \"*\"; inherits: false;}@property --tw-slashed-zero{syntax: \"*\"; inherits: false;}@property --tw-numeric-figure{syntax: \"*\"; inherits: false;}@property --tw-numeric-spacing{syntax: \"*\"; inherits: false;}@property --tw-numeric-fraction{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AXSafePipe, name: "safe" }], encapsulation: i0.ViewEncapsulation.None }); }
476
682
  }
477
683
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXNotificationComponent, decorators: [{
478
684
  type: Component,
@@ -488,8 +694,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
488
694
  AsyncPipe,
489
695
  AXTranslatorPipe,
490
696
  AXSafePipe,
491
- ], template: "<span class=\"ax-notification-icon ax-icon-solid {{ _icon }} ax-{{ this.config().color }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\" [class.ax-mb-2]=\"config().title && config().content\">\n {{ config().title | translate | async }}\n </div>\n @if (templateContent(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n } @else if (componentContent(); as component) {\n <ng-container [ngComponentOutlet]=\"component\"></ng-container>\n } @else if (stringContent()) {\n <div class=\"ax-notification-body\" [innerHTML]=\"stringContent() | translate | async | safe: 'html'\"></div>\n }\n\n @if (config().buttons?.length) {\n <div class=\"ax-notification-buttons\">\n @for (button of config().buttons; track $index) {\n <ax-button\n class=\"ax-xs\"\n [text]=\"button.text | translate | async\"\n [color]=\"button.color || 'default'\"\n [look]=\"button.look || 'solid'\"\n [disabled]=\"button.disabled\"\n (onClick)=\"_handleButtonClick(button)\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n@if (config().closeButton) {\n <ax-close-button></ax-close-button>\n}\n@if (config().timeOutProgress && config().timeOut && remainingTime()) {\n <div\n [class]=\"'ax-notification-progress ax-' + this.config().color\"\n [style.transition-duration]=\"transitionDuration()\"\n [style.width]=\"(remainingTime() * 100) / config().timeOut + '%'\"\n ></div>\n}\n", styles: ["@layer properties;@layer components{ax-notification{--ax-comp-notification-shadow-rest: var(--ax-sys-effect-prominent-floating);--ax-comp-notification-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-notification-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-notification-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-notification-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-notification-surface-overlay-rest: var(--ax-sys-surface-overlay-prominent-floating);position:relative;display:flex;width:98vw;overflow:hidden;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));background-color:rgba(var(--ax-sys-color-lightest-surface));background-image:linear-gradient(var(--ax-comp-notification-contrast-surface-overlay-rest),var(--ax-comp-notification-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-notification-surface-overlay-rest),var(--ax-comp-notification-surface-overlay-rest));box-shadow:var(--ax-comp-notification-contrast-inner-border-rest),var(--ax-comp-notification-inner-border-rest),var(--ax-comp-notification-shadow-rest);backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest)}ax-notification:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darker-surface))}@media(min-width:768px){ax-notification{width:calc(var(--spacing, .25rem) * 96)}}ax-notification .ax-notification-icon{padding-inline-end:calc(var(--spacing, .25rem) * 3);color:var(--ax-comp-bg)}ax-notification .ax-notification-content{display:flex;flex:1;flex-direction:column;justify-content:center;--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:rgba(var(--ax-sys-color-on-surface))}ax-notification .ax-notification-content .ax-notification-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-notification .ax-notification-content .ax-notification-body{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:calc(var(--spacing, .25rem) * 3);display:flex;gap:calc(var(--spacing, .25rem) * 3)}ax-notification .ax-notification-progress{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 0);inset-inline-end:calc(var(--spacing, .25rem) * 0);bottom:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * 1);width:100%;background-color:var(--ax-comp-bg);transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .3s;transition-duration:.3s;--tw-ease: linear;transition-timing-function:linear}ax-notification .ax-notification-icon{max-width:fit-content;align-items:flex-start!important;font-size:var(--text-xl, 1.25rem)!important;line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))!important}ax-notification ax-close-button{height:fit-content;max-width:fit-content;align-self:flex-start}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-ease{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-leading: initial;--tw-duration: initial;--tw-ease: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
492
- }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], onClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "onClose", required: false }] }] } });
697
+ ], template: "<span class=\"ax-notification-icon ax-icon-solid {{ _icon }} ax-{{ effectiveConfig().color }}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\" [class.ax-mb-2]=\"effectiveConfig().title && effectiveConfig().content\">\n {{ effectiveConfig().title | translate | async }}\n @if (stepIndicator(); as indicator) {\n <span class=\"ax-notification-step-indicator\">{{ indicator }}</span>\n }\n </div>\n @if (templateContent(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\"></ng-container>\n } @else if (componentContent(); as component) {\n <ng-container [ngComponentOutlet]=\"component\"></ng-container>\n } @else if (stringContent()) {\n <div class=\"ax-notification-body\" [innerHTML]=\"stringContent() | translate | async | safe: 'html'\"></div>\n }\n\n @if (effectiveConfig().buttons?.length) {\n <div class=\"ax-notification-buttons\">\n @for (button of effectiveConfig().buttons; track $index) {\n <ax-button\n class=\"ax-xs\"\n [text]=\"button.text | translate | async\"\n [color]=\"button.color || 'default'\"\n [look]=\"button.look || 'solid'\"\n [disabled]=\"button.disabled\"\n (onClick)=\"_handleButtonClick(button)\"\n >\n @if (button.loading) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n@if (effectiveConfig().closeButton) {\n <ax-close-button></ax-close-button>\n}\n@if (showProgressBar()) {\n <div\n [class]=\"'ax-notification-progress ax-' + effectiveConfig().color\"\n [style.transition-duration]=\"progressTransitionDuration() + 'ms'\"\n [style.width]=\"progressWidthPercent() + '%'\"\n ></div>\n}\n", styles: ["@layer properties;@layer components{ax-notification{--ax-comp-notification-shadow-rest: var(--ax-sys-effect-prominent-floating);--ax-comp-notification-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-notification-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-notification-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-notification-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-notification-surface-overlay-rest: var(--ax-sys-surface-overlay-prominent-floating);position:relative;display:flex;width:98vw;overflow:hidden;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:calc(var(--spacing, .25rem) * 4);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));background-color:rgba(var(--ax-sys-color-lightest-surface));background-image:linear-gradient(var(--ax-comp-notification-contrast-surface-overlay-rest),var(--ax-comp-notification-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-notification-surface-overlay-rest),var(--ax-comp-notification-surface-overlay-rest));box-shadow:var(--ax-comp-notification-contrast-inner-border-rest),var(--ax-comp-notification-inner-border-rest),var(--ax-comp-notification-shadow-rest);backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-notification-backdrop-filter-rest)}ax-notification:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-darker-surface))}@media(min-width:768px){ax-notification{width:calc(var(--spacing, .25rem) * 96)}}ax-notification .ax-notification-icon{padding-inline-end:calc(var(--spacing, .25rem) * 3);color:var(--ax-comp-bg)}ax-notification .ax-notification-content{display:flex;flex:1;flex-direction:column;justify-content:center;--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:rgba(var(--ax-sys-color-on-surface))}ax-notification .ax-notification-content .ax-notification-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}ax-notification .ax-notification-content .ax-notification-body{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:calc(var(--spacing, .25rem) * 3);display:flex;gap:calc(var(--spacing, .25rem) * 3)}ax-notification .ax-notification-progress{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 0);inset-inline-end:calc(var(--spacing, .25rem) * 0);bottom:calc(var(--spacing, .25rem) * 0);height:calc(var(--spacing, .25rem) * 1);width:100%;background-color:var(--ax-comp-bg);transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .3s;transition-duration:.3s;--tw-ease: linear;transition-timing-function:linear}ax-notification .ax-notification-icon{max-width:fit-content;align-items:flex-start!important;font-size:var(--text-xl, 1.25rem)!important;line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))!important}ax-notification ax-close-button{height:fit-content;max-width:fit-content;align-self:flex-start}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-ease{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-leading: initial;--tw-duration: initial;--tw-ease: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n", "@layer properties;@layer components{ax-notification.ax-notification-multi-step .ax-notification-title{display:flex;flex-wrap:wrap;align-items:center;column-gap:calc(var(--spacing, .25rem) * 2)}ax-notification.ax-notification-multi-step .ax-notification-step-indicator{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-normal, 400);font-weight:var(--font-weight-normal, 400);color:rgba(var(--ax-sys-color-on-surface));--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}@supports (color: color-mix(in lab,red,red)){ax-notification.ax-notification-multi-step .ax-notification-step-indicator{color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 60%,transparent)}}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-ordinal{syntax: \"*\"; inherits: false;}@property --tw-slashed-zero{syntax: \"*\"; inherits: false;}@property --tw-numeric-figure{syntax: \"*\"; inherits: false;}@property --tw-numeric-spacing{syntax: \"*\"; inherits: false;}@property --tw-numeric-fraction{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
698
+ }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }], onClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "onClose", required: false }] }], hostMultiStepClass: [{
699
+ type: HostBinding,
700
+ args: ['class.ax-notification-multi-step']
701
+ }] } });
493
702
 
494
703
  class AXNotificationModule {
495
704
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }