@phillips/seldon 1.26.1 → 1.27.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 (58) hide show
  1. package/dist/assets/account_circle.svg.js +5 -0
  2. package/dist/assets/search.svg.js +5 -0
  3. package/dist/components/Button/Button.d.ts +2 -2
  4. package/dist/components/Button/Button.js +12 -12
  5. package/dist/components/Header/Header.d.ts +26 -9
  6. package/dist/components/Header/Header.js +70 -24
  7. package/dist/components/Link/utils.d.ts +7 -1
  8. package/dist/components/Link/utils.js +6 -6
  9. package/dist/components/Navigation/Navigation.d.ts +10 -0
  10. package/dist/components/Navigation/Navigation.js +50 -0
  11. package/dist/components/Navigation/NavigationItem/NavigationItem.d.ts +30 -0
  12. package/dist/components/Navigation/NavigationItem/NavigationItem.js +35 -0
  13. package/dist/components/Navigation/NavigationItemTrigger/NavigationItemTrigger.d.ts +9 -0
  14. package/dist/components/Navigation/NavigationItemTrigger/NavigationItemTrigger.js +31 -0
  15. package/dist/components/Navigation/NavigationList/NavigationList.d.ts +9 -0
  16. package/dist/components/Navigation/NavigationList/NavigationList.js +32 -0
  17. package/dist/components/Search/Search.d.ts +7 -0
  18. package/dist/components/Search/Search.js +49 -0
  19. package/dist/components/Select/Select.js +28 -27
  20. package/dist/components/UserManagement/UserManagement.d.ts +19 -0
  21. package/dist/components/UserManagement/UserManagement.js +52 -0
  22. package/dist/components/ViewingsList/ViewingsList.js +10 -10
  23. package/dist/components/ViewingsList/ViewingsListCard.d.ts +2 -2
  24. package/dist/components/ViewingsList/ViewingsListCard.js +51 -51
  25. package/dist/index.d.ts +7 -0
  26. package/dist/index.js +65 -51
  27. package/dist/pages/Page.js +38 -54
  28. package/dist/scss/_vars.scss +1 -1
  29. package/dist/scss/components/Button/_button.scss +3 -3
  30. package/dist/scss/components/DatePicker/_datePicker.scss +2 -2
  31. package/dist/scss/components/Footer/_footer.scss +4 -4
  32. package/dist/scss/components/Grid/_grid.scss +2 -2
  33. package/dist/scss/components/GridItem/_gridItem.scss +1 -1
  34. package/dist/scss/components/Header/_header.scss +144 -24
  35. package/dist/scss/components/HeroBanner/_heroBanner.scss +1 -1
  36. package/dist/scss/components/Input/_input.scss +2 -2
  37. package/dist/scss/components/Link/_link.scss +77 -3
  38. package/dist/scss/components/LinkBlock/_linkBlock.scss +2 -2
  39. package/dist/scss/components/LinkList/_linkList.scss +1 -1
  40. package/dist/scss/components/Modal/_modal.scss +2 -2
  41. package/dist/scss/components/Navigation/NavigationItem/_navigationItem.scss +272 -0
  42. package/dist/scss/components/Navigation/NavigationItemTrigger/_navigationItemTrigger.scss +1 -0
  43. package/dist/scss/components/Navigation/NavigationList/_navigationList.scss +96 -0
  44. package/dist/scss/components/Navigation/_navigation.scss +114 -0
  45. package/dist/scss/components/Row/_row.scss +1 -1
  46. package/dist/scss/components/Search/_search.scss +101 -0
  47. package/dist/scss/components/Social/_social.scss +3 -3
  48. package/dist/scss/components/SplitPanel/_splitPanel.scss +2 -2
  49. package/dist/scss/components/SplitPanel/_splitPanel.stories.scss +1 -1
  50. package/dist/scss/components/Subscribe/_subscribe.scss +4 -4
  51. package/dist/scss/components/Text/_text.scss +1 -1
  52. package/dist/scss/components/Toggle/_toggle.scss +2 -2
  53. package/dist/scss/components/UserManagement/_userManagement.scss +115 -0
  54. package/dist/scss/components/ViewingsList/_viewingsList.scss +3 -3
  55. package/dist/scss/styles.scss +6 -0
  56. package/dist/types/commonTypes.d.ts +4 -0
  57. package/dist/types/commonTypes.js +4 -0
  58. package/package.json +12 -11
@@ -1,32 +1,152 @@
1
- .storybook-header {
1
+ @import '@phillips/seldon/dist/scss/vars';
2
+
3
+ .#{$px}-header {
2
4
  align-items: center;
5
+ background-color: $white;
3
6
  border-bottom: 1px solid rgba(0, 0, 0, 10%);
4
7
  display: flex;
5
- font-family: Montserrat, 'Helvetica Neue', Helvetica, Arial, sans-serif;
6
- justify-content: space-between;
7
- padding: 15px 20px;
8
- }
8
+ height: 60px;
9
+ padding: 0 $spacing-md;
10
+ position: fixed;
11
+ top: 30px;
12
+ width: 100vw;
9
13
 
10
- .storybook-header svg {
11
- display: inline-block;
12
- vertical-align: top;
13
- }
14
+ @media (max-width: #{$breakpoint-md - 1}) {
15
+ top: 0;
16
+ }
14
17
 
15
- .storybook-header h1 {
16
- display: inline-block;
17
- font-size: 20px;
18
- font-weight: 700;
19
- line-height: 1;
20
- margin: 6px 0 6px 10px;
21
- vertical-align: top;
22
- }
18
+ &__toggle-btn {
19
+ align-items: center;
20
+ appearance: none;
21
+ background: none;
22
+ border: none;
23
+ cursor: pointer;
24
+ display: flex;
25
+ height: 60px;
26
+ justify-content: center;
27
+ left: 0;
28
+ overflow: hidden;
29
+ position: absolute;
30
+ top: 0;
31
+ transition: background-color 0.25s;
32
+ width: 60px;
33
+ z-index: 1;
23
34
 
24
- .storybook-header button + button {
25
- margin-left: 10px;
26
- }
35
+ @media (min-width: $breakpoint-md) {
36
+ display: none;
37
+ }
38
+
39
+ span {
40
+ background-color: $dark-gray;
41
+ color: transparent;
42
+ display: block;
43
+ height: 2px;
44
+ position: relative;
45
+ transition: background-color 0.25s ease 0.5s;
46
+ width: 1.65rem;
47
+
48
+ &::before,
49
+ &::after {
50
+ background-color: $dark-gray;
51
+ content: '';
52
+ display: block;
53
+ height: 2px;
54
+ left: 0;
55
+ position: absolute;
56
+ top: 0;
57
+ transition: transform 0.25s ease 0.25s;
58
+ width: 1.65rem;
59
+ }
60
+
61
+ &::before {
62
+ transform: translateY(-8px);
63
+ }
64
+
65
+ &::after {
66
+ transform: translateY(8px);
67
+ }
68
+ }
69
+
70
+ &.#{$px}-header__toggle-btn--open span {
71
+ background: transparent;
72
+ transition: background-color 0.25s ease 0.1s;
73
+
74
+ &::before {
75
+ transform: rotate(45deg);
76
+ }
77
+
78
+ &::after {
79
+ transform: rotate(-45deg);
80
+ }
81
+ }
82
+
83
+ &:hover {
84
+ background-color: $off-white;
85
+ }
86
+ }
87
+
88
+ &__logo {
89
+ margin: auto;
90
+
91
+ @media (min-width: $breakpoint-md) {
92
+ margin: unset;
93
+ }
94
+ }
95
+
96
+ &__overlay {
97
+ background-color: rgba(0, 0, 0, 50%);
98
+ height: 0;
99
+ inset: 0;
100
+ opacity: 0;
101
+ position: fixed;
102
+ transition: opacity 0.5s ease-in-out;
103
+ width: 100%;
104
+ z-index: -1;
105
+
106
+ &--active {
107
+ display: block;
108
+ height: 100%;
109
+ opacity: 1;
110
+
111
+ @media (min-width: #{$breakpoint-md - 1}) {
112
+ display: none;
113
+ }
114
+
115
+ & ~ .#{$px}-header__nav {
116
+ z-index: 1;
117
+ }
118
+ & ~ .#{$px}-header__toggle-btn {
119
+ z-index: 2;
120
+ }
121
+
122
+ & ~ .#{$px}-search {
123
+ .#{$px}-search__button {
124
+ z-index: -1;
125
+ }
126
+ }
127
+ }
128
+ }
129
+
130
+ &__nav {
131
+ height: 100%;
132
+ left: 0;
133
+ position: fixed;
134
+ top: 0;
135
+ transform: translateX(-100%);
136
+
137
+ @media (min-width: $breakpoint-md) {
138
+ height: 60px;
139
+ position: relative;
140
+ transform: unset;
141
+ width: 100%;
142
+ }
143
+
144
+ &.#{$px}-header__nav--open {
145
+ transform: translateX(0);
27
146
 
28
- .storybook-header .welcome {
29
- color: #333;
30
- font-size: 14px;
31
- margin-right: 10px;
147
+ @media (min-width: $breakpoint-md) {
148
+ transform: unset;
149
+ }
150
+ }
151
+ }
32
152
  }
@@ -1,4 +1,4 @@
1
- @import '../../vars';
1
+ @import '@phillips/seldon/dist/scss/vars';
2
2
 
3
3
  .#{$px}-hero-banner {
4
4
  align-items: center;
@@ -1,5 +1,5 @@
1
- @import '../../vars';
2
- @import '../../utils';
1
+ @import '@phillips/seldon/dist/scss/vars';
2
+ @import '@phillips/seldon/dist/scss/utils';
3
3
 
4
4
  $md: #{$px}-input--md;
5
5
  $lg: #{$px}-input--lg;
@@ -1,12 +1,12 @@
1
- @import '../../type';
1
+ @import '@phillips/seldon/dist/scss/type';
2
2
 
3
3
  .#{$px}-link {
4
4
  color: $cta-blue;
5
5
  text-decoration: none;
6
6
  white-space: nowrap;
7
7
 
8
- &:hover:not(&--list),
9
- &:focus:not(&--list) {
8
+ &:hover:not(&--list, &--navMain, &--navLinkLg, &--navLinkSm),
9
+ &:focus:not(&--list, &--navMain, &--navLinkLg, &--navLinkSm) {
10
10
  @include underline;
11
11
  }
12
12
 
@@ -25,4 +25,78 @@
25
25
  &--list {
26
26
  color: $soft-black;
27
27
  }
28
+
29
+ &--email {
30
+ @include text($email);
31
+ }
32
+
33
+ &--navMain {
34
+ .#{$px}-nav__item--label {
35
+ color: $soft-black;
36
+ text-align: center;
37
+ }
38
+ }
39
+
40
+ &--navLinkSm {
41
+ color: $soft-black;
42
+ justify-content: flex-end;
43
+
44
+ &:hover {
45
+ .#{$px}-nav__item--label {
46
+ color: $cta-blue;
47
+ }
48
+ }
49
+
50
+ .#{$px}-nav__item--label {
51
+ /* TODO: Create token to handle these styles dynamically */
52
+ font-size: 0.8125rem;
53
+ font-weight: 500;
54
+ letter-spacing: 0.125rem;
55
+ line-height: 0.8125rem;
56
+ text-align: right;
57
+ text-transform: uppercase;
58
+ }
59
+ }
60
+
61
+ &--navLinkLg {
62
+ color: $soft-black;
63
+ display: flex;
64
+ justify-content: space-between;
65
+ width: 100%;
66
+
67
+ > span {
68
+ display: flex;
69
+ width: 100%;
70
+ }
71
+
72
+ .#{$px}-nav__item--label {
73
+ /* TODO: Create token to handle these styles dynamically */
74
+ @include pText(1.0625rem);
75
+
76
+ font-weight: 600;
77
+ overflow: hidden;
78
+ text-overflow: ellipsis;
79
+ text-transform: capitalize;
80
+ text-wrap: nowrap;
81
+ width: 100%;
82
+
83
+ &:hover {
84
+ color: $cta-blue;
85
+ }
86
+
87
+ @media (max-width: #{$breakpoint-md - 1}) {
88
+ /* TODO: Create token to handle these styles dynamically */
89
+ font-size: 0.8rem;
90
+ font-weight: 400;
91
+ text-overflow: unset;
92
+ text-wrap: wrap;
93
+ }
94
+ }
95
+
96
+ .#{$px}-link--navLinkSm {
97
+ .#{$px}-nav__item--label {
98
+ color: $cta-blue;
99
+ }
100
+ }
101
+ }
28
102
  }
@@ -1,5 +1,5 @@
1
- @import '../../type';
2
- @import '../../vars';
1
+ @import '@phillips/seldon/dist/scss/type';
2
+ @import '@phillips/seldon/dist/scss/vars';
3
3
 
4
4
  .#{$px}-link-block {
5
5
  align-items: center;
@@ -1,4 +1,4 @@
1
- @import '../../_utils';
1
+ @import '@phillips/seldon/dist/scss/_utils';
2
2
 
3
3
  .#{$px}-link-list {
4
4
  &--item {
@@ -1,5 +1,5 @@
1
- @import '../../vars';
2
- @import '../../utils';
1
+ @import '@phillips/seldon/dist/scss/vars';
2
+ @import '@phillips/seldon/dist/scss/utils';
3
3
 
4
4
  .#{$px}-modal {
5
5
  background-color: white;
@@ -0,0 +1,272 @@
1
+ @import '@phillips/seldon/dist/scss/vars';
2
+ @import '@phillips/seldon/dist/scss/typography';
3
+
4
+ .#{$px}-nav__item {
5
+ @media (max-width: #{$breakpoint-md - 1}) {
6
+ border-bottom: 1px solid #ccc;
7
+ max-width: 320px;
8
+ width: 100%;
9
+ }
10
+
11
+ @media (min-width: $breakpoint-md) {
12
+ align-items: center;
13
+ display: flex;
14
+ max-width: unset;
15
+
16
+ &:hover,
17
+ &:focus,
18
+ &:focus-within {
19
+ .#{$px}-nav__item--label {
20
+ color: $pure-black;
21
+ }
22
+ }
23
+
24
+ & & {
25
+ border-bottom: 1px solid #ccc;
26
+ }
27
+ }
28
+
29
+ & > button,
30
+ &--label {
31
+ /* TODO: Create token to handle these styles dynamically */
32
+ color: $soft-black;
33
+ display: block;
34
+ font-size: 0.8125rem;
35
+ font-weight: 500;
36
+ letter-spacing: 0.125rem;
37
+ line-height: 0.8125rem;
38
+ text-transform: uppercase;
39
+ width: 100%;
40
+
41
+ @media (max-width: #{$breakpoint-md - 1}) {
42
+ position: relative;
43
+ }
44
+ }
45
+
46
+ &--expanded ~ & &--label,
47
+ &--expanded ~ & > button {
48
+ @media (max-width: #{$breakpoint-md - 1}) {
49
+ display: none;
50
+
51
+ & > span::after {
52
+ content: '';
53
+ }
54
+ }
55
+ }
56
+
57
+ ul {
58
+ background: $pure-white;
59
+ opacity: 0;
60
+ overflow: hidden scroll;
61
+ position: absolute;
62
+ right: 0;
63
+ top: 0;
64
+ width: 307px;
65
+ z-index: -10;
66
+ }
67
+
68
+ @media (min-width: $breakpoint-md) {
69
+ ul {
70
+ align-content: start;
71
+ background: #f4f4f4;
72
+ height: auto;
73
+ left: 0;
74
+ max-height: 0;
75
+ min-height: 0;
76
+ opacity: 0;
77
+ overflow: hidden;
78
+ position: fixed;
79
+ top: 90px;
80
+ width: 100vw;
81
+ z-index: -1;
82
+
83
+ li {
84
+ display: flex;
85
+ justify-content: end;
86
+ opacity: 0;
87
+
88
+ button,
89
+ a,
90
+ p {
91
+ @media (min-width: $breakpoint-md) {
92
+ border: none;
93
+ }
94
+ }
95
+
96
+ span {
97
+ &--badge {
98
+ display: flex;
99
+ justify-content: flex-end;
100
+ }
101
+
102
+ &--label {
103
+ text-wrap: nowrap;
104
+ }
105
+ }
106
+ }
107
+ }
108
+
109
+ &:hover ul,
110
+ &--expanded:focus-within ul {
111
+ max-height: 100vh;
112
+ min-height: 227px;
113
+ opacity: 1;
114
+ padding: 3.75rem;
115
+ z-index: 1;
116
+
117
+ li {
118
+ opacity: 1;
119
+
120
+ ul li::after {
121
+ opacity: 0;
122
+ }
123
+ }
124
+ }
125
+ }
126
+
127
+ .#{$px}-nav__item-trigger > label::after {
128
+ @media (max-width: #{$breakpoint-md - 1}) {
129
+ content: '\203A';
130
+ display: inline-block;
131
+ font-size: 1.75rem;
132
+ font-weight: normal;
133
+ position: absolute;
134
+ right: 0;
135
+ top: 35%;
136
+ transform: translateY(-50%);
137
+ }
138
+
139
+ @media (min-width: $breakpoint-md) {
140
+ content: '';
141
+ }
142
+ }
143
+
144
+ &.#{$px}-nav__item--expanded ul {
145
+ opacity: 1;
146
+ z-index: 0;
147
+ }
148
+
149
+ & > a,
150
+ & > button,
151
+ & > p {
152
+ background-color: transparent;
153
+ display: flex;
154
+ padding: 0.625rem;
155
+ }
156
+
157
+ @media (max-width: #{$breakpoint-md - 1}) {
158
+ & > a:focus,
159
+ & > button:focus,
160
+ & > p:focus {
161
+ background-color: #f4f4f4;
162
+ }
163
+
164
+ &:hover {
165
+ & > a,
166
+ & > button,
167
+ & > p {
168
+ background-color: #f4f4f4;
169
+ }
170
+ }
171
+ }
172
+
173
+ @media (min-width: $breakpoint-md) {
174
+ position: relative;
175
+
176
+ &:not(ul ul li):hover::before {
177
+ content: '';
178
+ height: 100%;
179
+ position: absolute;
180
+ top: 0;
181
+ width: 100%;
182
+ }
183
+
184
+ &:not(ul ul li) a:focus,
185
+ &:not(ul ul li) button:focus,
186
+ &:not(ul ul li) p:focus {
187
+ background: #f4f4f4;
188
+ }
189
+
190
+ &:not(ul ul li)::after,
191
+ &:not(ul ul li a):focus::after,
192
+ &:not(ul ul li button):focus::after {
193
+ background: rgb(84, 84, 84);
194
+ content: '';
195
+ height: 2px;
196
+ left: 50%;
197
+ opacity: 0;
198
+ position: absolute;
199
+ top: 70%;
200
+ transform: translateX(-50%);
201
+ width: 0;
202
+ }
203
+
204
+ &:not(ul ul li):hover::after,
205
+ &:not(ul ul li) a:focus::after,
206
+ &:not(ul ul li) button:focus::after,
207
+ &:not(ul ul li) p:focus::after {
208
+ opacity: 1;
209
+ width: 85%;
210
+ }
211
+
212
+ .#{$px}-nav__list-item {
213
+ position: static;
214
+ z-index: 1;
215
+ }
216
+
217
+ & > .#{$px}-nav__list-item-trigger::before {
218
+ background: #f4f4f4;
219
+ content: '';
220
+ height: 2px;
221
+ left: 0;
222
+ opacity: 0;
223
+ position: absolute;
224
+ top: 100%;
225
+ width: 100%;
226
+ }
227
+
228
+ &:hover > .#{$px}-nav__item-trigger::before,
229
+ &:focus > .#{$px}-nav__item-trigger::before {
230
+ opacity: 1;
231
+ }
232
+ }
233
+ }
234
+
235
+ .#{$px}-nav__list__section {
236
+ &--large-cta {
237
+ margin-right: 1rem;
238
+
239
+ @media (max-width: #{$breakpoint-md - 1}) {
240
+ margin-right: 0;
241
+ }
242
+ .#{$px}-nav__item {
243
+ &--badge {
244
+ /* TODO: Create token to handle these styles dynamically */
245
+ align-items: center;
246
+ display: flex;
247
+ flex-wrap: wrap;
248
+ font-weight: 400;
249
+ justify-content: flex-end;
250
+ letter-spacing: 0.25rem;
251
+ line-height: 0.8125rem;
252
+ min-width: 25%;
253
+ text-align: right;
254
+ text-transform: uppercase;
255
+
256
+ @include pText(0.8125rem, $keyline-gray);
257
+
258
+ &:hover {
259
+ color: $keyline-gray;
260
+ }
261
+
262
+ @media (max-width: #{$breakpoint-md - 1}) {
263
+ /* TODO: Create token to handle these styles dynamically */
264
+ align-items: flex-start;
265
+ font-size: 0.6rem;
266
+ letter-spacing: 0.125rem;
267
+ min-width: 35%;
268
+ }
269
+ }
270
+ }
271
+ }
272
+ }
@@ -0,0 +1 @@
1
+ @import '@phillips/seldon/dist/scss/vars';
@@ -0,0 +1,96 @@
1
+ @import '@phillips/seldon/dist/scss/vars';
2
+
3
+ .#{$px}-nav__list {
4
+ display: flex;
5
+ justify-content: right;
6
+ list-style: none;
7
+ margin: 0;
8
+ padding: 0;
9
+ width: 100%;
10
+
11
+ @media (max-width: #{$breakpoint-md - 1}) {
12
+ flex-direction: column;
13
+ height: calc(100vh - 102px);
14
+ justify-content: left;
15
+ min-width: 330px;
16
+ overflow: scroll;
17
+ padding: 0.5rem;
18
+ transform: translateX(0%);
19
+ transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1) 0.1s;
20
+ }
21
+
22
+ &--expanded {
23
+ @media (max-width: #{$breakpoint-md - 1}) {
24
+ &:not(li ul) {
25
+ transform: translateX(-50%);
26
+ width: 200%;
27
+ }
28
+ }
29
+ }
30
+
31
+ & .#{$px}-nav__item > & {
32
+ display: grid;
33
+ grid-template-columns: 20% 20% 20% 20% 20%;
34
+
35
+ @media (max-width: #{$breakpoint-md - 1}) {
36
+ display: none;
37
+
38
+ &--expanded {
39
+ display: flex;
40
+ flex-direction: column;
41
+ }
42
+ }
43
+ }
44
+
45
+ &__section {
46
+ &--large-cta {
47
+ grid-column: 1 / span 4;
48
+ height: fit-content;
49
+
50
+ .#{$px}-nav__item:first-child {
51
+ a {
52
+ padding-top: 0;
53
+ }
54
+ }
55
+
56
+ .#{$px}-nav__item:last-child {
57
+ justify-content: flex-end;
58
+ &:has(> .#{$px}-link--navLinkSm) {
59
+ border-bottom: none;
60
+ padding-bottom: 0;
61
+ }
62
+ .#{$px}-link--navLinkSm {
63
+ .#{$px}-nav__item--label {
64
+ color: $cta-blue;
65
+ }
66
+ }
67
+ }
68
+ }
69
+
70
+ &--small-cta {
71
+ display: grid;
72
+ grid-column: 4 / span 2;
73
+ height: fit-content;
74
+
75
+ @media (max-width: #{$breakpoint-md - 1}) {
76
+ margin-top: 2rem;
77
+ }
78
+ }
79
+
80
+ &--large-cta + &--small-cta {
81
+ display: grid;
82
+ grid-column: 5 / span 1;
83
+ height: fit-content;
84
+ }
85
+ }
86
+
87
+ > li:not(.#{$px}-user-management) {
88
+ @media (min-width: $breakpoint-md) {
89
+ height: 60px;
90
+ }
91
+ }
92
+
93
+ * {
94
+ cursor: pointer;
95
+ }
96
+ }