@qite/tide-components 1.0.13-preview.0 → 1.0.14

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 (93) hide show
  1. package/build/build-cjs/index.js +1664 -2414
  2. package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +1 -1
  3. package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -2
  4. package/build/build-cjs/src/booking-wizard/types.d.ts +3 -23
  5. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +0 -2
  6. package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +0 -1
  7. package/build/build-cjs/src/search-results/components/itinerary/itinerary-utils.d.ts +0 -1
  8. package/build/build-cjs/src/search-results/types.d.ts +0 -8
  9. package/build/build-cjs/src/search-results/utils/traject-utils.d.ts +0 -7
  10. package/build/build-cjs/src/shared/booking/travelers-form.d.ts +8 -13
  11. package/build/build-esm/index.js +1666 -2416
  12. package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +1 -1
  13. package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -2
  14. package/build/build-esm/src/booking-wizard/types.d.ts +3 -23
  15. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +0 -2
  16. package/build/build-esm/src/search-results/components/itinerary/index.d.ts +0 -1
  17. package/build/build-esm/src/search-results/components/itinerary/itinerary-utils.d.ts +0 -1
  18. package/build/build-esm/src/search-results/types.d.ts +0 -8
  19. package/build/build-esm/src/search-results/utils/traject-utils.d.ts +0 -7
  20. package/build/build-esm/src/shared/booking/travelers-form.d.ts +8 -13
  21. package/package.json +2 -2
  22. package/styles/abstracts/_mixins.scss +74 -74
  23. package/styles/abstracts/_variables.scss +57 -57
  24. package/styles/base/_fonts.scss +2 -2
  25. package/styles/base/_normalize.scss +227 -227
  26. package/styles/base/_typography.scss +35 -35
  27. package/styles/booking-joker-variables.scss +596 -596
  28. package/styles/booking-product-variables.scss +330 -330
  29. package/styles/booking-product.scss +438 -438
  30. package/styles/booking-qsm-variables.scss +501 -501
  31. package/styles/booking-qsm.scss +52 -52
  32. package/styles/booking-search-results-variables.scss +734 -734
  33. package/styles/booking-search-results.scss +53 -53
  34. package/styles/booking-wizard-variables.scss +603 -603
  35. package/styles/booking-wizard.scss +61 -61
  36. package/styles/components/_accordion.scss +67 -67
  37. package/styles/components/_animations.scss +39 -39
  38. package/styles/components/_base.scss +107 -107
  39. package/styles/components/_booking.scss +906 -906
  40. package/styles/components/_breadcrumb.scss +92 -92
  41. package/styles/components/_button.scss +238 -238
  42. package/styles/components/_checkbox.scss +230 -230
  43. package/styles/components/_contact.scss +255 -255
  44. package/styles/components/_content.scss +336 -336
  45. package/styles/components/_cta.scss +238 -238
  46. package/styles/components/_date-list.scss +41 -41
  47. package/styles/components/_date-range-picker.scss +223 -223
  48. package/styles/components/_decrement-increment.scss +35 -35
  49. package/styles/components/_dropdown.scss +77 -77
  50. package/styles/components/_error.scss +50 -50
  51. package/styles/components/_faq.scss +30 -30
  52. package/styles/components/_flight-option.scss +1444 -1432
  53. package/styles/components/_flyin.scss +830 -830
  54. package/styles/components/_footer.scss +135 -135
  55. package/styles/components/_form.scss +1704 -1704
  56. package/styles/components/_gallery.scss +317 -317
  57. package/styles/components/_header.scss +113 -113
  58. package/styles/components/_image-with-text.scss +206 -206
  59. package/styles/components/_img-slider.scss +175 -175
  60. package/styles/components/_info-message.scss +75 -75
  61. package/styles/components/_input.scss +35 -35
  62. package/styles/components/_list.scss +185 -185
  63. package/styles/components/_loader.scss +152 -152
  64. package/styles/components/_login.scss +140 -140
  65. package/styles/components/_map-view.scss +1100 -1100
  66. package/styles/components/_mixins.scss +579 -579
  67. package/styles/components/_navbar.scss +765 -765
  68. package/styles/components/_passenger-picker.scss +306 -306
  69. package/styles/components/_phone-input.scss +8 -8
  70. package/styles/components/_placeholders.scss +165 -165
  71. package/styles/components/_pricing-summary.scss +163 -163
  72. package/styles/components/_qsm.scss +17 -17
  73. package/styles/components/_radiobutton.scss +170 -170
  74. package/styles/components/_search.scss +2197 -2197
  75. package/styles/components/_select-wrapper.scss +81 -81
  76. package/styles/components/_slider.scss +120 -120
  77. package/styles/components/_spinner.scss +29 -29
  78. package/styles/components/_step-indicators.scss +187 -187
  79. package/styles/components/_table.scss +81 -81
  80. package/styles/components/_tide-form.scss +578 -578
  81. package/styles/components/_tree.scss +648 -648
  82. package/styles/components/_typeahead.scss +275 -275
  83. package/styles/components/_variables.scss +89 -89
  84. package/styles/content-blocks-variables.scss +543 -543
  85. package/styles/content-blocks.scss +66 -66
  86. package/styles/font.scss +2 -2
  87. package/styles/qsm/_calendar.scss +274 -274
  88. package/styles/qsm/_qsm.scss +1097 -1097
  89. package/styles/search.scss +1200 -1200
  90. package/styles/tide-form-variables.scss +275 -275
  91. package/styles/tide-form.scss +56 -56
  92. package/build/build-cjs/src/search-results/utils/booked-entry-utils.d.ts +0 -20
  93. package/build/build-esm/src/search-results/utils/booked-entry-utils.d.ts +0 -20
@@ -1,830 +1,830 @@
1
- @use '../components/mixins' as mixins;
2
-
3
- * {
4
- box-sizing: border-box;
5
- }
6
-
7
- .flyin {
8
- position: fixed;
9
- inset: 0;
10
- background: rgba(0, 0, 0, 0);
11
- display: flex;
12
- justify-content: flex-end;
13
- z-index: 100001;
14
- pointer-events: none;
15
- transition: background 0.2s ease;
16
-
17
- &--active {
18
- background: rgba(0, 0, 0, 0.6);
19
- pointer-events: auto;
20
- }
21
-
22
- &--medium {
23
- .flyin__panel {
24
- @include mixins.media-sm {
25
- width: 100%;
26
- max-width: 1200px;
27
- }
28
-
29
- .search__results__cards {
30
- @include mixins.media-md {
31
- grid-template-columns: repeat(2, 1fr);
32
- }
33
-
34
- @include mixins.media-lg {
35
- grid-template-columns: repeat(3, 1fr);
36
- }
37
- }
38
- }
39
- }
40
-
41
- &--large {
42
- .flyin__panel {
43
- @include mixins.media-sm {
44
- width: 80%;
45
- }
46
- }
47
-
48
- .flyin__acco__cards {
49
- @include mixins.media-lg {
50
- grid-template-columns: repeat(3, 1fr);
51
- }
52
- }
53
- }
54
-
55
- &--flight {
56
- .flyin__panel {
57
- @include mixins.media-sm {
58
- width: 100%;
59
- max-width: 1200px;
60
- }
61
- }
62
-
63
- .flyin__content {
64
- gap: 30px;
65
- }
66
-
67
- .search__results__cards {
68
- @include mixins.media-md {
69
- grid-template-columns: repeat(1, 1fr);
70
- }
71
-
72
- @include mixins.media-lg {
73
- grid-template-columns: repeat(1, 1fr);
74
- }
75
- }
76
- }
77
-
78
- &__panel {
79
- background: var(--tide-booking-gray-xlight);
80
- height: 100%;
81
- width: 100%;
82
- max-width: 100%;
83
- transform: translateX(100%);
84
- opacity: 0;
85
- transition: transform 0.4s ease, opacity 0.4s ease;
86
- box-shadow: none;
87
- border-radius: 0;
88
- position: relative;
89
- display: flex;
90
- flex-direction: column;
91
- overflow-y: auto;
92
- overflow-x: hidden;
93
- @extend %scrollbar-thin;
94
-
95
- @include mixins.media-sm {
96
- width: 80%;
97
- box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);
98
- }
99
-
100
- @include mixins.media-lg {
101
- width: 850px;
102
- }
103
-
104
- &--active {
105
- transform: translateX(0%);
106
- opacity: 1;
107
- }
108
- }
109
-
110
- &__close {
111
- font-size: 14px;
112
- cursor: pointer;
113
- color: var(--tide-booking-color-primary);
114
- text-decoration: underline;
115
- }
116
-
117
- &__content {
118
- // background: var(--tide-booking-gray-background-light);
119
- position: relative;
120
- padding: 15px;
121
- padding-bottom: 0px;
122
-
123
- @include mixins.media-sm {
124
- padding: 30px;
125
- padding-bottom: 0px;
126
- }
127
-
128
- & + .flyin__content {
129
- padding: 0 15px;
130
- padding-bottom: 0px;
131
-
132
- @include mixins.media-sm {
133
- padding: 0 30px;
134
- padding-bottom: 0px;
135
- }
136
- }
137
-
138
- &-title {
139
- margin: 0px;
140
- font-weight: 700;
141
-
142
- &-row {
143
- display: flex;
144
- justify-content: space-between;
145
- align-items: center;
146
- padding-bottom: 15px;
147
- }
148
-
149
- &__back {
150
- display: flex;
151
- align-items: center;
152
- gap: 3px;
153
- cursor: pointer;
154
-
155
- svg {
156
- transform: rotate(180deg);
157
- }
158
- }
159
- }
160
-
161
- &-arrow {
162
- height: 30px;
163
- width: 30px;
164
- background: var(--tide-booking-white);
165
- border-radius: 50%;
166
- cursor: pointer;
167
- display: flex;
168
- justify-content: center;
169
- align-items: center;
170
- box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
171
- transition: all 0.3s ease;
172
-
173
- &.is-disabled {
174
- opacity: 0.4;
175
- pointer-events: none;
176
- cursor: not-allowed;
177
- }
178
-
179
- &:hover {
180
- background: var(--tide-booking-color-primary);
181
-
182
- .flyin__content-arrow-icon {
183
- color: var(--tide-booking-white);
184
-
185
- &-- {
186
- &forward {
187
- transform: rotate(180deg);
188
- }
189
- }
190
- }
191
- }
192
-
193
- &-row {
194
- display: flex;
195
- gap: 15px;
196
- width: auto;
197
- justify-content: end;
198
- align-items: center;
199
- flex: 0 0 auto;
200
- margin-bottom: 10px;
201
-
202
- @include mixins.media-sm {
203
- justify-content: start;
204
- margin-bottom: 0;
205
- }
206
- }
207
-
208
- &-icon {
209
- fill: var(--tide-booking-color-primary-light);
210
- transition: all 0.3s ease;
211
-
212
- &--forward {
213
- transform: rotate(180deg);
214
- }
215
- }
216
- }
217
-
218
- &-text {
219
- font-size: 12px;
220
- color: var(--tide-booking-gray-dark);
221
-
222
- &-icon {
223
- position: absolute;
224
- top: 0;
225
- left: -20px;
226
- transform: translateY(50%);
227
-
228
- &-row {
229
- display: flex;
230
- width: 100%;
231
- flex-direction: column;
232
- align-items: flex-start;
233
- flex: 0 0 auto;
234
- // order: 2;
235
- margin-bottom: 10px;
236
-
237
- @include mixins.media-sm {
238
- width: auto;
239
- gap: 15px;
240
- flex-direction: row;
241
- align-items: center;
242
- margin-bottom: 0;
243
- }
244
-
245
- img {
246
- width: auto;
247
- height: 80px;
248
- }
249
-
250
- span {
251
- font-size: var(--tide-booking-black);
252
- color: var(--tide-booking-gray-dark);
253
- }
254
- }
255
- }
256
-
257
- &-title {
258
- font-size: 18px;
259
- font-weight: 700;
260
-
261
- &-row {
262
- position: relative;
263
-
264
- strong {
265
- font-weight: 600;
266
- }
267
- }
268
- }
269
-
270
- &-row {
271
- display: flex;
272
- justify-content: flex-end;
273
- align-items: center;
274
- // margin-bottom: 15px;
275
- flex-wrap: wrap;
276
- margin-right: 0;
277
- padding-top: 15px;
278
- border-top: 1.5px solid var(--tide-booking-gray-background-light);
279
-
280
- @include mixins.media-sm {
281
- row-gap: 10px;
282
- column-gap: 50px;
283
- justify-content: space-between;
284
- }
285
- }
286
-
287
- &-col {
288
- display: flex;
289
- flex-direction: column;
290
- gap: 0.75rem;
291
- flex: 0 0 auto;
292
- width: 100%;
293
- order: 1;
294
- margin-bottom: 10px;
295
- margin-top: 5px;
296
-
297
- @include mixins.media-sm {
298
- width: auto;
299
- order: 0;
300
- margin-bottom: 0px;
301
- margin-top: 0px;
302
- }
303
- }
304
- }
305
-
306
- &-cards {
307
- display: flex;
308
- gap: 15px;
309
- // overflow-x: auto;
310
- // scroll-behavior: smooth;
311
- width: max-content;
312
- padding: 15px;
313
- // -ms-overflow-style: none;
314
- // scrollbar-width: none;
315
-
316
- @include mixins.media-sm {
317
- gap: 30px;
318
- padding: 15px 30px;
319
- }
320
-
321
- &-wrapper {
322
- position: relative;
323
- // scrollbar-width: none;
324
- // -ms-overflow-style: none;
325
- overflow-x: scroll;
326
- overflow-y: visible;
327
- min-height: min-content;
328
-
329
- // &::-webkit-scrollbar {
330
- // display: none;
331
- // }
332
- }
333
-
334
- /* Hide scrollbar */
335
- // &::-webkit-scrollbar {
336
- // display: none;
337
- // }
338
- }
339
-
340
- &-card {
341
- display: flex;
342
- flex-direction: column;
343
- padding-bottom: 20px;
344
- border-radius: 24px;
345
- background: var(--tide-booking-white);
346
- box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
347
- }
348
-
349
- // Slicing with image and usps,
350
- // not available in the current API response.
351
- &-card--flight {
352
- // height: 522px;
353
- width: 100%;
354
- max-width: 315px;
355
- min-width: 315px;
356
-
357
- border-radius: 16px;
358
- box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
359
- display: flex;
360
- flex-direction: column;
361
- justify-content: space-between;
362
- overflow: hidden;
363
- background: var(--tide-booking-white);
364
- transition: all 0.4s ease;
365
- cursor: pointer;
366
-
367
- @include mixins.media-sm {
368
- max-width: 345px;
369
- min-width: 345px;
370
- }
371
-
372
- &:hover {
373
- .flyin__content-card-top {
374
- background: var(--tide-booking-color-primary-fade);
375
- }
376
-
377
- .flyin__content-card-button {
378
- // background: var(--tide-booking-color-primary);
379
- color: var(--tide-booking-white);
380
-
381
- .cta--select {
382
- background: var(--tide-booking-cta-background-select-hover);
383
- }
384
- }
385
- }
386
-
387
- &.flyin__content-card--selected {
388
- .flyin__content-card-top {
389
- background: var(--tide-booking-color-primary-gradient);
390
- border-bottom: none;
391
- }
392
-
393
- .flyin__content-card-top-price {
394
- color: var(--tide-booking-white);
395
- }
396
-
397
- .flyin__content-card-top-tag {
398
- color: var(--tide-booking-white);
399
- }
400
-
401
- .flyin__content-card-middle {
402
- // border-left: 4px solid var(--tide-booking-color-primary);
403
- // border-right: 4px solid var(--tide-booking-color-primary);
404
- }
405
-
406
- &:hover {
407
- .flyin__content {
408
- cursor: default;
409
- }
410
-
411
- .flyin__content-card-top {
412
- background: var(--tide-booking-color-primary-gradient);
413
- }
414
- }
415
- }
416
-
417
- .flyin__content-card-top {
418
- min-height: 60px;
419
- width: 100%;
420
- background: var(--tide-booking-color-primary);
421
- display: flex;
422
- justify-content: space-between;
423
- align-items: end;
424
- padding: 0 15px 12px 15px;
425
- background: var(--tide-booking-white);
426
- transition: all 0.4s ease;
427
-
428
- &-price {
429
- font-size: 18px;
430
- font-weight: 700;
431
- color: var(--tide-booking-black);
432
-
433
- &--decrease {
434
- color: green;
435
- }
436
-
437
- &--increase {
438
- color: red;
439
- }
440
- }
441
-
442
- &-tag {
443
- font-size: 24px;
444
- color: var(--tide-booking-black);
445
- /* color: variables.$white; */
446
- font-weight: 700;
447
- }
448
- }
449
-
450
- .flyin__content-card-middle {
451
- height: 430px;
452
- background: var(--tide-booking-white);
453
- transition: all 0.4s ease;
454
-
455
- &-rows {
456
- display: flex;
457
- flex-direction: column;
458
- gap: 10px;
459
- padding: 15px 15px 0 15px;
460
- max-height: 430px;
461
- }
462
-
463
- &-row {
464
- display: flex;
465
- justify-content: space-between;
466
- align-items: center;
467
- padding-bottom: 5px;
468
- border-bottom: 1px dashed var(--tide-booking-color-primary-light);
469
-
470
- &-left {
471
- font-weight: 500;
472
- color: var(--tide-booking-black);
473
- }
474
-
475
- &-right {
476
- font-weight: 300;
477
- }
478
- }
479
- }
480
-
481
- .flyin__content-card-bottom {
482
- height: 30px;
483
- background: var(--tide-booking-color-primary);
484
- display: flex;
485
- justify-content: center;
486
- align-items: center;
487
- color: var(--tide-booking-white);
488
- font-size: 14px;
489
- transition: all 0.4s ease;
490
- }
491
-
492
- .flyin__content-card-button {
493
- // border: 1.25px solid var(--tide-booking-color-primary);
494
- border-radius: 3px;
495
- display: flex;
496
- justify-content: center;
497
- align-items: center;
498
- color: var(--tide-booking-color-primary);
499
- padding: 15px;
500
- cursor: pointer;
501
- font-size: 14px;
502
- transition: all 0.2s ease;
503
- }
504
- }
505
-
506
- &-data {
507
- display: flex;
508
- flex-direction: column;
509
- gap: 10px;
510
- height: 300px;
511
- overflow-y: auto;
512
- @extend %scrollbar-thin;
513
-
514
- &__title {
515
- font-size: 18px;
516
- color: var(--tide-booking-gray-dark);
517
- }
518
-
519
- &__item {
520
- display: grid;
521
- grid-template-columns: auto 1fr auto;
522
- grid-template-rows: auto;
523
- gap: 10px;
524
- align-items: flex-start;
525
-
526
- &-icon {
527
- // margin-top: 3px;
528
- color: var(--tide-booking-black);
529
-
530
- // &--other {
531
- // margin-top: 0;
532
- // }
533
- }
534
-
535
- &-content {
536
- display: flex;
537
- flex-direction: column;
538
- gap: 3px;
539
-
540
- &-title {
541
- font-size: 16px;
542
- font-weight: 500;
543
- margin-top: 0.125rem;
544
- color: var(--tide-booking-black);
545
- }
546
-
547
- &-description {
548
- font-size: 16px;
549
- font-weight: 300;
550
- color: var(--tide-booking-gray-dark);
551
-
552
- @include mixins.media-sm {
553
- overflow-wrap: break-word;
554
- // inline-size: 60vw;
555
- }
556
-
557
- &--last {
558
- margin-top: 5px;
559
- }
560
-
561
- &--list {
562
- list-style-type: disc;
563
- padding-left: 10px;
564
- margin-top: 5px;
565
-
566
- li {
567
- margin-bottom: 5px;
568
- }
569
- }
570
- }
571
- }
572
-
573
- &-price {
574
- font-size: 16px;
575
- color: var(--tide-booking-gray-dark);
576
- white-space: nowrap;
577
- margin-left: 15px;
578
- margin-top: 5px;
579
- }
580
- }
581
- }
582
-
583
- &--columns {
584
- display: flex;
585
- gap: 10px;
586
-
587
- .search__results__wrapper {
588
- width: 100%;
589
- }
590
-
591
- .search__results__cards {
592
- grid-template-rows: auto;
593
- align-content: flex-start;
594
- }
595
- }
596
-
597
- .cta--filter {
598
- @include mixins.media-lg {
599
- display: none;
600
- }
601
- }
602
-
603
- .search__result {
604
- &-row {
605
- justify-content: flex-start;
606
- gap: 15px;
607
- flex-wrap: wrap;
608
-
609
- &-filter {
610
- @include mixins.media-xs {
611
- margin-left: auto;
612
- }
613
- }
614
- }
615
- }
616
- }
617
-
618
- &__button {
619
- height: 30px;
620
- width: 100%;
621
- border: 1.25px solid var(--tide-booking-color-primary);
622
- border-radius: 3px;
623
- display: flex;
624
- justify-content: center;
625
- align-items: center;
626
- background: var(--tide-booking-color-primary);
627
- color: var(--tide-booking-white);
628
- margin: 1rem;
629
- cursor: pointer;
630
- font-size: 14px;
631
- transition: all 0.2s ease;
632
-
633
- @include mixins.media-sm {
634
- width: 216px;
635
- }
636
-
637
- &-wrapper {
638
- display: flex;
639
- justify-content: flex-end;
640
-
641
- .cta {
642
- width: auto;
643
- min-width: 150px;
644
- }
645
-
646
- &--white {
647
- @include mixins.media-sm {
648
- }
649
- }
650
- }
651
-
652
- &:hover {
653
- background: var(--tide-booking-color-primary);
654
- border: var(--tide-booking-color-primary);
655
- }
656
-
657
- &--white {
658
- background: var(--tide-booking-white);
659
- color: var(--tide-booking-color-primary);
660
- margin-top: 0;
661
-
662
- &:hover {
663
- background: var(--tide-booking-color-primary-light);
664
- border: var(--tide-booking-color-primary-light);
665
- }
666
- }
667
- }
668
-
669
- &__footer {
670
- display: flex;
671
- justify-content: space-between;
672
- align-items: center;
673
-
674
- position: sticky;
675
- bottom: 0;
676
- padding: 15px;
677
-
678
- background: var(--tide-booking-white);
679
-
680
- z-index: 1;
681
-
682
- @include mixins.media-sm {
683
- margin-top: auto;
684
- padding: 30px;
685
- }
686
-
687
- &__price {
688
- font-size: 18px;
689
- font-weight: 700;
690
- color: var(--tide-booking-black);
691
- }
692
- }
693
-
694
- &__acco {
695
- padding-bottom: 30px;
696
-
697
- &__cards {
698
- display: grid;
699
- grid-template-columns: repeat(1, 1fr);
700
- gap: 30px;
701
-
702
- @include mixins.media-sm {
703
- grid-template-columns: repeat(2, 1fr);
704
- }
705
-
706
- // @include mixins.media-xxl {
707
- // grid-template-columns: repeat(3, 1fr);
708
- // }
709
- }
710
-
711
- &__card {
712
- display: flex;
713
- flex-direction: column;
714
- gap: 15px;
715
- border-radius: 24px;
716
- background: var(--tide-booking-white);
717
- box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
718
- padding-bottom: 20px;
719
- }
720
-
721
- &__img {
722
- width: 100%;
723
- height: 100%;
724
- object-fit: cover;
725
-
726
- &__wrapper {
727
- position: relative;
728
- width: 100%;
729
- height: 200px;
730
- overflow: hidden;
731
- border-radius: 24px 24px 0 0;
732
- background-color: #f5f5f5;
733
- }
734
- }
735
-
736
- &__usps {
737
- display: flex;
738
- flex-wrap: wrap;
739
- gap: 15px;
740
- }
741
-
742
- &__usp {
743
- display: flex;
744
- align-items: center;
745
- gap: 3px;
746
- }
747
-
748
- &__price {
749
- font-family: var(--tide-booking-search-hotel-card-price-font-family);
750
- font-weight: var(--tide-booking-search-hotel-card-price-font-weight);
751
- color: var(--tide-booking-search-hotel-card-price-color);
752
- font-size: 20px;
753
- white-space: nowrap;
754
-
755
- // &__wrapper {
756
- // position: absolute;
757
- // bottom: 0px;
758
- // right: 0px;
759
- // background: var(--tide-booking-search-hotel-card-price-background-color);
760
- // display: flex;
761
- // flex-flow: column nowrap;
762
- // align-items: center;
763
- // justify-content: center;
764
- // gap: 5px;
765
- // padding: 5px 20px;
766
- // border-radius: 5px 0 0 0;
767
- // box-shadow: var(--tide-booking-search-hotel-card-price-box-shadow);
768
- // }
769
- &__wrapper {
770
- display: flex;
771
- flex-flow: column nowrap;
772
- align-items: center;
773
- justify-content: center;
774
- gap: 5px;
775
- }
776
-
777
- &__label {
778
- font-size: 12px;
779
- font-weight: var(--tide-booking-search-hotel-card-price-label-font-weight);
780
- color: var(--tide-booking-search-hotel-card-price-label-color);
781
- }
782
-
783
- &--increase {
784
- color: var(--tide-booking-price-increase);
785
- }
786
-
787
- &--decrease {
788
- color: var(--tide-booking-price-decrease);
789
- }
790
- }
791
-
792
- &__content {
793
- padding: 20px 20px 0px 20px;
794
- display: flex;
795
- flex-direction: column;
796
- justify-content: space-between;
797
- gap: 10px;
798
- }
799
-
800
- &__footer {
801
- margin-top: auto;
802
- padding: 0 20px;
803
- display: flex;
804
- flex-direction: column;
805
- gap: 10px;
806
-
807
- &__actions {
808
- display: flex;
809
- gap: 15px;
810
- }
811
- }
812
-
813
- .dropdown {
814
- width: 100%;
815
-
816
- &-menu {
817
- top: 45px;
818
- }
819
-
820
- &::after {
821
- content: '';
822
- display: none;
823
- }
824
-
825
- &__input {
826
- gap: 0;
827
- }
828
- }
829
- }
830
- }
1
+ @use '../components/mixins' as mixins;
2
+
3
+ * {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ .flyin {
8
+ position: fixed;
9
+ inset: 0;
10
+ background: rgba(0, 0, 0, 0);
11
+ display: flex;
12
+ justify-content: flex-end;
13
+ z-index: 100001;
14
+ pointer-events: none;
15
+ transition: background 0.2s ease;
16
+
17
+ &--active {
18
+ background: rgba(0, 0, 0, 0.6);
19
+ pointer-events: auto;
20
+ }
21
+
22
+ &--medium {
23
+ .flyin__panel {
24
+ @include mixins.media-sm {
25
+ width: 100%;
26
+ max-width: 1200px;
27
+ }
28
+
29
+ .search__results__cards {
30
+ @include mixins.media-md {
31
+ grid-template-columns: repeat(2, 1fr);
32
+ }
33
+
34
+ @include mixins.media-lg {
35
+ grid-template-columns: repeat(3, 1fr);
36
+ }
37
+ }
38
+ }
39
+ }
40
+
41
+ &--large {
42
+ .flyin__panel {
43
+ @include mixins.media-sm {
44
+ width: 80%;
45
+ }
46
+ }
47
+
48
+ .flyin__acco__cards {
49
+ @include mixins.media-lg {
50
+ grid-template-columns: repeat(3, 1fr);
51
+ }
52
+ }
53
+ }
54
+
55
+ &--flight {
56
+ .flyin__panel {
57
+ @include mixins.media-sm {
58
+ width: 100%;
59
+ max-width: 1200px;
60
+ }
61
+ }
62
+
63
+ .flyin__content {
64
+ gap: 30px;
65
+ }
66
+
67
+ .search__results__cards {
68
+ @include mixins.media-md {
69
+ grid-template-columns: repeat(1, 1fr);
70
+ }
71
+
72
+ @include mixins.media-lg {
73
+ grid-template-columns: repeat(1, 1fr);
74
+ }
75
+ }
76
+ }
77
+
78
+ &__panel {
79
+ background: var(--tide-booking-gray-xlight);
80
+ height: 100%;
81
+ width: 100%;
82
+ max-width: 100%;
83
+ transform: translateX(100%);
84
+ opacity: 0;
85
+ transition: transform 0.4s ease, opacity 0.4s ease;
86
+ box-shadow: none;
87
+ border-radius: 0;
88
+ position: relative;
89
+ display: flex;
90
+ flex-direction: column;
91
+ overflow-y: auto;
92
+ overflow-x: hidden;
93
+ @extend %scrollbar-thin;
94
+
95
+ @include mixins.media-sm {
96
+ width: 80%;
97
+ box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);
98
+ }
99
+
100
+ @include mixins.media-lg {
101
+ width: 850px;
102
+ }
103
+
104
+ &--active {
105
+ transform: translateX(0%);
106
+ opacity: 1;
107
+ }
108
+ }
109
+
110
+ &__close {
111
+ font-size: 14px;
112
+ cursor: pointer;
113
+ color: var(--tide-booking-color-primary);
114
+ text-decoration: underline;
115
+ }
116
+
117
+ &__content {
118
+ // background: var(--tide-booking-gray-background-light);
119
+ position: relative;
120
+ padding: 15px;
121
+ padding-bottom: 0px;
122
+
123
+ @include mixins.media-sm {
124
+ padding: 30px;
125
+ padding-bottom: 0px;
126
+ }
127
+
128
+ & + .flyin__content {
129
+ padding: 0 15px;
130
+ padding-bottom: 0px;
131
+
132
+ @include mixins.media-sm {
133
+ padding: 0 30px;
134
+ padding-bottom: 0px;
135
+ }
136
+ }
137
+
138
+ &-title {
139
+ margin: 0px;
140
+ font-weight: 700;
141
+
142
+ &-row {
143
+ display: flex;
144
+ justify-content: space-between;
145
+ align-items: center;
146
+ padding-bottom: 15px;
147
+ }
148
+
149
+ &__back {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 3px;
153
+ cursor: pointer;
154
+
155
+ svg {
156
+ transform: rotate(180deg);
157
+ }
158
+ }
159
+ }
160
+
161
+ &-arrow {
162
+ height: 30px;
163
+ width: 30px;
164
+ background: var(--tide-booking-white);
165
+ border-radius: 50%;
166
+ cursor: pointer;
167
+ display: flex;
168
+ justify-content: center;
169
+ align-items: center;
170
+ box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.1);
171
+ transition: all 0.3s ease;
172
+
173
+ &.is-disabled {
174
+ opacity: 0.4;
175
+ pointer-events: none;
176
+ cursor: not-allowed;
177
+ }
178
+
179
+ &:hover {
180
+ background: var(--tide-booking-color-primary);
181
+
182
+ .flyin__content-arrow-icon {
183
+ color: var(--tide-booking-white);
184
+
185
+ &-- {
186
+ &forward {
187
+ transform: rotate(180deg);
188
+ }
189
+ }
190
+ }
191
+ }
192
+
193
+ &-row {
194
+ display: flex;
195
+ gap: 15px;
196
+ width: auto;
197
+ justify-content: end;
198
+ align-items: center;
199
+ flex: 0 0 auto;
200
+ margin-bottom: 10px;
201
+
202
+ @include mixins.media-sm {
203
+ justify-content: start;
204
+ margin-bottom: 0;
205
+ }
206
+ }
207
+
208
+ &-icon {
209
+ fill: var(--tide-booking-color-primary-light);
210
+ transition: all 0.3s ease;
211
+
212
+ &--forward {
213
+ transform: rotate(180deg);
214
+ }
215
+ }
216
+ }
217
+
218
+ &-text {
219
+ font-size: 12px;
220
+ color: var(--tide-booking-gray-dark);
221
+
222
+ &-icon {
223
+ position: absolute;
224
+ top: 0;
225
+ left: -20px;
226
+ transform: translateY(50%);
227
+
228
+ &-row {
229
+ display: flex;
230
+ width: 100%;
231
+ flex-direction: column;
232
+ align-items: flex-start;
233
+ flex: 0 0 auto;
234
+ // order: 2;
235
+ margin-bottom: 10px;
236
+
237
+ @include mixins.media-sm {
238
+ width: auto;
239
+ gap: 15px;
240
+ flex-direction: row;
241
+ align-items: center;
242
+ margin-bottom: 0;
243
+ }
244
+
245
+ img {
246
+ width: auto;
247
+ height: 80px;
248
+ }
249
+
250
+ span {
251
+ font-size: var(--tide-booking-black);
252
+ color: var(--tide-booking-gray-dark);
253
+ }
254
+ }
255
+ }
256
+
257
+ &-title {
258
+ font-size: 18px;
259
+ font-weight: 700;
260
+
261
+ &-row {
262
+ position: relative;
263
+
264
+ strong {
265
+ font-weight: 600;
266
+ }
267
+ }
268
+ }
269
+
270
+ &-row {
271
+ display: flex;
272
+ justify-content: flex-end;
273
+ align-items: center;
274
+ // margin-bottom: 15px;
275
+ flex-wrap: wrap;
276
+ margin-right: 0;
277
+ padding-top: 15px;
278
+ border-top: 1.5px solid var(--tide-booking-gray-background-light);
279
+
280
+ @include mixins.media-sm {
281
+ row-gap: 10px;
282
+ column-gap: 50px;
283
+ justify-content: space-between;
284
+ }
285
+ }
286
+
287
+ &-col {
288
+ display: flex;
289
+ flex-direction: column;
290
+ gap: 0.75rem;
291
+ flex: 0 0 auto;
292
+ width: 100%;
293
+ order: 1;
294
+ margin-bottom: 10px;
295
+ margin-top: 5px;
296
+
297
+ @include mixins.media-sm {
298
+ width: auto;
299
+ order: 0;
300
+ margin-bottom: 0px;
301
+ margin-top: 0px;
302
+ }
303
+ }
304
+ }
305
+
306
+ &-cards {
307
+ display: flex;
308
+ gap: 15px;
309
+ // overflow-x: auto;
310
+ // scroll-behavior: smooth;
311
+ width: max-content;
312
+ padding: 15px;
313
+ // -ms-overflow-style: none;
314
+ // scrollbar-width: none;
315
+
316
+ @include mixins.media-sm {
317
+ gap: 30px;
318
+ padding: 15px 30px;
319
+ }
320
+
321
+ &-wrapper {
322
+ position: relative;
323
+ // scrollbar-width: none;
324
+ // -ms-overflow-style: none;
325
+ overflow-x: scroll;
326
+ overflow-y: visible;
327
+ min-height: min-content;
328
+
329
+ // &::-webkit-scrollbar {
330
+ // display: none;
331
+ // }
332
+ }
333
+
334
+ /* Hide scrollbar */
335
+ // &::-webkit-scrollbar {
336
+ // display: none;
337
+ // }
338
+ }
339
+
340
+ &-card {
341
+ display: flex;
342
+ flex-direction: column;
343
+ padding-bottom: 20px;
344
+ border-radius: 24px;
345
+ background: var(--tide-booking-white);
346
+ box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
347
+ }
348
+
349
+ // Slicing with image and usps,
350
+ // not available in the current API response.
351
+ &-card--flight {
352
+ // height: 522px;
353
+ width: 100%;
354
+ max-width: 315px;
355
+ min-width: 315px;
356
+
357
+ border-radius: 16px;
358
+ box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
359
+ display: flex;
360
+ flex-direction: column;
361
+ justify-content: space-between;
362
+ overflow: hidden;
363
+ background: var(--tide-booking-white);
364
+ transition: all 0.4s ease;
365
+ cursor: pointer;
366
+
367
+ @include mixins.media-sm {
368
+ max-width: 345px;
369
+ min-width: 345px;
370
+ }
371
+
372
+ &:hover {
373
+ .flyin__content-card-top {
374
+ background: var(--tide-booking-color-primary-fade);
375
+ }
376
+
377
+ .flyin__content-card-button {
378
+ // background: var(--tide-booking-color-primary);
379
+ color: var(--tide-booking-white);
380
+
381
+ .cta--select {
382
+ background: var(--tide-booking-cta-background-select-hover);
383
+ }
384
+ }
385
+ }
386
+
387
+ &.flyin__content-card--selected {
388
+ .flyin__content-card-top {
389
+ background: var(--tide-booking-color-primary-gradient);
390
+ border-bottom: none;
391
+ }
392
+
393
+ .flyin__content-card-top-price {
394
+ color: var(--tide-booking-white);
395
+ }
396
+
397
+ .flyin__content-card-top-tag {
398
+ color: var(--tide-booking-white);
399
+ }
400
+
401
+ .flyin__content-card-middle {
402
+ // border-left: 4px solid var(--tide-booking-color-primary);
403
+ // border-right: 4px solid var(--tide-booking-color-primary);
404
+ }
405
+
406
+ &:hover {
407
+ .flyin__content {
408
+ cursor: default;
409
+ }
410
+
411
+ .flyin__content-card-top {
412
+ background: var(--tide-booking-color-primary-gradient);
413
+ }
414
+ }
415
+ }
416
+
417
+ .flyin__content-card-top {
418
+ min-height: 60px;
419
+ width: 100%;
420
+ background: var(--tide-booking-color-primary);
421
+ display: flex;
422
+ justify-content: space-between;
423
+ align-items: end;
424
+ padding: 0 15px 12px 15px;
425
+ background: var(--tide-booking-white);
426
+ transition: all 0.4s ease;
427
+
428
+ &-price {
429
+ font-size: 18px;
430
+ font-weight: 700;
431
+ color: var(--tide-booking-black);
432
+
433
+ &--decrease {
434
+ color: green;
435
+ }
436
+
437
+ &--increase {
438
+ color: red;
439
+ }
440
+ }
441
+
442
+ &-tag {
443
+ font-size: 24px;
444
+ color: var(--tide-booking-black);
445
+ /* color: variables.$white; */
446
+ font-weight: 700;
447
+ }
448
+ }
449
+
450
+ .flyin__content-card-middle {
451
+ height: 430px;
452
+ background: var(--tide-booking-white);
453
+ transition: all 0.4s ease;
454
+
455
+ &-rows {
456
+ display: flex;
457
+ flex-direction: column;
458
+ gap: 10px;
459
+ padding: 15px 15px 0 15px;
460
+ max-height: 430px;
461
+ }
462
+
463
+ &-row {
464
+ display: flex;
465
+ justify-content: space-between;
466
+ align-items: center;
467
+ padding-bottom: 5px;
468
+ border-bottom: 1px dashed var(--tide-booking-color-primary-light);
469
+
470
+ &-left {
471
+ font-weight: 500;
472
+ color: var(--tide-booking-black);
473
+ }
474
+
475
+ &-right {
476
+ font-weight: 300;
477
+ }
478
+ }
479
+ }
480
+
481
+ .flyin__content-card-bottom {
482
+ height: 30px;
483
+ background: var(--tide-booking-color-primary);
484
+ display: flex;
485
+ justify-content: center;
486
+ align-items: center;
487
+ color: var(--tide-booking-white);
488
+ font-size: 14px;
489
+ transition: all 0.4s ease;
490
+ }
491
+
492
+ .flyin__content-card-button {
493
+ // border: 1.25px solid var(--tide-booking-color-primary);
494
+ border-radius: 3px;
495
+ display: flex;
496
+ justify-content: center;
497
+ align-items: center;
498
+ color: var(--tide-booking-color-primary);
499
+ padding: 15px;
500
+ cursor: pointer;
501
+ font-size: 14px;
502
+ transition: all 0.2s ease;
503
+ }
504
+ }
505
+
506
+ &-data {
507
+ display: flex;
508
+ flex-direction: column;
509
+ gap: 10px;
510
+ height: 300px;
511
+ overflow-y: auto;
512
+ @extend %scrollbar-thin;
513
+
514
+ &__title {
515
+ font-size: 18px;
516
+ color: var(--tide-booking-gray-dark);
517
+ }
518
+
519
+ &__item {
520
+ display: grid;
521
+ grid-template-columns: auto 1fr auto;
522
+ grid-template-rows: auto;
523
+ gap: 10px;
524
+ align-items: flex-start;
525
+
526
+ &-icon {
527
+ // margin-top: 3px;
528
+ color: var(--tide-booking-black);
529
+
530
+ // &--other {
531
+ // margin-top: 0;
532
+ // }
533
+ }
534
+
535
+ &-content {
536
+ display: flex;
537
+ flex-direction: column;
538
+ gap: 3px;
539
+
540
+ &-title {
541
+ font-size: 16px;
542
+ font-weight: 500;
543
+ margin-top: 0.125rem;
544
+ color: var(--tide-booking-black);
545
+ }
546
+
547
+ &-description {
548
+ font-size: 16px;
549
+ font-weight: 300;
550
+ color: var(--tide-booking-gray-dark);
551
+
552
+ @include mixins.media-sm {
553
+ overflow-wrap: break-word;
554
+ // inline-size: 60vw;
555
+ }
556
+
557
+ &--last {
558
+ margin-top: 5px;
559
+ }
560
+
561
+ &--list {
562
+ list-style-type: disc;
563
+ padding-left: 10px;
564
+ margin-top: 5px;
565
+
566
+ li {
567
+ margin-bottom: 5px;
568
+ }
569
+ }
570
+ }
571
+ }
572
+
573
+ &-price {
574
+ font-size: 16px;
575
+ color: var(--tide-booking-gray-dark);
576
+ white-space: nowrap;
577
+ margin-left: 15px;
578
+ margin-top: 5px;
579
+ }
580
+ }
581
+ }
582
+
583
+ &--columns {
584
+ display: flex;
585
+ gap: 10px;
586
+
587
+ .search__results__wrapper {
588
+ width: 100%;
589
+ }
590
+
591
+ .search__results__cards {
592
+ grid-template-rows: auto;
593
+ align-content: flex-start;
594
+ }
595
+ }
596
+
597
+ .cta--filter {
598
+ @include mixins.media-lg {
599
+ display: none;
600
+ }
601
+ }
602
+
603
+ .search__result {
604
+ &-row {
605
+ justify-content: flex-start;
606
+ gap: 15px;
607
+ flex-wrap: wrap;
608
+
609
+ &-filter {
610
+ @include mixins.media-xs {
611
+ margin-left: auto;
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+
618
+ &__button {
619
+ height: 30px;
620
+ width: 100%;
621
+ border: 1.25px solid var(--tide-booking-color-primary);
622
+ border-radius: 3px;
623
+ display: flex;
624
+ justify-content: center;
625
+ align-items: center;
626
+ background: var(--tide-booking-color-primary);
627
+ color: var(--tide-booking-white);
628
+ margin: 1rem;
629
+ cursor: pointer;
630
+ font-size: 14px;
631
+ transition: all 0.2s ease;
632
+
633
+ @include mixins.media-sm {
634
+ width: 216px;
635
+ }
636
+
637
+ &-wrapper {
638
+ display: flex;
639
+ justify-content: flex-end;
640
+
641
+ .cta {
642
+ width: auto;
643
+ min-width: 150px;
644
+ }
645
+
646
+ &--white {
647
+ @include mixins.media-sm {
648
+ }
649
+ }
650
+ }
651
+
652
+ &:hover {
653
+ background: var(--tide-booking-color-primary);
654
+ border: var(--tide-booking-color-primary);
655
+ }
656
+
657
+ &--white {
658
+ background: var(--tide-booking-white);
659
+ color: var(--tide-booking-color-primary);
660
+ margin-top: 0;
661
+
662
+ &:hover {
663
+ background: var(--tide-booking-color-primary-light);
664
+ border: var(--tide-booking-color-primary-light);
665
+ }
666
+ }
667
+ }
668
+
669
+ &__footer {
670
+ display: flex;
671
+ justify-content: space-between;
672
+ align-items: center;
673
+
674
+ position: sticky;
675
+ bottom: 0;
676
+ padding: 15px;
677
+
678
+ background: var(--tide-booking-white);
679
+
680
+ z-index: 1;
681
+
682
+ @include mixins.media-sm {
683
+ margin-top: auto;
684
+ padding: 30px;
685
+ }
686
+
687
+ &__price {
688
+ font-size: 18px;
689
+ font-weight: 700;
690
+ color: var(--tide-booking-black);
691
+ }
692
+ }
693
+
694
+ &__acco {
695
+ padding-bottom: 30px;
696
+
697
+ &__cards {
698
+ display: grid;
699
+ grid-template-columns: repeat(1, 1fr);
700
+ gap: 30px;
701
+
702
+ @include mixins.media-sm {
703
+ grid-template-columns: repeat(2, 1fr);
704
+ }
705
+
706
+ // @include mixins.media-xxl {
707
+ // grid-template-columns: repeat(3, 1fr);
708
+ // }
709
+ }
710
+
711
+ &__card {
712
+ display: flex;
713
+ flex-direction: column;
714
+ gap: 15px;
715
+ border-radius: 24px;
716
+ background: var(--tide-booking-white);
717
+ box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1);
718
+ padding-bottom: 20px;
719
+ }
720
+
721
+ &__img {
722
+ width: 100%;
723
+ height: 100%;
724
+ object-fit: cover;
725
+
726
+ &__wrapper {
727
+ position: relative;
728
+ width: 100%;
729
+ height: 200px;
730
+ overflow: hidden;
731
+ border-radius: 24px 24px 0 0;
732
+ background-color: #f5f5f5;
733
+ }
734
+ }
735
+
736
+ &__usps {
737
+ display: flex;
738
+ flex-wrap: wrap;
739
+ gap: 15px;
740
+ }
741
+
742
+ &__usp {
743
+ display: flex;
744
+ align-items: center;
745
+ gap: 3px;
746
+ }
747
+
748
+ &__price {
749
+ font-family: var(--tide-booking-search-hotel-card-price-font-family);
750
+ font-weight: var(--tide-booking-search-hotel-card-price-font-weight);
751
+ color: var(--tide-booking-search-hotel-card-price-color);
752
+ font-size: 20px;
753
+ white-space: nowrap;
754
+
755
+ // &__wrapper {
756
+ // position: absolute;
757
+ // bottom: 0px;
758
+ // right: 0px;
759
+ // background: var(--tide-booking-search-hotel-card-price-background-color);
760
+ // display: flex;
761
+ // flex-flow: column nowrap;
762
+ // align-items: center;
763
+ // justify-content: center;
764
+ // gap: 5px;
765
+ // padding: 5px 20px;
766
+ // border-radius: 5px 0 0 0;
767
+ // box-shadow: var(--tide-booking-search-hotel-card-price-box-shadow);
768
+ // }
769
+ &__wrapper {
770
+ display: flex;
771
+ flex-flow: column nowrap;
772
+ align-items: center;
773
+ justify-content: center;
774
+ gap: 5px;
775
+ }
776
+
777
+ &__label {
778
+ font-size: 12px;
779
+ font-weight: var(--tide-booking-search-hotel-card-price-label-font-weight);
780
+ color: var(--tide-booking-search-hotel-card-price-label-color);
781
+ }
782
+
783
+ &--increase {
784
+ color: var(--tide-booking-price-increase);
785
+ }
786
+
787
+ &--decrease {
788
+ color: var(--tide-booking-price-decrease);
789
+ }
790
+ }
791
+
792
+ &__content {
793
+ padding: 20px 20px 0px 20px;
794
+ display: flex;
795
+ flex-direction: column;
796
+ justify-content: space-between;
797
+ gap: 10px;
798
+ }
799
+
800
+ &__footer {
801
+ margin-top: auto;
802
+ padding: 0 20px;
803
+ display: flex;
804
+ flex-direction: column;
805
+ gap: 10px;
806
+
807
+ &__actions {
808
+ display: flex;
809
+ gap: 15px;
810
+ }
811
+ }
812
+
813
+ .dropdown {
814
+ width: 100%;
815
+
816
+ &-menu {
817
+ top: 45px;
818
+ }
819
+
820
+ &::after {
821
+ content: '';
822
+ display: none;
823
+ }
824
+
825
+ &__input {
826
+ gap: 0;
827
+ }
828
+ }
829
+ }
830
+ }