UNPKG

pxsol-booking-search-widget

Version:

Embeddable booking engine search widget with React and Web Component builds.

577 lines 92.7 kB
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._title_1bzvz_2{font-size:1rem;margin:0 0 .5rem}._container_1bzvz_7{width:100%}._searchBar_1bzvz_11{position:relative;display:grid;grid-template-columns:1fr;gap:6px;background:#fff;padding:8px;border-radius:10px;border:1px solid rgba(15,23,42,.08);box-shadow:0 3px 10px #0f172a14;transition:box-shadow .16s ease,border-color .16s ease}@media (min-width: 600px){._searchBar_1bzvz_11{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 10px}}@media (min-width: 768px){._searchBar_1bzvz_11{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(190px,1fr);grid-template-areas:"a b c d";align-items:stretch;background:#fff;border-radius:10rem;column-gap:8px;padding:8px 10px;box-shadow:0 6px 16px #0f172a1a}._searchBar_1bzvz_11._noPromoCode_1bzvz_45{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(160px,.9fr)}._actions_1bzvz_49{grid-area:d;display:flex;align-items:center;gap:12px;width:100%;height:auto;justify-content:flex-end}._promoInput_1bzvz_58{width:100%}}._segment_1bzvz_63{position:relative;border-radius:8px;padding:5px 7px;z-index:auto;cursor:pointer;background:#ffffffeb;border:1px solid transparent;transition:background-color .16s ease,box-shadow .16s ease,border-color .16s ease}._segment_1bzvz_63:hover{background-color:#f8fafcf2;border-color:#0f172a1f;box-shadow:0 2px 10px #0f172a14}._segmentActive_1bzvz_80{background:#f6f8fcf5;border-color:var(--accent-border, rgba(31, 41, 55, .28));box-shadow:0 0 0 1px var(--accent-border, rgba(31, 41, 55, .28));z-index:5}._fadeIn_1bzvz_88{animation:_fadeIn_1bzvz_88 .22s ease both}@keyframes _fadeIn_1bzvz_88{0%{opacity:0;transform:translate(0)}to{opacity:1;transform:translate(0)}}@keyframes _fadeSlideInLeft_1bzvz_1{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes _fadeSlideInRight_1bzvz_1{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}._bgFadeIn_1bzvz_109{animation:_fadeIn_1bzvz_88 .22s ease both}._bgFadeInFromLeft_1bzvz_110{animation:_fadeSlideInLeft_1bzvz_1 .26s ease both}._bgFadeInFromRight_1bzvz_111{animation:_fadeSlideInRight_1bzvz_1 .26s ease both}._segmentBg_1bzvz_114{position:absolute;inset:0;background:var(--accent-surface, rgba(31, 41, 55, .08));border:1px solid var(--accent-border, rgba(31, 41, 55, .18));box-shadow:none;border-radius:inherit;opacity:0;transition:opacity .2s ease;z-index:0;pointer-events:none}._segmentActive_1bzvz_80 ._segmentBg_1bzvz_114{opacity:1}._segment_1bzvz_63>:not(._segmentBg_1bzvz_114){z-index:1}@media (min-width: 768px){._segment_1bzvz_63{border:none;border-radius:10rem;padding:6px 10px;min-width:0}}._segmentLabel_1bzvz_145{position:relative;display:block;font-size:10px;font-weight:600;color:#6b7280;margin-bottom:1px;white-space:nowrap}._segmentButton_1bzvz_155{all:unset;display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.35;color:#111827;cursor:pointer;padding:1px 0;position:relative;border-radius:10px;transition:color .18s ease;white-space:normal;overflow-wrap:anywhere;flex-wrap:wrap;width:100%;text-align:left;-webkit-user-select:none;user-select:none;min-height:22px}._segmentButton_1bzvz_155:focus-visible{outline:2px solid var(--accent-outline, rgba(31, 41, 55, .45));outline-offset:2px}._segmentButton_1bzvz_155[aria-pressed=true]{color:#0f172a}._inputBare_1bzvz_186{width:100%;border:none;outline:none;background:transparent;font-size:14px;padding:2px 0}._suggestions_1bzvz_195{position:absolute;z-index:20;top:100%;left:0;right:0;background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:12px;margin-top:6px;box-shadow:0 10px 30px #11182724;padding:6px;max-height:260px;overflow:auto}._suggestionItem_1bzvz_211{display:flex;width:100%;text-align:left;background:transparent;border:none;padding:10px 8px;border-radius:10px;cursor:pointer;font-size:14px}._suggestionItem_1bzvz_211:hover{background:#f3f4f6}._popover_1bzvz_227{position:absolute;z-index:100;top:calc(100% + 6px);left:0;background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:16px;box-shadow:0 10px 30px #11182724;padding:12px;min-width:280px}._popoverRow_1bzvz_240{display:grid;grid-template-columns:1fr;gap:8px}@media (min-width: 480px){._popoverRow_1bzvz_240{grid-template-columns:1fr 1fr}}._popoverActions_1bzvz_252{display:flex;justify-content:flex-end;margin-top:8px}._secondaryBtn_1bzvz_258{background:transparent;border:1px solid rgba(17,24,39,.2);color:#111827;border-radius:999px;padding:6px 12px;cursor:pointer}._actions_1bzvz_49{display:flex;flex-direction:column;justify-content:flex-start;gap:.75rem;align-items:stretch;width:100%;position:relative;z-index:0}._promoRow_1bzvz_278{display:flex;align-items:center;gap:8px;width:100%;flex:1 1 auto;position:relative;z-index:1}._promoInput_1bzvz_58{background:#fff;border:1px solid rgba(15,23,42,.14);border-radius:10px;padding:6px 9px;font-size:13px;color:#111827;min-width:140px;transition:border-color .16s ease,box-shadow .16s ease}._promoInput_1bzvz_58:focus{border-color:var(--accent-border, rgba(31, 41, 55, .28));box-shadow:0 0 0 3px var(--accent-surface, rgba(31, 41, 55, .12))}._searchBtn_1bzvz_304{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary-color, #1f2937);color:#fff;border:none;border-radius:10px;padding:8px 14px;cursor:pointer;box-shadow:0 8px 20px var(--primary-shadow-rgba, rgba(31, 41, 55, .28));width:100%;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}._searchBtn_1bzvz_304:hover{transform:translateY(-1px);box-shadow:0 12px 24px var(--primary-shadow-rgba, rgba(31, 41, 55, .32));filter:brightness(1.05)}._searchBtn_1bzvz_304:active{transform:translateY(0);box-shadow:0 6px 16px var(--primary-shadow-rgba, rgba(31, 41, 55, .26));filter:brightness(.95)}@media (min-width: 768px){._actions_1bzvz_49{flex-direction:row;align-items:flex-start;gap:10px;width:100%;padding-inline-end:12px;justify-content:flex-end!important}._searchBtn_1bzvz_304{max-width:168px;padding:8px 16px}}._searchText_1bzvz_347{font-weight:600}._spinner_1bzvz_352{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_spin_1bzvz_352 .6s linear infinite}@keyframes _spin_1bzvz_352{to{transform:rotate(360deg)}}._searchBtn_1bzvz_304:disabled{opacity:.8;cursor:not-allowed}._advanced_1bzvz_371{margin-top:10px}._redirectRow_1bzvz_375{display:flex;gap:8px;align-items:center}._visuallyHidden_1bzvz_381{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}._stickyMiniMobile_1bzvz_394{position:fixed;bottom:10px;left:10px;z-index:1000;background:var(--primary-color, #1f2937);color:#fff;border:none;border-radius:10px;padding:9px 14px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px var(--primary-shadow-rgba, rgba(31, 41, 55, .28));cursor:pointer;font-weight:600;font-size:13px;transition:all .2s ease,filter .2s ease}._stickyMiniMobileTop_1bzvz_414{bottom:auto;top:20px}._stickyMiniMobile_1bzvz_394:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--primary-shadow-rgba, rgba(31, 41, 55, .32));filter:brightness(1.05)}._stickyMiniMobile_1bzvz_394:active{transform:translateY(0);filter:brightness(.95)}@media (min-width: 768px){._stickyMiniMobile_1bzvz_394{display:none}}._stickyBar_1bzvz_437{position:fixed;top:0;left:0;right:0;z-index:1000;background:#fff;border-bottom:1px solid rgba(17,24,39,.12);box-shadow:0 2px 12px #00000014;padding:8px;display:none}@media (min-width: 768px){._stickyBar_1bzvz_437{display:block}}._stickyBarButton_1bzvz_456{all:unset;display:flex;align-items:center;justify-content:center;width:100%;max-width:1000px;margin:0 auto;cursor:pointer}._stickyBarMini_1bzvz_467{display:flex;align-items:center;background:#f8fafcf2;border:1px solid rgba(17,24,39,.1);border-radius:14px;padding:0;gap:0;box-shadow:none;transition:all .2s ease}._stickyBarButton_1bzvz_456:hover ._stickyBarMini_1bzvz_467{box-shadow:0 4px 12px #0000001a}._stickyBarSearchBtn_1bzvz_483{all:unset;display:inline-flex;align-items:center;gap:6px;background:var(--primary-color, #1f2937);color:#fff!important;border:none;border-radius:12px;padding:6px 12px;cursor:pointer;font-size:13px;font-weight:600;box-shadow:0 4px 12px var(--primary-shadow-rgba, rgba(31, 41, 55, .24));transition:all .2s ease,filter .2s ease;white-space:nowrap;margin-inline:8px}._stickyBarSearchBtn_1bzvz_483:hover{transform:translateY(-1px);box-shadow:0 6px 16px var(--primary-shadow-rgba, rgba(31, 41, 55, .28));filter:brightness(1.05);color:#fff!important}._stickyBarSearchBtn_1bzvz_483:active{transform:translateY(0);filter:brightness(.95);color:#fff!important}._stickyBarSearchBtn_1bzvz_483:disabled{opacity:.6;cursor:not-allowed;transform:none!important;color:#fff!important}._stickyBarSegment_1bzvz_522{display:flex;flex-direction:column;padding:6px 12px;gap:1px;position:relative;flex:1 1 0;min-width:0}._stickyBarSegment_1bzvz_522:not(:last-child){border-right:1px solid rgba(17,24,39,.12)}._stickyBarLabel_1bzvz_536{font-size:10px;font-weight:600;color:#6b7280}._stickyBarValue_1bzvz_542{font-size:12px;color:#111827;font-weight:500;line-height:1.3;white-space:normal;overflow-wrap:anywhere}._stickyBarButton_1bzvz_456 svg{flex-shrink:0;color:#111827}._calendarOverlayHost_1bzvz_557{position:fixed;inset:0;background:#00000073;z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:16px 8px 24px}._calendarOverlayHost_1bzvz_557>div{width:100%;max-width:900px}._groups_1bzvz_574{display:grid;gap:.75rem;border:1px dashed rgba(17,24,39,.15);padding:.75rem;border-radius:8px}._group_1bzvz_574{display:grid;gap:.5rem}._groupControls_1bzvz_587{display:flex;gap:.5rem;flex-wrap:wrap}._groupControls_1bzvz_587 label{flex:1;min-width:120px}._summary_1bzvz_598{font-size:.85rem;opacity:.8}._secondaryBtn_1bzvz_258{background:transparent;border:1px solid rgba(17,24,39,.2);color:inherit;border-radius:999px;padding:.55rem 1rem;cursor:pointer}._error_1bzvz_612{color:#dc2626;font-size:.85rem;font-weight:500;padding:10px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:12px;display:flex;align-items:center;gap:8px}._error_1bzvz_612:before{content:"⚠️";font-size:1.2rem}._actions_1bzvz_49{display:flex;justify-content:space-between;gap:.75rem;align-items:center}@media (max-width: 767px){._searchBar_1bzvz_11{display:none}._searchBar_1bzvz_11._mobileExpanded_1bzvz_644{display:grid;position:relative}._actions_1bzvz_49{width:100%;height:auto}._searchBtn_1bzvz_304{width:100%;justify-content:center;min-height:44px}}._mobileReserveButton_1bzvz_661{display:none}@media (max-width: 767px){._mobileReserveButton_1bzvz_661{display:inline-flex;align-items:center;gap:8px;background:var(--primary-color, #1f2937);color:#fff;border:none;border-radius:10px;padding:12px 18px;cursor:pointer;box-shadow:0 6px 16px var(--primary-shadow-rgba, rgba(31, 41, 55, .28));width:100%;font-weight:600;font-size:16px;transition:all .2s ease,filter .2s ease;justify-content:center}._mobileReserveButton_1bzvz_661:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--primary-shadow-rgba, rgba(31, 41, 55, .32));filter:brightness(1.05)}._mobileReserveButton_1bzvz_661:active{transform:translateY(0);filter:brightness(.95)}._mobileReserveButton_1bzvz_661:disabled{opacity:.6;cursor:not-allowed;transform:none!important}._mobileCloseButton_1bzvz_702{position:absolute;top:10px;right:10px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#0000000d;border:none;border-radius:50%;font-size:24px;color:#6b7280;cursor:pointer;z-index:100;transition:all .15s ease;padding:0;line-height:1}._mobileCloseButton_1bzvz_702:hover{background:#0000001a;color:#111827}._mobileCloseButton_1bzvz_702:active{background:#00000026}}._guestsModal_1bzvz_734{padding:0;min-width:320px;max-width:400px}@media (max-width: 480px){._popover_1bzvz_227{left:50%;right:auto;transform:translate(-50%);width:calc(100vw - 24px);min-width:0;box-sizing:border-box}._guestsModal_1bzvz_734{width:100%;max-width:none;min-width:0}}._guestsHeader_1bzvz_757{padding:16px 20px 12px;border-bottom:1px solid rgba(17,24,39,.1)}._guestsTitle_1bzvz_762{font-size:16px;font-weight:600;color:#111827;margin:0 0 4px}._guestsSubtitle_1bzvz_769{font-size:13px;color:#6b7280;margin:0}._guestsContent_1bzvz_775{padding:16px 20px}._roomGroup_1bzvz_780{background:transparent;border:none;border-radius:0;padding:16px 0;margin-bottom:0}._roomGroup_1bzvz_780:last-child{margin-bottom:0}._roomHeader_1bzvz_792{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}._roomTitle_1bzvz_799{font-size:14px;font-weight:600;color:#111827;margin:0}._removeRoomBtn_1bzvz_806{background:transparent;border:1px solid rgba(239,68,68,.3);color:#dc2626;border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .15s ease}._removeRoomBtn_1bzvz_806:hover{background:#ef44440d;border-color:#ef444480}._counterGroup_1bzvz_823{display:flex;flex-direction:column;gap:0}._counterItem_1bzvz_829{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid rgba(17,24,39,.08)}._counterItem_1bzvz_829:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}._counterText_1bzvz_844{flex:1;display:flex;flex-direction:column}._ageHelperText_1bzvz_850{font-size:11px;color:#9ca3af;margin-top:4px;padding-left:4px}._counterLabel_1bzvz_857{font-size:13px;font-weight:500;color:#374151;margin-bottom:2px}._counterDescription_1bzvz_864{font-size:12px;color:#9ca3af;margin-bottom:0}._counterControl_1bzvz_870{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:8px;padding:8px 12px;min-width:100px}._counterBtn_1bzvz_881{background:transparent;border:none;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px}._counterBtn_1bzvz_881:hover{background:#1118270d;color:#111827}._counterBtn_1bzvz_881:disabled{opacity:.4;cursor:not-allowed}._counterValue_1bzvz_906{font-size:14px;font-weight:500;color:#111827;min-width:20px;text-align:center}._childrenAgesInput_1bzvz_914{background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:8px;padding:8px 12px;font-size:14px;color:#111827;width:100%}._childrenAgesInput_1bzvz_914::placeholder{color:#9ca3af}._ageSelectGrid_1bzvz_929{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:8px}._select_1bzvz_936{position:relative}._selectButton_1bzvz_940{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:8px;padding:8px 12px;font-size:14px;color:#111827;cursor:pointer}._selectOptions_1bzvz_955{position:absolute;z-index:25;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid rgba(17,24,39,.12);border-radius:8px;box-shadow:0 10px 30px #11182724;max-height:220px;overflow:auto}._selectOption_1bzvz_955{width:100%;text-align:left;padding:8px 12px;background:transparent;border:none;cursor:pointer}._selectOption_1bzvz_955:hover{background:#1118270d}._addRoomBtn_1bzvz_983{background:transparent;border:1px dashed rgba(17,24,39,.3);color:#6b7280;border-radius:8px;padding:12px;cursor:pointer;transition:all .15s ease;width:100%;font-size:14px;margin-top:8px}._addRoomBtn_1bzvz_983:hover{border-color:#11182780;color:#111827;background:#11182705}._guestsSummary_1bzvz_1003{background:#11182705;border:1px solid rgba(17,24,39,.08);border-radius:8px;padding:12px;margin-top:16px}._guestsSummaryText_1bzvz_1011{font-size:13px;color:#6b7280;margin:0;text-align:center}._guestsActions_1bzvz_1019{padding:16px 20px;border-top:1px solid rgba(17,24,39,.1);display:flex;justify-content:flex-end}._doneBtn_1bzvz_1026{background:var(--primary-color, #1f2937);color:#fff;border:none;border-radius:10px;padding:9px 18px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease,filter .15s ease}._doneBtn_1bzvz_1026:hover{transform:translateY(-1px);filter:brightness(1.05)}._doneBtn_1bzvz_1026:active{transform:translateY(0);filter:brightness(.95)}._nightAdjustment_1bzvz_1049{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid rgba(17,24,39,.1);border-radius:12px;margin-bottom:12px}._nightAdjustmentLabel_1bzvz_1060{font-size:14px;font-weight:500;color:#374151;white-space:nowrap}._nightAdjustmentControls_1bzvz_1067{display:flex;align-items:center;gap:8px;margin-left:auto}._nightAdjustmentBtn_1bzvz_1074{background:#f3f4f6;border:1px solid rgba(17,24,39,.12);color:#111827;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;font-size:18px;font-weight:600}._nightAdjustmentBtn_1bzvz_1074:hover:not(:disabled){background:#e5e7eb;border-color:#11182733}._nightAdjustmentBtn_1bzvz_1074:disabled{opacity:.4;cursor:not-allowed}._nightAdjustmentValue_1bzvz_1100{font-size:16px;font-weight:600;color:#111827;min-width:32px;text-align:center}._mobileStickyModal_1bzvz_1109{position:fixed;inset:0;background:#0000008c;z-index:1100;display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow-y:auto;animation:_fadeIn_1bzvz_88 .2s ease}._mobileStickyModalContent_1bzvz_1122{width:100%;max-width:500px;background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000004d;margin:auto;max-height:90vh;display:flex;flex-direction:column;animation:_slideUp_1bzvz_1 .3s ease}@keyframes _slideUp_1bzvz_1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}._mobileStickyModalHeader_1bzvz_1146{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid rgba(17,24,39,.1);position:sticky;top:0;background:#fff;border-radius:16px 16px 0 0;z-index:10}._mobileStickyModalTitle_1bzvz_1159{font-size:18px;font-weight:600;color:#111827;margin:0}._mobileStickyModalClose_1bzvz_1166{all:unset;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#1118270d;cursor:pointer;transition:all .15s ease;color:#6b7280}._mobileStickyModalClose_1bzvz_1166:hover{background:#1118271a;color:#111827}._mobileStickyCalendar_1bzvz_1185{padding:0 16px 16px;max-height:calc(90vh - 200px);overflow-y:auto}._calendarOverlay_f446n_2{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}._calendarModal_f446n_17{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:900px;width:755px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;position:absolute;margin-top:30px;z-index:1}._calendarHeader_f446n_33{display:flex;justify-content:center;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}._navButton_f446n_40{background:#fff;border:1px solid #e5e7eb;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#374151;padding:0;border-radius:999px;box-shadow:0 2px 6px #0000000f;margin:0 8px}._navButton_f446n_40:hover{background:#f3f4f6;border-color:#d1d5db}._calendarHeader_f446n_33>h2{margin:0 20px}._calendarHeader_f446n_33 ._closeButton_f446n_65{margin-left:auto}._calendarHeader_f446n_33 h2{margin:0;font-size:18px;font-weight:600;color:#111827}._closeButton_f446n_65{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:4px;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}._closeButton_f446n_65:hover{background-color:#f3f4f6;color:#111827}._calendarContent_f446n_98{flex:1;overflow-y:auto;padding:20px 24px}._monthCards_f446n_104{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0}._monthCard_f446n_104{position:relative;background:transparent;border-radius:0;padding:20px;border:none;box-shadow:none}._monthCard_f446n_104:not(:last-child):after{content:"";position:absolute;right:0;top:0;bottom:0;width:1px;background-color:#e5e7eb}._monthHeader_f446n_131{margin-bottom:16px}._monthTitle_f446n_135{margin:0;font-size:16px;font-weight:600;color:#111827}._calendarGrid_f446n_143{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}._dayHeader_f446n_149{display:flex;align-items:center;justify-content:center;height:32px;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase}._dayButton_f446n_161{display:flex;align-items:center;justify-content:center;height:40px;width:40px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:#374151;transition:all .2s ease;position:relative}._dayButton_f446n_161:hover:not(._disabled_f446n_178){background-color:#f3f4f6;color:#111827}._dayButton_f446n_161:focus{outline:2px solid #3b82f6;outline-offset:2px}._otherMonth_f446n_189{color:#d1d5db;visibility:hidden}._pastDay_f446n_194{color:#d1d5db;text-decoration:line-through;opacity:.5}._today_f446n_200{background-color:#dbeafe;color:#1d4ed8;font-weight:600}._weekend_f446n_206{background-color:var(--calendar-weekend-bg, transparent)}._today_f446n_200:hover{background-color:#bfdbfe}._selected_f446n_215{background-color:#111827;color:#fff;font-weight:600}._selected_f446n_215:hover{background-color:#374151}._checkIn_f446n_225,._checkOut_f446n_234{background-color:#111827;color:#fff;font-weight:600;z-index:2;position:relative;transition:background-color .2s ease,color .2s ease}._inRange_f446n_243{background-color:var(--calendar-range-bg, #e5e7eb);color:#111827;position:relative}._inRange_f446n_243:before{content:"";position:absolute;inset:0 -2px;background-color:var(--calendar-range-bg, #e5e7eb);z-index:-1}._checkIn_f446n_225:after{content:none}._checkOut_f446n_234:before{content:none}._disabled_f446n_178{color:#d1d5db;cursor:not-allowed;background-color:transparent}._disabled_f446n_178:hover{background-color:transparent;color:#d1d5db}._calendarFooter_f446n_277{padding:20px 24px;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:16px;background-color:#fafafa}._calendarFooterTop_f446n_286{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}._dateSummary_f446n_294{display:flex;gap:24px}._selectedDate_f446n_299{display:flex;flex-direction:column;gap:4px}._dateLabel_f446n_305{font-size:12px;font-weight:500;color:#6b7280;text-transform:uppercase}._dateValue_f446n_312{font-size:14px;font-weight:600;color:#111827}._doneButton_f446n_318{background:var(--primary-color, #111827);color:#fff;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s}._doneButton_f446n_318:hover{background-color:var(--primary-color-hover, #374151)}._nightAdjustment_f446n_335{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid rgba(17,24,39,.1);border-radius:12px;margin-bottom:12px}._nightAdjustmentLabel_f446n_346{font-size:14px;font-weight:500;color:#374151;white-space:nowrap}._nightAdjustmentControls_f446n_353{display:flex;align-items:center;gap:8px;margin-left:auto}._nightAdjustmentBtn_f446n_360{background:#f3f4f6;border:1px solid rgba(17,24,39,.12);color:#111827;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;font-size:18px;font-weight:600}._nightAdjustmentBtn_f446n_360:hover:not(:disabled){background:#e5e7eb;border-color:#11182733}._nightAdjustmentBtn_f446n_360:disabled{opacity:.4;cursor:not-allowed}._nightAdjustmentValue_f446n_386{font-size:16px;font-weight:600;color:#111827;min-width:48px;text-align:center}@media (max-width: 768px){._calendarOverlay_f446n_2{padding:10px}._calendarModal_f446n_17{max-height:95vh;width:calc(100vw - 24px);left:50%;transform:translate(-50%);right:auto;margin-top:12px;z-index:1000}._calendarHeader_f446n_33,._calendarContent_f446n_98{padding:16px 20px}._monthCard_f446n_104{padding:16px}._calendarFooter_f446n_277{padding:16px 20px;flex-direction:column;gap:16px;align-items:stretch}._nightAdjustment_f446n_335{width:100%}._nightAdjustmentControls_f446n_353{margin-left:0;justify-content:center}._calendarFooterTop_f446n_286{flex-direction:column;align-items:stretch}._dateSummary_f446n_294{justify-content:center;gap:16px;width:100%}._doneButton_f446n_318{width:100%}._monthCard_f446n_104:not(:last-child):after{position:absolute;inset:auto 0 0;height:1px;width:100%}._monthCards_f446n_104{gap:1px}._dayButton_f446n_161{height:36px;width:36px;font-size:13px}}@media (max-width: 480px){._calendarGrid_f446n_143{gap:2px}._dayButton_f446n_161{height:32px;width:32px;font-size:12px}._monthCards_f446n_104{gap:16px}._calendarModal_f446n_17{width:calc(100vw - 16px);border-radius:12px}}')),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})(); import { jsxs as c, jsx as n, Fragment as me } from "react/jsx-runtime"; import { useState as P, useEffect as z, useMemo as U, useRef as ce, useCallback as Ce } from "react"; const Je = "_container_1bzvz_7", Ue = "_searchBar_1bzvz_11", He = "_noPromoCode_1bzvz_45", Ze = "_actions_1bzvz_49", Xe = "_promoInput_1bzvz_58", Qe = "_segment_1bzvz_63", qe = "_segmentActive_1bzvz_80", Ke = "_fadeIn_1bzvz_88", et = "_bgFadeIn_1bzvz_109", tt = "_bgFadeInFromLeft_1bzvz_110", nt = "_bgFadeInFromRight_1bzvz_111", ot = "_segmentBg_1bzvz_114", at = "_segmentLabel_1bzvz_145", st = "_segmentButton_1bzvz_155", rt = "_popover_1bzvz_227", it = "_promoRow_1bzvz_278", ct = "_searchBtn_1bzvz_304", lt = "_searchText_1bzvz_347", dt = "_spinner_1bzvz_352", ut = "_visuallyHidden_1bzvz_381", ht = "_stickyMiniMobile_1bzvz_394", mt = "_stickyMiniMobileTop_1bzvz_414", gt = "_stickyBar_1bzvz_437", bt = "_stickyBarButton_1bzvz_456", pt = "_stickyBarMini_1bzvz_467", ft = "_stickyBarSearchBtn_1bzvz_483", _t = "_stickyBarSegment_1bzvz_522", kt = "_stickyBarLabel_1bzvz_536", yt = "_stickyBarValue_1bzvz_542", wt = "_calendarOverlayHost_1bzvz_557", vt = "_error_1bzvz_612", Ct = "_mobileExpanded_1bzvz_644", Nt = "_mobileReserveButton_1bzvz_661", Dt = "_mobileCloseButton_1bzvz_702", xt = "_guestsModal_1bzvz_734", It = "_guestsHeader_1bzvz_757", St = "_guestsTitle_1bzvz_762", Mt = "_guestsContent_1bzvz_775", Bt = "_roomGroup_1bzvz_780", Tt = "_counterGroup_1bzvz_823", At = "_counterItem_1bzvz_829", Ot = "_counterText_1bzvz_844", Lt = "_counterLabel_1bzvz_857", Et = "_counterDescription_1bzvz_864", Rt = "_counterControl_1bzvz_870", zt = "_counterBtn_1bzvz_881", Pt = "_counterValue_1bzvz_906", Ft = "_guestsActions_1bzvz_1019", jt = "_doneBtn_1bzvz_1026", a = { container: Je, searchBar: Ue, noPromoCode: He, actions: Ze, promoInput: Xe, segment: Qe, segmentActive: qe, fadeIn: Ke, bgFadeIn: et, bgFadeInFromLeft: tt, bgFadeInFromRight: nt, segmentBg: ot, segmentLabel: at, segmentButton: st, popover: rt, promoRow: it, searchBtn: ct, searchText: lt, spinner: dt, visuallyHidden: ut, stickyMiniMobile: ht, stickyMiniMobileTop: mt, stickyBar: gt, stickyBarButton: bt, stickyBarMini: pt, stickyBarSearchBtn: ft, stickyBarSegment: _t, stickyBarLabel: kt, stickyBarValue: yt, calendarOverlayHost: wt, error: vt, mobileExpanded: Ct, mobileReserveButton: Nt, mobileCloseButton: Dt, guestsModal: xt, guestsHeader: It, guestsTitle: St, guestsContent: Mt, roomGroup: Bt, counterGroup: Tt, counterItem: At, counterText: Ot, counterLabel: Lt, counterDescription: Et, counterControl: Rt, counterBtn: zt, counterValue: Pt, guestsActions: Ft, doneBtn: jt }, $t = "_calendarModal_f446n_17", Gt = "_calendarHeader_f446n_33", Vt = "_navButton_f446n_40", Yt = "_closeButton_f446n_65", Wt = "_calendarContent_f446n_98", Jt = "_monthCards_f446n_104", Ut = "_monthCard_f446n_104", Ht = "_monthHeader_f446n_131", Zt = "_monthTitle_f446n_135", Xt = "_calendarGrid_f446n_143", Qt = "_dayHeader_f446n_149", qt = "_dayButton_f446n_161", Kt = "_disabled_f446n_178", en = "_otherMonth_f446n_189", tn = "_pastDay_f446n_194", nn = "_today_f446n_200", on = "_weekend_f446n_206", an = "_selected_f446n_215", sn = "_checkIn_f446n_225", rn = "_checkOut_f446n_234", cn = "_inRange_f446n_243", ln = "_calendarFooter_f446n_277", dn = "_calendarFooterTop_f446n_286", un = "_dateSummary_f446n_294", hn = "_selectedDate_f446n_299", mn = "_dateLabel_f446n_305", gn = "_dateValue_f446n_312", bn = "_doneButton_f446n_318", pn = "_nightAdjustment_f446n_335", fn = "_nightAdjustmentLabel_f446n_346", _n = "_nightAdjustmentControls_f446n_353", kn = "_nightAdjustmentBtn_f446n_360", yn = "_nightAdjustmentValue_f446n_386", m = { calendarModal: $t, calendarHeader: Gt, navButton: Vt, closeButton: Yt, calendarContent: Wt, monthCards: Jt, monthCard: Ut, monthHeader: Ht, monthTitle: Zt, calendarGrid: Xt, dayHeader: Qt, dayButton: qt, disabled: Kt, otherMonth: en, pastDay: tn, today: nn, weekend: on, selected: an, checkIn: sn, checkOut: rn, inRange: cn, calendarFooter: ln, calendarFooterTop: dn, dateSummary: un, selectedDate: hn, dateLabel: mn, dateValue: gn, doneButton: bn, nightAdjustment: pn, nightAdjustmentLabel: fn, nightAdjustmentControls: _n, nightAdjustmentBtn: kn, nightAdjustmentValue: yn }, wn = [ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ], vn = ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"], Ee = ({ checkInDate: o, checkOutDate: t, minDate: d, numberOfNights: g = 1, editingMode: D, onDateSelect: x, onNightAdjust: C, onClose: A, onDone: S }) => { const w = /* @__PURE__ */ new Date(), le = w.getMonth(), F = w.getFullYear(), [E, M] = P(le), [_, B] = P(F); z(() => { console.log("[booking-search-widget][Calendar] props", { checkInDate: o, checkOutDate: t, minDate: d }); }, [o, t, d]); const Q = (T) => { const $ = T.getFullYear(), O = String(T.getMonth() + 1).padStart(2, "0"), R = String(T.getDate()).padStart(2, "0"); return `${$}-${O}-${R}`; }, V = (T) => { if (!T) return null; const [$, O, R] = T.split("-").map(Number); return new Date($, (O || 1) - 1, R || 1); }, Y = V(o), H = V(t), ne = (T, $) => { const O = new Date($, T, 1), R = new Date(O); R.setDate(R.getDate() - O.getDay()); const de = [], oe = new Date(R); for (let b = 0; b < 42; b++) { const I = new Date(oe), q = I.getDate(), v = I.getMonth() === T, ue = Q(I) === Q(w), pe = d ? V(d) : w, ae = Q(I) < Q(pe ?? w), Z = I.getDay() === 0 || I.getDay() === 6, se = Q(I), re = o === se, fe = t === se; let j = !1; if (fe && Y && o && t) { const K = V(o), ee = V(t); ee && K && ee > K && (j = !0); } const k = re || j; let he = !1; if (Y && H && o && t) { const K = V(o), ee = V(t); if (K && ee && ee > K) { const _e = Y < H ? Y : H, G = Y > H ? Y : H; he = I > _e && I < G; } } let u = ae || !v; D === "checkout" && Y && o && se <= o && !re && (u = !0), de.push({ date: I, day: q, isCurrentMonth: v, isToday: ue, isWeekend: Z, isPast: ae, isSelected: k, isInRange: he, isCheckIn: re, isCheckOut: j, isDisabled: u }), oe.setDate(oe.getDate() + 1); } return de; }; U( () => ne(E, _), [E, _, o, t, d, D] ); const be = (T) => { if (T.isDisabled) return; const $ = Q(T.date); console.log("[booking-search-widget][Calendar] onDateSelect", { dateStr: $, editingMode: D }), x($); }, Ne = () => { E === 11 ? (M(0), B(_ + 1)) : M(E + 1); }, De = () => { E === 0 ? (M(11), B(_ - 1)) : M(E - 1); }, xe = () => { const T = [], $ = E, O = _, R = (E + 1) % 12, de = E === 11 ? _ + 1 : _, oe = [ [$, O], [R, de] ]; for (const [b, I] of oe) { const q = ne(b, I); T.push( /* @__PURE__ */ c("div", { className: m.monthCard, children: [ /* @__PURE__ */ n("div", { className: m.monthHeader, children: /* @__PURE__ */ c("h3", { className: m.monthTitle, children: [ wn[b], " ", I ] }) }), /* @__PURE__ */ c("div", { className: m.calendarGrid, children: [ vn.map((v) => /* @__PURE__ */ n("div", { className: m.dayHeader, children: v }, v)), q.map((v, ue) => /* @__PURE__ */ n( "button", { type: "button", className: ` ${m.dayButton} ${v.isCurrentMonth ? "" : m.otherMonth} ${v.isPast ? m.pastDay : ""} ${v.isWeekend ? m.weekend : ""} ${v.isToday ? m.today : ""} ${v.isSelected ? m.selected : ""} ${v.isInRange ? m.inRange : ""} ${v.isCheckIn ? m.checkIn : ""} ${v.isCheckOut ? m.checkOut : ""} ${v.isDisabled ? m.disabled : ""} `, onClick: () => be(v), disabled: v.isDisabled, children: v.day }, ue )) ] }) ] }, `${I}-${b}`) ); } return T; }; return /* @__PURE__ */ c("div", { className: m.calendarModal, onMouseDown: (T) => T.stopPropagation(), children: [ /* @__PURE__ */ c("div", { className: m.calendarHeader, children: [ /* @__PURE__ */ n("button", { type: "button", className: m.navButton, onClick: De, "aria-label": "Mes anterior", children: /* @__PURE__ */ n("svg", { viewBox: "0 0 24 24", "aria-hidden": !0, width: "18", height: "18", children: /* @__PURE__ */ n("path", { d: "M15.5 19l-7-7 7-7", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }), /* @__PURE__ */ n("h2", { children: "Seleccionar fechas" }), /* @__PURE__ */ n("button", { type: "button", className: m.navButton, onClick: Ne, "aria-label": "Mes siguiente", children: /* @__PURE__ */ n("svg", { viewBox: "0 0 24 24", "aria-hidden": !0, width: "18", height: "18", children: /* @__PURE__ */ n("path", { d: "M8.5 5l7 7-7 7", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }), /* @__PURE__ */ n("button", { type: "button", className: m.closeButton, onClick: A, "aria-label": "Cerrar calendario", children: "×" }) ] }), /* @__PURE__ */ n("div", { className: m.calendarContent, children: /* @__PURE__ */ n("div", { className: m.monthCards, children: xe() }) }), /* @__PURE__ */ c("div", { className: m.calendarFooter, children: [ /* @__PURE__ */ c("div", { className: m.calendarFooterTop, children: [ /* @__PURE__ */ c("div", { className: m.dateSummary, children: [ o && /* @__PURE__ */ c("div", { className: m.selectedDate, children: [ /* @__PURE__ */ n("span", { className: m.dateLabel, children: "Check-in:" }), /* @__PURE__ */ n("span", { className: m.dateValue, children: V(o)?.toLocaleDateString("es-ES", { day: "numeric", month: "long" }) }) ] }), t && /* @__PURE__ */ c("div", { className: m.selectedDate, children: [ /* @__PURE__ */ n("span", { className: m.dateLabel, children: "Check-out:" }), /* @__PURE__ */ n("span", { className: m.dateValue, children: V(t)?.toLocaleDateString("es-ES", { day: "numeric", month: "long" }) }) ] }) ] }), /* @__PURE__ */ n( "button", { type: "button", className: m.doneButton, onClick: () => { S ? S() : A(); }, "aria-label": "Aplicar selección", children: "Listo" } ) ] }), o && t && C && /* @__PURE__ */ c("div", { className: m.nightAdjustment, children: [ /* @__PURE__ */ n("span", { className: m.nightAdjustmentLabel, children: "Ajustar noches:" }), /* @__PURE__ */ c("div", { className: m.nightAdjustmentControls, children: [ /* @__PURE__ */ n( "button", { type: "button", className: m.nightAdjustmentBtn, onClick: () => C(-1), disabled: g <= 1, "aria-label": "Reducir una noche", children: "−" } ), /* @__PURE__ */ c("span", { className: m.nightAdjustmentValue, children: [ g, " ", g === 1 ? "noche" : "noches" ] }), /* @__PURE__ */ n( "button", { type: "button", className: m.nightAdjustmentBtn, onClick: () => C(1), "aria-label": "Aumentar una noche", children: "+" } ) ] }) ] }) ] }) ] }); }, je = { rooms: 1, adults: 2, childrenAges: [], infants: 0 }, $e = ";", Ge = ".", Ie = (o, t = 0) => { const d = Number.parseInt(o, 10); return Number.isFinite(d) && d >= 0 ? d : t; }, Cn = (o) => { const t = Number.parseFloat(o); return Number.isFinite(t) && t >= 0 ? t : 0; }, Nn = (o) => o ? o.split($e).map((t) => t.trim()).filter(Boolean).map((t) => { const [d, g] = t.split(":"), [D, x = "0", C = "0"] = (g ?? "").split(","), A = x.split(Ge).map((S) => S.trim()).filter(Boolean).map((S) => Cn(S)).filter((S) => S >= 0); return { rooms: Math.max(1, Ie(d, 1)), adults: Math.max(1, Ie(D, 1)), childrenAges: A, infants: Math.max(0, Ie(C, 0)) }; }) : [je], Dn = (o) => o.map((d) => { const D = d.childrenAges.filter((C) => typeof C == "number" && Number.isFinite(C) && C >= 0).map((C) => { if (Number.isInteger(C)) return String(C); const A = Number(C.toFixed(2)); return A % 1 === 0 ? String(A) : A.toString(); }).join(Ge); return `${d.rooms}:${d.adults},${D},${d.infants}`; }).join($e), Re = (o) => o.reduce( (d, g) => (d.rooms += g.rooms, d.adults += g.adults, d.children += g.childrenAges.length, d.infants += g.infants, d), { rooms: 0, adults: 0, children: 0, infants: 0 } ), Ve = (o) => o.map((t) => ({ ...t, childrenAges: [...t.childrenAges] })), Se = /\d{4}-\d{2}-\d{2}/, xn = () => { const o = /* @__PURE__ */ new Date(); o.setHours(0, 0, 0, 0); const t = o.getFullYear(), d = String(o.getMonth() + 1).padStart(2, "0"), g = String(o.getDate()).padStart(2, "0"); return `${t}-${d}-${g}`; }, ze = (o, t) => { const [d, g, D] = o.split("-").map(Number), x = new Date(d, g - 1, D); x.setDate(x.getDate() + t); const C = x.getFullYear(), A = String(x.getMonth() + 1).padStart(2, "0"), S = String(x.getDate()).padStart(2, "0"); return `${C}-${A}-${S}`; }, Pe = (o, t) => o && Se.test(o) ? o : t, In = "en", Sn = "USD", Mn = "GLOBAL", Bn = 1e3, Fe = (o) => { const t = Pe(o.initialStart, xn()), d = Pe(o.initialEnd, ze(t, 1)), g = t; let D = d; D <= g && (D = ze(g, 1)); const x = Nn(o.initialGroups), C = x.length ? x : [je], A = o.productId ?? Bn; let S; if (typeof window < "u") try { const w = localStorage.getItem(`booking-widget-promo-code-${A}`); w && (S = w); } catch (w) { console.warn("[booking-search-widget] could not read promo code from localStorage", w); } return { startDate: g, endDate: D, pos: o.pos ?? Mn, locale: o.locale ?? In, currency: o.currency ?? Sn, productId: A, groups: Ve(C), redirect: !!o.redirect, promoCode: S, isSearching: !1, errors: {} }; }, Tn = (o, t) => { if (!Se.test(o)) return "Start date is invalid."; if (!Se.test(t)) return "End date is invalid."; if (t <= o) return "End date must be after start date."; const d = new Date(o), D = new Date(t).getTime() - d.getTime(); return Math.ceil(D / (1e3 * 60 * 60 * 24)) < 1 ? "Check-out must be at least 1 day after check-in." : null; }, An = (o) => { if (!o.length) return "At least one room group is required."; for (const [t, d] of o.entries()) { if (d.rooms <= 0) return `Room ${t + 1}: rooms must be greater than 0.`; if (d.adults <= 0) return `Room ${t + 1}: adults must be greater than 0.`; if (d.childrenAges.some((g) => g < 0)) return `Room ${t + 1}: child ages must be >= 0.`; if (d.infants < 0) return `Room ${t + 1}: infants must be >= 0.`; } return null; }, On = (o) => { const t = {}, d = Tn(o.startDate, o.endDate); d && (t.dates = d), (!o.productId || o.productId <= 0) && (t.productId = "Product is required."); const g = An(o.groups); return g && (t.groups = g), o.pos || (t.pos = "POS is required."), o.locale || (t.locale = "Language is required."), o.currency || (t.currency = "Currency is required."), { valid: Object.keys(t).length === 0, errors: t }; }, Ln = (o, t) => { let d = o.groups; (t.hideBabies || t.hideChildren) && (d = o.groups.map((x) => ({ ...x, childrenAges: t.hideChildren ? [] : x.childrenAges, infants: t.hideBabies ? 0 : x.infants }))), console.log("[booking-search-widget][buildSearchPayload] groups to format:", JSON.stringify(d, null, 2)); const g = Dn(d); console.log("[booking-search-widget][buildSearchPayload] formatted groups_form:", g); const D = { start_date: o.startDate, end_date: o.endDate, product_id: Number(o.productId) || 0, // Convert to number as API expects integer groups_form: g, pos: o.pos, language: o.locale, currency: o.currency }; return o.promoCode && (D.code = o.promoCode), D; }, En = (o, t) => { o && o(t); }, Rn = (o, t, d) => En(o, { type: t, payload: d }), zn = [ { value: "en", label: "English" }, { value: "es", label: "Español" }, { value: "pt", label: "Português" } ], Pn = ["USD", "EUR", "ARS", "BRL"], ge = 767, Fn = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ill5Mi1oSy1VYktQTFZSci1QSm5heSJ9.eyJnaXZlbl9uYW1lIjoiU2FudGlhZ28iLCJmYW1pbHlfbmFtZSI6IkNhYnJhbCIsIm5pY2tuYW1lIjoic2NhYnJhbCIsIm5hbWUiOiJTYW50aWFnbyBDYWJyYWwiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSkp2NkxsUFVxVl90NTRobjk1TGlqWTJXcTN3S21uaDNSYjZaZFY4Tzk4MW1XOGgySVc9czk2LWMiLCJ1cGRhdGVkX2F0IjoiMjAyNS0xMS0xMFQxODowNjoyMi40NTZaIiwiZW1haWwiOiJzY2FicmFsQHB4c29sLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpc3MiOiJodHRwczovL2F1dGgwLnB4c29sLmNvbS8iLCJhdWQiOiJtN2pDRFBhcVFCaGxNM2hRbFVZYnhhUURUVXhvSmtJVyIsInN1YiI6Imdvb2dsZS1vYXV0aDJ8MTA5Njc3NTgxMDcwMTk4NTU4NjI2IiwiaWF0IjoxNzYyNzk3OTgzLCJleHAiOjE3NjMzOTc5ODMsInNpZCI6IldlRVpNRURhVjFzellyWWh0cXdkbDJPaWtERUpRa190Iiwibm9uY2UiOiI3NWU1M2RkZGFhMzczNWYxMzkzODYxMTM4NGE1ZDZkNCJ9.VON_f1eYpEBwG_L3yXkz4IjeLJXdm6XHS5d753Zm5bBcvQc3zPuCyqG_4vHP5KOHK17VeWslkap1TR_yLGJNUB9XPoyTH7KjQrArPtW9P2p-cIO3uADYdv1sGsLFYYjb_KkVcSOUFD8XXbQ-3mgMOXLKqJbUiLT1M12X9v-mZv-OWwkrg0gLTW9hZVaqs3OU0tnwUsfEH3nHge5EdUj5yAGVDi31aDFke-afR2hBlFEZJ4JHuqjtWXD_vlW-C18psYoWSRojlkkP31W5A6M8TILZZm_ck1QoPf8aN6aXF_g6btkhLpuhw7PSuVmImiw4IFlxdcAnv0dYt962Kqf8HA", jn = (o, t, d) => { const g = Ve(o); return g[t] = { ...g[t], ...d, childrenAges: d.childrenAges ?? g[t].childrenAges }, g; }, $n = (o) => { const [t, d] = P(() => Fe(o)), g = ce(!1), D = ce(null), x = ce(null), C = ce(null), A = ce(null), [S, w] = P(!1), [le, F] = P(!1), [E, M] = P(!1), [_, B] = P(null), [Q, V] = P(!1), [Y, H] = P(!1), ne = ce(!1), be = ce(!0), Ne = () => typeof window > "u" ? !1 : window.visualViewport && typeof window.visualViewport.width == "number" ? window.visualViewport.width <= ge : typeof window.matchMedia == "function" ? window.matchMedia(`(max-width: ${ge}px)`).matches : window.innerWidth <= ge, [De, xe] = P(Ne), [T, $] = P(!1), O = De || T, [R, de] = P(null), oe = Ce((e) => { de((s) => s === e ? s : e); }, []), b = U(() => { const e = t.productInfo, s = { maxAdults: e?.max_mayores ?? e?.MaxAdult ?? Number.POSITIVE_INFINITY, maxChildren: e?.max_menores ?? e?.MaxChild ?? Number.POSITIVE_INFINITY, maxBabies: e?.max_babies ?? e?.MaxBabies ?? Number.POSITIVE_INFINITY, maxChildAge: e?.max_childrens_age ?? e?.MaxChildrensAge ?? 17, maxBabyAge: e?.max_babies_age ?? e?.MaxBabiesAge ?? 2, datePickerStart: e?.date_picker_start ?? e?.DatePickerStart ?? 0 }; return console.log("[booking-search-widget] computed limits from productInfo", { raw: { max_mayores: e?.max_mayores, MaxAdult: e?.MaxAdult, max_menores: e?.max_menores, MaxChild: e?.MaxChild, max_babies: e?.max_babies, MaxBabies: e?.MaxBabies, max_childrens_age: e?.max_childrens_age, MaxChildrensAge: e?.MaxChildrensAge, max_babies_age: e?.max_babies_age, MaxBabiesAge: e?.MaxBabiesAge }, computed: s }), s; }, [t.productInfo]), I = (e) => { const s = e.getFullYear(), r = String(e.getMonth() + 1).padStart(2, "0"), i = String(e.getDate()).padStart(2, "0"); return `${s}-${r}-${i}`; }, q = U(() => { const e = /* @__PURE__ */ new Date(); e.setHours(0, 0, 0, 0); const s = I(e); return console.log("[booking-search-widget] computed minStartDateIso", { datePickerStart: b.datePickerStart, iso: s }), s; }, [b.datePickerStart]), [v, ue] = P(null), [pe, ae] = P(null), Z = U(() => _ === "checkin" ? 0 : _ === "checkout" ? 1 : E ? 2 : null, [_, E]); z(() => { Z !== null && (v === null ? ae("initial") : Z > v ? ae("fromRight") : Z < v ? ae("fromLeft") : ae("initial"), ue(Z)); }, [Z, v]); const se = (e) => { const s = Z === e, r = `${a.segment} ${s ? a.segmentActive : ""}`.trim(); return s ? `${r} ${a.fadeIn}` : r; }, re = (e) => Z !== e ? "" : pe === "fromRight" ? a.bgFadeInFromRight : pe === "fromLeft" ? a.bgFadeInFromLeft : a.bgFadeIn; z(() => { if (!g.current) { g.current = !0; return; } d(Fe(o)); }, [ o.initialStart, o.initialEnd, o.initialGroups, o.locale, o.currency, o.pos, o.productId, o.redirect ]), z(() => { const e = A.current; if (!e) return; const s = (h) => { be.current = h, V(!h), h && ne.current && (B("checkin"), w(!0), F(!1), M(!1), ne.current = !1); }, r = new IntersectionObserver( (h) => { const f = h[0], p = f.isIntersecting && f.intersectionRatio > 0; s(p); }, { root: null, threshold: [0, 0.01, 0.5, 1] } ); r.observe(e); const i = () => s(be.current); return window.addEventListener("scroll", i, { passive: !0 }), () => { r.disconnect(), window.removeEventListener("scroll", i); }; }, []); const fe = () => { if (O) H(!0), ne.current = !0, setTimeout(() => { const e = A.current; e ? (console.log("[booking-search-widget] scrolling to search bar", e), e.scrollIntoView({ behavior: "smooth", block: "center" })) : console.warn("[booking-search-widget] searchBarRef is null"); }, 100); else { ne.current = !0; const e = A.current; e ? (console.log("[booking-search-widget] scrolling to search bar (desktop)", e), e.scrollIntoView({ behavior: "smooth", block: "start" })) : console.warn("[booking-search-widget] searchBarRef is null (desktop)"); } }, j = Ce( (e, s) => { Rn(o.onEvent, e, s); }, [o.onEvent] ); z(() => { j("ready", { state: t }), console.log("[booking-search-widget] widget ready", { state: t }); }, []), z(() => { if (typeof document > "u" || typeof window > "u") return; let e = !1; try { e = window.self !== window.top; } catch { e = !0; } if (!e || document.querySelector('meta[name="viewport"]')) return; const r = document.createElement("meta"); return r.name = "viewport", r.content = "width=device-width, initial-scale=1", document.head.appendChild(r), () => { r.parentNode && r.parentNode.removeChild(r); }; }, []), z(() => { if (typeof window > "u" || typeof window.matchMedia != "function") return; const e = window.matchMedia(`(max-width: ${ge}px)`), s = () => xe((r) => { const i = e.matches; return r === i ? r : i; }); try { e.addEventListener("change", s); } catch { e.addListener(s); } return s(), () => { try { e.removeEventListener("change", s); } catch { e.removeListener(s); } }; }, []), z(() => { if (!R || typeof window > "u") return; const e = (i) => { const h = typeof i == "number" ? i : R.getBoundingClientRect().width; $((f) => { const p = h <= ge; return f === p ? f : p; }); }; e(); const s = typeof window.ResizeObserver == "function" ? window.ResizeObserver : void 0; if (s) { const i = new s((h) => { if (!h.length) { e(); return; } const f = h[0].contentRect?.width; e(typeof f == "number" ? f : void 0); }); return i.observe(R), () => i.disconnect(); } const r = () => e(); return window.addEventListener("resize", r), () => { window.removeEventListener("resize", r); }; }, [R]); const k = Ce( (e) => { d((s) => { const r = typeof e == "function" ? e(s) : { ...s, ...e }; return j("change", { state: r }), r; }); }, [j] ); z(() => { let e = !1; return (async () => { try { const r = `https://api-1-eb.pxsol.io/product/info?id=${t.productId}&t=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ill5Mi1oSy1VYktQTFZSci1QSm5heSJ9.eyJnaXZlbl9uYW1lIjoiU2FudGlhZ28iLCJmYW1pbHlfbmFtZSI6IkNhYnJhbCIsIm5pY2tuYW1lIjoic2NhYnJhbCIsIm5hbWUiOiJTYW50aWFnbyBDYWJyYWwiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRl