@tripian/react 9.3.24 → 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, onReservationFailed, }) => {
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,14 +61723,14 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61717
61723
  setStep(3);
61718
61724
  }
61719
61725
  else {
61720
- const msg = 'Reservation could not be completed. Please try again.';
61726
+ const msg = t('kiwi.booking.error.failed');
61721
61727
  setApiError(msg);
61722
61728
  if (onReservationFailed)
61723
61729
  onReservationFailed(msg);
61724
61730
  }
61725
61731
  }
61726
61732
  catch (err) {
61727
- const msg = 'An error occurred. Please check your details and try again.';
61733
+ const msg = t('kiwi.booking.error.generic');
61728
61734
  setApiError(msg);
61729
61735
  if (onReservationFailed)
61730
61736
  onReservationFailed(msg);
@@ -61748,85 +61754,85 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61748
61754
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.headerInfo },
61749
61755
  react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.headerTitle }, hotelName),
61750
61756
  react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.headerSub }, roomTitle)),
61751
- 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') },
61752
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" },
61753
61759
  react_1.default.createElement("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
61754
61760
  react_1.default.createElement("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))),
61755
61761
  step !== 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryBar },
61756
61762
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61757
- 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')),
61758
61764
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, fmtDate(checkIn))),
61759
61765
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61760
- 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')),
61761
61767
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, fmtDate(checkOut))),
61762
61768
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61763
- 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')),
61764
61770
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, nightCount)),
61765
61771
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61766
- 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')),
61767
61773
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue }, guestCountLabel)),
61768
61774
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.summaryItem },
61769
- 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')),
61770
61776
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.summaryValue },
61771
61777
  fmtPrice(total, currency),
61772
61778
  " ",
61773
61779
  currency)))),
61774
61780
  step !== 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.steps },
61775
- 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"),
61776
- 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')))),
61777
61783
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.body },
61778
61784
  apiError && react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.errorBanner }, apiError),
61779
61785
  step === 1 && (react_1.default.createElement(react_1.default.Fragment, null,
61780
- 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')),
61781
61787
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61782
- react_1.default.createElement(Field, { label: "Title", required: true },
61783
- 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))))),
61784
61790
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61785
- 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 },
61786
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" })),
61787
- 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 },
61788
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" }))),
61789
- 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 },
61790
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" })),
61791
61797
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61792
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Address"),
61793
- 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 },
61794
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" })),
61795
- react_1.default.createElement(Field, { label: "Address Line 2" },
61801
+ react_1.default.createElement(Field, { label: t('kiwi.booking.addressLine2') },
61796
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)" })),
61797
61803
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61798
- 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 },
61799
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" })),
61800
- react_1.default.createElement(Field, { label: "State / Province" },
61806
+ react_1.default.createElement(Field, { label: t('kiwi.booking.stateProvince') },
61801
61807
  react_1.default.createElement("input", { className: KiwiBookingModal_scss_1.default.input, value: lead.state, onChange: (e) => handleLeadChange('state', e.target.value), placeholder: "NY" }))),
61802
61808
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61803
- 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 },
61804
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" })),
61805
- 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 },
61806
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" }))),
61807
61813
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61808
- 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')),
61809
61815
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row3 },
61810
- 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 },
61811
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" })),
61812
- react_1.default.createElement(Field, { label: "Area Code" },
61818
+ react_1.default.createElement(Field, { label: t('kiwi.booking.areaCode') },
61813
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" })),
61814
- 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 },
61815
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" }))),
61816
61822
  hasChildren && (react_1.default.createElement(react_1.default.Fragment, null,
61817
61823
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61818
- 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')),
61819
61825
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row }, childrenAges.map((age, i) => (
61820
61826
  // eslint-disable-next-line react/no-array-index-key
61821
- 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}`] },
61822
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" }))))))))),
61823
61829
  step === 2 && (react_1.default.createElement(react_1.default.Fragment, null,
61824
- react_1.default.createElement("p", { className: KiwiBookingModal_scss_1.default.sectionTitle }, "Payment Details"),
61825
- 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 },
61826
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" })),
61827
- react_1.default.createElement(Field, { label: "Card Type", required: true },
61833
+ react_1.default.createElement(Field, { label: t('kiwi.booking.cardType'), required: true },
61828
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)))),
61829
- 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 },
61830
61836
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.cardInputWrap },
61831
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) => {
61832
61838
  const raw = e.target.value.replace(/\D/g, '').slice(0, 19);
@@ -61834,43 +61840,43 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61834
61840
  handlePaymentChange('card_number', formatted);
61835
61841
  }, placeholder: "0000 0000 0000 0000", inputMode: "numeric" }))),
61836
61842
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61837
- 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 },
61838
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" }))),
61839
61845
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.row },
61840
- react_1.default.createElement(Field, { label: "Expiry Month", required: true },
61846
+ react_1.default.createElement(Field, { label: t('kiwi.booking.expiryMonth'), required: true },
61841
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)))),
61842
- react_1.default.createElement(Field, { label: "Expiry Year", required: true },
61848
+ react_1.default.createElement(Field, { label: t('kiwi.booking.expiryYear'), required: true },
61843
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))))),
61844
61850
  react_1.default.createElement("hr", { className: KiwiBookingModal_scss_1.default.sectionDivider }),
61845
- react_1.default.createElement(Field, { label: "Message to Hotel" },
61851
+ react_1.default.createElement(Field, { label: t('kiwi.booking.messageToHotel') },
61846
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..." })))),
61847
61853
  step === 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.success },
61848
61854
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.successIcon },
61849
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" },
61850
61856
  react_1.default.createElement("polyline", { points: "20 6 9 17 4 12" }))),
61851
- react_1.default.createElement("h2", { className: KiwiBookingModal_scss_1.default.successTitle }, "Booking Confirmed!"),
61852
- 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')),
61853
61859
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmCard },
61854
61860
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61855
- 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')),
61856
61862
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmId }, confirmationId)),
61857
61863
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61858
- 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')),
61859
61865
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, hotelName)),
61860
61866
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61861
- 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')),
61862
61868
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, roomTitle)),
61863
61869
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61864
- 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')),
61865
61871
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, fmtDate(checkIn))),
61866
61872
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61867
- 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')),
61868
61874
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, fmtDate(checkOut))),
61869
61875
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61870
- 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')),
61871
61877
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue }, guestCountLabel)),
61872
61878
  react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.confirmRow },
61873
- 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')),
61874
61880
  react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.confirmValue },
61875
61881
  fmtPrice(total, currency),
61876
61882
  " ",
@@ -61881,12 +61887,12 @@ const KiwiBookingModal = ({ hotelName, roomTitle, rate, currency, checkIn, check
61881
61887
  lead.first_name,
61882
61888
  " ",
61883
61889
  lead.last_name))),
61884
- 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'))))),
61885
61891
  step !== 3 && (react_1.default.createElement("div", { className: KiwiBookingModal_scss_1.default.footer },
61886
- 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)),
61887
61893
  react_1.default.createElement("button", { type: "button", className: KiwiBookingModal_scss_1.default.nextBtn, onClick: goNext, disabled: submitting },
61888
61894
  submitting && react_1.default.createElement("span", { className: KiwiBookingModal_scss_1.default.spinner }),
61889
- 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')))))));
61890
61896
  return react_dom_1.default.createPortal(content, document.body);
61891
61897
  };
61892
61898
  exports.default = KiwiBookingModal;
@@ -83392,7 +83398,7 @@ const RadioButtonQuestion = ({ defaultAnswer, radioButtonChange, box = false, fl
83392
83398
  if (box)
83393
83399
  return (react_1.default.createElement(react_1.default.Fragment, null,
83394
83400
  react_1.default.createElement("h4", { className: `mb4 ${RadioButtonQuestion_scss_1.default.title}` }, question.name),
83395
- 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: () => {
83396
83402
  if (onFocus)
83397
83403
  onFocus();
83398
83404
  }, onBlur: () => {
@@ -93679,7 +93685,7 @@ const KiwiHotelCard_scss_1 = __importDefault(__webpack_require__(1134));
93679
93685
  const KiwiHotelCardImage_1 = __importDefault(__webpack_require__(1135));
93680
93686
  const KiwiVisaBenefitsModal_1 = __importDefault(__webpack_require__(450));
93681
93687
  const currencySymbol_1 = __webpack_require__(123);
93682
- const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onHover, onSpecialOffersClick, onCardClick }) => {
93688
+ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onHover, onSpecialOffersClick, onCardClick, t }) => {
93683
93689
  const [visaModalOpen, setVisaModalOpen] = (0, react_1.useState)(false);
93684
93690
  const starCount = Math.min(5, Math.round(parseFloat(hotel.starRating) || 0));
93685
93691
  const score = parseFloat(hotel.kiwiOverallScore) || 0;
@@ -93717,11 +93723,11 @@ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onH
93717
93723
  price > 0 && (react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.price },
93718
93724
  (0, currencySymbol_1.getCurrencySymbol)(hotel.currencyCode),
93719
93725
  price.toFixed(0),
93720
- 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')))),
93721
93727
  hotel.websiteURL && (react_1.default.createElement("button", { type: "button", className: KiwiHotelCard_scss_1.default.bookBtn, onClick: (e) => {
93722
93728
  e.stopPropagation();
93723
93729
  window.open(hotel.websiteURL, '_blank', 'noopener,noreferrer');
93724
- } }, "Book")))),
93730
+ } }, t('kiwi.card.book'))))),
93725
93731
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.row2 },
93726
93732
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.name }, hotel.title),
93727
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" },
@@ -93731,32 +93737,32 @@ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onH
93731
93737
  perks.length > 0 && (react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.perksRow },
93732
93738
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.infoCell },
93733
93739
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.perksLabelRow },
93734
- 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')),
93735
93741
  showVisaBadge && (
93736
93742
  // eslint-disable-next-line jsx-a11y/control-has-associated-label
93737
93743
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.visaBadge, onClick: (e) => {
93738
93744
  e.stopPropagation();
93739
93745
  setVisaModalOpen(true);
93740
- }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": "Visa Premium Benefits" })))),
93746
+ }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": t('kiwi.card.visaPremiumBenefits') })))),
93741
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) => {
93742
93748
  e.stopPropagation();
93743
93749
  if (onSpecialOffersClick)
93744
93750
  onSpecialOffersClick(hotel);
93745
93751
  }, role: "button", tabIndex: 0, onKeyDown: () => { }, style: { cursor: 'pointer' } },
93746
- 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')),
93747
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" },
93748
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 ')))))),
93749
93755
  (roomCount || settings || styles) && (react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.infoRow },
93750
93756
  roomCount && (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 }, "Rooms & Suites"),
93757
+ react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.cellLabel }, t('kiwi.common.roomsSuites')),
93752
93758
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.valueBadge }, roomCount))),
93753
93759
  settings && (react_1.default.createElement("div", { className: `${KiwiHotelCard_scss_1.default.infoCell} ${KiwiHotelCard_scss_1.default.cellThird}` },
93754
- 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')),
93755
93761
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.valueBadge }, settings))),
93756
93762
  styles && (react_1.default.createElement("div", { className: `${KiwiHotelCard_scss_1.default.infoCell} ${KiwiHotelCard_scss_1.default.cellThird}` },
93757
- 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')),
93758
93764
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.valueBadge }, styles)))))))),
93759
- 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 })));
93760
93766
  };
93761
93767
  exports.default = KiwiHotelCard;
93762
93768
 
@@ -93960,13 +93966,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
93960
93966
  const react_1 = __importStar(__webpack_require__(0));
93961
93967
  const KiwiHotelFilterBar_scss_1 = __importDefault(__webpack_require__(1139));
93962
93968
  const SORT_OPTIONS = [
93963
- { value: '', fallback: 'All Hotels' },
93964
- { value: 'price_low_to_high', fallback: 'Price - Low to High' },
93965
- { value: 'price_high_to_low', fallback: 'Price - High to Low' },
93966
- { value: 'recently_added', fallback: 'Recently Added' },
93967
- { value: 'star_rating', fallback: 'Star Rating' },
93968
- { value: 'average_rating', fallback: 'Average Rating' },
93969
- { 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' },
93970
93976
  ];
93971
93977
  const KiwiHotelFilterBar = ({ sortBy, onSortChange, onShowMapToggle, onFilterToggle, showMap, resultCount, t }) => {
93972
93978
  const [sortOpen, setSortOpen] = (0, react_1.useState)(false);
@@ -93984,26 +93990,26 @@ const KiwiHotelFilterBar = ({ sortBy, onSortChange, onShowMapToggle, onFilterTog
93984
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: () => { } },
93985
93991
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
93986
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" })),
93987
- react_1.default.createElement("span", null, "View on Map")),
93993
+ react_1.default.createElement("span", null, t('kiwi.filterBar.viewOnMap'))),
93988
93994
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.right },
93989
93995
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortWrapper, ref: sortRef },
93990
93996
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.actionBtn, onClick: () => setSortOpen(!sortOpen), role: "button", tabIndex: 0, onKeyDown: () => { } },
93991
93997
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
93992
93998
  react_1.default.createElement("path", { d: "M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z" })),
93993
- react_1.default.createElement("span", null, "Sort By")),
93999
+ react_1.default.createElement("span", null, t('kiwi.filterBar.sortBy'))),
93994
94000
  sortOpen && (react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortDropdown },
93995
- 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')),
93996
94002
  react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.sortDivider }),
93997
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: () => {
93998
94004
  onSortChange(option.value);
93999
94005
  setSortOpen(false);
94000
94006
  }, role: "button", tabIndex: 0, onKeyDown: () => { } },
94001
94007
  react_1.default.createElement("span", { className: `${KiwiHotelFilterBar_scss_1.default.radio} ${sortBy === option.value ? KiwiHotelFilterBar_scss_1.default.radioActive : ''}` }),
94002
- react_1.default.createElement("span", null, option.fallback)))))))),
94008
+ react_1.default.createElement("span", null, t(option.tKey))))))))),
94003
94009
  onFilterToggle && (react_1.default.createElement("div", { className: KiwiHotelFilterBar_scss_1.default.actionBtn, onClick: onFilterToggle, role: "button", tabIndex: 0, onKeyDown: () => { } },
94004
94010
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94005
94011
  react_1.default.createElement("path", { d: "M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z" })),
94006
- react_1.default.createElement("span", null, "Filter"))))));
94012
+ react_1.default.createElement("span", null, t('kiwi.filterBar.filter')))))));
94007
94013
  };
94008
94014
  exports.default = KiwiHotelFilterBar;
94009
94015
 
@@ -94131,7 +94137,7 @@ const OptionRow = ({ label, count, selected, onToggle }) => (react_1.default.cre
94131
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" },
94132
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" }))))));
94133
94139
  /* ── Main component ── */
94134
- const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94140
+ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose, t }) => {
94135
94141
  const [local, setLocal] = (0, react_1.useState)({ ...filters });
94136
94142
  /* Aggregated options */
94137
94143
  const locationOpts = (0, react_1.useMemo)(() => aggregateField(hotels, (h) => h.country), [hotels]);
@@ -94146,7 +94152,7 @@ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94146
94152
  const tags = [];
94147
94153
  local.locations.forEach((v) => tags.push({ label: v, remove: () => setLocal((p) => ({ ...p, locations: p.locations.filter((x) => x !== v) })) }));
94148
94154
  if (local.specialOffers)
94149
- 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 })) });
94150
94156
  local.ratings.forEach((v) => tags.push({ label: `${'★'.repeat(v)}`, remove: () => setLocal((p) => ({ ...p, ratings: p.ratings.filter((x) => x !== v) })) }));
94151
94157
  local.settings.forEach((v) => tags.push({ label: v, remove: () => setLocal((p) => ({ ...p, settings: p.settings.filter((x) => x !== v) })) }));
94152
94158
  local.styles.forEach((v) => tags.push({ label: v, remove: () => setLocal((p) => ({ ...p, styles: p.styles.filter((x) => x !== v) })) }));
@@ -94156,7 +94162,7 @@ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94156
94162
  return react_dom_1.default.createPortal(react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.overlay, onClick: onClose, role: "presentation" },
94157
94163
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.modal, onClick: (e) => e.stopPropagation() },
94158
94164
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.header },
94159
- 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')),
94160
94166
  react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.closeBtn, onClick: onClose },
94161
94167
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94162
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" })))),
@@ -94166,20 +94172,23 @@ const KiwiHotelFilterModal = ({ hotels, filters, onApply, onClose }) => {
94166
94172
  react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.tagRemove, onClick: tag.remove },
94167
94173
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94168
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" }))))))),
94169
- 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')))),
94170
94176
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.body },
94171
- 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) })) }))))),
94172
- specialOfferCount > 0 && (react_1.default.createElement(Section, { title: "Special Offers" },
94173
- react_1.default.createElement(OptionRow, { label: "Special Offers", count: specialOfferCount, selected: local.specialOffers, onToggle: () => setLocal((p) => ({ ...p, specialOffers: !p.specialOffers })) }))),
94174
- 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) })) }))))),
94175
- 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) })) }))))),
94176
- 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) })) }))))),
94177
- 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') },
94178
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) })) })))))),
94179
- 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) })) })))))),
94180
94186
  react_1.default.createElement("div", { className: KiwiHotelFilterModal_scss_1.default.footer },
94181
- react_1.default.createElement("button", { type: "button", className: KiwiHotelFilterModal_scss_1.default.clearBtn, onClick: clearAll }, "Clear all"),
94182
- 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);
94183
94192
  };
94184
94193
  exports.default = KiwiHotelFilterModal;
94185
94194
 
@@ -94243,16 +94252,16 @@ const KiwiRateDetailModal_1 = __importDefault(__webpack_require__(452));
94243
94252
  const KiwiRoomRateModal_1 = __importDefault(__webpack_require__(453));
94244
94253
  const KiwiBookingModal_1 = __importDefault(__webpack_require__(454));
94245
94254
  const RATING_LABELS = [
94246
- { key: 'service', label: 'Service' },
94247
- { key: 'rooms', label: 'Rooms' },
94248
- { key: 'location', label: 'Location' },
94249
- { key: 'foodBeverage', label: 'Food & Beverage' },
94250
- { key: 'spaFitness', label: 'Spa & Fitness' },
94251
- { key: 'attentionToDetail', label: 'Attention to Detail' },
94252
- { key: 'generosityValue', label: 'Generosity & Value' },
94253
- { key: 'wowHipFactor', label: 'Wow / Hip Factor' },
94254
- { key: 'architectureDesign', label: 'Architecture & Design' },
94255
- { 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' },
94256
94265
  ];
94257
94266
  const FALLBACK_VISA_BENEFITS = [
94258
94267
  'Best available rate guarantee',
@@ -94265,13 +94274,13 @@ const FALLBACK_VISA_BENEFITS = [
94265
94274
  ];
94266
94275
  const DESCRIPTION_TRUNCATE_LENGTH = 380;
94267
94276
  const TABS = [
94268
- { key: 'overview', label: 'Overview' },
94269
- { key: 'location', label: 'Location' },
94270
- { key: 'amenities', label: 'Amenities' },
94271
- { key: 'rooms', label: 'Rooms' },
94272
- { 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' },
94273
94282
  ];
94274
- 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, }) => {
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, }) => {
94275
94284
  var _a, _b;
94276
94285
  const [propertyDetail, setPropertyDetail] = (0, react_1.useState)(undefined);
94277
94286
  const [loadingDetail, setLoadingDetail] = (0, react_1.useState)(false);
@@ -94469,14 +94478,14 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94469
94478
  setMobileTouchStartX(null);
94470
94479
  } },
94471
94480
  react_1.default.createElement("img", { src: imageUrls[photoIndex], alt: data.title, className: KiwiHotelInfoModal_scss_1.default.mobileCarouselImg, loading: "lazy" }),
94472
- 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') },
94473
94482
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94474
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" }))),
94475
94484
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.mobileTopRight },
94476
- 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') },
94477
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" },
94478
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" }))),
94479
- 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') },
94480
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" },
94481
94490
  react_1.default.createElement("path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" }),
94482
94491
  react_1.default.createElement("polyline", { points: "16 6 12 2 8 6" }),
@@ -94495,18 +94504,18 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94495
94504
  })));
94496
94505
  })()))),
94497
94506
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.closeRow },
94498
- 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') },
94499
94508
  react_1.default.createElement("svg", { viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" },
94500
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" })))),
94501
94510
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.titleRow },
94502
94511
  react_1.default.createElement("h2", { className: KiwiHotelInfoModal_scss_1.default.hotelName }, data.title),
94503
94512
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.headerActions },
94504
- 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') },
94505
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" },
94506
94515
  react_1.default.createElement("path", { d: "M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" }),
94507
94516
  react_1.default.createElement("polyline", { points: "16 6 12 2 8 6" }),
94508
94517
  react_1.default.createElement("line", { x1: "12", y1: "2", x2: "12", y2: "15" })))),
94509
- 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') },
94510
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" },
94511
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" })))))),
94512
94521
  locationText && react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.hotelLocation }, locationText),
@@ -94550,17 +94559,17 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94550
94559
  e.stopPropagation();
94551
94560
  setPhotoIndex(0);
94552
94561
  setPhotosOpen(true);
94553
- } }, "Show all photos")))),
94562
+ } }, t('kiwi.infoModal.showAllPhotos'))))),
94554
94563
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceBlock },
94555
94564
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceLeft },
94556
94565
  showVisaBadge && (react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.visaBadge, onClick: (e) => {
94557
94566
  e.stopPropagation();
94558
94567
  setVisaModalOpen(true);
94559
- }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": "Visa Premium Benefits" })),
94568
+ }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": t('kiwi.card.visaPremiumBenefits') })),
94560
94569
  hasSpecialOffer && (react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.specialOffersBtn, onClick: (e) => {
94561
94570
  e.stopPropagation();
94562
94571
  setOffersModalOpen(true);
94563
- }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": "Special Offers" }))),
94572
+ }, role: "button", tabIndex: 0, onKeyDown: () => { }, "aria-label": t('kiwi.common.specialOffers') }))),
94564
94573
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceRight },
94565
94574
  formattedPrice && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.priceValue },
94566
94575
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.priceSymbol }, (0, currencySymbol_1.getCurrencySymbol)(currency)),
@@ -94568,11 +94577,12 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94568
94577
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.priceUnit },
94569
94578
  " ",
94570
94579
  currency,
94571
- "/night"))),
94572
- 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')))),
94573
94583
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.mobileFindRoomRow },
94574
- react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.mobileFindRoomBtn, onClick: handleFindRoom }, "Find a Room")),
94575
- 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))))),
94576
94586
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.tabContent },
94577
94587
  activeTab === 'overview' && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.overview },
94578
94588
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.quickInfo },
@@ -94583,7 +94593,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94583
94593
  react_1.default.createElement("pattern", { id: "icon-rooms", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
94584
94594
  react_1.default.createElement("use", { xlinkHref: "#icon-rooms-img", transform: "scale(0.01)" })),
94585
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" }))),
94586
- 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')),
94587
94597
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickValue }, roomCount))),
94588
94598
  settings && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.quickRow },
94589
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 },
@@ -94592,7 +94602,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94592
94602
  react_1.default.createElement("pattern", { id: "icon-setting", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
94593
94603
  react_1.default.createElement("use", { xlinkHref: "#icon-setting-img", transform: "scale(0.01)" })),
94594
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==" }))),
94595
- 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')),
94596
94606
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickValue }, settings))),
94597
94607
  styles && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.quickRow },
94598
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 },
@@ -94601,36 +94611,36 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94601
94611
  react_1.default.createElement("pattern", { id: "icon-style", patternContentUnits: "objectBoundingBox", width: "1", height: "1" },
94602
94612
  react_1.default.createElement("use", { xlinkHref: "#icon-style-img", transform: "scale(0.01)" })),
94603
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=" }))),
94604
- 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')),
94605
94615
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.quickValue }, styles)))),
94606
94616
  description && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.descriptionBlock },
94607
94617
  react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.description }, visibleDescription),
94608
- 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'))))),
94609
94619
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.section },
94610
94620
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.sectionHeader },
94611
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" },
94612
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" })),
94613
- 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'))),
94614
94624
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.averageOverall },
94615
94625
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.averageCircle }, overallScore > 0 ? overallScore.toFixed(1) : '—'),
94616
94626
  localRating && (localRating.source || localRating.value) && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.localRating },
94617
94627
  localRating.source && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.localRatingSource }, localRating.source),
94618
94628
  localRating.value && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.localRatingValue }, localRating.value)))),
94619
- 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 }) => {
94620
94630
  const value = parseFloat(kiwiRating[key]) || 0;
94621
94631
  const pct = Math.max(0, Math.min(100, (value / 10) * 100));
94622
94632
  return (react_1.default.createElement("div", { key: key, className: KiwiHotelInfoModal_scss_1.default.ratingRow },
94623
94633
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingHead },
94624
- 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)),
94625
94635
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.ratingValue }, value)),
94626
94636
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingBar },
94627
94637
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.ratingFill, style: { width: `${pct}%` } }))));
94628
- }))) : 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),
94629
94639
  benefitGroups.map((group) => (react_1.default.createElement("div", { key: group.title, className: KiwiHotelInfoModal_scss_1.default.section },
94630
94640
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.sectionHeader },
94631
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" },
94632
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" }))),
94633
- 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`)),
94634
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 },
94635
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" },
94636
94646
  react_1.default.createElement("polyline", { points: "20 6 9 17 4 12" })),
@@ -94640,7 +94650,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94640
94650
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationSectionHeader },
94641
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 },
94642
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" })),
94643
- 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'))),
94644
94654
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationAddressBlock },
94645
94655
  data.addressLine1 && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationAddressLine }, data.addressLine1),
94646
94656
  data.addressLine2 && react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.locationAddressLine }, data.addressLine2),
@@ -94652,13 +94662,13 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94652
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') },
94653
94663
  react_1.default.createElement("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg" },
94654
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" })),
94655
- "Get directions"))),
94665
+ t('kiwi.infoModal.getDirections')))),
94656
94666
  data.locationDescription && react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationDivider }),
94657
94667
  data.locationDescription && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationSection },
94658
94668
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.locationSectionHeader },
94659
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 },
94660
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" })),
94661
- 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'))),
94662
94672
  react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.locationDescription }, data.locationDescription))))),
94663
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 },
94664
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" },
@@ -94672,7 +94682,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94672
94682
  onSearchCheckInChange(v); }, onCheckOutChange: (v) => { setInternalCheckOut(v); if (onSearchCheckOutChange)
94673
94683
  onSearchCheckOutChange(v); }, onAdultsChange: (v) => { setInternalAdults(v); if (onSearchAdultsChange)
94674
94684
  onSearchAdultsChange(v); }, onChildrenChange: (v) => { setInternalChildren(v); if (onSearchChildrenChange)
94675
- onSearchChildrenChange(v); }, onSearch: handleRoomsSearch, t: (key) => key })),
94685
+ onSearchChildrenChange(v); }, onSearch: handleRoomsSearch, t: t })),
94676
94686
  (loadingAvailability || availabilityData !== undefined) && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.roomsTopBar },
94677
94687
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.currencyRow },
94678
94688
  react_1.default.createElement("svg", { width: "22", height: "22", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
@@ -94687,31 +94697,35 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94687
94697
  react_1.default.createElement("svg", { viewBox: "0 0 50 50", xmlns: "http://www.w3.org/2000/svg" },
94688
94698
  react_1.default.createElement("circle", { cx: "25", cy: "25", r: "20" }))),
94689
94699
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.roomsLoadingText },
94690
- 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')),
94691
94701
  internalCheckIn && internalCheckOut && (react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsLoadingDates },
94692
94702
  new Date(internalCheckIn).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }),
94693
94703
  ' - ',
94694
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 },
94695
- react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptyTitle }, "We're sorry. No rooms found for these dates."),
94696
- 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')),
94697
94707
  react_1.default.createElement("ol", { className: KiwiHotelInfoModal_scss_1.default.roomsEmptyList },
94698
- 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')),
94699
94709
  react_1.default.createElement("li", null,
94700
94710
  "In some cases we may be able to find available rooms.",
94701
94711
  react_1.default.createElement("br", null),
94702
- "Call our agent at ",
94712
+ t('kiwi.infoModal.noRooms.callAgent'),
94713
+ " ",
94703
94714
  react_1.default.createElement("strong", null, "1-800-953-7392"),
94704
- " or",
94715
+ " ",
94716
+ t('kiwi.common.or'),
94705
94717
  ' ',
94706
- 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')),
94707
94719
  ' ',
94708
- "for assistance."),
94720
+ t('kiwi.infoModal.noRooms.forAssistance'),
94721
+ "."),
94709
94722
  react_1.default.createElement("li", null,
94710
- 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')),
94711
94724
  ' ',
94712
- "with your requested dates to the ",
94725
+ t('kiwi.infoModal.noRooms.requestDates'),
94726
+ " ",
94713
94727
  data.title,
94714
- ".")))) : (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) => {
94715
94729
  const roomImg = imageUrls[0] || '';
94716
94730
  const roomDescExpanded = expandedRoomDescKeys.has(room.code);
94717
94731
  const ROOM_DESC_MAX = 140;
@@ -94728,16 +94742,19 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94728
94742
  visibleRoomDesc,
94729
94743
  !roomDescExpanded && isLongRoomDesc && (react_1.default.createElement(react_1.default.Fragment, null,
94730
94744
  '… ',
94731
- 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')))))),
94732
94746
  roomDescExpanded && (react_1.default.createElement(react_1.default.Fragment, null,
94733
94747
  room.sizeM2 && (react_1.default.createElement("p", { className: KiwiHotelInfoModal_scss_1.default.roomSize },
94734
- react_1.default.createElement("strong", null, "Room Size:"),
94748
+ react_1.default.createElement("strong", null,
94749
+ t('kiwi.infoModal.roomSize'),
94750
+ ":"),
94735
94751
  " ",
94736
94752
  room.sizeM2,
94737
- " m\u00B2",
94738
- room.sizeFt2 ? ` | ${room.sizeFt2} ft²` : '')),
94739
- 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"))),
94740
- 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')))),
94741
94758
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.rateList }, (room.rates || []).map((rate) => {
94742
94759
  var _a, _b, _c, _d, _e, _f, _g;
94743
94760
  const nightlyPrice = parseFloat((_a = rate.price) === null || _a === void 0 ? void 0 : _a.inclusiveNightlyAverage) || 0;
@@ -94781,7 +94798,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94781
94798
  rateCurrency),
94782
94799
  react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.ratePriceLabelRow, onClick: () => { setRateDetailInfo({ rate, currency: rateCurrency }); if (onRateDetailOpen)
94783
94800
  onRateDetailOpen(hotel, room, rate); } },
94784
- react_1.default.createElement("span", null, "Average nightly rate"),
94801
+ react_1.default.createElement("span", null, t('kiwi.infoModal.avgNightlyRate')),
94785
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" },
94786
94803
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
94787
94804
  react_1.default.createElement("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
@@ -94795,16 +94812,16 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94795
94812
  else if (onBookNow) {
94796
94813
  onBookNow(hotel, room, rate);
94797
94814
  }
94798
- } }, "Book Now")))),
94815
+ } }, t('kiwi.common.bookNow'))))),
94799
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)
94800
94817
  onSeeMoreDetails(hotel, room, rate); } },
94801
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.seeMoreDesktop }, "See more details"),
94802
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.seeMoreMobile }, "More Info")))));
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'))))));
94803
94820
  }))));
94804
94821
  }))))),
94805
94822
  activeTab === 'contact' && (react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactTab },
94806
- react_1.default.createElement("h3", { className: KiwiHotelInfoModal_scss_1.default.contactTitle }, "Your Complimentary 24/7 Concierge"),
94807
- 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')),
94808
94825
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSection },
94809
94826
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSectionHeader },
94810
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 },
@@ -94813,21 +94830,21 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94813
94830
  react_1.default.createElement("defs", null,
94814
94831
  react_1.default.createElement("clipPath", { id: "clip-phone" },
94815
94832
  react_1.default.createElement("rect", { width: "16", height: "16", fill: "white" })))),
94816
- 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'))),
94817
94834
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneList },
94818
94835
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneRow },
94819
94836
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneNumber }, "1-800-953-7392"),
94820
- 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'))),
94821
94838
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneRow },
94822
94839
  react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactPhoneNumber }, "1-630-350-4551"),
94823
- 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'))))),
94824
94841
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSection },
94825
94842
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.contactSectionHeader },
94826
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 },
94827
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" }),
94828
94845
  react_1.default.createElement("path", { d: "M14.6668 4L8.00016 8.66667L1.3335 4", stroke: "#0B1215", strokeLinecap: "round", strokeLinejoin: "round" })),
94829
- react_1.default.createElement("span", { className: KiwiHotelInfoModal_scss_1.default.contactSectionLabel }, "Contact Form")),
94830
- 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'))))))),
94831
94848
  photosOpen && imageUrls.length > 0 && (
94832
94849
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
94833
94850
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.photosOverlay, onClick: (e) => {
@@ -94841,7 +94858,7 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94841
94858
  react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.photosClose, onClick: (e) => {
94842
94859
  e.stopPropagation();
94843
94860
  setPhotosOpen(false);
94844
- }, "aria-label": "Close" },
94861
+ }, "aria-label": t('kiwi.common.close') },
94845
94862
  react_1.default.createElement("svg", { width: "20", height: "20", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", fill: "#111827" },
94846
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" })))),
94847
94864
  react_1.default.createElement("div", { className: KiwiHotelInfoModal_scss_1.default.photosBody },
@@ -94857,19 +94874,19 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94857
94874
  react_1.default.createElement("button", { type: "button", className: `${KiwiHotelInfoModal_scss_1.default.photosNav} ${KiwiHotelInfoModal_scss_1.default.photosNavPrev}`, onClick: (e) => {
94858
94875
  e.stopPropagation();
94859
94876
  goToPrevPhoto();
94860
- }, "aria-label": "Previous" },
94877
+ }, "aria-label": t('kiwi.infoModal.previous') },
94861
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" },
94862
94879
  react_1.default.createElement("polyline", { points: "15 18 9 12 15 6" }))),
94863
94880
  react_1.default.createElement("img", { src: imageUrls[photoIndex], alt: `${data.title} ${photoIndex + 1}`, className: KiwiHotelInfoModal_scss_1.default.photosMainImg }),
94864
94881
  react_1.default.createElement("button", { type: "button", className: `${KiwiHotelInfoModal_scss_1.default.photosNav} ${KiwiHotelInfoModal_scss_1.default.photosNavNext}`, onClick: (e) => {
94865
94882
  e.stopPropagation();
94866
94883
  goToNextPhoto();
94867
- }, "aria-label": "Next" },
94884
+ }, "aria-label": t('kiwi.infoModal.next') },
94868
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" },
94869
94886
  react_1.default.createElement("polyline", { points: "9 18 15 12 9 6" })))))))),
94870
- visaModalOpen && react_1.default.createElement(KiwiVisaBenefitsModal_1.default, { onClose: () => setVisaModalOpen(false) }),
94871
- 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) })),
94872
- 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 ? () => {
94873
94890
  const { rate: rr, currency: rc } = roomRateModal;
94874
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); });
94875
94892
  setRoomRateModal(undefined);
@@ -94887,8 +94904,8 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94887
94904
  onReservationCreated(res.data, req.external_id);
94888
94905
  }
94889
94906
  return res;
94890
- }, onReservationFailed: onReservationFailed ? (msg) => onReservationFailed(hotel, bookingModal.room, bookingModal.rate, msg) : undefined })),
94891
- 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);
94892
94909
  };
94893
94910
  exports.default = KiwiHotelInfoModal;
94894
94911