@phillips/seldon 1.51.0 → 1.52.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 (50) hide show
  1. package/dist/assets/account_circle.svg.js +2 -2
  2. package/dist/components/Accordion/AccordionItem.d.ts +8 -4
  3. package/dist/components/Accordion/AccordionItem.js +67 -65
  4. package/dist/components/Dropdown/Dropdown.d.ts +2 -2
  5. package/dist/components/Header/Header.d.ts +20 -13
  6. package/dist/components/Header/Header.js +73 -76
  7. package/dist/components/Header/utils.d.ts +2 -9
  8. package/dist/components/Header/utils.js +3 -7
  9. package/dist/components/LanguageSelector/LanguageSelector.d.ts +36 -0
  10. package/dist/components/LanguageSelector/LanguageSelector.js +73 -0
  11. package/dist/components/LanguageSelector/index.d.ts +1 -0
  12. package/dist/components/Link/Link.d.ts +3 -11
  13. package/dist/components/Link/index.d.ts +2 -0
  14. package/dist/components/Navigation/Navigation.d.ts +12 -4
  15. package/dist/components/Navigation/Navigation.js +34 -51
  16. package/dist/components/Navigation/NavigationItem/NavigationItem.d.ts +15 -10
  17. package/dist/components/Navigation/NavigationItem/NavigationItem.js +19 -37
  18. package/dist/components/Navigation/NavigationItemTrigger/NavigationItemTrigger.d.ts +12 -3
  19. package/dist/components/Navigation/NavigationItemTrigger/NavigationItemTrigger.js +33 -29
  20. package/dist/components/Navigation/NavigationList/NavigationList.d.ts +2 -2
  21. package/dist/components/Navigation/NavigationList/NavigationList.js +31 -32
  22. package/dist/components/Search/Search.d.ts +1 -1
  23. package/dist/components/Search/Search.js +134 -122
  24. package/dist/components/Search/SearchButton.js +21 -17
  25. package/dist/components/Search/SearchResults/SearchResults.js +14 -13
  26. package/dist/components/UserManagement/UserManagement.d.ts +21 -13
  27. package/dist/components/UserManagement/UserManagement.js +31 -61
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.js +65 -62
  30. package/dist/scss/_utils.scss +13 -3
  31. package/dist/scss/_vars.scss +30 -11
  32. package/dist/scss/componentStyles.scss +1 -0
  33. package/dist/scss/components/Accordion/_accordion.scss +3 -0
  34. package/dist/scss/components/Dropdown/_dropdown.scss +2 -0
  35. package/dist/scss/components/Header/_header.scss +72 -86
  36. package/dist/scss/components/LanguageSelector/_languageSelector.scss +47 -0
  37. package/dist/scss/components/Link/_link.scss +15 -4
  38. package/dist/scss/components/LinkList/_linkList.scss +4 -0
  39. package/dist/scss/components/Navigation/NavigationItem/_navigationItem.scss +4 -119
  40. package/dist/scss/components/Navigation/NavigationItemTrigger/_navigationItemTrigger.scss +75 -0
  41. package/dist/scss/components/Navigation/NavigationList/_navigationList.scss +29 -42
  42. package/dist/scss/components/Navigation/_navigation.scss +24 -82
  43. package/dist/scss/components/Search/SearchResults/_searchResults.scss +1 -25
  44. package/dist/scss/components/Search/_search.scss +48 -7
  45. package/dist/scss/components/Search/_searchButton.scss +6 -2
  46. package/dist/scss/components/UserManagement/_userManagement.scss +33 -94
  47. package/dist/scss/components/Video/_video.scss +1 -0
  48. package/dist/utils/index.d.ts +1 -0
  49. package/dist/utils/index.js +31 -24
  50. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -1,98 +1,101 @@
1
- import { PaddingTokens as a, SpacingTokens as f, defaultYear as m, emailValidation as p, encodeURLSearchParams as d, findChildrenOfType as s, generatePaddingClassName as u, getCommonProps as i, noOp as l, px as x, useNormalizedInputProps as n } from "./utils/index.js";
2
- import { default as c } from "./pages/Page.js";
3
- import { default as L } from "./components/Button/Button.js";
4
- import { ButtonVariants as k } from "./components/Button/types.js";
5
- import { default as P } from "./components/IconButton/IconButton.js";
1
+ import { PaddingTokens as a, SpacingTokens as f, defaultYear as d, emailValidation as p, encodeURLSearchParams as m, findChildrenExcludingTypes as s, findChildrenOfType as l, generatePaddingClassName as u, getCommonProps as i, noOp as n, px as x, useNormalizedInputProps as g } from "./utils/index.js";
2
+ import { default as S } from "./pages/Page.js";
3
+ import { default as I } from "./components/Button/Button.js";
4
+ import { ButtonVariants as B } from "./components/Button/types.js";
5
+ import { default as T } from "./components/IconButton/IconButton.js";
6
6
  import { default as N } from "./components/ErrorBoundary/ErrorBoundary.js";
7
7
  import { default as w } from "./components/Footer/Footer.js";
8
- import { Grid as h } from "./components/Grid/Grid.js";
9
- import { default as A } from "./components/Header/Header.js";
8
+ import { Grid as v } from "./components/Grid/Grid.js";
9
+ import { default as C } from "./components/Header/Header.js";
10
10
  import { default as G } from "./components/Navigation/Navigation.js";
11
- import { default as D } from "./components/Navigation/NavigationItem/NavigationItem.js";
11
+ import { default as E } from "./components/Navigation/NavigationItem/NavigationItem.js";
12
12
  import { default as M } from "./components/Navigation/NavigationItemTrigger/NavigationItemTrigger.js";
13
13
  import { default as R } from "./components/Navigation/NavigationList/NavigationList.js";
14
14
  import { default as z } from "./components/HeroBanner/HeroBanner.js";
15
- import { default as F } from "./components/Input/Input.js";
16
- import { default as j } from "./components/Link/Link.js";
17
- import { LinkVariants as J } from "./components/Link/types.js";
18
- import { default as Q } from "./components/LinkBlock/LinkBlock.js";
19
- import { default as X } from "./components/LinkList/LinkList.js";
20
- import { default as _ } from "./components/Row/Row.js";
21
- import { default as ee } from "./components/GridItem/GridItem.js";
22
- import { GridItemAlign as re } from "./components/GridItem/types.js";
23
- import { default as ae } from "./components/Search/Search.js";
24
- import { default as me } from "./components/Select/Select.js";
25
- import { default as de } from "./components/SplitPanel/SplitPanel.js";
15
+ import { default as Y } from "./components/Input/Input.js";
16
+ import { default as q } from "./components/Link/Link.js";
17
+ import { LinkVariants as K } from "./components/Link/types.js";
18
+ import { default as W } from "./components/LinkBlock/LinkBlock.js";
19
+ import { default as Z } from "./components/LinkList/LinkList.js";
20
+ import { default as $ } from "./components/Row/Row.js";
21
+ import { default as re } from "./components/GridItem/GridItem.js";
22
+ import { GridItemAlign as te } from "./components/GridItem/types.js";
23
+ import { default as fe } from "./components/Search/Search.js";
24
+ import { default as pe } from "./components/Select/Select.js";
25
+ import { default as se } from "./components/SplitPanel/SplitPanel.js";
26
26
  import { default as ue } from "./components/Subscribe/Subscribe.js";
27
- import { SubscriptionState as le } from "./components/Subscribe/types.js";
28
- import { default as ne } from "./components/Social/Social.js";
29
- import { default as ce } from "./components/ViewingsList/ViewingsList.js";
30
- import { default as Le } from "./components/Modal/Modal.js";
31
- import { default as ke } from "./components/Drawer/Drawer.js";
32
- import { default as Pe } from "./components/ViewingsList/StatefulViewingsList.js";
27
+ import { SubscriptionState as ne } from "./components/Subscribe/types.js";
28
+ import { default as ge } from "./components/Social/Social.js";
29
+ import { default as Se } from "./components/ViewingsList/ViewingsList.js";
30
+ import { default as Ie } from "./components/Modal/Modal.js";
31
+ import { default as Be } from "./components/Drawer/Drawer.js";
32
+ import { default as Te } from "./components/ViewingsList/StatefulViewingsList.js";
33
33
  import { TextVariants as Ne } from "./components/Text/types.js";
34
34
  import { default as we } from "./components/Text/Text.js";
35
- import { default as he } from "./components/Accordion/Accordion.js";
36
- import { default as Ae } from "./components/Accordion/AccordionItem.js";
35
+ import { default as ve } from "./components/Accordion/Accordion.js";
36
+ import { default as Ce } from "./components/Accordion/AccordionItem.js";
37
37
  import { default as Ge } from "./components/UserManagement/UserManagement.js";
38
- import { AuthState as De } from "./components/UserManagement/types.js";
38
+ import { AuthState as Ee } from "./components/UserManagement/types.js";
39
39
  import { SupportedLanguages as Me } from "./types/commonTypes.js";
40
40
  import { default as Re } from "./components/Breadcrumb/Breadcrumb.js";
41
41
  import "react/jsx-runtime";
42
42
  import "./node_modules/classnames/index.js";
43
43
  import { default as ze } from "./components/Dropdown/Dropdown.js";
44
- import { default as Fe } from "./components/Video/Video.js";
44
+ import { default as Ye } from "./components/Video/Video.js";
45
+ import { default as qe } from "./components/LanguageSelector/LanguageSelector.js";
45
46
  export {
46
- he as Accordion,
47
- Ae as AccordionItem,
48
- De as AuthState,
47
+ ve as Accordion,
48
+ Ce as AccordionItem,
49
+ Ee as AuthState,
49
50
  Re as Breadcrumb,
50
- L as Button,
51
- k as ButtonVariants,
52
- ke as Drawer,
51
+ I as Button,
52
+ B as ButtonVariants,
53
+ Be as Drawer,
53
54
  ze as Dropdown,
54
55
  N as ErrorBoundary,
55
56
  w as Footer,
56
- h as Grid,
57
- ee as GridItem,
58
- re as GridItemAlign,
59
- A as Header,
57
+ v as Grid,
58
+ re as GridItem,
59
+ te as GridItemAlign,
60
+ C as Header,
60
61
  z as HeroBanner,
61
- P as IconButton,
62
- F as Input,
63
- j as Link,
64
- Q as LinkBlock,
65
- X as LinkList,
66
- J as LinkVariants,
67
- Le as Modal,
62
+ T as IconButton,
63
+ Y as Input,
64
+ qe as LanguageSelector,
65
+ q as Link,
66
+ W as LinkBlock,
67
+ Z as LinkList,
68
+ K as LinkVariants,
69
+ Ie as Modal,
68
70
  G as Navigation,
69
- D as NavigationItem,
71
+ E as NavigationItem,
70
72
  M as NavigationItemTrigger,
71
73
  R as NavigationList,
72
74
  a as PaddingTokens,
73
- c as Page,
74
- _ as Row,
75
- ae as Search,
76
- me as Select,
77
- ne as Social,
75
+ S as Page,
76
+ $ as Row,
77
+ fe as Search,
78
+ pe as Select,
79
+ ge as Social,
78
80
  f as SpacingTokens,
79
- de as SplitPanel,
80
- Pe as StatefulViewingsList,
81
+ se as SplitPanel,
82
+ Te as StatefulViewingsList,
81
83
  ue as Subscribe,
82
- le as SubscriptionState,
84
+ ne as SubscriptionState,
83
85
  Me as SupportedLanguages,
84
86
  we as Text,
85
87
  Ne as TextVariants,
86
88
  Ge as UserManagement,
87
- Fe as Video,
88
- ce as ViewingsList,
89
- m as defaultYear,
89
+ Ye as Video,
90
+ Se as ViewingsList,
91
+ d as defaultYear,
90
92
  p as emailValidation,
91
- d as encodeURLSearchParams,
92
- s as findChildrenOfType,
93
+ m as encodeURLSearchParams,
94
+ s as findChildrenExcludingTypes,
95
+ l as findChildrenOfType,
93
96
  u as generatePaddingClassName,
94
97
  i as getCommonProps,
95
- l as noOp,
98
+ n as noOp,
96
99
  x as px,
97
- n as useNormalizedInputProps
100
+ g as useNormalizedInputProps
98
101
  };
@@ -122,7 +122,7 @@
122
122
  }
123
123
  }
124
124
 
125
- @if type == 'max' {
125
+ @if $type == 'max' {
126
126
  @media (max-width: calc($breakpoint-lg - 1px)) {
127
127
  @content;
128
128
  }
@@ -131,13 +131,13 @@
131
131
 
132
132
  @if $breakpoint == $size-xl {
133
133
  // $breakpoint-xl: 1801px;
134
- @if type == 'min' {
134
+ @if $type == 'min' {
135
135
  @media (min-width: $breakpoint-xl) {
136
136
  @content;
137
137
  }
138
138
  }
139
139
 
140
- @if type == 'max' {
140
+ @if $type == 'max' {
141
141
  @media (max-width: calc($breakpoint-xl - 1px)) {
142
142
  @content;
143
143
  }
@@ -190,3 +190,13 @@
190
190
  @content;
191
191
  }
192
192
  }
193
+
194
+ @mixin buttonReset() {
195
+ button {
196
+ background: unset;
197
+ border: 0;
198
+ cursor: pointer;
199
+ margin: 0;
200
+ padding: 0;
201
+ }
202
+ }
@@ -343,27 +343,35 @@ $margin-lg: var(--spacing-lg);
343
343
  $margin-xl: var(--spacing-xl);
344
344
  $margin-xxl: var(--spacing-xxl);
345
345
 
346
+ ////////////////////////
347
+ /// HEADER TOKENS:
348
+ ///////////////////////
349
+ /* stylelint-disable-next-line no-duplicate-selectors */
350
+ :root {
351
+ --header-height: 75px; // ideally we would calculate the size from the current text size plus spacing components so that it scales with the text size and spacing
352
+ --search-size: 2.625rem; // This should be calculated from the scaling text and scaling spacing tokens instead of hardcoding in case they change
353
+
354
+ @media (min-width: $breakpoint-md) {
355
+ --header-height: 109px; // ideally we would calculate the size from the current text size plus spacing components so that it scales with the text size and spacing
356
+ }
357
+
358
+ @media (min-width: $breakpoint-xl) {
359
+ --header-height: 121px; // ideally we would calculate the size from the current text size plus spacing components so that it scales with the text size and spacing
360
+ --search-size: 2.875rem; // This should be calculated from the scaling text and scaling spacing tokens instead of hardcoding in case they change
361
+ }
362
+ }
363
+
346
364
  ////////////////////////
347
365
  /// max-site-width TOKEN:
348
366
  ///////////////////////
349
367
  $max-site-width: 1560px;
368
+ $desktop-max-width: var(--desktop-max-width);
350
369
 
351
370
  ////////////////////////
352
371
  /// z-index TOKENS:
353
372
  ///////////////////////
354
373
  $modal-z-index: 30;
355
374
 
356
- ////////////////////////
357
- /// height Tokens
358
- ///////////////////////
359
- $header-height: 42px;
360
- $nav-height: 3.5rem;
361
- $top-row-height: 3.75rem;
362
- $desktop-header-height: calc($nav-height + $top-row-height + 1px);
363
- $user-management-height: 30px;
364
- $header-submenu-top: calc($header-height + $user-management-height + 1px);
365
- $desktop-max-width: var(--desktop-max-width);
366
-
367
375
  ////////////////////////
368
376
  /// Our tokens usually support at least 4 sizes.
369
377
  ///////////////////////
@@ -375,3 +383,14 @@ $size-xxl: 'xxl';
375
383
  $default-transition: 150ms cubic-bezier(0.16, 1, 0.3, 1);
376
384
  $drawer-content-transition: 350ms cubic-bezier(0, 0, 0.2, 1);
377
385
  $default-overlay-transition: 350ms cubic-bezier(0.4, 0, 0.2, 1);
386
+
387
+ ////////////////////////
388
+ /// Mobile-specific tokens
389
+ ///////////////////////
390
+ $mobile-minimum-clickable-area: 44px;
391
+
392
+ ////////////////////////
393
+ /// Header Tokens
394
+ ///
395
+ $search-size: var(--search-size);
396
+ $header-height: var(--header-height);
@@ -39,3 +39,4 @@
39
39
  @use 'components/HTMLParser/htmlParser';
40
40
  @use 'components/Dropdown/dropdown';
41
41
  @use 'components/Video/video';
42
+ @use 'components/LanguageSelector/languageSelector';
@@ -9,6 +9,7 @@
9
9
 
10
10
  .#{$px}-accordion-item {
11
11
  padding: $spacing-sm;
12
+ width: 100%;
12
13
 
13
14
  svg {
14
15
  max-width: unset;
@@ -86,8 +87,10 @@
86
87
  }
87
88
 
88
89
  .#{$px}-accordion-item-label {
90
+ align-items: center;
89
91
  display: flex;
90
92
  flex-direction: row;
93
+ justify-content: space-between;
91
94
  opacity: 0.75;
92
95
 
93
96
  &--hoverable {
@@ -37,6 +37,8 @@
37
37
  // following will add additional arrows if list is near edge of viewport
38
38
  max-height: var(--radix-select-content-available-height);
39
39
  overflow: hidden;
40
+ position: relative;
41
+ z-index: 10;
40
42
  }
41
43
 
42
44
  &__scroll-button,
@@ -3,61 +3,37 @@
3
3
  .#{$px}-header {
4
4
  align-items: center;
5
5
  background-color: $white;
6
- border-bottom: 1px solid rgba(0, 0, 0, 10%);
6
+ border-bottom: 1px solid $light-gray;
7
7
  display: flex;
8
8
  flex-direction: column;
9
9
  position: sticky;
10
10
  top: 0;
11
-
12
- &__top-row {
13
- align-items: center;
14
- background-color: $pure-white;
15
- display: flex;
16
- height: $top-row-height;
17
- justify-content: center;
18
- padding-top: 1rem;
19
- width: 100%;
20
- z-index: 10;
21
-
22
- @include isHeaderMobile {
23
- height: $nav-height;
24
- }
25
- }
26
-
27
- @include isHeaderMobile {
28
- padding: 0;
29
- top: 0;
30
- }
11
+ z-index: 10;
31
12
 
32
13
  &__toggle-btn {
33
14
  align-items: center;
34
- appearance: none;
35
15
  background: none;
36
16
  border: none;
37
17
  cursor: pointer;
38
18
  display: flex;
39
- height: $nav-height;
19
+ height: $mobile-minimum-clickable-area;
40
20
  justify-content: center;
41
- left: 0;
42
- overflow: hidden;
43
- position: absolute;
44
- top: 0;
45
- transition: background-color 0.25s;
46
- width: 60px;
47
- z-index: 1;
21
+ padding: 0;
22
+ width: $mobile-minimum-clickable-area;
48
23
 
49
24
  @include isHeaderDesktop {
50
25
  display: none;
51
26
  }
52
27
 
28
+ /* This is a pseudo icon shown within the button, so we can do fancy transitions */
53
29
  span {
54
30
  background-color: $dark-gray;
55
31
  color: transparent;
56
32
  display: block;
57
33
  height: 2px;
58
34
  position: relative;
59
- transition: background-color 0.25s ease 0.5s;
60
- width: 1.65rem;
35
+ transition: background-color 0.25s ease 0.25s;
36
+ width: 1.5rem;
61
37
 
62
38
  &::before,
63
39
  &::after {
@@ -68,8 +44,8 @@
68
44
  left: 0;
69
45
  position: absolute;
70
46
  top: 0;
71
- transition: transform 0.25s ease 0.25s;
72
- width: 1.65rem;
47
+ transition: transform 0.25s ease;
48
+ width: 1.5rem;
73
49
  }
74
50
 
75
51
  &::before {
@@ -83,7 +59,7 @@
83
59
 
84
60
  &.#{$px}-header__toggle-btn--open span {
85
61
  background: transparent;
86
- transition: background-color 0.25s ease 0.1s;
62
+ transition: background-color 0.25s ease;
87
63
 
88
64
  &::before {
89
65
  transform: rotate(45deg);
@@ -93,78 +69,74 @@
93
69
  transform: rotate(-45deg);
94
70
  }
95
71
  }
96
-
97
- &:hover {
98
- background-color: $off-white;
99
- }
100
72
  }
101
73
 
102
74
  &__logo {
103
- margin: auto;
104
- width: 11.65rem;
75
+ align-self: center;
76
+
77
+ svg {
78
+ height: 24px;
79
+ width: 100%;
80
+ }
105
81
 
106
82
  @include isHeaderDesktop {
107
- margin: unset;
83
+ svg {
84
+ height: 28px;
85
+ width: 100%;
86
+ }
108
87
  }
109
88
  }
110
89
 
111
- &__overlay {
112
- background-color: rgba(0, 0, 0, 50%);
113
- height: 0;
114
- inset: 0;
115
- opacity: 0;
116
- position: fixed;
117
- transition: opacity 0.5s ease-in-out;
90
+ &__top-row {
91
+ align-items: center;
92
+ display: flex;
93
+ justify-content: space-between;
94
+ padding: $padding-sm $spacing-md;
118
95
  width: 100%;
119
- z-index: -1;
120
96
 
121
- &--active {
122
- display: block;
123
- height: 100%;
124
- opacity: 1;
125
-
126
- @include isHeaderDesktop {
127
- display: none;
128
- }
129
-
130
- & ~ .#{$px}-header__nav {
131
- z-index: 1;
132
- }
133
- & ~ .#{$px}-header__toggle-btn {
134
- z-index: 2;
135
- }
136
-
137
- & ~ .#{$px}-search {
138
- .#{$px}-search__button {
139
- z-index: -1;
140
- }
141
- }
97
+ /** There are actually two language selectors in the DOM, show this one in desktop */
98
+ .#{$px}-language-selector {
99
+ display: none;
142
100
  }
143
101
  }
144
102
 
145
103
  &__nav {
146
- height: 100%;
147
- left: 0;
148
- position: fixed;
149
- top: 0;
150
- transform: translateX(-100%);
104
+ background-color: $pure-white;
105
+ height: calc(100vh - $header-height);
106
+ overflow-y: auto;
107
+ position: relative;
108
+ z-index: 10;
151
109
 
152
- @include isHeaderDesktop {
153
- position: relative;
154
- transform: unset;
155
- width: 100%;
110
+ &--closed {
111
+ display: none;
156
112
  }
157
113
  .#{$px}-nav__list-container {
158
114
  display: flex;
159
- height: $nav-height;
160
- padding-right: $nav-height;
115
+ padding: 0 $spacing-md;
116
+
117
+ @include isHeaderDesktop {
118
+ padding-right: $search-size;
119
+ }
161
120
  }
162
121
 
163
- &.#{$px}-header__nav--open {
164
- transform: translateX(0);
122
+ @include isHeaderDesktop {
123
+ display: flex;
124
+ height: unset;
125
+ justify-content: center;
126
+ overflow: visible; // this is needed for the search results
127
+ position: relative;
128
+ top: 0;
129
+ width: 100%;
130
+
131
+ div.#{$px}-language-selector {
132
+ display: none; // hide this one on mobile
133
+ }
134
+ }
165
135
 
166
- @include isHeaderDesktop {
167
- transform: unset;
136
+ .#{$px}-nav__item {
137
+ .#{$px}-link--snwHeaderLink {
138
+ align-content: center;
139
+ height: 100%;
168
140
  }
169
141
  }
170
142
 
@@ -175,4 +147,18 @@
175
147
  }
176
148
  }
177
149
  }
150
+
151
+ &__overlay {
152
+ display: none;
153
+
154
+ &--active {
155
+ background: rgba(0, 0, 0, 60%);
156
+ display: block;
157
+ height: 100vh;
158
+ left: 0;
159
+ position: absolute;
160
+ top: $header-height;
161
+ width: 100%;
162
+ }
163
+ }
178
164
  }
@@ -0,0 +1,47 @@
1
+ @use '../../allPartials' as *;
2
+
3
+ // Mobile version of the language selector mirrors the navigation menu link styles
4
+ .#{$px}-language-selector {
5
+ display: flex;
6
+ min-width: 87px; // needed to handle English vs Chinese option. Arguably this should be determined by the Dropdown component the longest element in the dropdown
7
+ opacity: 1;
8
+ padding-bottom: 10rem; // needed for bottom accordion
9
+ transition: opacity 0.25s ease-in;
10
+
11
+ &--hidden {
12
+ opacity: 0;
13
+ pointer-events: none;
14
+ }
15
+
16
+ @include isHeaderDesktop {
17
+ &.#{$px}-accordion {
18
+ display: none;
19
+ }
20
+ }
21
+
22
+ &.#{$px}-dropdown {
23
+ display: none;
24
+ padding: $padding-lg 0 $padding-xxl;
25
+
26
+ button {
27
+ border: none;
28
+ box-shadow: unset;
29
+ justify-content: space-between;
30
+ outline: none;
31
+ padding: 0.5rem 0.65rem;
32
+ text-transform: unset;
33
+ width: 100%;
34
+ }
35
+
36
+ @include isHeaderDesktop {
37
+ display: flex;
38
+ padding: 0;
39
+
40
+ button {
41
+ justify-content: center;
42
+ padding: 0;
43
+ width: fit-content;
44
+ }
45
+ }
46
+ }
47
+ }
@@ -11,10 +11,9 @@
11
11
  }
12
12
 
13
13
  &--email,
14
- &--link,
15
- &--snwFlyoutLink {
14
+ &--link {
16
15
  &:hover,
17
- &:focus {
16
+ &:focus-visible {
18
17
  @include underline($color: $dark-gray);
19
18
 
20
19
  color: $dark-gray;
@@ -37,7 +36,7 @@
37
36
  text-align: center;
38
37
 
39
38
  &:hover::after,
40
- &:focus::after {
39
+ &:focus-visible::after {
41
40
  background: $pure-black;
42
41
  bottom: -1px;
43
42
  content: '';
@@ -49,6 +48,18 @@
49
48
  }
50
49
 
51
50
  &--snwFlyoutLink {
51
+ border-bottom: 1px solid transparent;
52
+
52
53
  @include text($snwFlyoutLink);
54
+
55
+ &:hover,
56
+ &:focus-visible {
57
+ @include underline(
58
+ $color: $dark-gray,
59
+ $padding: 0.5rem 0.625rem calc(0.5rem + 2px)
60
+ ); // 1 px so that the bottom border of the nav counts as part of the button
61
+
62
+ color: $dark-gray;
63
+ }
53
64
  }
54
65
  }
@@ -1,6 +1,10 @@
1
1
  @use '../../allPartials' as *;
2
2
 
3
3
  .#{$px}-link-list {
4
+ @include media($size-sm, $type: max) {
5
+ max-width: 30rem;
6
+ }
7
+
4
8
  &--item {
5
9
  // mobile first
6
10
  grid-column: span 2;