@qite/tide-booking-component 1.2.5 → 1.3.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 (141) hide show
  1. package/.vs/ProjectSettings.json +3 -3
  2. package/.vs/VSWorkspaceState.json +5 -5
  3. package/README.md +8 -8
  4. package/build/build-cjs/booking-wizard/components/print-offer-button.d.ts +17 -0
  5. package/build/build-cjs/booking-wizard/types.d.ts +7 -0
  6. package/build/build-cjs/booking-wizard/use-offer-printer.d.ts +13 -0
  7. package/build/build-cjs/index.js +223 -72
  8. package/build/build-cjs/shared/utils/localization-util.d.ts +5 -0
  9. package/build/build-cjs/shared/utils/tide-api-utils.d.ts +1 -0
  10. package/build/build-esm/booking-wizard/components/print-offer-button.d.ts +17 -0
  11. package/build/build-esm/booking-wizard/types.d.ts +7 -0
  12. package/build/build-esm/booking-wizard/use-offer-printer.d.ts +13 -0
  13. package/build/build-esm/index.js +224 -73
  14. package/build/build-esm/shared/utils/localization-util.d.ts +5 -0
  15. package/build/build-esm/shared/utils/tide-api-utils.d.ts +1 -0
  16. package/package.json +75 -75
  17. package/rollup.config.js +23 -23
  18. package/src/booking-product/components/age-select.tsx +35 -35
  19. package/src/booking-product/components/amount-input.tsx +78 -78
  20. package/src/booking-product/components/date-range-picker/calendar-day.tsx +58 -58
  21. package/src/booking-product/components/date-range-picker/calendar.tsx +178 -178
  22. package/src/booking-product/components/date-range-picker/index.tsx +196 -196
  23. package/src/booking-product/components/dates.tsx +136 -136
  24. package/src/booking-product/components/footer.tsx +69 -69
  25. package/src/booking-product/components/header.tsx +79 -79
  26. package/src/booking-product/components/icon.tsx +251 -251
  27. package/src/booking-product/components/product.tsx +314 -314
  28. package/src/booking-product/components/rating.tsx +21 -21
  29. package/src/booking-product/components/rooms.tsx +195 -195
  30. package/src/booking-product/index.tsx +30 -30
  31. package/src/booking-product/settings-context.ts +14 -14
  32. package/src/booking-product/types.ts +28 -28
  33. package/src/booking-product/utils/api.ts +25 -25
  34. package/src/booking-product/utils/price.ts +29 -29
  35. package/src/booking-wizard/api-settings-slice.ts +24 -24
  36. package/src/booking-wizard/components/icon.tsx +508 -508
  37. package/src/booking-wizard/components/labeled-input.tsx +64 -64
  38. package/src/booking-wizard/components/labeled-select.tsx +69 -69
  39. package/src/booking-wizard/components/message.tsx +34 -34
  40. package/src/booking-wizard/components/multi-range-filter.tsx +113 -113
  41. package/src/booking-wizard/components/print-offer-button.tsx +66 -0
  42. package/src/booking-wizard/components/product-card.tsx +37 -37
  43. package/src/booking-wizard/components/step-indicator.tsx +51 -51
  44. package/src/booking-wizard/components/step-route.tsx +27 -27
  45. package/src/booking-wizard/declarations.d.ts +4 -4
  46. package/src/booking-wizard/features/booking/api.ts +49 -49
  47. package/src/booking-wizard/features/booking/booking-self-contained.tsx +384 -384
  48. package/src/booking-wizard/features/booking/booking-slice.ts +662 -662
  49. package/src/booking-wizard/features/booking/booking.tsx +356 -356
  50. package/src/booking-wizard/features/booking/constants.ts +16 -16
  51. package/src/booking-wizard/features/booking/selectors.ts +441 -441
  52. package/src/booking-wizard/features/confirmation/confirmation.tsx +97 -97
  53. package/src/booking-wizard/features/error/error.tsx +78 -78
  54. package/src/booking-wizard/features/flight-options/flight-filter.tsx +432 -432
  55. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +385 -385
  56. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +229 -229
  57. package/src/booking-wizard/features/flight-options/flight-option.tsx +81 -81
  58. package/src/booking-wizard/features/flight-options/flight-utils.ts +516 -516
  59. package/src/booking-wizard/features/flight-options/index.tsx +196 -196
  60. package/src/booking-wizard/features/price-details/price-details-api.ts +24 -24
  61. package/src/booking-wizard/features/price-details/price-details-slice.ts +178 -178
  62. package/src/booking-wizard/features/price-details/util.ts +155 -155
  63. package/src/booking-wizard/features/product-options/no-options.tsx +21 -21
  64. package/src/booking-wizard/features/product-options/none-option.tsx +120 -120
  65. package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +64 -64
  66. package/src/booking-wizard/features/product-options/option-booking-group.tsx +216 -216
  67. package/src/booking-wizard/features/product-options/option-item.tsx +317 -317
  68. package/src/booking-wizard/features/product-options/option-pax-card.tsx +201 -201
  69. package/src/booking-wizard/features/product-options/option-pax-group.tsx +175 -175
  70. package/src/booking-wizard/features/product-options/option-room.tsx +321 -321
  71. package/src/booking-wizard/features/product-options/option-unit-group.tsx +198 -198
  72. package/src/booking-wizard/features/product-options/option-units-card.tsx +185 -185
  73. package/src/booking-wizard/features/product-options/options-form.tsx +563 -459
  74. package/src/booking-wizard/features/room-options/index.tsx +187 -187
  75. package/src/booking-wizard/features/room-options/room-utils.ts +190 -190
  76. package/src/booking-wizard/features/room-options/room.tsx +160 -160
  77. package/src/booking-wizard/features/room-options/traveler-rooms.tsx +75 -75
  78. package/src/booking-wizard/features/sidebar/index.tsx +76 -76
  79. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +68 -68
  80. package/src/booking-wizard/features/sidebar/sidebar-util.ts +177 -177
  81. package/src/booking-wizard/features/sidebar/sidebar.tsx +364 -364
  82. package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -25
  83. package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -25
  84. package/src/booking-wizard/features/summary/summary-flight.tsx +39 -39
  85. package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +69 -69
  86. package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +63 -63
  87. package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +66 -66
  88. package/src/booking-wizard/features/summary/summary-slice.ts +28 -28
  89. package/src/booking-wizard/features/summary/summary.tsx +674 -674
  90. package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +164 -164
  91. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +754 -754
  92. package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +101 -101
  93. package/src/booking-wizard/features/travelers-form/validate-form.ts +245 -245
  94. package/src/booking-wizard/index.tsx +36 -36
  95. package/src/booking-wizard/settings-context.ts +62 -60
  96. package/src/booking-wizard/store.ts +31 -31
  97. package/src/booking-wizard/types.ts +278 -276
  98. package/src/booking-wizard/use-offer-printer.ts +136 -0
  99. package/src/index.ts +4 -4
  100. package/src/shared/components/loader.tsx +16 -16
  101. package/src/shared/translations/en-GB.json +237 -232
  102. package/src/shared/translations/fr-BE.json +238 -233
  103. package/src/shared/translations/nl-BE.json +237 -232
  104. package/src/shared/types.ts +4 -4
  105. package/src/shared/utils/class-util.ts +9 -9
  106. package/src/shared/utils/localization-util.ts +62 -62
  107. package/src/shared/utils/query-string-util.ts +119 -119
  108. package/src/shared/utils/tide-api-utils.ts +36 -36
  109. package/styles/booking-product-variables.scss +394 -394
  110. package/styles/booking-product.scss +446 -446
  111. package/styles/booking-wizard-variables.scss +873 -871
  112. package/styles/booking-wizard.scss +59 -59
  113. package/styles/components/_animations.scss +39 -39
  114. package/styles/components/_base.scss +107 -107
  115. package/styles/components/_booking.scss +879 -879
  116. package/styles/components/_button.scss +238 -238
  117. package/styles/components/_checkbox.scss +219 -219
  118. package/styles/components/_cta.scss +208 -208
  119. package/styles/components/_date-list.scss +41 -41
  120. package/styles/components/_date-range-picker.scss +225 -225
  121. package/styles/components/_decrement-increment.scss +35 -35
  122. package/styles/components/_dropdown.scss +72 -72
  123. package/styles/components/_flight-option.scss +1429 -1429
  124. package/styles/components/_form.scss +1583 -1583
  125. package/styles/components/_info-message.scss +71 -71
  126. package/styles/components/_input.scss +25 -25
  127. package/styles/components/_list.scss +187 -187
  128. package/styles/components/_loader.scss +72 -72
  129. package/styles/components/_mixins.scss +550 -550
  130. package/styles/components/_placeholders.scss +166 -166
  131. package/styles/components/_pricing-summary.scss +155 -155
  132. package/styles/components/_qsm.scss +17 -17
  133. package/styles/components/_radiobutton.scss +170 -170
  134. package/styles/components/_select-wrapper.scss +80 -80
  135. package/styles/components/_spinner.scss +29 -29
  136. package/styles/components/_step-indicators.scss +168 -168
  137. package/styles/components/_table.scss +81 -81
  138. package/styles/components/_tree.scss +530 -530
  139. package/styles/components/_typeahead.scss +281 -281
  140. package/styles/components/_variables.scss +89 -89
  141. package/tsconfig.json +24 -24
@@ -1,530 +1,530 @@
1
- .tree {
2
- @extend %reset;
3
- border: 0px solid transparent;
4
- border-radius: 0px;
5
- background-color: transparent;
6
-
7
- * {
8
- @extend %reset;
9
- }
10
-
11
- > .tree__level {
12
- padding-top: 0;
13
- padding-left: 0;
14
- margin: 3px 0;
15
- }
16
-
17
- &__body .tree__level {
18
- padding: 0;
19
- margin-top: 0;
20
- border-top: 1.5px solid rgba(0, 0, 0, 0.05);
21
- }
22
-
23
- &__columns-actions {
24
- width: 100%;
25
- margin-top: -15px * 0.2;
26
- margin-left: auto;
27
- display: flex;
28
- flex-grow: 1;
29
- flex-shrink: 0;
30
- white-space: nowrap;
31
- @include transitionEasing($duration: 0.15s);
32
-
33
- @include media-lg {
34
- padding-right: 0;
35
- transform: translateY(-15px);
36
- }
37
-
38
- @include media-xl {
39
- width: 400px;
40
- max-width: 40vw;
41
- justify-content: flex-end;
42
- transform: none;
43
- }
44
-
45
- .tree__column {
46
- @include media-lg {
47
- width: 200px;
48
- }
49
-
50
- &--price {
51
- @include media-lg {
52
- width: 100px;
53
- transform: translateY(5px) translateX(15px);
54
- }
55
-
56
- @include media-xl {
57
- transform: none;
58
- }
59
- }
60
- }
61
- }
62
-
63
- &__columns {
64
- @include row--lg;
65
- width: 100%;
66
- gap: 5px;
67
-
68
- @include media-lg {
69
- width: 100%;
70
- gap: initial;
71
- }
72
-
73
- @include media-xl {
74
- width: auto;
75
- }
76
- }
77
-
78
- &__column {
79
- padding-right: 0;
80
- display: inline-flex;
81
- flex-direction: column;
82
- box-sizing: border-box;
83
-
84
- @include media-lg {
85
- position: relative;
86
- padding-right: 15px;
87
- flex-direction: row;
88
- }
89
-
90
- .price {
91
- position: absolute;
92
- top: 10px;
93
- right: 0px;
94
- font-size: 14px;
95
-
96
- @include media-lg {
97
- position: static;
98
- top: initial;
99
- right: initial;
100
- margin-left: auto;
101
- font-size: var(--tide-booking-sidebar-footer-total-font-size);
102
- }
103
- }
104
- }
105
-
106
- &__column--price {
107
- width: 70px;
108
- padding-left: 10px;
109
- margin-left: auto;
110
- text-align: left;
111
- justify-content: flex-start;
112
- transition: opacity ease-out 0.12s;
113
-
114
- @include media-lg {
115
- padding-left: 0;
116
- transform: translateY(15px);
117
- }
118
-
119
- @include media-xl {
120
- transform: none;
121
- }
122
- }
123
-
124
- &__level {
125
- padding-top: 15px * 0.7;
126
- padding-left: 15px * 4;
127
- margin-bottom: -7px;
128
-
129
- .tree__column--price {
130
- padding: 0;
131
-
132
- @include media-lg {
133
- justify-content: flex-end;
134
- align-items: center;
135
- }
136
-
137
- @include media-xl {
138
- align-items: flex-start;
139
- }
140
- }
141
-
142
- .tree__level {
143
- &:first-child {
144
- .tree__product-name {
145
- @include media-lg {
146
- margin: 0;
147
- }
148
-
149
- @include media-xl {
150
- transform: translateX(-30px);
151
- }
152
- }
153
- }
154
- }
155
-
156
- tr:last-child {
157
- .checkbox:last-child {
158
- padding-bottom: 7.5px;
159
-
160
- @include media-lg {
161
- padding-top: 20px;
162
- }
163
- }
164
-
165
- .radiobutton:last-child {
166
- padding-top: 20px;
167
- padding-bottom: 7.5px;
168
- }
169
- }
170
- }
171
-
172
- &__level + &__level {
173
- padding: 0;
174
- }
175
-
176
- &__level-heading {
177
- margin-bottom: 3px;
178
- }
179
-
180
- &__package-label {
181
- width: 100%;
182
- margin-bottom: 10px;
183
- font-size: 13px;
184
- text-transform: uppercase;
185
- color: var(--tide-booking-black);
186
-
187
- @include media-lg {
188
- position: absolute;
189
- width: auto;
190
- top: -25px;
191
- margin: 0;
192
- }
193
- }
194
-
195
- &__product-name {
196
- max-width: 100%;
197
- padding-bottom: 0;
198
- margin: 0;
199
- white-space: normal;
200
-
201
- @include media-lg {
202
- padding-top: 3px;
203
- padding-bottom: 15px;
204
- margin: 0 15px;
205
- transform: translateY(15px);
206
- }
207
-
208
- @include media-xl {
209
- transform: none;
210
- }
211
- }
212
-
213
- &__radiogroup {
214
- margin: 15px * 0.3 0;
215
-
216
- .radiobutton + .radiobutton {
217
- margin-top: 0;
218
- }
219
- }
220
-
221
- .checkbox {
222
- padding: 2.5px 0 0 28px;
223
- flex-grow: 1;
224
-
225
- @include media-lg {
226
- padding: 20px 0px 0 28px;
227
- }
228
-
229
- &__input {
230
- &:checked {
231
- & + * {
232
- color: var(--tide-booking-checkbox-input-checked-color-text);
233
- }
234
- }
235
- }
236
-
237
- &__label {
238
- width: 100%;
239
- display: flex;
240
- flex-flow: row wrap;
241
- padding: 10px 0;
242
- margin-bottom: 0;
243
- line-height: 1.3;
244
-
245
- @include media-lg {
246
- padding: 0;
247
- }
248
- }
249
-
250
- &__label-text {
251
- padding-right: 15px * 3;
252
- margin-bottom: 7.5px;
253
- white-space: nowrap;
254
-
255
- @include media-lg {
256
- max-width: 20px;
257
- margin-bottom: 0;
258
- display: flex;
259
- align-items: flex-start;
260
- }
261
- }
262
-
263
- &__label-addition {
264
- margin-left: 15px * 0.7;
265
- }
266
-
267
- &__input {
268
- width: 20px;
269
- height: 20px;
270
- min-height: 20px;
271
- max-height: 20px;
272
- top: 12px;
273
- border-radius: var(--tide-booking-checkbox-border-radius) !important;
274
- border: var(--tide-booking-checkbox-border);
275
- background-color: var(--tide-booking-checkbox-background);
276
-
277
- @include media-lg {
278
- top: 18px;
279
- }
280
- }
281
-
282
- &__input--parent {
283
- top: 7.5px;
284
-
285
- @include media-lg {
286
- top: 18px;
287
- }
288
-
289
- & + span {
290
- margin-top: -5px;
291
- margin-bottom: 7.5px;
292
-
293
- @include media-lg {
294
- margin-top: 0;
295
- margin: 0;
296
- }
297
- }
298
- }
299
-
300
- &__input:after {
301
- width: 4px;
302
- height: 10px;
303
- left: 5px;
304
- top: 0;
305
- transform: rotate(45deg) !important;
306
- display: none;
307
- border-bottom: 2px solid
308
- var(--tide-booking-checkbox-input-checked-check-color);
309
- border-right: 2px solid
310
- var(--tide-booking-checkbox-input-checked-check-color);
311
- border-radius: 0;
312
- background-color: transparent;
313
- }
314
-
315
- &__input:checked {
316
- border: var(--tide-booking-checkbox-input-checked-border);
317
- background-color: var(--tide-booking-checkbox-input-checked-background);
318
-
319
- & + span + .tree__columns-actions .tree__columns .tree__column--price {
320
- opacity: 0;
321
- pointer-events: none;
322
- }
323
- }
324
-
325
- &__input:checked:after {
326
- display: flex;
327
- transform: translate3D(18px, 0, 0);
328
-
329
- @include media-lg {
330
- transform: translate3D(22px, 0, 0);
331
- }
332
- }
333
-
334
- &--label .checkbox__input {
335
- border: none;
336
- background-color: transparent;
337
- }
338
- }
339
-
340
- thead .checkbox {
341
- margin-bottom: 15px;
342
- }
343
-
344
- .radiobutton {
345
- padding: 2.5px 0 0 28px;
346
- flex-grow: 1;
347
-
348
- @include media-lg {
349
- padding: 15px 0px 0 28px;
350
- }
351
-
352
- &__input {
353
- width: 20px;
354
- height: 20px;
355
- top: 18px;
356
-
357
- @include media-lg {
358
- width: 20px;
359
- height: 20px;
360
- }
361
-
362
- &:checked {
363
- & + span + .tree__columns-actions .tree__columns .tree__column--price {
364
- opacity: 0;
365
- pointer-events: none;
366
- font-size: 0;
367
- }
368
- }
369
-
370
- &:after {
371
- width: 12px;
372
- height: 12px;
373
-
374
- @include media-lg {
375
- width: 12px;
376
- height: 12px;
377
- }
378
- }
379
-
380
- &--parent {
381
- top: 7.5px;
382
-
383
- @include media-lg {
384
- top: 14px;
385
- }
386
-
387
- & + span {
388
- margin-top: 0px;
389
-
390
- @include media-lg {
391
- margin: 0;
392
- }
393
- }
394
- }
395
- }
396
-
397
- &__label {
398
- width: 100%;
399
- padding: 0;
400
- display: flex;
401
- flex-flow: row wrap;
402
- line-height: 1.3;
403
-
404
- &-addition {
405
- margin-left: 15px * 0.7;
406
- }
407
-
408
- &-text {
409
- padding-right: 15px * 3;
410
- margin-bottom: 5.5px;
411
- flex-direction: column;
412
- white-space: nowrap;
413
-
414
- @include media-lg {
415
- max-width: 250px;
416
- padding-right: 0;
417
- margin-bottom: 0;
418
- display: flex;
419
- align-items: flex-start;
420
- }
421
-
422
- @include media-xl {
423
- max-width: 200px;
424
- }
425
- }
426
- }
427
-
428
- &--label .radiobutton__input {
429
- border: none;
430
- background-color: transparent;
431
- }
432
- }
433
-
434
- &.tree--selected {
435
- }
436
-
437
- &--selected {
438
- border-radius: var(--tide-booking-input-selected-border-radius);
439
- border: var(--tide-booking-input-selected-border);
440
- color: var(--tide-booking-input-selected-color);
441
- background-color: var(--tide-booking-input-selected-background);
442
-
443
- * {
444
- color: var(--tide-booking-input-selected-color);
445
- }
446
-
447
- // input:not(:empty),
448
- // select {
449
- // color: green;
450
- // }
451
- }
452
- }
453
-
454
- .tree__columns-actions + .tree__body .tree__column:first-child {
455
- @include media-lg {
456
- width: 200px;
457
- }
458
-
459
- @include media-xl {
460
- width: 200px;
461
- }
462
- }
463
-
464
- .booking-card {
465
- &__group--package {
466
- .radiobutton {
467
- &__input--parent {
468
- & + span {
469
- & + .tree__columns-actions {
470
- transform: none;
471
- }
472
- }
473
- }
474
- }
475
-
476
- .tree {
477
- &__columns {
478
- transform: translateY(-3px);
479
- }
480
-
481
- &__columns-actions {
482
- padding: 0;
483
- margin: 0;
484
- transform: none;
485
-
486
- @include media-lg {
487
- padding-top: 15px;
488
- padding-right: 45px;
489
- margin-top: 0;
490
- margin-bottom: 15px;
491
- margin-left: auto;
492
- transform: translate3D(-15px, -7.5px, 0) !important;
493
- }
494
-
495
- @include media-xl {
496
- padding-top: 20px;
497
- transform: translateX(15px) !important;
498
- }
499
- }
500
-
501
- &__column {
502
- padding: 0;
503
-
504
- @include media-lg {
505
- padding: 0 15px 0 0;
506
- }
507
- }
508
-
509
- &__product-name {
510
- margin: 0 0 5px;
511
-
512
- @include media-lg {
513
- margin: 0 25px 0 15px;
514
- }
515
-
516
- @include media-xl {
517
- margin: 0 15px;
518
- }
519
- }
520
-
521
- .radiobutton {
522
- padding: 0 !important;
523
-
524
- @include media-lg {
525
- padding: 5px 15px 0 45px !important;
526
- }
527
- }
528
- }
529
- }
530
- }
1
+ .tree {
2
+ @extend %reset;
3
+ border: 0px solid transparent;
4
+ border-radius: 0px;
5
+ background-color: transparent;
6
+
7
+ * {
8
+ @extend %reset;
9
+ }
10
+
11
+ > .tree__level {
12
+ padding-top: 0;
13
+ padding-left: 0;
14
+ margin: 3px 0;
15
+ }
16
+
17
+ &__body .tree__level {
18
+ padding: 0;
19
+ margin-top: 0;
20
+ border-top: 1.5px solid rgba(0, 0, 0, 0.05);
21
+ }
22
+
23
+ &__columns-actions {
24
+ width: 100%;
25
+ margin-top: -15px * 0.2;
26
+ margin-left: auto;
27
+ display: flex;
28
+ flex-grow: 1;
29
+ flex-shrink: 0;
30
+ white-space: nowrap;
31
+ @include transitionEasing($duration: 0.15s);
32
+
33
+ @include media-lg {
34
+ padding-right: 0;
35
+ transform: translateY(-15px);
36
+ }
37
+
38
+ @include media-xl {
39
+ width: 400px;
40
+ max-width: 40vw;
41
+ justify-content: flex-end;
42
+ transform: none;
43
+ }
44
+
45
+ .tree__column {
46
+ @include media-lg {
47
+ width: 200px;
48
+ }
49
+
50
+ &--price {
51
+ @include media-lg {
52
+ width: 100px;
53
+ transform: translateY(5px) translateX(15px);
54
+ }
55
+
56
+ @include media-xl {
57
+ transform: none;
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ &__columns {
64
+ @include row--lg;
65
+ width: 100%;
66
+ gap: 5px;
67
+
68
+ @include media-lg {
69
+ width: 100%;
70
+ gap: initial;
71
+ }
72
+
73
+ @include media-xl {
74
+ width: auto;
75
+ }
76
+ }
77
+
78
+ &__column {
79
+ padding-right: 0;
80
+ display: inline-flex;
81
+ flex-direction: column;
82
+ box-sizing: border-box;
83
+
84
+ @include media-lg {
85
+ position: relative;
86
+ padding-right: 15px;
87
+ flex-direction: row;
88
+ }
89
+
90
+ .price {
91
+ position: absolute;
92
+ top: 10px;
93
+ right: 0px;
94
+ font-size: 14px;
95
+
96
+ @include media-lg {
97
+ position: static;
98
+ top: initial;
99
+ right: initial;
100
+ margin-left: auto;
101
+ font-size: var(--tide-booking-sidebar-footer-total-font-size);
102
+ }
103
+ }
104
+ }
105
+
106
+ &__column--price {
107
+ width: 70px;
108
+ padding-left: 10px;
109
+ margin-left: auto;
110
+ text-align: left;
111
+ justify-content: flex-start;
112
+ transition: opacity ease-out 0.12s;
113
+
114
+ @include media-lg {
115
+ padding-left: 0;
116
+ transform: translateY(15px);
117
+ }
118
+
119
+ @include media-xl {
120
+ transform: none;
121
+ }
122
+ }
123
+
124
+ &__level {
125
+ padding-top: 15px * 0.7;
126
+ padding-left: 15px * 4;
127
+ margin-bottom: -7px;
128
+
129
+ .tree__column--price {
130
+ padding: 0;
131
+
132
+ @include media-lg {
133
+ justify-content: flex-end;
134
+ align-items: center;
135
+ }
136
+
137
+ @include media-xl {
138
+ align-items: flex-start;
139
+ }
140
+ }
141
+
142
+ .tree__level {
143
+ &:first-child {
144
+ .tree__product-name {
145
+ @include media-lg {
146
+ margin: 0;
147
+ }
148
+
149
+ @include media-xl {
150
+ transform: translateX(-30px);
151
+ }
152
+ }
153
+ }
154
+ }
155
+
156
+ tr:last-child {
157
+ .checkbox:last-child {
158
+ padding-bottom: 7.5px;
159
+
160
+ @include media-lg {
161
+ padding-top: 20px;
162
+ }
163
+ }
164
+
165
+ .radiobutton:last-child {
166
+ padding-top: 20px;
167
+ padding-bottom: 7.5px;
168
+ }
169
+ }
170
+ }
171
+
172
+ &__level + &__level {
173
+ padding: 0;
174
+ }
175
+
176
+ &__level-heading {
177
+ margin-bottom: 3px;
178
+ }
179
+
180
+ &__package-label {
181
+ width: 100%;
182
+ margin-bottom: 10px;
183
+ font-size: 13px;
184
+ text-transform: uppercase;
185
+ color: var(--tide-booking-black);
186
+
187
+ @include media-lg {
188
+ position: absolute;
189
+ width: auto;
190
+ top: -25px;
191
+ margin: 0;
192
+ }
193
+ }
194
+
195
+ &__product-name {
196
+ max-width: 100%;
197
+ padding-bottom: 0;
198
+ margin: 0;
199
+ white-space: normal;
200
+
201
+ @include media-lg {
202
+ padding-top: 3px;
203
+ padding-bottom: 15px;
204
+ margin: 0 15px;
205
+ transform: translateY(15px);
206
+ }
207
+
208
+ @include media-xl {
209
+ transform: none;
210
+ }
211
+ }
212
+
213
+ &__radiogroup {
214
+ margin: 15px * 0.3 0;
215
+
216
+ .radiobutton + .radiobutton {
217
+ margin-top: 0;
218
+ }
219
+ }
220
+
221
+ .checkbox {
222
+ padding: 2.5px 0 0 28px;
223
+ flex-grow: 1;
224
+
225
+ @include media-lg {
226
+ padding: 20px 0px 0 28px;
227
+ }
228
+
229
+ &__input {
230
+ &:checked {
231
+ & + * {
232
+ color: var(--tide-booking-checkbox-input-checked-color-text);
233
+ }
234
+ }
235
+ }
236
+
237
+ &__label {
238
+ width: 100%;
239
+ display: flex;
240
+ flex-flow: row wrap;
241
+ padding: 10px 0;
242
+ margin-bottom: 0;
243
+ line-height: 1.3;
244
+
245
+ @include media-lg {
246
+ padding: 0;
247
+ }
248
+ }
249
+
250
+ &__label-text {
251
+ padding-right: 15px * 3;
252
+ margin-bottom: 7.5px;
253
+ white-space: nowrap;
254
+
255
+ @include media-lg {
256
+ max-width: 20px;
257
+ margin-bottom: 0;
258
+ display: flex;
259
+ align-items: flex-start;
260
+ }
261
+ }
262
+
263
+ &__label-addition {
264
+ margin-left: 15px * 0.7;
265
+ }
266
+
267
+ &__input {
268
+ width: 20px;
269
+ height: 20px;
270
+ min-height: 20px;
271
+ max-height: 20px;
272
+ top: 12px;
273
+ border-radius: var(--tide-booking-checkbox-border-radius) !important;
274
+ border: var(--tide-booking-checkbox-border);
275
+ background-color: var(--tide-booking-checkbox-background);
276
+
277
+ @include media-lg {
278
+ top: 18px;
279
+ }
280
+ }
281
+
282
+ &__input--parent {
283
+ top: 7.5px;
284
+
285
+ @include media-lg {
286
+ top: 18px;
287
+ }
288
+
289
+ & + span {
290
+ margin-top: -5px;
291
+ margin-bottom: 7.5px;
292
+
293
+ @include media-lg {
294
+ margin-top: 0;
295
+ margin: 0;
296
+ }
297
+ }
298
+ }
299
+
300
+ &__input:after {
301
+ width: 4px;
302
+ height: 10px;
303
+ left: 5px;
304
+ top: 0;
305
+ transform: rotate(45deg) !important;
306
+ display: none;
307
+ border-bottom: 2px solid
308
+ var(--tide-booking-checkbox-input-checked-check-color);
309
+ border-right: 2px solid
310
+ var(--tide-booking-checkbox-input-checked-check-color);
311
+ border-radius: 0;
312
+ background-color: transparent;
313
+ }
314
+
315
+ &__input:checked {
316
+ border: var(--tide-booking-checkbox-input-checked-border);
317
+ background-color: var(--tide-booking-checkbox-input-checked-background);
318
+
319
+ & + span + .tree__columns-actions .tree__columns .tree__column--price {
320
+ opacity: 0;
321
+ pointer-events: none;
322
+ }
323
+ }
324
+
325
+ &__input:checked:after {
326
+ display: flex;
327
+ transform: translate3D(18px, 0, 0);
328
+
329
+ @include media-lg {
330
+ transform: translate3D(22px, 0, 0);
331
+ }
332
+ }
333
+
334
+ &--label .checkbox__input {
335
+ border: none;
336
+ background-color: transparent;
337
+ }
338
+ }
339
+
340
+ thead .checkbox {
341
+ margin-bottom: 15px;
342
+ }
343
+
344
+ .radiobutton {
345
+ padding: 2.5px 0 0 28px;
346
+ flex-grow: 1;
347
+
348
+ @include media-lg {
349
+ padding: 15px 0px 0 28px;
350
+ }
351
+
352
+ &__input {
353
+ width: 20px;
354
+ height: 20px;
355
+ top: 18px;
356
+
357
+ @include media-lg {
358
+ width: 20px;
359
+ height: 20px;
360
+ }
361
+
362
+ &:checked {
363
+ & + span + .tree__columns-actions .tree__columns .tree__column--price {
364
+ opacity: 0;
365
+ pointer-events: none;
366
+ font-size: 0;
367
+ }
368
+ }
369
+
370
+ &:after {
371
+ width: 12px;
372
+ height: 12px;
373
+
374
+ @include media-lg {
375
+ width: 12px;
376
+ height: 12px;
377
+ }
378
+ }
379
+
380
+ &--parent {
381
+ top: 7.5px;
382
+
383
+ @include media-lg {
384
+ top: 14px;
385
+ }
386
+
387
+ & + span {
388
+ margin-top: 0px;
389
+
390
+ @include media-lg {
391
+ margin: 0;
392
+ }
393
+ }
394
+ }
395
+ }
396
+
397
+ &__label {
398
+ width: 100%;
399
+ padding: 0;
400
+ display: flex;
401
+ flex-flow: row wrap;
402
+ line-height: 1.3;
403
+
404
+ &-addition {
405
+ margin-left: 15px * 0.7;
406
+ }
407
+
408
+ &-text {
409
+ padding-right: 15px * 3;
410
+ margin-bottom: 5.5px;
411
+ flex-direction: column;
412
+ white-space: nowrap;
413
+
414
+ @include media-lg {
415
+ max-width: 250px;
416
+ padding-right: 0;
417
+ margin-bottom: 0;
418
+ display: flex;
419
+ align-items: flex-start;
420
+ }
421
+
422
+ @include media-xl {
423
+ max-width: 200px;
424
+ }
425
+ }
426
+ }
427
+
428
+ &--label .radiobutton__input {
429
+ border: none;
430
+ background-color: transparent;
431
+ }
432
+ }
433
+
434
+ &.tree--selected {
435
+ }
436
+
437
+ &--selected {
438
+ border-radius: var(--tide-booking-input-selected-border-radius);
439
+ border: var(--tide-booking-input-selected-border);
440
+ color: var(--tide-booking-input-selected-color);
441
+ background-color: var(--tide-booking-input-selected-background);
442
+
443
+ * {
444
+ color: var(--tide-booking-input-selected-color);
445
+ }
446
+
447
+ // input:not(:empty),
448
+ // select {
449
+ // color: green;
450
+ // }
451
+ }
452
+ }
453
+
454
+ .tree__columns-actions + .tree__body .tree__column:first-child {
455
+ @include media-lg {
456
+ width: 200px;
457
+ }
458
+
459
+ @include media-xl {
460
+ width: 200px;
461
+ }
462
+ }
463
+
464
+ .booking-card {
465
+ &__group--package {
466
+ .radiobutton {
467
+ &__input--parent {
468
+ & + span {
469
+ & + .tree__columns-actions {
470
+ transform: none;
471
+ }
472
+ }
473
+ }
474
+ }
475
+
476
+ .tree {
477
+ &__columns {
478
+ transform: translateY(-3px);
479
+ }
480
+
481
+ &__columns-actions {
482
+ padding: 0;
483
+ margin: 0;
484
+ transform: none;
485
+
486
+ @include media-lg {
487
+ padding-top: 15px;
488
+ padding-right: 45px;
489
+ margin-top: 0;
490
+ margin-bottom: 15px;
491
+ margin-left: auto;
492
+ transform: translate3D(-15px, -7.5px, 0) !important;
493
+ }
494
+
495
+ @include media-xl {
496
+ padding-top: 20px;
497
+ transform: translateX(15px) !important;
498
+ }
499
+ }
500
+
501
+ &__column {
502
+ padding: 0;
503
+
504
+ @include media-lg {
505
+ padding: 0 15px 0 0;
506
+ }
507
+ }
508
+
509
+ &__product-name {
510
+ margin: 0 0 5px;
511
+
512
+ @include media-lg {
513
+ margin: 0 25px 0 15px;
514
+ }
515
+
516
+ @include media-xl {
517
+ margin: 0 15px;
518
+ }
519
+ }
520
+
521
+ .radiobutton {
522
+ padding: 0 !important;
523
+
524
+ @include media-lg {
525
+ padding: 5px 15px 0 45px !important;
526
+ }
527
+ }
528
+ }
529
+ }
530
+ }