@orangesk/orange-design-system 2.0.0-beta.30 → 2.0.0-beta.32

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 (82) hide show
  1. package/README.md +7 -7
  2. package/build/appstore.svg +31 -0
  3. package/build/components/Breadcrumbs/style.css +1 -1
  4. package/build/components/Breadcrumbs/style.css.map +1 -1
  5. package/build/components/Carousel/style.css +1 -1
  6. package/build/components/Carousel/style.css.map +1 -1
  7. package/build/components/Footer/style.css +1 -1
  8. package/build/components/Footer/style.css.map +1 -1
  9. package/build/components/Megamenu/style.css +1 -1
  10. package/build/components/Megamenu/style.css.map +1 -1
  11. package/build/components/Preview/style.css +1 -1
  12. package/build/components/Preview/style.css.map +1 -1
  13. package/build/components/PromoBanner/style.css +1 -1
  14. package/build/components/PromoBanner/style.css.map +1 -1
  15. package/build/components/index.js +1 -1
  16. package/build/components/index.js.map +1 -1
  17. package/build/components/tsconfig.tsbuildinfo +1 -1
  18. package/build/components/types/index.d.ts +17 -2
  19. package/build/components/types/src/components/Carousel/Carousel.static.d.ts +1 -11
  20. package/build/components/types/src/components/Footer/Footer.static.d.ts +21 -0
  21. package/build/components/types/src/components/Footer/constants.d.ts +12 -2
  22. package/build/components/types/src/components/Footer/data.d.ts +5 -0
  23. package/build/components/types/src/components/Footer/static.d.ts +21 -0
  24. package/build/components/types/src/components/Megamenu/Megamenu.d.ts +4 -2
  25. package/build/components/types/src/components/Megamenu/Megamenu.static.d.ts +16 -5
  26. package/build/components/types/src/components/Megamenu/MegamenuBlog.d.ts +1 -1
  27. package/build/components/types/src/components/Megamenu/MegamenuSearchContent.d.ts +10 -0
  28. package/build/components/types/src/components/Megamenu/MyOrangeMobilePanel.d.ts +6 -0
  29. package/build/components/types/src/components/Megamenu/constants.d.ts +15 -0
  30. package/build/components/types/src/components/Megamenu/data.d.ts +21 -0
  31. package/build/components/types/src/components/Megamenu/ids.d.ts +11 -0
  32. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +5 -1
  33. package/build/components/types/src/components/index.d.ts +2 -1
  34. package/build/googleplay.svg +52 -0
  35. package/build/lib/base.css.map +1 -1
  36. package/build/lib/components.css +1 -1
  37. package/build/lib/components.css.map +1 -1
  38. package/build/lib/footer.css +1 -1
  39. package/build/lib/footer.css.map +1 -1
  40. package/build/lib/footer.js +2 -0
  41. package/build/lib/footer.js.map +1 -0
  42. package/build/lib/megamenu.css +1 -1
  43. package/build/lib/megamenu.css.map +1 -1
  44. package/build/lib/megamenu.js +1 -1
  45. package/build/lib/megamenu.js.map +1 -1
  46. package/build/lib/scripts.js +1 -1
  47. package/build/lib/scripts.js.map +1 -1
  48. package/build/lib/style.css +1 -1
  49. package/build/lib/style.css.map +1 -1
  50. package/build/lib/tsconfig.tsbuildinfo +1 -1
  51. package/build/lib/utilities.css +1 -1
  52. package/build/lib/utilities.css.map +1 -1
  53. package/build/search-index.json +8 -4
  54. package/package.json +12 -12
  55. package/src/components/Breadcrumbs/styles/mixins.scss +6 -1
  56. package/src/components/Carousel/Carousel.static.ts +60 -89
  57. package/src/components/Carousel/styles/mixins.scss +4 -12
  58. package/src/components/Footer/Footer.static.ts +130 -0
  59. package/src/components/Footer/Footer.tsx +142 -62
  60. package/src/components/Footer/constants.ts +12 -2
  61. package/src/components/Footer/data.ts +13 -0
  62. package/src/components/Footer/static.ts +59 -0
  63. package/src/components/Footer/styles/mixins.scss +122 -18
  64. package/src/components/Footer/styles/style.scss +63 -4
  65. package/src/components/Footer/tests/Footer.unit.test.js +2 -2
  66. package/src/components/Megamenu/Megamenu.static.ts +200 -90
  67. package/src/components/Megamenu/Megamenu.tsx +363 -615
  68. package/src/components/Megamenu/MegamenuBlog.tsx +192 -73
  69. package/src/components/Megamenu/MegamenuSearchContent.tsx +74 -0
  70. package/src/components/Megamenu/MyOrangeMobilePanel.tsx +127 -0
  71. package/src/components/Megamenu/constants.ts +15 -0
  72. package/src/components/Megamenu/data.ts +231 -0
  73. package/src/components/Megamenu/ids.ts +35 -0
  74. package/src/components/Megamenu/styles/mixins.scss +223 -16
  75. package/src/components/Megamenu/styles/style.scss +64 -0
  76. package/src/components/Preview/styles/style.scss +2 -1
  77. package/src/components/PromoBanner/PromoBanner.tsx +12 -1
  78. package/src/components/PromoBanner/styles/mixins.scss +31 -7
  79. package/src/components/PromoBanner/styles/style.scss +41 -0
  80. package/src/components/PromoBanner/tests/PromoBanner.unit.test.js +44 -0
  81. package/src/components/index.ts +3 -0
  82. package/src/styles/utilities/horizontal-scroll.scss +28 -11
@@ -0,0 +1,231 @@
1
+ export type MenuItem = {
2
+ label: string;
3
+ href?: string;
4
+ isLarge?: boolean;
5
+ tag?: string;
6
+ };
7
+
8
+ type MenuGroup = {
9
+ id: string;
10
+ heading: string;
11
+ items: MenuItem[];
12
+ };
13
+
14
+ export type MenuSection = {
15
+ id: string;
16
+ label: string;
17
+ featured: MenuGroup;
18
+ columns: MenuGroup[][];
19
+ };
20
+
21
+ export const menuSections: MenuSection[] = [
22
+ {
23
+ id: "volania",
24
+ label: "Volania",
25
+ featured: {
26
+ id: "odporucane-sluzby",
27
+ heading: "Odporúčané služby",
28
+ items: [
29
+ { label: "Paušály", isLarge: true },
30
+ { label: "Prima Voľba", isLarge: true },
31
+ { label: "Roaming", isLarge: true },
32
+ ],
33
+ },
34
+ columns: [
35
+ [
36
+ {
37
+ id: "pausaly",
38
+ heading: "Paušály",
39
+ items: [
40
+ { label: "Prehľad paušálov" },
41
+ { label: "Chcem nové číslo" },
42
+ { label: "Yoxo paušál", tag: "Novinka" },
43
+ ],
44
+ },
45
+ {
46
+ id: "s-kreditom",
47
+ heading: "Volania s kreditom",
48
+ items: [
49
+ { label: "Prima Voľba" },
50
+ { label: "Prima Kids" },
51
+ { label: "FunFón" },
52
+ ],
53
+ },
54
+ {
55
+ id: "zahranicie",
56
+ heading: "Zahraničie",
57
+ items: [
58
+ { label: "Roaming" },
59
+ { label: "Cestovateľské balíky" },
60
+ { label: "Volania do zahraničia" },
61
+ { label: "Regulovaný roaming" },
62
+ ],
63
+ },
64
+ ],
65
+ [
66
+ {
67
+ id: "nase-sluzby",
68
+ heading: "Ste náš zákazník?",
69
+ items: [
70
+ { label: "Chcem zmeniť paušál" },
71
+ { label: "Dobiť kredit" },
72
+ { label: "Predĺžiť služby" },
73
+ { label: "Chcem nový telefón" },
74
+ { label: "Navzájom zadarmo" },
75
+ { label: "Orange Svojim" },
76
+ { label: "Odporučte Orange" },
77
+ { label: "Ostatné služby" },
78
+ ],
79
+ },
80
+ ],
81
+ ],
82
+ },
83
+ {
84
+ id: "internet-tv",
85
+ label: "Internet, TV",
86
+ featured: {
87
+ id: "odporucane-sluzby",
88
+ heading: "Odporúčané služby",
89
+ items: [
90
+ { label: "Internet na doma", isLarge: true },
91
+ { label: "Mobilný internet", isLarge: true },
92
+ { label: "Televízia", isLarge: true },
93
+ { label: "Internet + TV", isLarge: true },
94
+ ],
95
+ },
96
+ columns: [
97
+ [
98
+ {
99
+ id: "pausaly",
100
+ heading: "Internet",
101
+ items: [
102
+ { label: "Prehľad internetu" },
103
+ { label: "Mobilný internet" },
104
+ { label: "Bezpečný internet so sebou" },
105
+ { label: "Domáca linka k internetu" },
106
+ ],
107
+ },
108
+ {
109
+ id: "televizia",
110
+ heading: "Televízia",
111
+ items: [
112
+ { label: "Najlepšia TV na doma" },
113
+ { label: "TV cez satelit" },
114
+ { label: "TV cez internet" },
115
+ { label: "Novinky na Orange TV" },
116
+ ],
117
+ },
118
+ {
119
+ id: "internet-televizia",
120
+ heading: "Internet + televízia",
121
+ items: [
122
+ { label: "Ponuka Love" },
123
+ { label: "Výhodný pár zariadení" },
124
+ { label: "Volania do zahraničia" },
125
+ { label: "Regulovaný roaming" },
126
+ ],
127
+ },
128
+ ],
129
+ [
130
+ {
131
+ id: "nase-sluzby",
132
+ heading: "Ste náš zákazník?",
133
+ items: [
134
+ { label: "Predĺžiť služby" },
135
+ { label: "Nový internet" },
136
+ { label: "Nová televízia" },
137
+ { label: "Odporučte Orange" },
138
+ ],
139
+ },
140
+ ],
141
+ ],
142
+ },
143
+ {
144
+ id: "telefony-zariadenia",
145
+ label: "Telefóny a zariadenia",
146
+ featured: {
147
+ id: "odporucane-sluzby",
148
+ heading: "Odporúčané služby",
149
+ items: [
150
+ { label: "iPhone 15", isLarge: true },
151
+ { label: "iPhone 15 Pro", isLarge: true },
152
+ { label: "Samsung Z Fold", isLarge: true },
153
+ { label: "Motorola", isLarge: true },
154
+ { label: "Oppo", isLarge: true },
155
+ ],
156
+ },
157
+ columns: [
158
+ [
159
+ {
160
+ id: "telefony",
161
+ heading: "Telefóny",
162
+ items: [
163
+ { label: "Apple" },
164
+ { label: "Samsung" },
165
+ { label: "Huawei" },
166
+ { label: "Honor" },
167
+ { label: "Motorola" },
168
+ { label: "Oppo" },
169
+ ],
170
+ },
171
+ {
172
+ id: "tablety-a-notebooky",
173
+ heading: "Tablety a notebooky",
174
+ items: [
175
+ { label: "Lenovo" },
176
+ { label: "Samsung" },
177
+ { label: "Honor" },
178
+ { label: "Apple" },
179
+ { label: "Asus" },
180
+ ],
181
+ },
182
+ {
183
+ id: "sikovne-zariadenia",
184
+ heading: "Šikovné zariadenia",
185
+ items: [
186
+ { label: "Smart hodinky" },
187
+ { label: "Smart domácnosť" },
188
+ { label: "Smart TV" },
189
+ { label: "Herné konzoly" },
190
+ ],
191
+ },
192
+ ],
193
+ [
194
+ {
195
+ id: "orange-akcie",
196
+ heading: "Orange akcie",
197
+ items: [
198
+ { label: "Samsung" },
199
+ { label: "Výhodné ponuky" },
200
+ { label: "Zľavy na telefóny" },
201
+ { label: "Dopredaj zariadení" },
202
+ ],
203
+ },
204
+ ],
205
+ ],
206
+ },
207
+ ];
208
+
209
+ export const searchTerms = [
210
+ "Dobitie kreditu",
211
+ "Nedostupnosť služieb",
212
+ "Faktúry",
213
+ "Zdieľanie dát",
214
+ "Prečerpané dáta",
215
+ "Elektronická faktúra",
216
+ "Prvá pomoc internet",
217
+ "Nastavenie zariadení a sim kariet",
218
+ "Pevny internet do domacnosti",
219
+ "Dátový roaming",
220
+ "Nákup online",
221
+ "Telemarketing",
222
+ ];
223
+
224
+ export const searchResultItems = [
225
+ "apple",
226
+ "apple hodinky",
227
+ "apple iphone",
228
+ "apple 16",
229
+ "apple pro",
230
+ "apple watch",
231
+ ];
@@ -0,0 +1,35 @@
1
+ export type MegamenuVariant = "main" | "blog";
2
+
3
+ export type MegamenuIds = {
4
+ searchDropdownId: string;
5
+ searchInputDesktopId: string;
6
+ searchInputMobileId: string;
7
+ mobileMainPanelId: string;
8
+ mobileMainTitleId: string;
9
+ myOrangePanelId: string;
10
+ myOrangeTitleId: string;
11
+ };
12
+
13
+ export const getMegamenuIds = (variant: MegamenuVariant): MegamenuIds => {
14
+ if (variant === "blog") {
15
+ return {
16
+ searchDropdownId: "megamenu-blog-search",
17
+ searchInputDesktopId: "megamenu-blog-search-input",
18
+ searchInputMobileId: "megamenu-blog-mobile-search-input",
19
+ mobileMainPanelId: "megamenu-blog-mobile-main",
20
+ mobileMainTitleId: "mobile-blog-menu-title",
21
+ myOrangePanelId: "megamenu-blog-mobile-my-orange",
22
+ myOrangeTitleId: "mobile-blog-my-orange-title",
23
+ };
24
+ }
25
+
26
+ return {
27
+ searchDropdownId: "megamenu-search",
28
+ searchInputDesktopId: "megamenu-search-input",
29
+ searchInputMobileId: "megamenu-mobile-search-input",
30
+ mobileMainPanelId: "megamenu-mobile-main",
31
+ mobileMainTitleId: "mobile-menu-title",
32
+ myOrangePanelId: "megamenu-mobile-my-orange",
33
+ myOrangeTitleId: "mobile-my-orange-title",
34
+ };
35
+ };
@@ -1,15 +1,20 @@
1
+ @use "sass:map";
1
2
  @use "../../../styles/tools/convert";
2
3
  @use "../../../styles/tokens/color";
4
+ @use "../../../styles/tokens/tag-colors";
3
5
  @use "../../../styles/tokens/base";
4
6
  @use "../../../styles/tokens/breakpoint";
5
7
  @use "../../../styles/tools/generate";
8
+ @use "../../../styles/tokens/space";
6
9
  @use "../../../styles/tools/visibility" as visibility;
10
+ @use "../../../styles/typography/config" as typographyConfig;
7
11
  @use "../../Container/styles/mixins" as container;
8
12
  @use "../../Accordion/styles/mixins" as accordion;
9
13
  @use "../../Forms/TextInput/styles/mixins" as input;
10
14
  @use "../../Forms/TextInput/styles/config" as inputConfig;
11
15
  @use "../../Tag/styles/mixins" as tag;
12
16
  @use "../../Tag/styles/config" as tagConfig;
17
+ @use "../../Button/styles/mixins" as button;
13
18
  @use "../../../styles/typography/mixins" as typography;
14
19
 
15
20
  @use "./config";
@@ -27,6 +32,10 @@
27
32
  display: none !important;
28
33
  }
29
34
 
35
+ .mt-none {
36
+ margin-top: 0 !important;
37
+ }
38
+
30
39
  ul {
31
40
  @include typography.list-unstyled();
32
41
  margin-bottom: convert.to-rem(30px);
@@ -43,14 +52,15 @@
43
52
  a {
44
53
  color: var(--color-text-default);
45
54
  font-weight: 700;
46
- text-decoration: none;
47
55
  font-size: inherit;
56
+ text-decoration: underline;
57
+ text-underline-offset: convert.to-rem(2px);
58
+ text-decoration-thickness: 1px;
48
59
 
49
60
  &:hover,
50
61
  &:focus,
51
62
  &:active {
52
- text-decoration: underline;
53
- text-underline-offset: convert.to-rem(4px);
63
+ color: var(--color-text-accent);
54
64
  }
55
65
 
56
66
  &:focus-visible {
@@ -72,6 +82,19 @@
72
82
  @include base.focusring;
73
83
  }
74
84
 
85
+ hr {
86
+ margin-top: convert.to-rem(30px);
87
+ margin-bottom: convert.to-rem(30px);
88
+ border: 0;
89
+ border-top: 1px solid var(--color-border-subtle);
90
+ width: 100%;
91
+
92
+ @include breakpoint.get("xs", "down") {
93
+ margin-top: convert.to-rem(15px);
94
+ margin-bottom: convert.to-rem(15px);
95
+ }
96
+ }
97
+
75
98
  * {
76
99
  box-sizing: border-box;
77
100
  letter-spacing: convert.to-rem(-0.1px);
@@ -88,12 +111,22 @@
88
111
  @each $name, $value in color.$colors-light {
89
112
  --color-#{$name}: #{$value};
90
113
  }
114
+
115
+ // Megamenu ships as a standalone bundle and cannot rely on global tag token variables.
116
+ @each $name, $value in tag-colors.$tag-colors-light {
117
+ --#{$name}: #{$value};
118
+ }
91
119
  }
92
120
 
93
121
  @mixin dark-vars {
94
122
  @each $name, $value in color.$colors-dark {
95
123
  --color-#{$name}: #{$value};
96
124
  }
125
+
126
+ // Keep tag colors available in dark mode as well.
127
+ @each $name, $value in tag-colors.$tag-colors-dark {
128
+ --#{$name}: #{$value};
129
+ }
97
130
  }
98
131
 
99
132
  @mixin base {
@@ -167,6 +200,10 @@
167
200
  align-items: center;
168
201
  gap: convert.to-rem(30px);
169
202
 
203
+ a {
204
+ text-decoration: none;
205
+ }
206
+
170
207
  @include breakpoint.get("md", "down") {
171
208
  gap: convert.to-rem(20px);
172
209
  }
@@ -195,21 +232,35 @@
195
232
  gap: convert.to-rem(15px);
196
233
  }
197
234
 
235
+ @mixin nav-mobile-locale {
236
+ padding: convert.to-rem(15px) 0 !important;
237
+ margin-bottom: 0px !important;
238
+ }
239
+
198
240
  @mixin nav-item {
199
241
  display: flex;
200
242
  height: 100%;
201
243
  }
202
244
 
245
+ @mixin nav-item-lead {
246
+ margin-right: convert.to-rem(10px);
247
+ }
248
+
203
249
  @mixin nav-dropdown {
204
250
  position: absolute;
205
251
  top: calc(100% + 1px);
206
252
  left: 0;
207
253
  width: 100%;
208
254
  background-color: var(--color-surface-primary);
209
- padding: convert.to-rem(60px) 0 convert.to-rem(60px) 0;
255
+ padding: convert.to-rem(20px) 0;
210
256
  display: none;
211
257
  opacity: 0;
212
258
  z-index: 15;
259
+
260
+ &.is-spaced {
261
+ padding-top: convert.to-rem(50px);
262
+ padding-bottom: convert.to-rem(50px);
263
+ }
213
264
  }
214
265
 
215
266
  @mixin nav-logo {
@@ -261,9 +312,45 @@
261
312
  &:focus,
262
313
  &:active,
263
314
  &.is-active {
315
+ color: var(--color-text-default) !important;
264
316
  box-shadow: config.$active-line;
317
+ }
318
+ }
319
+
320
+ @mixin nav-link-locale {
321
+ &:hover,
322
+ &:focus,
323
+ &:active,
324
+ &.is-active {
325
+ box-shadow: none;
265
326
  text-decoration: none !important;
266
327
  }
328
+
329
+ &.is-active {
330
+ color: var(--color-border-accent);
331
+ }
332
+ }
333
+
334
+ @mixin nav-link-no-line {
335
+ &:hover,
336
+ &:focus,
337
+ &:active,
338
+ &.is-active {
339
+ color: var(--color-text-accent) !important;
340
+ box-shadow: none;
341
+ }
342
+ }
343
+
344
+ @mixin divider {
345
+ margin-top: convert.to-rem(30px);
346
+ margin-bottom: convert.to-rem(30px);
347
+ border: 0;
348
+ border-top: 1px solid var(--color-border-subtle);
349
+
350
+ @include breakpoint.get("xs", "down") {
351
+ margin-top: convert.to-rem(15px);
352
+ margin-bottom: convert.to-rem(15px);
353
+ }
267
354
  }
268
355
 
269
356
  @mixin nav-cart-icon {
@@ -309,6 +396,22 @@
309
396
  outline: 2px solid var(--color-border-accent);
310
397
  outline-offset: 2px;
311
398
  }
399
+
400
+ &--toggle {
401
+ .megamenu__nav-button-icon-close {
402
+ display: none;
403
+ }
404
+
405
+ &.is-active {
406
+ .megamenu__nav-button-icon-open {
407
+ display: none;
408
+ }
409
+
410
+ .megamenu__nav-button-icon-close {
411
+ display: inline-flex;
412
+ }
413
+ }
414
+ }
312
415
  }
313
416
 
314
417
  @mixin nav-button-indicator {
@@ -355,10 +458,10 @@
355
458
  @mixin subnav-item {
356
459
  display: flex;
357
460
  gap: convert.to-rem(10px);
358
- margin-bottom: convert.to-rem(10px) !important;
461
+ margin-bottom: convert.to-rem(15px) !important;
359
462
 
360
463
  &:last-child {
361
- margin-bottom: 0;
464
+ margin-bottom: 0 !important;
362
465
  }
363
466
  }
364
467
 
@@ -431,8 +534,10 @@
431
534
  }
432
535
 
433
536
  #{config.$class-root}__container {
434
- padding-left: convert.to-rem(20px);
435
- padding-right: convert.to-rem(20px);
537
+ @include breakpoint.get("md") {
538
+ padding-left: convert.to-rem(20px);
539
+ padding-right: convert.to-rem(20px);
540
+ }
436
541
  }
437
542
  }
438
543
 
@@ -475,7 +580,62 @@
475
580
  }
476
581
 
477
582
  @mixin mobile-body {
478
- padding-top: convert.to-rem(15px);
583
+ padding: convert.to-rem(15px) 0 convert.to-rem(30px);
584
+ }
585
+
586
+ @mixin mobile-account {
587
+ text-align: center;
588
+ padding-top: convert.to-rem(10px);
589
+ }
590
+
591
+ @mixin mobile-account-avatar {
592
+ display: inline-flex;
593
+ justify-content: center;
594
+ align-items: center;
595
+ margin-bottom: convert.to-rem(12px);
596
+ }
597
+
598
+ @mixin mobile-account-name {
599
+ @include generate.responsive-css-map(map.get(typographyConfig.$headings, 4));
600
+ margin-top: 0;
601
+ margin-bottom: convert.to-rem(5px);
602
+ font-weight: 700;
603
+ }
604
+
605
+ @mixin mobile-account-phone {
606
+ font-size: convert.to-rem(16px);
607
+ line-height: convert.to-rem(18px);
608
+ margin-top: 0;
609
+ margin-bottom: convert.to-rem(5px);
610
+ }
611
+
612
+ @mixin mobile-account-logout {
613
+ display: inline-block;
614
+ text-decoration: underline;
615
+ text-underline-offset: convert.to-rem(4px);
616
+ margin-bottom: convert.to-rem(20px);
617
+ font-weight: 400 !important;
618
+ }
619
+
620
+ @mixin mobile-account-cta {
621
+ @include button.base();
622
+ @include button.layout();
623
+ @include button.size("default");
624
+ @include button.color("primary");
625
+ color: color.$white !important;
626
+ width: 100%;
627
+ justify-content: center;
628
+ margin-bottom: convert.to-rem(40px);
629
+ text-decoration: none !important;
630
+ }
631
+
632
+ @mixin mobile-account-links {
633
+ margin-top: convert.to-rem(30px);
634
+ }
635
+
636
+ @mixin mobile-account-link {
637
+ text-decoration: underline;
638
+ text-underline-offset: convert.to-rem(4px);
479
639
  }
480
640
 
481
641
  @mixin container {
@@ -501,8 +661,19 @@
501
661
  border-radius: convert.to-rem(20px);
502
662
  padding: convert.to-rem(30px);
503
663
 
664
+ a:hover,
665
+ a:focus {
666
+ text-decoration: underline;
667
+ text-underline-offset: convert.to-rem(2px);
668
+ text-decoration-thickness: 1px;
669
+ }
670
+
504
671
  @include breakpoint.get("md", "down") {
505
672
  padding: convert.to-rem(15px);
673
+
674
+ &:not(.is-highlighted) {
675
+ padding: 0;
676
+ }
506
677
  }
507
678
  }
508
679
 
@@ -517,6 +688,16 @@
517
688
  }
518
689
  }
519
690
 
691
+ @mixin caption {
692
+ @include generate.css-map(typographyConfig.$caption, "default");
693
+ margin-top: 0;
694
+ }
695
+
696
+ @mixin caption-large {
697
+ @include generate.css-map(typographyConfig.$caption, "large");
698
+ margin-top: 0;
699
+ }
700
+
520
701
  @mixin icon {
521
702
  fill: currentColor;
522
703
  display: inline-block;
@@ -604,17 +785,13 @@
604
785
 
605
786
  @mixin accordion {
606
787
  @include accordion.base;
607
- margin-bottom: convert.to-rem(20px);
788
+ margin-bottom: 0px !important;
608
789
  }
609
790
 
610
791
  @mixin accordion-item {
611
792
  @include accordion.item;
612
- border-top: none;
613
- border-bottom: 1px solid var(--color-border-subtle);
614
-
615
- &:last-child {
616
- border-bottom: none;
617
- }
793
+ border-top: none !important;
794
+ border-bottom: 1px solid var(--color-border-subtle) !important;
618
795
  }
619
796
 
620
797
  @mixin accordion-button {
@@ -652,6 +829,7 @@
652
829
  @include accordion.body;
653
830
  display: none;
654
831
  margin-bottom: 0;
832
+ margin-top: 0;
655
833
  padding: convert.to-rem(20px) 0 convert.to-rem(30px) 0;
656
834
 
657
835
  &.is-visible {
@@ -670,8 +848,14 @@
670
848
  @mixin input {
671
849
  @include input.base();
672
850
  @include input.states();
851
+ max-width: unset !important;
673
852
  margin-bottom: convert.to-rem(30px);
674
853
 
854
+ &:focus-visible {
855
+ outline-width: 2px !important;
856
+ outline-offset: -2px !important;
857
+ }
858
+
675
859
  @include breakpoint.get("md", "down") {
676
860
  margin-bottom: convert.to-rem(15px);
677
861
  }
@@ -691,6 +875,12 @@
691
875
  &--search-icon-with-placeholder {
692
876
  @include input.search-icon-with-placeholder();
693
877
  }
878
+
879
+ &--search-responsive {
880
+ @include breakpoint.get("lg") {
881
+ width: 50%;
882
+ }
883
+ }
694
884
  }
695
885
 
696
886
  @mixin tag {
@@ -749,6 +939,23 @@
749
939
  @include tag.button-transparent-disabled();
750
940
  }
751
941
 
942
+ @mixin tag-orange {
943
+ @include tag.color("orange");
944
+
945
+ &:where(button) {
946
+ @include tag.button();
947
+ z-index: 2;
948
+ }
949
+
950
+ &:where(a) {
951
+ @include tag.button();
952
+ z-index: 2;
953
+ text-decoration: none !important;
954
+ }
955
+
956
+ @include tag.buttton-disabled();
957
+ }
958
+
752
959
  @mixin list-gap-small {
753
960
  display: flex;
754
961
  flex-direction: column;