{"version":3,"file":"DevelopmentMap.Cy0JcaPA.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/xNLV5fnWPI6JTJaAkDHH/WfcWvKNkf13iLlmgZobG/DevelopmentMap.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const categoryLabels={school:\"Schools\",grocery_or_supermarket:\"Grocery\",park:\"Parks\",transit_station:\"Transit\",cafe:\"Cafes\"};let googleMapsScriptPromise=null;let googleMapsLoadedKey=\"\";function escapeHtml(value){return value.replaceAll(\"&\",\"&amp;\").replaceAll(\"<\",\"&lt;\").replaceAll(\">\",\"&gt;\").replaceAll('\"',\"&quot;\").replaceAll(\"'\",\"&#039;\");}function loadGoogleMaps(apiKey){if(typeof window===\"undefined\")return Promise.resolve();if(!apiKey)return Promise.reject(new Error(\"Missing Google Maps API key\"));if(window.google?.maps)return Promise.resolve();if(googleMapsScriptPromise&&googleMapsLoadedKey===apiKey){return googleMapsScriptPromise;}googleMapsLoadedKey=apiKey;googleMapsScriptPromise=new Promise((resolve,reject)=>{const targetSrc=`https://maps.googleapis.com/maps/api/js?key=${encodeURIComponent(apiKey)}&libraries=places`;const createAndAppendScript=()=>{const script=document.createElement(\"script\");script.src=targetSrc;script.async=true;script.defer=true;script.setAttribute(\"data-hauser-gmaps\",\"true\");script.setAttribute(\"data-status\",\"loading\");script.onload=()=>{script.setAttribute(\"data-status\",\"loaded\");resolve();};script.onerror=()=>{script.setAttribute(\"data-status\",\"error\");reject(new Error(\"Google Maps failed to load\"));};document.head.appendChild(script);};const existing=document.querySelector('script[data-hauser-gmaps=\"true\"]');if(existing){if(window.google?.maps){resolve();return;}const existingKey=(()=>{try{const url=new URL(existing.src);return url.searchParams.get(\"key\")||\"\";}catch{return\"\";}})();if(existingKey&&existingKey!==apiKey){existing.remove();createAndAppendScript();return;}const status=existing.getAttribute(\"data-status\");if(status===\"loaded\"){if(window.google?.maps){resolve();return;}existing.remove();createAndAppendScript();return;}if(status===\"error\"){existing.remove();createAndAppendScript();return;}existing.addEventListener(\"load\",()=>resolve(),{once:true});existing.addEventListener(\"error\",()=>reject(new Error(\"Google Maps failed to load\")),{once:true});return;}createAndAppendScript();});return googleMapsScriptPromise;}async function geocodeAddress(geocoder,address){if(!address?.trim())return null;return await new Promise(resolve=>{geocoder.geocode({address},(results,status)=>{if(status===\"OK\"&&results?.[0]?.geometry?.location){const location=results[0].geometry.location;resolve({lat:location.lat(),lng:location.lng()});return;}resolve(null);});});}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function DevelopmentMap(props){const{apiKey,mode,height,developments,address,latitude,longitude,developmentName,showNearbyPlaces,nearbyRadius}=props;// User request: Lock visual map treatment to fixed Hauser design values and remove editable style controls while preserving map behavior and compatibility with existing instances.\nconst background=\"#F8F3E9\"// warm cream page/map surface\n;const subtleBackground=\"#EFE4D2\"// pale sand panel/map surface\n;const darkBackground=\"#DCCFBD\"// subtle sand border\n;const primary=\"#1E1E1E\"// charcoal type / development markers\n;const tertiary=\"#8F8578\"// muted taupe secondary text / POI markers\n;const markerColor=\"#1E1E1E\"// charcoal marker\n;const markerCenterColor=\"#F8F3E9\"// cream center\n;const poiMarkerColor=\"#8F8578\"// subdued POI marker\n;const messageFont={fontSize:\"15px\",lineHeight:\"1.3em\",letterSpacing:\"-0.01em\",fontWeight:500,fontStyle:\"normal\"};const staticRenderer=useIsStaticRenderer();const mapContainerRef=useRef(null);const mapRef=useRef(null);const infoWindowRef=useRef(null);const developmentMarkersRef=useRef([]);const poiMarkersRef=useRef([]);const markerListenersRef=useRef([]);const[statusMessage,setStatusMessage]=useState(\"\");const[legendItems,setLegendItems]=useState([]);const parsedDevelopments=useMemo(()=>{if(!developments?.trim())return[];return developments.split(/\\r?\\n/).map(rawLine=>rawLine.trim()).filter(line=>line.length>0).map(line=>{const parts=line.split(\"|\").map(part=>part.trim());if(parts.length<2)return null;const name=parts[0]||\"\";const address=parts[1]||\"\";const url=parts[2]?parts[2]:undefined;// Optional internal support: allow extra pipe-delimited lat/lng values when available.\nconst latitudeCandidate=parts[3]?Number(parts[3]):undefined;const longitudeCandidate=parts[4]?Number(parts[4]):undefined;const latitude=typeof latitudeCandidate===\"number\"&&Number.isFinite(latitudeCandidate)?latitudeCandidate:undefined;const longitude=typeof longitudeCandidate===\"number\"&&Number.isFinite(longitudeCandidate)?longitudeCandidate:undefined;if(!name&&!address)return null;return{name,address,url,latitude,longitude};}).filter(item=>item!==null);},[developments]);const mapStyles=useMemo(()=>[{elementType:\"geometry\",stylers:[{color:subtleBackground}]},{elementType:\"labels.text.fill\",stylers:[{color:primary}]},{elementType:\"labels.text.stroke\",stylers:[{color:background}]},{featureType:\"road\",elementType:\"geometry\",stylers:[{color:\"#E6DED1\"}]},{featureType:\"road\",elementType:\"geometry.stroke\",stylers:[{color:\"#DDD4C6\"}]},{featureType:\"water\",elementType:\"geometry\",stylers:[{color:\"#D7D8D2\"}]},{featureType:\"landscape\",elementType:\"geometry\",stylers:[{color:subtleBackground}]},{featureType:\"poi\",elementType:\"geometry\",stylers:[{color:\"#EAE3D7\"}]},{featureType:\"transit.line\",elementType:\"geometry\",stylers:[{color:darkBackground}]},{featureType:\"administrative\",elementType:\"geometry.stroke\",stylers:[{color:darkBackground}]}],[subtleBackground,primary,background,darkBackground]);const clearAllMarkers=useCallback(()=>{markerListenersRef.current.forEach(listener=>listener.remove());markerListenersRef.current=[];developmentMarkersRef.current.forEach(marker=>marker.setMap(null));poiMarkersRef.current.forEach(marker=>marker.setMap(null));developmentMarkersRef.current=[];poiMarkersRef.current=[];},[]);const createDevelopmentMarkerIcon=useCallback(()=>{return{path:window.google.maps.SymbolPath.CIRCLE,fillColor:markerColor,fillOpacity:1,strokeColor:markerCenterColor,strokeOpacity:1,strokeWeight:4,scale:10};},[markerColor,markerCenterColor]);const createPoiMarkerIcon=useCallback(()=>{return{path:window.google.maps.SymbolPath.CIRCLE,fillColor:poiMarkerColor,fillOpacity:.85,strokeColor:background,strokeOpacity:.9,strokeWeight:2,scale:6};},[poiMarkerColor,background]);useEffect(()=>{let cancelled=false;async function buildMap(){if(staticRenderer)return;if(typeof window===\"undefined\")return;if(!mapContainerRef.current)return;if(!apiKey?.trim()){startTransition(()=>setStatusMessage(\"Add a Google Maps API key to display this map.\"));return;}startTransition(()=>setStatusMessage(\"\"));try{await loadGoogleMaps(apiKey);if(cancelled||!window.google?.maps||!mapContainerRef.current)return;if(!mapRef.current){mapRef.current=new window.google.maps.Map(mapContainerRef.current,{center:{lat:37.7749,lng:-122.4194},zoom:mode===\"Detail\"?15:11,styles:mapStyles,mapTypeControl:false,streetViewControl:false,fullscreenControl:false,clickableIcons:false});}else{mapRef.current.setOptions({styles:mapStyles});}const map=mapRef.current;const geocoder=new window.google.maps.Geocoder;if(!infoWindowRef.current){infoWindowRef.current=new window.google.maps.InfoWindow;}clearAllMarkers();startTransition(()=>setLegendItems([]));if(mode===\"Overview\"){const resolvedList=[];for(const dev of parsedDevelopments||[]){let position=null;if(Number.isFinite(dev.latitude)&&Number.isFinite(dev.longitude)){position={lat:Number(dev.latitude),lng:Number(dev.longitude)};}else{position=await geocodeAddress(geocoder,dev.address);}if(position){resolvedList.push({...dev,position});}}if(cancelled)return;if(!resolvedList.length){startTransition(()=>setStatusMessage(\"No valid development locations found. Add coordinates or mappable addresses.\"));return;}const bounds=new window.google.maps.LatLngBounds;resolvedList.forEach(dev=>{const marker=new window.google.maps.Marker({map,position:dev.position,title:dev.name||\"Development\",icon:createDevelopmentMarkerIcon()});developmentMarkersRef.current.push(marker);bounds.extend(dev.position);const linkHtml=dev.url?.trim()?`<a href=\"${escapeHtml(dev.url)}\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"color:${escapeHtml(primary)};text-decoration:underline;\">View development</a>`:\"\";const content=`\n                            <div role=\"dialog\" aria-label=\"${escapeHtml(dev.name||\"Development details\")}\" style=\"font-family:Inter, sans-serif; padding:2px 0;\">\n                                <div style=\"font-size:14px; font-weight:600; color:${escapeHtml(primary)}; margin-bottom:4px;\">${escapeHtml(dev.name||\"Development\")}</div>\n                                ${linkHtml}\n                            </div>\n                        `;const listener=marker.addListener(\"click\",()=>{infoWindowRef.current?.setContent(content);infoWindowRef.current?.open({map,anchor:marker,shouldFocus:true});});markerListenersRef.current.push(listener);});map.fitBounds(bounds,60);}else{let detailPosition=null;const trimmedAddress=address?.trim()??\"\";if(trimmedAddress){detailPosition=await geocodeAddress(geocoder,trimmedAddress);}if(!detailPosition&&Number.isFinite(latitude)&&Number.isFinite(longitude)){detailPosition={lat:Number(latitude),lng:Number(longitude)};}if(cancelled)return;if(!detailPosition){startTransition(()=>setStatusMessage(\"Could not resolve the detail location. Check address or coordinates.\"));return;}map.setCenter(detailPosition);map.setZoom(15);const detailMarker=new window.google.maps.Marker({map,position:detailPosition,title:developmentName||\"Development\",icon:createDevelopmentMarkerIcon()});developmentMarkersRef.current.push(detailMarker);if(showNearbyPlaces){const service=new window.google.maps.places.PlacesService(map);const categories=[\"school\",\"grocery_or_supermarket\",\"park\",\"transit_station\",\"cafe\"];const searchCategory=async type=>await new Promise(resolve=>{service.nearbySearch({location:detailPosition,radius:nearbyRadius,type},(results,searchStatus)=>{if(searchStatus===window.google.maps.places.PlacesServiceStatus.OK&&results){resolve(results.slice(0,6));return;}resolve([]);});});const poiResults=await Promise.all(categories.map(category=>searchCategory(category)));if(cancelled)return;const usedLegend=new Set;poiResults.forEach((places,categoryIndex)=>{const label=categoryLabels[categories[categoryIndex]];places.forEach(place=>{if(!place.geometry?.location)return;const poiMarker=new window.google.maps.Marker({map,position:place.geometry.location,title:place.name,icon:createPoiMarkerIcon()});poiMarkersRef.current.push(poiMarker);usedLegend.add(label);});});startTransition(()=>setLegendItems(Array.from(usedLegend)));}}}catch(error){if(cancelled)return;startTransition(()=>setStatusMessage(\"Google Maps failed to load. Check your API key and billing setup.\"));}}buildMap();return()=>{cancelled=true;clearAllMarkers();};},[apiKey,mode,parsedDevelopments,address,latitude,longitude,developmentName,showNearbyPlaces,nearbyRadius,mapStyles,primary,createDevelopmentMarkerIcon,createPoiMarkerIcon,clearAllMarkers,staticRenderer]);const rootStyle=useMemo(()=>({position:\"relative\",width:\"100%\",height,borderRadius:24,overflow:\"hidden\",background,border:`1px solid ${darkBackground}`}),[height,background,darkBackground]);const messageStyle=useMemo(()=>({position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",textAlign:\"center\",padding:\"20px\",color:primary,background:subtleBackground,fontFamily:messageFont.fontFamily,fontWeight:messageFont.fontWeight,fontStyle:messageFont.fontStyle,fontSize:messageFont.fontSize,lineHeight:messageFont.lineHeight,letterSpacing:messageFont.letterSpacing}),[subtleBackground,primary,messageFont]);return /*#__PURE__*/_jsxs(\"div\",{style:rootStyle,children:[/*#__PURE__*/_jsx(\"div\",{ref:mapContainerRef,style:{width:\"100%\",height:\"100%\"}}),(staticRenderer||statusMessage)&&/*#__PURE__*/_jsx(\"div\",{style:messageStyle,role:\"status\",\"aria-live\":\"polite\",children:staticRenderer&&!statusMessage?\"Static canvas preview. Enter Preview to load the live Google Map.\":statusMessage}),mode===\"Detail\"&&showNearbyPlaces&&legendItems.length>0&&!statusMessage&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:12,bottom:12,background:\"rgba(255,255,255,0.9)\",border:`1px solid ${darkBackground}`,borderRadius:12,padding:\"8px 10px\",display:\"flex\",flexDirection:\"column\",gap:4},\"aria-label\":\"Nearby places legend\",children:legendItems.map(item=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:6,color:tertiary,fontFamily:messageFont.fontFamily,fontSize:12,lineHeight:1.2},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":true,style:{width:8,height:8,borderRadius:999,display:\"inline-block\",background:poiMarkerColor}}),/*#__PURE__*/_jsx(\"span\",{children:item})]},item))})]});}addPropertyControls(DevelopmentMap,{apiKey:{type:ControlType.String,title:\"API Key\",defaultValue:\"\",placeholder:\"Google Maps API key\"},mode:{type:ControlType.Enum,title:\"Mode\",options:[\"Overview\",\"Detail\"],optionTitles:[\"Overview\",\"Detail\"],defaultValue:\"Overview\",displaySegmentedControl:true},height:{type:ControlType.Number,title:\"Height\",defaultValue:520,min:260,max:1200,step:10,unit:\"px\"},developments:{type:ControlType.String,title:\"Developments\",hidden:props=>props.mode!==\"Overview\",displayTextArea:true,defaultValue:\"Hauser Estates | 1 Market St, San Francisco, CA | /development/hauser-estates\\n\"+\"Willow Terrace | 500 El Camino Real, San Mateo, CA | /development/willow-terrace\"},address:{type:ControlType.String,title:\"Address\",hidden:props=>props.mode!==\"Detail\",defaultValue:\"1 Market St, San Francisco, CA\"},latitude:{type:ControlType.Number,title:\"Latitude\",hidden:props=>props.mode!==\"Detail\",defaultValue:37.7937,min:-90,max:90,step:1e-4},longitude:{type:ControlType.Number,title:\"Longitude\",hidden:props=>props.mode!==\"Detail\",defaultValue:-122.395,min:-180,max:180,step:1e-4},developmentName:{type:ControlType.String,title:\"Development\",hidden:props=>props.mode!==\"Detail\",defaultValue:\"Hauser Estates\"},showNearbyPlaces:{type:ControlType.Boolean,title:\"Nearby POIs\",hidden:props=>props.mode!==\"Detail\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},nearbyRadius:{type:ControlType.Number,title:\"POI Radius\",hidden:props=>props.mode!==\"Detail\"||!props.showNearbyPlaces,defaultValue:1800,min:300,max:5e3,step:100,unit:\"m\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DevelopmentMap\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DevelopmentMap.map"],"mappings":"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"}