@tui/design-system 0.1.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 (227) hide show
  1. package/CHANGELOG.md +317 -0
  2. package/README.md +99 -0
  3. package/dist/themes/crystalski/fonts.css +49 -0
  4. package/dist/themes/crystalski/fonts.css.map +1 -0
  5. package/dist/themes/crystalski/index.css +416 -0
  6. package/dist/themes/crystalski/index.css.map +1 -0
  7. package/dist/themes/firstchoice/fonts.css +50 -0
  8. package/dist/themes/firstchoice/fonts.css.map +1 -0
  9. package/dist/themes/firstchoice/index.css +422 -0
  10. package/dist/themes/firstchoice/index.css.map +1 -0
  11. package/dist/themes/tui/fonts.css +117 -0
  12. package/dist/themes/tui/fonts.css.map +1 -0
  13. package/dist/themes/tui/index.css +437 -0
  14. package/dist/themes/tui/index.css.map +1 -0
  15. package/package.json +175 -0
  16. package/scss/functions/_map.scss +84 -0
  17. package/scss/functions.scss +1 -0
  18. package/scss/lib/accordion/_index.scss +4 -0
  19. package/scss/lib/accordion/_mixins.scss +233 -0
  20. package/scss/lib/accordion/_variables.scss +11 -0
  21. package/scss/lib/active-tag/_index.scss +4 -0
  22. package/scss/lib/active-tag/_mixins.scss +112 -0
  23. package/scss/lib/active-tag/_variables.scss +8 -0
  24. package/scss/lib/alert/_index.scss +3 -0
  25. package/scss/lib/alert/_mixins.scss +135 -0
  26. package/scss/lib/alert/_variables.scss +15 -0
  27. package/scss/lib/breadcrumb/_index.scss +3 -0
  28. package/scss/lib/breadcrumb/_mixins.scss +58 -0
  29. package/scss/lib/breadcrumb/_variables.scss +6 -0
  30. package/scss/lib/button/_index.scss +4 -0
  31. package/scss/lib/button/_mixins.scss +193 -0
  32. package/scss/lib/button/_variables.scss +25 -0
  33. package/scss/lib/cards/card/_index.scss +3 -0
  34. package/scss/lib/cards/card/_mixins.scss +37 -0
  35. package/scss/lib/cards/card/_variables.scss +2 -0
  36. package/scss/lib/cards/search/_index.scss +3 -0
  37. package/scss/lib/cards/search/_mixins.scss +432 -0
  38. package/scss/lib/cards/search/_variables.scss +10 -0
  39. package/scss/lib/divider/_index.scss +4 -0
  40. package/scss/lib/divider/_mixins.scss +54 -0
  41. package/scss/lib/divider/_variables.scss +17 -0
  42. package/scss/lib/flight-details/_index.scss +3 -0
  43. package/scss/lib/flight-details/_mixins.scss +468 -0
  44. package/scss/lib/flight-details/_variables.scss +6 -0
  45. package/scss/lib/flyout-dropdown/_index.scss +3 -0
  46. package/scss/lib/flyout-dropdown/_mixins.scss +124 -0
  47. package/scss/lib/forms/form-row/_index.scss +3 -0
  48. package/scss/lib/forms/form-row/_mixins.scss +72 -0
  49. package/scss/lib/forms/form-row/_variables.scss +7 -0
  50. package/scss/lib/forms/input-checkbox/_index.scss +3 -0
  51. package/scss/lib/forms/input-checkbox/_mixins.scss +216 -0
  52. package/scss/lib/forms/input-checkbox/_variables.scss +9 -0
  53. package/scss/lib/forms/input-chip/_index.scss +4 -0
  54. package/scss/lib/forms/input-chip/_mixins.scss +124 -0
  55. package/scss/lib/forms/input-chip/_variables.scss +19 -0
  56. package/scss/lib/forms/input-count/_index.scss +3 -0
  57. package/scss/lib/forms/input-count/_mixins.scss +72 -0
  58. package/scss/lib/forms/input-count/_variables.scss +13 -0
  59. package/scss/lib/forms/input-radio/_index.scss +3 -0
  60. package/scss/lib/forms/input-radio/_mixins.scss +139 -0
  61. package/scss/lib/forms/input-radio/_variables.scss +6 -0
  62. package/scss/lib/forms/input-slider/_index.scss +3 -0
  63. package/scss/lib/forms/input-slider/_mixins.scss +147 -0
  64. package/scss/lib/forms/input-slider/_variables.scss +12 -0
  65. package/scss/lib/forms/input-stepper/_index.scss +3 -0
  66. package/scss/lib/forms/input-stepper/_mixins.scss +143 -0
  67. package/scss/lib/forms/input-stepper/_variables.scss +7 -0
  68. package/scss/lib/forms/input-switch/_index.scss +3 -0
  69. package/scss/lib/forms/input-switch/_mixins.scss +122 -0
  70. package/scss/lib/forms/input-switch/_variables.scss +18 -0
  71. package/scss/lib/forms/input-text/_index.scss +3 -0
  72. package/scss/lib/forms/input-text/_mixins.scss +155 -0
  73. package/scss/lib/forms/input-text/_variables.scss +9 -0
  74. package/scss/lib/forms/textarea/_index.scss +3 -0
  75. package/scss/lib/forms/textarea/_mixins.scss +88 -0
  76. package/scss/lib/grid/_column.scss +51 -0
  77. package/scss/lib/grid/_container.scss +21 -0
  78. package/scss/lib/grid/_index.scss +3 -0
  79. package/scss/lib/grid/_mixins.scss +126 -0
  80. package/scss/lib/grid/_variables.scss +11 -0
  81. package/scss/lib/hero/_index.scss +3 -0
  82. package/scss/lib/hero/_mixins.scss +336 -0
  83. package/scss/lib/hero/_variables.scss +21 -0
  84. package/scss/lib/icon/_index.scss +3 -0
  85. package/scss/lib/icon/_mixins.scss +54 -0
  86. package/scss/lib/icon/_variables.scss +10 -0
  87. package/scss/lib/icon-button/_index.scss +3 -0
  88. package/scss/lib/icon-button/_mixins.scss +168 -0
  89. package/scss/lib/icon-button/_variables.scss +31 -0
  90. package/scss/lib/image/_index.scss +3 -0
  91. package/scss/lib/image/_mixins.scss +89 -0
  92. package/scss/lib/image/_variables.scss +13 -0
  93. package/scss/lib/info-tag/_index.scss +4 -0
  94. package/scss/lib/info-tag/_mixins.scss +100 -0
  95. package/scss/lib/info-tag/_variables.scss +13 -0
  96. package/scss/lib/link/_index.scss +3 -0
  97. package/scss/lib/link/_mixins.scss +86 -0
  98. package/scss/lib/link/_variables.scss +13 -0
  99. package/scss/lib/list/_index.scss +3 -0
  100. package/scss/lib/list/_mixins.scss +198 -0
  101. package/scss/lib/list/_variables.scss +9 -0
  102. package/scss/lib/loader/_index.scss +3 -0
  103. package/scss/lib/loader/_mixins.scss +52 -0
  104. package/scss/lib/loader/_variables.scss +12 -0
  105. package/scss/lib/media-button/_index.scss +4 -0
  106. package/scss/lib/media-button/_mixins.scss +75 -0
  107. package/scss/lib/media-button/_variables.scss +4 -0
  108. package/scss/lib/modal/_index.scss +2 -0
  109. package/scss/lib/modal/_mixins.scss +135 -0
  110. package/scss/lib/modal/_variables.scss +11 -0
  111. package/scss/lib/pagination/_index.scss +3 -0
  112. package/scss/lib/pagination/_mixins.scss +220 -0
  113. package/scss/lib/pagination/_variables.scss +12 -0
  114. package/scss/lib/price/_index.scss +3 -0
  115. package/scss/lib/price/_mixins.scss +83 -0
  116. package/scss/lib/price/_variables.scss +10 -0
  117. package/scss/lib/promo-tag/_index.scss +4 -0
  118. package/scss/lib/promo-tag/_mixins.scss +81 -0
  119. package/scss/lib/promo-tag/_variables.scss +7 -0
  120. package/scss/lib/ratings-reviews/numerical/_index.scss +3 -0
  121. package/scss/lib/ratings-reviews/numerical/_mixins.scss +91 -0
  122. package/scss/lib/ratings-reviews/numerical/_variables.scss +18 -0
  123. package/scss/lib/ratings-reviews/percentage/_index.scss +3 -0
  124. package/scss/lib/ratings-reviews/percentage/_mixins.scss +74 -0
  125. package/scss/lib/ratings-reviews/percentage/_variables.scss +6 -0
  126. package/scss/lib/ratings-reviews/range-bar/_index.scss +3 -0
  127. package/scss/lib/ratings-reviews/range-bar/_mixins.scss +88 -0
  128. package/scss/lib/ratings-reviews/range-bar/_variables.scss +16 -0
  129. package/scss/lib/ratings-reviews/range-icons/_index.scss +3 -0
  130. package/scss/lib/ratings-reviews/range-icons/_mixins.scss +200 -0
  131. package/scss/lib/ratings-reviews/range-icons/_variables.scss +31 -0
  132. package/scss/lib/ratings-reviews/range-icons-group/_index.scss +3 -0
  133. package/scss/lib/ratings-reviews/range-icons-group/_mixins.scss +26 -0
  134. package/scss/lib/richtext/_index.scss +3 -0
  135. package/scss/lib/richtext/_mixins.scss +136 -0
  136. package/scss/lib/scroller/_index.scss +4 -0
  137. package/scss/lib/scroller/_mixins.scss +130 -0
  138. package/scss/lib/scroller/_variables.scss +9 -0
  139. package/scss/lib/show-more-less/_index.scss +3 -0
  140. package/scss/lib/show-more-less/_mixins.scss +90 -0
  141. package/scss/lib/show-more-less/_variables.scss +6 -0
  142. package/scss/lib/skeleton/_index.scss +3 -0
  143. package/scss/lib/skeleton/_mixins.scss +151 -0
  144. package/scss/lib/skeleton/_variables.scss +8 -0
  145. package/scss/lib/tooltip/_index.scss +3 -0
  146. package/scss/lib/tooltip/_mixins.scss +305 -0
  147. package/scss/lib/tooltip/_variables.scss +8 -0
  148. package/scss/lib/typography/_index.scss +14 -0
  149. package/scss/lib/typography/_mixins.scss +27 -0
  150. package/scss/lib/typography/_variables.scss +58 -0
  151. package/scss/lib/utility/_index.scss +109 -0
  152. package/scss/lib/utility/_mixins.scss +198 -0
  153. package/scss/mixins.scss +44 -0
  154. package/scss/reset.scss +168 -0
  155. package/scss/themes/crystalski/_colors.scss +48 -0
  156. package/scss/themes/crystalski/_overrides.scss +285 -0
  157. package/scss/themes/crystalski/_primitives.scss +73 -0
  158. package/scss/themes/crystalski/_typography.scss +9 -0
  159. package/scss/themes/crystalski/fonts.json +49 -0
  160. package/scss/themes/crystalski/fonts.scss +8 -0
  161. package/scss/themes/crystalski/index.scss +166 -0
  162. package/scss/themes/crystalski/theme.json +232 -0
  163. package/scss/themes/firstchoice/_colors.scss +53 -0
  164. package/scss/themes/firstchoice/_overrides.scss +355 -0
  165. package/scss/themes/firstchoice/_primitives.scss +106 -0
  166. package/scss/themes/firstchoice/_typography.scss +14 -0
  167. package/scss/themes/firstchoice/fonts.json +50 -0
  168. package/scss/themes/firstchoice/fonts.scss +8 -0
  169. package/scss/themes/firstchoice/index.scss +166 -0
  170. package/scss/themes/firstchoice/theme.json +323 -0
  171. package/scss/themes/tui/_colors.scss +61 -0
  172. package/scss/themes/tui/_overrides.scss +34 -0
  173. package/scss/themes/tui/_primitives.scss +23 -0
  174. package/scss/themes/tui/_typography.scss +16 -0
  175. package/scss/themes/tui/fonts.json +117 -0
  176. package/scss/themes/tui/fonts.scss +17 -0
  177. package/scss/themes/tui/index.scss +166 -0
  178. package/scss/themes/tui/theme.json +139 -0
  179. package/scss/variables/_aspect-ratios.scss +8 -0
  180. package/scss/variables/_assets.scss +6 -0
  181. package/scss/variables/_border-radius.scss +20 -0
  182. package/scss/variables/_breakpoints.scss +17 -0
  183. package/scss/variables/_colors.scss +58 -0
  184. package/scss/variables/_directions.scss +8 -0
  185. package/scss/variables/_display-values.scss +9 -0
  186. package/scss/variables/_elevations.scss +17 -0
  187. package/scss/variables/_env-variables.scss +1 -0
  188. package/scss/variables/_focus.scss +14 -0
  189. package/scss/variables/_grid.scss +21 -0
  190. package/scss/variables/_icons.scss +26 -0
  191. package/scss/variables/_layers.scss +20 -0
  192. package/scss/variables/_motion.scss +27 -0
  193. package/scss/variables/_prefix.scss +1 -0
  194. package/scss/variables/_primitives.scss +100 -0
  195. package/scss/variables/_spacing.scss +38 -0
  196. package/scss/variables/_strokes.scss +18 -0
  197. package/scss/variables/_typography.scss +125 -0
  198. package/scss/variables/base-theme.json +2142 -0
  199. package/scss/variables/fonts/_ambit-bold-italic.scss +10 -0
  200. package/scss/variables/fonts/_ambit-bold.scss +10 -0
  201. package/scss/variables/fonts/_ambit-fallback.scss +21 -0
  202. package/scss/variables/fonts/_ambit-regular-italic.scss +10 -0
  203. package/scss/variables/fonts/_ambit-regular.scss +10 -0
  204. package/scss/variables/fonts/_ambit-semibold-italic.scss +10 -0
  205. package/scss/variables/fonts/_ambit-semibold.scss +10 -0
  206. package/scss/variables/fonts/_brandon-fallback.scss +22 -0
  207. package/scss/variables/fonts/_brandon-medium-italic.scss +10 -0
  208. package/scss/variables/fonts/_brandon-medium.scss +10 -0
  209. package/scss/variables/fonts/_brandon-regular-italic.scss +10 -0
  210. package/scss/variables/fonts/_brandon-regular.scss +10 -0
  211. package/scss/variables/fonts/_font-path.scss +3 -0
  212. package/scss/variables/fonts/_graphie-extralight.scss +10 -0
  213. package/scss/variables/fonts/_graphie-fallback.scss +11 -0
  214. package/scss/variables/fonts/_pastiche-grotesque-black.scss +10 -0
  215. package/scss/variables/fonts/_pastiche-grotesque-fallback.scss +11 -0
  216. package/scss/variables/fonts/_rondelle-black.scss +10 -0
  217. package/scss/variables/fonts/_rondelle-book.scss +10 -0
  218. package/scss/variables/fonts/_rondelle-fallback.scss +21 -0
  219. package/scss/variables/fonts/_tuiheadline-black-italic.scss +10 -0
  220. package/scss/variables/fonts/_tuiheadline-black.scss +10 -0
  221. package/scss/variables/fonts/_tuiheadline-fallback.scss +11 -0
  222. package/scss/variables/fonts/_tuitypelight-bold-italic.scss +10 -0
  223. package/scss/variables/fonts/_tuitypelight-bold.scss +10 -0
  224. package/scss/variables/fonts/_tuitypelight-fallback.scss +21 -0
  225. package/scss/variables/fonts/_tuitypelight-regular-italic.scss +10 -0
  226. package/scss/variables/fonts/_tuitypelight-regular.scss +10 -0
  227. package/scss/variables.scss +60 -0
@@ -0,0 +1,232 @@
1
+ {
2
+ "colors": {
3
+ "core": {
4
+ "tokens": {
5
+ "color-core-interaction": {
6
+ "primitive": "color-purple-80"
7
+ },
8
+ "color-core-brand": {
9
+ "primitive": "color-green-70"
10
+ },
11
+ "color-core-brand-strong": {
12
+ "primitive": "color-blue-90"
13
+ },
14
+ "color-core-surface": {
15
+ "primitive": "color-green-10"
16
+ },
17
+ "color-core-neutral": {
18
+ "primitive": "color-neutral-10"
19
+ }
20
+ }
21
+ },
22
+ "text": {
23
+ "tokens": {
24
+ "color-text-strong": {
25
+ "primitive": "color-blue-90"
26
+ },
27
+ "color-text-body": {
28
+ "primitive": "color-neutral-90"
29
+ },
30
+ "color-text-link": {
31
+ "primitive": "color-purple-80"
32
+ },
33
+ "color-text-link-visited": {
34
+ "primitive": "color-purple-100"
35
+ },
36
+ "color-text-link-visited-inverse": {
37
+ "primitive": "color-purple-40"
38
+ },
39
+ "color-text-inverse": {
40
+ "primitive": "color-neutral-10"
41
+ },
42
+ "color-text-promotion": {
43
+ "primitive": "color-red-70"
44
+ },
45
+ "color-text-danger": {
46
+ "primitive": "color-red-80"
47
+ }
48
+ }
49
+ },
50
+ "status": {
51
+ "tokens": {
52
+ "color-status-success-surface": {
53
+ "primitive": "color-green-20"
54
+ },
55
+ "color-status-danger-surface": {
56
+ "primitive": "color-red-20"
57
+ },
58
+ "color-status-warning-surface": {
59
+ "primitive": "color-yellow-20"
60
+ },
61
+ "color-status-info-surface": {
62
+ "primitive": "color-purple-20"
63
+ },
64
+ "color-status-success-icon": {
65
+ "primitive": "color-green-80",
66
+ "darkColor": false,
67
+ "lowContrast": false
68
+ },
69
+ "color-status-danger-icon": {
70
+ "primitive": "color-red-80"
71
+ },
72
+ "color-status-warning-icon": {
73
+ "primitive": "color-yellow-80"
74
+ },
75
+ "color-status-info-icon": {
76
+ "primitive": "color-purple-80"
77
+ }
78
+ }
79
+ },
80
+ "canvas": {
81
+ "tokens": {
82
+ "color-canvas-default": {
83
+ "primitive": "color-neutral-10"
84
+ },
85
+ "color-canvas-contrast": {
86
+ "primitive": "color-neutral-20"
87
+ },
88
+ "color-canvas-footer": {
89
+ "primitive": "color-neutral-90",
90
+ "title": "Canvas footer",
91
+ "darkColor": true
92
+ }
93
+ }
94
+ },
95
+ "border": {
96
+ "tokens": {
97
+ "color-border-interaction": {
98
+ "primitive": "color-purple-80"
99
+ },
100
+ "color-border-brand": {
101
+ "primitive": "color-green-70",
102
+ "title": "Border brand"
103
+ },
104
+ "color-border-brand-strong": {
105
+ "primitive": "color-blue-90"
106
+ },
107
+ "color-border-input": {
108
+ "primitive": "color-neutral-70"
109
+ },
110
+ "color-border-card": {
111
+ "primitive": "color-neutral-30"
112
+ },
113
+ "color-border-danger": {
114
+ "primitive": "color-red-70"
115
+ },
116
+ "color-border-inverse": {
117
+ "primitive": "color-neutral-10"
118
+ },
119
+ "color-border-divider": {
120
+ "primitive": "color-neutral-30"
121
+ }
122
+ }
123
+ },
124
+ "promotion": {
125
+ "tokens": {
126
+ "color-promotion": {
127
+ "primitive": "color-red-70"
128
+ }
129
+ }
130
+ },
131
+ "other": {
132
+ "tokens": {
133
+ "color-other-disabled-soft": {
134
+ "primitive": "color-neutral-40"
135
+ },
136
+ "color-other-disabled-strong": {
137
+ "primitive": "color-neutral-70"
138
+ },
139
+ "color-other-active-state-tint": {
140
+ "primitive": "color-blue-20 30%"
141
+ },
142
+ "color-other-button-hover-state": {
143
+ "primitive": "color-neutral-10"
144
+ },
145
+ "color-other-secondary-button-hover-state": {
146
+ "primitive": "color-purple-80",
147
+ "darkColor": true
148
+ },
149
+ "color-other-skeleton-loading": {
150
+ "primitive": "color-neutral-30"
151
+ }
152
+ }
153
+ }
154
+ },
155
+ "focus": {
156
+ "tokens": {
157
+ "focus-default": {
158
+ "primitive": "2px color-neutral-10, 4px color-purple-80, 6px color-purple-80 40%"
159
+ }
160
+ }
161
+ },
162
+ "alert": {
163
+ "tokens": {
164
+ "alert-icon-info-bg": {
165
+ "primitive": "uilib-color-status-info-icon"
166
+ },
167
+ "alert-icon-error-bg": {
168
+ "primitive": "uilib-color-status-error-icon"
169
+ },
170
+ "alert-icon-warning-bg": {
171
+ "primitive": "uilib-color-status-warning-icon"
172
+ },
173
+ "alert-icon-success-bg": {
174
+ "primitive": "uilib-color-status-success-icon"
175
+ },
176
+ "alert-text-color": {
177
+ "primitive": "uilib-color-text-body"
178
+ }
179
+ }
180
+ },
181
+ "button": {
182
+ "tokens": {
183
+ "button-tertiary-color": {
184
+ "primitive": "uilib-color-text-inverse"
185
+ },
186
+ "button-tertiary-bg-color": {
187
+ "primitive": "uilib-color-core-brand-strong"
188
+ },
189
+ "button-tertiary-hover-bg-color": {
190
+ "primitive": "uilib-color-core-brand-strong + 20% uilib-color-core-neutral"
191
+ }
192
+ }
193
+ },
194
+ "form-row": {
195
+ "tokens": {
196
+ "form-row-label-font": {
197
+ "primitive": "uilib-typography-label-medium-strong"
198
+ }
199
+ }
200
+ },
201
+ "input-checkbox": {
202
+ "tokens": {
203
+ "input-checkbox-text-color-strong": {
204
+ "primitive": "uilib-color-text-body"
205
+ }
206
+ }
207
+ },
208
+ "input-radio": {
209
+ "tokens": {
210
+ "input-radio-text-color-strong": {
211
+ "primitive": "uilib-color-text-body"
212
+ }
213
+ }
214
+ },
215
+ "info-tag": {
216
+ "tokens": {
217
+ "info-tag-text-color": {
218
+ "primitive": "uilib-color-text-body"
219
+ },
220
+ "info-tag-local-product-bg-color": {
221
+ "primitive": "uilib-color-canvas-contrast"
222
+ }
223
+ }
224
+ },
225
+ "ratings-numerical": {
226
+ "tokens": {
227
+ "ratings-numerical-brand-color": {
228
+ "primitive": "uuilib-color-text-body"
229
+ }
230
+ }
231
+ }
232
+ }
@@ -0,0 +1,53 @@
1
+ // firstchoice / colors
2
+ @use 'sass:map';
3
+ @use 'sass:color';
4
+ @use 'primitives' as *;
5
+
6
+ $uilib-color-semantic-firstchoice: (
7
+ core-interaction: map.get($uilib-firstchoice-primitives, 'color-pink-70'),
8
+ core-brand: map.get($uilib-firstchoice-primitives, 'color-pink-60'),
9
+ core-brand-strong: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
10
+ core-surface: map.get($uilib-firstchoice-primitives, 'color-sand-30'),
11
+ core-neutral: map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
12
+ text-strong: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
13
+ text-body: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
14
+ text-link: map.get($uilib-firstchoice-primitives, 'color-pink-70'),
15
+ text-link-visited: map.get($uilib-firstchoice-primitives, 'color-purple-60'),
16
+ text-link-visited-inverse: map.get($uilib-firstchoice-primitives, 'color-purple-30'),
17
+ text-inverse: map.get($uilib-firstchoice-primitives, 'color-sand-10'),
18
+ text-promotion: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
19
+ text-danger: map.get($uilib-firstchoice-primitives, 'color-red-80'),
20
+ text-tooltip: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
21
+ status-success-surface: map.get($uilib-firstchoice-primitives, 'color-greenmoss-20'),
22
+ status-danger-surface: map.get($uilib-firstchoice-primitives, 'color-red-20'),
23
+ status-warning-surface: map.get($uilib-firstchoice-primitives, 'color-orange-20'),
24
+ status-info-surface: map.get($uilib-firstchoice-primitives, 'color-sand-30'),
25
+ status-success-icon: map.get($uilib-firstchoice-primitives, 'color-greenmoss-70'),
26
+ status-danger-icon: map.get($uilib-firstchoice-primitives, 'color-red-80'),
27
+ status-warning-icon: map.get($uilib-firstchoice-primitives, 'color-orange-60'),
28
+ status-info-icon: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
29
+ canvas-default: map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
30
+ canvas-contrast: map.get($uilib-firstchoice-primitives, 'color-sand-30'),
31
+ border-interaction: map.get($uilib-firstchoice-primitives, 'color-pink-70'),
32
+ border-brand-strong: map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
33
+ border-input: map.get($uilib-firstchoice-primitives, 'color-neutral-70'),
34
+ border-card: map.get($uilib-firstchoice-primitives, 'color-sand-50'),
35
+ border-divider: map.get($uilib-firstchoice-primitives, 'color-sand-50'),
36
+ border-dashed: var(--uilib-color-border-divider),
37
+ border-danger: map.get($uilib-firstchoice-primitives, 'color-red-70'),
38
+ border-inverse: map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
39
+ border-insider: map.get($uilib-firstchoice-primitives, 'color-purple-40'),
40
+ promotion: map.get($uilib-firstchoice-primitives, 'color-pink-30'),
41
+ promotion-free-kids: map.get($uilib-firstchoice-primitives, 'color-greenpalm-30'),
42
+ promotion-insider-soft: map.get($uilib-firstchoice-primitives, 'color-purple-40'),
43
+ promotion-insider-strong: map.get($uilib-firstchoice-primitives, 'color-purple-20'),
44
+ sustainability: map.get($uilib-firstchoice-primitives, 'color-greenjade-70'),
45
+ sustainability-soft: map.get($uilib-firstchoice-primitives, 'color-greenmoss-30'),
46
+ other-disabled-soft: map.get($uilib-firstchoice-primitives, 'color-neutral-30'),
47
+ other-disabled-strong: map.get($uilib-firstchoice-primitives, 'color-neutral-70'),
48
+ other-active-state-tint: map.get($uilib-firstchoice-primitives, 'color-pink-20'),
49
+ other-button-hover-state: map.get($uilib-firstchoice-primitives, 'color-pink-30'),
50
+ other-secondary-button-hover-state: map.get($uilib-firstchoice-primitives, 'color-sand-30'),
51
+ other-skeleton-loading: map.get($uilib-firstchoice-primitives, 'color-neutral-20'),
52
+ other-scroll-handle: map.get($uilib-firstchoice-primitives, 'color-neutral-50'),
53
+ ) !default;
@@ -0,0 +1,355 @@
1
+ @use 'sass:map';
2
+ @use 'sass:color';
3
+ @use '../../variables' as *;
4
+ @forward '../../variables';
5
+ @use 'colors' as *;
6
+ @use 'primitives' as *;
7
+ @use 'typography' as *;
8
+
9
+ // typography
10
+ $uilib-firstchoice-font-families: map.merge(
11
+ $uilib-font-families,
12
+ (
13
+ 'display': #{$uilib-font-family-pastichegrotesque},
14
+ 'lead': #{$uilib-font-family-pastichegrotesque},
15
+ 'base': #{$uilib-font-family-rondelle},
16
+ )
17
+ );
18
+
19
+ /* prettier-ignore */
20
+ $uilib-firstchoice-font-styles: map.merge(
21
+ $uilib-font-styles,
22
+ (
23
+ // 20 / 16px
24
+ 'component-heading-xlarge': var(--uilib-font-weight-semibold) map.get($uilib-firstchoice-primitives, 'font-size-140') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
25
+ 'component-heading-xlarge-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-140') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
26
+ // 18 / 16px
27
+ 'component-heading-large': var(--uilib-font-weight-semibold) map.get($uilib-firstchoice-primitives, 'font-size-120') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
28
+ 'component-heading-large-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-120') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
29
+ // 16 / 16px
30
+ 'component-heading-medium': var(--uilib-font-weight-semibold) map.get($uilib-firstchoice-primitives, 'font-size-100') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
31
+ 'component-heading-medium-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-100') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
32
+ // 14 / 16px
33
+ 'component-heading-small': var(--uilib-font-weight-semibold) map.get($uilib-firstchoice-primitives, 'font-size-80') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
34
+ 'component-heading-small-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-80') / var(--uilib-line-height-heading) var(--uilib-font-family-base),
35
+ // 16 / 16px
36
+ 'body-large': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-100') / var(--uilib-line-height-body)
37
+ var(--uilib-font-family-base),
38
+ 'body-large-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-100') / var(--uilib-line-height-body)
39
+ var(--uilib-font-family-base),
40
+ // 14 / 16px
41
+ 'body-medium': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-80') / var(--uilib-line-height-body)
42
+ var(--uilib-font-family-base),
43
+ 'body-medium-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-80') / var(--uilib-line-height-body)
44
+ var(--uilib-font-family-base),
45
+ // 13 / 16px
46
+ 'body-small': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-60') / var(--uilib-line-height-body)
47
+ var(--uilib-font-family-base),
48
+ 'body-small-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-60') / var(--uilib-line-height-body)
49
+ var(--uilib-font-family-base),
50
+ // 16 / 16px
51
+ 'label-large': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-100') / var(--uilib-line-height-heading)
52
+ var(--uilib-font-family-base),
53
+ 'label-large-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-100') / var(--uilib-line-height-heading)
54
+ var(--uilib-font-family-base),
55
+ // 14 / 16px
56
+ 'label-medium': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-80') / var(--uilib-line-height-heading)
57
+ var(--uilib-font-family-base),
58
+ 'label-medium-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-80') / var(--uilib-line-height-heading)
59
+ var(--uilib-font-family-base),
60
+ // 13 / 16px
61
+ 'label-small': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-60') / var(--uilib-line-height-heading)
62
+ var(--uilib-font-family-base),
63
+ 'label-small-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-60') / var(--uilib-line-height-heading)
64
+ var(--uilib-font-family-base),
65
+ // 11 / 16px
66
+ 'label-xsmall': var(--uilib-font-weight-regular) map.get($uilib-firstchoice-primitives, 'font-size-40') / var(--uilib-line-height-heading)
67
+ var(--uilib-font-family-base),
68
+ 'label-xsmall-strong': var(--uilib-font-weight-bold) map.get($uilib-firstchoice-primitives, 'font-size-40') / var(--uilib-line-height-heading)
69
+ var(--uilib-font-family-base),
70
+ )
71
+ );
72
+ $uilib-firstchoice-font-weight: map.merge(
73
+ $uilib-font-weight,
74
+ (
75
+ 'semibold': 900,
76
+ 'bold': 900,
77
+ )
78
+ );
79
+
80
+ // focus
81
+ $uilib-firstchoice-focus-default:
82
+ 0 0 0 0.125rem map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
83
+ 0 0 0 0.25rem map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'),
84
+ 0 0 0 0.375rem color.scale(map.get($uilib-firstchoice-primitives, 'color-greenpalm-100'), $alpha: -60%);
85
+ $uilib-firstchoice-focus: map.merge(
86
+ $uilib-focus-base,
87
+ (
88
+ default: $uilib-firstchoice-focus-default,
89
+ )
90
+ );
91
+
92
+ // Accordion
93
+ $uilib-firstchoice-accordion-variables: map.merge(
94
+ $uilib-accordion-variables,
95
+ (
96
+ icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-down.svg'),
97
+ )
98
+ );
99
+
100
+ // Alert
101
+ $uilib-firstchoice-alert-variables: map.merge(
102
+ $uilib-alert-variables,
103
+ (
104
+ icon-info-bg: var(--uilib-color-status-info-icon),
105
+ icon-info-mask: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/letter-i-circled-filled.svg'),
106
+ icon-error-bg: var(--uilib-color-status-danger-icon),
107
+ icon-error-mask: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/exclamation-mark-circled-filled.svg'),
108
+ icon-warning-bg: var(--uilib-color-status-warning-icon),
109
+ icon-warning-mask: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/warning-filled.svg'),
110
+ icon-success-bg: var(--uilib-color-status-success-icon),
111
+ icon-success-mask: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/checkmark-circled-filled.svg'),
112
+ )
113
+ );
114
+
115
+ // Breadcrumb
116
+ $uilib-firstchoice-breadcrumb-variables: map.merge(
117
+ $uilib-breadcrumb-variables,
118
+ (
119
+ icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-right.svg'),
120
+ )
121
+ );
122
+
123
+ // Button
124
+ $uilib-firstchoice-button-variables: map.merge(
125
+ $uilib-button-variables,
126
+ (
127
+ radius: var(--uilib-border-radius-200),
128
+ primary-hover-bg-color: color.mix(
129
+ map.get($uilib-color-semantic-firstchoice, 'core-interaction'),
130
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
131
+ 80%
132
+ ),
133
+ secondary-color: var(--uilib-color-text-strong),
134
+ secondary-hover-bg-color: color.mix(
135
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
136
+ map.get($uilib-color-semantic-firstchoice, 'text-strong'),
137
+ 80%
138
+ ),
139
+ tertiary-color: var(--uilib-color-text-inverse),
140
+ tertiary-bg-color: var(--uilib-color-core-brand-strong),
141
+ tertiary-hover-bg-color: color.mix(
142
+ map.get($uilib-color-semantic-firstchoice, 'core-brand-strong'),
143
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
144
+ 80%
145
+ ),
146
+ promotion-bg-color: var(--uilib-color-core-interaction),
147
+ promotion-hover-bg-color: color.mix(
148
+ map.get($uilib-color-semantic-firstchoice, 'core-interaction'),
149
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
150
+ 80%
151
+ ),
152
+ search-hover-bg-color: color.mix(
153
+ map.get($uilib-color-semantic-firstchoice, 'core-brand-strong'),
154
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
155
+ 80%
156
+ ),
157
+ )
158
+ );
159
+
160
+ // Card - search
161
+ $uilib-firstchoice-card-search-variables: map.merge(
162
+ $uilib-card-search-variables,
163
+ (
164
+ radius: var(--uilib-border-radius-200),
165
+ radius-spacing: var(--uilib-spacing-200),
166
+ highlights-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-down.svg'),
167
+ )
168
+ );
169
+
170
+ // Flight details
171
+ $uilib-firstchoice-flight-details-variables: map.merge(
172
+ $uilib-flight-details-variables,
173
+ (
174
+ icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-down.svg'),
175
+ )
176
+ );
177
+
178
+ // Form row
179
+ $uilib-firstchoice-form-row-variables: map.merge(
180
+ $uilib-form-row-variables,
181
+ (
182
+ label-font: var(--uilib-typography-label-medium-strong),
183
+ icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/exclamation-mark-circled-filled.svg'),
184
+ )
185
+ );
186
+
187
+ // Form input checkbox
188
+ $uilib-firstchoice-input-checkbox-variables: map.merge(
189
+ $uilib-input-checkbox-variables,
190
+ (
191
+ icon-checked: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/checkmark.svg'),
192
+ icon-indeterminate: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/minus.svg'),
193
+ )
194
+ );
195
+
196
+ // Form input slider
197
+ $uilib-firstchoice-input-slider-variables: map.merge(
198
+ $uilib-input-slider-variables,
199
+ (
200
+ thumb-radius: var(--uilib-border-radius-200),
201
+ )
202
+ );
203
+
204
+ // Form input stepper
205
+ $uilib-crystalski-input-stepper-variables: map.merge(
206
+ $uilib-input-stepper-variables,
207
+ (
208
+ icon-increment: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/plus.svg'),
209
+ icon-decrement: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/minus.svg'),
210
+ )
211
+ );
212
+
213
+ // Form input text
214
+ $uilib-firstchoice-input-text-variables: map.merge(
215
+ $uilib-input-text-variables,
216
+ (
217
+ icon-clear: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/cross.svg'),
218
+ icon-show: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/view.svg'),
219
+ icon-hide: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/view-hidden.svg'),
220
+ icon-calendar: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/calendar.svg'),
221
+ )
222
+ );
223
+
224
+ // Icon button
225
+ $uilib-firstchoice-icon-button-variables: map.merge(
226
+ $uilib-icon-button-variables,
227
+ (
228
+ radius: var(--uilib-border-radius-200),
229
+ ghost-color: var(--uilib-color-text-strong),
230
+ ghost-hover-bg-color: color.mix(
231
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
232
+ map.get($uilib-color-semantic-firstchoice, 'text-strong'),
233
+ 80%
234
+ ),
235
+ primary-hover-bg-color: color.mix(
236
+ map.get($uilib-color-semantic-firstchoice, 'core-interaction'),
237
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
238
+ 80%
239
+ ),
240
+ secondary-color: var(--uilib-color-text-strong),
241
+ secondary-hover-bg-color: color.mix(
242
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
243
+ map.get($uilib-color-semantic-firstchoice, 'text-strong'),
244
+ 80%
245
+ ),
246
+ control-color: var(--uilib-color-text-strong),
247
+ control-hover-bg-color: color.mix(
248
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
249
+ map.get($uilib-color-semantic-firstchoice, 'text-strong'),
250
+ 80%
251
+ ),
252
+ promotion-bg-color: var(--uilib-color-core-interaction),
253
+ promotion-hover-bg-color: color.mix(
254
+ map.get($uilib-color-semantic-firstchoice, 'core-interaction'),
255
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
256
+ 80%
257
+ ),
258
+ search-hover-bg-color: color.mix(
259
+ map.get($uilib-color-semantic-firstchoice, 'core-brand-strong'),
260
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
261
+ 80%
262
+ ),
263
+ shortlist-color: var(--uilib-color-core-interaction),
264
+ shortlist-hover-bg-color: color.mix(
265
+ map.get($uilib-color-semantic-firstchoice, 'core-neutral'),
266
+ map.get($uilib-color-semantic-firstchoice, 'core-interaction'),
267
+ 90%
268
+ ),
269
+ )
270
+ );
271
+
272
+ // Info tag
273
+ $uilib-firstchoice-info-tag-variables: map.merge(
274
+ $uilib-info-tag-variables,
275
+ (
276
+ local-product-bg-color: var(--uilib-color-canvas-contrast),
277
+ )
278
+ );
279
+
280
+ // List
281
+ $uilib-firstchoice-list-variables: map.merge(
282
+ $uilib-list-variables,
283
+ (
284
+ bullet-icon: url('#{$uilib-assets-base-url}v3/icons/tui/standard/list-item.svg'),
285
+ )
286
+ );
287
+
288
+ // Loader
289
+ $uilib-firstchoice-loader-variables: map.merge(
290
+ $uilib-loader-variables,
291
+ (
292
+ image: url('#{$uilib-assets-base-url}v3/motion/firstchoice/loader.svg'),
293
+ )
294
+ );
295
+
296
+ // Pagination
297
+ $uilib-firstchoice-pagination-variables: map.merge(
298
+ $uilib-pagination-variables,
299
+ (
300
+ icon-prev: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-left.svg'),
301
+ icon-next: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-right.svg'),
302
+ )
303
+ );
304
+
305
+ // Price
306
+ $uilib-firstchoice-price-variables: map.merge(
307
+ $uilib-price-variables,
308
+ (
309
+ discount-color: var(--uilib-color-text-danger),
310
+ )
311
+ );
312
+
313
+ // Ratings and Reviews - Numerical
314
+ $uilib-firstchoice-ratings-numerical-variables: map.merge(
315
+ $uilib-ratings-numerical-variables,
316
+ (
317
+ brand-radius: var(--uilib-border-radius-100),
318
+ brand-logo: url('#{$uilib-assets-base-url}v3/logos/firstchoice/fc-fav-white.svg'),
319
+ alt-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/star-filled.svg'),
320
+ )
321
+ );
322
+
323
+ // Ratings and Reviews - Percentage
324
+ $uilib-firstchoice-ratings-percentage-variables: map.merge(
325
+ $uilib-ratings-percentage-variables,
326
+ (
327
+ leading-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/thumbs-up.svg'),
328
+ )
329
+ );
330
+
331
+ // Ratings and Reviews - Range Icons
332
+ $uilib-firstchoice-ratings-range-icons-variables: map.merge(
333
+ $uilib-ratings-range-icons-variables,
334
+ (
335
+ star-rating-icon: url('#{$uilib-assets-base-url}v3/logos/review/firstchoice-star-unchecked.svg'),
336
+ star-rating-icon-checked: url('#{$uilib-assets-base-url}v3/logos/review/firstchoice-star-checked.svg'),
337
+ )
338
+ );
339
+
340
+ // Show more/less
341
+ $uilib-firstchoice-show-more-less-variables: map.merge(
342
+ $uilib-show-more-less-variables,
343
+ (
344
+ icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/chevron-down.svg'),
345
+ )
346
+ );
347
+
348
+ // Skeleton
349
+ $uilib-firstchoice-skeleton-variables: map.merge(
350
+ $uilib-skeleton-variables,
351
+ (
352
+ color: map.get($uilib-color-semantic-firstchoice, 'other-skeleton-loading'),
353
+ shimmer-color: map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
354
+ )
355
+ );