@orangesk/orange-design-system 3.3.0 → 3.4.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.
Files changed (74) hide show
  1. package/build/apple--dark.svg +4 -0
  2. package/build/apple--white.svg +5 -0
  3. package/build/apple.svg +4 -0
  4. package/build/components/BodyBanner/style.css +1 -1
  5. package/build/components/BodyBanner/style.css.map +1 -1
  6. package/build/components/FeatureAccordion/style.css +1 -1
  7. package/build/components/FeatureAccordion/style.css.map +1 -1
  8. package/build/components/Footer/style.css +1 -1
  9. package/build/components/Footer/style.css.map +1 -1
  10. package/build/components/Megamenu/style.css +1 -1
  11. package/build/components/Megamenu/style.css.map +1 -1
  12. package/build/components/PromoBanner/style.css +1 -1
  13. package/build/components/PromoBanner/style.css.map +1 -1
  14. package/build/components/index.js +1 -1
  15. package/build/components/index.js.map +1 -1
  16. package/build/components/tsconfig.tsbuildinfo +1 -1
  17. package/build/components/types/index.d.ts +19 -4
  18. package/build/components/types/src/components/Megamenu/Megamenu.d.ts +8 -2
  19. package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +1 -1
  20. package/build/components/types/src/components/Megamenu/MyOrangeMobilePanel.d.ts +2 -1
  21. package/build/components/types/src/components/Megamenu/constants.d.ts +19 -2
  22. package/build/components/types/src/components/Megamenu/data.d.ts +8 -0
  23. package/build/components/types/src/components/Megamenu/shared.d.ts +40 -0
  24. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +3 -1
  25. package/build/huawei--dark.svg +4 -0
  26. package/build/huawei--white.svg +5 -0
  27. package/build/huawei.svg +4 -0
  28. package/build/images/phones.png +0 -0
  29. package/build/lib/base.css +1 -1
  30. package/build/lib/base.css.map +1 -1
  31. package/build/lib/components.css +1 -1
  32. package/build/lib/components.css.map +1 -1
  33. package/build/lib/footer.css +1 -1
  34. package/build/lib/footer.css.map +1 -1
  35. package/build/lib/megamenu.css +1 -1
  36. package/build/lib/megamenu.css.map +1 -1
  37. package/build/lib/megamenu.js +1 -1
  38. package/build/lib/megamenu.js.map +1 -1
  39. package/build/lib/scripts.js +1 -1
  40. package/build/lib/scripts.js.map +1 -1
  41. package/build/lib/style.css +1 -1
  42. package/build/lib/style.css.map +1 -1
  43. package/build/lib/tsconfig.tsbuildinfo +1 -1
  44. package/build/lib/utilities.css +1 -1
  45. package/build/lib/utilities.css.map +1 -1
  46. package/build/play--dark.svg +7 -0
  47. package/build/play--white.svg +7 -0
  48. package/build/play.svg +7 -0
  49. package/package.json +14 -14
  50. package/src/components/BodyBanner/styles/mixins.scss +6 -0
  51. package/src/components/FeatureAccordion/styles/mixins.scss +6 -0
  52. package/src/components/Forms/Autocomplete/styles/mixins.scss +1 -0
  53. package/src/components/Forms/Autocomplete/styles/style.scss +4 -0
  54. package/src/components/Forms/Autocomplete/tests/Autocomplete.styles.unit.test.jsx +3 -0
  55. package/src/components/Megamenu/LogoJeTu.tsx +12 -7
  56. package/src/components/Megamenu/Megamenu.static.ts +1 -1
  57. package/src/components/Megamenu/Megamenu.tsx +420 -316
  58. package/src/components/Megamenu/MegamenuBlog.tsx +90 -123
  59. package/src/components/Megamenu/MyOrangeMobilePanel.tsx +116 -84
  60. package/src/components/Megamenu/constants.ts +19 -2
  61. package/src/components/Megamenu/data.ts +53 -15
  62. package/src/components/Megamenu/shared.tsx +154 -0
  63. package/src/components/Megamenu/styles/mixins.scss +307 -28
  64. package/src/components/Megamenu/styles/style.scss +91 -8
  65. package/src/components/Megamenu/tests/Megamenu.unit.test.jsx +77 -4
  66. package/src/components/PromoBanner/PromoBanner.tsx +7 -2
  67. package/src/components/PromoBanner/styles/mixins.scss +19 -4
  68. package/src/components/PromoBanner/styles/style.scss +4 -0
  69. package/src/components/PromoBanner/tests/PromoBanner.unit.test.jsx +21 -3
  70. package/src/styles/base/globals.scss +5 -5
  71. package/src/styles/base/styleguide.scss +1 -1
  72. package/src/styles/export/color.js +1 -1
  73. package/src/styles/shame.scss +1 -1
  74. package/src/styles/tokens/color.scss +1 -1
@@ -15,6 +15,7 @@
15
15
  @use "../../Tag/styles/mixins" as tag;
16
16
  @use "../../Tag/styles/config" as tagConfig;
17
17
  @use "../../Button/styles/mixins" as button;
18
+ @use "../../Card/styles/mixins" as card;
18
19
  @use "../../../styles/typography/mixins" as typography;
19
20
 
20
21
  @use "./config";
@@ -153,7 +154,7 @@
153
154
  }
154
155
 
155
156
  // Scroll hide functionality
156
- &.is-sticky {
157
+ &:not(.non-sticky) {
157
158
  position: fixed;
158
159
 
159
160
  body.has-modal & {
@@ -233,8 +234,22 @@
233
234
  }
234
235
 
235
236
  @mixin nav-mobile-locale {
237
+ position: relative;
236
238
  padding: convert.to-rem(15px) 0 !important;
237
239
  margin-bottom: 0px !important;
240
+
241
+ &::before {
242
+ content: "";
243
+ position: absolute;
244
+ left: 50%;
245
+ width: 100vw;
246
+ border-top: 1px solid var(--color-border-subtle);
247
+ transform: translateX(-50%);
248
+ }
249
+
250
+ &::before {
251
+ top: 0;
252
+ }
238
253
  }
239
254
 
240
255
  @mixin nav-item {
@@ -402,6 +417,35 @@
402
417
  }
403
418
  }
404
419
 
420
+ @mixin nav-link-cta {
421
+ display: inline-flex;
422
+ align-items: center;
423
+ gap: convert.to-rem(6px);
424
+ height: max-content;
425
+ align-self: center;
426
+ text-wrap: nowrap;
427
+ padding: convert.to-rem(10px);
428
+ border-radius: convert.to-rem(5px);
429
+ background-color: var(--color-surface-accent);
430
+ color: var(--color-text-default);
431
+ font-size: convert.to-rem(16px) !important;
432
+ line-height: convert.to-rem(18px);
433
+
434
+ &:hover,
435
+ &:focus,
436
+ &:active,
437
+ &.is-active {
438
+ color: var(--color-text-default) !important;
439
+ outline: solid 2px var(--color-border-accent);
440
+ outline-offset: -2px;
441
+ }
442
+
443
+ &:focus-visible {
444
+ outline: 2px solid var(--color-border-accent);
445
+ outline-offset: 2px;
446
+ }
447
+ }
448
+
405
449
  @mixin divider {
406
450
  margin-top: convert.to-rem(30px);
407
451
  margin-bottom: convert.to-rem(30px);
@@ -418,14 +462,23 @@
418
462
  position: relative;
419
463
 
420
464
  &:after {
421
- content: attr(data-items-in-cart);
465
+ content: "";
422
466
  position: absolute;
423
- right: -25%;
424
- top: -25%;
467
+ right: -2px;
468
+ top: -2px;
469
+ width: convert.to-rem(8px);
470
+ height: convert.to-rem(8px);
471
+ background-color: var(--color-icon-brand);
472
+ border-radius: 50%;
473
+ }
474
+
475
+ &[data-items-in-cart]::after {
476
+ content: attr(data-items-in-cart);
425
477
  width: convert.to-rem(18px);
426
478
  height: convert.to-rem(18px);
427
479
  background-color: var(--color-icon-information);
428
- border-radius: 50%;
480
+ right: -25%;
481
+ top: -25%;
429
482
  font-size: convert.to-rem(14px);
430
483
  color: color.$white;
431
484
  display: flex;
@@ -476,6 +529,7 @@
476
529
  }
477
530
 
478
531
  @mixin nav-button-indicator {
532
+ width: fit-content;
479
533
  padding: 0 convert.to-rem(20px) 0 0;
480
534
 
481
535
  &:after {
@@ -490,6 +544,7 @@
490
544
  border-style: solid;
491
545
  border-width: 7px 7px 0;
492
546
  transition: transform 0.1s ease-out;
547
+ pointer-events: none;
493
548
  }
494
549
 
495
550
  &.is-active:after {
@@ -497,9 +552,48 @@
497
552
  }
498
553
  }
499
554
 
555
+ @mixin nav-select-wrapper {
556
+ &:hover,
557
+ &:focus,
558
+ &:active,
559
+ &.is-active {
560
+ box-shadow: none;
561
+ }
562
+ }
563
+
564
+ @mixin nav-select {
565
+ appearance: none;
566
+ -webkit-appearance: none;
567
+ border: 0;
568
+ padding: 0;
569
+ margin: 0;
570
+ width: fit-content;
571
+ field-sizing: content;
572
+ color: inherit;
573
+ background: transparent;
574
+ font: inherit;
575
+ line-height: inherit;
576
+ cursor: pointer;
577
+ outline: none !important;
578
+
579
+ &:focus,
580
+ &:focus-visible {
581
+ outline: none !important;
582
+ border: 0 !important;
583
+ box-shadow: none !important;
584
+ }
585
+ }
586
+
500
587
  @mixin nav-icon {
501
588
  display: flex;
502
589
  margin-right: convert.to-rem(5px);
590
+ flex-shrink: 0;
591
+ }
592
+
593
+ @mixin nav-icon-cta {
594
+ margin-right: 0;
595
+ color: var(--color-text-accent);
596
+ flex: 0 0 auto;
503
597
  }
504
598
 
505
599
  @mixin nav-icon-no-gap-md-down {
@@ -527,6 +621,16 @@
527
621
  gap: convert.to-rem(10px);
528
622
  margin-bottom: convert.to-rem(10px) !important;
529
623
 
624
+ a {
625
+ &:hover,
626
+ &:focus,
627
+ &:focus-visible,
628
+ &:active {
629
+ color: var(--color-text-default) !important;
630
+ text-decoration: underline;
631
+ }
632
+ }
633
+
530
634
  &:last-child {
531
635
  margin-bottom: 0 !important;
532
636
  }
@@ -652,7 +756,30 @@
652
756
  }
653
757
 
654
758
  @mixin mobile-body {
759
+ display: flex;
760
+ flex-direction: column;
761
+ row-gap: convert.to-rem(30px);
655
762
  padding: convert.to-rem(15px) 0 convert.to-rem(30px);
763
+
764
+ @include breakpoint.get("md", "down") {
765
+ row-gap: convert.to-rem(20px);
766
+ }
767
+
768
+ #{config.$class-root}__nav--vertical {
769
+ margin-top: convert.to-rem(10px);
770
+ margin-bottom: convert.to-rem(10px) !important;
771
+ }
772
+ }
773
+
774
+ @mixin mobile-cta {
775
+ a {
776
+ width: 100%;
777
+ justify-content: flex-start;
778
+ padding: convert.to-rem(13px) convert.to-rem(10px);
779
+ font-size: convert.to-rem(16px) !important;
780
+ line-height: convert.to-rem(18px);
781
+ text-decoration: none;
782
+ }
656
783
  }
657
784
 
658
785
  @mixin mobile-account {
@@ -664,23 +791,16 @@
664
791
  display: inline-flex;
665
792
  justify-content: center;
666
793
  align-items: center;
667
- margin-bottom: convert.to-rem(12px);
794
+ margin-bottom: convert.to-rem(10px);
668
795
  }
669
796
 
670
- @mixin mobile-account-name {
797
+ @mixin mobile-account-phone {
671
798
  @include generate.css-map(typographyConfig.$caption, "large");
672
799
  margin-top: 0;
673
- margin-bottom: convert.to-rem(5px);
800
+ margin-bottom: convert.to-rem(10px);
674
801
  font-weight: 700;
675
802
  }
676
803
 
677
- @mixin mobile-account-phone {
678
- font-size: convert.to-rem(16px);
679
- line-height: convert.to-rem(18px);
680
- margin-top: 0;
681
- margin-bottom: convert.to-rem(5px);
682
- }
683
-
684
804
  @mixin mobile-account-logout {
685
805
  display: inline-block;
686
806
  text-decoration: underline;
@@ -688,9 +808,11 @@
688
808
  text-decoration-thickness: auto;
689
809
  margin-bottom: convert.to-rem(20px);
690
810
  font-weight: 400 !important;
811
+ font-size: convert.to-rem(14px) !important;
812
+ line-height: convert.to-rem(16px);
691
813
  }
692
814
 
693
- @mixin mobile-account-cta {
815
+ @mixin mobile-account-button {
694
816
  @include button.base();
695
817
  @include button.layout();
696
818
  @include button.size("default");
@@ -699,7 +821,7 @@
699
821
  color: color.$white !important;
700
822
  width: 100%;
701
823
  justify-content: center;
702
- margin-bottom: convert.to-rem(40px);
824
+ margin-bottom: convert.to-rem(10px);
703
825
  text-decoration: none !important;
704
826
 
705
827
  &:hover {
@@ -715,12 +837,24 @@
715
837
  }
716
838
  }
717
839
 
840
+ @mixin mobile-account-button-secondary {
841
+ @include button.color("default");
842
+ color: inherit !important;
843
+ border-color: currentColor !important;
844
+ }
845
+
718
846
  @mixin mobile-account-links {
719
- margin-top: convert.to-rem(30px);
847
+ margin: convert.to-rem(20px) 0 !important;
848
+
849
+ @include breakpoint.get("md", "down") {
850
+ margin: convert.to-rem(15px) 0 !important;
851
+ }
720
852
  }
721
853
 
722
854
  @mixin mobile-account-link {
723
855
  text-decoration: none !important;
856
+ font-size: convert.to-rem(16px) !important;
857
+ line-height: convert.to-rem(18px) !important;
724
858
 
725
859
  &:hover,
726
860
  &:focus,
@@ -731,6 +865,61 @@
731
865
  }
732
866
  }
733
867
 
868
+ @mixin mobile-app-card {
869
+ @include card.card-base;
870
+ border: 1px solid var(--color-border-subtle);
871
+ border-radius: convert.to-rem(20px);
872
+ overflow: hidden;
873
+ background-color: var(--color-fill-subtle);
874
+
875
+ @include breakpoint.get("md", "down") {
876
+ border-radius: convert.to-rem(10px);
877
+ }
878
+ }
879
+
880
+ @mixin mobile-app-card-section {
881
+ @include card.card-section(space.get("large"));
882
+
883
+ @include breakpoint.get("md", "down") {
884
+ padding: convert.to-rem(20px);
885
+ }
886
+ }
887
+
888
+ @mixin mobile-app-card-title {
889
+ margin: 0;
890
+ margin-bottom: convert.to-rem(10px);
891
+ font-size: convert.to-rem(18px);
892
+ line-height: convert.to-rem(22px);
893
+ font-weight: 700;
894
+ }
895
+
896
+ @mixin mobile-app-card-stores {
897
+ display: flex;
898
+ align-items: center;
899
+ gap: convert.to-rem(10px);
900
+ }
901
+
902
+ @mixin mobile-app-card-store {
903
+ display: inline-flex;
904
+ align-items: center;
905
+ height: convert.to-rem(40px);
906
+
907
+ img {
908
+ display: block;
909
+ width: auto;
910
+ max-width: convert.to-rem(52px);
911
+ max-height: convert.to-rem(40px);
912
+ margin: 0;
913
+ }
914
+ }
915
+
916
+ @mixin mobile-app-card-image {
917
+ display: block;
918
+ width: 100%;
919
+ height: auto;
920
+ margin: 0;
921
+ }
922
+
734
923
  @mixin container {
735
924
  @include container.base;
736
925
  display: flex;
@@ -740,13 +929,11 @@
740
929
 
741
930
  @mixin grid {
742
931
  display: grid;
743
- grid-auto-flow: column;
744
- grid-auto-columns: 1fr;
932
+ grid-template-columns: repeat(4, minmax(0, 1fr));
745
933
  gap: convert.to-rem(20px);
746
934
 
747
935
  @include breakpoint.get("md", "down") {
748
- grid-auto-flow: row;
749
- grid-auto-columns: 100%;
936
+ grid-template-columns: 1fr;
750
937
  }
751
938
  }
752
939
 
@@ -763,6 +950,22 @@
763
950
 
764
951
  @include breakpoint.get("md", "down") {
765
952
  padding: convert.to-rem(15px);
953
+ border-radius: convert.to-rem(10px);
954
+
955
+ &.is-highlighted {
956
+ font-size: convert.to-rem(16px);
957
+ line-height: convert.to-rem(20px);
958
+
959
+ a {
960
+ font-size: inherit;
961
+ line-height: inherit;
962
+ }
963
+
964
+ .megamenu__text--large {
965
+ font-size: inherit !important;
966
+ line-height: inherit;
967
+ }
968
+ }
766
969
 
767
970
  &:not(.is-highlighted) {
768
971
  padding: 0;
@@ -770,6 +973,72 @@
770
973
  }
771
974
  }
772
975
 
976
+ @mixin tiles {
977
+ position: relative;
978
+ display: flex;
979
+ justify-content: center;
980
+ width: 100%;
981
+ margin-inline: auto;
982
+ margin-top: convert.to-rem(20px);
983
+ gap: convert.to-rem(20px);
984
+ padding: convert.to-rem(30px) 0 convert.to-rem(10px);
985
+
986
+ &::before {
987
+ content: "";
988
+ position: absolute;
989
+ top: 0;
990
+ left: 50%;
991
+ width: 100vw;
992
+ border-top: 1px solid var(--color-border-subtle);
993
+ transform: translateX(-50%);
994
+ }
995
+
996
+ @include breakpoint.get("md", "down") {
997
+ width: 100%;
998
+ justify-content: flex-start;
999
+ overflow-x: auto;
1000
+ flex-wrap: nowrap;
1001
+ gap: convert.to-rem(10px);
1002
+ overscroll-behavior-x: contain;
1003
+ scrollbar-width: none;
1004
+ margin-top: 0;
1005
+ padding: 0;
1006
+
1007
+ &::-webkit-scrollbar {
1008
+ display: none;
1009
+ }
1010
+
1011
+ &::before {
1012
+ display: none;
1013
+ }
1014
+ }
1015
+ }
1016
+
1017
+ @mixin tile-content {
1018
+ display: flex;
1019
+ flex-direction: column;
1020
+ align-items: flex-start;
1021
+ gap: convert.to-rem(5px);
1022
+ }
1023
+
1024
+ @mixin tile {
1025
+ flex: 0 1 auto;
1026
+ width: fit-content;
1027
+ max-width: 100%;
1028
+ border-radius: convert.to-rem(10px);
1029
+ color: var(--color-text-default);
1030
+ text-decoration: none;
1031
+
1032
+ @include breakpoint.get("md", "down") {
1033
+ flex: 0 0 auto;
1034
+ }
1035
+
1036
+ &:hover,
1037
+ &:focus-visible {
1038
+ text-decoration: none;
1039
+ }
1040
+ }
1041
+
773
1042
  @mixin text-large {
774
1043
  font-size: convert.to-rem(28px) !important;
775
1044
  line-height: convert.to-rem(32px);
@@ -860,12 +1129,12 @@
860
1129
  height: 0;
861
1130
  transition: height 0.2s ease-in-out;
862
1131
 
863
- .megamenu.is-sticky + & {
1132
+ .megamenu:not(.non-sticky) + & {
864
1133
  height: var(--header-height, #{convert.to-rem(118px)});
865
1134
  }
866
1135
 
867
1136
  @include breakpoint.get("md", "down") {
868
- .megamenu.is-sticky + & {
1137
+ .megamenu:not(.non-sticky) + & {
869
1138
  height: convert.to-rem(58px);
870
1139
  }
871
1140
  }
@@ -875,12 +1144,12 @@
875
1144
  height: 0;
876
1145
  transition: height 0.2s ease-in-out;
877
1146
 
878
- .megamenu.is-sticky + & {
1147
+ .megamenu:not(.non-sticky) + & {
879
1148
  height: var(--header-height, #{convert.to-rem(78px)});
880
1149
  }
881
1150
 
882
1151
  @include breakpoint.get("md", "down") {
883
- .megamenu.is-sticky + & {
1152
+ .megamenu:not(.non-sticky) + & {
884
1153
  height: convert.to-rem(58px);
885
1154
  }
886
1155
  }
@@ -907,17 +1176,20 @@
907
1176
  background: none;
908
1177
  border: none;
909
1178
  font-weight: 700;
910
- font-size: convert.to-rem(18px);
1179
+ font-size: convert.to-rem(16px);
1180
+ line-height: convert.to-rem(18px);
911
1181
  color: var(--color-text-default);
912
1182
 
913
1183
  &[aria-expanded="true"] {
1184
+ color: var(--color-text-default) !important;
914
1185
  border-bottom: 2px solid var(--color-border-accent);
915
1186
  }
916
1187
  }
917
1188
 
918
1189
  @mixin accordion-title {
919
1190
  @include accordion.title;
920
- font-size: convert.to-rem(18px);
1191
+ font-size: convert.to-rem(16px);
1192
+ line-height: convert.to-rem(18px);
921
1193
  font-weight: 700;
922
1194
  }
923
1195
 
@@ -928,6 +1200,7 @@
928
1200
  [aria-expanded="true"] > &,
929
1201
  &.is-active {
930
1202
  @include accordion.icon-active;
1203
+ color: var(--color-text-default) !important;
931
1204
  transform: rotate(270deg);
932
1205
  }
933
1206
  }
@@ -1108,6 +1381,12 @@
1108
1381
  }
1109
1382
  }
1110
1383
 
1384
+ @mixin hide-lg-only {
1385
+ @include breakpoint.get("lg", "only") {
1386
+ display: none !important;
1387
+ }
1388
+ }
1389
+
1111
1390
  @mixin hide-lg-up {
1112
1391
  @include breakpoint.get("lg") {
1113
1392
  display: none !important;
@@ -1,6 +1,8 @@
1
1
  @use "../../Container/styles/mixins" as container;
2
2
  @use "../../Accordion/styles/mixins" as accordion;
3
+ @use "../../Tile/styles/mixins" as tile;
3
4
  @use "../../../styles/typography/mixins" as typography;
5
+ @use "../../../styles/tools/convert";
4
6
 
5
7
  @use "./mixins";
6
8
  @use "./config";
@@ -70,6 +72,10 @@
70
72
  &--no-line {
71
73
  @include mixins.nav-link-no-line;
72
74
  }
75
+
76
+ &--cta {
77
+ @include mixins.nav-link-cta;
78
+ }
73
79
  }
74
80
 
75
81
  &-cart-icon {
@@ -82,6 +88,14 @@
82
88
  &--indicator {
83
89
  @include mixins.nav-button-indicator;
84
90
  }
91
+
92
+ &--select {
93
+ @include mixins.nav-select-wrapper;
94
+ }
95
+ }
96
+
97
+ &-select {
98
+ @include mixins.nav-select;
85
99
  }
86
100
 
87
101
  &-icon {
@@ -90,6 +104,10 @@
90
104
  &--no-gap-md-down {
91
105
  @include mixins.nav-icon-no-gap-md-down;
92
106
  }
107
+
108
+ &--cta {
109
+ @include mixins.nav-icon-cta;
110
+ }
93
111
  }
94
112
 
95
113
  &-spacer {
@@ -140,6 +158,10 @@
140
158
  @include mixins.mobile-body;
141
159
  }
142
160
 
161
+ &-cta {
162
+ @include mixins.mobile-cta;
163
+ }
164
+
143
165
  &-account {
144
166
  @include mixins.mobile-account;
145
167
 
@@ -147,10 +169,6 @@
147
169
  @include mixins.mobile-account-avatar;
148
170
  }
149
171
 
150
- &-name {
151
- @include mixins.mobile-account-name;
152
- }
153
-
154
172
  &-phone {
155
173
  @include mixins.mobile-account-phone;
156
174
  }
@@ -159,10 +177,6 @@
159
177
  @include mixins.mobile-account-logout;
160
178
  }
161
179
 
162
- &-cta {
163
- @include mixins.mobile-account-cta;
164
- }
165
-
166
180
  &-links {
167
181
  @include mixins.mobile-account-links;
168
182
  }
@@ -171,6 +185,39 @@
171
185
  @include mixins.mobile-account-link;
172
186
  }
173
187
  }
188
+
189
+ &-app-card {
190
+ @include mixins.mobile-app-card;
191
+
192
+ &-section {
193
+ @include mixins.mobile-app-card-section;
194
+ }
195
+
196
+ &-title {
197
+ @include mixins.mobile-app-card-title;
198
+ }
199
+
200
+ &-stores {
201
+ @include mixins.mobile-app-card-stores;
202
+ }
203
+
204
+ &-store {
205
+ @include mixins.mobile-app-card-store;
206
+ }
207
+
208
+ &-image {
209
+ @include mixins.mobile-app-card-image;
210
+ }
211
+ }
212
+ }
213
+
214
+ &__button {
215
+ @include mixins.mobile-account-button;
216
+
217
+ &--secondary {
218
+ @include mixins.mobile-account-button-secondary;
219
+ margin-bottom: 0;
220
+ }
174
221
  }
175
222
 
176
223
  &__container {
@@ -185,6 +232,38 @@
185
232
  @include mixins.card;
186
233
  }
187
234
 
235
+ &__tiles {
236
+ @include mixins.tiles;
237
+ }
238
+
239
+ &__tile {
240
+ @include tile.tile-base;
241
+ @include mixins.tile;
242
+
243
+ &-body {
244
+ display: flex;
245
+ @include tile.tile-body-compact;
246
+ @include tile.tile-body-icon-ratio;
247
+ flex-direction: row;
248
+ justify-content: flex-start;
249
+ background-color: var(--color-background-primary);
250
+ }
251
+
252
+ &-content {
253
+ @include mixins.tile-content;
254
+ }
255
+
256
+ &:hover,
257
+ &:focus,
258
+ &:focus-visible,
259
+ &:active {
260
+ color: var(--color-text-default) !important;
261
+ border-color: var(--color-border-accent);
262
+ outline: 2px solid var(--color-border-accent);
263
+ outline-offset: -2px;
264
+ }
265
+ }
266
+
188
267
  &__text--large {
189
268
  @include mixins.text-large;
190
269
  }
@@ -273,6 +352,10 @@
273
352
  @include mixins.hide-md-down;
274
353
  }
275
354
 
355
+ &--hide-lg-only {
356
+ @include mixins.hide-lg-only;
357
+ }
358
+
276
359
  &--hide-lg-up {
277
360
  @include mixins.hide-lg-up;
278
361
  }