@qite/tide-components 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +421 -0
- package/build/build-cjs/index.js +40879 -0
- package/build/build-cjs/src/booking-product/components/age-select.d.ts +8 -0
- package/build/build-cjs/src/booking-product/components/amount-input.d.ts +10 -0
- package/build/build-cjs/src/booking-product/components/date-range-picker/calendar-day.d.ts +13 -0
- package/build/build-cjs/src/booking-product/components/date-range-picker/calendar.d.ts +19 -0
- package/build/build-cjs/src/booking-product/components/date-range-picker/index.d.ts +25 -0
- package/build/build-cjs/src/booking-product/components/dates.d.ts +14 -0
- package/build/build-cjs/src/booking-product/components/footer.d.ts +10 -0
- package/build/build-cjs/src/booking-product/components/header.d.ts +11 -0
- package/build/build-cjs/src/booking-product/components/list-view.d.ts +8 -0
- package/build/build-cjs/src/booking-product/components/product.d.ts +9 -0
- package/build/build-cjs/src/booking-product/components/rating.d.ts +6 -0
- package/build/build-cjs/src/booking-product/components/rooms.d.ts +10 -0
- package/build/build-cjs/src/booking-product/constants.d.ts +1 -0
- package/build/build-cjs/src/booking-product/index.d.ts +10 -0
- package/build/build-cjs/src/booking-product/settings-context.d.ts +6 -0
- package/build/build-cjs/src/booking-product/types.d.ts +61 -0
- package/build/build-cjs/src/booking-product/utils/api.d.ts +7 -0
- package/build/build-cjs/src/booking-product/utils/price.d.ts +1 -0
- package/build/build-cjs/src/booking-wizard/api-settings-slice.d.ts +4 -0
- package/build/build-cjs/src/booking-wizard/components/build-step-labels.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/components/labeled-input.d.ts +18 -0
- package/build/build-cjs/src/booking-wizard/components/labeled-select.d.ts +21 -0
- package/build/build-cjs/src/booking-wizard/components/message.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/components/multi-range-filter.d.ts +11 -0
- package/build/build-cjs/src/booking-wizard/components/phone-input.d.ts +17 -0
- package/build/build-cjs/src/booking-wizard/components/print-offer-button.d.ts +17 -0
- package/build/build-cjs/src/booking-wizard/components/step-indicator.d.ts +6 -0
- package/build/build-cjs/src/booking-wizard/components/step-route.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/booking/api.d.ts +11 -0
- package/build/build-cjs/src/booking-wizard/features/booking/booking-self-contained.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/booking/booking-slice.d.ts +61 -0
- package/build/build-cjs/src/booking-wizard/features/booking/booking.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/booking/constants.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +639 -0
- package/build/build-cjs/src/booking-wizard/features/confirmation/confirmation.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/error/error.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-filter.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-modal.d.ts +3 -0
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option.d.ts +10 -0
- package/build/build-cjs/src/booking-wizard/features/flight-options/flight-utils.d.ts +6 -0
- package/build/build-cjs/src/booking-wizard/features/flight-options/index.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/price-details/price-details-api.d.ts +6 -0
- package/build/build-cjs/src/booking-wizard/features/price-details/price-details-slice.d.ts +23 -0
- package/build/build-cjs/src/booking-wizard/features/price-details/selectors.d.ts +378 -0
- package/build/build-cjs/src/booking-wizard/features/price-details/util.d.ts +2 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/no-options.d.ts +3 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/none-option.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-group.d.ts +12 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-item.d.ts +11 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-card.d.ts +10 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-group.d.ts +13 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-room.d.ts +11 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-unit-group.d.ts +13 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-units-card.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/option-utils.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/product-options/options-form.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/room-options/index.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/room-options/room-utils.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/room-options/room.d.ts +12 -0
- package/build/build-cjs/src/booking-wizard/features/room-options/traveler-rooms.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/sidebar/index.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-util.d.ts +13 -0
- package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar.d.ts +0 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-flight.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary-slice.d.ts +8 -0
- package/build/build-cjs/src/booking-wizard/features/summary/summary.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/controls/gender-control.d.ts +5 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +143 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form.d.ts +3 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +4 -0
- package/build/build-cjs/src/booking-wizard/index.d.ts +12 -0
- package/build/build-cjs/src/booking-wizard/settings-context.d.ts +6 -0
- package/build/build-cjs/src/booking-wizard/store.d.ts +26 -0
- package/build/build-cjs/src/booking-wizard/types.d.ts +331 -0
- package/build/build-cjs/src/booking-wizard/use-offer-printer.d.ts +13 -0
- package/build/build-cjs/src/content/components/LanguageSwitcher.d.ts +12 -0
- package/build/build-cjs/src/content/components/accordion.d.ts +9 -0
- package/build/build-cjs/src/content/components/breadcrumb.d.ts +14 -0
- package/build/build-cjs/src/content/components/contact.d.ts +3 -0
- package/build/build-cjs/src/content/components/faq.d.ts +11 -0
- package/build/build-cjs/src/content/components/gallery.d.ts +13 -0
- package/build/build-cjs/src/content/components/image-with-text.d.ts +29 -0
- package/build/build-cjs/src/content/components/itinerary-map-view.d.ts +48 -0
- package/build/build-cjs/src/content/components/login.d.ts +3 -0
- package/build/build-cjs/src/content/components/personal-contact-form.d.ts +3 -0
- package/build/build-cjs/src/content/components/slider.d.ts +10 -0
- package/build/build-cjs/src/content/error/error.d.ts +6 -0
- package/build/build-cjs/src/content/featured-trips/featured-trip-card.d.ts +4 -0
- package/build/build-cjs/src/content/featured-trips/index.d.ts +4 -0
- package/build/build-cjs/src/content/featured-trips/types.d.ts +12 -0
- package/build/build-cjs/src/content/features/content-page/content-page-self-contained.d.ts +6 -0
- package/build/build-cjs/src/content/footer/index.d.ts +4 -0
- package/build/build-cjs/src/content/footer/types.d.ts +27 -0
- package/build/build-cjs/src/content/header/index.d.ts +4 -0
- package/build/build-cjs/src/content/header/types.d.ts +22 -0
- package/build/build-cjs/src/content/image-card-grid/index.d.ts +4 -0
- package/build/build-cjs/src/content/image-card-grid/types.d.ts +12 -0
- package/build/build-cjs/src/content/image-with-text-section/card.d.ts +4 -0
- package/build/build-cjs/src/content/image-with-text-section/index.d.ts +4 -0
- package/build/build-cjs/src/content/image-with-text-section/types.d.ts +19 -0
- package/build/build-cjs/src/content/login/confirm-component.d.ts +4 -0
- package/build/build-cjs/src/content/login/index.d.ts +4 -0
- package/build/build-cjs/src/content/login/login-component.d.ts +4 -0
- package/build/build-cjs/src/content/login/login-services.d.ts +6 -0
- package/build/build-cjs/src/content/login/reset-password-component.d.ts +4 -0
- package/build/build-cjs/src/content/login/types.d.ts +24 -0
- package/build/build-cjs/src/content/navbar/index.d.ts +4 -0
- package/build/build-cjs/src/content/navbar/placeholderData.d.ts +12 -0
- package/build/build-cjs/src/content/navbar/types.d.ts +32 -0
- package/build/build-cjs/src/form/components/fields/date-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/dropdown-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/field-label.d.ts +10 -0
- package/build/build-cjs/src/form/components/fields/form-field.d.ts +11 -0
- package/build/build-cjs/src/form/components/fields/info-text-field.d.ts +7 -0
- package/build/build-cjs/src/form/components/fields/multi-dropdown-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/multiline-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/number-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/optional-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/radio-checkbox-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/rating-field.d.ts +9 -0
- package/build/build-cjs/src/form/components/fields/text-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/fields/yes-no-field.d.ts +4 -0
- package/build/build-cjs/src/form/components/form-body.d.ts +9 -0
- package/build/build-cjs/src/form/components/form-container.d.ts +3 -0
- package/build/build-cjs/src/form/components/form-segment.d.ts +11 -0
- package/build/build-cjs/src/form/components/form-step.d.ts +9 -0
- package/build/build-cjs/src/form/form-configuration-context.d.ts +4 -0
- package/build/build-cjs/src/form/form-types.d.ts +7 -0
- package/build/build-cjs/src/form/hooks/use-form-state.d.ts +13 -0
- package/build/build-cjs/src/form/index.d.ts +7 -0
- package/build/build-cjs/src/form/types.d.ts +20 -0
- package/build/build-cjs/src/form/utils/captcha-util.d.ts +3 -0
- package/build/build-cjs/src/form/utils/form-initial-values-util.d.ts +3 -0
- package/build/build-cjs/src/form/utils/form-submit-util.d.ts +4 -0
- package/build/build-cjs/src/form/utils/form-validation-util.d.ts +10 -0
- package/build/build-cjs/src/form/utils/html-util.d.ts +16 -0
- package/build/build-cjs/src/form/utils/number-field-util.d.ts +11 -0
- package/build/build-cjs/src/form/utils/visibility-util.d.ts +4 -0
- package/build/build-cjs/src/index.d.ts +29 -0
- package/build/build-cjs/src/qsm/components/QSMContainer/qsm-container.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/date-picker/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/date-range-picker/calendar-day.d.ts +12 -0
- package/build/build-cjs/src/qsm/components/date-range-picker/calendar.d.ts +24 -0
- package/build/build-cjs/src/qsm/components/date-range-picker/index.d.ts +10 -0
- package/build/build-cjs/src/qsm/components/double-search-input-group/index.d.ts +8 -0
- package/build/build-cjs/src/qsm/components/item-picker/index.d.ts +13 -0
- package/build/build-cjs/src/qsm/components/mobile-filter-modal/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/search-input/index.d.ts +15 -0
- package/build/build-cjs/src/qsm/components/search-input-group/index.d.ts +13 -0
- package/build/build-cjs/src/qsm/components/travel-class-picker/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/travel-input/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/travel-input-group/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/travel-nationality-picker/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/components/travel-type-picker/index.d.ts +3 -0
- package/build/build-cjs/src/qsm/index.d.ts +7 -0
- package/build/build-cjs/src/qsm/qsm-configuration-context.d.ts +4 -0
- package/build/build-cjs/src/qsm/store/qsm-slice.d.ts +74 -0
- package/build/build-cjs/src/qsm/store/qsm-store.d.ts +10 -0
- package/build/build-cjs/src/qsm/types.d.ts +82 -0
- package/build/build-cjs/src/search-results/components/book-packaging-entry/index.d.ts +9 -0
- package/build/build-cjs/src/search-results/components/book-packaging-entry/wl-sidebar.d.ts +9 -0
- package/build/build-cjs/src/search-results/components/excursions/day-by-day-excursions.d.ts +5 -0
- package/build/build-cjs/src/search-results/components/excursions/excursion-details.d.ts +3 -0
- package/build/build-cjs/src/search-results/components/excursions/excursion-results.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/filters/filters.d.ts +13 -0
- package/build/build-cjs/src/search-results/components/filters/flight-filters.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/flight/flight-banner.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/flight/flight-card.d.ts +7 -0
- package/build/build-cjs/src/search-results/components/flight/flight-leg.d.ts +7 -0
- package/build/build-cjs/src/search-results/components/flight/flight-path.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/flight/flight-results.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/flight/flight-search-context/index.d.ts +39 -0
- package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +14 -0
- package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +7 -0
- package/build/build-cjs/src/search-results/components/flight/flight-selection/index.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +7 -0
- package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +7 -0
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +9 -0
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-results.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +7 -0
- package/build/build-cjs/src/search-results/components/hotel/hotel-card.d.ts +8 -0
- package/build/build-cjs/src/search-results/components/item-picker/index.d.ts +15 -0
- package/build/build-cjs/src/search-results/components/itinerary/full-itinerary.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +10 -0
- package/build/build-cjs/src/search-results/components/multi-range-filter.d.ts +11 -0
- package/build/build-cjs/src/search-results/components/round-trip/round-trip-results.d.ts +5 -0
- package/build/build-cjs/src/search-results/components/search-results-container/flight-search-results.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/search-results-container/search-results-container.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/spinner/spinner.d.ts +6 -0
- package/build/build-cjs/src/search-results/components/tab-views/index.d.ts +5 -0
- package/build/build-cjs/src/search-results/features/flights/flight-search-results-self-contained.d.ts +5 -0
- package/build/build-cjs/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +5 -0
- package/build/build-cjs/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +5 -0
- package/build/build-cjs/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +5 -0
- package/build/build-cjs/src/search-results/index.d.ts +8 -0
- package/build/build-cjs/src/search-results/search-results-configuration-context.d.ts +4 -0
- package/build/build-cjs/src/search-results/store/search-results-selectors.d.ts +542 -0
- package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +57 -0
- package/build/build-cjs/src/search-results/store/search-results-store.d.ts +10 -0
- package/build/build-cjs/src/search-results/types.d.ts +185 -0
- package/build/build-cjs/src/search-results/utils/flight-utils.d.ts +11 -0
- package/build/build-cjs/src/search-results/utils/packaging-utils.d.ts +7 -0
- package/build/build-cjs/src/search-results/utils/query-utils.d.ts +12 -0
- package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +8 -0
- package/build/build-cjs/src/shared/booking/booking-panel.d.ts +13 -0
- package/build/build-cjs/src/shared/booking/product-card.d.ts +8 -0
- package/build/build-cjs/src/shared/booking/shared-confirmation.d.ts +25 -0
- package/build/build-cjs/src/shared/booking/shared-sidebar.d.ts +36 -0
- package/build/build-cjs/src/shared/booking/step-indicators.d.ts +7 -0
- package/build/build-cjs/src/shared/booking/summary.d.ts +44 -0
- package/build/build-cjs/src/shared/booking/travelers-form.d.ts +79 -0
- package/build/build-cjs/src/shared/components/flyin/accommodation-flyin.d.ts +7 -0
- package/build/build-cjs/src/shared/components/flyin/flights-flyin.d.ts +7 -0
- package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +20 -0
- package/build/build-cjs/src/shared/components/flyin/group-tour-flyin.d.ts +8 -0
- package/build/build-cjs/src/shared/components/flyin/packaging-flights-flyin.d.ts +9 -0
- package/build/build-cjs/src/shared/components/icon.d.ts +11 -0
- package/build/build-cjs/src/shared/components/loader.d.ts +6 -0
- package/build/build-cjs/src/shared/types.d.ts +16 -0
- package/build/build-cjs/src/shared/utils/booking-summary.d.ts +2 -0
- package/build/build-cjs/src/shared/utils/class-util.d.ts +1 -0
- package/build/build-cjs/src/shared/utils/localization-util.d.ts +51 -0
- package/build/build-cjs/src/shared/utils/query-string-util.d.ts +8 -0
- package/build/build-cjs/src/shared/utils/tide-api-utils.d.ts +4 -0
- package/build/build-cjs/src/shared/utils/use-media-query-util.d.ts +2 -0
- package/build/build-esm/index.js +40833 -0
- package/build/build-esm/src/booking-product/components/age-select.d.ts +8 -0
- package/build/build-esm/src/booking-product/components/amount-input.d.ts +10 -0
- package/build/build-esm/src/booking-product/components/date-range-picker/calendar-day.d.ts +13 -0
- package/build/build-esm/src/booking-product/components/date-range-picker/calendar.d.ts +19 -0
- package/build/build-esm/src/booking-product/components/date-range-picker/index.d.ts +25 -0
- package/build/build-esm/src/booking-product/components/dates.d.ts +14 -0
- package/build/build-esm/src/booking-product/components/footer.d.ts +10 -0
- package/build/build-esm/src/booking-product/components/header.d.ts +11 -0
- package/build/build-esm/src/booking-product/components/list-view.d.ts +8 -0
- package/build/build-esm/src/booking-product/components/product.d.ts +9 -0
- package/build/build-esm/src/booking-product/components/rating.d.ts +6 -0
- package/build/build-esm/src/booking-product/components/rooms.d.ts +10 -0
- package/build/build-esm/src/booking-product/constants.d.ts +1 -0
- package/build/build-esm/src/booking-product/index.d.ts +10 -0
- package/build/build-esm/src/booking-product/settings-context.d.ts +6 -0
- package/build/build-esm/src/booking-product/types.d.ts +61 -0
- package/build/build-esm/src/booking-product/utils/api.d.ts +7 -0
- package/build/build-esm/src/booking-product/utils/price.d.ts +1 -0
- package/build/build-esm/src/booking-wizard/api-settings-slice.d.ts +4 -0
- package/build/build-esm/src/booking-wizard/components/build-step-labels.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/components/labeled-input.d.ts +18 -0
- package/build/build-esm/src/booking-wizard/components/labeled-select.d.ts +21 -0
- package/build/build-esm/src/booking-wizard/components/message.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/components/multi-range-filter.d.ts +11 -0
- package/build/build-esm/src/booking-wizard/components/phone-input.d.ts +17 -0
- package/build/build-esm/src/booking-wizard/components/print-offer-button.d.ts +17 -0
- package/build/build-esm/src/booking-wizard/components/step-indicator.d.ts +6 -0
- package/build/build-esm/src/booking-wizard/components/step-route.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/booking/api.d.ts +11 -0
- package/build/build-esm/src/booking-wizard/features/booking/booking-self-contained.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/booking/booking-slice.d.ts +61 -0
- package/build/build-esm/src/booking-wizard/features/booking/booking.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/booking/constants.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +639 -0
- package/build/build-esm/src/booking-wizard/features/confirmation/confirmation.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/error/error.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-filter.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-modal.d.ts +3 -0
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-option.d.ts +10 -0
- package/build/build-esm/src/booking-wizard/features/flight-options/flight-utils.d.ts +6 -0
- package/build/build-esm/src/booking-wizard/features/flight-options/index.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/price-details/price-details-api.d.ts +6 -0
- package/build/build-esm/src/booking-wizard/features/price-details/price-details-slice.d.ts +23 -0
- package/build/build-esm/src/booking-wizard/features/price-details/selectors.d.ts +378 -0
- package/build/build-esm/src/booking-wizard/features/price-details/util.d.ts +2 -0
- package/build/build-esm/src/booking-wizard/features/product-options/no-options.d.ts +3 -0
- package/build/build-esm/src/booking-wizard/features/product-options/none-option.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-booking-group.d.ts +12 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-item.d.ts +11 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-pax-card.d.ts +10 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-pax-group.d.ts +13 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-room.d.ts +11 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-unit-group.d.ts +13 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-units-card.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/product-options/option-utils.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/product-options/options-form.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/room-options/index.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/room-options/room-utils.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/room-options/room.d.ts +12 -0
- package/build/build-esm/src/booking-wizard/features/room-options/traveler-rooms.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/sidebar/index.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-util.d.ts +13 -0
- package/build/build-esm/src/booking-wizard/features/sidebar/sidebar.d.ts +0 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-flight.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary-slice.d.ts +8 -0
- package/build/build-esm/src/booking-wizard/features/summary/summary.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/controls/gender-control.d.ts +5 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +143 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form.d.ts +3 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +4 -0
- package/build/build-esm/src/booking-wizard/index.d.ts +12 -0
- package/build/build-esm/src/booking-wizard/settings-context.d.ts +6 -0
- package/build/build-esm/src/booking-wizard/store.d.ts +26 -0
- package/build/build-esm/src/booking-wizard/types.d.ts +331 -0
- package/build/build-esm/src/booking-wizard/use-offer-printer.d.ts +13 -0
- package/build/build-esm/src/content/components/LanguageSwitcher.d.ts +12 -0
- package/build/build-esm/src/content/components/accordion.d.ts +9 -0
- package/build/build-esm/src/content/components/breadcrumb.d.ts +14 -0
- package/build/build-esm/src/content/components/contact.d.ts +3 -0
- package/build/build-esm/src/content/components/faq.d.ts +11 -0
- package/build/build-esm/src/content/components/gallery.d.ts +13 -0
- package/build/build-esm/src/content/components/image-with-text.d.ts +29 -0
- package/build/build-esm/src/content/components/itinerary-map-view.d.ts +48 -0
- package/build/build-esm/src/content/components/login.d.ts +3 -0
- package/build/build-esm/src/content/components/personal-contact-form.d.ts +3 -0
- package/build/build-esm/src/content/components/slider.d.ts +10 -0
- package/build/build-esm/src/content/error/error.d.ts +6 -0
- package/build/build-esm/src/content/featured-trips/featured-trip-card.d.ts +4 -0
- package/build/build-esm/src/content/featured-trips/index.d.ts +4 -0
- package/build/build-esm/src/content/featured-trips/types.d.ts +12 -0
- package/build/build-esm/src/content/features/content-page/content-page-self-contained.d.ts +6 -0
- package/build/build-esm/src/content/footer/index.d.ts +4 -0
- package/build/build-esm/src/content/footer/types.d.ts +27 -0
- package/build/build-esm/src/content/header/index.d.ts +4 -0
- package/build/build-esm/src/content/header/types.d.ts +22 -0
- package/build/build-esm/src/content/image-card-grid/index.d.ts +4 -0
- package/build/build-esm/src/content/image-card-grid/types.d.ts +12 -0
- package/build/build-esm/src/content/image-with-text-section/card.d.ts +4 -0
- package/build/build-esm/src/content/image-with-text-section/index.d.ts +4 -0
- package/build/build-esm/src/content/image-with-text-section/types.d.ts +19 -0
- package/build/build-esm/src/content/login/confirm-component.d.ts +4 -0
- package/build/build-esm/src/content/login/index.d.ts +4 -0
- package/build/build-esm/src/content/login/login-component.d.ts +4 -0
- package/build/build-esm/src/content/login/login-services.d.ts +6 -0
- package/build/build-esm/src/content/login/reset-password-component.d.ts +4 -0
- package/build/build-esm/src/content/login/types.d.ts +24 -0
- package/build/build-esm/src/content/navbar/index.d.ts +4 -0
- package/build/build-esm/src/content/navbar/placeholderData.d.ts +12 -0
- package/build/build-esm/src/content/navbar/types.d.ts +32 -0
- package/build/build-esm/src/form/components/fields/date-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/dropdown-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/field-label.d.ts +10 -0
- package/build/build-esm/src/form/components/fields/form-field.d.ts +11 -0
- package/build/build-esm/src/form/components/fields/info-text-field.d.ts +7 -0
- package/build/build-esm/src/form/components/fields/multi-dropdown-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/multiline-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/number-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/optional-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/radio-checkbox-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/rating-field.d.ts +9 -0
- package/build/build-esm/src/form/components/fields/text-field.d.ts +4 -0
- package/build/build-esm/src/form/components/fields/yes-no-field.d.ts +4 -0
- package/build/build-esm/src/form/components/form-body.d.ts +9 -0
- package/build/build-esm/src/form/components/form-container.d.ts +3 -0
- package/build/build-esm/src/form/components/form-segment.d.ts +11 -0
- package/build/build-esm/src/form/components/form-step.d.ts +9 -0
- package/build/build-esm/src/form/form-configuration-context.d.ts +4 -0
- package/build/build-esm/src/form/form-types.d.ts +7 -0
- package/build/build-esm/src/form/hooks/use-form-state.d.ts +13 -0
- package/build/build-esm/src/form/index.d.ts +7 -0
- package/build/build-esm/src/form/types.d.ts +20 -0
- package/build/build-esm/src/form/utils/captcha-util.d.ts +3 -0
- package/build/build-esm/src/form/utils/form-initial-values-util.d.ts +3 -0
- package/build/build-esm/src/form/utils/form-submit-util.d.ts +4 -0
- package/build/build-esm/src/form/utils/form-validation-util.d.ts +10 -0
- package/build/build-esm/src/form/utils/html-util.d.ts +16 -0
- package/build/build-esm/src/form/utils/number-field-util.d.ts +11 -0
- package/build/build-esm/src/form/utils/visibility-util.d.ts +4 -0
- package/build/build-esm/src/index.d.ts +29 -0
- package/build/build-esm/src/qsm/components/QSMContainer/qsm-container.d.ts +3 -0
- package/build/build-esm/src/qsm/components/date-picker/index.d.ts +3 -0
- package/build/build-esm/src/qsm/components/date-range-picker/calendar-day.d.ts +12 -0
- package/build/build-esm/src/qsm/components/date-range-picker/calendar.d.ts +24 -0
- package/build/build-esm/src/qsm/components/date-range-picker/index.d.ts +10 -0
- package/build/build-esm/src/qsm/components/double-search-input-group/index.d.ts +8 -0
- package/build/build-esm/src/qsm/components/item-picker/index.d.ts +13 -0
- package/build/build-esm/src/qsm/components/mobile-filter-modal/index.d.ts +3 -0
- package/build/build-esm/src/qsm/components/search-input/index.d.ts +15 -0
- package/build/build-esm/src/qsm/components/search-input-group/index.d.ts +13 -0
- package/build/build-esm/src/qsm/components/travel-class-picker/index.d.ts +3 -0
- package/build/build-esm/src/qsm/components/travel-input/index.d.ts +3 -0
- package/build/build-esm/src/qsm/components/travel-input-group/index.d.ts +3 -0
- package/build/build-esm/src/qsm/components/travel-nationality-picker/index.d.ts +3 -0
- package/build/build-esm/src/qsm/components/travel-type-picker/index.d.ts +3 -0
- package/build/build-esm/src/qsm/index.d.ts +7 -0
- package/build/build-esm/src/qsm/qsm-configuration-context.d.ts +4 -0
- package/build/build-esm/src/qsm/store/qsm-slice.d.ts +74 -0
- package/build/build-esm/src/qsm/store/qsm-store.d.ts +10 -0
- package/build/build-esm/src/qsm/types.d.ts +82 -0
- package/build/build-esm/src/search-results/components/book-packaging-entry/index.d.ts +9 -0
- package/build/build-esm/src/search-results/components/book-packaging-entry/wl-sidebar.d.ts +9 -0
- package/build/build-esm/src/search-results/components/excursions/day-by-day-excursions.d.ts +5 -0
- package/build/build-esm/src/search-results/components/excursions/excursion-details.d.ts +3 -0
- package/build/build-esm/src/search-results/components/excursions/excursion-results.d.ts +8 -0
- package/build/build-esm/src/search-results/components/filters/filters.d.ts +13 -0
- package/build/build-esm/src/search-results/components/filters/flight-filters.d.ts +8 -0
- package/build/build-esm/src/search-results/components/flight/flight-banner.d.ts +8 -0
- package/build/build-esm/src/search-results/components/flight/flight-card.d.ts +7 -0
- package/build/build-esm/src/search-results/components/flight/flight-leg.d.ts +7 -0
- package/build/build-esm/src/search-results/components/flight/flight-path.d.ts +6 -0
- package/build/build-esm/src/search-results/components/flight/flight-results.d.ts +8 -0
- package/build/build-esm/src/search-results/components/flight/flight-search-context/index.d.ts +39 -0
- package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +14 -0
- package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +7 -0
- package/build/build-esm/src/search-results/components/flight/flight-selection/index.d.ts +8 -0
- package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +7 -0
- package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +7 -0
- package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +9 -0
- package/build/build-esm/src/search-results/components/group-tour/group-tour-results.d.ts +6 -0
- package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +7 -0
- package/build/build-esm/src/search-results/components/hotel/hotel-card.d.ts +8 -0
- package/build/build-esm/src/search-results/components/item-picker/index.d.ts +15 -0
- package/build/build-esm/src/search-results/components/itinerary/full-itinerary.d.ts +6 -0
- package/build/build-esm/src/search-results/components/itinerary/index.d.ts +10 -0
- package/build/build-esm/src/search-results/components/multi-range-filter.d.ts +11 -0
- package/build/build-esm/src/search-results/components/round-trip/round-trip-results.d.ts +5 -0
- package/build/build-esm/src/search-results/components/search-results-container/flight-search-results.d.ts +6 -0
- package/build/build-esm/src/search-results/components/search-results-container/search-results-container.d.ts +6 -0
- package/build/build-esm/src/search-results/components/spinner/spinner.d.ts +6 -0
- package/build/build-esm/src/search-results/components/tab-views/index.d.ts +5 -0
- package/build/build-esm/src/search-results/features/flights/flight-search-results-self-contained.d.ts +5 -0
- package/build/build-esm/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +5 -0
- package/build/build-esm/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +5 -0
- package/build/build-esm/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +5 -0
- package/build/build-esm/src/search-results/index.d.ts +8 -0
- package/build/build-esm/src/search-results/search-results-configuration-context.d.ts +4 -0
- package/build/build-esm/src/search-results/store/search-results-selectors.d.ts +542 -0
- package/build/build-esm/src/search-results/store/search-results-slice.d.ts +57 -0
- package/build/build-esm/src/search-results/store/search-results-store.d.ts +10 -0
- package/build/build-esm/src/search-results/types.d.ts +185 -0
- package/build/build-esm/src/search-results/utils/flight-utils.d.ts +11 -0
- package/build/build-esm/src/search-results/utils/packaging-utils.d.ts +7 -0
- package/build/build-esm/src/search-results/utils/query-utils.d.ts +12 -0
- package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +8 -0
- package/build/build-esm/src/shared/booking/booking-panel.d.ts +13 -0
- package/build/build-esm/src/shared/booking/product-card.d.ts +8 -0
- package/build/build-esm/src/shared/booking/shared-confirmation.d.ts +25 -0
- package/build/build-esm/src/shared/booking/shared-sidebar.d.ts +36 -0
- package/build/build-esm/src/shared/booking/step-indicators.d.ts +7 -0
- package/build/build-esm/src/shared/booking/summary.d.ts +44 -0
- package/build/build-esm/src/shared/booking/travelers-form.d.ts +79 -0
- package/build/build-esm/src/shared/components/flyin/accommodation-flyin.d.ts +7 -0
- package/build/build-esm/src/shared/components/flyin/flights-flyin.d.ts +7 -0
- package/build/build-esm/src/shared/components/flyin/flyin.d.ts +20 -0
- package/build/build-esm/src/shared/components/flyin/group-tour-flyin.d.ts +8 -0
- package/build/build-esm/src/shared/components/flyin/packaging-flights-flyin.d.ts +9 -0
- package/build/build-esm/src/shared/components/icon.d.ts +11 -0
- package/build/build-esm/src/shared/components/loader.d.ts +6 -0
- package/build/build-esm/src/shared/types.d.ts +16 -0
- package/build/build-esm/src/shared/utils/booking-summary.d.ts +2 -0
- package/build/build-esm/src/shared/utils/class-util.d.ts +1 -0
- package/build/build-esm/src/shared/utils/localization-util.d.ts +51 -0
- package/build/build-esm/src/shared/utils/query-string-util.d.ts +8 -0
- package/build/build-esm/src/shared/utils/tide-api-utils.d.ts +4 -0
- package/build/build-esm/src/shared/utils/use-media-query-util.d.ts +2 -0
- package/package.json +91 -0
- package/styles/abstracts/_mixins.scss +74 -0
- package/styles/abstracts/_variables.scss +57 -0
- package/styles/base/_fonts.scss +2 -0
- package/styles/base/_normalize.scss +227 -0
- package/styles/base/_typography.scss +35 -0
- package/styles/booking-joker-variables.scss +596 -0
- package/styles/booking-product-variables.scss +330 -0
- package/styles/booking-product.scss +438 -0
- package/styles/booking-qsm-variables.scss +501 -0
- package/styles/booking-qsm.scss +52 -0
- package/styles/booking-search-results-variables.scss +728 -0
- package/styles/booking-search-results.scss +53 -0
- package/styles/booking-wizard-variables.scss +603 -0
- package/styles/booking-wizard.scss +61 -0
- package/styles/components/_accordion.scss +67 -0
- package/styles/components/_animations.scss +39 -0
- package/styles/components/_base.scss +107 -0
- package/styles/components/_booking.scss +906 -0
- package/styles/components/_breadcrumb.scss +92 -0
- package/styles/components/_button.scss +238 -0
- package/styles/components/_checkbox.scss +230 -0
- package/styles/components/_contact.scss +255 -0
- package/styles/components/_content.scss +336 -0
- package/styles/components/_cta.scss +238 -0
- package/styles/components/_date-list.scss +41 -0
- package/styles/components/_date-range-picker.scss +223 -0
- package/styles/components/_decrement-increment.scss +35 -0
- package/styles/components/_dropdown.scss +77 -0
- package/styles/components/_error.scss +50 -0
- package/styles/components/_faq.scss +30 -0
- package/styles/components/_flight-option.scss +1432 -0
- package/styles/components/_flyin.scss +830 -0
- package/styles/components/_footer.scss +135 -0
- package/styles/components/_form.scss +1693 -0
- package/styles/components/_gallery.scss +317 -0
- package/styles/components/_header.scss +113 -0
- package/styles/components/_image-with-text.scss +206 -0
- package/styles/components/_img-slider.scss +175 -0
- package/styles/components/_info-message.scss +75 -0
- package/styles/components/_input.scss +35 -0
- package/styles/components/_list.scss +185 -0
- package/styles/components/_loader.scss +152 -0
- package/styles/components/_login.scss +140 -0
- package/styles/components/_map-view.scss +1100 -0
- package/styles/components/_mixins.scss +579 -0
- package/styles/components/_navbar.scss +765 -0
- package/styles/components/_passenger-picker.scss +306 -0
- package/styles/components/_phone-input.scss +8 -0
- package/styles/components/_placeholders.scss +165 -0
- package/styles/components/_pricing-summary.scss +163 -0
- package/styles/components/_qsm.scss +17 -0
- package/styles/components/_radiobutton.scss +170 -0
- package/styles/components/_search.scss +2089 -0
- package/styles/components/_select-wrapper.scss +81 -0
- package/styles/components/_slider.scss +128 -0
- package/styles/components/_spinner.scss +29 -0
- package/styles/components/_step-indicators.scss +187 -0
- package/styles/components/_table.scss +81 -0
- package/styles/components/_tide-form.scss +578 -0
- package/styles/components/_tree.scss +648 -0
- package/styles/components/_typeahead.scss +275 -0
- package/styles/components/_variables.scss +89 -0
- package/styles/content-blocks-variables.scss +543 -0
- package/styles/content-blocks.scss +66 -0
- package/styles/font.scss +2 -0
- package/styles/qsm/_calendar.scss +274 -0
- package/styles/qsm/_qsm.scss +1097 -0
- package/styles/search.scss +1200 -0
- package/styles/tide-form-variables.scss +275 -0
- package/styles/tide-form.scss +56 -0
package/README.md
ADDED
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
# @qite/tide-components
|
|
2
|
+
|
|
3
|
+
React component library for Tide. What started as a single booking wizard component has grown into a full set of building blocks used across Tide-integrated sites: booking flows, search results, quick search modules (QSM), dynamic forms, member login, and marketing/content blocks (navbar, header, footer, image grids, sliders, FAQ, ...).
|
|
4
|
+
|
|
5
|
+
Every component that talks to Tide's API is a **plain React component** — you own the page/routing, this library owns the Tide-specific UI and API calls.
|
|
6
|
+
|
|
7
|
+
## Table of contents
|
|
8
|
+
|
|
9
|
+
- [Requirements](#requirements)
|
|
10
|
+
- [Installation](#installation)
|
|
11
|
+
- [Dependencies](#dependencies)
|
|
12
|
+
- [Authentication (apiKey / apiUrl)](#authentication-apikey--apiurl)
|
|
13
|
+
- [Provider & router requirements at a glance](#provider--router-requirements-at-a-glance)
|
|
14
|
+
- [Components](#components)
|
|
15
|
+
- [Booking, search & forms](#booking-search--forms)
|
|
16
|
+
- [Content & marketing](#content--marketing)
|
|
17
|
+
- [Self-contained (non-React) bundles](#self-contained-non-react-bundles)
|
|
18
|
+
- [Framework-specific notes](#framework-specific-notes)
|
|
19
|
+
|
|
20
|
+
## Requirements
|
|
21
|
+
|
|
22
|
+
- Node 20 (an `.nvmrc` is present; if you use fnm or nvm, your shell should pick it up automatically)
|
|
23
|
+
- React 18 (`react`, `react-dom` ^18.2.0)
|
|
24
|
+
- TypeScript 5.x recommended — the package ships its own `.d.ts` declarations
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @qite/tide-components
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Then install the [peer dependencies](#dependencies) your package manager doesn't already resolve for you.
|
|
33
|
+
|
|
34
|
+
## Dependencies
|
|
35
|
+
|
|
36
|
+
### Peer dependencies (you must install these)
|
|
37
|
+
|
|
38
|
+
These are **not** bundled into the build output (they're externalized via `rollup-plugin-peer-deps-external`) — your app supplies its own copy, which also avoids duplicate-React-instance issues.
|
|
39
|
+
|
|
40
|
+
| Package | Version | Notes |
|
|
41
|
+
| ------------------ | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| `react` | `^18.2.0` | |
|
|
43
|
+
| `react-dom` | `^18.2.0` | |
|
|
44
|
+
| `react-redux` | `^9.2.0` | Needed even if you never touch Redux directly — `BookingWizard`, `QSM` and `SearchResults` create and provide their own stores internally |
|
|
45
|
+
| `react-router` | `^6.30.3` | Only exercised by `BookingWizard`'s standard (non-self-contained) flow — see [Provider & router requirements](#provider--router-requirements-at-a-glance) |
|
|
46
|
+
| `@reduxjs/toolkit` | `^2.8.2` | |
|
|
47
|
+
| `formik` | `^2.2.9` | Used by `TideForm` and the booking traveler forms |
|
|
48
|
+
| `immer` | `^9.0.5` | |
|
|
49
|
+
| `lodash` | `^4.17.21` | |
|
|
50
|
+
| `date-fns` | `^4.1.0` | |
|
|
51
|
+
| `uuid` | `^11.1.0` | |
|
|
52
|
+
| `@popperjs/core` | `^2.10.2` | Positioning for date pickers / dropdowns |
|
|
53
|
+
| `react-popper` | `^2.2.5` | |
|
|
54
|
+
| `flat` | `^5.0.2` | |
|
|
55
|
+
| `@jsonurl/jsonurl` | `^1.1.4` | Used to serialize booking state into the URL |
|
|
56
|
+
|
|
57
|
+
### Bundled dependencies (no separate install needed)
|
|
58
|
+
|
|
59
|
+
These ship inside `@qite/tide-components`'s build output already, so you don't add them to your own `package.json`:
|
|
60
|
+
|
|
61
|
+
- `he`, `jwt-decode`, `react-html-comment`, `react-router-dom`, `signalr-no-jquery` (used internally for live flight-price updates in `SearchResults`), `yup`
|
|
62
|
+
- The [Tide API client](#a-note-on-qitetide-client-and-typescript) runtime code
|
|
63
|
+
|
|
64
|
+
### A note on `@qite/tide-client` and TypeScript
|
|
65
|
+
|
|
66
|
+
The Tide API client, `@qite/tide-client`, is bundled into the build at runtime — you do not need to install it for the components to work. However, several public prop/settings types reference its types directly (`Login`'s `tideClientConfig: TideClientConfig`, `Navbar`'s `member?: MemberInfo`, `QSM`'s `searchConfigurations`, `TideForm`'s `contexts`, `SearchResults`'s `tideConnection`, ...). **If you use TypeScript, add `@qite/tide-client` as a dev dependency too**, matching the version this package was built against, so those types resolve cleanly in your build. It isn't needed at runtime — only at compile time.
|
|
67
|
+
|
|
68
|
+
## Authentication (apiKey / apiUrl)
|
|
69
|
+
|
|
70
|
+
Components that call Tide's API accept a Tide API key and host, under slightly different names depending on the component:
|
|
71
|
+
|
|
72
|
+
| Component | Where |
|
|
73
|
+
| --------------------------------------------- | ----------------------------------------------- |
|
|
74
|
+
| `BookingProduct`, `BookingWizard`, `TideForm` | `settings.apiKey` / `settings.apiUrl` |
|
|
75
|
+
| `SearchResults` | `configuration.tideConnection.apiKey` / `.host` |
|
|
76
|
+
| `Login` | `tideClientConfig.apiKey` / `.host` |
|
|
77
|
+
|
|
78
|
+
As of `@qite/tide-client@2.0.0`, that API key is exchanged transparently for a short-lived access token behind the scenes (token exchange, caching and refresh all happen inside the client) — you don't need to write any auth code yourself, just provide a valid key and host. See [API_KEY_MIGRATION.md](API_KEY_MIGRATION.md) for the full background on that model, including how a member/customer's own login token (from `Login`) takes over from the service API key once someone is logged in.
|
|
79
|
+
|
|
80
|
+
## Provider & router requirements at a glance
|
|
81
|
+
|
|
82
|
+
Every component below is self-contained regarding state — none of them expect you to pass in a Redux store or context. The only two things you may need to add yourself:
|
|
83
|
+
|
|
84
|
+
| Component | Needs `<BrowserRouter>` around it? | Sets up its own Redux store internally? |
|
|
85
|
+
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
|
|
86
|
+
| `BookingWizard` | **Yes** (standard flow — set `settings.skipRouter = true` to opt out, matching the self-contained bundle's behavior) | Yes |
|
|
87
|
+
| `QSM` | No | Yes |
|
|
88
|
+
| `SearchResults` | No | Yes |
|
|
89
|
+
| `BookingProduct` | No | No (context only) |
|
|
90
|
+
| `TideForm` | No | No (context only) |
|
|
91
|
+
| `Login` | No | No |
|
|
92
|
+
| All content/marketing components | No | No |
|
|
93
|
+
|
|
94
|
+
## Components
|
|
95
|
+
|
|
96
|
+
### Booking, search & forms
|
|
97
|
+
|
|
98
|
+
#### `BookingProduct`
|
|
99
|
+
|
|
100
|
+
A single bookable product (accommodation, excursion, ...) with its own date/room picker and pricing, typically shown in a list or product detail page.
|
|
101
|
+
|
|
102
|
+
```tsx
|
|
103
|
+
<BookingProduct
|
|
104
|
+
productCode="PTFSGROUPTOUR"
|
|
105
|
+
productName="Soft Rock Hotel"
|
|
106
|
+
rating={3.5}
|
|
107
|
+
settings={{
|
|
108
|
+
apiKey,
|
|
109
|
+
apiUrl,
|
|
110
|
+
officeId: 1,
|
|
111
|
+
catalogueId: 1,
|
|
112
|
+
language: 'en-GB',
|
|
113
|
+
basePath: '/boeken',
|
|
114
|
+
priceMode: 0,
|
|
115
|
+
includeFlights: true,
|
|
116
|
+
displayMode: 'calendar'
|
|
117
|
+
}}
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Key `settings` fields: `officeId`, `catalogueId`, `basePath`, `language`, `priceMode` (required); `apiKey`/`apiUrl`, `agentId`, `includeFlights`, `displayMode` (`'list' | 'calendar'`), `disableRooms`, `mainIcon`, `customTranslationsUrl`/`customTranslations`, `isOffer`, `alternativeActionText`/`alternativeAction` (optional).
|
|
122
|
+
|
|
123
|
+
#### `BookingWizard`
|
|
124
|
+
|
|
125
|
+
The full multi-step booking flow (options → travelers → summary → confirmation) for a product, driven by routes.
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
<BrowserRouter>
|
|
129
|
+
<Routes>
|
|
130
|
+
<Route
|
|
131
|
+
path="/boeken/*"
|
|
132
|
+
element={
|
|
133
|
+
<BookingWizard
|
|
134
|
+
productCode="HTFSSOFTROCK"
|
|
135
|
+
productName="Soft Rock Hotel"
|
|
136
|
+
thumbnailUrl="https://example.com/thumb.jpg"
|
|
137
|
+
settings={{
|
|
138
|
+
apiKey,
|
|
139
|
+
apiUrl,
|
|
140
|
+
officeId: 1,
|
|
141
|
+
language: 'en-GB',
|
|
142
|
+
basePath: '/boeken',
|
|
143
|
+
productPath: '/',
|
|
144
|
+
bookingOptions: { b2b: { entryStatus: 0 }, b2b2c: { entryStatus: 0 }, b2c: { entryStatus: 0 } },
|
|
145
|
+
roomOptions: { pathSuffix: '/kamers' },
|
|
146
|
+
flightOptions: { pathSuffix: '/vluchten' },
|
|
147
|
+
options: { pathSuffix: '/extra' },
|
|
148
|
+
travellers: { pathSuffix: '/reizigers' },
|
|
149
|
+
summary: { pathSuffix: '/samenvatting', checkboxes: [] },
|
|
150
|
+
confirmation: { pathSuffix: '/bevestiging' },
|
|
151
|
+
error: { pathSuffix: '/mislukt' },
|
|
152
|
+
companyContactEmail: 'info@example.com',
|
|
153
|
+
companyContactPhone: '+32 000 00 00 00',
|
|
154
|
+
showProductCardRating: false,
|
|
155
|
+
showSidebarDeposit: true
|
|
156
|
+
}}
|
|
157
|
+
/>
|
|
158
|
+
}
|
|
159
|
+
/>
|
|
160
|
+
</Routes>
|
|
161
|
+
</BrowserRouter>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Every step (`roomOptions`, `flightOptions`, `options`, `travellers`, `summary`, `confirmation`, `error`) is a required config block with at least a `pathSuffix`. Other notable `settings` fields: `skipBasePathInRouting` (omit `basePath` when building internal nav URLs — needed when the host already scopes routing itself, e.g. under a Gatsby `basePath`), `skipRouter` (bypass react-router entirely, see below), `translationFiles`/`customTranslationsUrl`, `hideAgentSelection`/`agentRequired`/`agentAdressId`, `enableVoucher`, `maxChildAge` (defaults to 17).
|
|
165
|
+
|
|
166
|
+
Set `skipRouter: true` to run `BookingWizard` without a `<BrowserRouter>` ancestor — step transitions are then driven by Redux state instead of routes (this is exactly what the [self-contained bundle](#self-contained-non-react-bundles) does).
|
|
167
|
+
|
|
168
|
+
#### `QSM` (Quick Search Module)
|
|
169
|
+
|
|
170
|
+
A search form (flights, hotels, round trips, group tours) that hands its result off via `onSubmit` — QSM itself never calls the booking/search-results API, it just collects and validates search criteria.
|
|
171
|
+
|
|
172
|
+
```tsx
|
|
173
|
+
<QSM
|
|
174
|
+
configuration={{
|
|
175
|
+
searchConfigurations,
|
|
176
|
+
askTravelers: true,
|
|
177
|
+
askNationality: true,
|
|
178
|
+
nationalities,
|
|
179
|
+
allowOneWay: true,
|
|
180
|
+
allowRoundtrip: true,
|
|
181
|
+
departureAirport: { fieldKey: 'selectedDepartureAirport', label: 'Departure', options: originAirports, autoComplete: true },
|
|
182
|
+
destinationAirport: { fieldKey: 'selectedDestinationAirport', label: 'Destination', options: destinationAirports },
|
|
183
|
+
onSubmit: (data) => navigate(buildSearchResultsUrl(data)),
|
|
184
|
+
submitIcon: <SearchIcon />
|
|
185
|
+
}}
|
|
186
|
+
/>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### `SearchResults`
|
|
190
|
+
|
|
191
|
+
Renders search results (flights, hotels, round trips, packages) for a given search configuration and lets the user start a booking.
|
|
192
|
+
|
|
193
|
+
```tsx
|
|
194
|
+
<SearchResults
|
|
195
|
+
configuration={{
|
|
196
|
+
tideConnection: { host: apiUrl, apiKey, catalogueIds: [1], officeId: 1 },
|
|
197
|
+
searchConfiguration,
|
|
198
|
+
showFilters: true,
|
|
199
|
+
showFlightResults: true,
|
|
200
|
+
showTabViews: true
|
|
201
|
+
}}
|
|
202
|
+
onBookingStarted={() => setIsBooking(true)}
|
|
203
|
+
/>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Flight results use SignalR for live price updates (`signalr-no-jquery`, bundled — no setup required on your side).
|
|
207
|
+
|
|
208
|
+
#### `TideForm`
|
|
209
|
+
|
|
210
|
+
Renders a Tide-configured dynamic web form (e.g. a contact/quote request form tied to a product).
|
|
211
|
+
|
|
212
|
+
```tsx
|
|
213
|
+
<TideForm
|
|
214
|
+
configuration={{
|
|
215
|
+
id: 1,
|
|
216
|
+
languageCode: 'en-GB',
|
|
217
|
+
apiKey,
|
|
218
|
+
apiUrl,
|
|
219
|
+
contexts: [{ key: 'product', identifier: 'ETFSSTARGAZE' }],
|
|
220
|
+
initialValues: { travellers: { traveller_counts: { adult_count: 2, child_count: 0 } } }
|
|
221
|
+
}}
|
|
222
|
+
/>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### `Login`
|
|
226
|
+
|
|
227
|
+
Member login / password reset / account confirmation. `Login` doesn't manage navigation between those three modes itself — you flip between them with the boolean props based on your own routing.
|
|
228
|
+
|
|
229
|
+
```tsx
|
|
230
|
+
const [member, setMember] = useState<MemberInfo>();
|
|
231
|
+
|
|
232
|
+
<Login
|
|
233
|
+
tideClientConfig={{ host: apiUrl, apiKey, catalogueIds: [1] }}
|
|
234
|
+
portalId={0}
|
|
235
|
+
languageCode="en-GB"
|
|
236
|
+
isLoginPage={true}
|
|
237
|
+
isResetPassword={false}
|
|
238
|
+
isMemberConfirmation={false}
|
|
239
|
+
member={member}
|
|
240
|
+
setMember={setMember}
|
|
241
|
+
handleBackToHome={() => navigate('/')}
|
|
242
|
+
handleBackToLogin={() => navigate('/login')}
|
|
243
|
+
/>;
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Once `setMember` receives a logged-in `MemberInfo`, pass that same object into [`Navbar`](#navbar)'s `member` prop to reflect the logged-in state in your header.
|
|
247
|
+
|
|
248
|
+
### Content & marketing
|
|
249
|
+
|
|
250
|
+
These are presentational — plain props in, JSX out, no Tide API calls, no context or store required — unless noted otherwise.
|
|
251
|
+
|
|
252
|
+
#### `Header`
|
|
253
|
+
|
|
254
|
+
Hero/banner section with a video, image, or slider background.
|
|
255
|
+
|
|
256
|
+
```tsx
|
|
257
|
+
<Header
|
|
258
|
+
media={{ type: 'image', src: '/hero.jpg', alt: 'Sunset over the coast' }}
|
|
259
|
+
title="Explore the world with us"
|
|
260
|
+
description="Discover breathtaking destinations, curated just for you."
|
|
261
|
+
showButton
|
|
262
|
+
buttonText="See offers"
|
|
263
|
+
onButtonClick={() => navigate('/offers')}
|
|
264
|
+
/>
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### `Navbar`
|
|
268
|
+
|
|
269
|
+
Site navigation, including language switcher and login/logout state. Navbar is purely presentational — you own fetching/holding `MemberInfo` (e.g. from `Login`) and pass it in.
|
|
270
|
+
|
|
271
|
+
```tsx
|
|
272
|
+
<Navbar
|
|
273
|
+
logo={<Logo />}
|
|
274
|
+
topLinks={topLinks}
|
|
275
|
+
items={navItems}
|
|
276
|
+
language={language}
|
|
277
|
+
languages={languages}
|
|
278
|
+
onLanguageChange={setLanguage}
|
|
279
|
+
onSearch={(query) => navigate(`/search?q=${query}`)}
|
|
280
|
+
member={member}
|
|
281
|
+
onLogin={() => navigate('/login')}
|
|
282
|
+
onLogout={() => setMember(undefined)}
|
|
283
|
+
/>
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
#### `Footer`
|
|
287
|
+
|
|
288
|
+
Site footer with columns, social links and payment icons. Every prop is optional — `<Footer />` renders sensible defaults.
|
|
289
|
+
|
|
290
|
+
```tsx
|
|
291
|
+
<Footer />
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
#### `ImageCardGrid`
|
|
295
|
+
|
|
296
|
+
A grid of image cards with an optional call-to-action per card.
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
<ImageCardGrid
|
|
300
|
+
title="Popular destinations"
|
|
301
|
+
columns={4}
|
|
302
|
+
cards={[{ image: '/santorini.jpg', title: 'Santorini', buttonText: 'Book now', onButtonClick: (card) => navigate(`/product/${card.title}`) }]}
|
|
303
|
+
/>
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
#### `ImageWithTextSection`
|
|
307
|
+
|
|
308
|
+
Alternating image + two-column text sections, e.g. for describing activities.
|
|
309
|
+
|
|
310
|
+
```tsx
|
|
311
|
+
<ImageWithTextSection
|
|
312
|
+
title="Activities"
|
|
313
|
+
cards={[
|
|
314
|
+
{
|
|
315
|
+
imageSrc: '/activity.jpg',
|
|
316
|
+
imageAlt: 'Hiking trail',
|
|
317
|
+
title: 'Discover Santorini',
|
|
318
|
+
section1Title: 'The activity',
|
|
319
|
+
section1Text: '...',
|
|
320
|
+
section2Title: 'Details',
|
|
321
|
+
section2Text: '...',
|
|
322
|
+
buttonText: 'Book now'
|
|
323
|
+
}
|
|
324
|
+
]}
|
|
325
|
+
/>
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
#### `Slider`
|
|
329
|
+
|
|
330
|
+
A simple image carousel; also used internally by `Header` for `media.type: 'slider'`.
|
|
331
|
+
|
|
332
|
+
```tsx
|
|
333
|
+
<Slider images={['/1.jpg', '/2.jpg', '/3.jpg']} mode="auto" intervalMs={4000} />
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
#### `PhotoGallery`
|
|
337
|
+
|
|
338
|
+
A titled image gallery with a lightbox.
|
|
339
|
+
|
|
340
|
+
```tsx
|
|
341
|
+
<PhotoGallery title="Project gallery" images={[{ src: '/lake.jpg', alt: 'Mountain lake', caption: 'Morning hike' }]} />
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
#### `Breadcrumbs`
|
|
345
|
+
|
|
346
|
+
```tsx
|
|
347
|
+
<Breadcrumbs
|
|
348
|
+
items={[
|
|
349
|
+
{ href: '/', label: 'Home' },
|
|
350
|
+
{ href: '/products', label: 'Products' },
|
|
351
|
+
{ label: 'Santorini', isCurrent: true }
|
|
352
|
+
]}
|
|
353
|
+
/>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
#### `FAQ`
|
|
357
|
+
|
|
358
|
+
Renders a list of question/answer pairs as an accordion.
|
|
359
|
+
|
|
360
|
+
```tsx
|
|
361
|
+
<FAQ title="Frequently asked questions" items={[{ question: 'How do I cancel?', answer: <p>Contact us at least 48h in advance.</p> }]} />
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
#### `FeaturedTrips`
|
|
365
|
+
|
|
366
|
+
A row of highlighted trip cards.
|
|
367
|
+
|
|
368
|
+
```tsx
|
|
369
|
+
<FeaturedTrips
|
|
370
|
+
title="Featured trips"
|
|
371
|
+
cards={[{ imageSrc: '/santorini.jpg', imageAlt: 'Santorini', title: 'Santorini getaway', location: 'Greece', onButtonClick: () => navigate('/santorini') }]}
|
|
372
|
+
/>
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
#### `Spinner`
|
|
376
|
+
|
|
377
|
+
Loading indicator, localized via the `SearchResultsConfigurationContext` when rendered inside `SearchResults` (falls back to English otherwise).
|
|
378
|
+
|
|
379
|
+
```tsx
|
|
380
|
+
{
|
|
381
|
+
isLoading ? <Spinner /> : <SearchResults configuration={configuration} />;
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
#### `ItineraryMapView`
|
|
386
|
+
|
|
387
|
+
An interactive multi-destination itinerary builder with a map. Loads Leaflet's CSS/JS from a CDN at runtime, so it needs outbound network access to `unpkg.com` and map tile servers — all itinerary state is local to the component; callbacks are notifications, your app decides what to do with them.
|
|
388
|
+
|
|
389
|
+
```tsx
|
|
390
|
+
<ItineraryMapView
|
|
391
|
+
searchResults={searchResults}
|
|
392
|
+
onSearchChange={(query) => setSearchResults(searchDestinations(query))}
|
|
393
|
+
onAddDestination={(name) => addDestination(name)}
|
|
394
|
+
onContinue={() => navigate('/booking')}
|
|
395
|
+
/>
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
## Self-contained (non-React) bundles
|
|
399
|
+
|
|
400
|
+
For host pages that aren't React apps, `selfcontained/` ships pre-bundled scripts you drop in with a `<script>` tag; each looks for a specific container element, reads its configuration from that element's attributes (or the URL query string), and mounts itself — no React setup needed on the host page.
|
|
401
|
+
|
|
402
|
+
| Bundle | Mounts into | Configuration source |
|
|
403
|
+
| ---------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
404
|
+
| `booking-product` | `#tide-product` | Attributes on the settings element + query string (`productCode`/`productName`) |
|
|
405
|
+
| `booking-wizard` | `#tide-booking` | Attributes on the settings element + query string; runs with `skipRouter: true` (no `<BrowserRouter>` needed) |
|
|
406
|
+
| `form` | `#tide-form` | Attributes on the settings element (`initialValues`/`contexts` as JSON strings) |
|
|
407
|
+
| `flight-search-results`, `hotel-search-results`, `hotel-flight-search-results`, `roundtrip-search-results` | `#tide-*-search-results` | **Currently hardcoded demo configuration** in-file, not attribute-driven yet — treat these as reference implementations to copy/adapt rather than drop-in embeds |
|
|
408
|
+
| `content-blocks` | `#tide-content-blocks` | Fixed demo content; only `Navbar`, `QSM`, `Slider` and a contact form are real library components — the rest of that page is hand-written markup that visually mimics `Header`/`Footer`/`ImageCardGrid`/`ImageWithTextSection` |
|
|
409
|
+
|
|
410
|
+
## Framework-specific notes
|
|
411
|
+
|
|
412
|
+
**Gatsby (or any SSR framework):** when using `BookingWizard` on a Gatsby v5+ site:
|
|
413
|
+
|
|
414
|
+
- Use React 18 and `react-router-dom@6`.
|
|
415
|
+
- Import only from `@qite/tide-components` at the top level and keep the actual render client-side (e.g. behind `typeof window !== 'undefined'`, or in a client-only wrapper) — `signalr-no-jquery` touches `window` and will error if evaluated during SSR/build.
|
|
416
|
+
- Surround `<BookingWizard>` with `<BrowserRouter basename={basePath}>` to handle its internal routing.
|
|
417
|
+
- Set `skipBasePathInRouting: true` in `settings` to avoid duplicate base paths in the wizard's internal navigation.
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
Working on this library itself, rather than consuming it? See [DEVELOPMENT.md](DEVELOPMENT.md) for local setup (not included in the published package).
|