@qite/tide-booking-component 1.2.2 → 1.2.4

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 (50) hide show
  1. package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
  2. package/build/build-cjs/booking-product/components/rooms.d.ts +2 -0
  3. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +1 -1
  4. package/build/build-cjs/booking-wizard/types.d.ts +0 -1
  5. package/build/build-cjs/index.js +292 -52
  6. package/build/build-cjs/shared/utils/localization-util.d.ts +3 -0
  7. package/build/build-esm/booking-product/components/footer.d.ts +1 -0
  8. package/build/build-esm/booking-product/components/rooms.d.ts +2 -0
  9. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +1 -1
  10. package/build/build-esm/booking-wizard/types.d.ts +0 -1
  11. package/build/build-esm/index.js +293 -53
  12. package/build/build-esm/shared/utils/localization-util.d.ts +3 -0
  13. package/package.json +1 -1
  14. package/rollup.config.js +23 -23
  15. package/src/booking-product/components/footer.tsx +7 -1
  16. package/src/booking-product/components/product.tsx +5 -1
  17. package/src/booking-product/components/rating.tsx +21 -21
  18. package/src/booking-product/components/rooms.tsx +5 -2
  19. package/src/booking-wizard/components/icon.tsx +250 -1
  20. package/src/booking-wizard/components/labeled-input.tsx +64 -64
  21. package/src/booking-wizard/components/labeled-select.tsx +69 -69
  22. package/src/booking-wizard/features/booking/selectors.ts +12 -2
  23. package/src/booking-wizard/features/flight-options/flight-filter.tsx +18 -5
  24. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +8 -6
  25. package/src/booking-wizard/features/flight-options/flight-option.tsx +1 -1
  26. package/src/booking-wizard/features/flight-options/flight-utils.ts +1 -1
  27. package/src/booking-wizard/features/product-options/option-pax-card.tsx +93 -22
  28. package/src/booking-wizard/features/product-options/option-units-card.tsx +93 -21
  29. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +2 -2
  30. package/src/booking-wizard/features/summary/summary.tsx +3 -1
  31. package/src/shared/translations/fr-BE.json +4 -1
  32. package/src/shared/translations/nl-BE.json +4 -1
  33. package/src/shared/utils/class-util.ts +9 -9
  34. package/styles/booking-wizard-variables.scss +530 -0
  35. package/styles/booking-wizard.scss +23 -1
  36. package/styles/components/_booking.scss +1409 -0
  37. package/styles/components/_checkbox.scss +215 -0
  38. package/styles/components/_cta.scss +80 -14
  39. package/styles/components/_date-range-picker.scss +1 -0
  40. package/styles/components/_flight-option.scss +1389 -0
  41. package/styles/components/_form.scss +258 -0
  42. package/styles/components/_list.scss +82 -0
  43. package/styles/components/_mixins.scss +17 -5
  44. package/styles/components/_placeholders.scss +2 -2
  45. package/styles/components/_pricing-summary.scss +117 -0
  46. package/styles/components/_select-wrapper.scss +66 -0
  47. package/styles/components/_step-indicators.scss +160 -0
  48. package/styles/components/_table.scss +81 -0
  49. package/styles/components/_tree.scss +540 -0
  50. package/tsconfig.json +24 -24
@@ -1,6 +1,12 @@
1
1
  .form {
2
2
  @extend %reset;
3
3
 
4
+ &__wrapper {
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: 20rem;
8
+ }
9
+
4
10
  &__label {
5
11
  @extend %reset;
6
12
  margin-bottom: 15px * 0.5;
@@ -129,7 +135,259 @@
129
135
  }
130
136
  }
131
137
 
138
+ &__region {
139
+ @extend %reset;
140
+
141
+ & + .form__region {
142
+ margin-top: 15px * 4;
143
+ }
144
+
145
+ &-header {
146
+ margin-bottom: 15px * 0.3;
147
+ display: flex;
148
+ flex-flow: row wrap;
149
+ }
150
+
151
+ &-heading {
152
+ @include media-xs {
153
+ padding-right: 15px * 2;
154
+ }
155
+ }
156
+
157
+ &-label {
158
+ width: 100%;
159
+ margin-top: -15px * 0.5;
160
+ font-style: italic;
161
+ order: 2;
162
+
163
+ @include media-xs {
164
+ width: auto;
165
+ margin-top: 0;
166
+ // @include marginLeft(15px * 0.2);
167
+ order: initial;
168
+ }
169
+ }
170
+
171
+ &--errors {
172
+ padding-left: 0 !important;
173
+ border: none !important;
174
+ color: var(--tide-booking-invalid);
175
+ }
176
+ }
177
+
178
+ &__room {
179
+ display: grid;
180
+ grid-template-rows: repeat(1, 1fr);
181
+ gap: 15px;
182
+ padding: 20px;
183
+ background: var(--tide-booking-room-options-card-background);
184
+ border: var(--tide-booking-room-options-card-border);
185
+ border-radius: var(--tide-booking-room-options-card-border-radius);
186
+
187
+ @include media-md {
188
+ gap: 25px;
189
+ grid-template-columns: 75% 20%;
190
+ justify-content: space-between;
191
+ }
192
+
193
+ &__header{
194
+ @include h3;
195
+ color: #666;
196
+ }
197
+
198
+ &__wrapper {
199
+ display: grid;
200
+ grid-template-columns: repeat(1, 1fr);
201
+ grid-template-rows: repeat(1, 1fr);
202
+ gap: 15px;
203
+
204
+ @include media-sm {
205
+ gap: 25px;
206
+ grid-template-columns: 230px 1fr;
207
+ }
208
+ }
209
+
210
+ &__image{
211
+ width: 100%;
212
+ height: 230px;
213
+ object-fit: cover;
214
+ overflow: hidden;
215
+ border-radius: var(--tide-booking-room-options-image-border-radius);
216
+ position: relative;
217
+ }
218
+
219
+ &__img{
220
+ width: 100%;
221
+ height: 100%;
222
+ object-fit: cover;
223
+ object-position: center;
224
+ }
225
+
226
+ &__favorite {
227
+ position: absolute;
228
+ top: 10px;
229
+ left: 10px;
230
+ z-index: 1;
231
+ display: flex;
232
+ align-items: center;
233
+ justify-content: center;
234
+ background-color: white;
235
+ width: 40px;
236
+ height: 40px;
237
+ border-radius: 50%;
238
+ color: #26b489;
239
+ font-size: 20px;
240
+ }
241
+
242
+ &__footer {
243
+ display: flex;
244
+ flex-direction: column;
245
+ justify-content: space-between;
246
+ align-items: flex-end;
247
+ gap: 10px;
248
+
249
+ @include media-xs {
250
+ flex-direction: row;
251
+ }
252
+
253
+ @include media-md {
254
+ display: flex;
255
+ flex-direction: column;
256
+ align-items: flex-end;
257
+ }
258
+
259
+ p {
260
+ margin-bottom: 0;
261
+ font-size: 14px;
262
+
263
+ @include media-md {
264
+ font-size: 16px;
265
+ text-align: right;
266
+ }
267
+ }
132
268
 
269
+ &__top {
270
+ display: flex;
271
+ flex-direction: column;
272
+ align-items: flex-start;
273
+ gap: 5px;
274
+ width: 100%;
275
+
276
+ @include media-md {
277
+ align-items: flex-end;
278
+ }
279
+ }
280
+
281
+ &__bottom {
282
+ display: flex;
283
+ flex-direction: column;
284
+ align-items: flex-end;
285
+ gap: 5px;
286
+ width: 100%;
287
+ max-width: 230px;
288
+
289
+ @include media-md {
290
+ align-items: flex-end;
291
+ }
292
+ }
293
+
294
+ .cta {
295
+ width: 100%;
296
+ max-width: 230px;
297
+ justify-content: center;
298
+ }
299
+ }
300
+
301
+ &__title {
302
+ font-family: var(--tide-booking-room-options-title-font-family);
303
+ font-weight: var(--tide-booking-room-options-title-font-weight);
304
+ color: var(--tide-booking-room-options-title-color);
305
+ margin-bottom: 5px;
306
+ }
307
+
308
+
309
+ &__text{
310
+ font-size: 14px;
311
+ line-height: 18px;
312
+ overflow: hidden;
313
+ display: -webkit-box;
314
+ -webkit-line-clamp: 3;
315
+ -webkit-box-orient: vertical;
316
+ }
317
+
318
+ &__days{
319
+ font-size: 14px;
320
+ @include media-md {
321
+ font-size: 16px;
322
+ text-align: right;
323
+ }
324
+ }
325
+
326
+ &__usps{
327
+ display: flex;
328
+ flex-direction: row;
329
+ justify-content: flex-start;
330
+ flex-wrap: wrap;
331
+ gap: 10px;
332
+ row-gap: 0rem;
333
+ margin: 0;
334
+ }
335
+
336
+ &__select {
337
+ display: grid;
338
+ grid-template-rows: repeat(1, 1fr);
339
+ gap: 10px;
340
+ margin-top: 15px;
341
+
342
+ @include media-md {
343
+ grid-template-columns: repeat(2, 1fr);
344
+ gap: 15px;
345
+ }
346
+ }
347
+
348
+ &__price {
349
+ font-size: 16px;
350
+ font-weight: 400;
351
+ color: #0a0a0a;
352
+
353
+ span{
354
+ font-size: 20px;
355
+ font-weight: bold;
356
+ }
357
+
358
+ &--increase {
359
+ color: var(--tide-booking-price-increase);
360
+ }
361
+
362
+ &--decrease {
363
+ color: var(--tide-booking-price-decrease);
364
+ }
365
+ }
366
+
367
+ &__alternatives{
368
+ &__header{
369
+ margin: 30px 0rem 10px 0rem;
370
+ font-size: 16px;
371
+ }
372
+
373
+ &__btn{
374
+ margin-bottom: 5px;
375
+ outline: none;
376
+ border: none;
377
+ background: transparent;
378
+ text-align: right;
379
+ color: #667eff;
380
+ text-decoration: underline;
381
+ transition: color 0.3s ease, text-decoration 0.3s ease;
382
+
383
+ &:hover{
384
+ text-decoration: none;
385
+ color: #667effcc;
386
+ }
387
+ }
388
+ }
389
+
390
+ }
133
391
 
134
392
  }
135
393
 
@@ -0,0 +1,82 @@
1
+ .list {
2
+ display: flex;
3
+ flex-direction: column;
4
+
5
+ &--booking-summary {
6
+ .list__item {
7
+ margin: 5px 0;
8
+ }
9
+ }
10
+
11
+
12
+ &--usps {
13
+ li {
14
+ position: relative;
15
+ padding-left: 20px;
16
+ list-style-type: none;
17
+ @extend %transition-easing;
18
+
19
+ @include media-xs {
20
+ padding-left: 20px;
21
+ }
22
+
23
+ &:before {
24
+ content: "";
25
+ position: absolute;
26
+ width: 18px;
27
+ height: 6px;
28
+ left: 0;
29
+ top: 3px;
30
+ transform: rotate(-45deg);
31
+ border-left: 0.2rem solid $color-primary;
32
+ border-bottom: 0.2rem solid $color-primary;
33
+ @extend %transition-easing;
34
+
35
+ @include media-xs {
36
+ width: 22px;
37
+ height: 8px;
38
+ }
39
+ }
40
+ }
41
+
42
+ .list {
43
+ &__item {
44
+ position: relative;
45
+ padding-left: 20px;
46
+ list-style-type: none;
47
+ @extend %transition-easing;
48
+ margin-right: 10px;
49
+ font-weight: 400;
50
+ line-height: 18px;
51
+ font-size: 14px;
52
+ font-weight: var(--tide-booking-room-options-usp-list-font-weight);
53
+ color: var(--tide-booking-room-options-usp-list-color);
54
+
55
+ @include media-xs {
56
+ padding-left: 20px;
57
+ font-size: 16px;
58
+ line-height: 20px;
59
+ }
60
+
61
+ &:before {
62
+ content: "";
63
+ position: absolute;
64
+ width: 12px;
65
+ height: 6px;
66
+ left: 0rem;
67
+ top: 35%;
68
+ transform: rotate(-45deg) translateY(-50%);
69
+ border-left: 2px solid var(--tide-booking-room-options-usp-list-icon-color);
70
+ border-bottom: 2px solid var(--tide-booking-room-options-usp-list-icon-color);
71
+ @extend %transition-easing;
72
+
73
+ @include media-xs {
74
+ height: 8px;
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+
@@ -49,26 +49,38 @@
49
49
  }
50
50
 
51
51
  // GRID
52
+ @mixin container() {
53
+ width: 100%;
54
+ padding: 0 15px;
55
+ margin: 0 auto;
56
+
57
+ @include media-sm {
58
+ padding: 0 30px;
59
+ }
52
60
 
61
+ @include media-lg {
62
+ padding: 0 45px;
63
+ }
64
+ }
53
65
 
54
66
  @mixin container-wide() {
55
67
  @include container();
56
- max-width: $container-wide;
68
+ max-width: var(--tide-booking-container-wide);
57
69
  }
58
70
 
59
71
  @mixin container-medium() {
60
72
  @include container();
61
- max-width: $container-medium;
73
+ max-width: var(--tide-booking-container-medium);
62
74
  }
63
75
 
64
76
  @mixin container-small() {
65
77
  @include container();
66
- max-width: $container-small;
78
+ max-width: var(--tide-booking-container-small);
67
79
  }
68
80
 
69
81
  @mixin container-article() {
70
82
  @include container();
71
- max-width: $container-article;
83
+ max-width: var(--tide-booking-container-article);
72
84
  }
73
85
 
74
86
  @mixin row() {
@@ -385,7 +397,7 @@
385
397
  font-weight: normal;
386
398
  line-height: 1.35;
387
399
  word-break: break-word;
388
- color: var(--tide-booking-black);
400
+ color: var(--tide-booking-heading-color);
389
401
 
390
402
  &:empty {
391
403
  display: none;
@@ -82,7 +82,7 @@
82
82
  font-weight: var(--tide-booking-cta-font-weight-secondary);
83
83
  text-decoration: var(--tide-booking-cta-text-decoration-secondary);
84
84
  color: var(--tide-booking-cta-color-secondary);
85
- background: var(--tide-booking-cta-background-secondary-secondary);
85
+ background: var(--tide-booking-cta-background-secondary);
86
86
  box-sizing: border-box;
87
87
  transition: all .3s ease;
88
88
 
@@ -134,7 +134,7 @@
134
134
 
135
135
  &::-webkit-scrollbar-thumb {
136
136
  border-radius: 4px;
137
- background-color: rgba(0, 0, 0, 0.75);
137
+ background-color: #cbcbcb;
138
138
  }
139
139
  }
140
140
 
@@ -0,0 +1,117 @@
1
+ .pricing-summary {
2
+ width: 100%;
3
+ display: flex;
4
+ flex-direction: column;
5
+
6
+ &__group {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: 10px;
10
+ }
11
+
12
+ &__property {
13
+ color: var(--tide-booking-sidebar-body-label-color);
14
+ font-size: var(--tide-booking-sidebar-body-label-font-size);
15
+ font-weight: var(--tide-booking-sidebar-body-label-font-weight);
16
+ }
17
+
18
+ &__region {
19
+ padding: 25px 15px;
20
+ display: flex;
21
+ flex-direction: column;
22
+ gap: 1rem;
23
+ }
24
+
25
+ &__region--pricing {
26
+ position: sticky;
27
+ bottom: 0;
28
+ background: var(--tide-booking-sidebar-footer-background);
29
+
30
+ small {
31
+ font-size: var(--tide-booking-sidebar-footer-small-font-size);
32
+ color: var(--tide-booking-sidebar-footer-small-color);
33
+
34
+ strong {
35
+ color: var(--tide-booking-sidebar-footer-small-strong-color);
36
+ }
37
+
38
+ }
39
+
40
+ .pricing-summary__row + .pricing-summary__row {
41
+ margin-top: 0;
42
+ }
43
+ }
44
+
45
+ &__region + &__region {
46
+ border-top: var(--tide-booking-sidebar-body-border);
47
+ }
48
+
49
+ &__region + &__region--pricing {
50
+ padding: 15px 0rem;
51
+ }
52
+
53
+ &__row {
54
+ width: 100%;
55
+ @include row;
56
+ justify-content: space-between;
57
+ font-size: var(--tide-booking-sidebar-body-font-size);
58
+ font-family: var(--tide-booking-sidebar-body-font-family);
59
+ line-height: 1.3;
60
+ }
61
+
62
+ &__title {
63
+ margin-bottom: 0;
64
+ color: var(--tide-booking-sidebar-body-title-color);
65
+ font-family: var(--tide-booking-sidebar-body-title-font-family);
66
+ font-size: var(--tide-booking-sidebar-body-title-font-size);
67
+ font-weight: var(--tide-booking-sidebar-body-title-font-weight);
68
+ }
69
+
70
+ &__value {
71
+ margin-left: 15px;
72
+ text-align: right;
73
+ color: var(--tide-booking-sidebar-body-color);
74
+ font-weight: var(--tide-booking-sidebar-body-font-weight);
75
+
76
+ &--flight {
77
+ font-weight: var(--tide-booking-sidebar-body-flight-font-weight);
78
+ color: var(--tide-booking-sidebar-body-flight-color);
79
+ }
80
+ }
81
+
82
+ &__social {
83
+ width: 100%;
84
+ padding: 15px;
85
+ margin-top: 20px;
86
+ @include column;
87
+ @include flex--centerXY;
88
+ text-align: center;
89
+ box-sizing: border-box;
90
+ }
91
+ }
92
+
93
+ .pricing-summary .pricing {
94
+ @include media-lg {
95
+ margin-top: -15px * 0.4;
96
+ }
97
+ }
98
+
99
+ .pricing-summary__region--pricing {
100
+ .pricing .pricing__price {
101
+ font-size: var(--tide-booking-sidebar-footer-advance-font-size);
102
+ font-weight: var(--tide-booking-sidebar-footer-advance-font-weight);
103
+ color: var(--tide-booking-sidebar-footer-advance-color);
104
+ margin-top: 0.3rem;
105
+
106
+ }
107
+
108
+ .pricing-summary__row--total-price {
109
+ .pricing__price {
110
+ //font-size: 1.8rem;(
111
+ font-size: var(--tide-booking-sidebar-footer-total-font-size);
112
+ font-weight: var(--tide-booking-sidebar-footer-total-font-weight);
113
+ color: var(--tide-booking-sidebar-footer-total-color);
114
+ line-height: 1.8;
115
+ }
116
+ }
117
+ }
@@ -0,0 +1,66 @@
1
+ .select-wrapper {
2
+ &__select {
3
+ position: relative;
4
+
5
+ &:after {
6
+ content: "";
7
+ position: absolute;
8
+ width: 8px;
9
+ height: 8px;
10
+ right: 15px;
11
+ top: 13px;
12
+ display: inline-flex;
13
+ border-left: 2px solid var(--tide-booking-room-options-dropdown-select-icon-color);
14
+ border-bottom: 2px solid var(--tide-booking-room-options-dropdown-select-icon-color);
15
+ transform: rotate(-45deg);
16
+ }
17
+ }
18
+
19
+ select {
20
+ width: 100%;
21
+ height: 40px;
22
+ padding: 0 40px 0 10px;
23
+ border-radius: var(--tide-booking-room-options-dropdown-select-border-radius);
24
+ border: var(--tide-booking-room-options-dropdown-select-border);
25
+ font-family: var(--tide-booking-room-options-dropdown-select-font-family);
26
+ appearance: none;
27
+
28
+ &:focus {
29
+ outline: none;
30
+ border: --tide-booking-room-options-dropdown-select-border-focus;
31
+ }
32
+
33
+ option{
34
+ font-family: var(--tide-booking-room-options-dropdown-select-font-family);
35
+ font-size: 16px;
36
+ color: var(--tide-booking-room-options-dropdown-select-option-color);
37
+ }
38
+ }
39
+ }
40
+
41
+ .productcard--accommodation .select-wrapper {
42
+ select {
43
+ font-size: 14.5px;
44
+
45
+ @include media-xs {
46
+ font-size: 15.5px;
47
+ }
48
+ }
49
+ }
50
+
51
+ .tree .select-wrapper {
52
+ width: 100%;
53
+
54
+ @include media-lg {
55
+ transform: translateY(-5px);
56
+ }
57
+
58
+ @include media-xl {
59
+ transform: translateY(-7px);
60
+ }
61
+ }
62
+
63
+ select {
64
+ font-family: --tide-booking-font-body;
65
+ font-size: 16px;
66
+ }