{"version":3,"file":"Book_button.DRswQusr.mjs","names":["useState","useRef","useState","Children"],"sources":["https:/framerusercontent.com/modules/j4jpyA8J5ZOdZrYpFSm7/3ghQH2pVC2rVFZYcoE8v/Mews_integration.js","https:/framerusercontent.com/modules/5PwpCO5YxxGt1MKhSBUJ/Y2N8K0brVTCScFh3gria/Avvio_integration.js","https:/framerusercontent.com/modules/ZRnSgvnCNBtNjFnKgy8A/YBaQrXPdwjd4bLKnAS6B/Cloudbeds_integration.js","https:/framerusercontent.com/modules/suYg7ALXWasn4MpwOXag/orRUlheT4QRv2DKa7I43/Component_protection.js","https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/F3ViRebVt4PC1BRb54yv/6PvXit0vwhE9CT6RPV4k/Override_mews.js","https:/framerusercontent.com/modules/YdzI1knTpMjudyd9i2wq/mSw0ha1G1oxSI9hUqgNc/Book_button.js"],"sourcesContent":["import{RenderTarget}from\"framer\";import{useEffect,useState}from\"react\";// ------------------------------------------------- //\n// DEEPLINK BOOKING\n// ------------------------------------------------- //\nexport const handleMewsDeeplinkBooking=({mewsDistributorId,mewsBaseUrl,defaultLanguage,isDemo,checkIn,checkOut,adults,children,missingDatesOpenStep,roomId,voucherCode})=>{const mewsRoute=missingDatesOpenStep===\"rooms\"?\"rooms\":checkIn&&checkOut?\"rooms\":roomId?\"rates\":\"\";const params=new URLSearchParams({mewsStart:checkIn?formatDateForMews(checkIn):\"\",mewsEnd:checkOut?formatDateForMews(checkOut):\"\",mewsAdultCount:adults?adults.toString():\"\",mewsChildCount:children?children.toString():\"\",language:defaultLanguage,mewsRoute:mewsRoute,mewsRoom:roomId?roomId:\"\",mewsVoucherCode:voucherCode?voucherCode:\"\"});const mewsUrl=isDemo?\"https://app.mews-demo.com/distributor\":mewsBaseUrl;const bookingUrl=`${mewsUrl}/${mewsDistributorId}?${params.toString()}`;window.open(bookingUrl,\"_blank\");};// ------------------------------------------------- //\n// IFRAME BOOKING\n// ------------------------------------------------- //\nexport const useInitializeMewsScript=({isDemo,isIframeIntegration,mewsDistributorId})=>{// @eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst[mewsApi,setMewsApi]=useState(null);const isOnFramerCanvas=RenderTarget.hasRestrictions();useEffect(()=>{if(isOnFramerCanvas)return;if(!isIframeIntegration)return;// Create and load the Mews script\nconst script=document.createElement(\"script\");script.src=\"https://api.mews.com/distributor/distributor.min.js\";script.async=false;script.onload=()=>{// Initialize Mews Distributor after script loads\nwindow.Mews.Distributor({configurationIds:[mewsDistributorId]},api=>{setMewsApi(api);},{dataBaseUrl:isDemo?\"https://api.mews-demo.com\":\"https://api.mews.com\"});};document.head.appendChild(script);// Cleanup\nreturn()=>{document.head.removeChild(script);};},[isDemo,mewsDistributorId,isIframeIntegration,isOnFramerCanvas]);return mewsApi;};export const handleMewsIframeBooking=({mewsApi,checkinDate,checkoutDate,adults,children,missingDatesOpenStep,roomId,voucherCode})=>{if(RenderTarget.hasRestrictions())return;if(!mewsApi)return;// Store the currently focused element\nconst previouslyFocusedElement=document.activeElement;// Create overlay if it doesn't exist\nlet overlay=document.querySelector(\".mews-overlay\");if(!overlay){overlay=document.createElement(\"div\");overlay.className=\"mews-overlay\";document.body.appendChild(overlay);}// Function to clean up overlay and body class\nconst cleanup=()=>{overlay?.classList.remove(\"active\");document.body.classList.remove(\"mews-iframe-active\");// Restore focus to the previously focused element\nif(previouslyFocusedElement instanceof HTMLElement){previouslyFocusedElement.focus();}};// Add event listener to close on overlay click\nconst handleOverlayClick=()=>{mewsApi.close();cleanup();};overlay.addEventListener(\"click\",handleOverlayClick);// Function to find the active iframe\nconst findActiveIframe=()=>{const iframes=document.querySelectorAll(\"iframe.mews-distributor\");return Array.from(iframes).find(iframe=>iframe.hasAttribute(\"title\"));};// Keep track of previous opacity value\nlet wasVisible=false;// Set up mutation observer for the document body\nconst observer=new MutationObserver(()=>{const activeIframe=findActiveIframe();if(activeIframe){const container=activeIframe.parentElement;if(container){const iframeOpacity=parseFloat(getComputedStyle(activeIframe).opacity);const isVisible=iframeOpacity>=.9;// Focus the iframe when it becomes visible\nif(!wasVisible&&isVisible){activeIframe.setAttribute(\"tabindex\",\"0\");// @ts-expect-error - focus is not typed\nactiveIframe.focus({preventScroll:true});}// Only cleanup if iframe was previously visible and is now hidden\nif(wasVisible&&!isVisible){cleanup();observer.disconnect();}// Update visibility state for next check\nwasVisible=isVisible;}}});// Start observing the document body for changes\nobserver.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"style\",\"class\"]});const{startDate,endDate}=formatDateForIframe({checkinDateFormatted:checkinDate?formatDateForMews(checkinDate):\"\",checkoutDateFormatted:checkoutDate?formatDateForMews(checkoutDate):\"\"});mewsApi.setStartDate(startDate);mewsApi.setEndDate(endDate);if(adults){mewsApi.setAdultCount(adults);}if(children){mewsApi.setChildCount(children);}if(voucherCode&&voucherCode!==\"\"){mewsApi.setVoucherCode(voucherCode);}// Show overlay and add body class\noverlay.classList.add(\"active\");document.body.classList.add(\"mews-iframe-active\");mewsApi.open();if(checkinDate&&checkoutDate){mewsApi.showRooms();}else if(missingDatesOpenStep===\"rooms\"){mewsApi.showRooms();}else if(roomId){mewsApi.showRates(roomId);}// Clean up event listener and observer when component unmounts\nreturn()=>{overlay?.removeEventListener(\"click\",handleOverlayClick);observer.disconnect();cleanup();};};const formatDateForIframe=({checkinDateFormatted,checkoutDateFormatted})=>{const[startYear,startMonth,startDay]=checkinDateFormatted.split(\"-\");const[endYear,endMonth,endDay]=checkoutDateFormatted.split(\"-\");const startDate=new Date(parseInt(startYear),parseInt(startMonth)-1,parseInt(startDay));const endDate=new Date(parseInt(endYear),parseInt(endMonth)-1,parseInt(endDay));return{startDate,endDate};};export function getMewsIframeStyle({maxWidth,maxHeight,borderRadius,shadowColor,paddingTop}){return`\n    /* Overlay styles */\n    body.mews-iframe-active {\n      overflow: hidden;\n    }\n\n    .mews-overlay {\n      position: fixed;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      background-color: rgba(0, 0, 0, 0.5);\n      z-index: 9998;\n      display: none;\n    }\n\n    .mews-overlay.active {\n      display: block;\n    }\n\n    /* Iframe container styles */\n    .mews-distributor {\n      position: fixed;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      max-width: ${maxWidth}vw;\n      max-height: ${maxHeight}vh;\n      width: 100%;\n      margin: auto;\n      border-radius: ${borderRadius}px;\n      box-shadow: 0 4px 12px ${shadowColor};\n      padding-top: ${paddingTop}px;\n      z-index: 9999;\n      background-color: white;\n    }\n\n    @media (max-width: 768px) {\n      .mews-distributor {\n        max-width: ${maxWidth}vw;\n        max-height: ${maxHeight}vh;\n        width: ${maxWidth}vw;\n        height: ${maxHeight}vh;\n        border-radius: ${borderRadius}px;\n        box-shadow: 0 4px 12px ${shadowColor};\n        padding-top: ${paddingTop}px;\n      }\n    }\n`;}const formatDateForMews=dateString=>{// Split the date string into components\nconst[month,day,year]=dateString.split(\" \");// Create a map of month abbreviations to numbers\nconst months={Jan:\"01\",Feb:\"02\",Mar:\"03\",Apr:\"04\",May:\"05\",Jun:\"06\",Jul:\"07\",Aug:\"08\",Sep:\"09\",Oct:\"10\",Nov:\"11\",Dec:\"12\"};// Format day to ensure two digits\nconst formattedDay=day.replace(\",\",\"\").padStart(2,\"0\");// Construct the date string in YYYY-MM-DD format\nreturn`${year}-${months[month]}-${formattedDay}`;};\nexport const __FramerMetadata__ = {\"exports\":{\"useInitializeMewsScript\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"handleMewsDeeplinkBooking\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getMewsIframeStyle\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"handleMewsIframeBooking\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Mews_integration.map","// ------------------------------------------------- //\n// AVVIO DEEPLINK BOOKING\n// ------------------------------------------------- //\nexport const handleAvvioDeeplinkBooking=({avvioSiteId,checkIn,checkOut,adults,children,voucherCode,roomId})=>{// Calculate nights from check-in and check-out dates\nconst nights=checkIn&&checkOut?calculateNights(checkIn,checkOut):1;const params=new URLSearchParams({checkin:checkIn?formatDateForAvvio(checkIn):\"\",nights:nights.toString(),totalAdults:adults?adults.toString():\"1\",totalChildren:children?children.toString():\"0\",promotionCode:voucherCode||\"\",// fw_submitted: \"1\",\n// av: \"search\",\nroomIDs:roomId||\"\"});// Remove empty parameters to clean up the URL\nconst cleanParams=new URLSearchParams;params.forEach((value,key)=>{if(value!==\"\"&&value!==\"0\"&&!(key===\"voucherCode\"&&value===\"\")){cleanParams.append(key,value);}});const bookingUrl=`https://ar.avvio.com/convert/site/${encodeURIComponent(avvioSiteId)}/en/results.php?${cleanParams.toString()}`;window.open(bookingUrl,\"_blank\");};// ------------------------------------------------- //\n// HELPER FUNCTIONS\n// ------------------------------------------------- //\nconst formatDateForAvvio=dateString=>{// Convert from \"Jan 15, 2024\" format to \"2024-01-15\" format\nconst[month,day,year]=dateString.split(\" \");// Create a map of month abbreviations to numbers\nconst months={Jan:\"01\",Feb:\"02\",Mar:\"03\",Apr:\"04\",May:\"05\",Jun:\"06\",Jul:\"07\",Aug:\"08\",Sep:\"09\",Oct:\"10\",Nov:\"11\",Dec:\"12\"};// Format day to ensure two digits\nconst formattedDay=day.replace(\",\",\"\").padStart(2,\"0\");// Construct the date string in YYYY-MM-DD format\nreturn`${year}-${months[month]}-${formattedDay}`;};const calculateNights=(checkIn,checkOut)=>{// Parse dates and calculate the difference in days\nconst checkInDate=new Date(formatDateForAvvio(checkIn));const checkOutDate=new Date(formatDateForAvvio(checkOut));const timeDifference=checkOutDate.getTime()-checkInDate.getTime();const daysDifference=Math.ceil(timeDifference/(1e3*3600*24));return Math.max(1,daysDifference);// Ensure at least 1 night\n};\nexport const __FramerMetadata__ = {\"exports\":{\"handleAvvioDeeplinkBooking\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Avvio_integration.map","/* eslint-disable react-refresh/only-export-components */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{RenderTarget}from\"framer\";import React,{useEffect,useRef}from\"react\";const CLOUDBEDS_SCRIPT_ID=\"cloudbeds-immersive-experience-script\";const CLOUDBEDS_SCRIPT_URL=\"https://static1.cloudbeds.com/booking-engine/latest/static/js/immersive-experience/cb-immersive-experience.js\";let cloudbedsScriptPromise=null;const loadCloudbedsScript=()=>{if(typeof window===\"undefined\")return Promise.resolve();if(window.openImmersiveExperiencePopup)return Promise.resolve();if(cloudbedsScriptPromise)return cloudbedsScriptPromise;cloudbedsScriptPromise=new Promise((resolve,reject)=>{const existingScript=document.querySelector(`script[src=\"${CLOUDBEDS_SCRIPT_URL}\"]`);const handleLoad=()=>resolve();const handleError=()=>{cloudbedsScriptPromise=null;reject(new Error(\"Unable to load the Cloudbeds booking engine\"));};if(existingScript){existingScript.addEventListener(\"load\",handleLoad,{once:true});existingScript.addEventListener(\"error\",handleError,{once:true});return;}const script=document.createElement(\"script\");script.id=CLOUDBEDS_SCRIPT_ID;script.src=CLOUDBEDS_SCRIPT_URL;script.type=\"text/javascript\";script.async=true;script.dataset.cookieconsent=\"ignore\";script.addEventListener(\"load\",handleLoad,{once:true});script.addEventListener(\"error\",handleError,{once:true});document.head.appendChild(script);});return cloudbedsScriptPromise;};export const useInitializeCloudbedsScript=enabled=>{const isOnFramerCanvas=RenderTarget.hasRestrictions();useEffect(()=>{if(!enabled||isOnFramerCanvas)return;void loadCloudbedsScript().catch(error=>{console.error(error);});},[enabled,isOnFramerCanvas]);};export const handleCloudbedsOverlayBooking=async({integration,checkIn,checkOut,adults,children,promoCode,roomId})=>{if(RenderTarget.hasRestrictions())return;if(!integration.propertyCode.trim()){console.warn(\"Cloudbeds property code is required\");return;}let shouldRestoreUrl=true;const restoreUrl=()=>{if(!shouldRestoreUrl)return;shouldRestoreUrl=false;window.history.replaceState(window.history.state,\"\",originalUrl);};try{await loadCloudbedsScript();}catch(error){console.error(error);return;}const openPopup=window.openImmersiveExperiencePopup;if(!openPopup){console.error(\"Cloudbeds popup API is unavailable\");return;}const originalUrl=`${window.location.pathname}${window.location.search}${window.location.hash}`;const popupUrl=new URL(window.location.href);setSearchParam(popupUrl.searchParams,\"checkin\",formatDate(checkIn));setSearchParam(popupUrl.searchParams,\"checkout\",formatDate(checkOut));setSearchParam(popupUrl.searchParams,\"guests\",adults);setSearchParam(popupUrl.searchParams,\"kids\",children&&children>0?children:null);setSearchParam(popupUrl.searchParams,\"promo\",promoCode);setSearchParam(popupUrl.searchParams,\"rid\",roomId);try{window.history.replaceState(window.history.state,\"\",`${popupUrl.pathname}${popupUrl.search}${popupUrl.hash}`);await openPopup({propertyCode:integration.propertyCode.trim(),lang:integration.language||undefined,currency:integration.currency||undefined,closeLabel:integration.closeLabel||undefined,width:integration.overlayWidth||undefined,height:integration.overlayHeight||undefined,onClose:restoreUrl,position:\"center\"});}catch(error){console.error(\"Unable to open the Cloudbeds booking engine\",error);restoreUrl();}};const getAccommodationPickerCustomUrl=integration=>{const configuredUrl=integration.customUrl?.trim();if(configuredUrl)return configuredUrl;if(typeof window===\"undefined\")return undefined;return`${window.location.origin}${window.location.pathname}`;};const parseAccommodationPickerRedirectParams=()=>{if(typeof window===\"undefined\")return null;const params=new URLSearchParams(window.location.search);return parseAccommodationPickerSearchParams(params);};const parseAccommodationPickerSearchParams=params=>{const checkIn=params.get(\"checkin\");const checkOut=params.get(\"checkout\");const widgetSource=params.get(\"widget_source\");if(!checkIn||!checkOut)return null;if(widgetSource&&widgetSource!==\"accommodation_date_picker\"){return null;}const adults=params.get(\"guests\")??params.get(\"adults\");const children=params.get(\"kids\");const parsedAdults=adults?Number(adults):null;const parsedChildren=children?Number(children):null;return{checkIn,checkOut,roomId:params.get(\"rid\"),adults:parsedAdults!==null&&!Number.isNaN(parsedAdults)?parsedAdults:null,children:parsedChildren!==null&&!Number.isNaN(parsedChildren)?parsedChildren:null,promoCode:params.get(\"promo\")??undefined};};const parseAccommodationPickerRedirectUrl=url=>{try{const parsedUrl=typeof url===\"string\"?new URL(url,window.location.href):url;return parseAccommodationPickerSearchParams(parsedUrl.searchParams);}catch{return null;}};const openAccommodationPickerOverlay=async({integration,fallbackRoomId,redirectParams})=>{if(isHandlingAccommodationPickerRedirect)return;isHandlingAccommodationPickerRedirect=true;try{await handleCloudbedsOverlayBooking({integration,checkIn:redirectParams.checkIn,checkOut:redirectParams.checkOut,adults:redirectParams.adults,children:redirectParams.children,promoCode:redirectParams.promoCode,roomId:redirectParams.roomId||fallbackRoomId});}finally{isHandlingAccommodationPickerRedirect=false;}};let navigationInterceptorCount=0;let originalWindowOpen=null;const useCloudbedsAccommodationNavigationInterceptor=({integration,fallbackRoomId,enabled})=>{const isOnFramerCanvas=RenderTarget.hasRestrictions();useEffect(()=>{if(!enabled||isOnFramerCanvas||typeof window===\"undefined\")return;const handleRedirectUrl=url=>{if(!url)return false;const redirectParams=parseAccommodationPickerRedirectUrl(url);if(!redirectParams)return false;void openAccommodationPickerOverlay({integration,fallbackRoomId,redirectParams});return true;};navigationInterceptorCount+=1;if(navigationInterceptorCount===1){originalWindowOpen=window.open.bind(window);window.open=(url,target,features)=>{if(handleRedirectUrl(typeof url===\"string\"?url:url?.toString())){return null;}return originalWindowOpen?.(url,target,features)??null;};}const handleAnchorClick=event=>{const target=event.target;if(!(target instanceof Element))return;const anchor=target.closest(\"a[href]\");if(!anchor||anchor.getAttribute(\"target\")===\"_blank\")return;const href=anchor.getAttribute(\"href\");if(!handleRedirectUrl(href))return;event.preventDefault();event.stopImmediatePropagation();};document.addEventListener(\"click\",handleAnchorClick,true);return()=>{document.removeEventListener(\"click\",handleAnchorClick,true);navigationInterceptorCount-=1;if(navigationInterceptorCount===0&&originalWindowOpen){window.open=originalWindowOpen;originalWindowOpen=null;}};},[enabled,fallbackRoomId,integration,isOnFramerCanvas]);};let isHandlingAccommodationPickerRedirect=false;const useCloudbedsAccommodationPickerRedirectHandler=({integration,fallbackRoomId,enabled})=>{const isOnFramerCanvas=RenderTarget.hasRestrictions();useEffect(()=>{if(!enabled||isOnFramerCanvas)return;const handleAccommodationPickerRedirect=async()=>{const redirectParams=parseAccommodationPickerRedirectParams();if(!redirectParams)return;const cleanUrl=`${window.location.pathname}${window.location.hash}`;window.history.replaceState(window.history.state,\"\",cleanUrl);await openAccommodationPickerOverlay({integration,fallbackRoomId,redirectParams});};void handleAccommodationPickerRedirect();window.addEventListener(\"popstate\",handleAccommodationPickerRedirect);return()=>{window.removeEventListener(\"popstate\",handleAccommodationPickerRedirect);};},[enabled,fallbackRoomId,integration,isOnFramerCanvas]);};export function CloudbedsAccommodationDatePicker({integration,roomId,children}){const isOnFramerCanvas=RenderTarget.hasRestrictions();const wrapperRef=useRef(null);const accommodationCustomUrl=getAccommodationPickerCustomUrl(integration);useInitializeCloudbedsScript(true);useCloudbedsAccommodationPickerRedirectHandler({integration,fallbackRoomId:roomId,enabled:true});useCloudbedsAccommodationNavigationInterceptor({integration,fallbackRoomId:roomId,enabled:true});useEffect(()=>{if(isOnFramerCanvas||!wrapperRef.current)return;const wrapper=wrapperRef.current;const disableNativeButton=()=>{const nativeButton=getAccommodationButton(wrapper);if(!nativeButton)return false;nativeButton.tabIndex=-1;nativeButton.setAttribute(\"aria-hidden\",\"true\");return true;};if(disableNativeButton())return;const observer=new MutationObserver(()=>{if(!disableNativeButton())return;observer.disconnect();});observer.observe(wrapper,{childList:true,subtree:true});return()=>observer.disconnect();},[isOnFramerCanvas]);const handleTriggerClick=async()=>{if(!wrapperRef.current)return;try{await loadCloudbedsScript();const nativeButton=await waitForAccommodationButton(wrapperRef.current);nativeButton.click();}catch(error){console.error(\"Unable to open the Cloudbeds accommodation picker\",error);}};const trigger=isOnFramerCanvas?null:/*#__PURE__*/React.createElement(\"cb-accommodation-date-picker\",{\"property-code\":integration.propertyCode,rid:roomId,lang:integration.language||undefined,currency:integration.currency||undefined,\"custom-url\":accommodationCustomUrl,\"button-label\":\"Book Now\",\"class-name\":\"cloudbeds-accommodation-trigger-button\",style:{display:\"block\",position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",zIndex:1,pointerEvents:\"none\"}});return /*#__PURE__*/_jsxs(\"div\",{ref:wrapperRef,style:{position:\"relative\",width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n        .cloudbeds-accommodation-trigger-button {\n          position: absolute !important;\n          width: 1px !important;\n          height: 1px !important;\n          padding: 0 !important;\n          margin: 0 !important;\n          opacity: 0 !important;\n          overflow: hidden !important;\n          pointer-events: none !important;\n        }\n      `}),/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":!isOnFramerCanvas,style:{width:\"100%\",height:\"100%\",pointerEvents:\"none\"},children:children}),trigger,!isOnFramerCanvas&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Book room\",onClick:()=>void handleTriggerClick(),style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",margin:0,padding:0,border:0,background:\"transparent\",opacity:0,cursor:\"pointer\",zIndex:2}})]});}const getAccommodationButton=root=>root.querySelector('[data-testid=\"accommodation-date-picker-button\"]');const waitForAccommodationButton=root=>new Promise((resolve,reject)=>{const existingButton=getAccommodationButton(root);if(existingButton){resolve(existingButton);return;}const observer=new MutationObserver(()=>{const nativeButton=getAccommodationButton(root);if(!nativeButton)return;window.clearTimeout(timeoutId);observer.disconnect();resolve(nativeButton);});const timeoutId=window.setTimeout(()=>{observer.disconnect();reject(new Error(\"Cloudbeds accommodation picker did not initialize\"));},5e3);observer.observe(root,{childList:true,subtree:true});});const setSearchParam=(params,name,value)=>{if(value===undefined||value===null||value===\"\"){params.delete(name);return;}params.set(name,String(value));};const formatDate=date=>{if(!date)return null;const parsedDate=new Date(date);if(Number.isNaN(parsedDate.getTime()))return null;const year=parsedDate.getFullYear();const month=String(parsedDate.getMonth()+1).padStart(2,\"0\");const day=String(parsedDate.getDate()).padStart(2,\"0\");return`${year}-${month}-${day}`;};\nexport const __FramerMetadata__ = {\"exports\":{\"useInitializeCloudbedsScript\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"handleCloudbedsOverlayBooking\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CloudbedsIntegration\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CloudbedsAccommodationDatePicker\":{\"type\":\"reactComponent\",\"name\":\"CloudbedsAccommodationDatePicker\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Cloudbeds_integration.map","import{jsx as _jsx}from\"react/jsx-runtime\";const ALLOWED_DOMAINS=[\"localhost\",\"booking-widget-byehotelier.framer.website\"];const ALLOWED_DOMAIN_PATTERNS=[\"framercanvas.com\",\"framer.app\",\"framer.website\",\"victorianhotel.ca\",\"thewesleyaz.com\",\"experiencemeander.com\",\"thehubmurrayhill.com\",\"thewestfieldinn.com\",\"thehubmiddletown.com\",\"trophylodgeak.com\",\"the1919hotel.com\",\"theurbanflatsofflorence.com\",\"theurbanflats.com\",\"flatironhotel.com\",\"souththompsoninn.ca\"];function isHostnameMatchingAllowedPattern(hostname,pattern){return hostname===pattern||hostname.endsWith(`.${pattern}`);}const useComponentProtection=()=>{if(typeof window===\"undefined\")return true// Allow during SSR\n;const{hostname}=window.location;// Check exact domain matches\nif(ALLOWED_DOMAINS.includes(hostname)){return true;}const matchesAllowedDomainPattern=ALLOWED_DOMAIN_PATTERNS.some(pattern=>isHostnameMatchingAllowedPattern(hostname,pattern));return matchesAllowedDomainPattern;};export default function NotAllowedComponent(){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",minWidth:\"fit-content\",minHeight:\"fit-content\",maxHeight:\"200px\",backgroundColor:\"#ff4444\",color:\"white\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontFamily:\"sans-serif\",fontSize:\"14px\",fontWeight:\"bold\",textAlign:\"center\",border:\"2px solid #cc0000\",padding:\"12px\"},children:\"🔒 Access Not Allowed. Please contact byeHotelier.\"});}export{useComponentProtection};\nexport const __FramerMetadata__ = {\"exports\":{\"useComponentProtection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"NotAllowedComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Component_protection.map","import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";const useStore=createStore({mewsApi:null});export const withSetMewsApi=Component=>{// eslint-disable-next-line react/display-name\nreturn props=>{const[store,setStore]=useStore();return /*#__PURE__*/_jsx(Component,{...props,setStore:setStore});};};export const withMewsApi=Component=>{// eslint-disable-next-line react/display-name\nreturn props=>{const[store,setStore]=useStore();return /*#__PURE__*/_jsx(Component,{...props,mewsApi:store.mewsApi});};};\nexport const __FramerMetadata__ = {\"exports\":{\"withMewsApi\":{\"type\":\"reactHoc\",\"name\":\"withMewsApi\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSetMewsApi\":{\"type\":\"reactHoc\",\"name\":\"withSetMewsApi\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Override_mews.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{Children,cloneElement,isValidElement}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{handleMewsDeeplinkBooking,handleMewsIframeBooking}from\"https://framerusercontent.com/modules/j4jpyA8J5ZOdZrYpFSm7/3ghQH2pVC2rVFZYcoE8v/Mews_integration.js\";import{handleAvvioDeeplinkBooking}from\"https://framerusercontent.com/modules/5PwpCO5YxxGt1MKhSBUJ/Y2N8K0brVTCScFh3gria/Avvio_integration.js\";import{CloudbedsAccommodationDatePicker}from\"https://framerusercontent.com/modules/ZRnSgvnCNBtNjFnKgy8A/YBaQrXPdwjd4bLKnAS6B/Cloudbeds_integration.js\";import NotAllowedComponent,{useComponentProtection}from\"https://framerusercontent.com/modules/suYg7ALXWasn4MpwOXag/orRUlheT4QRv2DKa7I43/Component_protection.js\";// --------------------------------------------------- //\n// PROPERTY CONTROLS\n// --------------------------------------------------- //\naddPropertyControls(BookButton,{bookingEngine:{type:ControlType.Enum,options:[\"mews\",\"avvio\",\"cloudbeds\"],optionTitles:[\"Mews\",\"Avvio\",\"Cloudbeds\"],defaultValue:\"mews\"},mewsIntegration:{type:ControlType.Object,controls:{mewsDistributorId:{type:ControlType.String,defaultValue:\"\"},mewsBaseUrl:{type:ControlType.String,defaultValue:\"https://app.mews.com/distributor\",description:\"Usually don't change this\"},defaultLanguage:{type:ControlType.String,defaultValue:\"en-US\",description:\"[Supported language codes](https://mews-systems.gitbook.io/booking-engine-guide/booking-engine-api/guidelines/supported-language-codes)\"},mewsIntegrationType:{type:ControlType.Enum,options:[\"deeplink\",\"iframe\"],defaultValue:\"deeplink\"},isDemo:{type:ControlType.Boolean,defaultValue:true,description:\"If true, the widget will be in demo mode\"},iframeStyle:{type:ControlType.Object,controls:{maxWidth:{type:ControlType.Number,defaultValue:80,min:1,max:100,description:\"Viewport width\"},maxHeight:{type:ControlType.Number,defaultValue:80,min:1,max:100,description:\"Viewport height\"},borderRadius:{type:ControlType.Number,defaultValue:12,min:0,max:100,description:\"Border radius\"},shadowColor:{type:ControlType.Color,defaultValue:\"rgba(0, 0, 0, 0.15)\",description:\"Shadow color\"},paddingTop:{type:ControlType.Number,defaultValue:8,min:0,max:100,unit:\"px\",description:\"Padding top, for language and currency selector to not be sticked to the top of the widget\"}}}},hidden:props=>props.bookingEngine!==\"mews\"},avvioIntegration:{type:ControlType.Object,controls:{avvioSiteId:{type:ControlType.String,defaultValue:\"\"}},hidden:props=>props.bookingEngine!==\"avvio\"},cloudbedsIntegration:{type:ControlType.Object,controls:{propertyCode:{type:ControlType.String,defaultValue:\"\",description:\"6-character Cloudbeds property code\"},language:{type:ControlType.String,defaultValue:\"en\",description:\"2-letter language code\"},currency:{type:ControlType.String,defaultValue:\"\",description:\"Optional 3-letter currency code\"},customUrl:{type:ControlType.String,defaultValue:\"\",description:\"Optional redirect URL after date selection. Leave empty to keep guests on the current page in the embedded booking overlay.\"}},hidden:props=>props.bookingEngine!==\"cloudbeds\"},buttonComponent:{type:ControlType.ComponentInstance},buttonWidth:{type:ControlType.Enum,options:[\"default\",\"fill\"],optionTitles:[\"Default\",\"Fill\"],defaultValue:\"default\",displaySegmentedControl:true},roomId:{type:ControlType.String,defaultValue:\"\"}});// --------------------------------------------------- //\n// DEFAULT PROPS\n// --------------------------------------------------- //\nBookButton.defaultProps={bookingEngine:\"mews\",avvioIntegration:{avvioSiteId:\"\"},cloudbedsIntegration:{propertyCode:\"\",language:\"en\",currency:\"\",closeLabel:\"Close\",overlayWidth:\"90vw\",overlayHeight:\"90vh\",customUrl:\"\"},buttonComponent:undefined,buttonWidth:\"default\",mewsIntegration:{mewsDistributorId:\"34723ee1-8fdf-4aa9-9f3c-b24300d7ee4b\",mewsBaseUrl:\"https://app.mews.com/distributor\",defaultLanguage:\"en-US\",mewsIntegrationType:\"iframe\",isDemo:true,iframeStyle:{maxWidth:80,maxHeight:80,borderRadius:12,shadowColor:\"rgba(0, 0, 0, 0.15)\",paddingTop:8}},roomId:\"5bf22f23-7b6e-4437-8a31-b24300d7f4de\"};/**\n * @Copyright © David McBacon | Bachoff Studio\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 100\n * @framerIntrinsicHeight 40\n * @framerDisableUnlink\n */export default function BookButton(props){const handleBookButtonClick=()=>{handleBookingEngineBooking({bookingEngine:props.bookingEngine,mewsIntegration:props.mewsIntegration,avvioIntegration:props.avvioIntegration,mewsApi:props.mewsApi,roomId:props.roomId});};const isAllowed=useComponentProtection();if(!isAllowed){return /*#__PURE__*/_jsx(NotAllowedComponent,{});}const clonedButtonComponent=Children.map(props.buttonComponent,child=>{if(/*#__PURE__*/isValidElement(child)){return /*#__PURE__*/cloneElement(child,{style:{...child.props.style,width:props.buttonWidth===\"default\"?child.props.width:\"100%\"}});}return child;});const buttonVisual=props.buttonComponent&&props.buttonComponent.length>0?clonedButtonComponent:/*#__PURE__*/_jsx(\"button\",{style:{width:\"100%\",height:\"100%\",backgroundColor:\"#0D353D\",borderRadius:10,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",cursor:\"pointer\",color:\"white\"},\"aria-label\":\"Book Now\",children:\"Book Now\"});if(props.bookingEngine===\"cloudbeds\"){return /*#__PURE__*/_jsx(CloudbedsAccommodationDatePicker,{integration:props.cloudbedsIntegration,roomId:props.roomId,children:buttonVisual});}return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},onClick:handleBookButtonClick,children:buttonVisual});}const handleBookingEngineBooking=props=>{switch(props.bookingEngine){case\"mews\":if(!props.mewsApi)return;if(props.mewsIntegration.mewsIntegrationType===\"iframe\"){if(RenderTarget.hasRestrictions())return;handleMewsIframeBooking({mewsApi:props.mewsApi,roomId:props.roomId});}if(props.mewsIntegration.mewsIntegrationType===\"deeplink\"){handleMewsDeeplinkBooking({mewsDistributorId:props.mewsIntegration.mewsDistributorId,mewsBaseUrl:props.mewsIntegration.mewsBaseUrl,defaultLanguage:props.mewsIntegration.defaultLanguage,isDemo:props.mewsIntegration.isDemo,roomId:props.roomId});}break;case\"avvio\":handleAvvioDeeplinkBooking({avvioSiteId:props.avvioIntegration.avvioSiteId,roomId:props.roomId});break;}};BookButton.displayName=\"BOOK BUTTON - BYEHOTELIER\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BookButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"100\",\"framerIntrinsicHeight\":\"40\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}