@orangesk/orange-design-system 3.3.1 → 3.5.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 (87) 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/Carousel/style.css +1 -1
  7. package/build/components/Carousel/style.css.map +1 -1
  8. package/build/components/FeatureAccordion/style.css +1 -1
  9. package/build/components/FeatureAccordion/style.css.map +1 -1
  10. package/build/components/Footer/style.css +1 -1
  11. package/build/components/Footer/style.css.map +1 -1
  12. package/build/components/Megamenu/style.css +1 -1
  13. package/build/components/Megamenu/style.css.map +1 -1
  14. package/build/components/PromoBanner/style.css +1 -1
  15. package/build/components/PromoBanner/style.css.map +1 -1
  16. package/build/components/Table/style.css +1 -1
  17. package/build/components/Table/style.css.map +1 -1
  18. package/build/components/Tooltip/style.css +1 -1
  19. package/build/components/Tooltip/style.css.map +1 -1
  20. package/build/components/index.js +1 -1
  21. package/build/components/index.js.map +1 -1
  22. package/build/components/tsconfig.tsbuildinfo +1 -1
  23. package/build/components/types/index.d.ts +23 -4
  24. package/build/components/types/src/components/Carousel/Carousel.d.ts +3 -1
  25. package/build/components/types/src/components/Carousel/Carousel.static.d.ts +1 -0
  26. package/build/components/types/src/components/Carousel/constants.d.ts +1 -0
  27. package/build/components/types/src/components/Megamenu/Megamenu.d.ts +12 -2
  28. package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +1 -1
  29. package/build/components/types/src/components/Megamenu/MyOrangeMobilePanel.d.ts +3 -1
  30. package/build/components/types/src/components/Megamenu/constants.d.ts +19 -2
  31. package/build/components/types/src/components/Megamenu/data.d.ts +8 -0
  32. package/build/components/types/src/components/Megamenu/shared.d.ts +40 -0
  33. package/build/huawei--dark.svg +4 -0
  34. package/build/huawei--white.svg +5 -0
  35. package/build/huawei.svg +4 -0
  36. package/build/images/phones.png +0 -0
  37. package/build/lib/base.css +1 -1
  38. package/build/lib/base.css.map +1 -1
  39. package/build/lib/components.css +1 -1
  40. package/build/lib/components.css.map +1 -1
  41. package/build/lib/footer.css +1 -1
  42. package/build/lib/footer.css.map +1 -1
  43. package/build/lib/megamenu.css +1 -1
  44. package/build/lib/megamenu.css.map +1 -1
  45. package/build/lib/megamenu.js +1 -1
  46. package/build/lib/megamenu.js.map +1 -1
  47. package/build/lib/scripts.js +1 -1
  48. package/build/lib/scripts.js.map +1 -1
  49. package/build/lib/style.css +1 -1
  50. package/build/lib/style.css.map +1 -1
  51. package/build/lib/utilities.css +1 -1
  52. package/build/lib/utilities.css.map +1 -1
  53. package/build/play--dark.svg +7 -0
  54. package/build/play--white.svg +7 -0
  55. package/build/play.svg +7 -0
  56. package/package.json +15 -15
  57. package/src/components/BodyBanner/styles/mixins.scss +6 -0
  58. package/src/components/Carousel/Carousel.static.ts +25 -9
  59. package/src/components/Carousel/Carousel.tsx +5 -0
  60. package/src/components/Carousel/constants.ts +1 -0
  61. package/src/components/Carousel/styles/style.scss +2 -1
  62. package/src/components/Carousel/tests/Carousel.static.test.jsx +85 -0
  63. package/src/components/Carousel/tests/Carousel.unit.test.jsx +9 -0
  64. package/src/components/FeatureAccordion/styles/mixins.scss +6 -0
  65. package/src/components/Footer/styles/style.scss +2 -0
  66. package/src/components/Megamenu/LogoJeTu.tsx +12 -7
  67. package/src/components/Megamenu/Megamenu.static.ts +1 -1
  68. package/src/components/Megamenu/Megamenu.tsx +432 -316
  69. package/src/components/Megamenu/MegamenuBlog.tsx +90 -123
  70. package/src/components/Megamenu/MyOrangeMobilePanel.tsx +129 -84
  71. package/src/components/Megamenu/constants.ts +19 -2
  72. package/src/components/Megamenu/data.ts +53 -15
  73. package/src/components/Megamenu/shared.tsx +154 -0
  74. package/src/components/Megamenu/styles/mixins.scss +313 -29
  75. package/src/components/Megamenu/styles/style.scss +91 -8
  76. package/src/components/Megamenu/tests/Megamenu.unit.test.jsx +108 -4
  77. package/src/components/PromoBanner/PromoBanner.tsx +0 -2
  78. package/src/components/PromoBanner/styles/mixins.scss +3 -4
  79. package/src/components/PromoBanner/tests/PromoBanner.unit.test.jsx +3 -3
  80. package/src/components/Table/styles/config.scss +1 -0
  81. package/src/components/Table/styles/style.scss +6 -0
  82. package/src/components/Tooltip/styles/style.scss +5 -0
  83. package/src/styles/base/globals.scss +5 -5
  84. package/src/styles/base/styleguide.scss +1 -1
  85. package/src/styles/export/color.js +1 -1
  86. package/src/styles/shame.scss +1 -1
  87. 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);
@@ -417,15 +461,29 @@
417
461
  @mixin nav-cart-icon {
418
462
  position: relative;
419
463
 
420
- &:after {
421
- content: attr(data-items-in-cart);
464
+ &::after {
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
+ display: none;
474
+ }
475
+
476
+ &[data-cart-has-items]::after {
477
+ display: block;
478
+ }
479
+
480
+ &[data-items-in-cart]::after {
481
+ content: attr(data-items-in-cart);
425
482
  width: convert.to-rem(18px);
426
483
  height: convert.to-rem(18px);
427
484
  background-color: var(--color-icon-information);
428
- border-radius: 50%;
485
+ right: -25%;
486
+ top: -25%;
429
487
  font-size: convert.to-rem(14px);
430
488
  color: color.$white;
431
489
  display: flex;
@@ -476,6 +534,7 @@
476
534
  }
477
535
 
478
536
  @mixin nav-button-indicator {
537
+ width: fit-content;
479
538
  padding: 0 convert.to-rem(20px) 0 0;
480
539
 
481
540
  &:after {
@@ -490,6 +549,7 @@
490
549
  border-style: solid;
491
550
  border-width: 7px 7px 0;
492
551
  transition: transform 0.1s ease-out;
552
+ pointer-events: none;
493
553
  }
494
554
 
495
555
  &.is-active:after {
@@ -497,9 +557,48 @@
497
557
  }
498
558
  }
499
559
 
560
+ @mixin nav-select-wrapper {
561
+ &:hover,
562
+ &:focus,
563
+ &:active,
564
+ &.is-active {
565
+ box-shadow: none;
566
+ }
567
+ }
568
+
569
+ @mixin nav-select {
570
+ appearance: none;
571
+ -webkit-appearance: none;
572
+ border: 0;
573
+ padding: 0;
574
+ margin: 0;
575
+ width: fit-content;
576
+ field-sizing: content;
577
+ color: inherit;
578
+ background: transparent;
579
+ font: inherit;
580
+ line-height: inherit;
581
+ cursor: pointer;
582
+ outline: none !important;
583
+
584
+ &:focus,
585
+ &:focus-visible {
586
+ outline: none !important;
587
+ border: 0 !important;
588
+ box-shadow: none !important;
589
+ }
590
+ }
591
+
500
592
  @mixin nav-icon {
501
593
  display: flex;
502
594
  margin-right: convert.to-rem(5px);
595
+ flex-shrink: 0;
596
+ }
597
+
598
+ @mixin nav-icon-cta {
599
+ margin-right: 0;
600
+ color: var(--color-text-accent);
601
+ flex: 0 0 auto;
503
602
  }
504
603
 
505
604
  @mixin nav-icon-no-gap-md-down {
@@ -527,6 +626,16 @@
527
626
  gap: convert.to-rem(10px);
528
627
  margin-bottom: convert.to-rem(10px) !important;
529
628
 
629
+ a {
630
+ &:hover,
631
+ &:focus,
632
+ &:focus-visible,
633
+ &:active {
634
+ color: var(--color-text-default) !important;
635
+ text-decoration: underline;
636
+ }
637
+ }
638
+
530
639
  &:last-child {
531
640
  margin-bottom: 0 !important;
532
641
  }
@@ -652,7 +761,30 @@
652
761
  }
653
762
 
654
763
  @mixin mobile-body {
764
+ display: flex;
765
+ flex-direction: column;
766
+ row-gap: convert.to-rem(30px);
655
767
  padding: convert.to-rem(15px) 0 convert.to-rem(30px);
768
+
769
+ @include breakpoint.get("md", "down") {
770
+ row-gap: convert.to-rem(20px);
771
+ }
772
+
773
+ #{config.$class-root}__nav--vertical {
774
+ margin-top: convert.to-rem(10px);
775
+ margin-bottom: convert.to-rem(10px) !important;
776
+ }
777
+ }
778
+
779
+ @mixin mobile-cta {
780
+ a {
781
+ width: 100%;
782
+ justify-content: flex-start;
783
+ padding: convert.to-rem(13px) convert.to-rem(10px);
784
+ font-size: convert.to-rem(16px) !important;
785
+ line-height: convert.to-rem(18px);
786
+ text-decoration: none;
787
+ }
656
788
  }
657
789
 
658
790
  @mixin mobile-account {
@@ -664,23 +796,16 @@
664
796
  display: inline-flex;
665
797
  justify-content: center;
666
798
  align-items: center;
667
- margin-bottom: convert.to-rem(12px);
799
+ margin-bottom: convert.to-rem(10px);
668
800
  }
669
801
 
670
- @mixin mobile-account-name {
802
+ @mixin mobile-account-phone {
671
803
  @include generate.css-map(typographyConfig.$caption, "large");
672
804
  margin-top: 0;
673
- margin-bottom: convert.to-rem(5px);
805
+ margin-bottom: convert.to-rem(10px);
674
806
  font-weight: 700;
675
807
  }
676
808
 
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
809
  @mixin mobile-account-logout {
685
810
  display: inline-block;
686
811
  text-decoration: underline;
@@ -688,9 +813,11 @@
688
813
  text-decoration-thickness: auto;
689
814
  margin-bottom: convert.to-rem(20px);
690
815
  font-weight: 400 !important;
816
+ font-size: convert.to-rem(14px) !important;
817
+ line-height: convert.to-rem(16px);
691
818
  }
692
819
 
693
- @mixin mobile-account-cta {
820
+ @mixin mobile-account-button {
694
821
  @include button.base();
695
822
  @include button.layout();
696
823
  @include button.size("default");
@@ -699,7 +826,7 @@
699
826
  color: color.$white !important;
700
827
  width: 100%;
701
828
  justify-content: center;
702
- margin-bottom: convert.to-rem(40px);
829
+ margin-bottom: convert.to-rem(10px);
703
830
  text-decoration: none !important;
704
831
 
705
832
  &:hover {
@@ -715,12 +842,24 @@
715
842
  }
716
843
  }
717
844
 
845
+ @mixin mobile-account-button-secondary {
846
+ @include button.color("default");
847
+ color: inherit !important;
848
+ border-color: currentColor !important;
849
+ }
850
+
718
851
  @mixin mobile-account-links {
719
- margin-top: convert.to-rem(30px);
852
+ margin: convert.to-rem(20px) 0 !important;
853
+
854
+ @include breakpoint.get("md", "down") {
855
+ margin: convert.to-rem(15px) 0 !important;
856
+ }
720
857
  }
721
858
 
722
859
  @mixin mobile-account-link {
723
860
  text-decoration: none !important;
861
+ font-size: convert.to-rem(16px) !important;
862
+ line-height: convert.to-rem(18px) !important;
724
863
 
725
864
  &:hover,
726
865
  &:focus,
@@ -731,6 +870,61 @@
731
870
  }
732
871
  }
733
872
 
873
+ @mixin mobile-app-card {
874
+ @include card.card-base;
875
+ border: 1px solid var(--color-border-subtle);
876
+ border-radius: convert.to-rem(20px);
877
+ overflow: hidden;
878
+ background-color: var(--color-fill-subtle);
879
+
880
+ @include breakpoint.get("md", "down") {
881
+ border-radius: convert.to-rem(10px);
882
+ }
883
+ }
884
+
885
+ @mixin mobile-app-card-section {
886
+ @include card.card-section(space.get("large"));
887
+
888
+ @include breakpoint.get("md", "down") {
889
+ padding: convert.to-rem(20px);
890
+ }
891
+ }
892
+
893
+ @mixin mobile-app-card-title {
894
+ margin: 0;
895
+ margin-bottom: convert.to-rem(10px);
896
+ font-size: convert.to-rem(18px);
897
+ line-height: convert.to-rem(22px);
898
+ font-weight: 700;
899
+ }
900
+
901
+ @mixin mobile-app-card-stores {
902
+ display: flex;
903
+ align-items: center;
904
+ gap: convert.to-rem(10px);
905
+ }
906
+
907
+ @mixin mobile-app-card-store {
908
+ display: inline-flex;
909
+ align-items: center;
910
+ height: convert.to-rem(40px);
911
+
912
+ img {
913
+ display: block;
914
+ width: auto;
915
+ max-width: convert.to-rem(52px);
916
+ max-height: convert.to-rem(40px);
917
+ margin: 0;
918
+ }
919
+ }
920
+
921
+ @mixin mobile-app-card-image {
922
+ display: block;
923
+ width: 100%;
924
+ height: auto;
925
+ margin: 0;
926
+ }
927
+
734
928
  @mixin container {
735
929
  @include container.base;
736
930
  display: flex;
@@ -740,13 +934,11 @@
740
934
 
741
935
  @mixin grid {
742
936
  display: grid;
743
- grid-auto-flow: column;
744
- grid-auto-columns: 1fr;
937
+ grid-template-columns: repeat(4, minmax(0, 1fr));
745
938
  gap: convert.to-rem(20px);
746
939
 
747
940
  @include breakpoint.get("md", "down") {
748
- grid-auto-flow: row;
749
- grid-auto-columns: 100%;
941
+ grid-template-columns: 1fr;
750
942
  }
751
943
  }
752
944
 
@@ -763,6 +955,22 @@
763
955
 
764
956
  @include breakpoint.get("md", "down") {
765
957
  padding: convert.to-rem(15px);
958
+ border-radius: convert.to-rem(10px);
959
+
960
+ &.is-highlighted {
961
+ font-size: convert.to-rem(16px);
962
+ line-height: convert.to-rem(20px);
963
+
964
+ a {
965
+ font-size: inherit;
966
+ line-height: inherit;
967
+ }
968
+
969
+ .megamenu__text--large {
970
+ font-size: inherit !important;
971
+ line-height: inherit;
972
+ }
973
+ }
766
974
 
767
975
  &:not(.is-highlighted) {
768
976
  padding: 0;
@@ -770,6 +978,72 @@
770
978
  }
771
979
  }
772
980
 
981
+ @mixin tiles {
982
+ position: relative;
983
+ display: flex;
984
+ justify-content: center;
985
+ width: 100%;
986
+ margin-inline: auto;
987
+ margin-top: convert.to-rem(20px);
988
+ gap: convert.to-rem(20px);
989
+ padding: convert.to-rem(30px) 0 convert.to-rem(10px);
990
+
991
+ &::before {
992
+ content: "";
993
+ position: absolute;
994
+ top: 0;
995
+ left: 50%;
996
+ width: 100vw;
997
+ border-top: 1px solid var(--color-border-subtle);
998
+ transform: translateX(-50%);
999
+ }
1000
+
1001
+ @include breakpoint.get("md", "down") {
1002
+ width: 100%;
1003
+ justify-content: flex-start;
1004
+ overflow-x: auto;
1005
+ flex-wrap: nowrap;
1006
+ gap: convert.to-rem(10px);
1007
+ overscroll-behavior-x: contain;
1008
+ scrollbar-width: none;
1009
+ margin-top: 0;
1010
+ padding: 0;
1011
+
1012
+ &::-webkit-scrollbar {
1013
+ display: none;
1014
+ }
1015
+
1016
+ &::before {
1017
+ display: none;
1018
+ }
1019
+ }
1020
+ }
1021
+
1022
+ @mixin tile-content {
1023
+ display: flex;
1024
+ flex-direction: column;
1025
+ align-items: flex-start;
1026
+ gap: convert.to-rem(5px);
1027
+ }
1028
+
1029
+ @mixin tile {
1030
+ flex: 0 1 auto;
1031
+ width: fit-content;
1032
+ max-width: 100%;
1033
+ border-radius: convert.to-rem(10px);
1034
+ color: var(--color-text-default);
1035
+ text-decoration: none;
1036
+
1037
+ @include breakpoint.get("md", "down") {
1038
+ flex: 0 0 auto;
1039
+ }
1040
+
1041
+ &:hover,
1042
+ &:focus-visible {
1043
+ text-decoration: none;
1044
+ }
1045
+ }
1046
+
773
1047
  @mixin text-large {
774
1048
  font-size: convert.to-rem(28px) !important;
775
1049
  line-height: convert.to-rem(32px);
@@ -860,12 +1134,12 @@
860
1134
  height: 0;
861
1135
  transition: height 0.2s ease-in-out;
862
1136
 
863
- .megamenu.is-sticky + & {
1137
+ .megamenu:not(.non-sticky) + & {
864
1138
  height: var(--header-height, #{convert.to-rem(118px)});
865
1139
  }
866
1140
 
867
1141
  @include breakpoint.get("md", "down") {
868
- .megamenu.is-sticky + & {
1142
+ .megamenu:not(.non-sticky) + & {
869
1143
  height: convert.to-rem(58px);
870
1144
  }
871
1145
  }
@@ -875,12 +1149,12 @@
875
1149
  height: 0;
876
1150
  transition: height 0.2s ease-in-out;
877
1151
 
878
- .megamenu.is-sticky + & {
1152
+ .megamenu:not(.non-sticky) + & {
879
1153
  height: var(--header-height, #{convert.to-rem(78px)});
880
1154
  }
881
1155
 
882
1156
  @include breakpoint.get("md", "down") {
883
- .megamenu.is-sticky + & {
1157
+ .megamenu:not(.non-sticky) + & {
884
1158
  height: convert.to-rem(58px);
885
1159
  }
886
1160
  }
@@ -907,17 +1181,20 @@
907
1181
  background: none;
908
1182
  border: none;
909
1183
  font-weight: 700;
910
- font-size: convert.to-rem(18px);
1184
+ font-size: convert.to-rem(16px);
1185
+ line-height: convert.to-rem(18px);
911
1186
  color: var(--color-text-default);
912
1187
 
913
1188
  &[aria-expanded="true"] {
1189
+ color: var(--color-text-default) !important;
914
1190
  border-bottom: 2px solid var(--color-border-accent);
915
1191
  }
916
1192
  }
917
1193
 
918
1194
  @mixin accordion-title {
919
1195
  @include accordion.title;
920
- font-size: convert.to-rem(18px);
1196
+ font-size: convert.to-rem(16px);
1197
+ line-height: convert.to-rem(18px);
921
1198
  font-weight: 700;
922
1199
  }
923
1200
 
@@ -928,6 +1205,7 @@
928
1205
  [aria-expanded="true"] > &,
929
1206
  &.is-active {
930
1207
  @include accordion.icon-active;
1208
+ color: var(--color-text-default) !important;
931
1209
  transform: rotate(270deg);
932
1210
  }
933
1211
  }
@@ -1108,6 +1386,12 @@
1108
1386
  }
1109
1387
  }
1110
1388
 
1389
+ @mixin hide-lg-only {
1390
+ @include breakpoint.get("lg", "only") {
1391
+ display: none !important;
1392
+ }
1393
+ }
1394
+
1111
1395
  @mixin hide-lg-up {
1112
1396
  @include breakpoint.get("lg") {
1113
1397
  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
  }