@qite/tide-booking-component 1.4.38 → 1.4.40

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 (99) hide show
  1. package/build/build-cjs/booking-wizard/types.d.ts +1 -0
  2. package/build/build-cjs/content/components/login.d.ts +3 -0
  3. package/build/build-cjs/index.js +7618 -1952
  4. package/build/build-cjs/qsm/components/double-search-input-group/index.d.ts +2 -1
  5. package/build/build-cjs/qsm/components/search-input/index.d.ts +1 -0
  6. package/build/build-cjs/qsm/components/search-input-group/index.d.ts +3 -1
  7. package/build/build-cjs/qsm/store/qsm-slice.d.ts +6 -2
  8. package/build/build-cjs/qsm/types.d.ts +17 -32
  9. package/build/build-cjs/search-results/components/filters/flight-filters.d.ts +8 -0
  10. package/build/build-cjs/search-results/components/flight/flight-accommodation-results.d.ts +4 -1
  11. package/build/build-cjs/search-results/components/flight/flight-option.d.ts +7 -0
  12. package/build/build-cjs/search-results/components/flight/flight-search-context/index.d.ts +36 -0
  13. package/build/build-cjs/search-results/components/icon.d.ts +1 -0
  14. package/build/build-cjs/search-results/components/item-picker/index.d.ts +5 -3
  15. package/build/build-cjs/search-results/components/search-results-container/flight-search-results.d.ts +6 -0
  16. package/build/build-cjs/search-results/store/search-results-slice.d.ts +2 -0
  17. package/build/build-cjs/search-results/types.d.ts +31 -1
  18. package/build/build-cjs/search-results/utils/flight-utils.d.ts +16 -0
  19. package/build/build-cjs/shared/components/flyin.d.ts +9 -0
  20. package/build/build-cjs/shared/types.d.ts +6 -0
  21. package/build/build-cjs/shared/utils/localization-util.d.ts +91 -0
  22. package/build/build-esm/booking-wizard/types.d.ts +1 -0
  23. package/build/build-esm/content/components/login.d.ts +3 -0
  24. package/build/build-esm/index.js +8053 -2356
  25. package/build/build-esm/qsm/components/double-search-input-group/index.d.ts +2 -1
  26. package/build/build-esm/qsm/components/search-input/index.d.ts +1 -0
  27. package/build/build-esm/qsm/components/search-input-group/index.d.ts +3 -1
  28. package/build/build-esm/qsm/store/qsm-slice.d.ts +6 -2
  29. package/build/build-esm/qsm/types.d.ts +17 -32
  30. package/build/build-esm/search-results/components/filters/flight-filters.d.ts +8 -0
  31. package/build/build-esm/search-results/components/flight/flight-accommodation-results.d.ts +4 -1
  32. package/build/build-esm/search-results/components/flight/flight-option.d.ts +7 -0
  33. package/build/build-esm/search-results/components/flight/flight-search-context/index.d.ts +36 -0
  34. package/build/build-esm/search-results/components/icon.d.ts +1 -0
  35. package/build/build-esm/search-results/components/item-picker/index.d.ts +5 -3
  36. package/build/build-esm/search-results/components/search-results-container/flight-search-results.d.ts +6 -0
  37. package/build/build-esm/search-results/store/search-results-slice.d.ts +2 -0
  38. package/build/build-esm/search-results/types.d.ts +31 -1
  39. package/build/build-esm/search-results/utils/flight-utils.d.ts +16 -0
  40. package/build/build-esm/shared/components/flyin.d.ts +9 -0
  41. package/build/build-esm/shared/types.d.ts +6 -0
  42. package/build/build-esm/shared/utils/localization-util.d.ts +91 -0
  43. package/package.json +4 -3
  44. package/rollup.config.js +2 -2
  45. package/src/booking-product/components/dates.tsx +1 -1
  46. package/src/booking-wizard/features/booking/booking-slice.ts +4 -2
  47. package/src/booking-wizard/types.ts +1 -0
  48. package/src/content/components/login.tsx +162 -0
  49. package/src/content/components/slider.tsx +1 -1
  50. package/src/content/features/content-page/content-page-self-contained.tsx +56 -75
  51. package/src/qsm/components/QSMContainer/qsm-container.tsx +197 -75
  52. package/src/qsm/components/double-search-input-group/index.tsx +14 -75
  53. package/src/qsm/components/mobile-filter-modal/index.tsx +18 -11
  54. package/src/qsm/components/search-input/index.tsx +9 -2
  55. package/src/qsm/components/search-input-group/index.tsx +19 -31
  56. package/src/qsm/components/travel-class-picker/index.tsx +1 -0
  57. package/src/qsm/components/travel-input/index.tsx +4 -4
  58. package/src/qsm/components/travel-input-group/index.tsx +4 -3
  59. package/src/qsm/components/travel-nationality-picker/index.tsx +1 -0
  60. package/src/qsm/components/travel-type-picker/index.tsx +1 -0
  61. package/src/qsm/qsm-configuration-context.ts +6 -17
  62. package/src/qsm/store/qsm-slice.ts +13 -1
  63. package/src/qsm/types.ts +19 -39
  64. package/src/search-results/components/filters/flight-filters.tsx +671 -0
  65. package/src/search-results/components/flight/flight-accommodation-results.tsx +20 -562
  66. package/src/search-results/components/flight/flight-banner.tsx +1 -1
  67. package/src/search-results/components/flight/flight-option.tsx +243 -0
  68. package/src/search-results/components/flight/flight-search-context/index.tsx +508 -0
  69. package/src/search-results/components/hotel/hotel-card.tsx +0 -1
  70. package/src/search-results/components/icon.tsx +84 -44
  71. package/src/search-results/components/item-picker/index.tsx +16 -11
  72. package/src/search-results/components/search-results-container/flight-search-results.tsx +120 -0
  73. package/src/search-results/components/search-results-container/search-results-container.tsx +85 -70
  74. package/src/search-results/store/search-results-slice.ts +6 -0
  75. package/src/search-results/types.ts +37 -1
  76. package/src/search-results/utils/flight-utils.ts +106 -0
  77. package/src/shared/components/flyin.tsx +334 -0
  78. package/src/shared/translations/ar-SA.json +13 -1
  79. package/src/shared/translations/da-DK.json +13 -1
  80. package/src/shared/translations/de-DE.json +13 -1
  81. package/src/shared/translations/en-GB.json +13 -1
  82. package/src/shared/translations/es-ES.json +13 -1
  83. package/src/shared/translations/fr-BE.json +13 -1
  84. package/src/shared/translations/fr-FR.json +13 -1
  85. package/src/shared/translations/is-IS.json +13 -1
  86. package/src/shared/translations/it-IT.json +13 -1
  87. package/src/shared/translations/ja-JP.json +13 -1
  88. package/src/shared/translations/nl-BE.json +13 -1
  89. package/src/shared/translations/nl-NL.json +13 -1
  90. package/src/shared/translations/no-NO.json +13 -1
  91. package/src/shared/translations/pl-PL.json +13 -1
  92. package/src/shared/translations/pt-PT.json +13 -1
  93. package/src/shared/translations/sv-SE.json +13 -1
  94. package/src/shared/types.ts +7 -0
  95. package/src/shared/utils/localization-util.ts +71 -0
  96. package/styles/booking-search-results.scss +1 -0
  97. package/styles/components/_flyin.scss +550 -0
  98. package/styles/components/_login.scss +133 -0
  99. package/styles/content-blocks.scss +1 -0
@@ -0,0 +1,550 @@
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
+ &__panel {
23
+ background: #fff;
24
+ height: 100%;
25
+ width: 100%;
26
+ max-width: 100%;
27
+ transform: translateX(100%);
28
+ opacity: 0;
29
+ transition: transform 0.4s ease, opacity 0.4s ease;
30
+ box-shadow: none;
31
+ border-radius: 0;
32
+ position: relative;
33
+ display: flex;
34
+ flex-direction: column;
35
+ overflow-y: auto;
36
+
37
+ @include mixins.media-sm {
38
+ width: 80%;
39
+ box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);
40
+ }
41
+
42
+ @include mixins.media-lg {
43
+ width: 50%;
44
+ }
45
+
46
+ &--active {
47
+ transform: translateX(0%);
48
+ opacity: 1;
49
+ }
50
+ }
51
+
52
+ &__close {
53
+ font-size: 14px;
54
+ cursor: pointer;
55
+ color: pink;
56
+ text-decoration: underline;
57
+ }
58
+
59
+ &__content {
60
+ background: var(--tide-booking-gray-background-light);
61
+
62
+ flex-grow: 1;
63
+ position: relative;
64
+ padding-left: 20px;
65
+ padding-top: 20px;
66
+ padding-right: 20px;
67
+ padding-bottom: 60px;
68
+
69
+ margin-bottom: 30px;
70
+
71
+ @include mixins.media-sm {
72
+ padding-right: 0px;
73
+ }
74
+ &-title {
75
+ font-size: 18px;
76
+ font-weight: 700;
77
+
78
+ &-row {
79
+ display: flex;
80
+ justify-content: space-between;
81
+ margin-bottom: 15px;
82
+ padding-bottom: 10px;
83
+ border-bottom: 1px solid var(--tide-booking-gray-background-light);
84
+ margin-right: 20px;
85
+ }
86
+ }
87
+
88
+ &-arrow {
89
+ height: 40px;
90
+ width: 40px;
91
+ background: var(--tide-booking-white);
92
+ border-radius: 50%;
93
+ cursor: pointer;
94
+ display: flex;
95
+ justify-content: center;
96
+ align-items: center;
97
+ transition: all 0.3s ease;
98
+
99
+ &.is-disabled {
100
+ opacity: 0.4;
101
+ pointer-events: none;
102
+ cursor: default;
103
+ }
104
+
105
+ &:hover {
106
+ background: var(--tide-booking-color-primary);
107
+
108
+ .flyin__content-arrow-icon {
109
+ fill: var(--tide-booking-white);
110
+
111
+ &-- {
112
+ &back {
113
+ transform: rotate(180deg) translateX(2px);
114
+ }
115
+
116
+ &forward {
117
+ transform: rotate(0deg) translateX(2px);
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ &-row {
124
+ display: flex;
125
+ gap: 12px;
126
+ width: 48%;
127
+ justify-content: end;
128
+ align-items: center;
129
+ flex: 0 0 auto;
130
+ order: 2;
131
+ margin-bottom: 10px;
132
+
133
+ @include mixins.media-lg {
134
+ justify-content: start;
135
+ width: auto;
136
+ order: 1;
137
+ margin-bottom: 0;
138
+ }
139
+ }
140
+
141
+ &-icon {
142
+ fill: var(--tide-booking-color-primary-light);
143
+ transition: all 0.3s ease;
144
+
145
+ &--back {
146
+ transform: rotate(180deg) translateX(-2px);
147
+ }
148
+
149
+ &--forward {
150
+ transform: rotate(0deg) translateX(-2px);
151
+ }
152
+ }
153
+ }
154
+
155
+ &-text {
156
+ font-size: 12px;
157
+ color: var(--tide-booking-gray-dark);
158
+
159
+ &-icon {
160
+ position: absolute;
161
+ top: 0;
162
+ left: -20px;
163
+ transform: translateY(50%);
164
+
165
+ &-row {
166
+ display: flex;
167
+ gap: 12px;
168
+ width: 48%;
169
+ align-items: center;
170
+ flex: 0 0 auto;
171
+ order: 2;
172
+ margin-bottom: 10px;
173
+
174
+ @include mixins.media-lg {
175
+ width: auto;
176
+ order: 1;
177
+ margin-bottom: 0;
178
+ }
179
+
180
+ span {
181
+ font-size: var(--tide-booking-black);
182
+ color: var(--tide-booking-gray-dark);
183
+ }
184
+ }
185
+ }
186
+
187
+ &-title {
188
+ font-size: 18px;
189
+ font-weight: 700;
190
+
191
+ &-row {
192
+ position: relative;
193
+ }
194
+ }
195
+
196
+ &-row {
197
+ display: flex;
198
+ justify-content: space-between;
199
+ align-items: center;
200
+ margin-bottom: 15px;
201
+ margin-left: 30px;
202
+ max-width: 600px;
203
+ flex-wrap: wrap;
204
+ row-gap: 10px;
205
+ column-gap: 50px;
206
+ margin-right: 0;
207
+
208
+ @include mixins.media-sm {
209
+ margin-right: 20px;
210
+ }
211
+ }
212
+
213
+ &-col {
214
+ display: flex;
215
+ flex-direction: column;
216
+ gap: 0.75rem;
217
+ flex: 0 0 auto;
218
+ width: 100%;
219
+ order: 1;
220
+ margin-bottom: 10px;
221
+ margin-top: 5px;
222
+
223
+ @include mixins.media-lg {
224
+ width: auto;
225
+ order: 0;
226
+ margin-bottom: 0px;
227
+ margin-top: 0px;
228
+ }
229
+ }
230
+ }
231
+
232
+ &-cards {
233
+ display: flex;
234
+ gap: 15px;
235
+ overflow-x: auto;
236
+ scroll-behavior: smooth;
237
+ width: max-content;
238
+
239
+ -ms-overflow-style: none; // Hide scrollbar for Internet Explorer
240
+ scrollbar-width: none; // Hide scrollbar for Firefox
241
+
242
+ &-wrapper {
243
+ margin-top: -554px;
244
+ margin-bottom: 30px;
245
+ margin-left: 30px;
246
+ position: relative;
247
+ scrollbar-width: none; // Firefox
248
+ -ms-overflow-style: none; // IE 10+
249
+ overflow-x: auto;
250
+
251
+ &::-webkit-scrollbar {
252
+ display: none; // Chrome, Safari, Edge
253
+ }
254
+ }
255
+
256
+ /* Hide scrollbar */
257
+ &::-webkit-scrollbar {
258
+ display: none; // Hide scrollbar for WebKit browsers
259
+ }
260
+
261
+ &:last-child {
262
+ margin-right: 30px;
263
+ }
264
+ }
265
+
266
+ &-card {
267
+ height: 522px;
268
+ width: 100%;
269
+ max-width: 100%;
270
+ min-width: 314px;
271
+
272
+ border-radius: 20px;
273
+
274
+ display: flex;
275
+ flex-direction: column;
276
+ justify-content: space-between;
277
+
278
+ background: var(--tide-booking-white);
279
+ border: 1.5px solid var(--tide-booking-color-primary-extra-fade);
280
+ transition: all 0.4s ease;
281
+ cursor: pointer;
282
+
283
+ @include mixins.media-sm {
284
+ width: 345px;
285
+ }
286
+
287
+ &:hover {
288
+ .flyin__content-card-top {
289
+ background: var(--tide-booking-color-primary-extra-fade);
290
+ }
291
+
292
+ .flyin__content-card-button {
293
+ background: var(--tide-booking-color-primary);
294
+ color: var(--tide-booking-white);
295
+ border: var(--tide-booking-color-primary);
296
+ }
297
+ }
298
+
299
+ &--selected {
300
+ background: var(--tide-booking-color-primary);
301
+ border: 1.25px solid var(--tide-booking-color-primary);
302
+
303
+ .flyin__content-card-top {
304
+ background: var(--tide-booking-color-primary);
305
+ border-bottom: none;
306
+ }
307
+
308
+ .flyin__content-card-top-price {
309
+ color: var(--tide-booking-white);
310
+ }
311
+
312
+ .flyin__content-card-top-tag {
313
+ color: var(--tide-booking-white);
314
+ }
315
+
316
+ .flyin__content-card-middle {
317
+ border-left: 4px solid var(--tide-booking-color-primary);
318
+ border-right: 4px solid var(--tide-booking-color-primary);
319
+ }
320
+ &:hover {
321
+ .flyin__content {
322
+ cursor: default;
323
+ }
324
+ .flyin__content-card-top {
325
+ background: var(--tide-booking-color-primary);
326
+ }
327
+ }
328
+ }
329
+
330
+ &-top {
331
+ min-height: 60px;
332
+ width: 100%;
333
+ background: var(--tide-booking-color-primary);
334
+ border-radius: 16px 16px 0 0;
335
+ display: flex;
336
+ justify-content: space-between;
337
+ align-items: end;
338
+ padding: 0 15px 12px 15px;
339
+ background: var(--tide-booking-white);
340
+ transition: all 0.4s ease;
341
+
342
+ border-bottom: 1px solid var(--tide-booking-color-primary-extra-fade);
343
+
344
+ &-price {
345
+ font-size: 25px;
346
+ color: var(--tide-booking-color-primary-light);
347
+
348
+ /* color: variables.$white; */
349
+ }
350
+
351
+ &-tag {
352
+ font-size: 16px;
353
+ color: var(--tide-booking-black);
354
+ /* color: variables.$white; */
355
+ font-weight: 700;
356
+ }
357
+ }
358
+
359
+ &-middle {
360
+ height: 418px;
361
+ background: var(--tide-booking-white);
362
+
363
+ border-left: 4px solid transparent;
364
+ border-right: 4px solid transparent;
365
+ transition: all 0.4s ease;
366
+
367
+ &-rows {
368
+ display: flex;
369
+ flex-direction: column;
370
+ gap: 10px;
371
+ padding: 30px 15px 0 15px;
372
+ max-height: 358px;
373
+ }
374
+
375
+ &-row {
376
+ display: flex;
377
+ justify-content: space-between;
378
+ align-items: center;
379
+ padding-bottom: 5px;
380
+ border-bottom: 1px dashed var(--tide-booking-color-primary-extra-fade);
381
+
382
+ &-left {
383
+ font-size: var(--tide-booking-black);
384
+ color: var(--tide-booking-gray-dark);
385
+ }
386
+ &-right {
387
+ font-size: var(--tide-booking-black);
388
+ }
389
+ }
390
+ }
391
+
392
+ &-bottom {
393
+ height: 30px;
394
+ background: var(--tide-booking-color-primary);
395
+ border-radius: 0 0 15px 15px;
396
+ display: flex;
397
+ justify-content: center;
398
+ align-items: center;
399
+ color: var(--tide-booking-white);
400
+ font-size: 14px;
401
+ transition: all 0.4s ease;
402
+ }
403
+
404
+ &-button {
405
+ height: 60px;
406
+ border: 1.25px solid var(--tide-booking-color-primary);
407
+ border-radius: 3px;
408
+ display: flex;
409
+ justify-content: center;
410
+ align-items: center;
411
+ color: var(--tide-booking-color-primary);
412
+ margin: 10px;
413
+ cursor: pointer;
414
+ font-size: 14px;
415
+ transition: all 0.2s ease;
416
+ }
417
+ }
418
+
419
+ &-data {
420
+ display: grid;
421
+ gap: 10px;
422
+
423
+ max-height: 305px;
424
+ overflow-y: auto;
425
+
426
+ &__title {
427
+ font-size: 18px;
428
+ color: var(--tide-booking-gray-dark);
429
+ }
430
+
431
+ &__item {
432
+ display: grid;
433
+ grid-template-columns: auto 1fr auto;
434
+ gap: 10px;
435
+ align-items: flex-start;
436
+
437
+ &-icon {
438
+ margin-top: 3px;
439
+ fill: #707070;
440
+
441
+ svg {
442
+ width: 20px;
443
+ height: 20px;
444
+ }
445
+
446
+ &--other {
447
+ margin-top: 0;
448
+ }
449
+ }
450
+
451
+ &-content {
452
+ display: flex;
453
+ flex-direction: column;
454
+ gap: 3px;
455
+
456
+ &-title {
457
+ font-size: 16px;
458
+ font-weight: 700;
459
+ margin-top: 0.125rem;
460
+ }
461
+
462
+ &-description {
463
+ font-size: 16px;
464
+ color: var(--tide-booking-gray-dark);
465
+
466
+ @include mixins.media-sm {
467
+ overflow-wrap: break-word;
468
+ inline-size: 60vw;
469
+ }
470
+
471
+ &--last {
472
+ margin-top: 5px;
473
+ }
474
+
475
+ &--list {
476
+ list-style-type: disc;
477
+ padding-left: 10px;
478
+ margin-top: 5px;
479
+
480
+ li {
481
+ margin-bottom: 5px;
482
+ }
483
+ }
484
+ }
485
+ }
486
+
487
+ &-price {
488
+ font-size: 16px;
489
+ color: var(--tide-booking-gray-dark);
490
+ white-space: nowrap;
491
+ margin-left: 15px;
492
+ margin-top: 5px;
493
+ }
494
+ }
495
+ }
496
+ }
497
+
498
+ &__button {
499
+ height: 30px;
500
+ width: 100%;
501
+ border: 1.25px solid var(--tide-booking-color-primary);
502
+ border-radius: 3px;
503
+ display: flex;
504
+ justify-content: center;
505
+ align-items: center;
506
+ background: var(--tide-booking-color-primary);
507
+ color: var(--tide-booking-white);
508
+ margin: 1rem;
509
+ cursor: pointer;
510
+ font-size: 14px;
511
+ transition: all 0.2s ease;
512
+
513
+ @include mixins.media-sm {
514
+ width: 216px;
515
+ }
516
+
517
+ &-wrapper {
518
+ display: flex;
519
+ justify-content: end;
520
+ margin: -1rem 1rem 0 1rem;
521
+
522
+ @include mixins.media-sm {
523
+ margin: 2rem 4rem 2rem 0;
524
+ }
525
+
526
+ &--white {
527
+ margin: 0 1rem 0 1rem;
528
+ @include mixins.media-sm {
529
+ margin: 2rem 4rem 2rem 0;
530
+ }
531
+ }
532
+ }
533
+
534
+ &:hover {
535
+ background: var(--tide-booking-color-primary);
536
+ border: var(--tide-booking-color-primary);
537
+ }
538
+
539
+ &--white {
540
+ background: var(--tide-booking-white);
541
+ color: var(--tide-booking-color-primary);
542
+ margin-top: 0;
543
+
544
+ &:hover {
545
+ background: var(--tide-booking-color-primary-light);
546
+ border: var(--tide-booking-color-primary-light);
547
+ }
548
+ }
549
+ }
550
+ }
@@ -0,0 +1,133 @@
1
+ @use '../components/mixins' as mixins;
2
+
3
+ * {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ .login {
8
+ display: flex;
9
+ align-items: center;
10
+ height: 100vh;
11
+
12
+ &__img {
13
+ width: 100%;
14
+ height: 100vh;
15
+ object-fit: cover;
16
+
17
+ &__wrapper {
18
+ position: fixed;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+
24
+ &::before {
25
+ content: '';
26
+ position: absolute;
27
+ top: 50%;
28
+ left: 50%;
29
+ transform: translate(-50%, -50%);
30
+ width: 100%;
31
+ height: 100%;
32
+ background-color: rgba(0, 0, 0, 0.3);
33
+ }
34
+ }
35
+ }
36
+
37
+ &__container {
38
+ @include mixins.container-wide();
39
+ display: flex;
40
+ flex-direction: column;
41
+ align-items: center;
42
+ gap: 20px;
43
+ z-index: 2;
44
+
45
+ @include media-md {
46
+ justify-content: center;
47
+ flex-direction: row;
48
+ gap: 40px;
49
+ }
50
+ }
51
+
52
+ &__content {
53
+ h1,
54
+ p {
55
+ color: white;
56
+ }
57
+
58
+ p {
59
+ font-size: 18px;
60
+ line-height: 1.5;
61
+ }
62
+ }
63
+
64
+ &__card {
65
+ display: flex;
66
+ flex-direction: column;
67
+ gap: 20px;
68
+ background-color: white;
69
+ border: none;
70
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
71
+ border-radius: 24px;
72
+ padding: 30px;
73
+ max-width: 600px;
74
+ width: 100%;
75
+
76
+ @include media-md {
77
+ padding: 60px;
78
+ }
79
+
80
+ &__title {
81
+ text-align: center;
82
+ }
83
+ }
84
+
85
+ &__logo {
86
+ width: 250px;
87
+ height: auto;
88
+ margin: 0 auto;
89
+
90
+ svg,
91
+ img {
92
+ height: 100%;
93
+ width: 100%;
94
+ display: block;
95
+ }
96
+ }
97
+
98
+ &__form {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: 20px;
102
+ border: none;
103
+
104
+ &__group {
105
+ display: flex;
106
+ flex-direction: column;
107
+ gap: 10px;
108
+ }
109
+ }
110
+
111
+ &__error {
112
+ margin-bottom: 1rem;
113
+ padding: 0.75rem;
114
+ background: #ffe5e5;
115
+ color: #d60000;
116
+ border-radius: 6px;
117
+ font-size: 0.9rem;
118
+ }
119
+
120
+ &__forgot {
121
+ margin-top: 1rem;
122
+ background: none;
123
+ border: none;
124
+ color: #333399;
125
+ cursor: pointer;
126
+ font-size: 0.9rem;
127
+ text-align: center;
128
+
129
+ &:hover {
130
+ text-decoration: underline;
131
+ }
132
+ }
133
+ }
@@ -23,6 +23,7 @@ body {
23
23
  @import './components/breadcrumb';
24
24
  @import './components/gallery';
25
25
  @import './components/faq';
26
+ @import './components/login';
26
27
  @import './components/accordion';
27
28
  @import './components/footer';
28
29