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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/build/build-cjs/index.js +2386 -1305
  2. package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +1 -0
  3. package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -1
  4. package/build/build-cjs/src/booking-wizard/types.d.ts +29 -1
  5. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +2 -0
  6. package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +1 -0
  7. package/build/build-cjs/src/search-results/components/itinerary/itinerary-utils.d.ts +1 -0
  8. package/build/build-cjs/src/search-results/types.d.ts +8 -0
  9. package/build/build-cjs/src/search-results/utils/booked-entry-utils.d.ts +20 -0
  10. package/build/build-cjs/src/search-results/utils/traject-utils.d.ts +7 -0
  11. package/build/build-cjs/src/shared/booking/travelers-form.d.ts +13 -3
  12. package/build/build-esm/index.js +2390 -1309
  13. package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +1 -0
  14. package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -1
  15. package/build/build-esm/src/booking-wizard/types.d.ts +29 -1
  16. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +2 -0
  17. package/build/build-esm/src/search-results/components/itinerary/index.d.ts +1 -0
  18. package/build/build-esm/src/search-results/components/itinerary/itinerary-utils.d.ts +1 -0
  19. package/build/build-esm/src/search-results/types.d.ts +8 -0
  20. package/build/build-esm/src/search-results/utils/booked-entry-utils.d.ts +20 -0
  21. package/build/build-esm/src/search-results/utils/traject-utils.d.ts +7 -0
  22. package/build/build-esm/src/shared/booking/travelers-form.d.ts +13 -3
  23. package/package.json +2 -2
  24. package/styles/abstracts/_mixins.scss +74 -74
  25. package/styles/abstracts/_variables.scss +57 -57
  26. package/styles/base/_fonts.scss +2 -2
  27. package/styles/base/_normalize.scss +227 -227
  28. package/styles/base/_typography.scss +35 -35
  29. package/styles/booking-joker-variables.scss +596 -596
  30. package/styles/booking-product-variables.scss +330 -330
  31. package/styles/booking-product.scss +438 -438
  32. package/styles/booking-qsm-variables.scss +501 -501
  33. package/styles/booking-qsm.scss +52 -52
  34. package/styles/booking-search-results-variables.scss +734 -734
  35. package/styles/booking-search-results.scss +53 -53
  36. package/styles/booking-wizard-variables.scss +603 -603
  37. package/styles/booking-wizard.scss +61 -61
  38. package/styles/components/_accordion.scss +67 -67
  39. package/styles/components/_animations.scss +39 -39
  40. package/styles/components/_base.scss +107 -107
  41. package/styles/components/_booking.scss +906 -906
  42. package/styles/components/_breadcrumb.scss +92 -92
  43. package/styles/components/_button.scss +238 -238
  44. package/styles/components/_checkbox.scss +230 -230
  45. package/styles/components/_contact.scss +255 -255
  46. package/styles/components/_content.scss +336 -336
  47. package/styles/components/_cta.scss +238 -238
  48. package/styles/components/_date-list.scss +41 -41
  49. package/styles/components/_date-range-picker.scss +223 -223
  50. package/styles/components/_decrement-increment.scss +35 -35
  51. package/styles/components/_dropdown.scss +77 -77
  52. package/styles/components/_error.scss +50 -50
  53. package/styles/components/_faq.scss +30 -30
  54. package/styles/components/_flight-option.scss +1432 -1432
  55. package/styles/components/_flyin.scss +830 -830
  56. package/styles/components/_footer.scss +135 -135
  57. package/styles/components/_form.scss +1704 -1693
  58. package/styles/components/_gallery.scss +317 -317
  59. package/styles/components/_header.scss +113 -113
  60. package/styles/components/_image-with-text.scss +206 -206
  61. package/styles/components/_img-slider.scss +175 -175
  62. package/styles/components/_info-message.scss +75 -75
  63. package/styles/components/_input.scss +35 -35
  64. package/styles/components/_list.scss +185 -185
  65. package/styles/components/_loader.scss +152 -152
  66. package/styles/components/_login.scss +140 -140
  67. package/styles/components/_map-view.scss +1100 -1100
  68. package/styles/components/_mixins.scss +579 -579
  69. package/styles/components/_navbar.scss +765 -765
  70. package/styles/components/_passenger-picker.scss +306 -306
  71. package/styles/components/_phone-input.scss +8 -8
  72. package/styles/components/_placeholders.scss +165 -165
  73. package/styles/components/_pricing-summary.scss +163 -163
  74. package/styles/components/_qsm.scss +17 -17
  75. package/styles/components/_radiobutton.scss +170 -170
  76. package/styles/components/_search.scss +2197 -2197
  77. package/styles/components/_select-wrapper.scss +81 -81
  78. package/styles/components/_slider.scss +120 -128
  79. package/styles/components/_spinner.scss +29 -29
  80. package/styles/components/_step-indicators.scss +187 -187
  81. package/styles/components/_table.scss +81 -81
  82. package/styles/components/_tide-form.scss +578 -578
  83. package/styles/components/_tree.scss +648 -648
  84. package/styles/components/_typeahead.scss +275 -275
  85. package/styles/components/_variables.scss +89 -89
  86. package/styles/content-blocks-variables.scss +543 -543
  87. package/styles/content-blocks.scss +66 -66
  88. package/styles/font.scss +2 -2
  89. package/styles/qsm/_calendar.scss +274 -274
  90. package/styles/qsm/_qsm.scss +1097 -1097
  91. package/styles/search.scss +1200 -1200
  92. package/styles/tide-form-variables.scss +275 -275
  93. package/styles/tide-form.scss +56 -56
@@ -1,317 +1,317 @@
1
- @use '../components/mixins' as mixins;
2
-
3
- .gallery {
4
- width: 100%;
5
-
6
- &__header {
7
- display: flex;
8
- align-items: baseline;
9
- justify-content: space-between;
10
- gap: 1rem;
11
- margin-bottom: 1rem;
12
- }
13
-
14
- &__title {
15
- line-height: 1.2;
16
- font-weight: 700;
17
- }
18
-
19
- &__text {
20
- line-height: 1.5;
21
- }
22
-
23
- &__count {
24
- font-size: 0.95rem;
25
- opacity: 0.75;
26
- }
27
-
28
- &__empty {
29
- opacity: 0.75;
30
- padding: 1rem 0;
31
- }
32
-
33
- &__layout {
34
- display: grid;
35
- gap: 0.9rem;
36
- }
37
-
38
- &__big {
39
- appearance: none;
40
- border: 0;
41
- padding: 0;
42
- cursor: pointer;
43
-
44
- border-radius: 16px;
45
- overflow: hidden;
46
- background: rgba(0, 0, 0, 0.04);
47
- box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
48
-
49
- &__img {
50
- width: 100%;
51
- height: auto;
52
- display: block;
53
- aspect-ratio: 16 / 9;
54
- object-fit: cover;
55
- }
56
- }
57
-
58
- &__thumbs {
59
- display: grid;
60
- gap: 0.9rem;
61
- grid-template-columns: repeat(5, minmax(0, 1fr));
62
- }
63
-
64
- &__thumb {
65
- appearance: none;
66
- border: 0;
67
- padding: 0;
68
- cursor: pointer;
69
-
70
- border-radius: 16px;
71
- overflow: hidden;
72
- position: relative;
73
- background: rgba(0, 0, 0, 0.04);
74
- box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
75
-
76
- &__img {
77
- width: 100%;
78
- height: 100%;
79
- display: block;
80
- aspect-ratio: 1 / 1;
81
- object-fit: cover;
82
- }
83
-
84
- &__overlay {
85
- position: absolute;
86
- inset: 0;
87
- display: grid;
88
- place-items: center;
89
-
90
- font-size: 2rem;
91
- font-weight: 700;
92
- color: #fff;
93
- background: rgba(0, 0, 0, 0.55);
94
- }
95
- }
96
-
97
- &__grid {
98
- display: grid;
99
- gap: 0.9rem;
100
- grid-template-columns: repeat(2, minmax(0, 1fr));
101
-
102
- @include mixins.media-sm {
103
- grid-template-columns: repeat(3, minmax(0, 1fr));
104
- }
105
-
106
- @include mixins.media-md {
107
- grid-template-columns: repeat(4, minmax(0, 1fr));
108
- }
109
- }
110
-
111
- &__card {
112
- appearance: none;
113
- border: 0;
114
- padding: 0;
115
- background: transparent;
116
- text-align: left;
117
- cursor: pointer;
118
-
119
- border-radius: 16px;
120
- overflow: hidden;
121
- position: relative;
122
-
123
- box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
124
- transform: translateZ(0);
125
- transition: transform 180ms ease, box-shadow 180ms ease;
126
-
127
- &:hover,
128
- &:focus-visible {
129
- transform: translateY(-2px);
130
- box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12);
131
-
132
- .gallery__card__meta {
133
- opacity: 1;
134
- transform: translateY(0);
135
- }
136
- }
137
-
138
- &:focus-visible {
139
- outline: 3px solid rgba(70, 130, 255, 0.6);
140
- outline-offset: 3px;
141
- }
142
-
143
- &__media {
144
- aspect-ratio: 1 / 1;
145
- background: rgba(0, 0, 0, 0.04);
146
-
147
- .gallery__card__img {
148
- width: 100%;
149
- height: 100%;
150
- object-fit: cover;
151
- display: block;
152
- transform: scale(1);
153
- transition: transform 220ms ease;
154
- }
155
- }
156
-
157
- &:hover .gallery__card__img {
158
- transform: scale(1.03);
159
- }
160
-
161
- &__meta {
162
- position: absolute;
163
- left: 0;
164
- right: 0;
165
- bottom: 0;
166
-
167
- padding: 0.75rem 0.85rem;
168
- background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));
169
-
170
- opacity: 0;
171
- transform: translateY(8px);
172
- transition: opacity 180ms ease, transform 180ms ease;
173
- }
174
-
175
- &__caption {
176
- display: block;
177
- color: #fff;
178
- font-size: 0.9rem;
179
- line-height: 1.25;
180
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
181
- }
182
-
183
- &--featured {
184
- grid-column: span 2;
185
-
186
- @include mixins.media-sm {
187
- grid-column: span 2;
188
- grid-row: span 2;
189
-
190
- .gallery__card__media {
191
- aspect-ratio: 1 / 1;
192
- }
193
- }
194
-
195
- @include mixins.media-md {
196
- grid-column: span 2;
197
- }
198
- }
199
- }
200
-
201
- &__lightbox {
202
- position: fixed;
203
- inset: 0;
204
- background: rgba(10, 10, 12, 0.72);
205
- backdrop-filter: blur(6px);
206
-
207
- display: grid;
208
- place-items: center;
209
- padding: 1rem;
210
- z-index: 9999;
211
-
212
- &__panel {
213
- // width: min(1100px, 100%);
214
- border-radius: 18px;
215
- overflow: hidden;
216
- // background: #0f1115;
217
- color: #fff;
218
- box-shadow: 0 18px 60px rgba(0, 0, 0, 0.45);
219
- // position: relative;
220
- }
221
-
222
- &__media {
223
- background: #0b0d10;
224
- display: grid;
225
- place-items: center;
226
- max-height: min(72vh, 720px);
227
- }
228
-
229
- &__img {
230
- width: 100%;
231
- height: 100%;
232
- max-height: min(72vh, 720px);
233
- object-fit: contain;
234
- display: block;
235
- }
236
-
237
- &__footer {
238
- display: flex;
239
- align-items: center;
240
- justify-content: space-between;
241
- gap: 1rem;
242
- padding: 0.9rem 1rem;
243
- border-top: 1px solid rgba(255, 255, 255, 0.08);
244
- }
245
-
246
- &__info {
247
- display: grid;
248
- gap: 0.25rem;
249
- min-width: 0;
250
- }
251
-
252
- &__index {
253
- font-size: 0.85rem;
254
- opacity: 0.8;
255
- }
256
-
257
- &__caption {
258
- font-size: 0.95rem;
259
- opacity: 0.95;
260
- white-space: nowrap;
261
- overflow: hidden;
262
- text-overflow: ellipsis;
263
- max-width: min(70vw, 760px);
264
- }
265
-
266
- &__controls {
267
- display: flex;
268
- gap: 0.5rem;
269
- flex-shrink: 0;
270
- }
271
- }
272
-
273
- &__btn {
274
- border: 1px solid rgba(255, 255, 255, 0.22);
275
- background: rgba(255, 255, 255, 0.06);
276
- color: #fff;
277
- padding: 0.5rem 0.75rem;
278
- border-radius: 12px;
279
- cursor: pointer;
280
- transition: transform 160ms ease, background 160ms ease;
281
-
282
- &:hover {
283
- background: rgba(255, 255, 255, 0.12);
284
- transform: translateY(-1px);
285
- }
286
-
287
- &:active {
288
- transform: translateY(0);
289
- }
290
-
291
- &__icon {
292
- border: 0;
293
- background: rgba(255, 255, 255, 0.08);
294
- color: #fff;
295
- width: 40px;
296
- height: 40px;
297
- border-radius: 999px;
298
- cursor: pointer;
299
-
300
- display: grid;
301
- place-items: center;
302
-
303
- transition: background 160ms ease, transform 160ms ease;
304
-
305
- &:hover {
306
- background: rgba(255, 255, 255, 0.14);
307
- transform: translateY(-1px);
308
- }
309
-
310
- &--close {
311
- position: absolute;
312
- top: 15px;
313
- right: 15px;
314
- }
315
- }
316
- }
317
- }
1
+ @use '../components/mixins' as mixins;
2
+
3
+ .gallery {
4
+ width: 100%;
5
+
6
+ &__header {
7
+ display: flex;
8
+ align-items: baseline;
9
+ justify-content: space-between;
10
+ gap: 1rem;
11
+ margin-bottom: 1rem;
12
+ }
13
+
14
+ &__title {
15
+ line-height: 1.2;
16
+ font-weight: 700;
17
+ }
18
+
19
+ &__text {
20
+ line-height: 1.5;
21
+ }
22
+
23
+ &__count {
24
+ font-size: 0.95rem;
25
+ opacity: 0.75;
26
+ }
27
+
28
+ &__empty {
29
+ opacity: 0.75;
30
+ padding: 1rem 0;
31
+ }
32
+
33
+ &__layout {
34
+ display: grid;
35
+ gap: 0.9rem;
36
+ }
37
+
38
+ &__big {
39
+ appearance: none;
40
+ border: 0;
41
+ padding: 0;
42
+ cursor: pointer;
43
+
44
+ border-radius: 16px;
45
+ overflow: hidden;
46
+ background: rgba(0, 0, 0, 0.04);
47
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
48
+
49
+ &__img {
50
+ width: 100%;
51
+ height: auto;
52
+ display: block;
53
+ aspect-ratio: 16 / 9;
54
+ object-fit: cover;
55
+ }
56
+ }
57
+
58
+ &__thumbs {
59
+ display: grid;
60
+ gap: 0.9rem;
61
+ grid-template-columns: repeat(5, minmax(0, 1fr));
62
+ }
63
+
64
+ &__thumb {
65
+ appearance: none;
66
+ border: 0;
67
+ padding: 0;
68
+ cursor: pointer;
69
+
70
+ border-radius: 16px;
71
+ overflow: hidden;
72
+ position: relative;
73
+ background: rgba(0, 0, 0, 0.04);
74
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
75
+
76
+ &__img {
77
+ width: 100%;
78
+ height: 100%;
79
+ display: block;
80
+ aspect-ratio: 1 / 1;
81
+ object-fit: cover;
82
+ }
83
+
84
+ &__overlay {
85
+ position: absolute;
86
+ inset: 0;
87
+ display: grid;
88
+ place-items: center;
89
+
90
+ font-size: 2rem;
91
+ font-weight: 700;
92
+ color: #fff;
93
+ background: rgba(0, 0, 0, 0.55);
94
+ }
95
+ }
96
+
97
+ &__grid {
98
+ display: grid;
99
+ gap: 0.9rem;
100
+ grid-template-columns: repeat(2, minmax(0, 1fr));
101
+
102
+ @include mixins.media-sm {
103
+ grid-template-columns: repeat(3, minmax(0, 1fr));
104
+ }
105
+
106
+ @include mixins.media-md {
107
+ grid-template-columns: repeat(4, minmax(0, 1fr));
108
+ }
109
+ }
110
+
111
+ &__card {
112
+ appearance: none;
113
+ border: 0;
114
+ padding: 0;
115
+ background: transparent;
116
+ text-align: left;
117
+ cursor: pointer;
118
+
119
+ border-radius: 16px;
120
+ overflow: hidden;
121
+ position: relative;
122
+
123
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
124
+ transform: translateZ(0);
125
+ transition: transform 180ms ease, box-shadow 180ms ease;
126
+
127
+ &:hover,
128
+ &:focus-visible {
129
+ transform: translateY(-2px);
130
+ box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12);
131
+
132
+ .gallery__card__meta {
133
+ opacity: 1;
134
+ transform: translateY(0);
135
+ }
136
+ }
137
+
138
+ &:focus-visible {
139
+ outline: 3px solid rgba(70, 130, 255, 0.6);
140
+ outline-offset: 3px;
141
+ }
142
+
143
+ &__media {
144
+ aspect-ratio: 1 / 1;
145
+ background: rgba(0, 0, 0, 0.04);
146
+
147
+ .gallery__card__img {
148
+ width: 100%;
149
+ height: 100%;
150
+ object-fit: cover;
151
+ display: block;
152
+ transform: scale(1);
153
+ transition: transform 220ms ease;
154
+ }
155
+ }
156
+
157
+ &:hover .gallery__card__img {
158
+ transform: scale(1.03);
159
+ }
160
+
161
+ &__meta {
162
+ position: absolute;
163
+ left: 0;
164
+ right: 0;
165
+ bottom: 0;
166
+
167
+ padding: 0.75rem 0.85rem;
168
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));
169
+
170
+ opacity: 0;
171
+ transform: translateY(8px);
172
+ transition: opacity 180ms ease, transform 180ms ease;
173
+ }
174
+
175
+ &__caption {
176
+ display: block;
177
+ color: #fff;
178
+ font-size: 0.9rem;
179
+ line-height: 1.25;
180
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
181
+ }
182
+
183
+ &--featured {
184
+ grid-column: span 2;
185
+
186
+ @include mixins.media-sm {
187
+ grid-column: span 2;
188
+ grid-row: span 2;
189
+
190
+ .gallery__card__media {
191
+ aspect-ratio: 1 / 1;
192
+ }
193
+ }
194
+
195
+ @include mixins.media-md {
196
+ grid-column: span 2;
197
+ }
198
+ }
199
+ }
200
+
201
+ &__lightbox {
202
+ position: fixed;
203
+ inset: 0;
204
+ background: rgba(10, 10, 12, 0.72);
205
+ backdrop-filter: blur(6px);
206
+
207
+ display: grid;
208
+ place-items: center;
209
+ padding: 1rem;
210
+ z-index: 9999;
211
+
212
+ &__panel {
213
+ // width: min(1100px, 100%);
214
+ border-radius: 18px;
215
+ overflow: hidden;
216
+ // background: #0f1115;
217
+ color: #fff;
218
+ box-shadow: 0 18px 60px rgba(0, 0, 0, 0.45);
219
+ // position: relative;
220
+ }
221
+
222
+ &__media {
223
+ background: #0b0d10;
224
+ display: grid;
225
+ place-items: center;
226
+ max-height: min(72vh, 720px);
227
+ }
228
+
229
+ &__img {
230
+ width: 100%;
231
+ height: 100%;
232
+ max-height: min(72vh, 720px);
233
+ object-fit: contain;
234
+ display: block;
235
+ }
236
+
237
+ &__footer {
238
+ display: flex;
239
+ align-items: center;
240
+ justify-content: space-between;
241
+ gap: 1rem;
242
+ padding: 0.9rem 1rem;
243
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
244
+ }
245
+
246
+ &__info {
247
+ display: grid;
248
+ gap: 0.25rem;
249
+ min-width: 0;
250
+ }
251
+
252
+ &__index {
253
+ font-size: 0.85rem;
254
+ opacity: 0.8;
255
+ }
256
+
257
+ &__caption {
258
+ font-size: 0.95rem;
259
+ opacity: 0.95;
260
+ white-space: nowrap;
261
+ overflow: hidden;
262
+ text-overflow: ellipsis;
263
+ max-width: min(70vw, 760px);
264
+ }
265
+
266
+ &__controls {
267
+ display: flex;
268
+ gap: 0.5rem;
269
+ flex-shrink: 0;
270
+ }
271
+ }
272
+
273
+ &__btn {
274
+ border: 1px solid rgba(255, 255, 255, 0.22);
275
+ background: rgba(255, 255, 255, 0.06);
276
+ color: #fff;
277
+ padding: 0.5rem 0.75rem;
278
+ border-radius: 12px;
279
+ cursor: pointer;
280
+ transition: transform 160ms ease, background 160ms ease;
281
+
282
+ &:hover {
283
+ background: rgba(255, 255, 255, 0.12);
284
+ transform: translateY(-1px);
285
+ }
286
+
287
+ &:active {
288
+ transform: translateY(0);
289
+ }
290
+
291
+ &__icon {
292
+ border: 0;
293
+ background: rgba(255, 255, 255, 0.08);
294
+ color: #fff;
295
+ width: 40px;
296
+ height: 40px;
297
+ border-radius: 999px;
298
+ cursor: pointer;
299
+
300
+ display: grid;
301
+ place-items: center;
302
+
303
+ transition: background 160ms ease, transform 160ms ease;
304
+
305
+ &:hover {
306
+ background: rgba(255, 255, 255, 0.14);
307
+ transform: translateY(-1px);
308
+ }
309
+
310
+ &--close {
311
+ position: absolute;
312
+ top: 15px;
313
+ right: 15px;
314
+ }
315
+ }
316
+ }
317
+ }