@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
@@ -1,11 +1,12 @@
1
1
  @use '../../../allPartials' as *;
2
2
 
3
3
  .#{$px}-nav__item {
4
- background: $pure-white;
4
+ cursor: pointer;
5
5
 
6
6
  @include isHeaderMobile {
7
- max-width: 320px;
8
- width: 100%;
7
+ a {
8
+ white-space: normal;
9
+ }
9
10
  }
10
11
 
11
12
  @include isHeaderDesktop {
@@ -14,93 +15,6 @@
14
15
  max-width: unset;
15
16
  }
16
17
 
17
- & > button {
18
- @include DistinctDisplay;
19
-
20
- text-transform: uppercase;
21
-
22
- &:hover::after,
23
- &:focus::after {
24
- background: $pure-black;
25
- content: '';
26
- height: 1px;
27
- left: 0;
28
- position: absolute;
29
- right: 0;
30
- top: $nav-height;
31
- }
32
- }
33
-
34
- & > button {
35
- @include DistinctDisplay;
36
- @include text($snwHeaderLink);
37
-
38
- display: block;
39
- position: relative;
40
- white-space: nowrap;
41
- width: 100%;
42
-
43
- @include isHeaderMobile {
44
- position: relative;
45
- }
46
- }
47
-
48
- &--expanded ~ & &--label,
49
- &--expanded ~ & > button {
50
- @include isHeaderMobile {
51
- & > span::after {
52
- content: '';
53
- }
54
- }
55
- }
56
-
57
- // Submenu
58
- ul {
59
- background: $pure-white;
60
- overflow: hidden scroll;
61
- position: absolute;
62
- right: 0;
63
- top: 0;
64
- width: 307px;
65
- z-index: -1;
66
- }
67
-
68
- @include isHeaderDesktop {
69
- ul {
70
- align-content: start;
71
- height: auto;
72
- left: 0;
73
- max-height: 0;
74
- min-height: 0;
75
- overflow: hidden;
76
- position: fixed;
77
- top: $desktop-header-height;
78
- width: 100%;
79
- z-index: -1;
80
-
81
- li {
82
- display: inline;
83
- white-space: nowrap;
84
-
85
- button,
86
- a,
87
- p {
88
- @include isHeaderDesktop {
89
- border: none;
90
- }
91
- }
92
- }
93
- }
94
-
95
- &:hover ul,
96
- &--expanded:focus-within ul {
97
- max-height: 100vh;
98
- min-height: 227px;
99
- padding: 2rem 3.75rem;
100
- z-index: 1;
101
- }
102
- }
103
-
104
18
  .#{$px}-nav__item-trigger > label::after {
105
19
  @include isHeaderMobile {
106
20
  content: '\203A';
@@ -118,10 +32,6 @@
118
32
  }
119
33
  }
120
34
 
121
- &.#{$px}-nav__item--expanded ul {
122
- z-index: 0;
123
- }
124
-
125
35
  & > button {
126
36
  background-color: transparent;
127
37
  border: 0;
@@ -135,34 +45,9 @@
135
45
  display: flex;
136
46
  padding: 0.5rem 0.625rem;
137
47
  }
138
-
139
- & > a:focus,
140
- & > button:focus {
141
- background-color: #f4f4f4;
142
- }
143
-
144
- &:hover {
145
- & > a,
146
- & > button {
147
- background-color: #f4f4f4;
148
- }
149
- }
150
48
  }
151
49
 
152
50
  @include isHeaderDesktop {
153
- position: relative;
154
-
155
- &:not(ul ul li) a:focus,
156
- &:not(ul ul li) button:focus,
157
- &:not(ul ul li) p:focus {
158
- background: #f4f4f4;
159
- }
160
-
161
- .#{$px}-nav__list-item {
162
- position: static;
163
- z-index: 1;
164
- }
165
-
166
51
  & > .#{$px}-nav__list-item-trigger::before {
167
52
  background: #f4f4f4;
168
53
  content: '';
@@ -1 +1,76 @@
1
1
  @use '../../../allPartials' as *;
2
+
3
+ .#{$px}-navigation-item-trigger {
4
+ flex-direction: column;
5
+ justify-content: center;
6
+
7
+ & > button {
8
+ color: $pure-black;
9
+ display: flex;
10
+ justify-content: flex-start;
11
+ position: relative;
12
+ white-space: nowrap;
13
+ width: 100%;
14
+
15
+ @include isHeaderDesktop {
16
+ color: unset;
17
+ justify-content: center;
18
+ }
19
+ }
20
+
21
+ @include isHeaderDesktop {
22
+ &--hovered button::after {
23
+ background-color: $pure-black;
24
+ bottom: -1px;
25
+ content: '';
26
+ height: 1px;
27
+ left: 0;
28
+ position: absolute;
29
+ right: 0;
30
+ }
31
+
32
+ & > &__submenu {
33
+ pointer-events: none;
34
+ transform: translateY(-100%);
35
+ transition: none; // remove this when implementing submenu transitions
36
+ }
37
+
38
+ &--hovered &__submenu {
39
+ height: fit-content;
40
+ left: 0;
41
+ max-height: unset;
42
+ opacity: 1;
43
+ padding: $padding-md;
44
+ pointer-events: all;
45
+ position: fixed; // has to bust out of the box containing it on desktop
46
+ right: 0;
47
+ top: calc($header-height);
48
+ transform: translateY(0);
49
+ }
50
+ }
51
+
52
+ @include isHeaderDesktop {
53
+ ul {
54
+ background-color: $pure-white;
55
+ height: auto;
56
+ left: 0;
57
+ opacity: 0;
58
+ overflow: hidden;
59
+ position: absolute;
60
+ z-index: -1;
61
+
62
+ li {
63
+ display: inline;
64
+ white-space: nowrap;
65
+
66
+ button,
67
+ a,
68
+ p {
69
+ @include isHeaderDesktop {
70
+ border: none;
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
@@ -1,57 +1,44 @@
1
1
  @use '../../../allPartials' as *;
2
2
 
3
+ $opacity-transition: opacity 0.25s ease-in;
4
+ $top-transition: top 0.25s ease-in 0.1s;
5
+
3
6
  .#{$px}-nav__list {
4
- display: flex;
5
- justify-content: center;
6
- list-style: none;
7
- margin: 0;
7
+ align-items: flex-start;
8
+ flex-direction: column;
9
+ justify-content: left;
8
10
  opacity: 1;
9
- padding: 0;
10
- position: relative;
11
- top: 0;
12
- transition: top 0.25s ease-in 0.1s;
13
-
14
- @include isHeaderMobile {
15
- flex-direction: column;
16
- height: calc(100vh - 102px);
17
- justify-content: left;
18
- min-width: 330px;
19
- overflow: auto;
20
- padding: 0.5rem;
21
- transform: translateX(0%);
22
- transition: transform 0.3s ease-in 0.1s;
23
- }
24
-
25
- &--expanded {
26
- @include isHeaderMobile {
27
- &:not(li ul) {
28
- transform: translateX(-50%);
29
- width: 200%;
30
- }
31
- }
32
- }
11
+ padding: $spacing-md 0;
12
+ transition: $opacity-transition;
33
13
 
34
14
  &--offscreen {
35
15
  opacity: 0;
16
+ pointer-events: none;
36
17
  top: -100%;
37
- transition:
38
- top 0.25s ease-in 0.1s,
39
- opacity 0.25s ease-in;
40
- z-index: 5;
41
18
  }
42
19
 
43
- & .#{$px}-nav__item > & {
44
- @include isHeaderMobile {
45
- display: none;
20
+ @include isHeaderDesktop {
21
+ align-items: center;
22
+ display: flex;
23
+ flex-direction: row;
24
+ justify-content: center;
25
+ list-style: none;
26
+ margin: 0;
27
+ padding: 0;
28
+ position: relative;
29
+ top: 0;
30
+ transition:
31
+ $top-transition,
32
+ $opacity-transition 0.25s;
46
33
 
47
- &--expanded {
48
- display: flex;
49
- flex-direction: column;
50
- }
34
+ &--offscreen {
35
+ top: -100%;
36
+ transition: $top-transition, $opacity-transition;
37
+ z-index: 5;
51
38
  }
52
- }
53
39
 
54
- &__section {
55
- width: 100%;
40
+ &__section {
41
+ width: 100%;
42
+ }
56
43
  }
57
44
  }
@@ -1,103 +1,45 @@
1
1
  @use '../../allPartials' as *;
2
2
 
3
3
  .#{$px}-nav {
4
- background: $pure-white;
5
- flex-wrap: wrap;
6
- height: 100%;
7
- overflow: hidden;
8
- padding-top: 4.5rem;
9
- position: relative;
10
-
11
- @include isHeaderDesktop {
12
- display: flex;
13
- overflow: visible;
14
- padding-top: 0;
15
- place-content: center center;
16
- position: unset;
17
- width: auto;
18
- }
4
+ border-top: 1px solid $light-gray;
5
+ display: flex;
6
+ height: fit-content;
7
+ justify-content: center;
8
+ width: 100vw;
19
9
 
20
10
  &__list-container {
11
+ display: flex;
12
+ flex-direction: column;
13
+ justify-content: center;
14
+ padding: 0 $spacing-sm;
21
15
  position: relative;
22
- }
23
-
24
- &--expanded &__label {
25
- animation: 1s linear fade-in-out forwards;
26
- }
27
16
 
28
- &__label {
29
- animation: 1s linear fade-in-out2 forwards;
30
- font-size: 1.25rem;
31
- padding-left: 0.625rem;
32
- visibility: var(--visible);
33
- }
17
+ > .#{$px}-nav__list {
18
+ border-top: 1px solid $light-gray;
34
19
 
35
- & &__back-btn {
36
- background-color: transparent;
37
- cursor: pointer;
38
- font-weight: 800;
39
- height: 60px;
40
- opacity: 0;
41
- padding: 1rem;
42
- position: absolute;
43
- right: 0;
44
- top: 0;
45
- transition:
46
- opacity 0s linear,
47
- background-color 0.5s;
48
- width: auto;
49
- }
20
+ @include isHeaderDesktop {
21
+ border-top: unset;
22
+ }
23
+ }
50
24
 
51
- &--expanded &__back-btn {
52
- opacity: 1;
53
- transition:
54
- opacity 0.5s linear 0.25s,
55
- background-color 0.5s;
25
+ @include isHeaderDesktop {
26
+ flex-direction: row;
27
+ padding-right: $search-size;
28
+ }
56
29
  }
57
30
 
58
31
  @include isHeaderDesktop {
59
- // Remove label and mobile buttons on larger screens
60
- .#{$px}-nav__back-btn,
61
- .#{$px}-nav__close-btn,
62
- .#{$px}-nav__label {
32
+ border: unset;
33
+ width: fit-content;
34
+
35
+ // Remove mobile button on larger screens
36
+ .#{$px}-nav__close-btn {
63
37
  display: none;
64
38
  }
65
39
  }
66
40
 
67
- &__back-btn:hover,
68
- &__back-btn:focus,
69
41
  &__close-btn:hover,
70
42
  &__close-btn:focus {
71
43
  background-color: #f4f4f4;
72
44
  }
73
45
  }
74
-
75
- // Animations
76
-
77
- @keyframes fade-in-out {
78
- 0% {
79
- opacity: 0;
80
- }
81
-
82
- 30% {
83
- opacity: 0;
84
- }
85
-
86
- 100% {
87
- opacity: 1;
88
- }
89
- }
90
-
91
- @keyframes fade-in-out2 {
92
- 0% {
93
- opacity: 0;
94
- }
95
-
96
- 30% {
97
- opacity: 0;
98
- }
99
-
100
- 100% {
101
- opacity: 1;
102
- }
103
- }
@@ -3,13 +3,12 @@
3
3
  .#{$px}-search__results {
4
4
  align-items: flex-start;
5
5
  background: $white;
6
- border-bottom: 1px solid $light-gray;
7
6
  display: flex;
8
7
  flex-direction: column;
9
8
  gap: 0.625rem;
10
9
  padding: $spacing-sm;
11
10
  position: absolute;
12
- top: $nav-height;
11
+ top: $search-size;
13
12
  width: 100%;
14
13
 
15
14
  &-container {
@@ -25,28 +24,5 @@
25
24
  .#{$px}-search {
26
25
  &__result {
27
26
  display: flex;
28
-
29
- &:last-child {
30
- border-bottom: none;
31
-
32
- a span p {
33
- text-transform: uppercase;
34
- }
35
- }
36
-
37
- .#{$px}-link {
38
- &--link {
39
- border-bottom: 1px transparent solid;
40
- color: $pure-black;
41
- }
42
- }
43
-
44
- p {
45
- @include pText(0.875rem, $pure-black);
46
-
47
- font-weight: 400;
48
- line-height: 1.25rem;
49
- text-transform: capitalize;
50
- }
51
27
  }
52
28
  }
@@ -3,14 +3,18 @@
3
3
  .#{$px}-search {
4
4
  display: flex;
5
5
  gap: $spacing-md;
6
- height: $nav-height;
7
- left: calc(100% - $nav-height);
8
- min-width: 2.625rem;
6
+ height: $search-size;
7
+ left: calc(100% - $search-size);
8
+ min-width: $search-size;
9
9
  position: absolute;
10
10
  right: 0;
11
- top: 0;
11
+ top: $padding-md;
12
12
  transition: left 0.25s ease-in;
13
13
 
14
+ @include isHeaderDesktop {
15
+ top: 0;
16
+ }
17
+
14
18
  &--active {
15
19
  left: 0;
16
20
  transition: left 0.25s ease-in 0.2s;
@@ -18,8 +22,8 @@
18
22
 
19
23
  &__input-status-icon {
20
24
  border-bottom: 1px solid $pure-black;
21
- height: $nav-height;
22
- width: $nav-height;
25
+ height: $search-size;
26
+ width: $search-size;
23
27
 
24
28
  svg {
25
29
  height: 100%;
@@ -76,11 +80,15 @@
76
80
  font-size: 0.875rem;
77
81
  font-style: normal;
78
82
  font-weight: 400;
79
- height: $nav-height;
83
+ height: $search-size;
80
84
  line-height: 1.5rem;
81
85
  margin: 0;
82
86
  padding: $spacing-sm 0 $spacing-sm $spacing-sm;
83
87
 
88
+ @include media($size-xl) {
89
+ height: 2.875rem;
90
+ }
91
+
84
92
  &:focus {
85
93
  outline: none;
86
94
  }
@@ -92,3 +100,36 @@
92
100
  }
93
101
  }
94
102
  }
103
+
104
+ .#{$px}-search__container {
105
+ cursor: pointer;
106
+ display: flex;
107
+ justify-content: space-between;
108
+ padding: $padding-md 0;
109
+ pointer-events: all;
110
+
111
+ @include isHeaderDesktop {
112
+ cursor: default;
113
+ padding: 0;
114
+ }
115
+
116
+ @include isHeaderMobile {
117
+ position: relative;
118
+ }
119
+
120
+ &__label {
121
+ display: none;
122
+ margin: 0;
123
+
124
+ @include isHeaderMobile {
125
+ align-items: center;
126
+ cursor: pointer;
127
+ display: flex;
128
+ flex-wrap: wrap;
129
+ height: $search-size;
130
+ margin: 0;
131
+ padding: 0 $spacing-sm;
132
+ pointer-events: all;
133
+ }
134
+ }
135
+ }
@@ -7,14 +7,18 @@
7
7
  border-bottom: 1px solid transparent;
8
8
  cursor: pointer;
9
9
  display: flex;
10
- height: $nav-height;
10
+ height: $search-size;
11
11
  justify-content: center;
12
12
  margin: 0;
13
13
  padding: 0;
14
14
  position: absolute;
15
15
  right: 0;
16
16
  top: 0;
17
- width: $nav-height;
17
+ width: $search-size;
18
+
19
+ @include media($size-xl) {
20
+ padding: 0 0 0.125rem;
21
+ }
18
22
 
19
23
  &--close {
20
24
  border-bottom: 1px solid $pure-black;