@tui/design-system 1.1.1 → 1.3.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 (40) hide show
  1. package/CHANGELOG.md +94 -3
  2. package/dist/themes/crystalski/index.css +15 -4
  3. package/dist/themes/crystalski/index.css.map +1 -1
  4. package/dist/themes/firstchoice/index.css +15 -4
  5. package/dist/themes/firstchoice/index.css.map +1 -1
  6. package/dist/themes/tui/index.css +15 -4
  7. package/dist/themes/tui/index.css.map +1 -1
  8. package/package.json +5 -5
  9. package/scss/lib/cards/selectable/_mixins.scss +2 -2
  10. package/scss/lib/forms/form-row/_mixins.scss +1 -0
  11. package/scss/lib/forms/input-checkbox/_mixins.scss +2 -0
  12. package/scss/lib/forms/input-chip/_mixins.scss +14 -10
  13. package/scss/lib/forms/input-count/_mixins.scss +2 -0
  14. package/scss/lib/forms/input-radio/_mixins.scss +2 -0
  15. package/scss/lib/forms/input-radio-scroll/_index.scss +3 -0
  16. package/scss/lib/forms/input-radio-scroll/_mixins.scss +185 -0
  17. package/scss/lib/forms/input-radio-scroll/_variables.scss +7 -0
  18. package/scss/lib/grid/_mixins.scss +1 -1
  19. package/scss/lib/ratings-reviews/range-bar/_mixins.scss +81 -22
  20. package/scss/lib/ratings-reviews/range-bar/_variables.scss +6 -6
  21. package/scss/lib/ratings-reviews/range-icons/_mixins.scss +62 -13
  22. package/scss/lib/ratings-reviews/range-icons/_variables.scss +7 -0
  23. package/scss/lib/ratings-reviews/range-icons-group/_mixins.scss +7 -1
  24. package/scss/lib/scroller/_mixins.scss +7 -6
  25. package/scss/lib/tabs/_mixins.scss +2 -2
  26. package/scss/lib/tabs/anchor/_mixins.scss +1 -1
  27. package/scss/lib/travel-aware-banner/_index.scss +3 -0
  28. package/scss/lib/travel-aware-banner/_mixins.scss +58 -0
  29. package/scss/lib/travel-aware-banner/_variables.scss +4 -0
  30. package/scss/lib/utility/_mixins.scss +1 -0
  31. package/scss/mixins.scss +2 -0
  32. package/scss/themes/crystalski/_overrides.scss +9 -0
  33. package/scss/themes/crystalski/index.scss +6 -0
  34. package/scss/themes/firstchoice/_overrides.scss +9 -0
  35. package/scss/themes/firstchoice/index.scss +6 -0
  36. package/scss/themes/tui/index.scss +6 -0
  37. package/scss/variables/_border-radius.scss +2 -0
  38. package/scss/variables/base-theme.json +88 -27
  39. package/scss/variables.scss +2 -0
  40. package/types/components.ts +461 -435
@@ -0,0 +1,185 @@
1
+ // radio scroll / _mixins
2
+ @use '../../utility/mixins' as *;
3
+ @use '../../cards/selectable/mixins' as *;
4
+ @use '../form-row/mixins' as *;
5
+ @use '../input-chip/mixins' as *;
6
+ @use '../../icon/mixins' as *;
7
+ @use '../../icon-button/mixins' as *;
8
+ @use '../../link/mixins' as *;
9
+
10
+ $uilib-input-radio-scroll-included: false !default;
11
+
12
+ // Builds radio scroll
13
+ @mixin uilib-input-radio-scroll() {
14
+ @if not $uilib-input-radio-scroll-included {
15
+ $uilib-input-radio-scroll-included: true !global;
16
+
17
+ @include uilib-form-row;
18
+ @include uilib-input-chip;
19
+ @include uilib-card-selectable;
20
+ @include uilib-icon;
21
+ @include uilib-icon-button;
22
+ @include uilib-link;
23
+ @include uilib-input-radio-scroll-master;
24
+ }
25
+ }
26
+
27
+ @mixin uilib-input-radio-scroll-master() {
28
+ @property --uilib-input-radio-scroll-start-fade {
29
+ syntax: '<length>';
30
+ inherits: false;
31
+ initial-value: 0;
32
+ }
33
+
34
+ @property --uilib-input-radio-scroll-end-fade {
35
+ syntax: '<length>';
36
+ inherits: false;
37
+ initial-value: 0;
38
+ }
39
+
40
+ @keyframes uilib-input-radio-scroll-scrollfade {
41
+ 0% {
42
+ --uilib-input-radio-scroll-start-fade: 0;
43
+ }
44
+
45
+ 10%,
46
+ 100% {
47
+ --uilib-input-radio-scroll-start-fade: var(--uilib-scroller-fade-size);
48
+ }
49
+
50
+ /* stylelint-disable-next-line keyframe-block-no-duplicate-selectors */
51
+ 0%,
52
+ 90% {
53
+ --uilib-input-radio-scroll-end-fade: var(--uilib-scroller-fade-size);
54
+ }
55
+
56
+ /* stylelint-disable-next-line keyframe-block-no-duplicate-selectors */
57
+ 100% {
58
+ --uilib-input-radio-scroll-end-fade: 0;
59
+ }
60
+ }
61
+
62
+ .uilib-input-radio-scroll {
63
+ $uilib-input-radio-scroll-mask-horizontal: linear-gradient(
64
+ to right,
65
+ #0000,
66
+ #fff var(--uilib-input-radio-scroll-start-fade) calc(100% - var(--uilib-input-radio-scroll-end-fade)),
67
+ #0000
68
+ );
69
+
70
+ .uilib-form-row__label {
71
+ font: var(--uilib-typography-heading-xlarge);
72
+ }
73
+
74
+ .uilib-form-row__hint {
75
+ margin-top: var(--uilib-spacing-200);
76
+ }
77
+
78
+ .uilib-form-row__input {
79
+ display: grid;
80
+ grid-template-columns: 1fr fit-content;
81
+ gap: var(--uilib-spacing-400);
82
+
83
+ margin: var(--uilib-spacing-400) 0;
84
+
85
+ &:has(.uilib-input-chip-list:focus-visible),
86
+ &:has(.uilib-card-selectable-list:focus-visible) {
87
+ @include uilib-focus();
88
+
89
+ /* stylelint-disable-next-line order/order */
90
+ border-radius: var(--uilib-border-radius-200);
91
+ }
92
+ }
93
+
94
+ .uilib-input-chip-list,
95
+ .uilib-card-selectable-list {
96
+ grid-column: 1 / span 2;
97
+
98
+ display: flex;
99
+ flex-flow: row nowrap;
100
+ gap: var(--uilib-spacing-200);
101
+ align-items: stretch;
102
+
103
+ min-width: 0;
104
+ margin: calc(var(--uilib-spacing-200) * -1);
105
+ padding: var(--uilib-spacing-200) 0;
106
+
107
+ overflow-x: auto;
108
+
109
+ animation: uilib-input-radio-scroll-scrollfade;
110
+ scroll-behavior: smooth;
111
+
112
+ -webkit-mask: #{$uilib-input-radio-scroll-mask-horizontal};
113
+ mask: #{$uilib-input-radio-scroll-mask-horizontal};
114
+ animation-timeline: --uilib-input-radio-scroll-scrollfade;
115
+ scroll-timeline: --uilib-input-radio-scroll-scrollfade x;
116
+
117
+ &::before,
118
+ &::after {
119
+ content: '';
120
+
121
+ display: block;
122
+ }
123
+
124
+ &:focus-visible::before {
125
+ position: static;
126
+
127
+ box-shadow: none;
128
+ }
129
+ }
130
+
131
+ .uilib-input-chip,
132
+ .uilib-card-selectable-list__item {
133
+ flex: 0 0 var(--card-width, var(--card-default-width, 18rem));
134
+ }
135
+
136
+ .uilib-input-chip__label {
137
+ width: 100%;
138
+ }
139
+
140
+ &__link {
141
+ grid-row: 2;
142
+ grid-column: 1;
143
+
144
+ place-self: flex-start flex-start;
145
+ }
146
+
147
+ &__button-container {
148
+ grid-row: 2;
149
+ grid-column: 2;
150
+
151
+ display: flex;
152
+ flex-flow: row nowrap;
153
+ gap: var(--uilib-spacing-400);
154
+ justify-self: end;
155
+ align-items: flex-start;
156
+ }
157
+
158
+ &__button-previous .uilib-icon {
159
+ mask-image: var(--uilib-input-radio-scroll-previous-icon);
160
+ }
161
+
162
+ &__button-next .uilib-icon {
163
+ mask-image: var(--uilib-input-radio-scroll-next-icon);
164
+ }
165
+
166
+ &:not(:has(&__button-container)) {
167
+ .uilib-input-chip-list,
168
+ .uilib-card-selectable-list {
169
+ -webkit-mask: none;
170
+ mask: none;
171
+ }
172
+ }
173
+
174
+ &__accessible-instructions {
175
+ @include uilib-visually-hidden;
176
+ }
177
+
178
+ &[is-hydrated] {
179
+ .uilib-input-chip-list,
180
+ .uilib-card-selectable-list {
181
+ scrollbar-width: none;
182
+ }
183
+ }
184
+ }
185
+ }
@@ -0,0 +1,7 @@
1
+ @use '../../../variables/env-variables' as *;
2
+
3
+ // Input radio scroll specific variables to allow theming
4
+ $uilib-input-radio-scroll-variables: (
5
+ previous-icon: url('#{$uilib-assets-base-url}v3/icons/tui/standard/chevron-left.svg'),
6
+ next-icon: url('#{$uilib-assets-base-url}v3/icons/tui/standard/chevron-right.svg'),
7
+ ) !default;
@@ -33,7 +33,7 @@
33
33
  @mixin uilib-container-breakpoint($size, $container-name: null, $logic: null) {
34
34
  /* stylelint-disable container-name-pattern */
35
35
  $breakpoint: map.get($uilib-breakpoints, $size);
36
- $has-logic: $logic != null and $logic != false and #{$logic} != '';
36
+ $has-logic: $logic != null and $logic != false and $logic != '';
37
37
 
38
38
  // Expect `$logic` like "(max-width: 47.5rem)" or "(max-width: 47.5rem) and (prefers-reduced-motion: no-preference)"
39
39
  $logic-suffix: '';
@@ -1,6 +1,5 @@
1
1
  @use '../../utility/mixins' as *;
2
2
  @use './variables' as *;
3
- @use '../../icon/mixins' as *;
4
3
 
5
4
  $uilib-ratings-range-bar-included: false !default;
6
5
 
@@ -9,7 +8,6 @@ $uilib-ratings-range-bar-included: false !default;
9
8
  @if not $uilib-ratings-range-bar-included {
10
9
  $uilib-ratings-range-bar-included: true !global;
11
10
 
12
- @include uilib-icon;
13
11
  @include uilib-ratings-range-bar-master;
14
12
  }
15
13
  }
@@ -20,7 +18,10 @@ $uilib-ratings-range-bar-included: false !default;
20
18
  --percentage: 0;
21
19
 
22
20
  display: inline-flex;
23
- flex-direction: column;
21
+ flex-flow: row wrap;
22
+ gap: var(--uilib-spacing-100) var(--uilib-spacing-600);
23
+
24
+ max-width: 100%;
24
25
 
25
26
  /* Visually hidden helper */
26
27
  &--hidden {
@@ -28,13 +29,8 @@ $uilib-ratings-range-bar-included: false !default;
28
29
  }
29
30
 
30
31
  // /* Variant-specific configurations */
31
- &--tripadvisor {
32
- flex-direction: row;
33
- gap: var(--uilib-spacing-600);
34
- }
35
-
36
32
  &--tripadvisor &__bar {
37
- width: calc(var(--uilib-ratings-range-bar-tripadvisor-bar-width));
33
+ border-color: var(--uilib-ratings-range-bar-tripadvisor-bar-color);
38
34
 
39
35
  background: var(--uilib-ratings-range-bar-tripadvisor-bar-bg-color);
40
36
 
@@ -43,17 +39,68 @@ $uilib-ratings-range-bar-included: false !default;
43
39
  }
44
40
  }
45
41
 
46
- &--tripadvisor &__content {
47
- gap: var(--uilib-spacing-200);
48
- }
49
-
50
42
  &-group {
51
- display: flex;
52
- flex-direction: column;
53
- gap: var(--uilib-spacing-300);
43
+ display: grid;
44
+ grid-template-columns: fit-content(45%) max-content minmax(0, var(--uilib-ratings-range-bar-bar-width));
45
+ gap: var(--uilib-spacing-200) var(--uilib-spacing-300);
46
+
47
+ max-width: 100%;
48
+ margin: var(--uilib-spacing-400) 0;
49
+
50
+ container-type: inline-size;
51
+ container-name: uilib-rating-range-bar-group;
52
+
53
+ @media (max-width: 16rem) {
54
+ grid-template-columns: 1fr;
55
+ }
56
+
57
+ &:has(.uilib-ratings-range-bar__bar + .uilib-ratings-range-bar__score) {
58
+ grid-template-columns: fit-content(45%) minmax(0, var(--uilib-ratings-range-bar-bar-width)) max-content;
59
+ }
60
+
61
+ .uilib-ratings-range-bar,
62
+ .uilib-ratings-range-bar__content {
63
+ display: contents;
64
+ }
65
+
66
+ .uilib-ratings-range-bar__bar {
67
+ width: auto;
68
+ max-width: unset;
69
+ }
54
70
 
55
- &:has(.uilib-ratings-range-bar--tripadvisor) {
56
- gap: var(--uilib-spacing-100);
71
+ .uilib-ratings-range-bar__label {
72
+ padding-right: var(--uilib-spacing-300);
73
+ }
74
+
75
+ /* stylelint-disable-next-line order/order */
76
+ @container uilib-rating-range-bar-group (max-width: 16rem) {
77
+ .uilib-ratings-range-bar {
78
+ grid-column: 1 / -1;
79
+
80
+ display: block;
81
+ }
82
+
83
+ .uilib-ratings-range-bar__label {
84
+ padding-right: 0;
85
+ }
86
+
87
+ .uilib-ratings-range-bar__content {
88
+ display: flex;
89
+ justify-content: flex-start;
90
+ }
91
+
92
+ .uilib-ratings-range-bar__bar {
93
+ order: 0;
94
+
95
+ flex-grow: 1;
96
+
97
+ width: auto;
98
+ max-width: calc(100% - (var(--uilib-spacing-300) + 4ex));
99
+ }
100
+
101
+ .uilib-ratings-range-bar__score {
102
+ order: 1;
103
+ }
57
104
  }
58
105
  }
59
106
 
@@ -62,24 +109,36 @@ $uilib-ratings-range-bar-included: false !default;
62
109
  gap: var(--uilib-spacing-200);
63
110
  align-items: center;
64
111
 
65
- font-size: 0.875rem;
112
+ color: var(--uilib-color-text-strong);
113
+ font: var(--uilib-typography-label-small-strong);
114
+ }
115
+
116
+ &__score {
117
+ color: var(--uilib-color-text-strong);
118
+ font: var(--uilib-typography-label-small-strong);
119
+ text-align: right;
66
120
  }
67
121
 
68
122
  &__icon {
69
- color: var(--uilib-ratings-range-bar-icon-color);
123
+ display: none;
70
124
  }
71
125
 
72
126
  &__content {
73
127
  display: flex;
74
128
  gap: var(--uilib-spacing-300);
129
+ justify-content: flex-end;
75
130
  align-items: center;
131
+
132
+ min-width: 0;
76
133
  }
77
134
 
78
135
  &__bar {
79
136
  width: var(--uilib-ratings-range-bar-bar-width);
80
- height: 14px;
137
+ height: calc(1rem - var(--uilib-stroke-size-050));
138
+ margin-top: var(--uilib-spacing-050);
81
139
 
82
- border-radius: var(--uilib-border-radius-100);
140
+ border: var(--uilib-stroke-size-025) var(--uilib-stroke-style-solid) var(--uilib-ratings-range-bar-bar-color);
141
+ border-radius: var(--uilib-border-radius-pill);
83
142
 
84
143
  background: var(--uilib-ratings-range-bar-bar-bg-color);
85
144
 
@@ -4,13 +4,13 @@
4
4
 
5
5
  // Range icons rating specific variables to allow theming
6
6
  $uilib-ratings-range-bar-variables: (
7
- bar-width: 11.5rem,
8
- // 184px / 16
7
+ bar-width: 11.25rem,
8
+ // 180 / 16
9
9
  bar-color: var(--uilib-color-core-brand),
10
- bar-bg-color: var(--uilib-color-core-surface),
11
- tripadvisor-bar-width: 6.5625rem,
12
- // 105px / 16
10
+ bar-bg-color: var(--uilib-color-core-neutral),
13
11
  tripadvisor-bar-color: var(--uilib-color-brand-tripadvisor),
14
- tripadvisor-bar-bg-color: var(--uilib-color-other-disabled-soft),
12
+ tripadvisor-bar-bg-color: var(--uilib-color-core-neutral),
13
+ // Below are deprecated
14
+ tripadvisor-bar-width: 6.5625rem,
15
15
  icon-color: var(--uilib-color-status-info-icon),
16
16
  ) !default;
@@ -21,6 +21,7 @@ $uilib-ratings-range-icons-included: false !default;
21
21
  @if $score-key <= 5 {
22
22
  .uilib-ratings-range-icons--star,
23
23
  .uilib-ratings-range-icons--sun,
24
+ .uilib-ratings-range-icons--customer,
24
25
  .uilib-ratings-range-icons--tripadvisor {
25
26
  .uilib-ratings-range-icons__score.uilib-ratings-range-icons__score--#{$score-value} {
26
27
  &::after {
@@ -61,6 +62,8 @@ $uilib-ratings-range-icons-included: false !default;
61
62
 
62
63
  display: inline-flex;
63
64
  flex-wrap: wrap;
65
+ gap: 0 var(--uilib-spacing-200);
66
+ align-content: center;
64
67
  align-items: center;
65
68
 
66
69
  /* Visually hidden helper */
@@ -87,7 +90,17 @@ $uilib-ratings-range-icons-included: false !default;
87
90
  --rating-max: 6;
88
91
  }
89
92
 
93
+ &--customer {
94
+ --tile-color: var(--uilib-ratings-range-icons-customer-color);
95
+ --tile-inverse-color: var(--uilib-ratings-range-icons-customer-inverse-color);
96
+ --tile-bg-icon: var(--uilib-ratings-range-icons-customer-rating-icon);
97
+ --tile-bg-checked-icon: var(--uilib-ratings-range-icons-customer-rating-checked-icon);
98
+ --rating-max: 5;
99
+ }
100
+
90
101
  &--tripadvisor {
102
+ --tile-color: var(--uilib-ratings-range-icons-tripadvisor-color);
103
+ --tile-inverse-color: var(--uilib-ratings-range-icons-tripadvisor-inverse-color);
91
104
  --tile-bg-icon: var(--uilib-ratings-range-icons-tripadvisor-rating-icon);
92
105
  --tile-bg-checked-icon: var(--uilib-ratings-range-icons-tripadvisor-rating-checked-icon);
93
106
  --rating-max: 5;
@@ -116,10 +129,6 @@ $uilib-ratings-range-icons-included: false !default;
116
129
  }
117
130
  }
118
131
 
119
- .uilib-ratings-range-icons__caption {
120
- margin-left: var(--uilib-spacing-050);
121
- }
122
-
123
132
  /* Plus label */
124
133
  .uilib-ratings-range-icons__plus {
125
134
  position: relative;
@@ -128,7 +137,7 @@ $uilib-ratings-range-icons-included: false !default;
128
137
  align-items: center;
129
138
 
130
139
  inline-size: auto;
131
- margin: 0 var(--uilib-spacing-050) 0 var(--uilib-spacing-100);
140
+ margin-left: calc((var(--uilib-spacing-100) + var(--uilib-spacing-050)) * -1);
132
141
 
133
142
  color: var(--uilib-ratings-range-icons-tui-t-plus-color);
134
143
  font-weight: var(--uilib-font-weight-bold);
@@ -136,24 +145,65 @@ $uilib-ratings-range-icons-included: false !default;
136
145
 
137
146
  background: none;
138
147
  }
148
+ }
149
+
150
+ &--inverse {
151
+ .uilib-ratings-range-icons__value,
152
+ .uilib-ratings-range-icons__plus,
153
+ .uilib-ratings-range-icons__label {
154
+ color: var(--uilib-color-text-inverse);
155
+ }
156
+
157
+ &.uilib-ratings-range-icons--tripadvisor .uilib-ratings-range-icons__leading-image {
158
+ background-image: var(--uilib-ratings-range-icons-tripadvisor-logo-inverse);
159
+ }
160
+ }
139
161
 
140
- &.uilib-ratings-range-icons--inverse {
141
- .uilib-ratings-range-icons__plus,
142
- .uilib-ratings-range-icons__label {
143
- color: var(--uilib-color-text-inverse);
162
+ &--customer,
163
+ &--tripadvisor {
164
+ .uilib-ratings-range-icons__score {
165
+ &::before,
166
+ &::after {
167
+ background-color: var(--tile-color);
168
+ background-image: none;
169
+ -webkit-mask: var(--tile-bg-icon) repeat-x left center;
170
+ mask: var(--tile-bg-icon) repeat-x left center;
171
+ -webkit-mask-size: var(--icon-size) 100%;
172
+ mask-size: var(--icon-size) 100%;
173
+ }
174
+
175
+ &::after {
176
+ background-image: none;
177
+ mask-image: var(--tile-bg-checked-icon);
144
178
  }
145
179
  }
146
180
  }
147
181
 
182
+ &--customer#{&}--inverse,
183
+ &--tripadvisor#{&}--inverse {
184
+ .uilib-ratings-range-icons__score {
185
+ &::before,
186
+ &::after {
187
+ background-color: var(--tile-inverse-color);
188
+ }
189
+ }
190
+ }
191
+
192
+ &__value {
193
+ color: var(--uilib-color-text-strong);
194
+ font: var(--uilib-typography-label-small-strong);
195
+ }
196
+
148
197
  &__details {
149
198
  display: flex;
150
199
  flex-wrap: wrap;
151
200
  gap: var(--uilib-spacing-100);
152
201
  align-items: baseline;
153
- }
154
202
 
155
- &__label {
156
- margin-left: var(--uilib-spacing-050);
203
+ /* Remove the space from the flex gap if all text is details is hidden */
204
+ &:not(:has(> :not(.uilib-ratings-range-icons--hidden))) {
205
+ margin-left: calc(var(--uilib-spacing-200) * -1);
206
+ }
157
207
  }
158
208
 
159
209
  /* Score element styling */
@@ -202,7 +252,6 @@ $uilib-ratings-range-icons-included: false !default;
202
252
 
203
253
  width: var(--uilib-icon-size-medium);
204
254
  height: calc(var(--uilib-font-size-root) * var(--uilib-line-height-body));
205
- margin-right: var(--uilib-spacing-100);
206
255
 
207
256
  background-image: var(--uilib-ratings-range-icons-tripadvisor-logo);
208
257
  background-repeat: no-repeat;
@@ -4,13 +4,20 @@
4
4
 
5
5
  // Range icons rating specific variables to allow theming
6
6
  $uilib-ratings-range-icons-variables: (
7
+ tripadvisor-color: var(--uilib-color-brand-tripadvisor),
8
+ tripadvisor-inverse-color: var(--uilib-color-brand-tripadvisor-inverse),
7
9
  tripadvisor-logo: url('#{$uilib-assets-base-url}v3/logos/review/tripadvisor-logo-small.svg'),
10
+ tripadvisor-logo-inverse: url('#{$uilib-assets-base-url}v3/logos/review/tripadvisor-logo-small-white.svg'),
8
11
  tripadvisor-rating-icon: url('#{$uilib-assets-base-url}v3/logos/review/tripadvisor-unchecked.svg'),
9
12
  tripadvisor-rating-checked-icon: url('#{$uilib-assets-base-url}v3/logos/review/tripadvisor-checked.svg'),
10
13
  sun-rating-icon: url('#{$uilib-assets-base-url}v3/logos/review/tui-sun-unchecked.svg'),
11
14
  sun-rating-checked-icon: url('#{$uilib-assets-base-url}v3/logos/review/tui-sun-checked.svg'),
12
15
  star-rating-icon: url('#{$uilib-assets-base-url}v3/logos/review/tui-star-unchecked.svg'),
13
16
  star-rating-checked-icon: url('#{$uilib-assets-base-url}v3/logos/review/tui-star-checked.svg'),
17
+ customer-color: var(--uilib-color-core-brand),
18
+ customer-inverse-color: var(--uilib-color-core-brand),
19
+ customer-rating-icon: url('#{$uilib-assets-base-url}v3/logos/review/customer-unchecked.svg'),
20
+ customer-rating-checked-icon: url('#{$uilib-assets-base-url}v3/logos/review/customer-checked.svg'),
14
21
  tui-t-rating-icon: url('#{$uilib-assets-base-url}v3/logos/review/tui-t.svg'),
15
22
  tui-t-plus-color: map.get($uilib-primitives, 'color-blue-100'),
16
23
  ) !default;
@@ -17,11 +17,15 @@ $uilib-ratings-range-icons-group-included: false !default;
17
17
  .uilib-ratings-range-icons-group {
18
18
  display: flex;
19
19
  flex-direction: column;
20
- gap: var(--uilib-spacing-100);
20
+ gap: var(--uilib-spacing-200);
21
21
 
22
22
  max-width: max-content;
23
+ margin: var(--uilib-spacing-400) 0;
23
24
 
24
25
  &__category {
26
+ color: var(--uilib-color-text-strong);
27
+ font: var(--uilib-typography-label-small-strong);
28
+
25
29
  @include uilib-text-truncate;
26
30
  }
27
31
 
@@ -33,6 +37,8 @@ $uilib-ratings-range-icons-group-included: false !default;
33
37
  }
34
38
 
35
39
  .uilib-ratings-range-icons {
40
+ flex-wrap: nowrap;
41
+
36
42
  margin: 0;
37
43
  }
38
44
  }
@@ -49,10 +49,10 @@ $uilib-scroller-included: false !default;
49
49
  }
50
50
 
51
51
  .uilib-scroller {
52
- $mask-vertical:
52
+ $uilib-scroller-mask-vertical:
53
53
  linear-gradient(to bottom, #0000, #ffff var(--uilib-scroller-start-fade) calc(100% - var(--uilib-scroller-end-fade)), #0000),
54
54
  linear-gradient(to right, transparent 0% calc(100% - var(--uilib-scroller-bar-size)), #fff calc(100% - var(--uilib-scroller-bar-size)), #fff);
55
- $mask-horizontal:
55
+ $uilib-scroller-mask-horizontal:
56
56
  linear-gradient(to right, #0000, #fff var(--uilib-scroller-start-fade) calc(100% - var(--uilib-scroller-end-fade)), #0000),
57
57
  linear-gradient(to bottom, transparent 0% calc(100% - var(--uilib-scroller-bar-size)), #fff calc(100% - var(--uilib-scroller-bar-size)), #fff);
58
58
 
@@ -83,9 +83,10 @@ $uilib-scroller-included: false !default;
83
83
  /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties */
84
84
  overflow-y: auto;
85
85
 
86
+ -webkit-mask: #{$uilib-scroller-mask-vertical};
87
+ mask: #{$uilib-scroller-mask-vertical};
88
+
86
89
  animation: uilib-scrollfade;
87
- -webkit-mask: #{$mask-vertical};
88
- mask: #{$mask-vertical};
89
90
  animation-timeline: --uilib-scrollfade;
90
91
  scroll-timeline: --uilib-scrollfade y;
91
92
 
@@ -131,8 +132,8 @@ $uilib-scroller-included: false !default;
131
132
  overflow-x: auto;
132
133
  /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties */
133
134
  overflow-y: hidden;
134
- -webkit-mask: #{$mask-horizontal};
135
- mask: #{$mask-horizontal};
135
+ -webkit-mask: #{$uilib-scroller-mask-horizontal};
136
+ mask: #{$uilib-scroller-mask-horizontal};
136
137
 
137
138
  scroll-timeline: --uilib-scrollfade x;
138
139
  }
@@ -48,7 +48,7 @@
48
48
 
49
49
  &__scroll-wrapper,
50
50
  & > &__tablist {
51
- border-bottom: var(--uilib-stroke-size-025) solid var(--#{$prefix}-border-color);
51
+ border-bottom: var(--uilib-stroke-size-025) var(--uilib-stroke-style-solid) var(--#{$prefix}-border-color);
52
52
  }
53
53
 
54
54
  &__scroll-button.uilib-icon-button {
@@ -116,7 +116,7 @@
116
116
 
117
117
  width: 100%;
118
118
 
119
- border-bottom: 0.1875rem solid var(--#{$prefix}-active-color);
119
+ border-bottom: var(--uilib-stroke-size-075) var(--uilib-stroke-style-solid) var(--#{$prefix}-active-color);
120
120
  }
121
121
 
122
122
  @include uilib-tab-base($prefix);
@@ -19,7 +19,7 @@ $uilib-tabs-anchor-included: false !default;
19
19
  @mixin uilib-tabs-anchor-nojs($prefix: 'uilib-tabs-anchor') {
20
20
  display: flex;
21
21
 
22
- border-bottom: var(--uilib-stroke-size-025) solid var(--#{$prefix}-border-color);
22
+ border-bottom: var(--uilib-stroke-size-025) var(--uilib-stroke-style-solid) var(--#{$prefix}-border-color);
23
23
 
24
24
  [slot='link'] {
25
25
  display: inline-flex;
@@ -0,0 +1,3 @@
1
+ // travel aware banner / mixins
2
+ @use 'mixins' as *;
3
+ @include uilib-travel-aware-banner;
@@ -0,0 +1,58 @@
1
+ // Travel Aware Banner / _mixins
2
+ @use '../grid/mixins' as *;
3
+ @use '../utility/mixins' as *;
4
+
5
+ $uilib-travel-aware-banner-included: false !default;
6
+
7
+ // Builds travel aware banner
8
+ @mixin uilib-travel-aware-banner() {
9
+ @if not $uilib-travel-aware-banner-included {
10
+ $uilib-travel-aware-banner-included: true !global;
11
+
12
+ @include uilib-travel-aware-banner-master;
13
+ }
14
+ }
15
+
16
+ @mixin uilib-travel-aware-banner-master() {
17
+ .uilib-travel-aware-banner {
18
+ display: inline-flex;
19
+ gap: var(--uilib-spacing-400);
20
+ align-items: center;
21
+
22
+ width: 100%;
23
+ max-width: 100%;
24
+ padding: var(--uilib-spacing-400);
25
+
26
+ border-radius: var(--uilib-travel-aware-banner-radius);
27
+
28
+ background-color: var(--uilib-color-core-surface);
29
+
30
+ @include uilib-breakpoint(xs) {
31
+ width: auto;
32
+ }
33
+
34
+ &__heading {
35
+ color: var(--uilib-color-text-strong);
36
+ font: var(--uilib-typography-component-heading-medium);
37
+ }
38
+
39
+ &__content {
40
+ display: flex;
41
+
42
+ // calculate from 230px in figma
43
+ flex: 1 1 14.375rem;
44
+ flex-direction: column;
45
+ gap: var(--uilib-spacing-100);
46
+ }
47
+
48
+ &__logo {
49
+ flex-grow: 0;
50
+ flex-shrink: 0;
51
+
52
+ height: auto;
53
+
54
+ // set logo W=65.776px from figma design
55
+ max-width: 4.111rem;
56
+ }
57
+ }
58
+ }