@wizishop/angular-components 19.0.1 → 19.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -506,32 +506,56 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
506
506
  }
507
507
  .wac-alert-popup {
508
508
  .alert {
509
+ --wac-alert-accent: #{$wac-primary-button};
509
510
  z-index: 999999;
510
511
  position: fixed;
511
- color: $wac-white;
512
- background-color: $wac-primary-button;
512
+ color: $wac-main-text;
513
+ background-color: $wac-white;
513
514
  border: 1px solid transparent;
514
- border-radius: 5px;
515
- padding: 40px;
515
+ border-radius: 8px;
516
+ padding: 18px 44px 18px 24px;
516
517
  transition: all 200ms;
517
518
  opacity: 0;
518
519
  margin: 10px auto;
519
- max-width: 550px;
520
+ max-width: 480px;
520
521
  width: auto;
521
- box-shadow: 0 0 20px rgba(50, 50, 50, 0.1);
522
+ box-shadow: 0 8px 30px rgba(29, 42, 59, 0.12);
522
523
  font-size: 14px;
524
+ overflow: hidden;
523
525
 
524
- &.with-icon {
525
- .alert--message {
526
- display: flex;
527
- align-items: center;
528
- justify-content: center;
529
- width: 100%;
530
- }
526
+ &::before {
527
+ content: '';
528
+ position: absolute;
529
+ left: 0;
530
+ top: 0;
531
+ bottom: 0;
532
+ width: 5px;
533
+ background-color: var(--wac-alert-accent);
531
534
  }
532
535
 
533
- .icon + .wac-alert-popup__close + .wac-alert-popup__text {
534
- width: auto;
536
+ .alert--message {
537
+ display: flex;
538
+ align-items: flex-start;
539
+ gap: 14px;
540
+ width: 100%;
541
+ }
542
+
543
+ .icon {
544
+ flex-shrink: 0;
545
+ display: flex;
546
+ align-items: center;
547
+ justify-content: center;
548
+ width: 22px;
549
+ height: 22px;
550
+ margin: 0;
551
+ border-radius: 50%;
552
+ background-color: var(--wac-alert-accent);
553
+
554
+ i {
555
+ font-size: 12px;
556
+ color: $wac-white;
557
+ margin: 0;
558
+ }
535
559
  }
536
560
 
537
561
  &.fullsize {
@@ -539,7 +563,7 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
539
563
  width: 100%;
540
564
  border-radius: 0;
541
565
  margin: 0;
542
- padding: 20px 40px 20px 20px;
566
+ padding: 20px 44px 20px 24px;
543
567
  }
544
568
 
545
569
  &.is-left {
@@ -608,50 +632,29 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
608
632
  }
609
633
 
610
634
  p {
611
- display: inline-block;
635
+ margin: 0;
612
636
  }
613
637
 
614
- span {
615
- vertical-align: middle;
616
- margin: 0 10px 0 0;
617
- }
618
638
  &.is-primary {
619
- background-color: $wac-primary-button;
620
-
621
- &.is-inverted {
622
- background-color: $wac-white;
623
- border: 1px solid $wac-primary-button;
624
- color: $wac-primary-button;
625
- }
639
+ --wac-alert-accent: #{$wac-primary-button};
626
640
  }
627
641
 
628
642
  &.is-success {
629
- background-color: $wac-color-success-popup-alert;
630
-
631
- &.is-inverted {
632
- background-color: $wac-white;
633
- border: 1px solid $wac-color-success-popup-alert;
634
- color: $wac-color-success-popup-alert;
635
- }
643
+ --wac-alert-accent: #{$wac-tag-success};
636
644
  }
637
645
 
638
646
  &.is-danger {
639
- background-color: $wac-primary-button;
640
-
641
- &.is-inverted {
642
- background-color: $wac-white;
643
- border: 1px solid $wac-primary-button;
644
- color: $wac-primary-button;
645
- }
647
+ --wac-alert-accent: #{$wac-primary-button};
646
648
  }
647
649
 
648
650
  &.is-info {
649
- background-color: $wac-white;
650
- border: 1px solid $wac-main-text;
651
- color: $wac-main-text;
651
+ --wac-alert-accent: #{$wac-main-text};
652
652
  }
653
653
 
654
654
  &.small {
655
+ display: flex;
656
+ align-items: center;
657
+ color: $wac-white;
655
658
  padding: 10px;
656
659
  border-radius: 3px;
657
660
  right: 30px;
@@ -663,6 +666,11 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
663
666
  background-color: $wac-tag-success;
664
667
  font-size: 0.875rem;
665
668
  overflow: hidden;
669
+
670
+ &::before {
671
+ display: none;
672
+ }
673
+
666
674
  @include media('<tablet') {
667
675
  right: 0;
668
676
  max-width: 100%;
@@ -699,9 +707,16 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
699
707
  display: flex;
700
708
  align-items: center;
701
709
  justify-content: flex-start;
710
+ }
711
+ .icon {
712
+ width: auto;
713
+ height: auto;
714
+ border-radius: 0;
715
+ background-color: transparent;
702
716
  i {
703
717
  font-size: 24px;
704
718
  font-weight: normal;
719
+ color: $wac-white;
705
720
  }
706
721
  }
707
722
  .wac-alert-popup {
@@ -709,6 +724,7 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
709
724
  font-size: 0.875rem;
710
725
  white-space: nowrap;
711
726
  font-weight: normal;
727
+ color: $wac-white;
712
728
  }
713
729
  &__close {
714
730
  display: none;
@@ -731,20 +747,28 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
731
747
  }
732
748
  }
733
749
 
750
+ &__content {
751
+ display: flex;
752
+ flex-direction: column;
753
+ gap: 4px;
754
+ min-width: 0;
755
+ }
756
+
734
757
  &__title {
735
- font-size: 1.5rem;
736
- line-height: 1.4;
758
+ font-size: 0.9375rem;
759
+ line-height: 1.35;
737
760
  margin: 0;
738
761
  font-weight: 700;
739
- text-align: center;
740
- width: 100%;
762
+ color: $wac-main-text;
763
+ text-align: left;
741
764
  }
742
765
 
743
766
  &__text {
744
- font-size: 1rem;
745
- font-weight: 500;
746
- text-align: center;
747
- width: 100%;
767
+ font-size: 0.875rem;
768
+ line-height: 1.45;
769
+ font-weight: 400;
770
+ color: $wac-color-text-grey;
771
+ text-align: left;
748
772
  margin: 0;
749
773
  }
750
774
 
@@ -752,34 +776,24 @@ $wizishop-blue-button: #52aecd !default;.zindexToggle {
752
776
  cursor: pointer;
753
777
  display: flex;
754
778
  position: absolute;
755
- top: 10px;
756
- right: 10px;
757
- width: 2.5rem;
758
- height: 2.5rem;
759
- border-radius: 50%;
779
+ top: 14px;
780
+ right: 14px;
781
+ width: 1.25rem;
782
+ height: 1.25rem;
760
783
  justify-content: center;
761
784
  align-items: center;
762
- background-color: darken($wac-primary-button, 10%);
763
- transition: .3s ease;
785
+ background-color: transparent;
786
+ color: $wac-color-text-grey;
787
+ transition: color .2s ease;
788
+
764
789
  &:hover, &:focus {
765
- background-color: darken($wac-primary-button, 15%);
790
+ color: $wac-main-text;
766
791
  }
792
+
767
793
  i {
768
- font-size: 1.25rem;
769
- color: $white;
770
- }
771
- .is-success & {
772
- background-color: darken($wac-color-success-popup-alert, 20%);
773
- &:hover, &:focus {
774
- background-color: darken($wac-color-success-popup-alert, 30%);
775
- }
776
- }
777
- .is-danger & {
778
- background-color: darken($wac-primary-button, 10%);
779
- &:hover, &:focus {
780
- background-color: darken($wac-primary-button, 15%);
781
- }
794
+ font-size: 1rem;
782
795
  }
796
+
783
797
  .fullsize & {
784
798
  top: 50%;
785
799
  transform: translateY(-50%);
@@ -10671,6 +10685,34 @@ div.wac-field-input-search {
10671
10685
 
10672
10686
 
10673
10687
 
10688
+ .wac-option-group {
10689
+ width: 100%;
10690
+
10691
+ &:first-child {
10692
+ padding-top: 0.625rem;
10693
+ }
10694
+
10695
+ &:last-child {
10696
+ padding-bottom: 0.625rem;
10697
+ }
10698
+
10699
+ &:not(:last-child) {
10700
+ &::after {
10701
+ content: '';
10702
+ display: block;
10703
+ width: 100%;
10704
+ height: 1px;
10705
+ border-bottom: 1px dashed #dee2de;
10706
+ }
10707
+ }
10708
+
10709
+ &__title {
10710
+ padding: 0 20px 10px;
10711
+ font-size: 12px;
10712
+ font-weight: 500;
10713
+ color: #526384;
10714
+ }
10715
+ }
10674
10716
  .wac-option-call-to-action {
10675
10717
  background-color: $wac-color-CTA-select;
10676
10718
  border: 1px solid $wac-border-CTA-select;
@@ -10714,34 +10756,6 @@ div.wac-field-input-search {
10714
10756
  background-color: darken($wac-color-CTA-select, 10%);
10715
10757
  }
10716
10758
  }
10717
- .wac-option-group {
10718
- width: 100%;
10719
-
10720
- &:first-child {
10721
- padding-top: 0.625rem;
10722
- }
10723
-
10724
- &:last-child {
10725
- padding-bottom: 0.625rem;
10726
- }
10727
-
10728
- &:not(:last-child) {
10729
- &::after {
10730
- content: '';
10731
- display: block;
10732
- width: 100%;
10733
- height: 1px;
10734
- border-bottom: 1px dashed #dee2de;
10735
- }
10736
- }
10737
-
10738
- &__title {
10739
- padding: 0 20px 10px;
10740
- font-size: 12px;
10741
- font-weight: 500;
10742
- color: #526384;
10743
- }
10744
- }
10745
10759
 
10746
10760
  .wac-select {
10747
10761
  width: 100%;
@@ -4695,13 +4695,13 @@ class AlertPopupComponent {
4695
4695
  return this.afterClosedPopup.asObservable();
4696
4696
  }
4697
4697
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AlertPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4698
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: AlertPopupComponent, isStandalone: false, selector: "wac-alert-popup", host: { classAttribute: "wac-alert-popup" }, ngImport: i0, template: "<div\r\n [class]=\"'alert ' + ((config.color) ? config.color : ' is-primary') + ((config.extraClasses) ? ' ' + config.extraClasses : '') + ((config.position) ? ' ' + config.position : '') + ((config.fullsize) ? ' fullsize' : '') + ((config.opacity) ? ' opacity-active' : '') + ((config.small) ? ' small' : '') + ((config.icon) ? ' with-icon' : '') + ((config.duration) ? '' : ' no-duration')\"\r\n [ngClass]=\"{'is-active': open, 'has-close': config.closeButton}\"\r\n>\r\n <div class=\"alert--message\">\r\n <span class=\"icon\" *ngIf=\"config.icon\">\r\n <i [class]=\"config.icon\"></i>\r\n </span>\r\n <span (click)=\"dismiss()\" class=\"wac-alert-popup__close\" *ngIf=\"!config.small || (config.small && config.closeButton)\"><i class=\"far fa-times\"></i></span>\r\n <p *ngIf=\"config.title\" class=\"wac-alert-popup__title\" [innerHTML]=\"config.title\"></p>\r\n <p *ngIf=\"config.message\" class=\"wac-alert-popup__text\" [innerHTML]=\"config.message\"></p>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
4698
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: AlertPopupComponent, isStandalone: false, selector: "wac-alert-popup", host: { classAttribute: "wac-alert-popup" }, ngImport: i0, template: "<div\r\n [class]=\"'alert ' + ((config.color) ? config.color : ' is-primary') + ((config.extraClasses) ? ' ' + config.extraClasses : '') + ((config.position) ? ' ' + config.position : '') + ((config.fullsize) ? ' fullsize' : '') + ((config.opacity) ? ' opacity-active' : '') + ((config.small) ? ' small' : '') + ((config.icon) ? ' with-icon' : '') + ((config.duration) ? '' : ' no-duration')\"\r\n [ngClass]=\"{'is-active': open, 'has-close': config.closeButton}\"\r\n>\r\n <div class=\"alert--message\">\r\n <span class=\"icon\" *ngIf=\"config.icon\">\r\n <i [class]=\"config.icon\"></i>\r\n </span>\r\n <div class=\"wac-alert-popup__content\">\r\n <p *ngIf=\"config.title\" class=\"wac-alert-popup__title\" [innerHTML]=\"config.title\"></p>\r\n <p *ngIf=\"config.message\" class=\"wac-alert-popup__text\" [innerHTML]=\"config.message\"></p>\r\n </div>\r\n <span (click)=\"dismiss()\" class=\"wac-alert-popup__close\" *ngIf=\"!config.small || (config.small && config.closeButton)\"><i class=\"far fa-times\"></i></span>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
4699
4699
  }
4700
4700
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AlertPopupComponent, decorators: [{
4701
4701
  type: Component,
4702
4702
  args: [{ standalone: false, selector: 'wac-alert-popup', host: {
4703
4703
  class: 'wac-alert-popup'
4704
- }, encapsulation: ViewEncapsulation.None, template: "<div\r\n [class]=\"'alert ' + ((config.color) ? config.color : ' is-primary') + ((config.extraClasses) ? ' ' + config.extraClasses : '') + ((config.position) ? ' ' + config.position : '') + ((config.fullsize) ? ' fullsize' : '') + ((config.opacity) ? ' opacity-active' : '') + ((config.small) ? ' small' : '') + ((config.icon) ? ' with-icon' : '') + ((config.duration) ? '' : ' no-duration')\"\r\n [ngClass]=\"{'is-active': open, 'has-close': config.closeButton}\"\r\n>\r\n <div class=\"alert--message\">\r\n <span class=\"icon\" *ngIf=\"config.icon\">\r\n <i [class]=\"config.icon\"></i>\r\n </span>\r\n <span (click)=\"dismiss()\" class=\"wac-alert-popup__close\" *ngIf=\"!config.small || (config.small && config.closeButton)\"><i class=\"far fa-times\"></i></span>\r\n <p *ngIf=\"config.title\" class=\"wac-alert-popup__title\" [innerHTML]=\"config.title\"></p>\r\n <p *ngIf=\"config.message\" class=\"wac-alert-popup__text\" [innerHTML]=\"config.message\"></p>\r\n </div>\r\n</div>\r\n" }]
4704
+ }, encapsulation: ViewEncapsulation.None, template: "<div\r\n [class]=\"'alert ' + ((config.color) ? config.color : ' is-primary') + ((config.extraClasses) ? ' ' + config.extraClasses : '') + ((config.position) ? ' ' + config.position : '') + ((config.fullsize) ? ' fullsize' : '') + ((config.opacity) ? ' opacity-active' : '') + ((config.small) ? ' small' : '') + ((config.icon) ? ' with-icon' : '') + ((config.duration) ? '' : ' no-duration')\"\r\n [ngClass]=\"{'is-active': open, 'has-close': config.closeButton}\"\r\n>\r\n <div class=\"alert--message\">\r\n <span class=\"icon\" *ngIf=\"config.icon\">\r\n <i [class]=\"config.icon\"></i>\r\n </span>\r\n <div class=\"wac-alert-popup__content\">\r\n <p *ngIf=\"config.title\" class=\"wac-alert-popup__title\" [innerHTML]=\"config.title\"></p>\r\n <p *ngIf=\"config.message\" class=\"wac-alert-popup__text\" [innerHTML]=\"config.message\"></p>\r\n </div>\r\n <span (click)=\"dismiss()\" class=\"wac-alert-popup__close\" *ngIf=\"!config.small || (config.small && config.closeButton)\"><i class=\"far fa-times\"></i></span>\r\n </div>\r\n</div>\r\n" }]
4705
4705
  }] });
4706
4706
 
4707
4707
  class AlertPopupService {
@@ -4716,13 +4716,35 @@ class AlertPopupService {
4716
4716
  const componentRef = this.domService.attachComponentPortal(AlertPopupComponent);
4717
4717
  config = Object.assign({
4718
4718
  position: 'is-top'
4719
- }, config);
4719
+ }, config,
4720
+ // Force the unified card design on every popup, whatever the caller passes.
4721
+ {
4722
+ small: false,
4723
+ fullsize: false,
4724
+ opacity: false
4725
+ });
4726
+ if (!config.icon) {
4727
+ config.icon = this.getDefaultIcon(config.color);
4728
+ }
4720
4729
  componentRef.instance.config = config;
4721
4730
  componentRef.instance.afterClosed().subscribe(() => {
4722
4731
  componentRef.destroy();
4723
4732
  });
4724
4733
  return componentRef;
4725
4734
  }
4735
+ /** Default icon matching the card design, picked from the alert color. */
4736
+ getDefaultIcon(color) {
4737
+ switch (color) {
4738
+ case 'is-danger':
4739
+ case 'is-primary':
4740
+ return 'fas fa-exclamation';
4741
+ case 'is-info':
4742
+ return 'fas fa-info';
4743
+ case 'is-success':
4744
+ default:
4745
+ return 'fas fa-check';
4746
+ }
4747
+ }
4726
4748
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AlertPopupService, deps: [{ token: DomService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4727
4749
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AlertPopupService, providedIn: 'root' }); }
4728
4750
  }