@tripian/react 9.3.23 → 9.3.25

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/index.js CHANGED
@@ -60928,7 +60928,7 @@ const formatDateRangeShort = (ci, co) => {
60928
60928
  return `${day1}-${day2} ${m1}`;
60929
60929
  return `${day1} ${m1} - ${day2} ${m2}`;
60930
60930
  };
60931
- const KiwiHotelSearchBar = ({ destination, checkInDate, checkOutDate, adults, children, citySuggestions, onDestinationChange, onCitySelect, onCheckInChange, onCheckOutChange, onAdultsChange, onChildrenChange, onSearch, }) => {
60931
+ const KiwiHotelSearchBar = ({ destination, checkInDate, checkOutDate, adults, children, citySuggestions, onDestinationChange, onCitySelect, onCheckInChange, onCheckOutChange, onAdultsChange, onChildrenChange, onSearch, t, }) => {
60932
60932
  const checkInRef = (0, react_1.useRef)(null);
60933
60933
  const checkOutRef = (0, react_1.useRef)(null);
60934
60934
  const destRef = (0, react_1.useRef)(null);
@@ -60939,10 +60939,10 @@ const KiwiHotelSearchBar = ({ destination, checkInDate, checkOutDate, adults, ch
60939
60939
  const mobileCheckInRef = (0, react_1.useRef)(null);
60940
60940
  const mobileCheckOutRef = (0, react_1.useRef)(null);
60941
60941
  const guestsRef = (0, react_1.useRef)(null);
60942
- const guestsText = `${adults} ${adults === 1 ? 'Adult' : 'Adults'}${children > 0 ? `, ${children} ${children === 1 ? 'Child' : 'Children'}` : ''}`;
60942
+ const guestsText = `${adults} ${adults === 1 ? t('kiwi.searchBar.adult') : t('kiwi.common.adults')}${children > 0 ? `, ${children} ${children === 1 ? t('kiwi.searchBar.child') : t('kiwi.common.children')}` : ''}`;
60943
60943
  const totalGuests = adults + children;
60944
60944
  const mobileDateRange = formatDateRangeShort(checkInDate, checkOutDate);
60945
- const mobilePillSubtitle = [mobileDateRange, `${totalGuests} ${totalGuests === 1 ? 'guest' : 'guests'}`].filter(Boolean).join(' · ');
60945
+ const mobilePillSubtitle = [mobileDateRange, `${totalGuests} ${totalGuests === 1 ? t('kiwi.searchBar.guest') : t('kiwi.searchBar.guestPlural')}`].filter(Boolean).join(' · ');
60946
60946
  const hasSuggestions = citySuggestions && citySuggestions.length > 0;
60947
60947
  (0, react_1.useEffect)(() => {
60948
60948
  const handleClick = (e) => {
@@ -60980,11 +60980,11 @@ const KiwiHotelSearchBar = ({ destination, checkInDate, checkOutDate, adults, ch
60980
60980
  return (react_1.default.createElement(react_1.default.Fragment, null,
60981
60981
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.searchBar },
60982
60982
  react_1.default.createElement("div", { className: `${KiwiHotelSearchBar_scss_1.default.section} ${KiwiHotelSearchBar_scss_1.default.sectionDestination}`, ref: destRef },
60983
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, "Destination or Hotel name"),
60983
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, t('kiwi.searchBar.destination.label')),
60984
60984
  react_1.default.createElement("input", { type: "text", className: KiwiHotelSearchBar_scss_1.default.input, value: destination, onChange: (e) => {
60985
60985
  onDestinationChange(e.target.value);
60986
60986
  setDestOpen(true);
60987
- }, onFocus: () => setDestOpen(true), placeholder: "Search..." }),
60987
+ }, onFocus: () => setDestOpen(true), placeholder: t('kiwi.searchBar.searchPlaceholder') }),
60988
60988
  destOpen && hasSuggestions && (react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.suggestionsDropdown }, citySuggestions.map((city) => (react_1.default.createElement("div", { key: city.id, className: KiwiHotelSearchBar_scss_1.default.suggestionItem, onClick: () => {
60989
60989
  if (onCitySelect)
60990
60990
  onCitySelect(city);
@@ -60994,55 +60994,55 @@ const KiwiHotelSearchBar = ({ destination, checkInDate, checkOutDate, adults, ch
60994
60994
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.suggestionName }, city.name),
60995
60995
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.suggestionParent }, city.parentName))))))),
60996
60996
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.section, onClick: () => { var _a, _b; return (_b = (_a = checkInRef.current) === null || _a === void 0 ? void 0 : _a.showPicker) === null || _b === void 0 ? void 0 : _b.call(_a); }, role: "button", tabIndex: 0, onKeyDown: () => { } },
60997
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, "Check-in"),
60997
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, t('kiwi.common.checkIn')),
60998
60998
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.dateDisplay },
60999
- react_1.default.createElement("span", { className: checkInDate ? KiwiHotelSearchBar_scss_1.default.value : `${KiwiHotelSearchBar_scss_1.default.value} ${KiwiHotelSearchBar_scss_1.default.valuePlaceholder}` }, checkInDate ? formatDate(checkInDate) : 'Select'),
60999
+ react_1.default.createElement("span", { className: checkInDate ? KiwiHotelSearchBar_scss_1.default.value : `${KiwiHotelSearchBar_scss_1.default.value} ${KiwiHotelSearchBar_scss_1.default.valuePlaceholder}` }, checkInDate ? formatDate(checkInDate) : t('kiwi.searchBar.selectDate')),
61000
61000
  react_1.default.createElement("input", { ref: checkInRef, type: "date", className: KiwiHotelSearchBar_scss_1.default.hiddenDateInput, value: checkInDate, onChange: (e) => onCheckInChange(e.target.value) }))),
61001
61001
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.section, onClick: () => { var _a, _b; return (_b = (_a = checkOutRef.current) === null || _a === void 0 ? void 0 : _a.showPicker) === null || _b === void 0 ? void 0 : _b.call(_a); }, role: "button", tabIndex: 0, onKeyDown: () => { } },
61002
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, "Check-out"),
61002
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, t('kiwi.common.checkOut')),
61003
61003
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.dateDisplay },
61004
- react_1.default.createElement("span", { className: checkOutDate ? KiwiHotelSearchBar_scss_1.default.value : `${KiwiHotelSearchBar_scss_1.default.value} ${KiwiHotelSearchBar_scss_1.default.valuePlaceholder}` }, checkOutDate ? formatDate(checkOutDate) : 'Select'),
61004
+ react_1.default.createElement("span", { className: checkOutDate ? KiwiHotelSearchBar_scss_1.default.value : `${KiwiHotelSearchBar_scss_1.default.value} ${KiwiHotelSearchBar_scss_1.default.valuePlaceholder}` }, checkOutDate ? formatDate(checkOutDate) : t('kiwi.searchBar.selectDate')),
61005
61005
  react_1.default.createElement("input", { ref: checkOutRef, type: "date", className: KiwiHotelSearchBar_scss_1.default.hiddenDateInput, value: checkOutDate, onChange: (e) => onCheckOutChange(e.target.value) }))),
61006
61006
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.section, ref: guestsRef },
61007
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, "Guests"),
61007
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.label }, t('kiwi.common.guests')),
61008
61008
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.dateDisplay, onClick: () => setGuestsOpen((prev) => !prev), role: "button", tabIndex: 0, onKeyDown: () => { } },
61009
61009
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.value }, guestsText)),
61010
61010
  guestsOpen && (react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.guestsDropdown },
61011
61011
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.guestRow },
61012
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.guestRowLabel }, "Adults"),
61012
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.guestRowLabel }, t('kiwi.common.adults')),
61013
61013
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.guestCounter },
61014
61014
  react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.counterBtn, onClick: () => onAdultsChange(Math.max(1, adults - 1)) }, "\u2212"),
61015
61015
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.counterValue }, adults),
61016
61016
  react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.counterBtn, onClick: () => onAdultsChange(Math.min(9, adults + 1)) }, "+"))),
61017
61017
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.guestRow },
61018
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.guestRowLabel }, "Children"),
61018
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.guestRowLabel }, t('kiwi.common.children')),
61019
61019
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.guestCounter },
61020
61020
  react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.counterBtn, onClick: () => onChildrenChange(Math.max(0, children - 1)) }, "\u2212"),
61021
61021
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.counterValue }, children),
61022
61022
  react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.counterBtn, onClick: () => onChildrenChange(Math.min(9, children + 1)) }, "+")))))),
61023
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.searchButton, onClick: onSearch, "aria-label": "Search hotels" },
61023
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.searchButton, onClick: onSearch, "aria-label": t('kiwi.searchBar.searchHotels') },
61024
61024
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61025
61025
  react_1.default.createElement("path", { d: "M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" })))),
61026
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobilePill, onClick: () => setMobileOpen(true), "aria-label": "Open hotel search" },
61026
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobilePill, onClick: () => setMobileOpen(true), "aria-label": t('kiwi.searchBar.openSearch') },
61027
61027
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobilePillIcon },
61028
61028
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
61029
61029
  react_1.default.createElement("path", { d: "M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" }))),
61030
61030
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobilePillText },
61031
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobilePillTitle }, destination || 'Where are you going?'),
61031
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobilePillTitle }, destination || t('kiwi.searchBar.destination.placeholder')),
61032
61032
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobilePillSubtitle }, mobilePillSubtitle))),
61033
61033
  mobileOpen && react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileModal, role: "dialog", "aria-modal": "true" },
61034
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCloseBtn, onClick: () => setMobileOpen(false), "aria-label": "Close" },
61034
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCloseBtn, onClick: () => setMobileOpen(false), "aria-label": t('kiwi.common.close') },
61035
61035
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61036
61036
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z", fill: "currentColor" }))),
61037
61037
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileModalContent },
61038
61038
  react_1.default.createElement("label", { className: KiwiHotelSearchBar_scss_1.default.mobileLabel },
61039
- "Where are you going?",
61039
+ t('kiwi.searchBar.destination.placeholder'),
61040
61040
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileRequired }, "*")),
61041
61041
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileField },
61042
61042
  react_1.default.createElement("input", { type: "text", className: KiwiHotelSearchBar_scss_1.default.mobileInput, value: destination, onChange: (e) => {
61043
61043
  onDestinationChange(e.target.value);
61044
61044
  setMobileDestOpen(true);
61045
- }, onFocus: () => setMobileDestOpen(true), placeholder: "Search..." }),
61045
+ }, onFocus: () => setMobileDestOpen(true), placeholder: t('kiwi.searchBar.searchPlaceholder') }),
61046
61046
  react_1.default.createElement("svg", { className: KiwiHotelSearchBar_scss_1.default.mobileChevron, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61047
61047
  react_1.default.createElement("path", { d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z", fill: "currentColor" }))),
61048
61048
  mobileDestOpen && hasSuggestions && (react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileSuggestions }, citySuggestions.map((city) => (react_1.default.createElement("div", { key: city.id, className: KiwiHotelSearchBar_scss_1.default.suggestionItem, onClick: () => {
@@ -61053,32 +61053,32 @@ const KiwiHotelSearchBar = ({ destination, checkInDate, checkOutDate, adults, ch
61053
61053
  }, role: "button", tabIndex: 0, onKeyDown: () => { } },
61054
61054
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.suggestionName }, city.name),
61055
61055
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.suggestionParent }, city.parentName)))))),
61056
- react_1.default.createElement("label", { className: KiwiHotelSearchBar_scss_1.default.mobileLabel }, "Select dates"),
61056
+ react_1.default.createElement("label", { className: KiwiHotelSearchBar_scss_1.default.mobileLabel }, t('kiwi.searchBar.selectDates')),
61057
61057
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileDateRange },
61058
61058
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileDateCell, onClick: () => { var _a, _b; return (_b = (_a = mobileCheckInRef.current) === null || _a === void 0 ? void 0 : _a.showPicker) === null || _b === void 0 ? void 0 : _b.call(_a); }, role: "button", tabIndex: 0, onKeyDown: () => { } },
61059
- react_1.default.createElement("span", { className: checkInDate ? KiwiHotelSearchBar_scss_1.default.mobileDateText : `${KiwiHotelSearchBar_scss_1.default.mobileDateText} ${KiwiHotelSearchBar_scss_1.default.mobileDatePlaceholder}` }, checkInDate ? formatDateLong(checkInDate) : 'Check-in'),
61059
+ react_1.default.createElement("span", { className: checkInDate ? KiwiHotelSearchBar_scss_1.default.mobileDateText : `${KiwiHotelSearchBar_scss_1.default.mobileDateText} ${KiwiHotelSearchBar_scss_1.default.mobileDatePlaceholder}` }, checkInDate ? formatDateLong(checkInDate) : t('kiwi.common.checkIn')),
61060
61060
  react_1.default.createElement("input", { ref: mobileCheckInRef, type: "date", className: KiwiHotelSearchBar_scss_1.default.hiddenDateInput, value: checkInDate, onChange: (e) => onCheckInChange(e.target.value) })),
61061
61061
  react_1.default.createElement("svg", { className: KiwiHotelSearchBar_scss_1.default.mobileDateArrow, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61062
61062
  react_1.default.createElement("path", { d: "M9.29 6.71a1 1 0 000 1.41L13.17 12l-3.88 3.88a1 1 0 101.42 1.41l4.59-4.59a1 1 0 000-1.41L10.71 6.7a1 1 0 00-1.42.01z", fill: "currentColor" })),
61063
61063
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileDateCell, onClick: () => { var _a, _b; return (_b = (_a = mobileCheckOutRef.current) === null || _a === void 0 ? void 0 : _a.showPicker) === null || _b === void 0 ? void 0 : _b.call(_a); }, role: "button", tabIndex: 0, onKeyDown: () => { } },
61064
- react_1.default.createElement("span", { className: checkOutDate ? KiwiHotelSearchBar_scss_1.default.mobileDateText : `${KiwiHotelSearchBar_scss_1.default.mobileDateText} ${KiwiHotelSearchBar_scss_1.default.mobileDatePlaceholder}` }, checkOutDate ? formatDateLong(checkOutDate) : 'Check-out'),
61064
+ react_1.default.createElement("span", { className: checkOutDate ? KiwiHotelSearchBar_scss_1.default.mobileDateText : `${KiwiHotelSearchBar_scss_1.default.mobileDateText} ${KiwiHotelSearchBar_scss_1.default.mobileDatePlaceholder}` }, checkOutDate ? formatDateLong(checkOutDate) : t('kiwi.common.checkOut')),
61065
61065
  react_1.default.createElement("input", { ref: mobileCheckOutRef, type: "date", className: KiwiHotelSearchBar_scss_1.default.hiddenDateInput, value: checkOutDate, min: checkInDate || undefined, onChange: (e) => onCheckOutChange(e.target.value) }))),
61066
- react_1.default.createElement("label", { className: KiwiHotelSearchBar_scss_1.default.mobileLabel }, "Travelers"),
61066
+ react_1.default.createElement("label", { className: KiwiHotelSearchBar_scss_1.default.mobileLabel }, t('kiwi.searchBar.travelers')),
61067
61067
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerRow },
61068
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerLabel }, "Adults"),
61068
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerLabel }, t('kiwi.common.adults')),
61069
61069
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerCounter },
61070
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onAdultsChange(Math.max(1, adults - 1)), "aria-label": "Decrease adults" }, "\u2212"),
61070
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onAdultsChange(Math.max(1, adults - 1)), "aria-label": t('kiwi.searchBar.decreaseAdults') }, "\u2212"),
61071
61071
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileCounterValue }, adults),
61072
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onAdultsChange(Math.min(9, adults + 1)), "aria-label": "Increase adults" }, "+"))),
61072
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onAdultsChange(Math.min(9, adults + 1)), "aria-label": t('kiwi.searchBar.increaseAdults') }, "+"))),
61073
61073
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerRow },
61074
- react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerLabel }, "Children"),
61074
+ react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerLabel }, t('kiwi.common.children')),
61075
61075
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileTravelerCounter },
61076
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onChildrenChange(Math.max(0, children - 1)), "aria-label": "Decrease children" }, "\u2212"),
61076
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onChildrenChange(Math.max(0, children - 1)), "aria-label": t('kiwi.searchBar.decreaseChildren') }, "\u2212"),
61077
61077
  react_1.default.createElement("span", { className: KiwiHotelSearchBar_scss_1.default.mobileCounterValue }, children),
61078
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onChildrenChange(Math.min(9, children + 1)), "aria-label": "Increase children" }, "+")))),
61078
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileCounterBtn, onClick: () => onChildrenChange(Math.min(9, children + 1)), "aria-label": t('kiwi.searchBar.increaseChildren') }, "+")))),
61079
61079
  react_1.default.createElement("div", { className: KiwiHotelSearchBar_scss_1.default.mobileActions },
61080
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileClearBtn, onClick: handleClearAll }, "Clear all"),
61081
- react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileSearchBtn, onClick: handleMobileSearch }, "Search"))), document.body)));
61080
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileClearBtn, onClick: handleClearAll }, t('kiwi.common.clearAll')),
61081
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelSearchBar_scss_1.default.mobileSearchBtn, onClick: handleMobileSearch }, t('kiwi.searchBar.search')))), document.body)));
61082
61082
  };
61083
61083
  exports.default = KiwiHotelSearchBar;
61084
61084
 
@@ -61105,22 +61105,22 @@ const BENEFITS = [
61105
61105
  'VIP Guest status',
61106
61106
  'Late check-out upon request, when available',
61107
61107
  ];
61108
- const KiwiVisaBenefitsModal = ({ onClose }) => react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiVisaBenefitsModal_scss_1.default.overlay, onClick: (e) => { e.stopPropagation(); onClose(); }, role: "presentation" },
61108
+ const KiwiVisaBenefitsModal = ({ onClose, t }) => react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiVisaBenefitsModal_scss_1.default.overlay, onClick: (e) => { e.stopPropagation(); onClose(); }, role: "presentation" },
61109
61109
  react_1.default.createElement("div", { className: KiwiVisaBenefitsModal_scss_1.default.modal, onClick: (e) => e.stopPropagation() },
61110
61110
  react_1.default.createElement("div", { className: KiwiVisaBenefitsModal_scss_1.default.header },
61111
61111
  react_1.default.createElement("div", { className: KiwiVisaBenefitsModal_scss_1.default.headerLeft },
61112
61112
  react_1.default.createElement("span", { className: KiwiVisaBenefitsModal_scss_1.default.visaLogo }),
61113
- react_1.default.createElement("span", { className: KiwiVisaBenefitsModal_scss_1.default.title }, "Premium Benefits")),
61113
+ react_1.default.createElement("span", { className: KiwiVisaBenefitsModal_scss_1.default.title }, t('kiwi.visaBenefits.title'))),
61114
61114
  react_1.default.createElement("button", { type: "button", className: KiwiVisaBenefitsModal_scss_1.default.closeBtn, onClick: onClose },
61115
61115
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
61116
61116
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })))),
61117
- react_1.default.createElement("p", { className: KiwiVisaBenefitsModal_scss_1.default.description }, "Book with Visa Premium cards and receive these premium additional benefits."),
61117
+ react_1.default.createElement("p", { className: KiwiVisaBenefitsModal_scss_1.default.description }, t('kiwi.visaBenefits.description')),
61118
61118
  react_1.default.createElement("ul", { className: KiwiVisaBenefitsModal_scss_1.default.benefitsList }, BENEFITS.map((benefit) => (react_1.default.createElement("li", { key: benefit, className: KiwiVisaBenefitsModal_scss_1.default.benefitItem },
61119
61119
  react_1.default.createElement("svg", { className: KiwiVisaBenefitsModal_scss_1.default.checkIcon, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61120
61120
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "12", fill: "#1a1f71" }),
61121
61121
  react_1.default.createElement("path", { d: "M9.5 15.5l-3-3 1.41-1.41L9.5 12.67l5.59-5.59L16.5 8.5z", fill: "#fff" })),
61122
61122
  react_1.default.createElement("span", null, benefit))))),
61123
- react_1.default.createElement("a", { className: KiwiVisaBenefitsModal_scss_1.default.termsLink, href: "https://www.visasignaturehotels.com/about/benefits", target: "_blank", rel: "noopener noreferrer" }, "Read Our Terms and Conditions"))), document.body);
61123
+ react_1.default.createElement("a", { className: KiwiVisaBenefitsModal_scss_1.default.termsLink, href: "https://www.visasignaturehotels.com/about/benefits", target: "_blank", rel: "noopener noreferrer" }, t('kiwi.visaBenefits.termsAndConditions')))), document.body);
61124
61124
  exports.default = KiwiVisaBenefitsModal;
61125
61125
 
61126
61126
 
@@ -61139,18 +61139,18 @@ const react_1 = __importDefault(__webpack_require__(0));
61139
61139
  const react_dom_1 = __importDefault(__webpack_require__(12));
61140
61140
  const KiwiSpecialOffersModal_scss_1 = __importDefault(__webpack_require__(1142));
61141
61141
  const stripHtml = (html) => html.replace(/<[^>]*>/g, '').trim();
61142
- const KiwiSpecialOffersModal = ({ hotelName, specialOffers, onClose }) => react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.overlay, onClick: (e) => { e.stopPropagation(); onClose(); }, role: "presentation" },
61142
+ const KiwiSpecialOffersModal = ({ hotelName, specialOffers, onClose, t }) => react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.overlay, onClick: (e) => { e.stopPropagation(); onClose(); }, role: "presentation" },
61143
61143
  react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.modal, onClick: (e) => e.stopPropagation() },
61144
61144
  react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.header },
61145
61145
  react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.headerLeft },
61146
61146
  react_1.default.createElement("svg", { className: KiwiSpecialOffersModal_scss_1.default.tagIcon, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
61147
61147
  react_1.default.createElement("path", { d: "M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z" })),
61148
- react_1.default.createElement("span", { className: KiwiSpecialOffersModal_scss_1.default.title }, "Special Offers")),
61148
+ react_1.default.createElement("span", { className: KiwiSpecialOffersModal_scss_1.default.title }, t('kiwi.specialOffers.title'))),
61149
61149
  react_1.default.createElement("button", { type: "button", className: KiwiSpecialOffersModal_scss_1.default.closeBtn, onClick: onClose },
61150
61150
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
61151
61151
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })))),
61152
61152
  react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.divider }),
61153
- react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.body }, !specialOffers ? (react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.loading }, "Loading...")) : specialOffers.length > 0 ? (specialOffers.map((offer) => (react_1.default.createElement("div", { key: offer.title, className: KiwiSpecialOffersModal_scss_1.default.offerCard },
61153
+ react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.body }, !specialOffers ? (react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.loading }, t('kiwi.common.loading'))) : specialOffers.length > 0 ? (specialOffers.map((offer) => (react_1.default.createElement("div", { key: offer.title, className: KiwiSpecialOffersModal_scss_1.default.offerCard },
61154
61154
  react_1.default.createElement("p", { className: KiwiSpecialOffersModal_scss_1.default.offerTitle }, offer.title),
61155
61155
  react_1.default.createElement("ul", { className: KiwiSpecialOffersModal_scss_1.default.benefitsList },
61156
61156
  offer.shortDescription && (react_1.default.createElement("li", { className: KiwiSpecialOffersModal_scss_1.default.benefitItem },
@@ -61163,26 +61163,28 @@ const KiwiSpecialOffersModal = ({ hotelName, specialOffers, onClose }) => react_
61163
61163
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "12", fill: "#1a1f71" }),
61164
61164
  react_1.default.createElement("path", { d: "M9.5 15.5l-3-3 1.41-1.41L9.5 12.67l5.59-5.59L16.5 8.5z", fill: "#fff" })),
61165
61165
  react_1.default.createElement("span", null,
61166
- "Minimum ",
61167
61166
  offer.minimumNightStay,
61168
- " night stay"))),
61167
+ " ",
61168
+ t('kiwi.specialOffers.minimumNightStay')))),
61169
61169
  offer.offerEndDate && (react_1.default.createElement("li", { className: KiwiSpecialOffersModal_scss_1.default.benefitItem },
61170
61170
  react_1.default.createElement("svg", { className: KiwiSpecialOffersModal_scss_1.default.checkIcon, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61171
61171
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "12", fill: "#1a1f71" }),
61172
61172
  react_1.default.createElement("path", { d: "M9.5 15.5l-3-3 1.41-1.41L9.5 12.67l5.59-5.59L16.5 8.5z", fill: "#fff" })),
61173
61173
  react_1.default.createElement("span", null,
61174
- "Through: ",
61174
+ t('kiwi.specialOffers.through'),
61175
+ " ",
61175
61176
  new Date(offer.offerEndDate).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }))))),
61176
- offer.url && (react_1.default.createElement("a", { className: KiwiSpecialOffersModal_scss_1.default.viewOfferLink, href: offer.url, target: "_blank", rel: "noopener noreferrer" }, "View Offer")))))) : (react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.offerCard },
61177
+ offer.url && (react_1.default.createElement("a", { className: KiwiSpecialOffersModal_scss_1.default.viewOfferLink, href: offer.url, target: "_blank", rel: "noopener noreferrer" }, t('kiwi.specialOffers.viewOffer'))))))) : (react_1.default.createElement("div", { className: KiwiSpecialOffersModal_scss_1.default.offerCard },
61177
61178
  react_1.default.createElement("p", { className: KiwiSpecialOffersModal_scss_1.default.offerTitle },
61178
- "Special offer available at ",
61179
+ t('kiwi.specialOffers.available'),
61180
+ " ",
61179
61181
  hotelName),
61180
61182
  react_1.default.createElement("ul", { className: KiwiSpecialOffersModal_scss_1.default.benefitsList },
61181
61183
  react_1.default.createElement("li", { className: KiwiSpecialOffersModal_scss_1.default.benefitItem },
61182
61184
  react_1.default.createElement("svg", { className: KiwiSpecialOffersModal_scss_1.default.checkIcon, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
61183
61185
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "12", fill: "#1a1f71" }),
61184
61186
  react_1.default.createElement("path", { d: "M9.5 15.5l-3-3 1.41-1.41L9.5 12.67l5.59-5.59L16.5 8.5z", fill: "#fff" })),
61185
- react_1.default.createElement("span", null, "Exclusive benefits available")))))))), document.body);
61187
+ react_1.default.createElement("span", null, t('kiwi.specialOffers.exclusiveBenefits'))))))))), document.body);
61186
61188
  exports.default = KiwiSpecialOffersModal;
61187
61189
 
61188
61190
 
@@ -61236,7 +61238,7 @@ const formatNightDate = (dateStr) => {
61236
61238
  return dateStr;
61237
61239
  }
61238
61240
  };
61239
- const KiwiRateDetailModal = ({ rate, currency, nightCount, onClose }) => {
61241
+ const KiwiRateDetailModal = ({ rate, currency, nightCount, onClose, t }) => {
61240
61242
  const [subtotalOpen, setSubtotalOpen] = (0, react_1.useState)(false);
61241
61243
  const [taxesOpen, setTaxesOpen] = (0, react_1.useState)(false);
61242
61244
  const price = rate.price;
@@ -61245,21 +61247,21 @@ const KiwiRateDetailModal = ({ rate, currency, nightCount, onClose }) => {
61245
61247
  const taxesTotal = (parseFloat((price === null || price === void 0 ? void 0 : price.totalTaxes) || '0') + parseFloat((price === null || price === void 0 ? void 0 : price.totalFeesAndSurcharges) || '0')).toString();
61246
61248
  const nightlyRates = (price === null || price === void 0 ? void 0 : price.nightlyRates) || [];
61247
61249
  const feeTaxes = (price === null || price === void 0 ? void 0 : price.feeTaxes) || [];
61248
- const nightLabel = nightCount > 0 ? `Subtotal for ${nightCount} night${nightCount > 1 ? 's' : ''}` : 'Subtotal';
61250
+ const nightLabel = nightCount > 0 ? `${t('kiwi.common.subtotal')} (${nightCount} ${nightCount > 1 ? t('kiwi.common.nights') : t('kiwi.common.night')})` : t('kiwi.common.subtotal');
61249
61251
  const content = (
61250
61252
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
61251
61253
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.overlay, onClick: (e) => { e.stopPropagation(); onClose(); } },
61252
61254
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.panel, onClick: (e) => e.stopPropagation() },
61253
61255
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.header },
61254
- react_1.default.createElement("h3", { className: KiwiRateDetailModal_scss_1.default.title }, "Rate"),
61255
- react_1.default.createElement("button", { type: "button", className: KiwiRateDetailModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": "Close" },
61256
+ react_1.default.createElement("h3", { className: KiwiRateDetailModal_scss_1.default.title }, t('kiwi.rateDetail.title')),
61257
+ react_1.default.createElement("button", { type: "button", className: KiwiRateDetailModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": t('kiwi.common.close') },
61256
61258
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", xmlns: "http://www.w3.org/2000/svg" },
61257
61259
  react_1.default.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
61258
61260
  react_1.default.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))),
61259
61261
  react_1.default.createElement("hr", { className: KiwiRateDetailModal_scss_1.default.divider }),
61260
61262
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.body },
61261
61263
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.colHeader },
61262
- react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.colHeaderLabel }, "Details"),
61264
+ react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.colHeaderLabel }, t('kiwi.common.details')),
61263
61265
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.colHeaderCurrency }, currency)),
61264
61266
  react_1.default.createElement("hr", { className: KiwiRateDetailModal_scss_1.default.dividerThick }),
61265
61267
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.expandRow, onClick: () => setSubtotalOpen((v) => !v), role: "button", tabIndex: 0, onKeyDown: (e) => { if (e.key === 'Enter' || e.key === ' ')
@@ -61278,7 +61280,7 @@ const KiwiRateDetailModal = ({ rate, currency, nightCount, onClose }) => {
61278
61280
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.expandRow, onClick: () => setTaxesOpen((v) => !v), role: "button", tabIndex: 0, onKeyDown: (e) => { if (e.key === 'Enter' || e.key === ' ')
61279
61281
  setTaxesOpen((v) => !v); } },
61280
61282
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.expandLeft },
61281
- react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandLabel }, "Hotel taxes & fees"),
61283
+ react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandLabel }, t('kiwi.common.hotelTaxesFees')),
61282
61284
  react_1.default.createElement("svg", { className: `${KiwiRateDetailModal_scss_1.default.expandChevron} ${taxesOpen ? KiwiRateDetailModal_scss_1.default.open : ''}`, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", xmlns: "http://www.w3.org/2000/svg" },
61283
61285
  react_1.default.createElement("polyline", { points: "6 9 12 15 18 9" }))),
61284
61286
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandAmount }, fmt(taxesTotal))),
@@ -61288,16 +61290,16 @@ const KiwiRateDetailModal = ({ rate, currency, nightCount, onClose }) => {
61288
61290
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowLabel }, ft.name || `Fee ${ft.feeTaxCodeId}`),
61289
61291
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowAmount }, fmt(ft.amount)))))) : (react_1.default.createElement(react_1.default.Fragment, null,
61290
61292
  parseFloat((price === null || price === void 0 ? void 0 : price.totalFeesAndSurcharges) || '0') > 0 && (react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.expandedRow },
61291
- react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowLabel }, "Fees"),
61293
+ react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowLabel }, t('kiwi.common.fees')),
61292
61294
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowAmount }, fmt(price === null || price === void 0 ? void 0 : price.totalFeesAndSurcharges)))),
61293
61295
  parseFloat((price === null || price === void 0 ? void 0 : price.totalTaxes) || '0') > 0 && (react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.expandedRow },
61294
- react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowLabel }, "Taxes"),
61296
+ react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowLabel }, t('kiwi.common.taxes')),
61295
61297
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.expandedRowAmount }, fmt(price === null || price === void 0 ? void 0 : price.totalTaxes)))))))),
61296
61298
  react_1.default.createElement("hr", { className: KiwiRateDetailModal_scss_1.default.divider }),
61297
61299
  react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.totalRow },
61298
- react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.totalLabel }, "Total"),
61300
+ react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.totalLabel }, t('kiwi.common.total')),
61299
61301
  react_1.default.createElement("span", { className: KiwiRateDetailModal_scss_1.default.totalAmount }, fmt(total)))),
61300
- react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.footer }, "*All hotel prices are based on local currency. Guests may be subject to additional fees and taxes."))));
61302
+ react_1.default.createElement("div", { className: KiwiRateDetailModal_scss_1.default.footer }, t('kiwi.common.priceDisclaimer')))));
61301
61303
  return react_dom_1.default.createPortal(content, document.body);
61302
61304
  };
61303
61305
  exports.default = KiwiRateDetailModal;
@@ -61363,7 +61365,7 @@ const fmtDate = (dateStr) => {
61363
61365
  return dateStr;
61364
61366
  }
61365
61367
  };
61366
- const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onBookNow, }) => {
61368
+ const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onBookNow, t, }) => {
61367
61369
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
61368
61370
  const [subtotalOpen, setSubtotalOpen] = (0, react_1.useState)(false);
61369
61371
  const [taxesOpen, setTaxesOpen] = (0, react_1.useState)(false);
@@ -61374,47 +61376,49 @@ const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onB
61374
61376
  const taxesTotal = (parseFloat((price === null || price === void 0 ? void 0 : price.totalTaxes) || '0') + parseFloat((price === null || price === void 0 ? void 0 : price.totalFeesAndSurcharges) || '0')).toString();
61375
61377
  const nightlyRates = (price === null || price === void 0 ? void 0 : price.nightlyRates) || [];
61376
61378
  const feeTaxes = (price === null || price === void 0 ? void 0 : price.feeTaxes) || [];
61377
- const nightLabel = nightCount > 0 ? `Subtotal for ${nightCount} night${nightCount > 1 ? 's' : ''}` : 'Subtotal';
61379
+ const nightLabel = nightCount > 0
61380
+ ? `${t('kiwi.common.subtotal')} (${nightCount} ${nightCount > 1 ? t('kiwi.common.nights') : t('kiwi.common.night')})`
61381
+ : t('kiwi.common.subtotal');
61378
61382
  const titleParts = (rate.title || '').split(' | ');
61379
61383
  const rateTitleMain = titleParts[0] || '';
61380
61384
  const rateTitleSub = titleParts.slice(1).join(' | ');
61381
61385
  const benefits = rate.specialOfferRate === 'true' ? PREMIUM_BENEFITS : (rate.amenities || []);
61382
61386
  const policies = [];
61383
61387
  if ((_a = rate.policies) === null || _a === void 0 ? void 0 : _a.deposit)
61384
- policies.push({ label: 'Deposit Policy', text: rate.policies.deposit });
61388
+ policies.push({ label: t('kiwi.rateModal.policies.deposit'), text: rate.policies.deposit });
61385
61389
  if ((_b = rate.policies) === null || _b === void 0 ? void 0 : _b.cancellation)
61386
- policies.push({ label: 'Cancellation Policy', text: rate.policies.cancellation });
61390
+ policies.push({ label: t('kiwi.rateModal.policies.cancellation'), text: rate.policies.cancellation });
61387
61391
  if ((_c = rate.policies) === null || _c === void 0 ? void 0 : _c.guarantee)
61388
- policies.push({ label: 'Guarantee Policy', text: rate.policies.guarantee });
61392
+ policies.push({ label: t('kiwi.rateModal.policies.guarantee'), text: rate.policies.guarantee });
61389
61393
  if ((_d = rate.policies) === null || _d === void 0 ? void 0 : _d.tax)
61390
- policies.push({ label: 'Tax Policy', text: rate.policies.tax });
61394
+ policies.push({ label: t('kiwi.rateModal.policies.tax'), text: rate.policies.tax });
61391
61395
  if ((_e = rate.policies) === null || _e === void 0 ? void 0 : _e.serviceCharges)
61392
- policies.push({ label: 'Service Charges', text: rate.policies.serviceCharges });
61396
+ policies.push({ label: t('kiwi.rateModal.policies.serviceCharges'), text: rate.policies.serviceCharges });
61393
61397
  if ((_f = rate.policies) === null || _f === void 0 ? void 0 : _f.checkin)
61394
- policies.push({ label: 'Check-in Policy', text: rate.policies.checkin });
61398
+ policies.push({ label: t('kiwi.rateModal.policies.checkIn'), text: rate.policies.checkin });
61395
61399
  if ((_g = rate.policies) === null || _g === void 0 ? void 0 : _g.children)
61396
- policies.push({ label: 'Children Policy', text: rate.policies.children });
61400
+ policies.push({ label: t('kiwi.rateModal.policies.children'), text: rate.policies.children });
61397
61401
  if ((_h = rate.policies) === null || _h === void 0 ? void 0 : _h.pets)
61398
- policies.push({ label: 'Pets Policy', text: rate.policies.pets });
61402
+ policies.push({ label: t('kiwi.rateModal.policies.pets'), text: rate.policies.pets });
61399
61403
  if ((_j = rate.policies) === null || _j === void 0 ? void 0 : _j.prepay)
61400
- policies.push({ label: 'Prepay Policy', text: rate.policies.prepay });
61404
+ policies.push({ label: t('kiwi.rateModal.policies.prepay'), text: rate.policies.prepay });
61401
61405
  if ((_k = rate.policies) === null || _k === void 0 ? void 0 : _k.miscellaneous)
61402
- policies.push({ label: 'Additional Policies', text: rate.policies.miscellaneous });
61406
+ policies.push({ label: t('kiwi.rateModal.policies.additional'), text: rate.policies.miscellaneous });
61403
61407
  if ((_l = rate.policies) === null || _l === void 0 ? void 0 : _l.specialRequirements)
61404
- policies.push({ label: 'Special Requirements', text: rate.policies.specialRequirements });
61408
+ policies.push({ label: t('kiwi.rateModal.policies.specialRequirements'), text: rate.policies.specialRequirements });
61405
61409
  const content = (
61406
61410
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
61407
61411
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.overlay, onClick: (e) => { e.stopPropagation(); if (e.target === e.currentTarget)
61408
61412
  onClose(); } },
61409
61413
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.panel, onClick: (e) => e.stopPropagation() },
61410
- react_1.default.createElement("button", { type: "button", className: KiwiRoomRateModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": "Close" },
61414
+ react_1.default.createElement("button", { type: "button", className: KiwiRoomRateModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": t('kiwi.common.close') },
61411
61415
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", xmlns: "http://www.w3.org/2000/svg" },
61412
61416
  react_1.default.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
61413
61417
  react_1.default.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))),
61414
61418
  react_1.default.createElement("h2", { className: KiwiRoomRateModal_scss_1.default.roomTitle }, roomTitle),
61415
61419
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.body },
61416
61420
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.priceCol },
61417
- react_1.default.createElement("h3", { className: KiwiRoomRateModal_scss_1.default.colTitle }, "Price Information"),
61421
+ react_1.default.createElement("h3", { className: KiwiRoomRateModal_scss_1.default.colTitle }, t('kiwi.rateModal.priceInformation')),
61418
61422
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.priceCard },
61419
61423
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.priceTopRow },
61420
61424
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.priceLeft },
@@ -61423,10 +61427,11 @@ const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onB
61423
61427
  new Intl.NumberFormat('en-US').format(Math.round(nightlyPrice))),
61424
61428
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.priceUnit },
61425
61429
  currency,
61426
- " / average nightly rate")),
61427
- onBookNow && (react_1.default.createElement("button", { type: "button", className: KiwiRoomRateModal_scss_1.default.bookNowBtn, onClick: onBookNow }, "Book Now"))),
61430
+ " / ",
61431
+ t('kiwi.rateModal.avgNightlyRate'))),
61432
+ onBookNow && (react_1.default.createElement("button", { type: "button", className: KiwiRoomRateModal_scss_1.default.bookNowBtn, onClick: onBookNow }, t('kiwi.common.bookNow')))),
61428
61433
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.detailsColHeader },
61429
- react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.detailsLabel }, "Details"),
61434
+ react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.detailsLabel }, t('kiwi.common.details')),
61430
61435
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.detailsCurrency }, currency)),
61431
61436
  react_1.default.createElement("hr", { className: KiwiRoomRateModal_scss_1.default.dividerThick }),
61432
61437
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.expandRow, role: "button", tabIndex: 0, onClick: () => setSubtotalOpen((v) => !v), onKeyDown: (e) => { if (e.key === 'Enter')
@@ -61445,7 +61450,7 @@ const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onB
61445
61450
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.expandRow, role: "button", tabIndex: 0, onClick: () => setTaxesOpen((v) => !v), onKeyDown: (e) => { if (e.key === 'Enter')
61446
61451
  setTaxesOpen((v) => !v); } },
61447
61452
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.expandLeft },
61448
- react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandLabel }, "Hotel taxes & fees"),
61453
+ react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandLabel }, t('kiwi.common.hotelTaxesFees')),
61449
61454
  react_1.default.createElement("svg", { className: `${KiwiRoomRateModal_scss_1.default.expandChevron} ${taxesOpen ? KiwiRoomRateModal_scss_1.default.open : ''}`, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", xmlns: "http://www.w3.org/2000/svg" },
61450
61455
  react_1.default.createElement("polyline", { points: "6 9 12 15 18 9" }))),
61451
61456
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandAmount }, fmt(taxesTotal))),
@@ -61455,16 +61460,16 @@ const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onB
61455
61460
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowLabel }, ft.name || `Fee ${ft.feeTaxCodeId}`),
61456
61461
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowAmount }, fmt(ft.amount))))) : (react_1.default.createElement(react_1.default.Fragment, null,
61457
61462
  parseFloat((price === null || price === void 0 ? void 0 : price.totalFeesAndSurcharges) || '0') > 0 && (react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.expandedRow },
61458
- react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowLabel }, "Fees"),
61463
+ react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowLabel }, t('kiwi.common.fees')),
61459
61464
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowAmount }, fmt(price === null || price === void 0 ? void 0 : price.totalFeesAndSurcharges)))),
61460
61465
  parseFloat((price === null || price === void 0 ? void 0 : price.totalTaxes) || '0') > 0 && (react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.expandedRow },
61461
- react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowLabel }, "Taxes"),
61466
+ react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowLabel }, t('kiwi.common.taxes')),
61462
61467
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.expandedRowAmount }, fmt(price === null || price === void 0 ? void 0 : price.totalTaxes)))))))),
61463
61468
  react_1.default.createElement("hr", { className: KiwiRoomRateModal_scss_1.default.divider }),
61464
61469
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.totalRow },
61465
- react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.totalLabel }, "Total"),
61470
+ react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.totalLabel }, t('kiwi.common.total')),
61466
61471
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.totalAmount }, fmt(total))),
61467
- react_1.default.createElement("p", { className: KiwiRoomRateModal_scss_1.default.priceFooter }, "*All hotel prices are based on local currency. Guests may be subject to additional fees and taxes."))),
61472
+ react_1.default.createElement("p", { className: KiwiRoomRateModal_scss_1.default.priceFooter }, t('kiwi.common.priceDisclaimer')))),
61468
61473
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.rateCol },
61469
61474
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.rateTitleRow },
61470
61475
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.rateTitleMain }, rateTitleMain),
@@ -61473,16 +61478,16 @@ const KiwiRoomRateModal = ({ roomTitle, rate, currency, nightCount, onClose, onB
61473
61478
  react_1.default.createElement("span", { className: KiwiRoomRateModal_scss_1.default.rateTitleSub }, rateTitleSub)))),
61474
61479
  react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.rateCard },
61475
61480
  benefits.length > 0 && (react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.section },
61476
- react_1.default.createElement("h4", { className: KiwiRoomRateModal_scss_1.default.sectionTitle }, "Premium Benefits"),
61481
+ react_1.default.createElement("h4", { className: KiwiRoomRateModal_scss_1.default.sectionTitle }, t('kiwi.rateModal.premiumBenefits')),
61477
61482
  react_1.default.createElement("ul", { className: KiwiRoomRateModal_scss_1.default.benefitsList }, benefits.map((b) => (react_1.default.createElement("li", { key: b, className: KiwiRoomRateModal_scss_1.default.benefitItem },
61478
61483
  react_1.default.createElement("svg", { className: KiwiRoomRateModal_scss_1.default.checkIcon, viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg" },
61479
61484
  react_1.default.createElement("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.59L5.41 12l1.42-1.41L10 13.17l7.17-7.17 1.41 1.42L10 16.59z" })),
61480
61485
  react_1.default.createElement("span", null, b))))))),
61481
61486
  rate.description && (react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.section },
61482
- react_1.default.createElement("h4", { className: KiwiRoomRateModal_scss_1.default.sectionTitle }, "Restrictions"),
61487
+ react_1.default.createElement("h4", { className: KiwiRoomRateModal_scss_1.default.sectionTitle }, t('kiwi.rateModal.restrictions')),
61483
61488
  react_1.default.createElement("p", { className: KiwiRoomRateModal_scss_1.default.restrictionsText }, rate.description))),
61484
61489
  policies.length > 0 && (react_1.default.createElement("div", { className: KiwiRoomRateModal_scss_1.default.section },
61485
- react_1.default.createElement("h4", { className: KiwiRoomRateModal_scss_1.default.sectionTitle }, "Taxes, Fees & Policies"),
61490
+ react_1.default.createElement("h4", { className: KiwiRoomRateModal_scss_1.default.sectionTitle }, t('kiwi.rateModal.taxesFeesPolicies')),
61486
61491
  policies.map((p) => (react_1.default.createElement("div", { key: p.label, className: KiwiRoomRateModal_scss_1.default.policyItem },
61487
61492
  react_1.default.createElement("p", { className: KiwiRoomRateModal_scss_1.default.policyTitle }, p.label),
61488
61493
  react_1.default.createElement("p", { className: KiwiRoomRateModal_scss_1.default.policyText }, p.text))))))))))));
@@ -61560,56 +61565,56 @@ const emptyPayment = {
61560
61565
  cardholder_name: '', card_number: '', card_type: 'VI',
61561
61566
  card_security: '', expiry_month: '01', expiry_year: String(currentYear), message_to_hotel: '',
61562
61567
  };
61563
- const validateLead = (f) => {
61568
+ const validateLead = (f, t) => {
61564
61569
  const e = {};
61565
61570
  if (!f.first_name.trim())
61566
- e.lead_first_name = 'Required';
61571
+ e.lead_first_name = t('kiwi.booking.validation.required');
61567
61572
  if (!f.last_name.trim())
61568
- e.lead_last_name = 'Required';
61573
+ e.lead_last_name = t('kiwi.booking.validation.required');
61569
61574
  if (!f.email.trim())
61570
- e.lead_email = 'Required';
61575
+ e.lead_email = t('kiwi.booking.validation.required');
61571
61576
  else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(f.email))
61572
- e.lead_email = 'Invalid email';
61577
+ e.lead_email = t('kiwi.booking.validation.invalidEmail');
61573
61578
  if (!f.address_line1.trim())
61574
- e.lead_address_line1 = 'Required';
61579
+ e.lead_address_line1 = t('kiwi.booking.validation.required');
61575
61580
  if (!f.city.trim())
61576
- e.lead_city = 'Required';
61581
+ e.lead_city = t('kiwi.booking.validation.required');
61577
61582
  if (!f.country.trim())
61578
- e.lead_country = 'Required';
61583
+ e.lead_country = t('kiwi.booking.validation.required');
61579
61584
  if (!f.zip_postal.trim())
61580
- e.lead_zip_postal = 'Required';
61585
+ e.lead_zip_postal = t('kiwi.booking.validation.required');
61581
61586
  if (!f.phone_country_code.trim())
61582
- e.lead_phone_country_code = 'Required';
61587
+ e.lead_phone_country_code = t('kiwi.booking.validation.required');
61583
61588
  if (!f.phone.trim())
61584
- e.lead_phone = 'Required';
61589
+ e.lead_phone = t('kiwi.booking.validation.required');
61585
61590
  return e;
61586
61591
  };
61587
- const validateChildren = (ages) => {
61592
+ const validateChildren = (ages, t) => {
61588
61593
  const e = {};
61589
61594
  ages.forEach((a, i) => {
61590
61595
  const n = parseInt(a, 10);
61591
61596
  if (a === '' || Number.isNaN(n))
61592
- e[`child_${i}`] = 'Required';
61597
+ e[`child_${i}`] = t('kiwi.booking.validation.required');
61593
61598
  else if (n < 0 || n > 17)
61594
- e[`child_${i}`] = 'Must be 0–17';
61599
+ e[`child_${i}`] = t('kiwi.booking.validation.childAge');
61595
61600
  });
61596
61601
  return e;
61597
61602
  };
61598
- const validatePayment = (f) => {
61603
+ const validatePayment = (f, t) => {
61599
61604
  const e = {};
61600
61605
  if (!f.cardholder_name.trim())
61601
- e.cardholder_name = 'Required';
61606
+ e.cardholder_name = t('kiwi.booking.validation.required');
61602
61607
  if (!f.card_number.trim())
61603
- e.card_number = 'Required';
61608
+ e.card_number = t('kiwi.booking.validation.required');
61604
61609
  else if (!/^\d{13,19}$/.test(f.card_number.replace(/\s/g, '')))
61605
- e.card_number = 'Invalid card number';
61610
+ e.card_number = t('kiwi.booking.validation.invalidCard');
61606
61611
  if (!f.card_security.trim())
61607
- e.card_security = 'Required';
61612
+ e.card_security = t('kiwi.booking.validation.required');
61608
61613
  else if (!/^\d{3,4}$/.test(f.card_security))
61609
- e.card_security = 'Invalid CVV';
61614
+ e.card_security = t('kiwi.booking.validation.invalidCvv');
61610
61615
  return e;
61611
61616
  };
61612
- const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, checkOut, nightCount, adults, children, propertyCode, roomCode, generateExternalId, onClose, onCreateReservation, }) => {
61617
+ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, checkOut, nightCount, adults, children, propertyCode, roomCode, generateExternalId, onClose, onCreateReservation, onReservationFailed, t, }) => {
61613
61618
  var _a;
61614
61619
  const [step, setStep] = (0, react_1.useState)(1);
61615
61620
  const [lead, setLead] = (0, react_1.useState)(emptyLead);
@@ -61624,10 +61629,11 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61624
61629
  const guestCountLabel = (0, react_1.useMemo)(() => {
61625
61630
  const parts = [];
61626
61631
  if (adults > 0)
61627
- parts.push(`${adults} Adult${adults > 1 ? 's' : ''}`);
61632
+ parts.push(`${adults} ${adults === 1 ? t('kiwi.searchBar.adult') : t('kiwi.common.adults')}`);
61628
61633
  if (children > 0)
61629
- parts.push(`${children} Child${children > 1 ? 'ren' : ''}`);
61634
+ parts.push(`${children} ${children === 1 ? t('kiwi.searchBar.child') : t('kiwi.common.children')}`);
61630
61635
  return parts.join(', ');
61636
+ // eslint-disable-next-line react-hooks/exhaustive-deps
61631
61637
  }, [adults, children]);
61632
61638
  const handleLeadChange = (k, v) => {
61633
61639
  setLead((prev) => ({ ...prev, [k]: v }));
@@ -61647,8 +61653,8 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61647
61653
  const goNext = () => {
61648
61654
  if (step === 1) {
61649
61655
  const e = {
61650
- ...validateLead(lead),
61651
- ...(hasChildren ? validateChildren(childrenAges) : {}),
61656
+ ...validateLead(lead, t),
61657
+ ...(hasChildren ? validateChildren(childrenAges, t) : {}),
61652
61658
  };
61653
61659
  if (Object.keys(e).length > 0) {
61654
61660
  setErrors(e);
@@ -61658,7 +61664,7 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61658
61664
  setStep(2);
61659
61665
  }
61660
61666
  else if (step === 2) {
61661
- const e = validatePayment(payment);
61667
+ const e = validatePayment(payment, t);
61662
61668
  if (Object.keys(e).length > 0) {
61663
61669
  setErrors(e);
61664
61670
  return;
@@ -61717,11 +61723,17 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61717
61723
  setStep(3);
61718
61724
  }
61719
61725
  else {
61720
- setApiError('Reservation could not be completed. Please try again.');
61726
+ const msg = t('kiwi.booking.error.failed');
61727
+ setApiError(msg);
61728
+ if (onReservationFailed)
61729
+ onReservationFailed(msg);
61721
61730
  }
61722
61731
  }
61723
- catch {
61724
- setApiError('An error occurred. Please check your details and try again.');
61732
+ catch (err) {
61733
+ const msg = t('kiwi.booking.error.generic');
61734
+ setApiError(msg);
61735
+ if (onReservationFailed)
61736
+ onReservationFailed(msg);
61725
61737
  }
61726
61738
  finally {
61727
61739
  setSubmitting(false);
@@ -61742,85 +61754,85 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61742
61754
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.headerInfo },
61743
61755
  react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.headerTitle }, hotelName),
61744
61756
  react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.headerSub }, roomTitle)),
61745
- react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": "Close" },
61757
+ react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": t('kiwi.common.close') },
61746
61758
  react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" },
61747
61759
  react_1.default.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
61748
61760
  react_1.default.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))),
61749
61761
  step !== 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryBar },
61750
61762
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61751
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, "Check-in"),
61763
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, t('kiwi.common.checkIn')),
61752
61764
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, fmtDate(checkIn))),
61753
61765
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61754
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, "Check-out"),
61766
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, t('kiwi.common.checkOut')),
61755
61767
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, fmtDate(checkOut))),
61756
61768
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61757
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, "Nights"),
61769
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, t('kiwi.common.nights')),
61758
61770
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, nightCount)),
61759
61771
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61760
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, "Guests"),
61772
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, t('kiwi.common.guests')),
61761
61773
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, guestCountLabel)),
61762
61774
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61763
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, "Total"),
61775
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryLabel }, t('kiwi.common.total')),
61764
61776
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue },
61765
61777
  fmtPrice(total, currency),
61766
61778
  " ",
61767
61779
  currency)))),
61768
61780
  step !== 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.steps },
61769
- react_1.default.createElement("div", { className: `${KiwiBookingModal_scss_1.default.step} ${step === 1 ? KiwiBookingModal_scss_1.default.stepActive : KiwiBookingModal_scss_1.default.stepDone}` }, "1. Guest Info"),
61770
- react_1.default.createElement("div", { className: `${KiwiBookingModal_scss_1.default.step} ${step === 2 ? KiwiBookingModal_scss_1.default.stepActive : step > 2 ? KiwiBookingModal_scss_1.default.stepDone : ''}` }, "2. Payment"))),
61781
+ react_1.default.createElement("div", { className: `${KiwiBookingModal_scss_1.default.step} ${step === 1 ? KiwiBookingModal_scss_1.default.stepActive : KiwiBookingModal_scss_1.default.stepDone}` }, t('kiwi.booking.step1')),
61782
+ react_1.default.createElement("div", { className: `${KiwiBookingModal_scss_1.default.step} ${step === 2 ? KiwiBookingModal_scss_1.default.stepActive : step > 2 ? KiwiBookingModal_scss_1.default.stepDone : ''}` }, t('kiwi.booking.step2')))),
61771
61783
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.body },
61772
61784
  apiError && react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.errorBanner }, apiError),
61773
61785
  step === 1 && (react_1.default.createElement(react_1.default.Fragment, null,
61774
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Guest Information"),
61786
+ react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, t('kiwi.booking.guestInformation')),
61775
61787
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61776
- react_1.default.createElement(Field, { label: "Title", required: true },
61777
- react_1.default.createElement("select", { className: KiwiBookingModal_scss_1.default.select, value: lead.title, onChange: (e) => handleLeadChange('title', e.target.value) }, TITLES.map((t) => react_1.default.createElement("option", { key: t, value: t }, t))))),
61788
+ react_1.default.createElement(Field, { label: t('kiwi.booking.title'), required: true },
61789
+ react_1.default.createElement("select", { className: KiwiBookingModal_scss_1.default.select, value: lead.title, onChange: (e) => handleLeadChange('title', e.target.value) }, TITLES.map((tt) => react_1.default.createElement("option", { key: tt, value: tt }, tt))))),
61778
61790
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61779
- react_1.default.createElement(Field, { label: "First Name", required: true, error: errors.lead_first_name },
61791
+ react_1.default.createElement(Field, { label: t('kiwi.booking.firstName'), required: true, error: errors.lead_first_name },
61780
61792
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_first_name ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.first_name, onChange: (e) => handleLeadChange('first_name', e.target.value), placeholder: "John" })),
61781
- react_1.default.createElement(Field, { label: "Last Name", required: true, error: errors.lead_last_name },
61793
+ react_1.default.createElement(Field, { label: t('kiwi.booking.lastName'), required: true, error: errors.lead_last_name },
61782
61794
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_last_name ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.last_name, onChange: (e) => handleLeadChange('last_name', e.target.value), placeholder: "Doe" }))),
61783
- react_1.default.createElement(Field, { label: "Email Address", required: true, error: errors.lead_email },
61795
+ react_1.default.createElement(Field, { label: t('kiwi.booking.emailAddress'), required: true, error: errors.lead_email },
61784
61796
  react_1.default.createElement("input", { type: "email", className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_email ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.email, onChange: (e) => handleLeadChange('email', e.target.value), placeholder: "john@example.com" })),
61785
61797
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61786
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Address"),
61787
- react_1.default.createElement(Field, { label: "Address Line 1", required: true, error: errors.lead_address_line1 },
61798
+ react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, t('kiwi.booking.address')),
61799
+ react_1.default.createElement(Field, { label: t('kiwi.booking.addressLine1'), required: true, error: errors.lead_address_line1 },
61788
61800
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_address_line1 ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.address_line1, onChange: (e) => handleLeadChange('address_line1', e.target.value), placeholder: "123 Main St" })),
61789
- react_1.default.createElement(Field, { label: "Address Line 2" },
61801
+ react_1.default.createElement(Field, { label: t('kiwi.booking.addressLine2') },
61790
61802
  react_1.default.createElement("input", { className: KiwiBookingModal_scss_1.default.input, value: lead.address_line2, onChange: (e) => handleLeadChange('address_line2', e.target.value), placeholder: "Apt, suite, etc. (optional)" })),
61791
61803
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61792
- react_1.default.createElement(Field, { label: "City", required: true, error: errors.lead_city },
61804
+ react_1.default.createElement(Field, { label: t('kiwi.booking.city'), required: true, error: errors.lead_city },
61793
61805
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_city ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.city, onChange: (e) => handleLeadChange('city', e.target.value), placeholder: "New York" })),
61794
- react_1.default.createElement(Field, { label: "State / Province" },
61806
+ react_1.default.createElement(Field, { label: t('kiwi.booking.stateProvince') },
61795
61807
  react_1.default.createElement("input", { className: KiwiBookingModal_scss_1.default.input, value: lead.state, onChange: (e) => handleLeadChange('state', e.target.value), placeholder: "NY" }))),
61796
61808
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61797
- react_1.default.createElement(Field, { label: "Country", required: true, error: errors.lead_country },
61809
+ react_1.default.createElement(Field, { label: t('kiwi.booking.country'), required: true, error: errors.lead_country },
61798
61810
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_country ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.country, onChange: (e) => handleLeadChange('country', e.target.value), placeholder: "US" })),
61799
- react_1.default.createElement(Field, { label: "ZIP / Postal Code", required: true, error: errors.lead_zip_postal },
61811
+ react_1.default.createElement(Field, { label: t('kiwi.booking.zipPostalCode'), required: true, error: errors.lead_zip_postal },
61800
61812
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_zip_postal ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.zip_postal, onChange: (e) => handleLeadChange('zip_postal', e.target.value), placeholder: "10001" }))),
61801
61813
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61802
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Phone Number"),
61814
+ react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, t('kiwi.booking.phoneNumberSection')),
61803
61815
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row3 },
61804
- react_1.default.createElement(Field, { label: "Country Code", required: true, error: errors.lead_phone_country_code },
61816
+ react_1.default.createElement(Field, { label: t('kiwi.booking.countryCode'), required: true, error: errors.lead_phone_country_code },
61805
61817
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_phone_country_code ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.phone_country_code, onChange: (e) => handleLeadChange('phone_country_code', e.target.value), placeholder: "+1" })),
61806
- react_1.default.createElement(Field, { label: "Area Code" },
61818
+ react_1.default.createElement(Field, { label: t('kiwi.booking.areaCode') },
61807
61819
  react_1.default.createElement("input", { className: KiwiBookingModal_scss_1.default.input, value: lead.phone_area_code, onChange: (e) => handleLeadChange('phone_area_code', e.target.value), placeholder: "212" })),
61808
- react_1.default.createElement(Field, { label: "Phone", required: true, error: errors.lead_phone },
61820
+ react_1.default.createElement(Field, { label: t('kiwi.booking.phone'), required: true, error: errors.lead_phone },
61809
61821
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.lead_phone ? KiwiBookingModal_scss_1.default.error : ''}`, value: lead.phone, onChange: (e) => handleLeadChange('phone', e.target.value), placeholder: "5551234" }))),
61810
61822
  hasChildren && (react_1.default.createElement(react_1.default.Fragment, null,
61811
61823
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61812
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Children Ages"),
61824
+ react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, t('kiwi.booking.childrenAges')),
61813
61825
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row }, childrenAges.map((age, i) => (
61814
61826
  // eslint-disable-next-line react/no-array-index-key
61815
- react_1.default.createElement(Field, { key: i, label: `Child ${i + 1} Age`, required: true, error: errors[`child_${i}`] },
61827
+ react_1.default.createElement(Field, { key: i, label: `${t('kiwi.booking.childAge')} ${i + 1}`, required: true, error: errors[`child_${i}`] },
61816
61828
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors[`child_${i}`] ? KiwiBookingModal_scss_1.default.error : ''}`, value: age, onChange: (e) => handleChildAgeChange(i, e.target.value.replace(/\D/g, '').slice(0, 2)), placeholder: "0\u201317", inputMode: "numeric" }))))))))),
61817
61829
  step === 2 && (react_1.default.createElement(react_1.default.Fragment, null,
61818
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Payment Details"),
61819
- react_1.default.createElement(Field, { label: "Cardholder Name", required: true, error: errors.cardholder_name },
61830
+ react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, t('kiwi.booking.paymentDetails')),
61831
+ react_1.default.createElement(Field, { label: t('kiwi.booking.cardholderName'), required: true, error: errors.cardholder_name },
61820
61832
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.cardholder_name ? KiwiBookingModal_scss_1.default.error : ''}`, value: payment.cardholder_name, onChange: (e) => handlePaymentChange('cardholder_name', e.target.value), placeholder: "John Doe" })),
61821
- react_1.default.createElement(Field, { label: "Card Type", required: true },
61833
+ react_1.default.createElement(Field, { label: t('kiwi.booking.cardType'), required: true },
61822
61834
  react_1.default.createElement("select", { className: KiwiBookingModal_scss_1.default.select, value: payment.card_type, onChange: (e) => handlePaymentChange('card_type', e.target.value) }, CARD_TYPES.map((c) => react_1.default.createElement("option", { key: c.value, value: c.value }, c.label)))),
61823
- react_1.default.createElement(Field, { label: "Card Number", required: true, error: errors.card_number },
61835
+ react_1.default.createElement(Field, { label: t('kiwi.booking.cardNumber'), required: true, error: errors.card_number },
61824
61836
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.cardInputWrap },
61825
61837
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${KiwiBookingModal_scss_1.default.cardInput} ${errors.card_number ? KiwiBookingModal_scss_1.default.error : ''}`, value: payment.card_number, onChange: (e) => {
61826
61838
  const raw = e.target.value.replace(/\D/g, '').slice(0, 19);
@@ -61828,43 +61840,43 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61828
61840
  handlePaymentChange('card_number', formatted);
61829
61841
  }, placeholder: "0000 0000 0000 0000", inputMode: "numeric" }))),
61830
61842
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61831
- react_1.default.createElement(Field, { label: "CVV / Security Code", required: true, error: errors.card_security },
61843
+ react_1.default.createElement(Field, { label: t('kiwi.booking.cvv'), required: true, error: errors.card_security },
61832
61844
  react_1.default.createElement("input", { className: `${KiwiBookingModal_scss_1.default.input} ${errors.card_security ? KiwiBookingModal_scss_1.default.error : ''}`, value: payment.card_security, onChange: (e) => handlePaymentChange('card_security', e.target.value.replace(/\D/g, '').slice(0, 4)), placeholder: "123", inputMode: "numeric" }))),
61833
61845
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61834
- react_1.default.createElement(Field, { label: "Expiry Month", required: true },
61846
+ react_1.default.createElement(Field, { label: t('kiwi.booking.expiryMonth'), required: true },
61835
61847
  react_1.default.createElement("select", { className: KiwiBookingModal_scss_1.default.select, value: payment.expiry_month, onChange: (e) => handlePaymentChange('expiry_month', e.target.value) }, MONTHS.map((mo) => react_1.default.createElement("option", { key: mo, value: mo }, mo)))),
61836
- react_1.default.createElement(Field, { label: "Expiry Year", required: true },
61848
+ react_1.default.createElement(Field, { label: t('kiwi.booking.expiryYear'), required: true },
61837
61849
  react_1.default.createElement("select", { className: KiwiBookingModal_scss_1.default.select, value: payment.expiry_year, onChange: (e) => handlePaymentChange('expiry_year', e.target.value) }, YEARS.map((y) => react_1.default.createElement("option", { key: y, value: y }, y))))),
61838
61850
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61839
- react_1.default.createElement(Field, { label: "Message to Hotel" },
61851
+ react_1.default.createElement(Field, { label: t('kiwi.booking.messageToHotel') },
61840
61852
  react_1.default.createElement("textarea", { className: KiwiBookingModal_scss_1.default.textarea, value: payment.message_to_hotel, onChange: (e) => handlePaymentChange('message_to_hotel', e.target.value), placeholder: "Any special requests or notes for the hotel..." })))),
61841
61853
  step === 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.success },
61842
61854
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.successIcon },
61843
61855
  react_1.default.createElement("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" },
61844
61856
  react_1.default.createElement("polyline", { points: "20 6 9 17 4 12" }))),
61845
- react_1.default.createElement("h2", { className: KiwiBookingModal_scss_1.default.successTitle }, "Booking Confirmed!"),
61846
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.successSub }, "Your reservation has been successfully created."),
61857
+ react_1.default.createElement("h2", { className: KiwiBookingModal_scss_1.default.successTitle }, t('kiwi.booking.confirmed.title')),
61858
+ react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.successSub }, t('kiwi.booking.confirmed.subtitle')),
61847
61859
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmCard },
61848
61860
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61849
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Confirmation ID"),
61861
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.booking.confirmed.confirmationId')),
61850
61862
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmId }, confirmationId)),
61851
61863
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61852
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Hotel"),
61864
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.booking.confirmed.hotel')),
61853
61865
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, hotelName)),
61854
61866
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61855
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Room"),
61867
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.booking.confirmed.room')),
61856
61868
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, roomTitle)),
61857
61869
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61858
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Check-in"),
61870
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.common.checkIn')),
61859
61871
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, fmtDate(checkIn))),
61860
61872
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61861
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Check-out"),
61873
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.common.checkOut')),
61862
61874
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, fmtDate(checkOut))),
61863
61875
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61864
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Guests"),
61876
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.common.guests')),
61865
61877
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, guestCountLabel)),
61866
61878
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61867
- react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, "Total"),
61879
+ react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmLabel }, t('kiwi.common.total')),
61868
61880
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue },
61869
61881
  fmtPrice(total, currency),
61870
61882
  " ",
@@ -61875,12 +61887,12 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61875
61887
  lead.first_name,
61876
61888
  " ",
61877
61889
  lead.last_name))),
61878
- react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.doneBtn, onClick: onClose }, "Done")))),
61890
+ react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.doneBtn, onClick: onClose }, t('kiwi.booking.confirmed.done'))))),
61879
61891
  step !== 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.footer },
61880
- step === 2 ? (react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.backBtn, onClick: () => { setErrors({}); setApiError(''); setStep(1); } }, "Back")) : (react_1.default.createElement("span", null)),
61892
+ step === 2 ? (react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.backBtn, onClick: () => { setErrors({}); setApiError(''); setStep(1); } }, t('kiwi.common.back'))) : (react_1.default.createElement("span", null)),
61881
61893
  react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.nextBtn, onClick: goNext, disabled: submitting },
61882
61894
  submitting && react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.spinner }),
61883
- step === 1 ? 'Continue to Payment' : submitting ? 'Processing...' : 'Confirm Booking'))))));
61895
+ step === 1 ? t('kiwi.booking.continueToPayment') : submitting ? t('kiwi.booking.processing') : t('kiwi.booking.confirmBooking')))))));
61884
61896
  return react_dom_1.default.createPortal(content, document.body);
61885
61897
  };
61886
61898
  exports.default = KiwiBookingModal;
@@ -83386,7 +83398,7 @@ const RadioButtonQuestion = ({ defaultAnswer, radioButtonChange, box = false, fl
83386
83398
  if (box)
83387
83399
  return (react_1.default.createElement(react_1.default.Fragment, null,
83388
83400
  react_1.default.createElement("h4", { className: `mb4 ${RadioButtonQuestion_scss_1.default.title}` }, question.name),
83389
- react_1.default.createElement("div", { style: flexDirection === 'column' ? { display: 'flex', flexDirection: 'column' } : { display: 'flex', flexDirection: 'column', gap: '1rem' }, onKeyPress: () => { }, role: "button", tabIndex: 0, onFocus: () => {
83401
+ react_1.default.createElement("div", { style: { display: 'flex', flexDirection: 'column', gap: '1rem' }, onKeyPress: () => { }, role: "button", tabIndex: 0, onFocus: () => {
83390
83402
  if (onFocus)
83391
83403
  onFocus();
83392
83404
  }, onBlur: () => {
@@ -93673,7 +93685,7 @@ const KiwiHotelCard_scss_1 = __importDefault(__webpack_require__(1134));
93673
93685
  const KiwiHotelCardImage_1 = __importDefault(__webpack_require__(1135));
93674
93686
  const KiwiVisaBenefitsModal_1 = __importDefault(__webpack_require__(450));
93675
93687
  const currencySymbol_1 = __webpack_require__(123);
93676
- const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onHover, onSpecialOffersClick, onCardClick }) => {
93688
+ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onHover, onSpecialOffersClick, onCardClick, t }) => {
93677
93689
  const [visaModalOpen, setVisaModalOpen] = (0, react_1.useState)(false);
93678
93690
  const starCount = Math.min(5, Math.round(parseFloat(hotel.starRating) || 0));
93679
93691
  const score = parseFloat(hotel.kiwiOverallScore) || 0;
@@ -93711,11 +93723,11 @@ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onH
93711
93723
  price > 0 && (react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.price },
93712
93724
  (0, currencySymbol_1.getCurrencySymbol)(hotel.currencyCode),
93713
93725
  price.toFixed(0),
93714
- react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.priceUnit }, "/night"))),
93726
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.priceUnit }, t('kiwi.common.perNight')))),
93715
93727
  hotel.websiteURL && (react_1.default.createElement("button", { type: "button", className: KiwiHotelCard_scss_1.default.bookBtn, onClick: (e) => {
93716
93728
  e.stopPropagation();
93717
93729
  window.open(hotel.websiteURL, '_blank', 'noopener,noreferrer');
93718
- } }, "Book")))),
93730
+ } }, t('kiwi.card.book'))))),
93719
93731
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.row2 },
93720
93732
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.name }, hotel.title),
93721
93733
  starCount > 0 && (react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.goldStars }, Array.from({ length: starCount }, (_, i) => (react_1.default.createElement("svg", { key: i, className: KiwiHotelCard_scss_1.default.goldStar, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
@@ -93725,32 +93737,32 @@ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onH
93725
93737
  perks.length > 0 && (react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.perksRow },
93726
93738
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.infoCell },
93727
93739
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.perksLabelRow },
93728
- react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, "Perks"),
93740
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, t('kiwi.card.perks')),
93729
93741
  showVisaBadge && (
93730
93742
  // eslint-disable-next-line jsx-a11y/control-has-associated-label
93731
93743
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.visaBadge, onClick: (e) => {
93732
93744
  e.stopPropagation();
93733
93745
  setVisaModalOpen(true);
93734
- }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": "Visa Premium Benefits" })))),
93746
+ }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": t('kiwi.card.visaPremiumBenefits') })))),
93735
93747
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.infoCell }, hasSpecialOffer ? (react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.perksLabelRow, onClick: (e) => {
93736
93748
  e.stopPropagation();
93737
93749
  if (onSpecialOffersClick)
93738
93750
  onSpecialOffersClick(hotel);
93739
93751
  }, role: "button", tabIndex: 0, onKeyDown: () => { }, style: { cursor: 'pointer' } },
93740
- react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, "Special Offers"),
93752
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, t('kiwi.common.specialOffers')),
93741
93753
  react_1.default.createElement("svg", { className: KiwiHotelCard_scss_1.default.specialOfferIcon, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
93742
93754
  react_1.default.createElement("path", { d: "M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58s1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41s-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z" })))) : (react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellValue }, perks.join(' \u00B7 ')))))),
93743
93755
  (roomCount || settings || styles) && (react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.infoRow },
93744
93756
  roomCount && (react_1.default.createElement("div", { className: `${KiwiHotelCard_scss_1.default.infoCell} ${KiwiHotelCard_scss_1.default.cellThird}` },
93745
- react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, "Rooms & Suites"),
93757
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, t('kiwi.common.roomsSuites')),
93746
93758
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.valueBadge }, roomCount))),
93747
93759
  settings && (react_1.default.createElement("div", { className: `${KiwiHotelCard_scss_1.default.infoCell} ${KiwiHotelCard_scss_1.default.cellThird}` },
93748
- react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, "Setting"),
93760
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, t('kiwi.common.setting')),
93749
93761
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.valueBadge }, settings))),
93750
93762
  styles && (react_1.default.createElement("div", { className: `${KiwiHotelCard_scss_1.default.infoCell} ${KiwiHotelCard_scss_1.default.cellThird}` },
93751
- react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, "Style"),
93763
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, t('kiwi.common.style')),
93752
93764
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.valueBadge }, styles)))))))),
93753
- visaModalOpen && react_1.default.createElement(KiwiVisaBenefitsModal_1.default, { onClose: () => setVisaModalOpen(false) })));
93765
+ visaModalOpen && react_1.default.createElement(KiwiVisaBenefitsModal_1.default, { onClose: () => setVisaModalOpen(false), t: t })));
93754
93766
  };
93755
93767
  exports.default = KiwiHotelCard;
93756
93768
 
@@ -93954,13 +93966,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
93954
93966
  const react_1 = __importStar(__webpack_require__(0));
93955
93967
  const KiwiHotelFilterBar_scss_1 = __importDefault(__webpack_require__(1139));
93956
93968
  const SORT_OPTIONS = [
93957
- { value: '', fallback: 'All Hotels' },
93958
- { value: 'price_low_to_high', fallback: 'Price - Low to High' },
93959
- { value: 'price_high_to_low', fallback: 'Price - High to Low' },
93960
- { value: 'recently_added', fallback: 'Recently Added' },
93961
- { value: 'star_rating', fallback: 'Star Rating' },
93962
- { value: 'average_rating', fallback: 'Average Rating' },
93963
- { value: 'alphabetical', fallback: 'Alphabetical' },
93969
+ { value: '', tKey: 'kiwi.filterBar.sort.all' },
93970
+ { value: 'price_low_to_high', tKey: 'kiwi.filterBar.sort.priceLow' },
93971
+ { value: 'price_high_to_low', tKey: 'kiwi.filterBar.sort.priceHigh' },
93972
+ { value: 'recently_added', tKey: 'kiwi.filterBar.sort.recentlyAdded' },
93973
+ { value: 'star_rating', tKey: 'kiwi.filterBar.sort.starRating' },
93974
+ { value: 'average_rating', tKey: 'kiwi.filterBar.sort.averageRating' },
93975
+ { value: 'alphabetical', tKey: 'kiwi.filterBar.sort.alphabetical' },
93964
93976
  ];
93965
93977
  const KiwiHotelFilterBar = ({ sortBy, onSortChange, onShowMapToggle, onFilterToggle, showMap, resultCount, t }) => {
93966
93978
  const [sortOpen, setSortOpen] = (0, react_1.useState)(false);
@@ -93978,26 +93990,26 @@ const KiwiHotelFilterBar = ({ sortBy, onSortChange, onShowMapToggle, onFilterTog
93978
93990
  react_1.default.createElement("div", { className: `${KiwiHotelFilterBar_scss_1.default.left} ${showMap ? KiwiHotelFilterBar_scss_1.default.leftActive : ''}`, onClick: onShowMapToggle, role: "button", tabIndex: 0, onKeyDown: () => { } },
93979
93991
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
93980
93992
  react_1.default.createElement("path", { d: "M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z" })),
93981
- react_1.default.createElement("span", null, "View on Map")),
93993
+ react_1.default.createElement("span", null, t('kiwi.filterBar.viewOnMap'))),
93982
93994
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.right },
93983
93995
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortWrapper, ref: sortRef },
93984
93996
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.actionBtn, onClick: () => setSortOpen(!sortOpen), role: "button", tabIndex: 0, onKeyDown: () => { } },
93985
93997
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
93986
93998
  react_1.default.createElement("path", { d: "M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z" })),
93987
- react_1.default.createElement("span", null, "Sort By")),
93999
+ react_1.default.createElement("span", null, t('kiwi.filterBar.sortBy'))),
93988
94000
  sortOpen && (react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortDropdown },
93989
- react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortHeader }, "Sort by"),
94001
+ react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortHeader }, t('kiwi.filterBar.sortBy')),
93990
94002
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortDivider }),
93991
94003
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortList }, SORT_OPTIONS.map((option) => (react_1.default.createElement("div", { key: option.value, className: KiwiHotelFilterBar_scss_1.default.sortOption, onClick: () => {
93992
94004
  onSortChange(option.value);
93993
94005
  setSortOpen(false);
93994
94006
  }, role: "button", tabIndex: 0, onKeyDown: () => { } },
93995
94007
  react_1.default.createElement("span", { className: `${KiwiHotelFilterBar_scss_1.default.radio} ${sortBy === option.value ? KiwiHotelFilterBar_scss_1.default.radioActive : ''}` }),
93996
- react_1.default.createElement("span", null, option.fallback)))))))),
94008
+ react_1.default.createElement("span", null, t(option.tKey))))))))),
93997
94009
  onFilterToggle && (react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.actionBtn, onClick: onFilterToggle, role: "button", tabIndex: 0, onKeyDown: () => { } },
93998
94010
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
93999
94011
  react_1.default.createElement("path", { d: "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z" })),
94000
- react_1.default.createElement("span", null, "Filter"))))));
94012
+ react_1.default.createElement("span", null, t('kiwi.filterBar.filter')))))));
94001
94013
  };
94002
94014
  exports.default = KiwiHotelFilterBar;
94003
94015
 
@@ -94125,7 +94137,7 @@ const OptionRow = ({ label, count, selected, onToggle }) => (react_1.default.cre
94125
94137
  const renderStars = (n) => (react_1.default.createElement("span", { className: KiwiHotelFilterModal_scss_1.default.stars }, Array.from({ length: n }, (_, i) => (react_1.default.createElement("svg", { key: i, className: KiwiHotelFilterModal_scss_1.default.star, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg" },
94126
94138
  react_1.default.createElement("path", { d: "M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z" }))))));
94127
94139
  /* ── Main component ── */
94128
- const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94140
+ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose, t }) => {
94129
94141
  const [local, setLocal] = (0, react_1.useState)({ ...filters });
94130
94142
  /* Aggregated options */
94131
94143
  const locationOpts = (0, react_1.useMemo)(() => aggregateField(hotels, (h) => h.country), [hotels]);
@@ -94140,7 +94152,7 @@ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94140
94152
  const tags = [];
94141
94153
  local.locations.forEach((v) => tags.push({ label: v, remove: () => setLocal((p) => ({ ...p, locations: p.locations.filter((x) => x !== v) })) }));
94142
94154
  if (local.specialOffers)
94143
- tags.push({ label: 'Special Offers', remove: () => setLocal((p) => ({ ...p, specialOffers: false })) });
94155
+ tags.push({ label: t('kiwi.common.specialOffers'), remove: () => setLocal((p) => ({ ...p, specialOffers: false })) });
94144
94156
  local.ratings.forEach((v) => tags.push({ label: `${'★'.repeat(v)}`, remove: () => setLocal((p) => ({ ...p, ratings: p.ratings.filter((x) => x !== v) })) }));
94145
94157
  local.settings.forEach((v) => tags.push({ label: v, remove: () => setLocal((p) => ({ ...p, settings: p.settings.filter((x) => x !== v) })) }));
94146
94158
  local.styles.forEach((v) => tags.push({ label: v, remove: () => setLocal((p) => ({ ...p, styles: p.styles.filter((x) => x !== v) })) }));
@@ -94150,7 +94162,7 @@ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94150
94162
  return react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.overlay, onClick: onClose, role: "presentation" },
94151
94163
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.modal, onClick: (e) => e.stopPropagation() },
94152
94164
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.header },
94153
- react_1.default.createElement("span", { className: KiwiHotelFilterModal_scss_1.default.title }, "Filters"),
94165
+ react_1.default.createElement("span", { className: KiwiHotelFilterModal_scss_1.default.title }, t('kiwi.filterModal.title')),
94154
94166
  react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.closeBtn, onClick: onClose },
94155
94167
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94156
94168
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })))),
@@ -94160,20 +94172,23 @@ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94160
94172
  react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.tagRemove, onClick: tag.remove },
94161
94173
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94162
94174
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }))))))),
94163
- react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.clearAllSmall, onClick: clearAll }, "Clear all"))),
94175
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.clearAllSmall, onClick: clearAll }, t('kiwi.common.clearAll')))),
94164
94176
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.body },
94165
- locationOpts.length > 0 && (react_1.default.createElement(Section, { title: "Location" }, locationOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.locations.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, locations: toggleValue(p.locations, o.label) })) }))))),
94166
- specialOfferCount > 0 && (react_1.default.createElement(Section, { title: "Special Offers" },
94167
- react_1.default.createElement(OptionRow, { label: "Special Offers", count: specialOfferCount, selected: local.specialOffers, onToggle: () => setLocal((p) => ({ ...p, specialOffers: !p.specialOffers })) }))),
94168
- ratingOpts.length > 0 && (react_1.default.createElement(Section, { title: "Rating" }, ratingOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.stars, label: renderStars(o.stars), count: o.count, selected: local.ratings.includes(o.stars), onToggle: () => setLocal((p) => ({ ...p, ratings: toggleValue(p.ratings, o.stars) })) }))))),
94169
- settingOpts.length > 0 && (react_1.default.createElement(Section, { title: "Setting" }, settingOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.settings.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, settings: toggleValue(p.settings, o.label) })) }))))),
94170
- styleOpts.length > 0 && (react_1.default.createElement(Section, { title: "Style" }, styleOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.styles.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, styles: toggleValue(p.styles, o.label) })) }))))),
94171
- interestOpts.length > 0 && (react_1.default.createElement(Section, { title: "Interests" },
94177
+ locationOpts.length > 0 && (react_1.default.createElement(Section, { title: t('kiwi.filterModal.location') }, locationOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.locations.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, locations: toggleValue(p.locations, o.label) })) }))))),
94178
+ specialOfferCount > 0 && (react_1.default.createElement(Section, { title: t('kiwi.common.specialOffers') },
94179
+ react_1.default.createElement(OptionRow, { label: t('kiwi.common.specialOffers'), count: specialOfferCount, selected: local.specialOffers, onToggle: () => setLocal((p) => ({ ...p, specialOffers: !p.specialOffers })) }))),
94180
+ ratingOpts.length > 0 && (react_1.default.createElement(Section, { title: t('kiwi.filterModal.rating') }, ratingOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.stars, label: renderStars(o.stars), count: o.count, selected: local.ratings.includes(o.stars), onToggle: () => setLocal((p) => ({ ...p, ratings: toggleValue(p.ratings, o.stars) })) }))))),
94181
+ settingOpts.length > 0 && (react_1.default.createElement(Section, { title: t('kiwi.common.setting') }, settingOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.settings.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, settings: toggleValue(p.settings, o.label) })) }))))),
94182
+ styleOpts.length > 0 && (react_1.default.createElement(Section, { title: t('kiwi.common.style') }, styleOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.styles.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, styles: toggleValue(p.styles, o.label) })) }))))),
94183
+ interestOpts.length > 0 && (react_1.default.createElement(Section, { title: t('kiwi.filterModal.interests') },
94172
94184
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.twoCol }, interestOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.interests.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, interests: toggleValue(p.interests, o.label) })) })))))),
94173
- brandOpts.length > 0 && (react_1.default.createElement(Section, { title: "Brand" }, brandOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.brands.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, brands: toggleValue(p.brands, o.label) })) })))))),
94185
+ brandOpts.length > 0 && (react_1.default.createElement(Section, { title: t('kiwi.filterModal.brand') }, brandOpts.map((o) => (react_1.default.createElement(OptionRow, { key: o.label, label: o.label, count: o.count, selected: local.brands.includes(o.label), onToggle: () => setLocal((p) => ({ ...p, brands: toggleValue(p.brands, o.label) })) })))))),
94174
94186
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.footer },
94175
- react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.clearBtn, onClick: clearAll }, "Clear all"),
94176
- react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.applyBtn, onClick: () => onApply(local) }, `Show ${filteredCount} Hotels`)))), document.body);
94187
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.clearBtn, onClick: clearAll }, t('kiwi.common.clearAll')),
94188
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.applyBtn, onClick: () => onApply(local) },
94189
+ filteredCount,
94190
+ " ",
94191
+ t('kiwi.filterModal.showHotels'))))), document.body);
94177
94192
  };
94178
94193
  exports.default = KiwiHotelFilterModal;
94179
94194
 
@@ -94237,16 +94252,16 @@ const KiwiRateDetailModal_1 = __importDefault(__webpack_require__(452));
94237
94252
  const KiwiRoomRateModal_1 = __importDefault(__webpack_require__(453));
94238
94253
  const KiwiBookingModal_1 = __importDefault(__webpack_require__(454));
94239
94254
  const RATING_LABELS = [
94240
- { key: 'service', label: 'Service' },
94241
- { key: 'rooms', label: 'Rooms' },
94242
- { key: 'location', label: 'Location' },
94243
- { key: 'foodBeverage', label: 'Food & Beverage' },
94244
- { key: 'spaFitness', label: 'Spa & Fitness' },
94245
- { key: 'attentionToDetail', label: 'Attention to Detail' },
94246
- { key: 'generosityValue', label: 'Generosity & Value' },
94247
- { key: 'wowHipFactor', label: 'Wow / Hip Factor' },
94248
- { key: 'architectureDesign', label: 'Architecture & Design' },
94249
- { key: 'fitToPromise', label: 'Fit to Promise' },
94255
+ { key: 'service', tKey: 'kiwi.infoModal.rating.service' },
94256
+ { key: 'rooms', tKey: 'kiwi.infoModal.rating.rooms' },
94257
+ { key: 'location', tKey: 'kiwi.infoModal.rating.location' },
94258
+ { key: 'foodBeverage', tKey: 'kiwi.infoModal.rating.foodBeverage' },
94259
+ { key: 'spaFitness', tKey: 'kiwi.infoModal.rating.spaFitness' },
94260
+ { key: 'attentionToDetail', tKey: 'kiwi.infoModal.rating.attentionToDetail' },
94261
+ { key: 'generosityValue', tKey: 'kiwi.infoModal.rating.generosityValue' },
94262
+ { key: 'wowHipFactor', tKey: 'kiwi.infoModal.rating.wowFactor' },
94263
+ { key: 'architectureDesign', tKey: 'kiwi.infoModal.rating.architectureDesign' },
94264
+ { key: 'fitToPromise', tKey: 'kiwi.infoModal.rating.fitToPromise' },
94250
94265
  ];
94251
94266
  const FALLBACK_VISA_BENEFITS = [
94252
94267
  'Best available rate guarantee',
@@ -94259,13 +94274,13 @@ const FALLBACK_VISA_BENEFITS = [
94259
94274
  ];
94260
94275
  const DESCRIPTION_TRUNCATE_LENGTH = 380;
94261
94276
  const TABS = [
94262
- { key: 'overview', label: 'Overview' },
94263
- { key: 'location', label: 'Location' },
94264
- { key: 'amenities', label: 'Amenities' },
94265
- { key: 'rooms', label: 'Rooms' },
94266
- { key: 'contact', label: 'Contact Us' },
94277
+ { key: 'overview', tKey: 'kiwi.infoModal.tab.overview' },
94278
+ { key: 'location', tKey: 'kiwi.infoModal.tab.location' },
94279
+ { key: 'amenities', tKey: 'kiwi.infoModal.tab.amenities' },
94280
+ { key: 'rooms', tKey: 'kiwi.infoModal.tab.rooms' },
94281
+ { key: 'contact', tKey: 'kiwi.infoModal.tab.contactUs' },
94267
94282
  ];
94268
- const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchPropertyAvailability, availabilityRequest, searchDestination = '', searchCheckIn = '', searchCheckOut = '', searchAdults = 2, searchChildren = 0, searchCitySuggestions, onSearchDestinationChange, onSearchCitySelect, onSearchCheckInChange, onSearchCheckOutChange, onSearchAdultsChange, onSearchChildrenChange, onSearch, onBookNow, onCreateReservation, onReservationCreated, generateExternalId, isFavorite, onFavoriteToggle, showVisaBadge, dayBadgeText, onDayBadgeRemove, onShare, topOffset = '0px', }) => {
94283
+ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchPropertyAvailability, availabilityRequest, searchDestination = '', searchCheckIn = '', searchCheckOut = '', searchAdults = 2, searchChildren = 0, searchCitySuggestions, onSearchDestinationChange, onSearchCitySelect, onSearchCheckInChange, onSearchCheckOutChange, onSearchAdultsChange, onSearchChildrenChange, onSearch, onBookNow, onCreateReservation, onReservationCreated, generateExternalId, isFavorite, onFavoriteToggle, showVisaBadge, dayBadgeText, onDayBadgeRemove, onShare, topOffset = '0px', onRoomsTabView, onRoomAvailabilitySearch, onRateDetailOpen, onSeeMoreDetails, onBookNowClick, onReservationFailed, t, }) => {
94269
94284
  var _a, _b;
94270
94285
  const [propertyDetail, setPropertyDetail] = (0, react_1.useState)(undefined);
94271
94286
  const [loadingDetail, setLoadingDetail] = (0, react_1.useState)(false);
@@ -94340,6 +94355,8 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94340
94355
  const triggerAvailabilityFetch = (checkIn, checkOut, adults, children) => {
94341
94356
  if (!fetchPropertyAvailability || !hotel.code || !checkIn || !checkOut)
94342
94357
  return;
94358
+ if (onRoomAvailabilitySearch)
94359
+ onRoomAvailabilitySearch(hotel, checkIn, checkOut, adults, children);
94343
94360
  setLoadingAvailability(true);
94344
94361
  setAvailabilityData(undefined);
94345
94362
  fetchPropertyAvailability(hotel.code, { in_date: checkIn, out_date: checkOut, adults, children })
@@ -94352,6 +94369,8 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94352
94369
  var _a, _b;
94353
94370
  if (activeTab !== 'rooms')
94354
94371
  return;
94372
+ if (onRoomsTabView)
94373
+ onRoomsTabView(hotel);
94355
94374
  const checkIn = (availabilityRequest === null || availabilityRequest === void 0 ? void 0 : availabilityRequest.in_date) || internalCheckIn;
94356
94375
  const checkOut = (availabilityRequest === null || availabilityRequest === void 0 ? void 0 : availabilityRequest.out_date) || internalCheckOut;
94357
94376
  const adults = (_a = availabilityRequest === null || availabilityRequest === void 0 ? void 0 : availabilityRequest.adults) !== null && _a !== void 0 ? _a : internalAdults;
@@ -94459,14 +94478,14 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94459
94478
  setMobileTouchStartX(null);
94460
94479
  } },
94461
94480
  react_1.default.createElement("img", { src: imageUrls[photoIndex], alt: data.title, className: KiwiHotelInfoModal_scss_1.default.mobileCarouselImg, loading: "lazy" }),
94462
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileCloseBtn, onClick: onClose, "aria-label": "Close" },
94481
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileCloseBtn, onClick: onClose, "aria-label": t('kiwi.common.close') },
94463
94482
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94464
94483
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }))),
94465
94484
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.mobileTopRight },
94466
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileIconBtn, onClick: () => onFavoriteToggle === null || onFavoriteToggle === void 0 ? void 0 : onFavoriteToggle(hotel), "aria-label": "Favorite" },
94485
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileIconBtn, onClick: () => onFavoriteToggle === null || onFavoriteToggle === void 0 ? void 0 : onFavoriteToggle(hotel), "aria-label": t('kiwi.infoModal.favorite') },
94467
94486
  react_1.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: isFavorite ? '#e11d48' : 'none', stroke: isFavorite ? '#e11d48' : '#111827', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
94468
94487
  react_1.default.createElement("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" }))),
94469
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileIconBtn, onClick: () => onShare === null || onShare === void 0 ? void 0 : onShare(hotel), "aria-label": "Share" },
94488
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileIconBtn, onClick: () => onShare === null || onShare === void 0 ? void 0 : onShare(hotel), "aria-label": t('kiwi.infoModal.share') },
94470
94489
  react_1.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "#111827", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
94471
94490
  react_1.default.createElement("path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" }),
94472
94491
  react_1.default.createElement("polyline", { points: "16 6 12 2 8 6" }),
@@ -94485,18 +94504,18 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94485
94504
  })));
94486
94505
  })()))),
94487
94506
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.closeRow },
94488
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": "Close" },
94507
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.closeBtn, onClick: onClose, "aria-label": t('kiwi.common.close') },
94489
94508
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94490
94509
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })))),
94491
94510
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.titleRow },
94492
94511
  react_1.default.createElement("h2", { className: KiwiHotelInfoModal_scss_1.default.hotelName }, data.title),
94493
94512
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.headerActions },
94494
- onShare && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.iconBtn, onClick: () => onShare(hotel), "aria-label": "Share" },
94513
+ onShare && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.iconBtn, onClick: () => onShare(hotel), "aria-label": t('kiwi.infoModal.share') },
94495
94514
  react_1.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "#111827", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
94496
94515
  react_1.default.createElement("path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" }),
94497
94516
  react_1.default.createElement("polyline", { points: "16 6 12 2 8 6" }),
94498
94517
  react_1.default.createElement("line", { x1: "12", y1: "2", x2: "12", y2: "15" })))),
94499
- onFavoriteToggle && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.iconBtn, onClick: () => onFavoriteToggle(hotel), "aria-label": "Favorite" },
94518
+ onFavoriteToggle && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.iconBtn, onClick: () => onFavoriteToggle(hotel), "aria-label": t('kiwi.infoModal.favorite') },
94500
94519
  react_1.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: isFavorite ? '#e11d48' : 'none', stroke: isFavorite ? '#e11d48' : '#111827', strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
94501
94520
  react_1.default.createElement("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })))))),
94502
94521
  locationText && react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.hotelLocation }, locationText),
@@ -94540,17 +94559,17 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94540
94559
  e.stopPropagation();
94541
94560
  setPhotoIndex(0);
94542
94561
  setPhotosOpen(true);
94543
- } }, "Show all photos")))),
94562
+ } }, t('kiwi.infoModal.showAllPhotos'))))),
94544
94563
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceBlock },
94545
94564
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceLeft },
94546
94565
  showVisaBadge && (react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.visaBadge, onClick: (e) => {
94547
94566
  e.stopPropagation();
94548
94567
  setVisaModalOpen(true);
94549
- }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": "Visa Premium Benefits" })),
94568
+ }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": t('kiwi.card.visaPremiumBenefits') })),
94550
94569
  hasSpecialOffer && (react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.specialOffersBtn, onClick: (e) => {
94551
94570
  e.stopPropagation();
94552
94571
  setOffersModalOpen(true);
94553
- }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": "Special Offers" }))),
94572
+ }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": t('kiwi.common.specialOffers') }))),
94554
94573
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceRight },
94555
94574
  formattedPrice && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceValue },
94556
94575
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.priceSymbol }, (0, currencySymbol_1.getCurrencySymbol)(currency)),
@@ -94558,11 +94577,12 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94558
94577
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.priceUnit },
94559
94578
  " ",
94560
94579
  currency,
94561
- "/night"))),
94562
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.findRoomBtn, onClick: handleFindRoom }, "Find a Room"))),
94580
+ "/",
94581
+ t('kiwi.common.night')))),
94582
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.findRoomBtn, onClick: handleFindRoom }, t('kiwi.infoModal.findRoom')))),
94563
94583
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.mobileFindRoomRow },
94564
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileFindRoomBtn, onClick: handleFindRoom }, "Find a Room")),
94565
- react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.tabs }, TABS.map((tab) => (react_1.default.createElement("button", { key: tab.key, type: "button", className: `${KiwiHotelInfoModal_scss_1.default.tab} ${activeTab === tab.key ? KiwiHotelInfoModal_scss_1.default.tabActive : ''}`, onClick: () => setActiveTab(tab.key) }, tab.label)))),
94584
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileFindRoomBtn, onClick: handleFindRoom }, t('kiwi.infoModal.findRoom'))),
94585
+ react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.tabs }, TABS.map((tab) => (react_1.default.createElement("button", { key: tab.key, type: "button", className: `${KiwiHotelInfoModal_scss_1.default.tab} ${activeTab === tab.key ? KiwiHotelInfoModal_scss_1.default.tabActive : ''}`, onClick: () => setActiveTab(tab.key) }, t(tab.tKey))))),
94566
94586
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.tabContent },
94567
94587
  activeTab === 'overview' && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.overview },
94568
94588
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.quickInfo },
@@ -94573,7 +94593,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94573
94593
  react_1.default.createElement("pattern", { id: "icon-rooms", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
94574
94594
  react_1.default.createElement("use", { xlinkHref: "#icon-rooms-img", transform: "scale(0.01)" })),
94575
94595
  react_1.default.createElement("image", { id: "icon-rooms-img", width: "100", height: "100", preserveAspectRatio: "none", xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEL0lEQVR4nO3cz4scRRQH8Le4m52pmuzsq35vJprREY344yJGb+JNED14EFRU8JYFjf+CCt4VxNPmpOSkCP4APYgXox7UCB4U9CBJREVXDZgI/oiovO6K0UCYZcN0v+75fqAOe9juev3tru7pqhkiAAAAAAAAAAAAAAAAAIC6LfeL4pZ+UdwdWA4Elg0n7UDZJ5GbrY+dPy0GKd0QWV4ISX+KSf/23IL1keX5QVFcRx20K7A8F5P+ea5g+TSyvhaTHopJN520Q9anwPrZf8I5E1iftRqoC4bDIYck7+bifrfiVoejq8i5tTW9Op9Ef+Qr5h2rhVpuObC8XYUhx8O63kgtE4ZyU0x6ogyF5a1W31si61NlGKzf9FPaSy3VT2kSWb/NQ+0T1EZB5NLI8ktM+teA9VZqucG63Ga1BJbTQXUPtU1I8mQee1+kjggsL+er5HFqm5jkk+reMbqdOiKw3pGH4I+pVabTnl3ekeVXIlqh7tgVk/xmtRHtW6W2sMfa/GT1JXVMTHLMalsdjq+ktggi+9t5ac9mNZX3EZH91Bb2LigHcpQ6JrIezYHY+652QCDOIBBnEIgzCMQZBNLSQHrMl9vriMB6auaEEeupyPLK7qK4drv9mMf2O/uUVR6sHcwchqQn7X9n9WFe2+9sIGdf1O1wevWlmX2Y0/Y7HMjsYSReeHj5eWYf5rT9zgay04MVc5vVh3ltv9WB2Hhs8+khyZYtFrjYgxSba2eshqoWPdmmQJYiy/3nrdroZAtWI8t9VjN5ZNOaMemb5zotxwPrMzZBVb6qnk571FbTac9qsFqqmqpFD7m9EUejMXmyW+QaC6A6c+T7AesjHZuYOt/KYF0ftVrzyXdsTXUfedAvistsVUnZMdYP7W9aEP2U9kbWj3LtX9vCjqb7tBySvF/dwOU9mkz6tGgmk/7/jgHRJY31JRZ6MI+jJ+J4PKIFFUejcUz6lR2LPFw3dmb8WHYi6T204AZJ781XyVYjDzAh6cN57PzA7aNfvZbsHloek/XioZr3XX4Sfr3ceaEHa9+5UzHpY9VJKq/Wve+ls29St/PmdVH0mK/Iw9YPtY4a+Sa2rZd8iyawnC7vq4M9Wu83oapAPq9tpy0RWL+oHnTS9fXttMPrri5WI2+DEciFIRBnEIgzCMQZBOIMAnEGgTiDQJxBIM4gEGcQiDMIxBkE4gwCcQaBONNIIJigcjZBlRfIbf27trX5n+bbdNLKtc2B5bvaF8wFlrtsTr3pVejRWbNjEljupCbYakVbIFb+xGqSw9WKCz3i4OdeN2ppSY/kVSaH7e9ysZyXFZzWoXyWbNKCiNUwZUPUBnmDQJxBIM4gEGcQiDMIxJnIxYP5sfdpWhCh+gKorXZ/gBxasa8Jd+H30bfLarXPHh3/gisAAAAAAAAAAAAAAAAAUF3+Aas4nOGFV3mWAAAAAElFTkSuQmCC" }))),
94576
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickLabel }, "Rooms & Suites"),
94596
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickLabel }, t('kiwi.common.roomsSuites')),
94577
94597
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickValue }, roomCount))),
94578
94598
  settings && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.quickRow },
94579
94599
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 22 22", fill: "none", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", className: KiwiHotelInfoModal_scss_1.default.quickIcon },
@@ -94582,7 +94602,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94582
94602
  react_1.default.createElement("pattern", { id: "icon-setting", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
94583
94603
  react_1.default.createElement("use", { xlinkHref: "#icon-setting-img", transform: "scale(0.01)" })),
94584
94604
  react_1.default.createElement("image", { id: "icon-setting-img", width: "100", height: "100", preserveAspectRatio: "none", xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAISklEQVR4nO2dC4wlRRVAa2d2Z+ZV9UzPvX3vezvL6ABZDd/ITwHBxA+IhEWM0ZCQaIxAxAgECJ8ECfIJAkaQn0ICSPhIUEJUFIkiiSImYiDhJxqVP2RRYBM+Cyzsh9zq6rdvZtjZ9/Z1v349756kk5ed7urqulX3Vt26t9YYRVEURVEURVEURVEURVEURVEUpVDGAD7sgM9zwA9Z5Fcd8jqH/KxFvsVh/WBt/t6xxCKd5YDecsibtnRZoHtqSbJCBVMsQxb5Z6HR33XI10ST9CkAiI1ZORoh7myRzrRIL/t7gJ8fjRvbq1AKwgGfE3r/S7Uk+fiW7oui5WyR/uLvRXpUhKVCyZnRuLFDsBPrI+ADtnY/Ik5Y4H+lAuTTeiUQB43dLPBlFulxB/SmXPJb/k3+ZhYL/oN8j+db2n4G+fPZiIqQv2KMGSmwiiMW6ccOecMCtm29Bbqy4Hr0Bof0ZOjth3Q4AXhkc4PQM7Wk/qUCqjdige8N73jHAl9ew8a+ptFwcslvEUQY4dJB/lhtoczMjDnkjfIxqQFvn/HxFYlDOtEiPdYimB/IBCGv6oWRIZOIF+wkf2yL98W8h9wThHKFqSq1yeTw9IPp7S6KGXLIJ2S91CFdlEfdxC6IKvIjYwFhZNiY9sxsoYPGrqZqOOTj0w/2ver2bsuzwIe0qI5Dc7NtwJe3/wxdFZ651FQJi/yNoKo2WqTvGWOW5lGuAzolTIn/a4wZ7qqOwP+QsmqIn2j3mRrW9wvvf8xUhShJdhIVJRWPgL+dc/HDFvjfviGT+hHdFGSBX5dymDlq95kkScbDCHndVAWHdHcwlNcXUb4FPjXYpRu6LGfxC0SMY2bEo2iKCnlH7I2rNMo/81FZjX3bfWYM6vtXSmU5pAtDhW8u6h0AEAeBvNZNORb4R51OY7NpskW+xFQBi/TX0FhfKO4tK0fDumRdN6XI1LU57Y15j63db4n2arqAEHcxVcAiveIbq15vFPWO0bixfbBRL3ZbVliFpwvDBYTihQH8Yuhsl5mqEFzrm4p0LzhIjgoLxLtzKG5E3CHZiBMBiZ0QQy+X/A5qKlv/3GOMWWaqguh1qXgcx5NFvcMh/y404Ak5FSlCuSJbxG7hei+MjOoIY9bMJUn2KaJ8lySf9gtOoDfznsWJTZEVuMygLNAb/pLfyJdUxmbMRdYGQc+ennfZYwAfskD/Czr/nLzLX5TUkuSLLWuE3Lyy40QfscBPhDXO36rtAu8tyxzS08EAHpNHgTWoH+eA1gZD/rBrNOp5lDswZLMg75ro3k09nAlDFpuyvZtTNQcLi3xbUC+rZQ7f5eJtk+wY5lvDQWN6uiZz9ubWKNLZ4pjrtBiLdHYQ7E3FVHSgWDlqkX7SEgD3HwnzaffpiYkJbMZpJclniq3rABEBH5jti1ugP7S5sTTsgH/dElig5EkNcTsJ6Qnq5/cSwLCgNxfol8GQvzwa13dUaRSAbJVmQklVEV0oK/o4jkH8RpZob9nuzdSURfp/J3sVyrYJZVrU1kLB1i697hqbXD6jjdwjxoA/KQbfIj3aFIKkJwBdqaOiZFwQSNn1UAJOBdJfOBVIf+FUIP2FU4H0F04F0l84FUh/4VQgAyuQEQnrkR1ICVxwyL/x+YRIT1nkNSGEaV0aW0ZPOuAHZFNMsoMlz0VcPGYQcEUJRLK3kvrnxGdmke7PIvK7uDb4LWSg74dM4iWmovieKelpDuinFvlP4eSGNbMTLf3H/soi/9Am/LWw/dtJDsiQd1ACny4e5Q84oGCD3wYAvt4CnxEhf9lBfXfJEg69f5nPmY+mSDzMkjFskY6WNDqL/Od5AgV+qDInT4gLXYIcHPKdPsV4G3ulRV5jge4QNTPBvHLOa5aJ38shnST3hGM6Zvdo32h0scQad5rj+MEjLvmsD6oL+YapkPnrpk9ZaoEO8/vps3vTxuBEvLYGybfkoyQ+N/TKIb/dy7xcgtEk01Z6uNfdITFn9kVPy3Zu6LFr5x/LIfntdHWE/NWi0iFaUqnPyqIax4k+avqGRsNJL3XIz7U0znpRGxbpm9LY21p0FE2RVy1IV2fp1fMuCZQGOqaM81GaW9QFJSd1xszMmAQhNCPe0x76hOhn2SEsKl3OIp3pgB+cMzJec0A3hjSIXPIZ26oP4i7ZyDRlZ0plcbxhd+9+O0mrehzjGJW0BKBT/AyqZXIgO42SLSt7+T2oz9JMbZkyz7vKYmzFNsipPqZkakmywiGdnBrxWTbnGW/UY9pz0S5ss9N6HPJv+/G0nghxZwd8viz45hl84HPl74tGILL1GkJzXqpAWOcSv5YAuqoZ8bJZrT0itiiPiJZSBZKdfiBH9JlqMeywfpADvm7eegX4AbFFEoBROYGImgoj5DBTXUbS9ZJf6/hc9ZZF3n0yhe8k4qVcgYTpprgozGJgerom6xyL/It5rhbgBy3Sd7eWPaUCKQgJ1nNAR1rkn88ZOT4BKTgV95k7lVaB9GrRO0mrvCMyC/jePJV+ykdYEk3JrSqQ3jMsyaZyjFOreyjNOPYuI7UhJTIkszXxLs/1qZVSm0Vn1LsgVWmbtxZMGahAZuMS/k7ZAvm7vHyhw5AHCUs0VfbC8C6vslLP7sDDMlVOk5DeKkcgwBdU/qjUAnx74TCD0k6Mk7NG1uph+cY0/4MB4HNLEYgXCvKt2V5IUTuDFWCJnEufrUdKbQcfUeIDzNJcQQlKkLNIKnd0UadMT9ckZEhClMIuZRY7cKQpG8khzwz8wF5AqyWi0fQT8r8YBD36bHaa3KK9wHuDn5P8eQt0rD+wX1EURVEURVEURVEURVEURVEURTFb430lc29ePtlAogAAAABJRU5ErkJggg==" }))),
94585
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickLabel }, "Setting"),
94605
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickLabel }, t('kiwi.common.setting')),
94586
94606
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickValue }, settings))),
94587
94607
  styles && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.quickRow },
94588
94608
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 22 22", fill: "none", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", className: KiwiHotelInfoModal_scss_1.default.quickIcon },
@@ -94591,36 +94611,36 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94591
94611
  react_1.default.createElement("pattern", { id: "icon-style", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
94592
94612
  react_1.default.createElement("use", { xlinkHref: "#icon-style-img", transform: "scale(0.01)" })),
94593
94613
  react_1.default.createElement("image", { id: "icon-style-img", width: "100", height: "100", preserveAspectRatio: "none", xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAADNUlEQVR4nO2ZTWsTURSGp/WjzX3TpPfMuQlBJIIKguBCEFy4cyn+Bf9C6UqXLt26dOtfEBcuxG8qCIJudCOKKCIiIopf1Sp3Mi1DBGs1kzmZvA9cCJk09/Z9MmfuR5IQQgghhBBCCCGEEELGAtLOcSf6MLb4mrFXhFPtwetFSFiDhJ+Fdmne+90UMz62Q3TZ+fA+E+D1o/PhTGzxdXxvcE2X42cppkSaPhxzog+Kd8Ncu7tn/XpDZFd+12TXnQ+PWcZKoNVqifPhPCT8GIStT5zXE398rvjwKBezlknqdjtljG3amHUSTjnRN3m4XyF6Lun35//ib3c6H07D6+fsbpHwDqJLSZJsG8O464dTPQyvK4Xyc7WZpge2+j2tVtgLCZcLZe5+QzpHyxl1DWm324t5efo+eGiHF/Eu+d/vbSymJyH6tFjGms2ejmbU9WQmK09eX+ehfYti0jRdGFkPvZ6DD2ch+iUvY2/zMjY7sj7qABY7h5zo7Y3yJOE6fPdgWf0tqO6H1ysbZcyHe400PVJWf5NDt4v4kIaE1XxN8SovTzPj6H5QxsLzXEycwV3w3reTaWQojNVYnkSkVcmPIitjcQY3/h9F5VgtFxhz2ayeyXigzpQ+sbBAPuV8NilTzvbvU++Xo5h6V86kL8rciBan1dPvz2flqR7bFrND2zdZGYuTgWQSqOvGXmuLG5yVMy1b381NjgAssCOWI+f1w/qBUSxXcbc1qfch2VLhkOzT4H/eN1f1wBJ4vTt0hDq9zetK1T4S58O1yoMQG81JuFG1D0LIPzN8S2/6eZ9t8hVqcjY5mLg+zGIxLFCIrbBAIbbCAoXYCgsUYissUIitsEAhtsIChdgKCxRiKyxQiK2wQCG2wgKF2AoLFGIrLFCIrbBAIbbCAoXYCgsUYissUIitsEAhtsIChdgKCxRiKyzUXYgTvTM84GltTvSWBSG3qg4CRpqTcLNqH4QQQgghhBBCOlyZB1srd67MA1fuhBBCCCGEEEIIIYQQQgghhJCkHH4BQxHq21Gtu/0AAAAASUVORK5CYII=" }))),
94594
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickLabel }, "Style"),
94614
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickLabel }, t('kiwi.common.style')),
94595
94615
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickValue }, styles)))),
94596
94616
  description && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.descriptionBlock },
94597
94617
  react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.description }, visibleDescription),
94598
- isLongDescription && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.readMore, onClick: () => setDescriptionExpanded((prev) => !prev) }, descriptionExpanded ? 'Read less' : 'Read more')))),
94618
+ isLongDescription && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.readMore, onClick: () => setDescriptionExpanded((prev) => !prev) }, descriptionExpanded ? t('kiwi.infoModal.readLess') : t('kiwi.infoModal.readMore'))))),
94599
94619
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.section },
94600
94620
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.sectionHeader },
94601
94621
  react_1.default.createElement("svg", { className: KiwiHotelInfoModal_scss_1.default.sectionIcon, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94602
94622
  react_1.default.createElement("path", { d: "M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z" })),
94603
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.sectionTitle }, "Average Rating")),
94623
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.sectionTitle }, t('kiwi.infoModal.averageRating'))),
94604
94624
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.averageOverall },
94605
94625
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.averageCircle }, overallScore > 0 ? overallScore.toFixed(1) : '—'),
94606
94626
  localRating && (localRating.source || localRating.value) && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.localRating },
94607
94627
  localRating.source && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.localRatingSource }, localRating.source),
94608
94628
  localRating.value && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.localRatingValue }, localRating.value)))),
94609
- kiwiRating ? (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingGrid }, RATING_LABELS.map(({ key, label }) => {
94629
+ kiwiRating ? (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingGrid }, RATING_LABELS.map(({ key, tKey }) => {
94610
94630
  const value = parseFloat(kiwiRating[key]) || 0;
94611
94631
  const pct = Math.max(0, Math.min(100, (value / 10) * 100));
94612
94632
  return (react_1.default.createElement("div", { key: key, className: KiwiHotelInfoModal_scss_1.default.ratingRow },
94613
94633
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingHead },
94614
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.ratingLabel }, label),
94634
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.ratingLabel }, t(tKey)),
94615
94635
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.ratingValue }, value)),
94616
94636
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingBar },
94617
94637
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingFill, style: { width: `${pct}%` } }))));
94618
- }))) : loadingDetail ? (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.loadingHint }, "Loading ratings\u2026")) : null),
94638
+ }))) : loadingDetail ? (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.loadingHint }, t('kiwi.infoModal.loadingRatings'))) : null),
94619
94639
  benefitGroups.map((group) => (react_1.default.createElement("div", { key: group.title, className: KiwiHotelInfoModal_scss_1.default.section },
94620
94640
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.sectionHeader },
94621
94641
  group.title === 'VISA' ? (react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.visaCircle, "aria-label": "Visa" })) : (react_1.default.createElement("svg", { className: `${KiwiHotelInfoModal_scss_1.default.sectionIcon} ${KiwiHotelInfoModal_scss_1.default.sectionIconPrimary}`, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94622
94642
  react_1.default.createElement("path", { d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z" }))),
94623
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.sectionTitle }, group.title === 'VISA' ? 'Visa Premium Benefits' : `${group.title} Benefits`)),
94643
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.sectionTitle }, group.title === 'VISA' ? t('kiwi.card.visaPremiumBenefits') : `${group.title} Benefits`)),
94624
94644
  react_1.default.createElement("ul", { className: KiwiHotelInfoModal_scss_1.default.benefitsList }, group.benefits.map((benefit) => (react_1.default.createElement("li", { key: benefit, className: KiwiHotelInfoModal_scss_1.default.benefitItem },
94625
94645
  react_1.default.createElement("svg", { className: KiwiHotelInfoModal_scss_1.default.checkSimple, width: "16", height: "16", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" },
94626
94646
  react_1.default.createElement("polyline", { points: "20 6 9 17 4 12" })),
@@ -94630,7 +94650,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94630
94650
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationSectionHeader },
94631
94651
  react_1.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: KiwiHotelInfoModal_scss_1.default.locationIcon },
94632
94652
  react_1.default.createElement("path", { d: "M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z", fill: "#0B1215" })),
94633
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationSectionLabel }, "Address")),
94653
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationSectionLabel }, t('kiwi.infoModal.address'))),
94634
94654
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationAddressBlock },
94635
94655
  data.addressLine1 && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationAddressLine }, data.addressLine1),
94636
94656
  data.addressLine2 && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationAddressLine }, data.addressLine2),
@@ -94642,13 +94662,13 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94642
94662
  react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.locationDirectionsBtn, onClick: () => window.open(`https://www.google.com/maps/search/?api=1&query=${data.latitude},${data.longitude}`, '_blank', 'noopener,noreferrer') },
94643
94663
  react_1.default.createElement("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg" },
94644
94664
  react_1.default.createElement("path", { d: "M21.71 11.29l-9-9a.996.996 0 0 0-1.41 0l-9 9a.996.996 0 0 0 0 1.41l9 9c.39.39 1.02.39 1.41 0l9-9a.996.996 0 0 0 0-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z" })),
94645
- "Get directions"))),
94665
+ t('kiwi.infoModal.getDirections')))),
94646
94666
  data.locationDescription && react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationDivider }),
94647
94667
  data.locationDescription && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationSection },
94648
94668
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationSectionHeader },
94649
94669
  react_1.default.createElement("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: KiwiHotelInfoModal_scss_1.default.locationIcon },
94650
94670
  react_1.default.createElement("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z", fill: "#0B1215" })),
94651
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationSectionLabel }, "Information")),
94671
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationSectionLabel }, t('kiwi.infoModal.locationInfo'))),
94652
94672
  react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.locationDescription }, data.locationDescription))))),
94653
94673
  activeTab === 'amenities' && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.amenitiesGrid }, (((_a = propertyDetail === null || propertyDetail === void 0 ? void 0 : propertyDetail.facilities) === null || _a === void 0 ? void 0 : _a.length) ? propertyDetail.facilities : data.amenities || []).map((item) => (react_1.default.createElement("div", { key: item, className: KiwiHotelInfoModal_scss_1.default.amenityItem },
94654
94674
  react_1.default.createElement("svg", { className: KiwiHotelInfoModal_scss_1.default.amenityCheck, viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" },
@@ -94662,7 +94682,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94662
94682
  onSearchCheckInChange(v); }, onCheckOutChange: (v) => { setInternalCheckOut(v); if (onSearchCheckOutChange)
94663
94683
  onSearchCheckOutChange(v); }, onAdultsChange: (v) => { setInternalAdults(v); if (onSearchAdultsChange)
94664
94684
  onSearchAdultsChange(v); }, onChildrenChange: (v) => { setInternalChildren(v); if (onSearchChildrenChange)
94665
- onSearchChildrenChange(v); }, onSearch: handleRoomsSearch, t: (key) => key })),
94685
+ onSearchChildrenChange(v); }, onSearch: handleRoomsSearch, t: t })),
94666
94686
  (loadingAvailability || availabilityData !== undefined) && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.roomsTopBar },
94667
94687
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.currencyRow },
94668
94688
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
@@ -94677,31 +94697,35 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94677
94697
  react_1.default.createElement("svg", { viewBox: "0 0 50 50", xmlns: "http://www.w3.org/2000/svg" },
94678
94698
  react_1.default.createElement("circle", { cx: "25", cy: "25", r: "20" }))),
94679
94699
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.roomsLoadingText },
94680
- react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsLoadingTitle }, "Checking availability for"),
94700
+ react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsLoadingTitle }, t('kiwi.infoModal.checkingAvailability')),
94681
94701
  internalCheckIn && internalCheckOut && (react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsLoadingDates },
94682
94702
  new Date(internalCheckIn).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }),
94683
94703
  ' - ',
94684
94704
  new Date(internalCheckOut).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })))))) : !availabilityData || availabilityData.rooms.length === 0 ? (availabilityData !== undefined ? (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.roomsEmpty },
94685
- react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptyTitle }, "We're sorry. No rooms found for these dates."),
94686
- react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptySubtitle }, "Try one of the following options:"),
94705
+ react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptyTitle }, t('kiwi.infoModal.noRooms.title')),
94706
+ react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptySubtitle }, t('kiwi.infoModal.noRooms.tryOptions')),
94687
94707
  react_1.default.createElement("ol", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptyList },
94688
- react_1.default.createElement("li", null, "Change the dates in the fields above."),
94708
+ react_1.default.createElement("li", null, t('kiwi.infoModal.noRooms.changeDates')),
94689
94709
  react_1.default.createElement("li", null,
94690
94710
  "In some cases we may be able to find available rooms.",
94691
94711
  react_1.default.createElement("br", null),
94692
- "Call our agent at ",
94712
+ t('kiwi.infoModal.noRooms.callAgent'),
94713
+ " ",
94693
94714
  react_1.default.createElement("strong", null, "1-800-953-7392"),
94694
- " or",
94715
+ " ",
94716
+ t('kiwi.common.or'),
94695
94717
  ' ',
94696
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomsEmptyLink, onClick: () => window.open('https://www.visasignaturehotels.com/contact/rate', '_blank', 'noopener,noreferrer') }, "contact us"),
94718
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomsEmptyLink, onClick: () => window.open('https://www.visasignaturehotels.com/contact/rate', '_blank', 'noopener,noreferrer') }, t('kiwi.infoModal.noRooms.contactUs')),
94697
94719
  ' ',
94698
- "for assistance."),
94720
+ t('kiwi.infoModal.noRooms.forAssistance'),
94721
+ "."),
94699
94722
  react_1.default.createElement("li", null,
94700
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomsEmptyLink, onClick: () => window.open(`https://www.visasignaturehotels.com/booking/request/${hotel.code}`, '_blank', 'noopener,noreferrer') }, "Send an availability request"),
94723
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomsEmptyLink, onClick: () => window.open(`https://www.visasignaturehotels.com/booking/request/${hotel.code}`, '_blank', 'noopener,noreferrer') }, t('kiwi.infoModal.noRooms.sendRequest')),
94701
94724
  ' ',
94702
- "with your requested dates to the ",
94725
+ t('kiwi.infoModal.noRooms.requestDates'),
94726
+ " ",
94703
94727
  data.title,
94704
- ".")))) : (react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsHint }, "Enter your dates and guests above, then search to see available rooms."))) : (react_1.default.createElement(react_1.default.Fragment, null, availabilityData.rooms.map((room) => {
94728
+ ".")))) : (react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsHint }, t('kiwi.infoModal.noRooms.enterDates')))) : (react_1.default.createElement(react_1.default.Fragment, null, availabilityData.rooms.map((room) => {
94705
94729
  const roomImg = imageUrls[0] || '';
94706
94730
  const roomDescExpanded = expandedRoomDescKeys.has(room.code);
94707
94731
  const ROOM_DESC_MAX = 140;
@@ -94718,16 +94742,19 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94718
94742
  visibleRoomDesc,
94719
94743
  !roomDescExpanded && isLongRoomDesc && (react_1.default.createElement(react_1.default.Fragment, null,
94720
94744
  '… ',
94721
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomReadMore, onClick: () => setExpandedRoomDescKeys((prev) => { const next = new Set(prev); next.add(room.code); return next; }) }, "Read More"))))),
94745
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomReadMore, onClick: () => setExpandedRoomDescKeys((prev) => { const next = new Set(prev); next.add(room.code); return next; }) }, t('kiwi.infoModal.readMore')))))),
94722
94746
  roomDescExpanded && (react_1.default.createElement(react_1.default.Fragment, null,
94723
94747
  room.sizeM2 && (react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomSize },
94724
- react_1.default.createElement("strong", null, "Room Size:"),
94748
+ react_1.default.createElement("strong", null,
94749
+ t('kiwi.infoModal.roomSize'),
94750
+ ":"),
94725
94751
  " ",
94726
94752
  room.sizeM2,
94727
- " m\u00B2",
94728
- room.sizeFt2 ? ` | ${room.sizeFt2} ft²` : '')),
94729
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomReadMore, onClick: () => setExpandedRoomDescKeys((prev) => { const next = new Set(prev); next.delete(room.code); return next; }) }, "Close"))),
94730
- react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomDisclaimer }, "*Actual room may differ from image shown"))),
94753
+ " ",
94754
+ t('kiwi.infoModal.squareMeters'),
94755
+ room.sizeFt2 ? ` | ${room.sizeFt2} ${t('kiwi.infoModal.squareFeet')}` : '')),
94756
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.roomReadMore, onClick: () => setExpandedRoomDescKeys((prev) => { const next = new Set(prev); next.delete(room.code); return next; }) }, t('kiwi.common.close')))),
94757
+ react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomDisclaimer }, t('kiwi.infoModal.roomDisclaimer')))),
94731
94758
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.rateList }, (room.rates || []).map((rate) => {
94732
94759
  var _a, _b, _c, _d, _e, _f, _g;
94733
94760
  const nightlyPrice = parseFloat((_a = rate.price) === null || _a === void 0 ? void 0 : _a.inclusiveNightlyAverage) || 0;
@@ -94769,28 +94796,32 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94769
94796
  new Intl.NumberFormat('en-US').format(Math.round(nightlyPrice)),
94770
94797
  " ",
94771
94798
  rateCurrency),
94772
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.ratePriceLabelRow, onClick: () => setRateDetailInfo({ rate, currency: rateCurrency }) },
94773
- react_1.default.createElement("span", null, "Average nightly rate"),
94799
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.ratePriceLabelRow, onClick: () => { setRateDetailInfo({ rate, currency: rateCurrency }); if (onRateDetailOpen)
94800
+ onRateDetailOpen(hotel, room, rate); } },
94801
+ react_1.default.createElement("span", null, t('kiwi.infoModal.avgNightlyRate')),
94774
94802
  react_1.default.createElement("svg", { className: KiwiHotelInfoModal_scss_1.default.ratePriceInfoIcon, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", xmlns: "http://www.w3.org/2000/svg" },
94775
94803
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
94776
94804
  react_1.default.createElement("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
94777
94805
  react_1.default.createElement("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" }))))),
94778
94806
  (onCreateReservation || onBookNow) && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.bookNowBtn, onClick: () => {
94807
+ if (onBookNowClick)
94808
+ onBookNowClick(hotel, room, rate);
94779
94809
  if (onCreateReservation) {
94780
94810
  setBookingModal({ room, rate, currency: rateCurrency });
94781
94811
  }
94782
94812
  else if (onBookNow) {
94783
94813
  onBookNow(hotel, room, rate);
94784
94814
  }
94785
- } }, "Book Now")))),
94786
- (rate.description || (rate.policies && Object.values(rate.policies).some(Boolean))) && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.seeMoreBtn, onClick: () => setRoomRateModal({ roomTitle: room.title, rate, currency: rateCurrency }) },
94787
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.seeMoreDesktop }, "See more details"),
94788
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.seeMoreMobile }, "More Info")))));
94815
+ } }, t('kiwi.common.bookNow'))))),
94816
+ (rate.description || (rate.policies && Object.values(rate.policies).some(Boolean))) && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.seeMoreBtn, onClick: () => { setRoomRateModal({ roomTitle: room.title, rate, currency: rateCurrency }); if (onSeeMoreDetails)
94817
+ onSeeMoreDetails(hotel, room, rate); } },
94818
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.seeMoreDesktop }, t('kiwi.infoModal.seeMoreDetails')),
94819
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.seeMoreMobile }, t('kiwi.infoModal.moreInfo'))))));
94789
94820
  }))));
94790
94821
  }))))),
94791
94822
  activeTab === 'contact' && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactTab },
94792
- react_1.default.createElement("h3", { className: KiwiHotelInfoModal_scss_1.default.contactTitle }, "Your Complimentary 24/7 Concierge"),
94793
- react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.contactDesc }, "Your complimentary Visa Signature Concierge can handle life's details, so you don't have to. From restaurant recommendations or reservations to vacation-planning assistance, we're at your service 24 hours a day."),
94823
+ react_1.default.createElement("h3", { className: KiwiHotelInfoModal_scss_1.default.contactTitle }, t('kiwi.infoModal.contact.title')),
94824
+ react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.contactDesc }, t('kiwi.infoModal.contact.description')),
94794
94825
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSection },
94795
94826
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSectionHeader },
94796
94827
  react_1.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: KiwiHotelInfoModal_scss_1.default.contactIcon },
@@ -94799,21 +94830,21 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94799
94830
  react_1.default.createElement("defs", null,
94800
94831
  react_1.default.createElement("clipPath", { id: "clip-phone" },
94801
94832
  react_1.default.createElement("rect", { width: "16", height: "16", fill: "white" })))),
94802
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactSectionLabel }, "Phone")),
94833
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactSectionLabel }, t('kiwi.infoModal.contact.phone'))),
94803
94834
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneList },
94804
94835
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneRow },
94805
94836
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneNumber }, "1-800-953-7392"),
94806
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneDesc }, "within U.S.")),
94837
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneDesc }, t('kiwi.infoModal.contact.withinUS'))),
94807
94838
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneRow },
94808
94839
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneNumber }, "1-630-350-4551"),
94809
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneDesc }, "collect outside U.S.")))),
94840
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneDesc }, t('kiwi.infoModal.contact.outsideUS'))))),
94810
94841
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSection },
94811
94842
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSectionHeader },
94812
94843
  react_1.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: KiwiHotelInfoModal_scss_1.default.contactIcon },
94813
94844
  react_1.default.createElement("path", { d: "M2.66683 2.66602H13.3335C14.0668 2.66602 14.6668 3.26602 14.6668 3.99935V11.9993C14.6668 12.7327 14.0668 13.3327 13.3335 13.3327H2.66683C1.9335 13.3327 1.3335 12.7327 1.3335 11.9993V3.99935C1.3335 3.26602 1.9335 2.66602 2.66683 2.66602Z", stroke: "#0B1215", strokeLinecap: "round", strokeLinejoin: "round" }),
94814
94845
  react_1.default.createElement("path", { d: "M14.6668 4L8.00016 8.66667L1.3335 4", stroke: "#0B1215", strokeLinecap: "round", strokeLinejoin: "round" })),
94815
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactSectionLabel }, "Contact Form")),
94816
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.contactUsBtn, onClick: () => window.open('https://www.visasignaturehotels.com/contact/rate', '_blank', 'noopener,noreferrer') }, "Contact Us")))))),
94846
+ react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactSectionLabel }, t('kiwi.infoModal.contact.contactForm'))),
94847
+ react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.contactUsBtn, onClick: () => window.open('https://www.visasignaturehotels.com/contact/rate', '_blank', 'noopener,noreferrer') }, t('kiwi.infoModal.tab.contactUs'))))))),
94817
94848
  photosOpen && imageUrls.length > 0 && (
94818
94849
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
94819
94850
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.photosOverlay, onClick: (e) => {
@@ -94827,7 +94858,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94827
94858
  react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.photosClose, onClick: (e) => {
94828
94859
  e.stopPropagation();
94829
94860
  setPhotosOpen(false);
94830
- }, "aria-label": "Close" },
94861
+ }, "aria-label": t('kiwi.common.close') },
94831
94862
  react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#111827" },
94832
94863
  react_1.default.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })))),
94833
94864
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.photosBody },
@@ -94843,19 +94874,19 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94843
94874
  react_1.default.createElement("button", { type: "button", className: `${KiwiHotelInfoModal_scss_1.default.photosNav} ${KiwiHotelInfoModal_scss_1.default.photosNavPrev}`, onClick: (e) => {
94844
94875
  e.stopPropagation();
94845
94876
  goToPrevPhoto();
94846
- }, "aria-label": "Previous" },
94877
+ }, "aria-label": t('kiwi.infoModal.previous') },
94847
94878
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "#111827", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
94848
94879
  react_1.default.createElement("polyline", { points: "15 18 9 12 15 6" }))),
94849
94880
  react_1.default.createElement("img", { src: imageUrls[photoIndex], alt: `${data.title} ${photoIndex + 1}`, className: KiwiHotelInfoModal_scss_1.default.photosMainImg }),
94850
94881
  react_1.default.createElement("button", { type: "button", className: `${KiwiHotelInfoModal_scss_1.default.photosNav} ${KiwiHotelInfoModal_scss_1.default.photosNavNext}`, onClick: (e) => {
94851
94882
  e.stopPropagation();
94852
94883
  goToNextPhoto();
94853
- }, "aria-label": "Next" },
94884
+ }, "aria-label": t('kiwi.infoModal.next') },
94854
94885
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "#111827", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" },
94855
94886
  react_1.default.createElement("polyline", { points: "9 18 15 12 9 6" })))))))),
94856
- visaModalOpen && react_1.default.createElement(KiwiVisaBenefitsModal_1.default, { onClose: () => setVisaModalOpen(false) }),
94857
- offersModalOpen && (react_1.default.createElement(KiwiSpecialOffersModal_1.default, { hotelName: data.title, specialOffers: loadingDetail ? undefined : ((_b = propertyDetail === null || propertyDetail === void 0 ? void 0 : propertyDetail.specialOffers) !== null && _b !== void 0 ? _b : []), onClose: () => setOffersModalOpen(false) })),
94858
- roomRateModal && (react_1.default.createElement(KiwiRoomRateModal_1.default, { roomTitle: roomRateModal.roomTitle, rate: roomRateModal.rate, currency: roomRateModal.currency, nightCount: nightCount, onClose: () => setRoomRateModal(undefined), onBookNow: onCreateReservation || onBookNow ? () => {
94887
+ visaModalOpen && react_1.default.createElement(KiwiVisaBenefitsModal_1.default, { onClose: () => setVisaModalOpen(false), t: t }),
94888
+ offersModalOpen && (react_1.default.createElement(KiwiSpecialOffersModal_1.default, { hotelName: data.title, specialOffers: loadingDetail ? undefined : ((_b = propertyDetail === null || propertyDetail === void 0 ? void 0 : propertyDetail.specialOffers) !== null && _b !== void 0 ? _b : []), onClose: () => setOffersModalOpen(false), t: t })),
94889
+ roomRateModal && (react_1.default.createElement(KiwiRoomRateModal_1.default, { roomTitle: roomRateModal.roomTitle, rate: roomRateModal.rate, currency: roomRateModal.currency, nightCount: nightCount, onClose: () => setRoomRateModal(undefined), t: t, onBookNow: onCreateReservation || onBookNow ? () => {
94859
94890
  const { rate: rr, currency: rc } = roomRateModal;
94860
94891
  const matchingRoom = availabilityData === null || availabilityData === void 0 ? void 0 : availabilityData.rooms.find((r) => { var _a; return (_a = r.rates) === null || _a === void 0 ? void 0 : _a.some((rt) => rt.code === rr.code); });
94861
94892
  setRoomRateModal(undefined);
@@ -94873,8 +94904,8 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94873
94904
  onReservationCreated(res.data, req.external_id);
94874
94905
  }
94875
94906
  return res;
94876
- } })),
94877
- rateDetailInfo && (react_1.default.createElement(KiwiRateDetailModal_1.default, { rate: rateDetailInfo.rate, currency: rateDetailInfo.currency, nightCount: nightCount, onClose: () => setRateDetailInfo(undefined) }))), document.body);
94907
+ }, onReservationFailed: onReservationFailed ? (msg) => onReservationFailed(hotel, bookingModal.room, bookingModal.rate, msg) : undefined, t: t })),
94908
+ rateDetailInfo && (react_1.default.createElement(KiwiRateDetailModal_1.default, { rate: rateDetailInfo.rate, currency: rateDetailInfo.currency, nightCount: nightCount, onClose: () => setRateDetailInfo(undefined), t: t }))), document.body);
94878
94909
  };
94879
94910
  exports.default = KiwiHotelInfoModal;
94880
94911