@tui/design-system 1.10.0 → 1.12.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 (32) hide show
  1. package/CHANGELOG.md +68 -1
  2. package/dist/themes/crystalski/index.css +24 -20
  3. package/dist/themes/crystalski/index.css.map +1 -1
  4. package/dist/themes/firstchoice/index.css +23 -20
  5. package/dist/themes/firstchoice/index.css.map +1 -1
  6. package/dist/themes/tui/index.css +36 -32
  7. package/dist/themes/tui/index.css.map +1 -1
  8. package/package.json +5 -4
  9. package/scss/lib/accordion/_mixins.scss +17 -1
  10. package/scss/lib/cards/product/_index.scss +3 -0
  11. package/scss/lib/cards/product/_mixins.scss +351 -0
  12. package/scss/lib/cards/product/_variables.scss +9 -0
  13. package/scss/lib/cards/search/_mixins.scss +15 -2
  14. package/scss/lib/forms/input-checkbox/_mixins.scss +2 -1
  15. package/scss/lib/forms/input-radio/_mixins.scss +2 -1
  16. package/scss/lib/highlight-panel/_mixins.scss +16 -2
  17. package/scss/lib/show-more-less/_mixins.scss +15 -4
  18. package/scss/lib/skeleton/_mixins.scss +33 -12
  19. package/scss/lib/timeline/_index.scss +2 -0
  20. package/scss/lib/timeline/_mixins.scss +87 -0
  21. package/scss/mixins.scss +5 -2
  22. package/scss/reset.scss +4 -0
  23. package/scss/themes/crystalski/_overrides.scss +25 -26
  24. package/scss/themes/crystalski/index.scss +13 -10
  25. package/scss/themes/firstchoice/_overrides.scss +33 -28
  26. package/scss/themes/firstchoice/index.scss +9 -6
  27. package/scss/themes/firstchoice/theme.json +7 -0
  28. package/scss/themes/tui/_overrides.scss +8 -3
  29. package/scss/themes/tui/index.scss +12 -9
  30. package/scss/variables/base-theme.json +30 -8
  31. package/scss/variables.scss +4 -2
  32. package/types/components.ts +309 -185
package/scss/reset.scss CHANGED
@@ -124,10 +124,14 @@ textarea:-webkit-autofill:focus,
124
124
  select:-webkit-autofill,
125
125
  select:-webkit-autofill:hover,
126
126
  select:-webkit-autofill:focus {
127
+ border-radius: inherit;
128
+
127
129
  background-color: transparent;
128
130
 
129
131
  -webkit-box-shadow: none;
130
132
  -webkit-text-fill-color: var(--uilib-color-text-body);
133
+
134
+ transition: background-color 9999s ease-in-out 0s !important;
131
135
  }
132
136
 
133
137
  /* Remove spinner arrows from number input */
@@ -126,6 +126,23 @@ $uilib-crystalski-card-icon-variables: map.merge(
126
126
  )
127
127
  );
128
128
 
129
+ // Card - product
130
+ $uilib-crystalski-card-product-variables: map.merge(
131
+ $uilib-card-product-variables,
132
+ (
133
+ highlights-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/chevron-down.svg'),
134
+ )
135
+ );
136
+
137
+ // Card - promotion
138
+ $uilib-crystalski-card-promotion-variables: map.merge(
139
+ $uilib-card-promotion-variables,
140
+ (
141
+ cta-copy-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/copy.svg'),
142
+ cta-copied-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/checkmark-circled-filled.svg'),
143
+ )
144
+ );
145
+
129
146
  // Card - selectable
130
147
  $uilib-crystalski-card-selectable-variables: map.merge(
131
148
  $uilib-card-selectable-variables,
@@ -317,15 +334,6 @@ $uilib-crystalski-pagination-variables: map.merge(
317
334
  )
318
335
  );
319
336
 
320
- // Promo banner
321
- $uilib-crystalski-card-promotion-variables: map.merge(
322
- $uilib-card-promotion-variables,
323
- (
324
- cta-copy-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/copy.svg'),
325
- cta-copied-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/checkmark-circled-filled.svg'),
326
- )
327
- );
328
-
329
337
  // Ratings and Reviews - Numerical
330
338
  $uilib-crystalski-ratings-numerical-variables: map.merge(
331
339
  $uilib-ratings-numerical-variables,
@@ -361,6 +369,14 @@ $uilib-crystalski-show-more-less-variables: map.merge(
361
369
  )
362
370
  );
363
371
 
372
+ // Social proofing
373
+ $uilib-crystalski-social-proofing-variables: map.merge(
374
+ $uilib-social-proofing-variables,
375
+ (
376
+ close-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/cross.svg'),
377
+ )
378
+ );
379
+
364
380
  // Tabs - in-page
365
381
  $uilib-crystalski-tabs-in-page-variables: map.merge(
366
382
  $uilib-tabs-in-page-variables,
@@ -378,20 +394,3 @@ $uilib-crystalski-tabs-anchor-variables: map.merge(
378
394
  scroll-right-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/chevron-right.svg'),
379
395
  )
380
396
  );
381
-
382
- // Skeleton
383
- $uilib-crystalski-skeleton-variables: map.merge(
384
- $uilib-skeleton-variables,
385
- (
386
- color: map.get($uilib-color-semantic-crystalski, 'other-skeleton-loading'),
387
- shimmer-color: map.get($uilib-crystalski-primitives, 'color-neutral-20'),
388
- )
389
- );
390
-
391
- // Social proofing
392
- $uilib-crystalski-social-proofing-variables: map.merge(
393
- $uilib-social-proofing-variables,
394
- (
395
- close-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/cross.svg'),
396
- )
397
- );
@@ -83,6 +83,12 @@
83
83
  // Card - icon
84
84
  @include util.uilib-build-css-vars('card-icon', $uilib-crystalski-card-icon-variables);
85
85
 
86
+ // Card - product
87
+ @include util.uilib-build-css-vars('card-product', $uilib-crystalski-card-product-variables);
88
+
89
+ // Card - promotion
90
+ @include util.uilib-build-css-vars('card-promotion', $uilib-crystalski-card-promotion-variables);
91
+
86
92
  // Card - search
87
93
  @include util.uilib-build-css-vars('card-search', $uilib-crystalski-card-search-variables);
88
94
 
@@ -119,12 +125,12 @@
119
125
  // Form input select
120
126
  @include util.uilib-build-css-vars('input-select', $uilib-crystalski-input-select-variables);
121
127
 
122
- // Form input stepper
123
- @include util.uilib-build-css-vars('input-stepper', $uilib-crystalski-input-stepper-variables);
124
-
125
128
  // Form input slider
126
129
  @include util.uilib-build-css-vars('input-slider', $uilib-input-slider-variables);
127
130
 
131
+ // Form input stepper
132
+ @include util.uilib-build-css-vars('input-stepper', $uilib-crystalski-input-stepper-variables);
133
+
128
134
  // Form input switch
129
135
  @include util.uilib-build-css-vars('input-switch', $uilib-input-switch-variables);
130
136
 
@@ -167,9 +173,6 @@
167
173
  // Price
168
174
  @include util.uilib-build-css-vars('price', $uilib-price-variables);
169
175
 
170
- // Promo banner
171
- @include util.uilib-build-css-vars('card-promotion', $uilib-crystalski-card-promotion-variables);
172
-
173
176
  // Promo tag
174
177
  @include util.uilib-build-css-vars('promo-tag', $uilib-promo-tag-variables);
175
178
 
@@ -179,12 +182,12 @@
179
182
  // Ratings and Reviews - Percentage
180
183
  @include util.uilib-build-css-vars('ratings-percentage', $uilib-crystalski-ratings-percentage-variables);
181
184
 
182
- // Ratings and Reviews - Range Icons
183
- @include util.uilib-build-css-vars('ratings-range-icons', $uilib-crystalski-ratings-range-icons-variables);
184
-
185
185
  // Ratings and Reviews - Range bar
186
186
  @include util.uilib-build-css-vars('ratings-range-bar', $uilib-ratings-range-bar-variables);
187
187
 
188
+ // Ratings and Reviews - Range Icons
189
+ @include util.uilib-build-css-vars('ratings-range-icons', $uilib-crystalski-ratings-range-icons-variables);
190
+
188
191
  // Scroller
189
192
  @include util.uilib-build-css-vars('scroller', $uilib-scroller-variables);
190
193
 
@@ -192,7 +195,7 @@
192
195
  @include util.uilib-build-css-vars('show-more-less', $uilib-crystalski-show-more-less-variables);
193
196
 
194
197
  // Skeleton
195
- @include util.uilib-build-css-vars('skeleton', $uilib-crystalski-skeleton-variables);
198
+ @include util.uilib-build-css-vars('skeleton', $uilib-skeleton-variables);
196
199
 
197
200
  // Social proofing
198
201
  @include util.uilib-build-css-vars('social-proofing', $uilib-crystalski-social-proofing-variables);
@@ -195,6 +195,23 @@ $uilib-firstchoice-card-icon-variables: map.merge(
195
195
  )
196
196
  );
197
197
 
198
+ // Card - product
199
+ $uilib-firstchoice-card-product-variables: map.merge(
200
+ $uilib-card-product-variables,
201
+ (
202
+ highlights-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-down.svg'),
203
+ )
204
+ );
205
+
206
+ // Card - promotion
207
+ $uilib-firstchoice-card-promotion-variables: map.merge(
208
+ $uilib-card-promotion-variables,
209
+ (
210
+ cta-copy-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/copy.svg'),
211
+ cta-copied-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/checkmark-circled-filled.svg'),
212
+ )
213
+ );
214
+
198
215
  // Card - selectable
199
216
  $uilib-firstchoice-card-selectable-variables: map.merge(
200
217
  $uilib-card-selectable-variables,
@@ -208,8 +225,6 @@ $uilib-firstchoice-card-selectable-variables: map.merge(
208
225
  $uilib-firstchoice-card-search-variables: map.merge(
209
226
  $uilib-card-search-variables,
210
227
  (
211
- radius: var(--uilib-border-radius-200),
212
- radius-spacing: var(--uilib-spacing-200),
213
228
  highlights-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-down.svg'),
214
229
  )
215
230
  );
@@ -402,15 +417,6 @@ $uilib-firstchoice-price-variables: map.merge(
402
417
  )
403
418
  );
404
419
 
405
- // Promo banner
406
- $uilib-firstchoice-card-promotion-variables: map.merge(
407
- $uilib-card-promotion-variables,
408
- (
409
- cta-copy-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/copy.svg'),
410
- cta-copied-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/checkmark-circled-filled.svg'),
411
- )
412
- );
413
-
414
420
  // Ratings and Reviews - Numerical
415
421
  $uilib-firstchoice-ratings-numerical-variables: map.merge(
416
422
  $uilib-ratings-numerical-variables,
@@ -446,6 +452,22 @@ $uilib-firstchoice-show-more-less-variables: map.merge(
446
452
  )
447
453
  );
448
454
 
455
+ // Skeleton
456
+ $uilib-firstchoice-skeleton-variables: map.merge(
457
+ $uilib-skeleton-variables,
458
+ (
459
+ shimmer-color: var(--uilib-color-canvas-default),
460
+ )
461
+ );
462
+
463
+ // Social proofing
464
+ $uilib-firstchoice-social-proofing-variables: map.merge(
465
+ $uilib-social-proofing-variables,
466
+ (
467
+ close-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/cross.svg'),
468
+ )
469
+ );
470
+
449
471
  // Tabs - in-page
450
472
  $uilib-firstchoice-tabs-in-page-variables: map.merge(
451
473
  $uilib-tabs-in-page-variables,
@@ -463,20 +485,3 @@ $uilib-firstchoice-tabs-anchor-variables: map.merge(
463
485
  scroll-right-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-right.svg'),
464
486
  )
465
487
  );
466
-
467
- // Skeleton
468
- $uilib-firstchoice-skeleton-variables: map.merge(
469
- $uilib-skeleton-variables,
470
- (
471
- color: map.get($uilib-color-semantic-firstchoice, 'other-skeleton-loading'),
472
- shimmer-color: map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
473
- )
474
- );
475
-
476
- // Social proofing
477
- $uilib-firstchoice-social-proofing-variables: map.merge(
478
- $uilib-social-proofing-variables,
479
- (
480
- close-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/cross.svg'),
481
- )
482
- );
@@ -83,6 +83,12 @@
83
83
  // Card - icon
84
84
  @include util.uilib-build-css-vars('card-icon', $uilib-firstchoice-card-icon-variables);
85
85
 
86
+ // Card - product
87
+ @include util.uilib-build-css-vars('card-product', $uilib-firstchoice-card-product-variables);
88
+
89
+ // Card - promotion
90
+ @include util.uilib-build-css-vars('card-promotion', $uilib-firstchoice-card-promotion-variables);
91
+
86
92
  // Card - search
87
93
  @include util.uilib-build-css-vars('card-search', $uilib-firstchoice-card-search-variables);
88
94
 
@@ -167,9 +173,6 @@
167
173
  // Price
168
174
  @include util.uilib-build-css-vars('price', $uilib-firstchoice-price-variables);
169
175
 
170
- // Promo banner
171
- @include util.uilib-build-css-vars('card-promotion', $uilib-firstchoice-card-promotion-variables);
172
-
173
176
  // Promo tag
174
177
  @include util.uilib-build-css-vars('promo-tag', $uilib-promo-tag-variables);
175
178
 
@@ -179,12 +182,12 @@
179
182
  // Ratings and Reviews - Percentage
180
183
  @include util.uilib-build-css-vars('ratings-percentage', $uilib-firstchoice-ratings-percentage-variables);
181
184
 
182
- // Ratings and Reviews - Range Icons
183
- @include util.uilib-build-css-vars('ratings-range-icons', $uilib-firstchoice-ratings-range-icons-variables);
184
-
185
185
  // Ratings and Reviews - Range bar
186
186
  @include util.uilib-build-css-vars('ratings-range-bar', $uilib-ratings-range-bar-variables);
187
187
 
188
+ // Ratings and Reviews - Range Icons
189
+ @include util.uilib-build-css-vars('ratings-range-icons', $uilib-firstchoice-ratings-range-icons-variables);
190
+
188
191
  // Scroller
189
192
  @include util.uilib-build-css-vars('scroller', $uilib-scroller-variables);
190
193
 
@@ -359,5 +359,12 @@
359
359
  "primitive": "uilib-border-radius-100"
360
360
  }
361
361
  }
362
+ },
363
+ "skeleton": {
364
+ "tokens": {
365
+ "skeleton-shimmer-color": {
366
+ "primitive": "uilib-color-canvas-default"
367
+ }
368
+ }
362
369
  }
363
370
  }
@@ -14,6 +14,14 @@ $uilib-tui-font-families: map.merge(
14
14
  )
15
15
  );
16
16
 
17
+ // Card - product
18
+ $uilib-tui-card-product-variables: map.merge(
19
+ $uilib-card-product-variables,
20
+ (
21
+ flagship-color: var(--uilib-color-brand-tui-blue),
22
+ )
23
+ );
24
+
17
25
  // Card - search
18
26
  $uilib-tui-card-search-variables: map.merge(
19
27
  $uilib-card-search-variables,
@@ -48,6 +56,3 @@ $uilib-tui-ratings-numerical-variables: map.merge(
48
56
  alt-icon-color: var(--uilib-color-brand-musement),
49
57
  )
50
58
  );
51
-
52
- // Skeleton
53
- $uilib-tui-skeleton-variables: $uilib-skeleton-variables;
@@ -83,6 +83,12 @@
83
83
  // Card - icon
84
84
  @include util.uilib-build-css-vars('card-icon', $uilib-card-icon-variables);
85
85
 
86
+ // Card - product
87
+ @include util.uilib-build-css-vars('card-product', $uilib-tui-card-product-variables);
88
+
89
+ // Card - promotion
90
+ @include util.uilib-build-css-vars('card-promotion', $uilib-card-promotion-variables);
91
+
86
92
  // Card - search
87
93
  @include util.uilib-build-css-vars('card-search', $uilib-tui-card-search-variables);
88
94
 
@@ -134,6 +140,9 @@
134
140
  // Hero
135
141
  @include util.uilib-build-css-vars('hero', $uilib-hero-variables);
136
142
 
143
+ // Highlight panel
144
+ @include util.uilib-build-css-vars('highlight-panel', $uilib-tui-highlight-panel-variables);
145
+
137
146
  // Icon button
138
147
  @include util.uilib-build-css-vars('icon-button', $uilib-icon-button-variables);
139
148
 
@@ -164,9 +173,6 @@
164
173
  // Price
165
174
  @include util.uilib-build-css-vars('price', $uilib-price-variables);
166
175
 
167
- // Promo banner
168
- @include util.uilib-build-css-vars('card-promotion', $uilib-card-promotion-variables);
169
-
170
176
  // Promo tag
171
177
  @include util.uilib-build-css-vars('promo-tag', $uilib-promo-tag-variables);
172
178
 
@@ -176,12 +182,12 @@
176
182
  // Ratings and Reviews - Percentage
177
183
  @include util.uilib-build-css-vars('ratings-percentage', $uilib-ratings-percentage-variables);
178
184
 
179
- // Ratings and Reviews - Range Icons
180
- @include util.uilib-build-css-vars('ratings-range-icons', $uilib-ratings-range-icons-variables);
181
-
182
185
  // Ratings and Reviews - Range bar
183
186
  @include util.uilib-build-css-vars('ratings-range-bar', $uilib-ratings-range-bar-variables);
184
187
 
188
+ // Ratings and Reviews - Range Icons
189
+ @include util.uilib-build-css-vars('ratings-range-icons', $uilib-ratings-range-icons-variables);
190
+
185
191
  // Scroller
186
192
  @include util.uilib-build-css-vars('scroller', $uilib-scroller-variables);
187
193
 
@@ -194,9 +200,6 @@
194
200
  // Social proofing
195
201
  @include util.uilib-build-css-vars('social-proofing', $uilib-social-proofing-variables);
196
202
 
197
- // Highlight panel
198
- @include util.uilib-build-css-vars('highlight-panel', $uilib-tui-highlight-panel-variables);
199
-
200
203
  // Tabs - in-page
201
204
  @include util.uilib-build-css-vars('tabs-in-page', $uilib-tabs-in-page-variables);
202
205
 
@@ -1093,14 +1093,8 @@
1093
1093
  },
1094
1094
  "card-search": {
1095
1095
  "tokens": {
1096
- "card-search-radius": {
1097
- "primitive": "uilib-border-radius-400",
1098
- "displayType": "radius",
1099
- "title": "Card radius",
1100
- "description": "Card radius"
1101
- },
1102
1096
  "card-search-radius-spacing": {
1103
- "primitive": "uilib-border-spacing-400",
1097
+ "primitive": "uilib-card-radius",
1104
1098
  "displayType": "size",
1105
1099
  "title": "Spacing required for card radius",
1106
1100
  "description": "Spacing required for card radius"
@@ -1125,6 +1119,34 @@
1125
1119
  }
1126
1120
  }
1127
1121
  },
1122
+ "card-product": {
1123
+ "tokens": {
1124
+ "card-product-radius-spacing": {
1125
+ "primitive": "uilib-card-radius",
1126
+ "displayType": "size",
1127
+ "title": "Spacing required for card radius",
1128
+ "description": "Spacing required for card radius"
1129
+ },
1130
+ "card-product-flagship-color": {
1131
+ "primitive": "uilib-color-core-brand-strong",
1132
+ "displayType": "color",
1133
+ "title": "Background for flagship wrapper",
1134
+ "description": "Background for flagship wrapper"
1135
+ },
1136
+ "card-product-flagship-text-color": {
1137
+ "primitive": "uilib-color-text-inverse",
1138
+ "displayType": "color",
1139
+ "title": "Text colour for flagship wrapper",
1140
+ "description": "Text colour for flagship wrapper"
1141
+ },
1142
+ "card-product-highlights-icon": {
1143
+ "displayType": "icon",
1144
+ "title": "Icon for show/hide within highlight section",
1145
+ "description": "Icon for show/hide within highlight section",
1146
+ "longValue": true
1147
+ }
1148
+ }
1149
+ },
1128
1150
  "datepicker": {
1129
1151
  "displayType": "color",
1130
1152
  "tokens": {
@@ -2610,7 +2632,7 @@
2610
2632
  "description": "Skeleton loading colour"
2611
2633
  },
2612
2634
  "skeleton-shimmer-color": {
2613
- "primitive": "color-neutral-20",
2635
+ "primitive": "uilib-color-canvas-contrast",
2614
2636
  "title": "Skeleton shimmer colour",
2615
2637
  "description": "Skeleton shimmer colour"
2616
2638
  }
@@ -22,11 +22,14 @@
22
22
  @forward 'lib/breadcrumb/variables';
23
23
  @forward 'lib/alert/variables';
24
24
  @forward 'lib/button/variables';
25
- @forward 'lib/cards/card/variables';
26
25
  @forward 'lib/cards/article/variables';
26
+ @forward 'lib/cards/card/variables';
27
27
  @forward 'lib/cards/carousel/variables';
28
28
  @forward 'lib/cards/icon/variables';
29
+ @forward 'lib/cards/promotion/variables';
29
30
  @forward 'lib/cards/search/variables';
31
+ @forward 'lib/cards/product/variables';
32
+ @forward 'lib/cards/promotion/variables';
30
33
  @forward 'lib/cards/selectable/variables';
31
34
  @forward 'lib/divider/variables';
32
35
  @forward 'lib/flight-details/variables';
@@ -57,7 +60,6 @@
57
60
  @forward 'lib/modal/variables';
58
61
  @forward 'lib/pagination/variables';
59
62
  @forward 'lib/price/variables';
60
- @forward 'lib/cards/promotion/variables';
61
63
  @forward 'lib/promo-tag/variables';
62
64
  @forward 'lib/ratings-reviews/numerical/variables';
63
65
  @forward 'lib/ratings-reviews/percentage/variables';