@phillips/seldon 1.17.0 → 1.17.2

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.
@@ -1,7 +1,7 @@
1
1
  type User = {
2
2
  name: string;
3
3
  };
4
- interface HeaderProps {
4
+ export interface HeaderProps {
5
5
  user?: User;
6
6
  onLogin?: () => void;
7
7
  onLogout?: () => void;
@@ -1,4 +1,4 @@
1
- interface HeroBannerProps {
1
+ export interface HeroBannerProps {
2
2
  /**
3
3
  * informational text above the header (e.g. region label or "buy now")
4
4
  */
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { default as Button } from './components/Button/Button';
2
- export { default as ErrorBoundary } from './components/ErrorBoundary/ErrorBoundary';
3
- export { default as Grid } from './components/Grid/Grid';
4
- export { default as Header } from './components/Header/Header';
5
- export { default as HeroBanner } from './components/HeroBanner/HeroBanner';
6
- export { default as Input } from './components/Input/Input';
7
- export { default as Select } from './components/Select/Select';
8
- export { default as ViewingsList } from './components/ViewingsList/ViewingsList';
9
- export { default as StatefulViewingsList } from './components/ViewingsList/StatefulViewingsList';
1
+ export { default as Button, type ButtonProps } from './components/Button/Button';
2
+ export { default as ErrorBoundary, type ErrorBoundaryProps } from './components/ErrorBoundary/ErrorBoundary';
3
+ export { default as Grid, type GridProps } from './components/Grid/Grid';
4
+ export { default as Header, type HeaderProps } from './components/Header/Header';
5
+ export { default as HeroBanner, type HeroBannerProps } from './components/HeroBanner/HeroBanner';
6
+ export { default as Input, type InputProps } from './components/Input/Input';
7
+ export { default as Select, type SelectProps } from './components/Select/Select';
8
+ export { default as ViewingsList, type ViewingsListProps } from './components/ViewingsList/ViewingsList';
9
+ export { default as StatefulViewingsList, type StatefulViewingsListProps, } from './components/ViewingsList/StatefulViewingsList';
10
10
  export { default as Page } from './pages/Page';
@@ -9,8 +9,8 @@
9
9
  }
10
10
 
11
11
  body {
12
- line-height: 1.5;
13
12
  -webkit-font-smoothing: antialiased;
13
+ line-height: 1.5;
14
14
  }
15
15
 
16
16
  img,
@@ -2,7 +2,7 @@
2
2
 
3
3
  @mixin hText($size: $heading-size1, $color: $primary-black, $transform-style: capitalize) {
4
4
  color: $color;
5
- font-family: 'DistinctDisplay';
5
+ font-family: DistinctDisplay, sans-serif;
6
6
  font-size: $size;
7
7
  font-weight: 400;
8
8
  line-height: 1.25;
@@ -11,14 +11,14 @@
11
11
 
12
12
  @mixin pText($size: $body-size1, $color: $soft-black) {
13
13
  color: $color;
14
- font-family: 'Montserrat';
14
+ font-family: Montserrat, sans-serif;
15
15
  font-size: $size;
16
- line-height: 1.5;
17
16
  letter-spacing: 0.0625rem;
17
+ line-height: 1.5;
18
18
  }
19
19
 
20
20
  @mixin labelText($label) {
21
- font-family: 'Montserrat';
21
+ font-family: Montserrat, sans-serif;
22
22
 
23
23
  @if $label == 'button' {
24
24
  font-size: $button-label-size;
@@ -26,6 +26,7 @@
26
26
  letter-spacing: 0.0625rem;
27
27
  text-transform: capitalize;
28
28
  }
29
+
29
30
  @if $label == 'cta-sm' {
30
31
  font-size: $cta-sm-label-size;
31
32
  font-weight: 600;
@@ -33,6 +34,7 @@
33
34
  line-height: 1.25;
34
35
  text-transform: uppercase;
35
36
  }
37
+
36
38
  @if $label == 'cta-lg' {
37
39
  font-size: $cta-lg-label-size;
38
40
  font-weight: 700;
@@ -40,6 +42,7 @@
40
42
  line-height: 1.25;
41
43
  text-transform: uppercase;
42
44
  }
45
+
43
46
  @if $label == 'email' {
44
47
  font-size: $email-label-size;
45
48
  font-weight: 600;
@@ -47,12 +50,14 @@
47
50
  line-height: 1.25;
48
51
  text-transform: lowercase;
49
52
  }
53
+
50
54
  @if $label == 'text' {
51
55
  font-size: $text-label-size;
52
56
  font-weight: 500;
53
57
  letter-spacing: 0.0625rem;
54
58
  line-height: 1.25;
55
59
  }
60
+
56
61
  @if $label == 'text-badge' {
57
62
  font-size: $text-badge-label-size;
58
63
  font-weight: 500;
@@ -67,57 +72,74 @@
67
72
  @if $token == 'button' {
68
73
  @include labelText($button);
69
74
  }
75
+
70
76
  @if $token == 'cta-sm' {
71
77
  @include labelText($cta-sm);
72
78
  }
79
+
73
80
  @if $token == 'cta-lg' {
74
81
  @include labelText($cta-lg);
75
82
  }
83
+
76
84
  @if $token == 'email' {
77
85
  @include labelText($email);
78
86
  }
87
+
79
88
  @if $token == 'text' {
80
89
  @include labelText($text);
81
90
  }
91
+
82
92
  @if $token == 'text-badge' {
83
93
  @include labelText($text-badge);
84
94
  }
95
+
85
96
  // Displays
86
97
  @if $token == 'display0' {
87
98
  @include hText($display-size0, null, uppercase);
88
99
  }
100
+
89
101
  @if $token == 'display1' {
90
102
  @include hText($display-size1, null, uppercase);
91
103
  }
104
+
92
105
  @if $token == 'display2' {
93
106
  @include hText($display-size2, null, uppercase);
94
107
  }
108
+
95
109
  @if $token == 'display3' {
96
110
  @include hText($display-size3, null, uppercase);
97
111
  }
112
+
98
113
  @if $token == 'display4' {
99
114
  @include hText($display-size4, null, uppercase);
100
115
  }
116
+
101
117
  // Headings
102
118
  @if $token == 'heading1' {
103
119
  @include hText($heading-size1);
104
120
  }
121
+
105
122
  @if $token == 'heading2' {
106
123
  @include hText($heading-size2);
107
124
  }
125
+
108
126
  @if $token == 'heading3' {
109
127
  @include hText($heading-size3);
110
128
  }
129
+
111
130
  @if $token == 'heading4' {
112
131
  @include hText($heading-size4);
113
132
  }
133
+
114
134
  // Body
115
135
  @if $token == 'body1' {
116
136
  @include pText($body-size1);
117
137
  }
138
+
118
139
  @if $token == 'body2' {
119
140
  @include pText($body-size2);
120
141
  }
142
+
121
143
  @if $token == 'body3' {
122
144
  @include pText($body-size3);
123
145
  }
@@ -3,13 +3,13 @@
3
3
  html,
4
4
  body {
5
5
  font-family:
6
- 'Montserrat',
6
+ Montserrat,
7
7
  -apple-system,
8
8
  BlinkMacSystemFont,
9
- avenir next,
9
+ 'avenir next',
10
10
  avenir,
11
- segoe ui,
12
- helvetica neue,
11
+ 'segoe ui',
12
+ 'helvetica neue',
13
13
  helvetica,
14
14
  Cantarell,
15
15
  Ubuntu,
@@ -18,57 +18,61 @@ body {
18
18
  arial,
19
19
  sans-serif;
20
20
  font-size: 16px;
21
- margin: 0;
22
21
  -webkit-font-smoothing: antialiased;
23
22
  -moz-osx-font-smoothing: grayscale;
24
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
23
+ margin: 0;
25
24
  -webkit-overflow-scrolling: touch;
25
+ -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
26
26
  }
27
27
 
28
28
  /** Fonts **/
29
29
  @font-face {
30
- font-family: 'DistinctDisplay';
30
+ font-family: DistinctDisplay;
31
31
  src: url('../fonts/Distinct-Display.woff') format('woff');
32
32
  src: url('../fonts/Distinct-Display.woff2') format('woff2');
33
33
  }
34
+
34
35
  @mixin DistinctDisplay {
35
- font-family: 'DistinctDisplay';
36
+ font-family: DistinctDisplay, sans-serif;
36
37
  }
37
38
 
38
39
  @font-face {
39
- font-family: 'DistinctDisplay';
40
+ font-family: DistinctDisplay;
41
+ font-style: italic;
40
42
  src: url('../fonts/Distinct-DisplayItalic.woff') format('woff');
41
43
  src: url('../fonts/Distinct-DisplayItalic.woff2') format('woff2');
42
- font-style: italic;
43
44
  }
44
45
 
45
46
  @mixin DistinctDisplayItalic {
46
- font-family: 'DistinctDisplay';
47
+ font-family: DistinctDisplay, sans-serif;
47
48
  font-style: italic;
48
49
  }
49
50
 
50
51
  @font-face {
51
- font-family: 'Distinct';
52
+ font-family: Distinct;
52
53
  src: url('../fonts/Distinct-Text.woff') format('woff');
53
54
  src: url('../fonts/Distinct-Text.woff2') format('woff2');
54
55
  }
56
+
55
57
  @mixin DistinctText {
56
- font-family: 'Distinct';
58
+ font-family: Distinct, sans-serif;
57
59
  }
60
+
58
61
  @font-face {
59
- font-family: 'Distinct';
62
+ font-family: Distinct;
63
+ font-style: italic;
60
64
  src: url('../fonts/Distinct-Italic.woff') format('woff');
61
65
  src: url('../fonts/Distinct-Italic.woff2') format('woff2');
62
- font-style: italic;
63
66
  }
64
67
 
65
68
  @mixin DistinctItalic {
66
- font-family: 'Distinct';
69
+ font-family: Distinct, sans-serif;
67
70
  font-style: italic;
68
71
  }
69
72
 
70
73
  @mixin headerText {
71
- @include DistinctDisplay();
74
+ @include DistinctDisplay;
75
+
72
76
  color: $primary-black;
73
77
  font-weight: 400;
74
78
  }
@@ -1,20 +1,20 @@
1
1
  @mixin hidden {
2
- position: absolute;
3
- overflow: hidden;
4
- padding: 0;
5
- border: 0;
6
- margin: -1px;
7
2
  block-size: 1px;
3
+ border: 0;
8
4
  clip-path: inset(100%);
9
5
  inline-size: 1px;
6
+ margin: -1px;
7
+ overflow: hidden;
8
+ padding: 0;
9
+ position: absolute;
10
10
  visibility: inherit;
11
11
  white-space: nowrap;
12
12
  }
13
13
 
14
14
  @mixin warning-icon-before {
15
+ border-bottom: 1.25rem solid #d6d141;
15
16
  border-left: 0.75rem solid transparent;
16
17
  border-right: 0.75rem solid transparent;
17
- border-bottom: 1.25rem solid #d6d141;
18
18
  content: '';
19
19
  height: 0;
20
20
  position: absolute;
@@ -26,27 +26,27 @@
26
26
  @mixin warning-icon-after {
27
27
  color: $pure-black;
28
28
  content: '!';
29
- font-family: arial;
30
- font-size: 0.85vrem;
29
+ font-family: arial, sans-serif;
30
+ font-size: 0.85rem;
31
31
  height: 2rem;
32
- width: 2rem;
32
+ line-height: 1;
33
33
  position: absolute;
34
34
  right: 10px;
35
- top: 50px;
36
35
  text-align: center;
37
- line-height: 1;
36
+ top: 50px;
37
+ width: 2rem;
38
38
  }
39
39
 
40
40
  @mixin grid($columns: 2) {
41
41
  display: grid;
42
- grid-template-columns: repeat($columns, 1fr);
43
42
  gap: $spacing-medium;
43
+ grid-template-columns: repeat($columns, 1fr);
44
44
  }
45
45
 
46
46
  @mixin gridContainer($margins-on: true) {
47
47
  display: grid;
48
- grid-template-columns: repeat(2, 1fr);
49
48
  gap: $spacing-medium;
49
+ grid-template-columns: repeat(2, 1fr);
50
50
 
51
51
  @if $margins-on {
52
52
  margin: 0 $spacing-medium;
@@ -58,6 +58,7 @@
58
58
 
59
59
  @media (min-width: $breakpoint3) {
60
60
  grid-template-columns: repeat(12, 1fr);
61
+
61
62
  @if $margins-on {
62
63
  margin: 0 $spacing-large;
63
64
  }
@@ -6,24 +6,27 @@ $px: phillips;
6
6
  ///////////////////////
7
7
 
8
8
  // Primary color palette
9
- $pure-black: #000000;
9
+ $pure-black: #000;
10
10
  $primary-black: #323232;
11
- $white: #ffffff;
11
+ $white: #fff;
12
12
 
13
13
  // Secondary color palette
14
14
  $soft-black: #545454;
15
15
  $dark-gray: #7b7474;
16
+
16
17
  // Utilititarian color palette
17
18
  $keyline-gray: #949494;
18
19
  $medium-gray: #c3bebb;
19
20
  $light-gray: #eceae7;
20
21
  $off-white: #f4f2f1;
22
+
21
23
  // Notification color palette
22
- $error-red: #ff0000;
23
- $error-pink: rgba(255, 229, 229, 0.9);
24
+ $error-red: #f00;
25
+ $error-pink: rgb(255 229 229 / 90%);
24
26
  $warn-yellow: #d6d141;
25
27
  $post-sale-pink: #ff0086;
26
28
  $cta-blue: #4a90e2;
29
+
27
30
  // AM color palette
28
31
  $widget-blue: #4a90e2;
29
32
  $widget-green: #6a9c53;
@@ -33,10 +36,12 @@ $clock-widget-blue: $widget-blue;
33
36
  $clock-widget-green: $widget-green;
34
37
  $clock-widget-maroon: $widget-maroon;
35
38
  $clock-widget-red: $widget-red;
39
+
36
40
  // Articker color palette
37
41
  $articker-red: #fc1e2b;
38
42
  $articker-orange: #ff8201;
39
43
  $articker-red-orange-gradient: linear-gradient(90deg, #fc1e2b, #ff8201);
44
+
40
45
  // Legacy mapping
41
46
  $pure-white: $white;
42
47
  $post-sale-magenta: $post-sale-pink;
@@ -69,18 +74,15 @@ $cta-lg: 'cta-lg';
69
74
  $email: 'email';
70
75
  $text: 'text';
71
76
  $text-badge: 'text-badge';
72
-
73
77
  $display0: 'display0';
74
78
  $display1: 'display1';
75
79
  $display2: 'display2';
76
80
  $display3: 'display3';
77
81
  $display4: 'display4';
78
-
79
82
  $heading1: 'heading1';
80
83
  $heading2: 'heading2';
81
84
  $heading3: 'heading3';
82
85
  $heading4: 'heading4';
83
-
84
86
  $body1: 'body1';
85
87
  $body2: 'body2';
86
88
  $body3: 'body3';
@@ -95,41 +97,35 @@ $body3: 'body3';
95
97
  --heading-size2: 1.95rem;
96
98
  --heading-size3: 1.56rem;
97
99
  --heading-size4: 1.56rem;
98
-
99
100
  --body-size1: 1.25rem;
100
101
  --body-size2: 1rem;
101
102
  --body-size3: 0.75rem;
102
-
103
103
  --label-size1: 1.25rem;
104
104
  --label-size2: 1rem;
105
- --label-size2: 0.75rem;
105
+ --label-size3: 0.75rem;
106
106
 
107
- @media (max-width: 960px) {
107
+ @media (width <= 960px) {
108
108
  --heading-size0: 2.59rem;
109
109
  --heading-size1: 1.83rem;
110
110
  --heading-size2: 1.46rem;
111
111
  --heading-size3: 1.17rem;
112
112
  --heading-size4: 0.94rem;
113
-
114
113
  --body-size1: 0.94rem;
115
114
  --body-size2: 0.75rem;
116
115
  --body-size3: 0.56rem;
117
-
118
116
  --label-size1: 1rem;
119
117
  --label-size2: 0.75rem;
120
- --label-size2: 0.56rem;
118
+ --label-size3: 0.56rem;
121
119
  }
122
120
 
123
- @media (min-width: 1800px) {
121
+ @media (width >= 1800px) {
124
122
  --heading-size0: 4.06rem;
125
123
  --heading-size1: 3.05rem;
126
124
  --heading-size2: 2.44rem;
127
125
  --heading-size3: 1.95rem;
128
-
129
126
  --body-size1: 1.56rem;
130
127
  --body-size2: 1.25rem;
131
128
  --body-size3: 0.94rem;
132
-
133
129
  --label-size1: 1.56rem;
134
130
  --label-size2: 1.25rem;
135
131
  --label-size3: 1rem;
@@ -142,15 +138,18 @@ $display-size1: var(--heading-size1);
142
138
  $display-size2: var(--heading-size2);
143
139
  $display-size3: var(--heading-size3);
144
140
  $display-size4: var(--heading-size4);
141
+
145
142
  // HEADING
146
143
  $heading-size1: var(--heading-size1);
147
144
  $heading-size2: var(--heading-size2);
148
145
  $heading-size3: var(--heading-size3);
149
146
  $heading-size4: var(--heading-size4);
147
+
150
148
  // BODY
151
149
  $body-size1: var(--body-size1);
152
150
  $body-size2: var(--body-size2);
153
151
  $body-size3: var(--body-size3);
152
+
154
153
  // LABELS
155
154
  $button-label-size: var(--label-size2);
156
155
  $cta-sm-label-size: var(--label-size2);
@@ -162,7 +161,7 @@ $text-badge-label-size: var(--label-size3);
162
161
  ////////////////////////
163
162
  /// SPACING TOKENS:
164
163
  ///////////////////////
165
-
164
+ /* stylelint-disable-next-line no-duplicate-selectors */
166
165
  :root {
167
166
  --spacing-micro: 0.25rem;
168
167
  --spacing-xsm: 0.5rem;
@@ -171,7 +170,7 @@ $text-badge-label-size: var(--label-size3);
171
170
  --spacing-large: 3rem;
172
171
  --spacing-xl: 6rem;
173
172
 
174
- @media (max-width: 960px) {
173
+ @media (width <= 960px) {
175
174
  --spacing-micro: 0.19rem;
176
175
  --spacing-xsm: 0.38rem;
177
176
  --spacing-small: 0.75rem;
@@ -180,7 +179,7 @@ $text-badge-label-size: var(--label-size3);
180
179
  --spacing-xl: 4.8rem;
181
180
  }
182
181
 
183
- @media (min-width: 1800px) {
182
+ @media (width >= 1800px) {
184
183
  --spacing-micro: 0.31rem;
185
184
  --spacing-xsm: 0.63rem;
186
185
  --spacing-small: 1.25rem;
@@ -3,6 +3,7 @@
3
3
 
4
4
  .#{$px}-button {
5
5
  @include bodyText;
6
+
6
7
  align-items: center;
7
8
  background-color: $pure-black;
8
9
  border: 0;
@@ -26,18 +27,19 @@
26
27
  fill: $pure-white;
27
28
  }
28
29
  }
30
+
29
31
  svg {
30
32
  fill: $pure-white;
31
- transition: fill 0.25s;
32
33
  margin-inline-end: 0.5rem;
34
+ transition: fill 0.25s;
33
35
  width: 1em;
34
36
  }
35
37
 
36
38
  &--secondary,
37
39
  &--ghost {
38
- color: $text-color;
39
40
  background-color: transparent;
40
41
  border: 1px solid;
42
+ color: $text-color;
41
43
 
42
44
  &:hover,
43
45
  &:focus {
@@ -1,3 +1,4 @@
1
+ /* stylelint-disable selector-class-pattern */
1
2
  @import 'flatpickr/dist/flatpickr.css';
2
3
  @import '../../vars';
3
4
  @import '../../typography';
@@ -13,6 +14,7 @@
13
14
  .flatpickr-day.endRange {
14
15
  border-radius: 0;
15
16
  }
17
+
16
18
  .flatpickr-day.selected,
17
19
  .flatpickr-day:hover,
18
20
  .flatpickr-day:focus,
@@ -25,25 +27,27 @@
25
27
 
26
28
  .flatpickr-day.today {
27
29
  border-color: transparent;
28
- @include DistinctDisplay;
29
30
  font-weight: bold;
30
31
  position: relative;
31
32
 
33
+ @include DistinctDisplay;
34
+
32
35
  &::after {
33
36
  background-color: $pure-black;
34
37
  bottom: 2px;
35
38
  content: '';
36
39
  height: 0.25rem;
37
- width: 0.25rem;
38
- position: absolute;
39
40
  left: 50%;
41
+ position: absolute;
40
42
  transform: translateX(-50%);
43
+ width: 0.25rem;
41
44
  }
42
45
  }
43
46
 
44
47
  .flatpickr-months .flatpickr-prev-month:hover,
45
48
  .flatpickr-months .flatpickr-next-month:hover {
46
49
  background-color: $pure-black;
50
+
47
51
  svg {
48
52
  fill: $pure-white;
49
53
  }
@@ -53,28 +57,29 @@
53
57
  .flatpickr-monthDropdown-months,
54
58
  .flatpickr-current-month input.cur-year {
55
59
  @include DistinctDisplay;
60
+
56
61
  font-size: 1rem;
57
62
  text-transform: uppercase;
58
63
  }
59
64
 
60
65
  .flatpickr-weekday {
61
66
  @include DistinctDisplay;
67
+
62
68
  font-weight: bold;
63
69
  }
64
70
 
65
71
  .flatpickr-current-month {
66
- padding: 0.65rem 0 0 0;
72
+ padding: 0.65rem 0 0;
67
73
  }
68
74
 
69
75
  .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
70
76
  .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
71
77
  .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
72
- -webkit-box-shadow: -10px 0 0 #e6e6e6;
73
78
  box-shadow: -10px 0 0 #e6e6e6;
74
79
  }
75
80
 
76
- &.arrowTop:before,
77
- &.arrowTop:after {
81
+ &.arrowTop::before,
82
+ &.arrowTop::after {
78
83
  content: unset;
79
84
  }
80
85
  }
@@ -9,11 +9,11 @@
9
9
  &__container--has-margins {
10
10
  margin: 0 $spacing-medium;
11
11
 
12
- @media (min-width: 1401px) {
12
+ @media (width >= 1401px) {
13
13
  margin: 0 $spacing-large;
14
14
  }
15
15
 
16
- @media (min-width: 1801px) {
16
+ @media (width >= 1801px) {
17
17
  margin: 0 $spacing-xl;
18
18
  }
19
19
  }
@@ -1,10 +1,10 @@
1
1
  .storybook-header {
2
- font-family: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
3
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
4
- padding: 15px 20px;
5
- display: flex;
6
2
  align-items: center;
3
+ border-bottom: 1px solid rgb(0 0 0 / 10%);
4
+ display: flex;
5
+ font-family: Montserrat, 'Helvetica Neue', Helvetica, Arial, sans-serif;
7
6
  justify-content: space-between;
7
+ padding: 15px 20px;
8
8
  }
9
9
 
10
10
  .storybook-header svg {
@@ -13,11 +13,11 @@
13
13
  }
14
14
 
15
15
  .storybook-header h1 {
16
- font-weight: 700;
16
+ display: inline-block;
17
17
  font-size: 20px;
18
+ font-weight: 700;
18
19
  line-height: 1;
19
20
  margin: 6px 0 6px 10px;
20
- display: inline-block;
21
21
  vertical-align: top;
22
22
  }
23
23
 
@@ -3,9 +3,9 @@
3
3
  .#{$px}-hero-banner {
4
4
  align-items: center;
5
5
  background: var(--background);
6
+ background-position: center center;
6
7
  background-repeat: no-repeat;
7
8
  background-size: cover;
8
- background-position: center center;
9
9
  display: flex;
10
10
  flex-flow: column;
11
11
  justify-content: center;
@@ -13,32 +13,32 @@
13
13
  padding: 1rem;
14
14
  width: 100%;
15
15
 
16
- @media (max-width: 28.8125rem) {
17
- flex-direction: column;
16
+ @media (width <= 28.8125rem) {
18
17
  align-items: center;
19
- gap: 1.875rem;
20
18
  align-self: stretch;
21
- padding: 1.875rem 0.9375rem;
22
19
  background: $pure-black;
20
+ flex-direction: column;
21
+ gap: 1.875rem;
22
+ padding: 1.875rem 0.9375rem;
23
23
 
24
24
  &::before {
25
- content: '';
26
25
  background: var(--background);
27
- width: 100%;
28
- height: 12rem;
29
- background-size: cover;
30
- background-repeat: no-repeat;
31
26
  background-position: center center;
27
+ background-repeat: no-repeat;
28
+ background-size: cover;
29
+ content: '';
30
+ height: 12rem;
31
+ width: 100%;
32
32
  }
33
33
  }
34
34
 
35
35
  h1 {
36
- font-family: 'DistinctDisplay', sans-serif;
36
+ font-family: DistinctDisplay, sans-serif;
37
37
  }
38
38
 
39
39
  h1 span,
40
40
  p {
41
- font-family: 'DistinctText', sans-serif;
41
+ font-family: DistinctText, sans-serif;
42
42
  }
43
43
 
44
44
  h1,
@@ -52,16 +52,16 @@
52
52
 
53
53
  p {
54
54
  font-size: 0.875rem;
55
- line-height: 1;
56
55
  letter-spacing: 0.125rem;
56
+ line-height: 1;
57
57
  text-align: center;
58
58
  }
59
59
 
60
60
  & .#{$px}-hero-banner__content-wrapper {
61
- max-width: 1082px;
61
+ align-items: center;
62
62
  display: flex;
63
63
  flex-direction: column;
64
- align-items: center;
64
+ max-width: 1082px;
65
65
  }
66
66
 
67
67
  & .#{$px}-hero-banner__pre-head {
@@ -70,14 +70,14 @@
70
70
  font-size: 0.75rem;
71
71
  gap: 1.875rem;
72
72
 
73
- @media (min-width: 28.8125rem) {
73
+ @media (width >= 28.8125rem) {
74
74
  font-size: 0.875rem;
75
75
  }
76
76
 
77
- @media (max-width: 28.8125rem) {
77
+ @media (width <= 28.8125rem) {
78
+ align-items: center;
78
79
  flex-direction: column;
79
80
  gap: 1rem;
80
- align-items: center;
81
81
  }
82
82
  }
83
83
 
@@ -90,7 +90,7 @@
90
90
  margin: 1.875rem 0;
91
91
  text-align: center;
92
92
 
93
- @media (min-width: 28.8125rem) {
93
+ @media (width >= 28.8125rem) {
94
94
  font-size: 2.375rem;
95
95
  }
96
96
 
@@ -11,7 +11,7 @@ $lg: #{$px}-input--lg;
11
11
  width: 100%;
12
12
 
13
13
  &--hidden {
14
- @include hidden();
14
+ @include hidden;
15
15
  }
16
16
 
17
17
  &__label {
@@ -23,7 +23,7 @@ $lg: #{$px}-input--lg;
23
23
  word-break: break-word;
24
24
 
25
25
  &--hidden {
26
- @include hidden();
26
+ @include hidden;
27
27
  }
28
28
  }
29
29
 
@@ -34,15 +34,16 @@ $lg: #{$px}-input--lg;
34
34
  font-size: 0.8125rem;
35
35
  margin-bottom: 0.5rem;
36
36
  padding: 0.5rem;
37
+
37
38
  // width: 100%;
38
39
  }
39
40
 
40
41
  &__validation {
42
+ -webkit-box-orient: vertical;
41
43
  display: -webkit-box;
44
+ -webkit-line-clamp: 2;
42
45
  line-height: 1.25;
43
46
  overflow: hidden;
44
- -webkit-box-orient: vertical;
45
- -webkit-line-clamp: 2;
46
47
  }
47
48
 
48
49
  // Small input size
@@ -62,8 +63,7 @@ $lg: #{$px}-input--lg;
62
63
  // Inline
63
64
  &--inline {
64
65
  align-items: center;
65
- flex-direction: row;
66
- flex-wrap: wrap;
66
+ flex-flow: row wrap;
67
67
  gap: 1rem;
68
68
 
69
69
  .#{$px}-input__input {
@@ -97,7 +97,7 @@ $lg: #{$px}-input--lg;
97
97
  }
98
98
 
99
99
  .#{$px}-input__input {
100
- background-color: rgba(239, 239, 239, 0.3);
100
+ background-color: rgb(239 239 239 / 30%);
101
101
  }
102
102
  }
103
103
 
@@ -113,7 +113,7 @@ $lg: #{$px}-input--lg;
113
113
 
114
114
  .#{$px}-input__input {
115
115
  border: 1px solid $error-red;
116
- box-shadow: inset 0px 0px 3px 3px $error-pink;
116
+ box-shadow: inset 0 0 3px 3px $error-pink;
117
117
  }
118
118
  }
119
119
 
@@ -175,6 +175,7 @@ $lg: #{$px}-input--lg;
175
175
  0% {
176
176
  opacity: 0;
177
177
  }
178
+
178
179
  100% {
179
180
  opacity: 1;
180
181
  }
@@ -8,6 +8,7 @@ $invalid: #{$px}-input--invalid;
8
8
  $warn: #{$px}-input--warn;
9
9
  $md: #{$px}-input--md;
10
10
  $lg: #{$px}-input--lg;
11
+
11
12
  // Shared Input styles
12
13
  .#{$px}-toggle-input {
13
14
  position: relative;
@@ -16,6 +17,7 @@ $lg: #{$px}-input--lg;
16
17
  .#{$px}-input__label {
17
18
  line-height: 1;
18
19
  margin-bottom: 2.5rem;
20
+
19
21
  // margin-left: 66px;
20
22
  position: relative;
21
23
 
@@ -28,14 +30,14 @@ $lg: #{$px}-input--lg;
28
30
  }
29
31
 
30
32
  &::before {
31
- background-color: rgba(0, 0, 0, 0.4);
33
+ background-color: rgb(0 0 0 / 40%);
32
34
  border-radius: 1rem;
33
- width: $toggleBaseWidth;
34
35
  height: 1rem;
35
36
  left: 0;
36
37
  transition:
37
38
  background-color 0.25s,
38
39
  color 0.25s;
40
+ width: $toggleBaseWidth;
39
41
  }
40
42
 
41
43
  &::after {
@@ -48,9 +50,9 @@ $lg: #{$px}-input--lg;
48
50
  color: white;
49
51
  height: 1rem;
50
52
  left: 0;
51
- width: 1rem;
52
53
  transform: translate(0, 0);
53
54
  transition: transform 0.25s;
55
+ width: 1rem;
54
56
  }
55
57
  }
56
58
 
@@ -78,6 +80,7 @@ $lg: #{$px}-input--lg;
78
80
  // Hide actual checkbox input
79
81
  .#{$px}-input__input {
80
82
  @include hidden;
83
+
81
84
  margin-bottom: 0;
82
85
  }
83
86
 
@@ -117,8 +120,8 @@ $lg: #{$px}-input--lg;
117
120
  margin-bottom: 3.5rem;
118
121
 
119
122
  &::before {
120
- width: 3.5rem;
121
123
  height: 2rem;
124
+ width: 3.5rem;
122
125
  }
123
126
 
124
127
  &::after {
@@ -130,16 +133,11 @@ $lg: #{$px}-input--lg;
130
133
  &.#{$inline} {
131
134
  .#{$px}-input__label {
132
135
  margin-bottom: 0.5rem;
136
+ margin-left: 4.375rem;
133
137
  }
134
138
  }
135
139
  }
136
140
 
137
- &.#{$lg}.#{$inline} {
138
- .#{$px}-input__label {
139
- margin-left: 4.375rem;
140
- }
141
- }
142
-
143
141
  // When in checked state
144
142
  &:has(input:checked) {
145
143
  .#{$px}-input__label {
@@ -8,8 +8,8 @@
8
8
  display: flex;
9
9
  flex-direction: column;
10
10
  gap: 2.5rem;
11
- padding: 1rem;
12
11
  max-width: 38rem;
12
+ padding: 1rem;
13
13
 
14
14
  &__title {
15
15
  @include headerText;
@@ -30,6 +30,7 @@
30
30
 
31
31
  &__title {
32
32
  @include headerText;
33
+
33
34
  color: $soft-black;
34
35
  }
35
36
 
@@ -1,19 +1,19 @@
1
1
  .storybook-page {
2
- font-family: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
2
+ color: #333;
3
+ font-family: Montserrat, 'Helvetica Neue', Helvetica, Arial, sans-serif;
3
4
  font-size: 14px;
4
5
  line-height: 24px;
5
- padding: 48px 20px;
6
6
  margin: 0 auto;
7
7
  max-width: 600px;
8
- color: #333;
8
+ padding: 48px 20px;
9
9
  }
10
10
 
11
11
  .storybook-page h2 {
12
- font-weight: 700;
12
+ display: inline-block;
13
13
  font-size: 32px;
14
+ font-weight: 700;
14
15
  line-height: 1;
15
16
  margin: 0 0 4px;
16
- display: inline-block;
17
17
  vertical-align: top;
18
18
  }
19
19
 
@@ -22,13 +22,13 @@
22
22
  }
23
23
 
24
24
  .storybook-page a {
25
- text-decoration: none;
26
25
  color: #1ea7fd;
26
+ text-decoration: none;
27
27
  }
28
28
 
29
29
  .storybook-page ul {
30
- padding-left: 30px;
31
30
  margin: 1em 0;
31
+ padding-left: 30px;
32
32
  }
33
33
 
34
34
  .storybook-page li {
@@ -36,32 +36,32 @@
36
36
  }
37
37
 
38
38
  .storybook-page .tip {
39
- display: inline-block;
39
+ background: #e7fdd8;
40
40
  border-radius: 1em;
41
+ color: #66bf3c;
42
+ display: inline-block;
41
43
  font-size: 11px;
42
- line-height: 12px;
43
44
  font-weight: 700;
44
- background: #e7fdd8;
45
- color: #66bf3c;
46
- padding: 4px 12px;
45
+ line-height: 12px;
47
46
  margin-right: 10px;
47
+ padding: 4px 12px;
48
48
  vertical-align: top;
49
49
  }
50
50
 
51
51
  .storybook-page .tip-wrapper {
52
52
  font-size: 13px;
53
53
  line-height: 20px;
54
- margin-top: 40px;
55
54
  margin-bottom: 40px;
55
+ margin-top: 40px;
56
56
  }
57
57
 
58
58
  .storybook-page .tip-wrapper svg {
59
59
  display: inline-block;
60
60
  height: 12px;
61
- width: 12px;
62
61
  margin-right: 4px;
63
- vertical-align: top;
64
62
  margin-top: 3px;
63
+ vertical-align: top;
64
+ width: 12px;
65
65
  }
66
66
 
67
67
  .storybook-page .tip-wrapper svg path {
@@ -1,10 +1,13 @@
1
1
  // 🌎 Globals
2
2
  @import './vars';
3
+
3
4
  // @TODO: add styles when we can do a site wide regressions QA
4
5
  // @use 'reset';
5
6
  @import './typography';
7
+
6
8
  // ⚛️ Components
7
9
  @import 'components/Button/button';
10
+
8
11
  // @import 'components/DatePicker/datePicker';
9
12
  @import 'components/Header/header';
10
13
  @import 'components/HeroBanner/heroBanner';
@@ -12,5 +15,6 @@
12
15
  @import 'components/Toggle/toggle';
13
16
  @import 'components/ViewingsList/viewingsList';
14
17
  @import 'components/Grid/grid';
18
+
15
19
  // 📑 Pages
16
20
  @import 'pages/page';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phillips/seldon",
3
- "version": "1.17.0",
3
+ "version": "1.17.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -29,7 +29,8 @@
29
29
  "clean": "rimraf './dist'",
30
30
  "clean:stories": "rimraf './storybook-static'",
31
31
  "format": "prettier . --write",
32
- "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
32
+ "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0 && npm run lint:styles",
33
+ "lint:styles": "stylelint \"src/**/*.scss\" --fix",
33
34
  "prepare": "husky install"
34
35
  },
35
36
  "dependencies": {
@@ -76,6 +77,11 @@
76
77
  "sass": "^1.63.4",
77
78
  "semantic-release": "^21.0.5",
78
79
  "storybook": "^7.0.22",
80
+ "stylelint": "^16.3.1",
81
+ "stylelint-config-standard": "^36.0.0",
82
+ "stylelint-config-standard-scss": "^13.1.0",
83
+ "stylelint-order": "^6.0.4",
84
+ "stylelint-scss": "^6.2.1",
79
85
  "ts-jest": "^29.1.1",
80
86
  "ts-node": "^10.9.1",
81
87
  "typescript": "^5.0.2",