@qite/tide-booking-component 1.4.2 → 1.4.5

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 (132) 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/phone-input.d.ts +17 -0
  5. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +41 -12
  6. package/build/build-cjs/booking-wizard/features/summary/summary-flight.d.ts +2 -2
  7. package/build/build-cjs/booking-wizard/features/travelers-form/controls/gender-control.d.ts +5 -0
  8. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-util.d.ts +7 -0
  9. package/build/build-cjs/booking-wizard/features/travelers-form/validate-form.d.ts +2 -2
  10. package/build/build-cjs/booking-wizard/types.d.ts +13 -0
  11. package/build/build-cjs/index.js +458 -273
  12. package/build/build-cjs/shared/utils/localization-util.d.ts +3 -0
  13. package/build/build-esm/booking-wizard/components/phone-input.d.ts +17 -0
  14. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +41 -12
  15. package/build/build-esm/booking-wizard/features/summary/summary-flight.d.ts +2 -2
  16. package/build/build-esm/booking-wizard/features/travelers-form/controls/gender-control.d.ts +5 -0
  17. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-util.d.ts +7 -0
  18. package/build/build-esm/booking-wizard/features/travelers-form/validate-form.d.ts +2 -2
  19. package/build/build-esm/booking-wizard/types.d.ts +13 -0
  20. package/build/build-esm/index.js +460 -275
  21. package/build/build-esm/shared/utils/localization-util.d.ts +3 -0
  22. package/package.json +1 -1
  23. package/rollup.config.js +23 -23
  24. package/src/booking-product/components/age-select.tsx +35 -35
  25. package/src/booking-product/components/amount-input.tsx +78 -78
  26. package/src/booking-product/components/date-range-picker/calendar-day.tsx +58 -58
  27. package/src/booking-product/components/date-range-picker/calendar.tsx +178 -178
  28. package/src/booking-product/components/date-range-picker/index.tsx +196 -196
  29. package/src/booking-product/components/dates.tsx +136 -136
  30. package/src/booking-product/components/footer.tsx +69 -69
  31. package/src/booking-product/components/header.tsx +79 -79
  32. package/src/booking-product/components/icon.tsx +251 -251
  33. package/src/booking-product/components/rating.tsx +21 -21
  34. package/src/booking-product/components/rooms.tsx +199 -199
  35. package/src/booking-product/index.tsx +30 -30
  36. package/src/booking-product/settings-context.ts +14 -14
  37. package/src/booking-product/types.ts +28 -28
  38. package/src/booking-product/utils/api.ts +25 -25
  39. package/src/booking-product/utils/price.ts +28 -28
  40. package/src/booking-wizard/api-settings-slice.ts +24 -24
  41. package/src/booking-wizard/components/icon.tsx +508 -508
  42. package/src/booking-wizard/components/labeled-input.tsx +64 -64
  43. package/src/booking-wizard/components/labeled-select.tsx +69 -69
  44. package/src/booking-wizard/components/message.tsx +34 -34
  45. package/src/booking-wizard/components/multi-range-filter.tsx +113 -113
  46. package/src/booking-wizard/components/phone-input.tsx +181 -0
  47. package/src/booking-wizard/components/product-card.tsx +37 -37
  48. package/src/booking-wizard/components/step-indicator.tsx +51 -51
  49. package/src/booking-wizard/components/step-route.tsx +27 -27
  50. package/src/booking-wizard/declarations.d.ts +4 -4
  51. package/src/booking-wizard/features/booking/api.ts +49 -49
  52. package/src/booking-wizard/features/booking/booking-slice.ts +2 -0
  53. package/src/booking-wizard/features/booking/booking.tsx +28 -28
  54. package/src/booking-wizard/features/booking/constants.ts +16 -16
  55. package/src/booking-wizard/features/booking/selectors.ts +17 -14
  56. package/src/booking-wizard/features/error/error.tsx +78 -78
  57. package/src/booking-wizard/features/flight-options/flight-filter.tsx +432 -432
  58. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +385 -385
  59. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +229 -229
  60. package/src/booking-wizard/features/flight-options/flight-option.tsx +80 -80
  61. package/src/booking-wizard/features/flight-options/index.tsx +196 -196
  62. package/src/booking-wizard/features/price-details/price-details-api.ts +24 -24
  63. package/src/booking-wizard/features/price-details/price-details-slice.ts +178 -178
  64. package/src/booking-wizard/features/price-details/util.ts +155 -155
  65. package/src/booking-wizard/features/product-options/no-options.tsx +21 -21
  66. package/src/booking-wizard/features/product-options/none-option.tsx +121 -121
  67. package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +64 -64
  68. package/src/booking-wizard/features/product-options/option-booking-group.tsx +216 -216
  69. package/src/booking-wizard/features/product-options/option-item.tsx +321 -321
  70. package/src/booking-wizard/features/product-options/option-pax-card.tsx +201 -201
  71. package/src/booking-wizard/features/product-options/option-pax-group.tsx +175 -175
  72. package/src/booking-wizard/features/product-options/option-unit-group.tsx +198 -198
  73. package/src/booking-wizard/features/product-options/option-units-card.tsx +185 -185
  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 +161 -161
  77. package/src/booking-wizard/features/room-options/traveler-rooms.tsx +75 -75
  78. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +4 -2
  79. package/src/booking-wizard/features/sidebar/sidebar-util.ts +2 -0
  80. package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -25
  81. package/src/booking-wizard/features/summary/summary-flight.tsx +7 -6
  82. package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +69 -69
  83. package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +63 -63
  84. package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +66 -66
  85. package/src/booking-wizard/features/summary/summary-slice.ts +28 -28
  86. package/src/booking-wizard/features/summary/summary.tsx +91 -62
  87. package/src/booking-wizard/features/travelers-form/controls/gender-control.tsx +70 -0
  88. package/src/booking-wizard/features/travelers-form/travelers-form-util.ts +11 -0
  89. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +451 -313
  90. package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +101 -101
  91. package/src/booking-wizard/features/travelers-form/validate-form.ts +84 -98
  92. package/src/booking-wizard/index.tsx +36 -36
  93. package/src/booking-wizard/store.ts +31 -31
  94. package/src/booking-wizard/types.ts +15 -0
  95. package/src/index.ts +4 -4
  96. package/src/shared/components/loader.tsx +16 -16
  97. package/src/shared/translations/en-GB.json +3 -0
  98. package/src/shared/translations/fr-BE.json +3 -0
  99. package/src/shared/translations/nl-BE.json +3 -0
  100. package/src/shared/types.ts +4 -4
  101. package/src/shared/utils/class-util.ts +9 -9
  102. package/src/shared/utils/localization-util.ts +62 -62
  103. package/src/shared/utils/query-string-util.ts +119 -119
  104. package/styles/booking-product-variables.scss +394 -394
  105. package/styles/booking-product.scss +446 -446
  106. package/styles/booking-wizard.scss +1 -0
  107. package/styles/components/_animations.scss +39 -39
  108. package/styles/components/_base.scss +107 -107
  109. package/styles/components/_button.scss +238 -238
  110. package/styles/components/_checkbox.scss +219 -219
  111. package/styles/components/_cta.scss +208 -208
  112. package/styles/components/_date-list.scss +41 -41
  113. package/styles/components/_date-range-picker.scss +225 -225
  114. package/styles/components/_decrement-increment.scss +35 -35
  115. package/styles/components/_flight-option.scss +1429 -1429
  116. package/styles/components/_info-message.scss +71 -71
  117. package/styles/components/_input.scss +25 -25
  118. package/styles/components/_list.scss +187 -187
  119. package/styles/components/_loader.scss +72 -72
  120. package/styles/components/_mixins.scss +550 -550
  121. package/styles/components/_phone-input.scss +8 -0
  122. package/styles/components/_placeholders.scss +166 -166
  123. package/styles/components/_pricing-summary.scss +155 -155
  124. package/styles/components/_qsm.scss +17 -17
  125. package/styles/components/_radiobutton.scss +170 -170
  126. package/styles/components/_select-wrapper.scss +80 -80
  127. package/styles/components/_spinner.scss +29 -29
  128. package/styles/components/_table.scss +81 -81
  129. package/styles/components/_tree.scss +530 -530
  130. package/styles/components/_typeahead.scss +281 -281
  131. package/styles/components/_variables.scss +89 -89
  132. package/tsconfig.json +24 -24
@@ -1,71 +1,71 @@
1
- .info-message {
2
- display: flex;
3
-
4
- &__copy {
5
- padding-left: 15px;
6
- @include column;
7
- }
8
-
9
- p:last-child {
10
- margin-bottom: 0;
11
- }
12
-
13
- &--error {
14
- color: var(--tide-booking-invalid);
15
- }
16
-
17
- .icon {
18
- width: 20px;
19
- height: 20px;
20
- flex-shrink: 0;
21
- margin-top: -15px * 0.2;
22
- }
23
-
24
- &__voucher {
25
- margin-top: 15px;
26
-
27
- &__input {
28
- min-height: 45px;
29
- }
30
-
31
- &__valid {
32
- display: flex;
33
- align-items: center;
34
- gap: 10px;
35
- }
36
-
37
- &__list {
38
- display: flex;
39
- align-items: center;
40
- gap: 5px;
41
- }
42
- }
43
- }
44
-
45
- .booking .info-message {
46
- &__copy {
47
- padding-left: 0;
48
-
49
- p {
50
- font-size: 16px;
51
- line-height: 1.6;
52
- }
53
-
54
- .checkbox {
55
- font-size: 16px;
56
- line-height: 1.6;
57
- }
58
- }
59
-
60
- .checkbox + .checkbox {
61
- margin-top: 10px;
62
-
63
- @include media-xl {
64
- margin-top: 5px;
65
- }
66
- }
67
-
68
- .icon--ui-tooltip {
69
- display: none;
70
- }
71
- }
1
+ .info-message {
2
+ display: flex;
3
+
4
+ &__copy {
5
+ padding-left: 15px;
6
+ @include column;
7
+ }
8
+
9
+ p:last-child {
10
+ margin-bottom: 0;
11
+ }
12
+
13
+ &--error {
14
+ color: var(--tide-booking-invalid);
15
+ }
16
+
17
+ .icon {
18
+ width: 20px;
19
+ height: 20px;
20
+ flex-shrink: 0;
21
+ margin-top: -15px * 0.2;
22
+ }
23
+
24
+ &__voucher {
25
+ margin-top: 15px;
26
+
27
+ &__input {
28
+ min-height: 45px;
29
+ }
30
+
31
+ &__valid {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: 10px;
35
+ }
36
+
37
+ &__list {
38
+ display: flex;
39
+ align-items: center;
40
+ gap: 5px;
41
+ }
42
+ }
43
+ }
44
+
45
+ .booking .info-message {
46
+ &__copy {
47
+ padding-left: 0;
48
+
49
+ p {
50
+ font-size: 16px;
51
+ line-height: 1.6;
52
+ }
53
+
54
+ .checkbox {
55
+ font-size: 16px;
56
+ line-height: 1.6;
57
+ }
58
+ }
59
+
60
+ .checkbox + .checkbox {
61
+ margin-top: 10px;
62
+
63
+ @include media-xl {
64
+ margin-top: 5px;
65
+ }
66
+ }
67
+
68
+ .icon--ui-tooltip {
69
+ display: none;
70
+ }
71
+ }
@@ -1,25 +1,25 @@
1
- input::-webkit-outer-spin-button,
2
- input::-webkit-inner-spin-button {
3
- -webkit-appearance: none;
4
- margin: 0;
5
- }
6
-
7
- input[type="number"] {
8
- -moz-appearance: textfield;
9
- }
10
-
11
- input::-webkit-calendar-picker-indicator {
12
- display: none;
13
- }
14
-
15
- input[type="date"]::-webkit-input-placeholder {
16
- visibility: hidden !important;
17
- }
18
-
19
- input,
20
- select,
21
- textarea {
22
- appearance: none;
23
- -moz-appearance: none;
24
- -webkit-appearance: none;
25
- }
1
+ input::-webkit-outer-spin-button,
2
+ input::-webkit-inner-spin-button {
3
+ -webkit-appearance: none;
4
+ margin: 0;
5
+ }
6
+
7
+ input[type="number"] {
8
+ -moz-appearance: textfield;
9
+ }
10
+
11
+ input::-webkit-calendar-picker-indicator {
12
+ display: none;
13
+ }
14
+
15
+ input[type="date"]::-webkit-input-placeholder {
16
+ visibility: hidden !important;
17
+ }
18
+
19
+ input,
20
+ select,
21
+ textarea {
22
+ appearance: none;
23
+ -moz-appearance: none;
24
+ -webkit-appearance: none;
25
+ }
@@ -1,187 +1,187 @@
1
- .list {
2
- display: flex;
3
- flex-direction: column;
4
-
5
- &--booking-summary {
6
- .list__item {
7
- margin: 5px 0;
8
- }
9
- }
10
-
11
- &--usps {
12
- li {
13
- position: relative;
14
- padding-left: 20px;
15
- list-style-type: none;
16
- @extend %transition-easing;
17
-
18
- @include media-xs {
19
- padding-left: 20px;
20
- }
21
-
22
- &:before {
23
- content: "";
24
- position: absolute;
25
- width: 18px;
26
- height: 6px;
27
- left: 0;
28
- top: 3px;
29
- transform: rotate(-45deg);
30
- // border-left: 0.2rem solid $color-primary;
31
- // border-bottom: 0.2rem solid $color-primary;
32
- @extend %transition-easing;
33
-
34
- @include media-xs {
35
- width: 22px;
36
- height: 8px;
37
- }
38
- }
39
- }
40
-
41
- .list {
42
- &__item {
43
- position: relative;
44
- padding-left: 20px;
45
- list-style-type: none;
46
- @extend %transition-easing;
47
- margin-right: 10px;
48
- font-weight: 400;
49
- line-height: 18px;
50
- font-size: 14px;
51
- font-weight: var(--tide-booking-room-options-usp-list-font-weight);
52
- color: var(--tide-booking-room-options-usp-list-color);
53
-
54
- @include media-xs {
55
- padding-left: 20px;
56
- font-size: 16px;
57
- line-height: 20px;
58
- }
59
-
60
- &:before {
61
- content: "";
62
- position: absolute;
63
- width: 12px;
64
- height: 6px;
65
- left: 0rem;
66
- top: 35%;
67
- transform: rotate(-45deg) translateY(-50%);
68
- border-left: 2px solid
69
- var(--tide-booking-room-options-usp-list-icon-color);
70
- border-bottom: 2px solid
71
- var(--tide-booking-room-options-usp-list-icon-color);
72
- @extend %transition-easing;
73
-
74
- @include media-xs {
75
- height: 8px;
76
- }
77
- }
78
- }
79
- }
80
- }
81
-
82
- &--inline {
83
- flex-direction: row;
84
- margin: 0;
85
- list-style-type: none;
86
-
87
- .list__item {
88
- & + .list__item {
89
- margin-bottom: 30px;
90
- }
91
- }
92
- }
93
-
94
- &--plain {
95
- list-style-type: none;
96
- margin: 0;
97
-
98
- li {
99
- font-size: 16px;
100
- line-height: 1.6;
101
- }
102
- }
103
-
104
- &--socials {
105
- svg {
106
- // fill: $color-primary;
107
- }
108
-
109
- .list__item {
110
- & + .list__item {
111
- margin-left: 15px * 2;
112
- }
113
- }
114
- }
115
-
116
- &--summary {
117
- margin-bottom: 30px;
118
- }
119
-
120
- &--two-column {
121
- margin-bottom: -15px;
122
- flex-flow: row wrap;
123
-
124
- .list__item {
125
- width: 100%;
126
- margin-bottom: 15px;
127
-
128
- @include media-xs {
129
- width: 50%;
130
- padding-right: 15px * 3;
131
- }
132
- }
133
-
134
- ul {
135
- width: 100%;
136
- padding: 0;
137
- margin: 0;
138
- margin-bottom: -15px;
139
- display: flex;
140
- flex-flow: row wrap;
141
- }
142
-
143
- li {
144
- width: 100%;
145
- margin-bottom: 15px;
146
-
147
- @include media-xs {
148
- width: 50%;
149
- padding-right: 15px * 3;
150
- }
151
- }
152
- }
153
-
154
- &--three-column {
155
- ul {
156
- width: 100%;
157
- padding: 0;
158
- margin: 0;
159
- margin-bottom: -15px;
160
- display: flex;
161
- flex-flow: row wrap;
162
- }
163
-
164
- li {
165
- width: 100%;
166
- margin-bottom: 15px;
167
-
168
- @include media-xs {
169
- width: 100%;
170
- padding-right: 0;
171
- }
172
-
173
- @include media-sm {
174
- width: 100%;
175
- }
176
-
177
- @include media-lg {
178
- width: 50%;
179
- padding-right: 15px * 3;
180
- }
181
-
182
- @include media-xxl {
183
- width: 33%;
184
- }
185
- }
186
- }
187
- }
1
+ .list {
2
+ display: flex;
3
+ flex-direction: column;
4
+
5
+ &--booking-summary {
6
+ .list__item {
7
+ margin: 5px 0;
8
+ }
9
+ }
10
+
11
+ &--usps {
12
+ li {
13
+ position: relative;
14
+ padding-left: 20px;
15
+ list-style-type: none;
16
+ @extend %transition-easing;
17
+
18
+ @include media-xs {
19
+ padding-left: 20px;
20
+ }
21
+
22
+ &:before {
23
+ content: "";
24
+ position: absolute;
25
+ width: 18px;
26
+ height: 6px;
27
+ left: 0;
28
+ top: 3px;
29
+ transform: rotate(-45deg);
30
+ // border-left: 0.2rem solid $color-primary;
31
+ // border-bottom: 0.2rem solid $color-primary;
32
+ @extend %transition-easing;
33
+
34
+ @include media-xs {
35
+ width: 22px;
36
+ height: 8px;
37
+ }
38
+ }
39
+ }
40
+
41
+ .list {
42
+ &__item {
43
+ position: relative;
44
+ padding-left: 20px;
45
+ list-style-type: none;
46
+ @extend %transition-easing;
47
+ margin-right: 10px;
48
+ font-weight: 400;
49
+ line-height: 18px;
50
+ font-size: 14px;
51
+ font-weight: var(--tide-booking-room-options-usp-list-font-weight);
52
+ color: var(--tide-booking-room-options-usp-list-color);
53
+
54
+ @include media-xs {
55
+ padding-left: 20px;
56
+ font-size: 16px;
57
+ line-height: 20px;
58
+ }
59
+
60
+ &:before {
61
+ content: "";
62
+ position: absolute;
63
+ width: 12px;
64
+ height: 6px;
65
+ left: 0rem;
66
+ top: 35%;
67
+ transform: rotate(-45deg) translateY(-50%);
68
+ border-left: 2px solid
69
+ var(--tide-booking-room-options-usp-list-icon-color);
70
+ border-bottom: 2px solid
71
+ var(--tide-booking-room-options-usp-list-icon-color);
72
+ @extend %transition-easing;
73
+
74
+ @include media-xs {
75
+ height: 8px;
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+
82
+ &--inline {
83
+ flex-direction: row;
84
+ margin: 0;
85
+ list-style-type: none;
86
+
87
+ .list__item {
88
+ & + .list__item {
89
+ margin-bottom: 30px;
90
+ }
91
+ }
92
+ }
93
+
94
+ &--plain {
95
+ list-style-type: none;
96
+ margin: 0;
97
+
98
+ li {
99
+ font-size: 16px;
100
+ line-height: 1.6;
101
+ }
102
+ }
103
+
104
+ &--socials {
105
+ svg {
106
+ // fill: $color-primary;
107
+ }
108
+
109
+ .list__item {
110
+ & + .list__item {
111
+ margin-left: 15px * 2;
112
+ }
113
+ }
114
+ }
115
+
116
+ &--summary {
117
+ margin-bottom: 30px;
118
+ }
119
+
120
+ &--two-column {
121
+ margin-bottom: -15px;
122
+ flex-flow: row wrap;
123
+
124
+ .list__item {
125
+ width: 100%;
126
+ margin-bottom: 15px;
127
+
128
+ @include media-xs {
129
+ width: 50%;
130
+ padding-right: 15px * 3;
131
+ }
132
+ }
133
+
134
+ ul {
135
+ width: 100%;
136
+ padding: 0;
137
+ margin: 0;
138
+ margin-bottom: -15px;
139
+ display: flex;
140
+ flex-flow: row wrap;
141
+ }
142
+
143
+ li {
144
+ width: 100%;
145
+ margin-bottom: 15px;
146
+
147
+ @include media-xs {
148
+ width: 50%;
149
+ padding-right: 15px * 3;
150
+ }
151
+ }
152
+ }
153
+
154
+ &--three-column {
155
+ ul {
156
+ width: 100%;
157
+ padding: 0;
158
+ margin: 0;
159
+ margin-bottom: -15px;
160
+ display: flex;
161
+ flex-flow: row wrap;
162
+ }
163
+
164
+ li {
165
+ width: 100%;
166
+ margin-bottom: 15px;
167
+
168
+ @include media-xs {
169
+ width: 100%;
170
+ padding-right: 0;
171
+ }
172
+
173
+ @include media-sm {
174
+ width: 100%;
175
+ }
176
+
177
+ @include media-lg {
178
+ width: 50%;
179
+ padding-right: 15px * 3;
180
+ }
181
+
182
+ @include media-xxl {
183
+ width: 33%;
184
+ }
185
+ }
186
+ }
187
+ }