@qite/tide-booking-component 1.2.0 → 1.2.1

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 (70) hide show
  1. package/build/build-cjs/booking-product/components/footer.d.ts +1 -0
  2. package/build/build-cjs/booking-product/components/icon.d.ts +2 -0
  3. package/build/build-cjs/booking-product/types.d.ts +2 -1
  4. package/build/build-cjs/booking-wizard/components/icon.d.ts +2 -0
  5. package/build/build-cjs/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
  6. package/build/build-cjs/booking-wizard/features/flight-options/flight-option-flight.d.ts +1 -1
  7. package/build/build-cjs/booking-wizard/features/flight-options/flight-option.d.ts +1 -1
  8. package/build/build-cjs/booking-wizard/types.d.ts +1 -0
  9. package/build/build-cjs/index.js +703 -451
  10. package/build/build-cjs/shared/utils/localization-util.d.ts +238 -3
  11. package/build/build-esm/booking-product/components/footer.d.ts +1 -0
  12. package/build/build-esm/booking-product/components/icon.d.ts +2 -0
  13. package/build/build-esm/booking-product/types.d.ts +2 -1
  14. package/build/build-esm/booking-wizard/components/icon.d.ts +2 -0
  15. package/build/build-esm/{booking-product → booking-wizard}/components/multi-range-filter.d.ts +0 -1
  16. package/build/build-esm/booking-wizard/features/flight-options/flight-option-flight.d.ts +1 -1
  17. package/build/build-esm/booking-wizard/features/flight-options/flight-option.d.ts +1 -1
  18. package/build/build-esm/booking-wizard/types.d.ts +1 -0
  19. package/build/build-esm/index.js +704 -452
  20. package/build/build-esm/shared/utils/localization-util.d.ts +238 -3
  21. package/package.json +1 -1
  22. package/src/booking-product/components/amount-input.tsx +8 -20
  23. package/src/booking-product/components/date-range-picker/calendar.tsx +3 -3
  24. package/src/booking-product/components/dates.tsx +26 -20
  25. package/src/booking-product/components/footer.tsx +4 -2
  26. package/src/booking-product/components/header.tsx +4 -4
  27. package/src/booking-product/components/icon.tsx +176 -11
  28. package/src/booking-product/components/product.tsx +31 -16
  29. package/src/{shared → booking-product}/components/rating.tsx +3 -3
  30. package/src/booking-product/components/rooms.tsx +116 -113
  31. package/src/booking-product/settings-context.ts +0 -1
  32. package/src/booking-product/types.ts +2 -1
  33. package/src/booking-wizard/components/icon.tsx +42 -15
  34. package/src/{booking-product → booking-wizard}/components/multi-range-filter.tsx +0 -1
  35. package/src/booking-wizard/declarations.d.ts +4 -0
  36. package/src/booking-wizard/features/booking/booking-self-contained.tsx +3 -2
  37. package/src/booking-wizard/features/booking/booking.tsx +3 -2
  38. package/src/booking-wizard/features/confirmation/confirmation.tsx +8 -4
  39. package/src/booking-wizard/features/flight-options/flight-filter.tsx +7 -6
  40. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +29 -28
  41. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +193 -192
  42. package/src/booking-wizard/features/room-options/index.tsx +1 -5
  43. package/src/booking-wizard/features/summary/summary.tsx +23 -26
  44. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +0 -2
  45. package/src/booking-wizard/features/travelers-form/validate-form.ts +1 -1
  46. package/src/booking-wizard/index.tsx +2 -2
  47. package/src/booking-wizard/types.ts +1 -0
  48. package/src/shared/tide-sprites.svg +117 -0
  49. package/src/shared/translations/fr-BE.json +229 -222
  50. package/src/shared/translations/nl-BE.json +229 -222
  51. package/styles/booking-product-variables.scss +288 -0
  52. package/styles/booking-product.scss +440 -0
  53. package/styles/booking-wizard-variables.scss +0 -0
  54. package/styles/booking-wizard.scss +4 -0
  55. package/styles/components/_animations.scss +39 -0
  56. package/styles/components/_base.scss +106 -0
  57. package/styles/components/_button.scss +185 -0
  58. package/styles/components/_cta.scss +67 -0
  59. package/styles/components/_date-range-picker.scss +224 -0
  60. package/styles/components/_decrement-increment.scss +37 -0
  61. package/styles/components/_dropdown.scss +74 -0
  62. package/styles/components/_form.scss +136 -0
  63. package/styles/components/_loader.scss +71 -0
  64. package/styles/components/_mixins.scss +518 -0
  65. package/styles/components/_placeholders.scss +166 -0
  66. package/styles/components/_qsm.scss +20 -0
  67. package/styles/components/_variables.scss +89 -0
  68. package/src/booking-product/components/multi-range-filter.css +0 -115
  69. /package/build/build-cjs/{shared → booking-product}/components/rating.d.ts +0 -0
  70. /package/build/build-esm/{shared → booking-product}/components/rating.d.ts +0 -0
@@ -0,0 +1,71 @@
1
+ .loader {
2
+ display: flex;
3
+ justify-content: center;
4
+ align-items: center;
5
+ gap: 10px;
6
+ z-index: 1;
7
+
8
+ &__spinner {
9
+ max-width: 50px;
10
+ max-height: 50px;
11
+ min-width: 50px;
12
+ min-height: 50px;
13
+ border: var(--tide-booking-spinner-border);
14
+ border-top-color: var(--tide-booking-spinner-border-top-color);
15
+ border-radius: 50%;
16
+ border-radius: 50%;
17
+ animation: spin 2s linear infinite;
18
+
19
+ &--dots {
20
+ width: auto;
21
+ height: auto;
22
+ border: none;
23
+ border-radius: initial;
24
+ animation: initial;
25
+
26
+ &:after {
27
+ content: " .";
28
+ font-size: 20px;
29
+ animation: dots 1s steps(5, end) infinite;
30
+ }
31
+ }
32
+
33
+ }
34
+
35
+ &--centered {
36
+ width: 100%;
37
+ align-items: center;
38
+ }
39
+ }
40
+
41
+ @keyframes spin {
42
+ 0% {
43
+ transform: rotate(0deg);
44
+ }
45
+
46
+ 100% {
47
+ transform: rotate(360deg);
48
+ }
49
+ }
50
+
51
+ @keyframes dots {
52
+ 0%,
53
+ 20% {
54
+ color: rgba(0, 0, 0, 0);
55
+ text-shadow: 0.25em 0 0 rgba(0, 0, 0, 0), 0.5em 0 0 rgba(0, 0, 0, 0);
56
+ }
57
+
58
+ 40% {
59
+ color: var(--tide-booking-spinner-animation-color);
60
+ text-shadow: 0.25em 0 0 rgba(0, 0, 0, 0), 0.5em 0 0 rgba(0, 0, 0, 0);
61
+ }
62
+
63
+ 60% {
64
+ text-shadow: 0.25em 0 0 var(--tide-booking-spinner-animation-color), 0.5em 0 0 rgba(0, 0, 0, 0);
65
+ }
66
+
67
+ 80%,
68
+ 100% {
69
+ text-shadow: 0.25em 0 0 var(--tide-booking-spinner-animation-color), 0.5em 0 0 var(--tide-booking-spinner-animation-color);
70
+ }
71
+ }
@@ -0,0 +1,518 @@
1
+ // RESET
2
+ @mixin reset {
3
+ padding: 0;
4
+ margin: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ // MEDIA QUERIES
9
+ @mixin media-xs {
10
+ @media only screen and (min-width: 576px) {
11
+ @content;
12
+ }
13
+ }
14
+
15
+ @mixin media-sm {
16
+ @media only screen and (min-width: 768px) {
17
+ @content;
18
+ }
19
+ }
20
+
21
+ @mixin media-md {
22
+ @media only screen and (min-width: 992px) {
23
+ @content;
24
+ }
25
+ }
26
+
27
+ @mixin media-lg {
28
+ @media only screen and (min-width: 1200px) {
29
+ @content;
30
+ }
31
+ }
32
+
33
+ @mixin media-xl {
34
+ @media only screen and (min-width: 1650px) {
35
+ @content;
36
+ }
37
+ }
38
+
39
+ @mixin media-xxl {
40
+ @media only screen and (min-width: 1920px) {
41
+ @content;
42
+ }
43
+ }
44
+
45
+ @mixin orientation--landscape {
46
+ @media only screen and (orientation: landscape) {
47
+ @content;
48
+ }
49
+ }
50
+
51
+ // GRID
52
+
53
+
54
+ @mixin container-wide() {
55
+ @include container();
56
+ max-width: $container-wide;
57
+ }
58
+
59
+ @mixin container-medium() {
60
+ @include container();
61
+ max-width: $container-medium;
62
+ }
63
+
64
+ @mixin container-small() {
65
+ @include container();
66
+ max-width: $container-small;
67
+ }
68
+
69
+ @mixin container-article() {
70
+ @include container();
71
+ max-width: $container-article;
72
+ }
73
+
74
+ @mixin row() {
75
+ display: flex;
76
+ justify-content: center;
77
+ //flex-wrap: wrap;
78
+ }
79
+
80
+ @mixin row--xs() {
81
+ display: flex;
82
+ flex-direction: column;
83
+
84
+ @include media-xs {
85
+ flex-direction: row;
86
+ }
87
+ }
88
+
89
+ @mixin row--sm() {
90
+ display: flex;
91
+ flex-direction: column;
92
+
93
+ @include media-sm {
94
+ flex-direction: row;
95
+ }
96
+ }
97
+
98
+ @mixin row--md() {
99
+ display: flex;
100
+ flex-direction: column;
101
+
102
+ @include media-md {
103
+ flex-direction: row;
104
+ }
105
+ }
106
+
107
+ @mixin row--lg() {
108
+ display: flex;
109
+ flex-direction: column;
110
+
111
+ @include media-lg {
112
+ flex-direction: row;
113
+ }
114
+ }
115
+
116
+ @mixin row--xl() {
117
+ display: flex;
118
+ flex-direction: column;
119
+
120
+ @include media-xl {
121
+ flex-direction: row;
122
+ }
123
+ }
124
+
125
+ @mixin row--xxl() {
126
+ display: flex;
127
+ flex-direction: column;
128
+
129
+ @include media-xxl {
130
+ flex-direction: row;
131
+ }
132
+ }
133
+
134
+ @mixin column() {
135
+ display: flex;
136
+ flex-direction: column;
137
+ }
138
+
139
+ @mixin column--xs() {
140
+ display: flex;
141
+
142
+ @include media-xs {
143
+ flex-direction: column;
144
+ }
145
+ }
146
+
147
+ @mixin column--sm() {
148
+ display: flex;
149
+
150
+ @include media-sm {
151
+ flex-direction: column;
152
+ }
153
+ }
154
+
155
+ @mixin column--md() {
156
+ display: flex;
157
+
158
+ @include media-md {
159
+ flex-direction: column;
160
+ }
161
+ }
162
+
163
+ @mixin column--lg() {
164
+ display: flex;
165
+
166
+ @include media-lg {
167
+ flex-direction: column;
168
+ }
169
+ }
170
+
171
+ @mixin column--xl() {
172
+ display: flex;
173
+
174
+ @include media-xl {
175
+ flex-direction: column;
176
+ }
177
+ }
178
+
179
+ @mixin column--xxl() {
180
+ display: flex;
181
+
182
+ @include media-xxl {
183
+ flex-direction: column;
184
+ }
185
+ }
186
+
187
+ @mixin gutter() {
188
+ padding: 10px;
189
+
190
+ @include media-sm {
191
+ padding: 20px;
192
+ }
193
+
194
+ @include media-lg {
195
+ padding: 30px;
196
+ }
197
+ }
198
+
199
+ @mixin gutter--compact() {
200
+ padding: 10px;
201
+
202
+ @include media-sm {
203
+ padding: 15px;
204
+ }
205
+
206
+ @include media-lg {
207
+ padding: 20px;
208
+ }
209
+ }
210
+
211
+ @mixin flex--centerXY() {
212
+ display: inline-flex;
213
+ justify-content: center;
214
+ align-items: center;
215
+ }
216
+
217
+ @mixin flex--centerX() {
218
+ display: inline-flex;
219
+ justify-content: center;
220
+ }
221
+
222
+ @mixin flex--centerY() {
223
+ display: inline-flex;
224
+ align-items: center;
225
+ }
226
+
227
+ @mixin object-fit--cover() {
228
+ object-fit: cover;
229
+ }
230
+
231
+ @mixin object-fit--contain() {
232
+ object-fit: contain;
233
+ }
234
+
235
+ @mixin object-position--center() {
236
+ object-position: center;
237
+ }
238
+
239
+ @mixin overflow--x {
240
+ overflow-x: auto;
241
+ overflow-y: hidden;
242
+ }
243
+
244
+ @mixin overflow--y {
245
+ overflow-x: hidden;
246
+ overflow-y: auto;
247
+ }
248
+
249
+ @mixin overflow--xy {
250
+ overflow: auto;
251
+ }
252
+
253
+ // UI
254
+
255
+ @mixin body {
256
+ font-family: var(--tide-booking-font-body);
257
+ font-size: var(--tide-booking-font-size-body);
258
+ line-height: var(--tide-booking-line-height-body);
259
+ color: var(--tide-booking-gray-dark);
260
+ -webkit-font-smoothing: antialiased;
261
+ -moz-osx-font-smoothing: grayscale;
262
+
263
+ @include media-lg {
264
+ font-size: var(--tide-booking-font-size-body-lg);
265
+ }
266
+
267
+ &.has-overlay,
268
+ &.has-itinerary-schedule-active {
269
+ overflow: hidden;
270
+ }
271
+ }
272
+
273
+ @mixin input {
274
+ min-height: var(--tide-booking-datepicker-input-height);
275
+ padding: 0 15px;
276
+ border: var(--tide-booking-datepicker-input-border);
277
+ border-radius: var(--tide-booking-datepicker-input-border-radius);
278
+ font-family: var(--tide-booking-font-body);
279
+ //font-size: 1.6rem;
280
+ font-size: var(--tide-booking-font-size-body);
281
+ font-weight: 400;
282
+ outline: none;
283
+ color: var(--tide-booking-datepicker-input-color);
284
+ background-color: var(--tide-booking-datepicker-input-background);
285
+
286
+ @include media-lg {
287
+ //font-size: 1.8rem;
288
+ font-size: var(--tide-booking-font-size-body-lg);
289
+ min-height: var(--tide-booking-datepicker-input-height-lg);
290
+ }
291
+
292
+ &:hover,
293
+ &:focus,
294
+ &:focus-within,
295
+ &:active {
296
+ outline: none;
297
+ }
298
+ }
299
+
300
+ @mixin textarea {
301
+ min-height: 25px;
302
+ max-height: 60vh;
303
+ padding: 12px 15px;
304
+ font-family: var(--tide-booking-font-body);
305
+ //font-size: 1.6rem;
306
+ font-size: var(--input-font-size--mobile);
307
+ border-radius: 5px;
308
+ resize: vertical;
309
+ outline: none;
310
+
311
+ @include media-xs {
312
+ //font-size: 1.8rem;
313
+ font-size: var(--input-font-size--desktop);
314
+ }
315
+
316
+ &:focus,
317
+ &:active {
318
+ border-color: var(--tide-booking-color-secondary);
319
+ }
320
+ }
321
+
322
+ @mixin button {
323
+ cursor: pointer;
324
+ outline: none;
325
+
326
+ &:hover,
327
+ &:focus,
328
+ &:active {
329
+ outline: none;
330
+ }
331
+ }
332
+
333
+ @mixin strong {
334
+ font-weight: 400;
335
+ color: var(--tide-booking-black);
336
+ }
337
+
338
+ @mixin small {
339
+ font-size: var(--tide-booking-small-font-size--mobile);
340
+
341
+ @include media-xs {
342
+ font-size: var(--tide-booking-small-font-size--desktop);
343
+ }
344
+ }
345
+
346
+ @mixin border-radius {
347
+ border-radius: 5px;
348
+ }
349
+
350
+ @mixin lineclamp($lineclamp-amount: 1) {
351
+ display: block;
352
+ display: -webkit-box;
353
+ -webkit-line-clamp: $lineclamp-amount;
354
+ overflow: hidden;
355
+ text-overflow: ellipsis;
356
+ -webkit-box-orient: vertical;
357
+ /* autoprefixer: off */
358
+ }
359
+
360
+ @mixin placeholder {
361
+ font-style: italic;
362
+ color: var(--tide-booking-gray-dark);
363
+ }
364
+
365
+
366
+ @mixin hover-to-color {
367
+ &:hover {
368
+ color: var(--tide-booking-black);
369
+ }
370
+ }
371
+
372
+ @mixin focus-to-color {
373
+ &:focus,
374
+ &:active {
375
+ color: var(--tide-booking-black);
376
+ }
377
+ }
378
+
379
+ // TYPOGRAPHY
380
+ @mixin heading {
381
+ margin: 0;
382
+ display: inline-flex;
383
+ flex-flow: row wrap;
384
+ font-family: var(--tide-booking-font-heading);
385
+ font-weight: normal;
386
+ line-height: 1.35;
387
+ word-break: break-word;
388
+ color: var(--tide-booking-black);
389
+
390
+ &:empty {
391
+ display: none;
392
+ }
393
+
394
+ em {
395
+ width: 100%;
396
+ font-family: var(--tide-booking-font-handwritten);
397
+ font-style: normal;
398
+ }
399
+ }
400
+
401
+ @mixin h1 {
402
+ font-size: var(--tide-booking-h1);
403
+
404
+ @include media-sm {
405
+ font-size: var(--tide-booking-h1-sm);
406
+ }
407
+
408
+ @include media-xl {
409
+ font-size: var(--tide-booking-h1-xl);
410
+ }
411
+ }
412
+
413
+ @mixin h2 {
414
+ font-size: var(--tide-booking-h2);
415
+
416
+ @include media-sm {
417
+ font-size: var(--tide-booking-h2-sm);
418
+ }
419
+
420
+ @include media-xl {
421
+ font-size: var(--tide-booking-h2-xl);
422
+ }
423
+ }
424
+
425
+ @mixin h3 {
426
+ font-size: var(--tide-booking-h3);
427
+
428
+ @include media-sm {
429
+ font-size: var(--tide-booking-h3-sm);
430
+ }
431
+
432
+ @include media-xl {
433
+ font-size: var(--tide-booking-h3-xl);
434
+ }
435
+ }
436
+
437
+ @mixin h4 {
438
+ font-size: var(--tide-booking-h4);
439
+
440
+ @include media-sm {
441
+ font-size: var(--tide-booking-h4-sm);
442
+ }
443
+
444
+ @include media-xl {
445
+ font-size: var(--tide-booking-h4-xl);
446
+ }
447
+ }
448
+
449
+ @mixin h5 {
450
+ font-size: var(--tide-booking-h5);
451
+
452
+ @include media-xl {
453
+ font-size: var(--tide-booking-h5-xl);
454
+ }
455
+ }
456
+
457
+ @mixin h6 {
458
+ font-size: var(--h6);
459
+
460
+ @include media-md {
461
+ font-size: var(--h6-md);
462
+ }
463
+ }
464
+
465
+
466
+
467
+ // ANIMATIONS
468
+ @mixin transitionEasing($duration: 0.35s) {
469
+ transition-duration: $duration;
470
+ transition-property: width, height, transform, border, fill, color, background,
471
+ box-shadow, opacity;
472
+ transition-timing-function: ease-out;
473
+ }
474
+
475
+ // INTERACTIONS
476
+ @mixin hoverToColor() {
477
+ &:hover {
478
+ opacity: 1;
479
+ outline: none;
480
+ fill: var(--tide-booking-color-primary);
481
+ color: var(--tide-booking-color-primary);
482
+ background-color: var(--tide-booking-transparent);
483
+ }
484
+ }
485
+
486
+ @mixin activeToColor () {
487
+ &:active {
488
+ opacity: 1;
489
+ outline: none;
490
+ fill: var(--tide-booking-color-primary-dark);
491
+ color: var(--tide-booking-color-primary-dark);
492
+ background-color: var(--tide-booking-transparent);
493
+ }
494
+ }
495
+
496
+ @mixin slideDown($duration: 0.35s) {
497
+ @keyframes in {
498
+ 0% {
499
+ transform: translate3D(0, -100%, 0);
500
+ }
501
+
502
+ 100% {
503
+ transform: translate3D(0, 0, 0);
504
+ }
505
+ }
506
+
507
+ @keyframes out {
508
+ 0% {
509
+ transform: translate3D(0, 0, 0);
510
+ }
511
+
512
+ 100% {
513
+ transform: translate3D(0, -100%, 0);
514
+ }
515
+ }
516
+ }
517
+
518
+