@qite/tide-booking-component 1.4.95 → 1.4.97

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 (453) hide show
  1. package/README.md +24 -24
  2. package/build/build-cjs/index.js +48813 -29709
  3. package/build/build-cjs/src/booking-product/components/age-select.d.ts +3 -3
  4. package/build/build-cjs/src/booking-product/components/amount-input.d.ts +5 -5
  5. package/build/build-cjs/src/booking-product/components/date-range-picker/calendar-day.d.ts +8 -8
  6. package/build/build-cjs/src/booking-product/components/date-range-picker/calendar.d.ts +14 -14
  7. package/build/build-cjs/src/booking-product/components/date-range-picker/index.d.ts +16 -19
  8. package/build/build-cjs/src/booking-product/components/dates.d.ts +8 -8
  9. package/build/build-cjs/src/booking-product/components/footer.d.ts +5 -5
  10. package/build/build-cjs/src/booking-product/components/header.d.ts +6 -6
  11. package/build/build-cjs/src/booking-product/components/icon.d.ts +5 -5
  12. package/build/build-cjs/src/booking-product/components/list-view.d.ts +2 -2
  13. package/build/build-cjs/src/booking-product/components/product.d.ts +4 -4
  14. package/build/build-cjs/src/booking-product/components/rating.d.ts +1 -1
  15. package/build/build-cjs/src/booking-product/components/rooms.d.ts +4 -4
  16. package/build/build-cjs/src/booking-product/constants.d.ts +1 -1
  17. package/build/build-cjs/src/booking-product/index.d.ts +4 -4
  18. package/build/build-cjs/src/booking-product/settings-context.d.ts +1 -2
  19. package/build/build-cjs/src/booking-product/types.d.ts +21 -21
  20. package/build/build-cjs/src/booking-product/utils/api.d.ts +11 -2
  21. package/build/build-cjs/src/booking-product/utils/price.d.ts +10 -1
  22. package/build/build-cjs/src/booking-wizard/api-settings-slice.d.ts +3 -2
  23. package/build/build-cjs/src/booking-wizard/components/icon.d.ts +5 -5
  24. package/build/build-cjs/src/booking-wizard/components/labeled-input.d.ts +13 -13
  25. package/build/build-cjs/src/booking-wizard/components/labeled-select.d.ts +16 -16
  26. package/build/build-cjs/src/booking-wizard/components/message.d.ts +4 -4
  27. package/build/build-cjs/src/booking-wizard/components/multi-range-filter.d.ts +6 -6
  28. package/build/build-cjs/src/booking-wizard/components/phone-input.d.ts +11 -11
  29. package/build/build-cjs/src/booking-wizard/components/print-offer-button.d.ts +11 -11
  30. package/build/build-cjs/src/booking-wizard/components/product-card.d.ts +3 -3
  31. package/build/build-cjs/src/booking-wizard/components/step-indicator.d.ts +1 -1
  32. package/build/build-cjs/src/booking-wizard/components/step-route.d.ts +3 -3
  33. package/build/build-cjs/src/booking-wizard/features/booking/api.d.ts +26 -7
  34. package/build/build-cjs/src/booking-wizard/features/booking/booking-self-contained.d.ts +3 -3
  35. package/build/build-cjs/src/booking-wizard/features/booking/booking-slice.d.ts +102 -43
  36. package/build/build-cjs/src/booking-wizard/features/booking/booking.d.ts +3 -3
  37. package/build/build-cjs/src/booking-wizard/features/booking/constants.d.ts +8 -1
  38. package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +644 -479
  39. package/build/build-cjs/src/booking-wizard/features/confirmation/confirmation.d.ts +1 -2
  40. package/build/build-cjs/src/booking-wizard/features/error/error.d.ts +1 -2
  41. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-filter.d.ts +3 -3
  42. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +2 -2
  43. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option.d.ts +4 -4
  44. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-utils.d.ts +9 -2
  45. package/build/build-cjs/src/booking-wizard/features/flight-options/index.d.ts +1 -2
  46. package/build/build-cjs/src/booking-wizard/features/price-details/price-details-api.d.ts +6 -1
  47. package/build/build-cjs/src/booking-wizard/features/price-details/price-details-slice.d.ts +15 -10
  48. package/build/build-cjs/src/booking-wizard/features/price-details/selectors.d.ts +302 -287
  49. package/build/build-cjs/src/booking-wizard/features/product-options/none-option.d.ts +3 -3
  50. package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +2 -2
  51. package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-group.d.ts +6 -6
  52. package/build/build-cjs/src/booking-wizard/features/product-options/option-item.d.ts +5 -5
  53. package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-card.d.ts +4 -4
  54. package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-group.d.ts +7 -7
  55. package/build/build-cjs/src/booking-wizard/features/product-options/option-room.d.ts +5 -5
  56. package/build/build-cjs/src/booking-wizard/features/product-options/option-unit-group.d.ts +7 -7
  57. package/build/build-cjs/src/booking-wizard/features/product-options/option-units-card.d.ts +3 -3
  58. package/build/build-cjs/src/booking-wizard/features/product-options/options-form.d.ts +1 -2
  59. package/build/build-cjs/src/booking-wizard/features/room-options/index.d.ts +1 -2
  60. package/build/build-cjs/src/booking-wizard/features/room-options/room-utils.d.ts +19 -6
  61. package/build/build-cjs/src/booking-wizard/features/room-options/room.d.ts +6 -6
  62. package/build/build-cjs/src/booking-wizard/features/room-options/traveler-rooms.d.ts +3 -3
  63. package/build/build-cjs/src/booking-wizard/features/sidebar/index.d.ts +2 -2
  64. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +2 -2
  65. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-util.d.ts +4 -2
  66. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar.d.ts +24 -24
  67. package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +1 -1
  68. package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +1 -1
  69. package/build/build-cjs/src/booking-wizard/features/summary/summary-flight.d.ts +2 -2
  70. package/build/build-cjs/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +1 -1
  71. package/build/build-cjs/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +1 -1
  72. package/build/build-cjs/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +1 -1
  73. package/build/build-cjs/src/booking-wizard/features/summary/summary-slice.d.ts +3 -3
  74. package/build/build-cjs/src/booking-wizard/features/summary/summary.d.ts +1 -2
  75. package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +75 -75
  76. package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +4 -4
  77. package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form.d.ts +1 -2
  78. package/build/build-cjs/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +11 -11
  79. package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +8 -1
  80. package/build/build-cjs/src/booking-wizard/index.d.ts +6 -6
  81. package/build/build-cjs/src/booking-wizard/settings-context.d.ts +1 -2
  82. package/build/build-cjs/src/booking-wizard/store.d.ts +40 -22
  83. package/build/build-cjs/src/booking-wizard/types.d.ts +240 -240
  84. package/build/build-cjs/src/booking-wizard/use-offer-printer.d.ts +8 -8
  85. package/build/build-cjs/src/content/components/LanguageSwitcher.d.ts +5 -5
  86. package/build/build-cjs/src/content/components/accordion.d.ts +4 -4
  87. package/build/build-cjs/src/content/components/breadcrumb.d.ts +7 -7
  88. package/build/build-cjs/src/content/components/faq.d.ts +4 -4
  89. package/build/build-cjs/src/content/components/gallery.d.ts +6 -6
  90. package/build/build-cjs/src/content/components/icon.d.ts +5 -5
  91. package/build/build-cjs/src/content/components/image-with-text.d.ts +18 -18
  92. package/build/build-cjs/src/content/components/slider.d.ts +5 -5
  93. package/build/build-cjs/src/content/featured-trips/types.d.ts +8 -8
  94. package/build/build-cjs/src/content/features/content-page/content-page-self-contained.d.ts +1 -1
  95. package/build/build-cjs/src/content/footer/types.d.ts +17 -17
  96. package/build/build-cjs/src/content/header/types.d.ts +23 -20
  97. package/build/build-cjs/src/content/image-card-grid/types.d.ts +8 -8
  98. package/build/build-cjs/src/content/image-with-text-section/types.d.ts +15 -15
  99. package/build/build-cjs/src/content/login/login-services.d.ts +6 -1
  100. package/build/build-cjs/src/content/login/types.d.ts +19 -19
  101. package/build/build-cjs/src/content/navbar/placeholderData.d.ts +2 -2
  102. package/build/build-cjs/src/content/navbar/types.d.ts +22 -22
  103. package/build/build-cjs/src/index.d.ts +17 -1
  104. package/build/build-cjs/src/qsm/components/date-range-picker/calendar-day.d.ts +7 -7
  105. package/build/build-cjs/src/qsm/components/date-range-picker/calendar.d.ts +18 -18
  106. package/build/build-cjs/src/qsm/components/date-range-picker/index.d.ts +5 -5
  107. package/build/build-cjs/src/qsm/components/double-search-input-group/index.d.ts +2 -2
  108. package/build/build-cjs/src/qsm/components/icon.d.ts +5 -5
  109. package/build/build-cjs/src/qsm/components/item-picker/index.d.ts +7 -7
  110. package/build/build-cjs/src/qsm/components/search-input/index.d.ts +9 -9
  111. package/build/build-cjs/src/qsm/components/search-input-group/index.d.ts +7 -7
  112. package/build/build-cjs/src/qsm/index.d.ts +1 -1
  113. package/build/build-cjs/src/qsm/store/qsm-slice.d.ts +110 -58
  114. package/build/build-cjs/src/qsm/store/qsm-store.d.ts +20 -7
  115. package/build/build-cjs/src/qsm/types.d.ts +59 -59
  116. package/build/build-cjs/src/search-results/components/filters/filters.d.ts +5 -5
  117. package/build/build-cjs/src/search-results/components/filters/flight-filters.d.ts +3 -3
  118. package/build/build-cjs/src/search-results/components/flight/flight-banner.d.ts +2 -2
  119. package/build/build-cjs/src/search-results/components/flight/flight-card.d.ts +1 -1
  120. package/build/build-cjs/src/search-results/components/flight/flight-leg.d.ts +1 -1
  121. package/build/build-cjs/src/search-results/components/flight/flight-path.d.ts +1 -1
  122. package/build/build-cjs/src/search-results/components/flight/flight-results.d.ts +2 -2
  123. package/build/build-cjs/src/search-results/components/flight/flight-search-context/index.d.ts +29 -29
  124. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +5 -5
  125. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +1 -1
  126. package/build/build-cjs/src/search-results/components/flight/flight-selection/index.d.ts +2 -2
  127. package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +1 -1
  128. package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +1 -1
  129. package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +3 -3
  130. package/build/build-cjs/src/search-results/components/group-tour/group-tour-results.d.ts +1 -1
  131. package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +1 -1
  132. package/build/build-cjs/src/search-results/components/hotel/hotel-card.d.ts +2 -2
  133. package/build/build-cjs/src/search-results/components/icon.d.ts +6 -6
  134. package/build/build-cjs/src/search-results/components/item-picker/index.d.ts +8 -8
  135. package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +3 -3
  136. package/build/build-cjs/src/search-results/components/multi-range-filter.d.ts +6 -6
  137. package/build/build-cjs/src/search-results/components/round-trip/round-trip-results.d.ts +1 -2
  138. package/build/build-cjs/src/search-results/components/search-results-container/flight-search-results.d.ts +1 -1
  139. package/build/build-cjs/src/search-results/components/tab-views/index.d.ts +1 -2
  140. package/build/build-cjs/src/search-results/features/flights/flight-search-results-self-contained.d.ts +1 -2
  141. package/build/build-cjs/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +1 -2
  142. package/build/build-cjs/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +1 -2
  143. package/build/build-cjs/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +1 -2
  144. package/build/build-cjs/src/search-results/index.d.ts +1 -1
  145. package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +63 -26
  146. package/build/build-cjs/src/search-results/store/search-results-store.d.ts +20 -7
  147. package/build/build-cjs/src/search-results/types.d.ts +104 -104
  148. package/build/build-cjs/src/search-results/utils/flight-utils.d.ts +6 -1
  149. package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +10 -2
  150. package/build/build-cjs/src/shared/components/flyin/accommodation-flyin.d.ts +3 -3
  151. package/build/build-cjs/src/shared/components/flyin/flights-flyin.d.ts +2 -2
  152. package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +7 -7
  153. package/build/build-cjs/src/shared/components/flyin/group-tour-flyin.d.ts +3 -3
  154. package/build/build-cjs/src/shared/components/icon.d.ts +5 -5
  155. package/build/build-cjs/src/shared/components/loader.d.ts +1 -1
  156. package/build/build-cjs/src/shared/types.d.ts +9 -9
  157. package/build/build-cjs/src/shared/utils/localization-util.d.ts +395 -396
  158. package/build/build-esm/index.js +48531 -29650
  159. package/build/build-esm/src/booking-product/components/age-select.d.ts +3 -3
  160. package/build/build-esm/src/booking-product/components/amount-input.d.ts +5 -5
  161. package/build/build-esm/src/booking-product/components/date-range-picker/calendar-day.d.ts +8 -8
  162. package/build/build-esm/src/booking-product/components/date-range-picker/calendar.d.ts +14 -14
  163. package/build/build-esm/src/booking-product/components/date-range-picker/index.d.ts +16 -19
  164. package/build/build-esm/src/booking-product/components/dates.d.ts +8 -8
  165. package/build/build-esm/src/booking-product/components/footer.d.ts +5 -5
  166. package/build/build-esm/src/booking-product/components/header.d.ts +6 -6
  167. package/build/build-esm/src/booking-product/components/icon.d.ts +5 -5
  168. package/build/build-esm/src/booking-product/components/list-view.d.ts +2 -2
  169. package/build/build-esm/src/booking-product/components/product.d.ts +4 -4
  170. package/build/build-esm/src/booking-product/components/rating.d.ts +1 -1
  171. package/build/build-esm/src/booking-product/components/rooms.d.ts +4 -4
  172. package/build/build-esm/src/booking-product/constants.d.ts +1 -1
  173. package/build/build-esm/src/booking-product/index.d.ts +4 -4
  174. package/build/build-esm/src/booking-product/settings-context.d.ts +1 -2
  175. package/build/build-esm/src/booking-product/types.d.ts +21 -21
  176. package/build/build-esm/src/booking-product/utils/api.d.ts +11 -2
  177. package/build/build-esm/src/booking-product/utils/price.d.ts +10 -1
  178. package/build/build-esm/src/booking-wizard/api-settings-slice.d.ts +3 -2
  179. package/build/build-esm/src/booking-wizard/components/icon.d.ts +5 -5
  180. package/build/build-esm/src/booking-wizard/components/labeled-input.d.ts +13 -13
  181. package/build/build-esm/src/booking-wizard/components/labeled-select.d.ts +16 -16
  182. package/build/build-esm/src/booking-wizard/components/message.d.ts +4 -4
  183. package/build/build-esm/src/booking-wizard/components/multi-range-filter.d.ts +6 -6
  184. package/build/build-esm/src/booking-wizard/components/phone-input.d.ts +11 -11
  185. package/build/build-esm/src/booking-wizard/components/print-offer-button.d.ts +11 -11
  186. package/build/build-esm/src/booking-wizard/components/product-card.d.ts +3 -3
  187. package/build/build-esm/src/booking-wizard/components/step-indicator.d.ts +1 -1
  188. package/build/build-esm/src/booking-wizard/components/step-route.d.ts +3 -3
  189. package/build/build-esm/src/booking-wizard/features/booking/api.d.ts +26 -7
  190. package/build/build-esm/src/booking-wizard/features/booking/booking-self-contained.d.ts +3 -3
  191. package/build/build-esm/src/booking-wizard/features/booking/booking-slice.d.ts +102 -43
  192. package/build/build-esm/src/booking-wizard/features/booking/booking.d.ts +3 -3
  193. package/build/build-esm/src/booking-wizard/features/booking/constants.d.ts +8 -1
  194. package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +644 -479
  195. package/build/build-esm/src/booking-wizard/features/confirmation/confirmation.d.ts +1 -2
  196. package/build/build-esm/src/booking-wizard/features/error/error.d.ts +1 -2
  197. package/build/build-esm/src/booking-wizard/features/flight-options/flight-filter.d.ts +3 -3
  198. package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +2 -2
  199. package/build/build-esm/src/booking-wizard/features/flight-options/flight-option.d.ts +4 -4
  200. package/build/build-esm/src/booking-wizard/features/flight-options/flight-utils.d.ts +9 -2
  201. package/build/build-esm/src/booking-wizard/features/flight-options/index.d.ts +1 -2
  202. package/build/build-esm/src/booking-wizard/features/price-details/price-details-api.d.ts +6 -1
  203. package/build/build-esm/src/booking-wizard/features/price-details/price-details-slice.d.ts +15 -10
  204. package/build/build-esm/src/booking-wizard/features/price-details/selectors.d.ts +302 -287
  205. package/build/build-esm/src/booking-wizard/features/product-options/none-option.d.ts +3 -3
  206. package/build/build-esm/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +2 -2
  207. package/build/build-esm/src/booking-wizard/features/product-options/option-booking-group.d.ts +6 -6
  208. package/build/build-esm/src/booking-wizard/features/product-options/option-item.d.ts +5 -5
  209. package/build/build-esm/src/booking-wizard/features/product-options/option-pax-card.d.ts +4 -4
  210. package/build/build-esm/src/booking-wizard/features/product-options/option-pax-group.d.ts +7 -7
  211. package/build/build-esm/src/booking-wizard/features/product-options/option-room.d.ts +5 -5
  212. package/build/build-esm/src/booking-wizard/features/product-options/option-unit-group.d.ts +7 -7
  213. package/build/build-esm/src/booking-wizard/features/product-options/option-units-card.d.ts +3 -3
  214. package/build/build-esm/src/booking-wizard/features/product-options/options-form.d.ts +1 -2
  215. package/build/build-esm/src/booking-wizard/features/room-options/index.d.ts +1 -2
  216. package/build/build-esm/src/booking-wizard/features/room-options/room-utils.d.ts +19 -6
  217. package/build/build-esm/src/booking-wizard/features/room-options/room.d.ts +6 -6
  218. package/build/build-esm/src/booking-wizard/features/room-options/traveler-rooms.d.ts +3 -3
  219. package/build/build-esm/src/booking-wizard/features/sidebar/index.d.ts +2 -2
  220. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +2 -2
  221. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-util.d.ts +4 -2
  222. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar.d.ts +24 -24
  223. package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +1 -1
  224. package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +1 -1
  225. package/build/build-esm/src/booking-wizard/features/summary/summary-flight.d.ts +2 -2
  226. package/build/build-esm/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +1 -1
  227. package/build/build-esm/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +1 -1
  228. package/build/build-esm/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +1 -1
  229. package/build/build-esm/src/booking-wizard/features/summary/summary-slice.d.ts +3 -3
  230. package/build/build-esm/src/booking-wizard/features/summary/summary.d.ts +1 -2
  231. package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +75 -75
  232. package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +4 -4
  233. package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form.d.ts +1 -2
  234. package/build/build-esm/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +11 -11
  235. package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +8 -1
  236. package/build/build-esm/src/booking-wizard/index.d.ts +6 -6
  237. package/build/build-esm/src/booking-wizard/settings-context.d.ts +1 -2
  238. package/build/build-esm/src/booking-wizard/store.d.ts +40 -22
  239. package/build/build-esm/src/booking-wizard/types.d.ts +240 -240
  240. package/build/build-esm/src/booking-wizard/use-offer-printer.d.ts +8 -8
  241. package/build/build-esm/src/content/components/LanguageSwitcher.d.ts +5 -5
  242. package/build/build-esm/src/content/components/accordion.d.ts +4 -4
  243. package/build/build-esm/src/content/components/breadcrumb.d.ts +7 -7
  244. package/build/build-esm/src/content/components/faq.d.ts +4 -4
  245. package/build/build-esm/src/content/components/gallery.d.ts +6 -6
  246. package/build/build-esm/src/content/components/icon.d.ts +5 -5
  247. package/build/build-esm/src/content/components/image-with-text.d.ts +18 -18
  248. package/build/build-esm/src/content/components/slider.d.ts +5 -5
  249. package/build/build-esm/src/content/featured-trips/types.d.ts +8 -8
  250. package/build/build-esm/src/content/features/content-page/content-page-self-contained.d.ts +1 -1
  251. package/build/build-esm/src/content/footer/types.d.ts +17 -17
  252. package/build/build-esm/src/content/header/types.d.ts +23 -20
  253. package/build/build-esm/src/content/image-card-grid/types.d.ts +8 -8
  254. package/build/build-esm/src/content/image-with-text-section/types.d.ts +15 -15
  255. package/build/build-esm/src/content/login/login-services.d.ts +6 -1
  256. package/build/build-esm/src/content/login/types.d.ts +19 -19
  257. package/build/build-esm/src/content/navbar/placeholderData.d.ts +2 -2
  258. package/build/build-esm/src/content/navbar/types.d.ts +22 -22
  259. package/build/build-esm/src/index.d.ts +17 -1
  260. package/build/build-esm/src/qsm/components/date-range-picker/calendar-day.d.ts +7 -7
  261. package/build/build-esm/src/qsm/components/date-range-picker/calendar.d.ts +18 -18
  262. package/build/build-esm/src/qsm/components/date-range-picker/index.d.ts +5 -5
  263. package/build/build-esm/src/qsm/components/double-search-input-group/index.d.ts +2 -2
  264. package/build/build-esm/src/qsm/components/icon.d.ts +5 -5
  265. package/build/build-esm/src/qsm/components/item-picker/index.d.ts +7 -7
  266. package/build/build-esm/src/qsm/components/search-input/index.d.ts +9 -9
  267. package/build/build-esm/src/qsm/components/search-input-group/index.d.ts +7 -7
  268. package/build/build-esm/src/qsm/index.d.ts +1 -1
  269. package/build/build-esm/src/qsm/store/qsm-slice.d.ts +110 -58
  270. package/build/build-esm/src/qsm/store/qsm-store.d.ts +20 -7
  271. package/build/build-esm/src/qsm/types.d.ts +59 -59
  272. package/build/build-esm/src/search-results/components/filters/filters.d.ts +5 -5
  273. package/build/build-esm/src/search-results/components/filters/flight-filters.d.ts +3 -3
  274. package/build/build-esm/src/search-results/components/flight/flight-banner.d.ts +2 -2
  275. package/build/build-esm/src/search-results/components/flight/flight-card.d.ts +1 -1
  276. package/build/build-esm/src/search-results/components/flight/flight-leg.d.ts +1 -1
  277. package/build/build-esm/src/search-results/components/flight/flight-path.d.ts +1 -1
  278. package/build/build-esm/src/search-results/components/flight/flight-results.d.ts +2 -2
  279. package/build/build-esm/src/search-results/components/flight/flight-search-context/index.d.ts +29 -29
  280. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +5 -5
  281. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +1 -1
  282. package/build/build-esm/src/search-results/components/flight/flight-selection/index.d.ts +2 -2
  283. package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +1 -1
  284. package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +1 -1
  285. package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +3 -3
  286. package/build/build-esm/src/search-results/components/group-tour/group-tour-results.d.ts +1 -1
  287. package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +1 -1
  288. package/build/build-esm/src/search-results/components/hotel/hotel-card.d.ts +2 -2
  289. package/build/build-esm/src/search-results/components/icon.d.ts +6 -6
  290. package/build/build-esm/src/search-results/components/item-picker/index.d.ts +8 -8
  291. package/build/build-esm/src/search-results/components/itinerary/index.d.ts +3 -3
  292. package/build/build-esm/src/search-results/components/multi-range-filter.d.ts +6 -6
  293. package/build/build-esm/src/search-results/components/round-trip/round-trip-results.d.ts +1 -2
  294. package/build/build-esm/src/search-results/components/search-results-container/flight-search-results.d.ts +1 -1
  295. package/build/build-esm/src/search-results/components/tab-views/index.d.ts +1 -2
  296. package/build/build-esm/src/search-results/features/flights/flight-search-results-self-contained.d.ts +1 -2
  297. package/build/build-esm/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +1 -2
  298. package/build/build-esm/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +1 -2
  299. package/build/build-esm/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +1 -2
  300. package/build/build-esm/src/search-results/index.d.ts +1 -1
  301. package/build/build-esm/src/search-results/store/search-results-slice.d.ts +63 -26
  302. package/build/build-esm/src/search-results/store/search-results-store.d.ts +20 -7
  303. package/build/build-esm/src/search-results/types.d.ts +104 -104
  304. package/build/build-esm/src/search-results/utils/flight-utils.d.ts +6 -1
  305. package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +10 -2
  306. package/build/build-esm/src/shared/components/flyin/accommodation-flyin.d.ts +3 -3
  307. package/build/build-esm/src/shared/components/flyin/flights-flyin.d.ts +2 -2
  308. package/build/build-esm/src/shared/components/flyin/flyin.d.ts +7 -7
  309. package/build/build-esm/src/shared/components/flyin/group-tour-flyin.d.ts +3 -3
  310. package/build/build-esm/src/shared/components/icon.d.ts +5 -5
  311. package/build/build-esm/src/shared/components/loader.d.ts +1 -1
  312. package/build/build-esm/src/shared/types.d.ts +9 -9
  313. package/build/build-esm/src/shared/utils/localization-util.d.ts +395 -396
  314. package/package.json +83 -83
  315. package/rollup.config.js +16 -16
  316. package/src/booking-product/components/date-range-picker/calendar-day.tsx +46 -46
  317. package/src/booking-product/components/date-range-picker/index.tsx +185 -185
  318. package/src/booking-product/components/dates.tsx +153 -153
  319. package/src/booking-product/components/product.tsx +379 -379
  320. package/src/booking-wizard/components/step-indicator.tsx +57 -57
  321. package/src/booking-wizard/components/step-route.tsx +26 -26
  322. package/src/booking-wizard/features/booking/api.ts +44 -44
  323. package/src/booking-wizard/features/booking/booking-self-contained.tsx +318 -318
  324. package/src/booking-wizard/features/booking/booking-slice.ts +633 -633
  325. package/src/booking-wizard/features/booking/booking.tsx +342 -342
  326. package/src/booking-wizard/features/booking/constants.ts +16 -16
  327. package/src/booking-wizard/features/booking/selectors.ts +411 -411
  328. package/src/booking-wizard/features/confirmation/confirmation.tsx +90 -90
  329. package/src/booking-wizard/features/error/error.tsx +71 -71
  330. package/src/booking-wizard/features/flight-options/index.tsx +166 -166
  331. package/src/booking-wizard/features/price-details/price-details-slice.ts +79 -79
  332. package/src/booking-wizard/features/price-details/selectors.ts +118 -118
  333. package/src/booking-wizard/features/product-options/option-units-card.tsx +148 -148
  334. package/src/booking-wizard/features/product-options/options-form.tsx +382 -382
  335. package/src/booking-wizard/features/room-options/index.tsx +132 -132
  336. package/src/booking-wizard/features/sidebar/index.tsx +83 -83
  337. package/src/booking-wizard/features/sidebar/sidebar-util.ts +147 -147
  338. package/src/booking-wizard/features/sidebar/sidebar.tsx +344 -332
  339. package/src/booking-wizard/features/summary/summary.tsx +562 -562
  340. package/src/booking-wizard/features/travelers-form/controls/gender-control.tsx +60 -60
  341. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +1101 -1101
  342. package/src/booking-wizard/settings-context.ts +64 -64
  343. package/src/booking-wizard/types.ts +332 -332
  344. package/src/content/components/breadcrumb.tsx +67 -67
  345. package/src/content/components/faq.tsx +42 -42
  346. package/src/content/components/gallery.tsx +153 -153
  347. package/src/content/components/icon.tsx +695 -695
  348. package/src/content/components/image-with-text.tsx +120 -120
  349. package/src/content/components/login.tsx +162 -162
  350. package/src/content/components/slider.tsx +237 -237
  351. package/src/content/featured-trips/featured-trip-card.tsx +48 -48
  352. package/src/content/featured-trips/index.tsx +19 -19
  353. package/src/content/featured-trips/types.ts +13 -13
  354. package/src/content/features/content-page/content-page-self-contained.tsx +895 -895
  355. package/src/content/footer/index.tsx +159 -159
  356. package/src/content/footer/types.ts +36 -36
  357. package/src/content/image-card-grid/index.tsx +34 -34
  358. package/src/content/image-card-grid/types.ts +13 -13
  359. package/src/content/image-with-text-section/card.tsx +58 -58
  360. package/src/content/image-with-text-section/index.tsx +22 -22
  361. package/src/content/image-with-text-section/types.ts +20 -20
  362. package/src/content/login/confirm-component.tsx +149 -149
  363. package/src/content/login/index.tsx +70 -70
  364. package/src/content/login/login-component.tsx +159 -159
  365. package/src/content/login/login-services.ts +109 -109
  366. package/src/content/login/reset-password-component.tsx +191 -191
  367. package/src/content/login/types.ts +29 -29
  368. package/src/content/navbar/index.tsx +354 -354
  369. package/src/content/navbar/placeholderData.tsx +173 -173
  370. package/src/content/navbar/types.ts +43 -43
  371. package/src/index.ts +44 -44
  372. package/src/qsm/components/QSMContainer/qsm-container.tsx +512 -512
  373. package/src/qsm/components/double-search-input-group/index.tsx +78 -78
  374. package/src/qsm/components/icon.tsx +354 -354
  375. package/src/qsm/components/item-picker/index.tsx +69 -69
  376. package/src/qsm/components/mobile-filter-modal/index.tsx +307 -307
  377. package/src/qsm/components/search-input/index.tsx +91 -91
  378. package/src/qsm/components/search-input-group/index.tsx +199 -199
  379. package/src/qsm/components/travel-class-picker/index.tsx +28 -28
  380. package/src/qsm/components/travel-input/index.tsx +243 -243
  381. package/src/qsm/components/travel-input-group/index.tsx +114 -114
  382. package/src/qsm/components/travel-nationality-picker/index.tsx +28 -28
  383. package/src/qsm/components/travel-type-picker/index.tsx +28 -28
  384. package/src/qsm/qsm-configuration-context.ts +31 -31
  385. package/src/qsm/store/qsm-slice.ts +275 -275
  386. package/src/qsm/types.ts +110 -110
  387. package/src/search-results/components/filters/filters.tsx +230 -230
  388. package/src/search-results/components/filters/flight-filters.tsx +671 -671
  389. package/src/search-results/components/flight/flight-banner.tsx +35 -35
  390. package/src/search-results/components/flight/flight-results.tsx +208 -208
  391. package/src/search-results/components/flight/flight-search-context/index.tsx +628 -628
  392. package/src/search-results/components/flight/flight-selection/independent-flight-option.tsx +147 -147
  393. package/src/search-results/components/flight/flight-selection/independent-flight-selection.tsx +172 -172
  394. package/src/search-results/components/flight/flight-selection/index.tsx +19 -19
  395. package/src/search-results/components/flight/flight-selection/paired-flight-option.tsx +255 -255
  396. package/src/search-results/components/flight/flight-selection/paired-flight-selection.tsx +38 -38
  397. package/src/search-results/components/group-tour/group-tour-card.tsx +105 -105
  398. package/src/search-results/components/group-tour/group-tour-results.tsx +62 -62
  399. package/src/search-results/components/hotel/hotel-accommodation-results.tsx +176 -176
  400. package/src/search-results/components/hotel/hotel-card.tsx +113 -113
  401. package/src/search-results/components/icon.tsx +680 -680
  402. package/src/search-results/components/item-picker/index.tsx +81 -81
  403. package/src/search-results/components/itinerary/index.tsx +310 -310
  404. package/src/search-results/components/round-trip/round-trip-results.tsx +199 -199
  405. package/src/search-results/components/search-results-container/flight-search-results.tsx +137 -137
  406. package/src/search-results/components/search-results-container/search-results-container.tsx +893 -893
  407. package/src/search-results/components/spinner/spinner.tsx +16 -16
  408. package/src/search-results/components/tab-views/index.tsx +53 -53
  409. package/src/search-results/features/flights/flight-search-results-self-contained.tsx +294 -294
  410. package/src/search-results/features/hotels/hotel-flight-search-results-self-contained.tsx +143 -143
  411. package/src/search-results/features/hotels/hotel-search-results-self-contained.tsx +220 -220
  412. package/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.tsx +65 -65
  413. package/src/search-results/store/search-results-slice.ts +158 -158
  414. package/src/search-results/types.ts +181 -181
  415. package/src/search-results/utils/flight-utils.ts +93 -93
  416. package/src/search-results/utils/search-results-utils.ts +251 -251
  417. package/src/shared/components/flyin/accommodation-flyin.tsx +422 -422
  418. package/src/shared/components/flyin/flights-flyin.tsx +503 -503
  419. package/src/shared/components/flyin/flyin.tsx +82 -82
  420. package/src/shared/components/flyin/group-tour-flyin.tsx +293 -293
  421. package/src/shared/components/icon.tsx +826 -826
  422. package/src/shared/translations/ar-SA.json +382 -382
  423. package/src/shared/translations/da-DK.json +382 -382
  424. package/src/shared/translations/de-DE.json +382 -382
  425. package/src/shared/translations/en-GB.json +386 -386
  426. package/src/shared/translations/es-ES.json +382 -382
  427. package/src/shared/translations/fr-BE.json +386 -386
  428. package/src/shared/translations/fr-FR.json +382 -382
  429. package/src/shared/translations/is-IS.json +382 -382
  430. package/src/shared/translations/it-IT.json +382 -382
  431. package/src/shared/translations/ja-JP.json +382 -382
  432. package/src/shared/translations/nl-BE.json +386 -386
  433. package/src/shared/translations/nl-NL.json +382 -382
  434. package/src/shared/translations/no-NO.json +382 -382
  435. package/src/shared/translations/pl-PL.json +382 -382
  436. package/src/shared/translations/pt-PT.json +382 -382
  437. package/src/shared/translations/sv-SE.json +382 -382
  438. package/src/shared/types.ts +31 -31
  439. package/src/shared/utils/localization-util.ts +275 -275
  440. package/styles/booking-search-results-variables.scss +728 -728
  441. package/styles/booking-search-results.scss +53 -53
  442. package/styles/components/_booking.scss +872 -872
  443. package/styles/components/_content.scss +336 -336
  444. package/styles/components/_flyin.scss +727 -727
  445. package/styles/components/_footer.scss +141 -141
  446. package/styles/components/_form.scss +1634 -1634
  447. package/styles/components/_image-with-text.scss +206 -206
  448. package/styles/components/_login.scss +140 -140
  449. package/styles/components/_navbar.scss +765 -765
  450. package/styles/components/_pricing-summary.scss +163 -163
  451. package/styles/components/_search.scss +2009 -2009
  452. package/styles/components/_tree.scss +648 -648
  453. package/styles/content-blocks.scss +64 -64
@@ -1,120 +1,120 @@
1
- import React from 'react';
2
-
3
- type Variant = 'image-with-text__card--no-card' | 'image-with-text__card--full-img';
4
-
5
- interface ImageWithTextCardProps {
6
- variant?: Variant;
7
- reverse?: boolean;
8
- imageSrc: string;
9
- imageAlt: string;
10
- title: string;
11
- activityTitle: string;
12
- activityText: string;
13
- detailsTitle: string;
14
- detailsText: string;
15
- buttonText: string;
16
- onButtonClick?: () => void;
17
- }
18
-
19
- const ImageWithTextCard: React.FC<ImageWithTextCardProps> = ({
20
- variant,
21
- reverse,
22
- imageSrc,
23
- imageAlt,
24
- title,
25
- activityTitle,
26
- activityText,
27
- detailsTitle,
28
- detailsText,
29
- buttonText,
30
- onButtonClick
31
- }) => (
32
- <div className={`image-with-text__card ${reverse ? 'image-with-text__card--reverse' : ''} ${variant ? variant.toString() : ''}`}>
33
- <div className="image-with-text__card__image__wrapper">
34
- <img src={imageSrc} alt={imageAlt} className="image-with-text__card__image" />
35
- </div>
36
-
37
- <div className="image-with-text__card__content">
38
- <h3 className="image-with-text__card__title">{title}</h3>
39
-
40
- <div className="image-with-text__card__description">
41
- <h5 className="image-with-text__card__description__title">{activityTitle}</h5>
42
- <p className="image-with-text__card__description__text">{activityText}</p>
43
- </div>
44
-
45
- <div className="image-with-text__card__description">
46
- <h5 className="image-with-text__card__description__title">{detailsTitle}</h5>
47
- <p className="image-with-text__card__description__text">{detailsText}</p>
48
- </div>
49
-
50
- <div className="image-with-text__card__btn">
51
- <button type="button" className="cta cta--select" onClick={onButtonClick}>
52
- {buttonText}
53
- </button>
54
- </div>
55
- </div>
56
- </div>
57
- );
58
-
59
- interface ImageWithTextSectionProps {
60
- variant?: Variant;
61
- sectionTitle: string;
62
- hasBackground?: boolean;
63
- cards: [Omit<ImageWithTextCardProps, 'reverse'>, Omit<ImageWithTextCardProps, 'reverse'>];
64
- }
65
-
66
- export const ImageWithTextSection: React.FC<ImageWithTextSectionProps> = ({ variant, sectionTitle, hasBackground = true, cards }) => {
67
- const className = ['image-with-text', hasBackground && 'image-with-text--background'].filter(Boolean).join(' ');
68
- console.log('variant', variant);
69
- return (
70
- <div className={className}>
71
- <div className="image-with-text__container">
72
- <div className="image-with-text__title__row">
73
- <h2 className="image-with-text__title">{sectionTitle}</h2>
74
- </div>
75
-
76
- <div className="image-with-text__card__wrapper">
77
- <ImageWithTextCard {...cards[0]} variant={variant} />
78
- <ImageWithTextCard {...cards[1]} reverse variant={variant} />
79
- </div>
80
- </div>
81
- </div>
82
- );
83
- };
84
-
85
- interface ImageWithTextProps {
86
- sectionTitle?: string;
87
- variants?: Variant[];
88
- hasBackground?: boolean;
89
- }
90
-
91
- const DEFAULT_IMAGE = 'https://images.pexels.com/photos/3264723/pexels-photo-3264723.jpeg?cs=srgb&dl=pexels-alexazabache-3264723.jpg&fm=jpg';
92
-
93
- export const ImageWithText: React.FC<ImageWithTextProps> = ({ sectionTitle = 'Activities', variants, hasBackground = true }) => {
94
- const baseCard = {
95
- imageSrc: DEFAULT_IMAGE,
96
- imageAlt: 'eiland',
97
- title: 'Ontdek het zonnige Santorini',
98
- activityTitle: 'Your activity',
99
- activityText:
100
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non sollicitudin risus. Donec euismod metus et purus ultricies condimentum. Vestibulum vel sodales massa. Pellentesque bibendum nisl at hendrerit sagittis. Pellentesque eget dui scelerisque, dictum diam non, ultrices velit. Duis et sem est. Suspendisse potenti.',
101
- detailsTitle: 'Details',
102
- detailsText:
103
- 'Etiam ipsum elit, volutpat sed semper at, eleifend vitae erat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In at lectus rutrum elit egestas consectetur. Suspendisse sit amet erat dapibus, tincidunt arcu fringilla, auctor justo.',
104
- buttonText: 'Book now'
105
- } as const;
106
-
107
- if (!variants || variants.length === 0) {
108
- return <ImageWithTextSection sectionTitle={sectionTitle} cards={[baseCard, baseCard]} />;
109
- }
110
-
111
- return (
112
- <>
113
- {variants.map((variant) => (
114
- <ImageWithTextSection key={variant} variant={variant} sectionTitle={sectionTitle} hasBackground={hasBackground} cards={[baseCard, baseCard]} />
115
- ))}
116
- </>
117
- );
118
- };
119
-
120
- export default ImageWithText;
1
+ import React from 'react';
2
+
3
+ type Variant = 'image-with-text__card--no-card' | 'image-with-text__card--full-img';
4
+
5
+ interface ImageWithTextCardProps {
6
+ variant?: Variant;
7
+ reverse?: boolean;
8
+ imageSrc: string;
9
+ imageAlt: string;
10
+ title: string;
11
+ activityTitle: string;
12
+ activityText: string;
13
+ detailsTitle: string;
14
+ detailsText: string;
15
+ buttonText: string;
16
+ onButtonClick?: () => void;
17
+ }
18
+
19
+ const ImageWithTextCard: React.FC<ImageWithTextCardProps> = ({
20
+ variant,
21
+ reverse,
22
+ imageSrc,
23
+ imageAlt,
24
+ title,
25
+ activityTitle,
26
+ activityText,
27
+ detailsTitle,
28
+ detailsText,
29
+ buttonText,
30
+ onButtonClick
31
+ }) => (
32
+ <div className={`image-with-text__card ${reverse ? 'image-with-text__card--reverse' : ''} ${variant ? variant.toString() : ''}`}>
33
+ <div className="image-with-text__card__image__wrapper">
34
+ <img src={imageSrc} alt={imageAlt} className="image-with-text__card__image" />
35
+ </div>
36
+
37
+ <div className="image-with-text__card__content">
38
+ <h3 className="image-with-text__card__title">{title}</h3>
39
+
40
+ <div className="image-with-text__card__description">
41
+ <h5 className="image-with-text__card__description__title">{activityTitle}</h5>
42
+ <p className="image-with-text__card__description__text">{activityText}</p>
43
+ </div>
44
+
45
+ <div className="image-with-text__card__description">
46
+ <h5 className="image-with-text__card__description__title">{detailsTitle}</h5>
47
+ <p className="image-with-text__card__description__text">{detailsText}</p>
48
+ </div>
49
+
50
+ <div className="image-with-text__card__btn">
51
+ <button type="button" className="cta cta--select" onClick={onButtonClick}>
52
+ {buttonText}
53
+ </button>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ );
58
+
59
+ interface ImageWithTextSectionProps {
60
+ variant?: Variant;
61
+ sectionTitle: string;
62
+ hasBackground?: boolean;
63
+ cards: [Omit<ImageWithTextCardProps, 'reverse'>, Omit<ImageWithTextCardProps, 'reverse'>];
64
+ }
65
+
66
+ export const ImageWithTextSection: React.FC<ImageWithTextSectionProps> = ({ variant, sectionTitle, hasBackground = true, cards }) => {
67
+ const className = ['image-with-text', hasBackground && 'image-with-text--background'].filter(Boolean).join(' ');
68
+ console.log('variant', variant);
69
+ return (
70
+ <div className={className}>
71
+ <div className="image-with-text__container">
72
+ <div className="image-with-text__title__row">
73
+ <h2 className="image-with-text__title">{sectionTitle}</h2>
74
+ </div>
75
+
76
+ <div className="image-with-text__card__wrapper">
77
+ <ImageWithTextCard {...cards[0]} variant={variant} />
78
+ <ImageWithTextCard {...cards[1]} reverse variant={variant} />
79
+ </div>
80
+ </div>
81
+ </div>
82
+ );
83
+ };
84
+
85
+ interface ImageWithTextProps {
86
+ sectionTitle?: string;
87
+ variants?: Variant[];
88
+ hasBackground?: boolean;
89
+ }
90
+
91
+ const DEFAULT_IMAGE = 'https://images.pexels.com/photos/3264723/pexels-photo-3264723.jpeg?cs=srgb&dl=pexels-alexazabache-3264723.jpg&fm=jpg';
92
+
93
+ export const ImageWithText: React.FC<ImageWithTextProps> = ({ sectionTitle = 'Activities', variants, hasBackground = true }) => {
94
+ const baseCard = {
95
+ imageSrc: DEFAULT_IMAGE,
96
+ imageAlt: 'eiland',
97
+ title: 'Ontdek het zonnige Santorini',
98
+ activityTitle: 'Your activity',
99
+ activityText:
100
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer non sollicitudin risus. Donec euismod metus et purus ultricies condimentum. Vestibulum vel sodales massa. Pellentesque bibendum nisl at hendrerit sagittis. Pellentesque eget dui scelerisque, dictum diam non, ultrices velit. Duis et sem est. Suspendisse potenti.',
101
+ detailsTitle: 'Details',
102
+ detailsText:
103
+ 'Etiam ipsum elit, volutpat sed semper at, eleifend vitae erat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In at lectus rutrum elit egestas consectetur. Suspendisse sit amet erat dapibus, tincidunt arcu fringilla, auctor justo.',
104
+ buttonText: 'Book now'
105
+ } as const;
106
+
107
+ if (!variants || variants.length === 0) {
108
+ return <ImageWithTextSection sectionTitle={sectionTitle} cards={[baseCard, baseCard]} />;
109
+ }
110
+
111
+ return (
112
+ <>
113
+ {variants.map((variant) => (
114
+ <ImageWithTextSection key={variant} variant={variant} sectionTitle={sectionTitle} hasBackground={hasBackground} cards={[baseCard, baseCard]} />
115
+ ))}
116
+ </>
117
+ );
118
+ };
119
+
120
+ export default ImageWithText;
@@ -1,162 +1,162 @@
1
- import React, { useMemo, useState } from 'react';
2
- import Icon from './icon';
3
-
4
- type Errors = {
5
- email?: string;
6
- password?: string;
7
- form?: string;
8
- };
9
-
10
- const Login: React.FC = () => {
11
- const [email, setEmail] = useState('');
12
- const [password, setPassword] = useState('');
13
- const [errors, setErrors] = useState<Errors>({});
14
-
15
- const validateEmail = (value: string) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value.trim());
16
-
17
- const validate = (): Errors => {
18
- const next: Errors = {};
19
- const trimmedEmail = email.trim();
20
-
21
- if (!trimmedEmail) next.email = 'Email is required.';
22
- else if (!validateEmail(trimmedEmail)) next.email = 'Enter a valid email.';
23
-
24
- if (!password) next.password = 'Password is required.';
25
- else if (password.length < 6) next.password = 'Minimum 6 characters.';
26
-
27
- return next;
28
- };
29
-
30
- const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
31
- e.preventDefault();
32
-
33
- const nextErrors = validate();
34
- setErrors(nextErrors);
35
-
36
- if (Object.keys(nextErrors).length > 0) return;
37
-
38
- console.log('Login:', { email: email.trim(), password });
39
- };
40
-
41
- const handleForgotPassword = () => {
42
- console.log('Redirect to forgot password page');
43
- };
44
-
45
- const onEmailChange = (v: string) => {
46
- setEmail(v);
47
- if (errors.email) setErrors((prev) => ({ ...prev, email: undefined, form: undefined }));
48
- };
49
-
50
- const onPasswordChange = (v: string) => {
51
- setPassword(v);
52
- if (errors.password) setErrors((prev) => ({ ...prev, password: undefined, form: undefined }));
53
- };
54
-
55
- return (
56
- <div className="login">
57
- <div className="login__img__wrapper">
58
- <img className="login__img" src="https://cdn.pixabay.com/photo/2022/04/08/06/36/rock-7118843_1280.jpg" alt="Login" />
59
- </div>
60
-
61
- <div className="login__container">
62
- <div className="login__card">
63
- <div className="login__logo">
64
- <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 362 105" fill="none">
65
- <path d="M162.919 93.5458V7.96968H136.383V0H197.82V7.96968H171.285V93.5458H162.919Z" fill="black" />
66
- <path
67
- d="M210.005 13.849C208.175 13.849 206.606 13.2393 205.299 12.0199C204.079 10.7133 203.469 9.18909 203.469 7.44708C203.469 5.61798 204.079 4.09372 205.299 2.87432C206.606 1.56781 208.175 0.914552 210.005 0.914552C211.748 0.914552 213.229 1.56781 214.449 2.87432C215.757 4.09372 216.41 5.61798 216.41 7.44708C216.41 9.18909 215.757 10.7133 214.449 12.0199C213.229 13.2393 211.748 13.849 210.005 13.849ZM205.822 93.5458V29.527H214.188V93.5458H205.822Z"
68
- fill="black"
69
- />
70
- <path
71
- d="M280.911 82.3099H280.388C279.342 84.0519 278.078 85.7503 276.597 87.4052C275.115 88.973 273.373 90.3666 271.368 91.5861C269.364 92.8055 267.098 93.7635 264.571 94.4604C262.044 95.2443 259.255 95.6362 256.205 95.6362C252.109 95.6362 248.231 94.8088 244.571 93.1539C240.911 91.4118 237.686 89.0601 234.898 86.0987C232.196 83.0502 230.017 79.4355 228.362 75.2547C226.793 71.0739 226.009 66.5011 226.009 61.5364C226.009 56.5717 226.793 51.9989 228.362 47.8181C230.017 43.6373 232.196 40.0662 234.898 37.1048C237.686 34.0563 240.911 31.7045 244.571 30.0496C248.231 28.3076 252.109 27.4366 256.205 27.4366C262.305 27.4366 267.359 28.7431 271.368 31.3561C275.377 33.9691 278.383 37.0612 280.388 40.6323H280.911L280.388 31.7481V0H288.754V93.5458H280.911V82.3099ZM257.643 88.0585C260.693 88.0585 263.612 87.4923 266.401 86.36C269.277 85.1406 271.76 83.3986 273.852 81.134C276.031 78.7823 277.73 75.9951 278.95 72.7724C280.257 69.4625 280.911 65.7172 280.911 61.5364C280.911 57.3556 280.257 53.6103 278.95 50.3005C277.73 46.9907 276.031 44.2034 273.852 41.9388C271.76 39.6742 269.277 37.9758 266.401 36.8435C263.612 35.6241 260.693 35.0144 257.643 35.0144C254.593 35.0144 251.63 35.6241 248.754 36.8435C245.965 38.0629 243.481 39.8484 241.303 42.2001C239.211 44.4647 237.512 47.252 236.205 50.5618C234.985 53.7845 234.375 57.4427 234.375 61.5364C234.375 65.6301 234.985 69.3319 236.205 72.6417C237.512 75.9515 239.211 78.7387 241.303 81.0033C243.481 83.268 245.965 85.01 248.754 86.2294C251.63 87.4488 254.593 88.0585 257.643 88.0585Z"
72
- fill="black"
73
- />
74
- <path
75
- d="M359.793 78.3903C358.66 80.7421 357.223 82.9631 355.48 85.0535C353.737 87.1439 351.689 88.973 349.336 90.5408C347.07 92.1087 344.456 93.3281 341.493 94.1991C338.53 95.1572 335.262 95.6362 331.689 95.6362C327.07 95.6362 322.8 94.8088 318.878 93.1539C314.957 91.4118 311.558 89.0166 308.682 85.9681C305.894 82.9196 303.715 79.3484 302.146 75.2547C300.578 71.0739 299.793 66.5011 299.793 61.5364C299.793 56.9201 300.491 52.5651 301.885 48.4714C303.366 44.2905 305.458 40.6759 308.159 37.6274C310.861 34.4917 314.129 32.0094 317.963 30.1803C321.798 28.3512 326.111 27.4366 330.905 27.4366C335.523 27.4366 339.663 28.2641 343.323 29.919C347.07 31.4868 350.251 33.7514 352.865 36.7128C355.48 39.5871 357.484 43.0711 358.878 47.1649C360.36 51.2586 361.101 55.7878 361.101 60.7525C361.101 61.0138 361.101 61.2751 361.101 61.5364C361.013 61.7977 360.97 62.0155 360.97 62.1897V62.9736H308.29C308.377 67.4157 309.162 71.2046 310.643 74.3402C312.125 77.4758 313.998 80.0888 316.264 82.1792C318.53 84.1825 321.057 85.6632 323.846 86.6213C326.634 87.5794 329.336 88.0585 331.95 88.0585C337.353 88.0585 341.623 86.8391 344.761 84.4003C347.898 81.8744 350.512 78.6952 352.604 74.8628L359.793 78.3903ZM352.342 55.9184C352.255 53.828 351.82 51.5634 351.035 49.1246C350.251 46.6858 349.031 44.4212 347.375 42.3308C345.719 40.2404 343.497 38.4984 340.708 37.1048C338.007 35.7112 334.652 35.0144 330.643 35.0144C328.029 35.0144 325.501 35.4934 323.061 36.4515C320.621 37.3225 318.399 38.629 316.395 40.371C314.478 42.113 312.822 44.2905 311.427 46.9036C310.12 49.5166 309.249 52.5215 308.813 55.9184H352.342Z"
76
- fill="black"
77
- />
78
- <path
79
- d="M101.211 60.1065C101.211 60.1065 107.877 26.7486 76.2712 7.84631C76.4781 7.97189 58.3876 -4.7109 38.4167 3.42406C38.7673 3.78 35.9017 18.7582 45.3684 27.9065C45.161 27.7809 101.213 60.1093 101.213 60.1093"
80
- fill="url(#paint0_linear_100_16650)"
81
- />
82
- <path
83
- d="M100.141 65.9671C99.6608 66.1056 87.8509 56.4508 75.2936 60.4101C75.5028 60.2877 20.3579 94.1359 20.3579 94.1359C20.3579 94.1359 46.5252 115.888 78.2137 97.1233C78.0045 97.2452 97.7823 87.3929 100.141 65.9671"
84
- fill="url(#paint1_linear_100_16650)"
85
- />
86
- <path
87
- d="M31.9853 5.67737C31.9853 5.67737 -0.0892988 17.3353 0.153201 54.2498C0.153201 54.0065 -1.30549 76.1073 16.0681 88.9789C16.1905 88.4932 30.5257 83.1504 33.4426 70.2788C33.444 70.522 31.9853 5.67737 31.9853 5.67737Z"
88
- fill="url(#paint2_linear_100_16650)"
89
- />
90
- <defs>
91
- <linearGradient id="paint0_linear_100_16650" x1="101.798" y1="60.1093" x2="43.5053" y2="0.000186692" gradientUnits="userSpaceOnUse">
92
- <stop stopColor="#95C3E6" />
93
- <stop offset="1" stopColor="#2672AB" />
94
- </linearGradient>
95
- <linearGradient id="paint1_linear_100_16650" x1="21.3951" y1="93.8819" x2="70.8134" y2="39.2931" gradientUnits="userSpaceOnUse">
96
- <stop stopColor="#9494F3" />
97
- <stop offset="1" stopColor="#2626C4" />
98
- </linearGradient>
99
- <linearGradient id="paint2_linear_100_16650" x1="31.6767" y1="5.67737" x2="-17.9893" y2="50.1198" gradientUnits="userSpaceOnUse">
100
- <stop stopColor="#14DA9E" />
101
- <stop offset="1" stopColor="#26B489" />
102
- </linearGradient>
103
- </defs>
104
- </svg>
105
- </div>
106
-
107
- <h4 className="login__card__title">Login to your account</h4>
108
-
109
- <form className="login__form" onSubmit={handleSubmit} noValidate>
110
- <div className="login__form__group">
111
- <label htmlFor="email">Email</label>
112
- <input
113
- type="text"
114
- id="email"
115
- placeholder="Enter your email"
116
- value={email}
117
- onChange={(e) => onEmailChange(e.target.value)}
118
- aria-invalid={!!errors.email}
119
- aria-describedby={errors.email ? 'email-error' : undefined}
120
- />
121
- {errors.email && (
122
- <div id="email-error" className="login__error">
123
- {errors.email}
124
- </div>
125
- )}
126
- </div>
127
-
128
- <div className="login__form__group">
129
- <label htmlFor="password">Password</label>
130
- <input
131
- type="password"
132
- id="password"
133
- placeholder="Enter your password"
134
- value={password}
135
- onChange={(e) => onPasswordChange(e.target.value)}
136
- aria-invalid={!!errors.password}
137
- aria-describedby={errors.password ? 'password-error' : undefined}
138
- />
139
- {errors.password && (
140
- <div id="password-error" className="login__error">
141
- {errors.password}
142
- </div>
143
- )}
144
- </div>
145
-
146
- {errors.form && <div className="login__error">{errors.form}</div>}
147
-
148
- <button type="submit" className="cta cta--primary">
149
- Login
150
- </button>
151
-
152
- <button type="button" className="login__forgot" onClick={handleForgotPassword}>
153
- Forgot password?
154
- </button>
155
- </form>
156
- </div>
157
- </div>
158
- </div>
159
- );
160
- };
161
-
162
- export default Login;
1
+ import React, { useMemo, useState } from 'react';
2
+ import Icon from './icon';
3
+
4
+ type Errors = {
5
+ email?: string;
6
+ password?: string;
7
+ form?: string;
8
+ };
9
+
10
+ const Login: React.FC = () => {
11
+ const [email, setEmail] = useState('');
12
+ const [password, setPassword] = useState('');
13
+ const [errors, setErrors] = useState<Errors>({});
14
+
15
+ const validateEmail = (value: string) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value.trim());
16
+
17
+ const validate = (): Errors => {
18
+ const next: Errors = {};
19
+ const trimmedEmail = email.trim();
20
+
21
+ if (!trimmedEmail) next.email = 'Email is required.';
22
+ else if (!validateEmail(trimmedEmail)) next.email = 'Enter a valid email.';
23
+
24
+ if (!password) next.password = 'Password is required.';
25
+ else if (password.length < 6) next.password = 'Minimum 6 characters.';
26
+
27
+ return next;
28
+ };
29
+
30
+ const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
31
+ e.preventDefault();
32
+
33
+ const nextErrors = validate();
34
+ setErrors(nextErrors);
35
+
36
+ if (Object.keys(nextErrors).length > 0) return;
37
+
38
+ console.log('Login:', { email: email.trim(), password });
39
+ };
40
+
41
+ const handleForgotPassword = () => {
42
+ console.log('Redirect to forgot password page');
43
+ };
44
+
45
+ const onEmailChange = (v: string) => {
46
+ setEmail(v);
47
+ if (errors.email) setErrors((prev) => ({ ...prev, email: undefined, form: undefined }));
48
+ };
49
+
50
+ const onPasswordChange = (v: string) => {
51
+ setPassword(v);
52
+ if (errors.password) setErrors((prev) => ({ ...prev, password: undefined, form: undefined }));
53
+ };
54
+
55
+ return (
56
+ <div className="login">
57
+ <div className="login__img__wrapper">
58
+ <img className="login__img" src="https://cdn.pixabay.com/photo/2022/04/08/06/36/rock-7118843_1280.jpg" alt="Login" />
59
+ </div>
60
+
61
+ <div className="login__container">
62
+ <div className="login__card">
63
+ <div className="login__logo">
64
+ <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 362 105" fill="none">
65
+ <path d="M162.919 93.5458V7.96968H136.383V0H197.82V7.96968H171.285V93.5458H162.919Z" fill="black" />
66
+ <path
67
+ d="M210.005 13.849C208.175 13.849 206.606 13.2393 205.299 12.0199C204.079 10.7133 203.469 9.18909 203.469 7.44708C203.469 5.61798 204.079 4.09372 205.299 2.87432C206.606 1.56781 208.175 0.914552 210.005 0.914552C211.748 0.914552 213.229 1.56781 214.449 2.87432C215.757 4.09372 216.41 5.61798 216.41 7.44708C216.41 9.18909 215.757 10.7133 214.449 12.0199C213.229 13.2393 211.748 13.849 210.005 13.849ZM205.822 93.5458V29.527H214.188V93.5458H205.822Z"
68
+ fill="black"
69
+ />
70
+ <path
71
+ d="M280.911 82.3099H280.388C279.342 84.0519 278.078 85.7503 276.597 87.4052C275.115 88.973 273.373 90.3666 271.368 91.5861C269.364 92.8055 267.098 93.7635 264.571 94.4604C262.044 95.2443 259.255 95.6362 256.205 95.6362C252.109 95.6362 248.231 94.8088 244.571 93.1539C240.911 91.4118 237.686 89.0601 234.898 86.0987C232.196 83.0502 230.017 79.4355 228.362 75.2547C226.793 71.0739 226.009 66.5011 226.009 61.5364C226.009 56.5717 226.793 51.9989 228.362 47.8181C230.017 43.6373 232.196 40.0662 234.898 37.1048C237.686 34.0563 240.911 31.7045 244.571 30.0496C248.231 28.3076 252.109 27.4366 256.205 27.4366C262.305 27.4366 267.359 28.7431 271.368 31.3561C275.377 33.9691 278.383 37.0612 280.388 40.6323H280.911L280.388 31.7481V0H288.754V93.5458H280.911V82.3099ZM257.643 88.0585C260.693 88.0585 263.612 87.4923 266.401 86.36C269.277 85.1406 271.76 83.3986 273.852 81.134C276.031 78.7823 277.73 75.9951 278.95 72.7724C280.257 69.4625 280.911 65.7172 280.911 61.5364C280.911 57.3556 280.257 53.6103 278.95 50.3005C277.73 46.9907 276.031 44.2034 273.852 41.9388C271.76 39.6742 269.277 37.9758 266.401 36.8435C263.612 35.6241 260.693 35.0144 257.643 35.0144C254.593 35.0144 251.63 35.6241 248.754 36.8435C245.965 38.0629 243.481 39.8484 241.303 42.2001C239.211 44.4647 237.512 47.252 236.205 50.5618C234.985 53.7845 234.375 57.4427 234.375 61.5364C234.375 65.6301 234.985 69.3319 236.205 72.6417C237.512 75.9515 239.211 78.7387 241.303 81.0033C243.481 83.268 245.965 85.01 248.754 86.2294C251.63 87.4488 254.593 88.0585 257.643 88.0585Z"
72
+ fill="black"
73
+ />
74
+ <path
75
+ d="M359.793 78.3903C358.66 80.7421 357.223 82.9631 355.48 85.0535C353.737 87.1439 351.689 88.973 349.336 90.5408C347.07 92.1087 344.456 93.3281 341.493 94.1991C338.53 95.1572 335.262 95.6362 331.689 95.6362C327.07 95.6362 322.8 94.8088 318.878 93.1539C314.957 91.4118 311.558 89.0166 308.682 85.9681C305.894 82.9196 303.715 79.3484 302.146 75.2547C300.578 71.0739 299.793 66.5011 299.793 61.5364C299.793 56.9201 300.491 52.5651 301.885 48.4714C303.366 44.2905 305.458 40.6759 308.159 37.6274C310.861 34.4917 314.129 32.0094 317.963 30.1803C321.798 28.3512 326.111 27.4366 330.905 27.4366C335.523 27.4366 339.663 28.2641 343.323 29.919C347.07 31.4868 350.251 33.7514 352.865 36.7128C355.48 39.5871 357.484 43.0711 358.878 47.1649C360.36 51.2586 361.101 55.7878 361.101 60.7525C361.101 61.0138 361.101 61.2751 361.101 61.5364C361.013 61.7977 360.97 62.0155 360.97 62.1897V62.9736H308.29C308.377 67.4157 309.162 71.2046 310.643 74.3402C312.125 77.4758 313.998 80.0888 316.264 82.1792C318.53 84.1825 321.057 85.6632 323.846 86.6213C326.634 87.5794 329.336 88.0585 331.95 88.0585C337.353 88.0585 341.623 86.8391 344.761 84.4003C347.898 81.8744 350.512 78.6952 352.604 74.8628L359.793 78.3903ZM352.342 55.9184C352.255 53.828 351.82 51.5634 351.035 49.1246C350.251 46.6858 349.031 44.4212 347.375 42.3308C345.719 40.2404 343.497 38.4984 340.708 37.1048C338.007 35.7112 334.652 35.0144 330.643 35.0144C328.029 35.0144 325.501 35.4934 323.061 36.4515C320.621 37.3225 318.399 38.629 316.395 40.371C314.478 42.113 312.822 44.2905 311.427 46.9036C310.12 49.5166 309.249 52.5215 308.813 55.9184H352.342Z"
76
+ fill="black"
77
+ />
78
+ <path
79
+ d="M101.211 60.1065C101.211 60.1065 107.877 26.7486 76.2712 7.84631C76.4781 7.97189 58.3876 -4.7109 38.4167 3.42406C38.7673 3.78 35.9017 18.7582 45.3684 27.9065C45.161 27.7809 101.213 60.1093 101.213 60.1093"
80
+ fill="url(#paint0_linear_100_16650)"
81
+ />
82
+ <path
83
+ d="M100.141 65.9671C99.6608 66.1056 87.8509 56.4508 75.2936 60.4101C75.5028 60.2877 20.3579 94.1359 20.3579 94.1359C20.3579 94.1359 46.5252 115.888 78.2137 97.1233C78.0045 97.2452 97.7823 87.3929 100.141 65.9671"
84
+ fill="url(#paint1_linear_100_16650)"
85
+ />
86
+ <path
87
+ d="M31.9853 5.67737C31.9853 5.67737 -0.0892988 17.3353 0.153201 54.2498C0.153201 54.0065 -1.30549 76.1073 16.0681 88.9789C16.1905 88.4932 30.5257 83.1504 33.4426 70.2788C33.444 70.522 31.9853 5.67737 31.9853 5.67737Z"
88
+ fill="url(#paint2_linear_100_16650)"
89
+ />
90
+ <defs>
91
+ <linearGradient id="paint0_linear_100_16650" x1="101.798" y1="60.1093" x2="43.5053" y2="0.000186692" gradientUnits="userSpaceOnUse">
92
+ <stop stopColor="#95C3E6" />
93
+ <stop offset="1" stopColor="#2672AB" />
94
+ </linearGradient>
95
+ <linearGradient id="paint1_linear_100_16650" x1="21.3951" y1="93.8819" x2="70.8134" y2="39.2931" gradientUnits="userSpaceOnUse">
96
+ <stop stopColor="#9494F3" />
97
+ <stop offset="1" stopColor="#2626C4" />
98
+ </linearGradient>
99
+ <linearGradient id="paint2_linear_100_16650" x1="31.6767" y1="5.67737" x2="-17.9893" y2="50.1198" gradientUnits="userSpaceOnUse">
100
+ <stop stopColor="#14DA9E" />
101
+ <stop offset="1" stopColor="#26B489" />
102
+ </linearGradient>
103
+ </defs>
104
+ </svg>
105
+ </div>
106
+
107
+ <h4 className="login__card__title">Login to your account</h4>
108
+
109
+ <form className="login__form" onSubmit={handleSubmit} noValidate>
110
+ <div className="login__form__group">
111
+ <label htmlFor="email">Email</label>
112
+ <input
113
+ type="text"
114
+ id="email"
115
+ placeholder="Enter your email"
116
+ value={email}
117
+ onChange={(e) => onEmailChange(e.target.value)}
118
+ aria-invalid={!!errors.email}
119
+ aria-describedby={errors.email ? 'email-error' : undefined}
120
+ />
121
+ {errors.email && (
122
+ <div id="email-error" className="login__error">
123
+ {errors.email}
124
+ </div>
125
+ )}
126
+ </div>
127
+
128
+ <div className="login__form__group">
129
+ <label htmlFor="password">Password</label>
130
+ <input
131
+ type="password"
132
+ id="password"
133
+ placeholder="Enter your password"
134
+ value={password}
135
+ onChange={(e) => onPasswordChange(e.target.value)}
136
+ aria-invalid={!!errors.password}
137
+ aria-describedby={errors.password ? 'password-error' : undefined}
138
+ />
139
+ {errors.password && (
140
+ <div id="password-error" className="login__error">
141
+ {errors.password}
142
+ </div>
143
+ )}
144
+ </div>
145
+
146
+ {errors.form && <div className="login__error">{errors.form}</div>}
147
+
148
+ <button type="submit" className="cta cta--primary">
149
+ Login
150
+ </button>
151
+
152
+ <button type="button" className="login__forgot" onClick={handleForgotPassword}>
153
+ Forgot password?
154
+ </button>
155
+ </form>
156
+ </div>
157
+ </div>
158
+ </div>
159
+ );
160
+ };
161
+
162
+ export default Login;