{"version":3,"file":"MultiLocationMap.DZf373CK.mjs","names":["useRef","__esmMin","window","init_npm_react_18_3_1","init_ssg_sandbox_shims","de","init_jsx_runtime","c","ce","addPropertyControls","init_framer_BWFVvmND","RenderTarget","ControlType","MultiLocationMap","props","mapRef","leafletRef","firstMarkerRef","escapeHtml","value","ensureLeafletLoaded","link","script","resolve","ensureMarkerClusterLoaded","linkDefault","enableClustering","L","map","bounds","markers","validCoords","parts","m","s","lat","lng","coord","tileUrl","mapTheme","markerGroup","count","cluster","markerColor","markerData","coordinates","latitude","longitude","marker","useCustomPin","customPinImage","customIcon","customPinSize","safeName","name","safeAddress","address","safeLinkLabel","linkLabel","safeLinkUrl","linkUrl","popupContent","popoverBackground","popoverTextColor","zoom","showPopup","styleId","style","init_MultiLocationMap"],"sources":["https:/framerusercontent.com/modules/3b2o6cOT0hjo3plqMLVI/40tmw2eVbEXaiQBJiiMf/MultiLocationMap.js"],"sourcesContent":["// Multi-location map component without API key, using OpenStreetMap + Leaflet CDN\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * MultiLocationMap (OpenStreetMap powered map)\n * Shows multiple markers on a map without requiring an API key\n *\n * @framerIntrinsicWidth 480\n * @framerIntrinsicHeight 320\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function MultiLocationMap(props){const{markers,zoom,useCustomPin,customPinImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Custom Pin\"},customPinSize,markerColor,popoverBackground,popoverTextColor,mapTheme,borderRadius,enableClustering,showPopup,style}=props;const mapRef=useRef(null);const leafletRef=useRef(null);const firstMarkerRef=useRef(null);useEffect(()=>{if(!mapRef.current||typeof window===\"undefined\")return;const escapeHtml=value=>{const str=value==null?\"\":String(value);return str.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#039;\");};// If leaflet already loaded, skip\nif(window.L&&leafletRef.current){leafletRef.current.remove();leafletRef.current=null;}// Dynamically load Leaflet CSS & JS if not present\nfunction ensureLeafletLoaded(){if(window.L)return Promise.resolve(window.L);return new Promise(resolve=>{const exists=document.getElementById(\"leaflet-style\");if(!exists){const link=document.createElement(\"link\");link.id=\"leaflet-style\";link.rel=\"stylesheet\";link.href=\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.css\";document.head.appendChild(link);}const script=document.createElement(\"script\");script.src=\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.js\";script.onload=()=>resolve(window.L);document.body.appendChild(script);});}// Dynamically load Leaflet.markercluster plugin\nfunction ensureMarkerClusterLoaded(){if(window.L&&window.L.markerClusterGroup){return Promise.resolve(window.L);}return new Promise(resolve=>{const cssExists=document.getElementById(\"leaflet-markercluster-style\");if(!cssExists){const link=document.createElement(\"link\");link.id=\"leaflet-markercluster-style\";link.rel=\"stylesheet\";link.href=\"https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css\";document.head.appendChild(link);const linkDefault=document.createElement(\"link\");linkDefault.id=\"leaflet-markercluster-default-style\";linkDefault.rel=\"stylesheet\";linkDefault.href=\"https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css\";document.head.appendChild(linkDefault);}const scriptExists=document.getElementById(\"leaflet-markercluster-script\");if(!scriptExists){const script=document.createElement(\"script\");script.id=\"leaflet-markercluster-script\";script.src=\"https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js\";script.onload=()=>resolve(window.L);document.body.appendChild(script);}else{resolve(window.L);}});}ensureLeafletLoaded().then(L=>{// Load marker cluster plugin if clustering is enabled\nconst loadPromise=enableClustering?ensureMarkerClusterLoaded():Promise.resolve(L);return loadPromise.then(()=>{if(!mapRef.current)return;// Prevent double init\nmapRef.current.innerHTML=\"\";// Load Google Font Inter\nconst fontExists=document.getElementById(\"google-font-inter\");if(!fontExists){const link=document.createElement(\"link\");link.id=\"google-font-inter\";link.rel=\"stylesheet\";link.href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap\";document.head.appendChild(link);}const map=L.map(mapRef.current,{zoomControl:true,attributionControl:false});leafletRef.current=map;// Compute bounds if markers exist\nlet bounds=null;if(markers.length>0){const validCoords=markers.map(m=>{const parts=m.coordinates.split(\",\").map(s=>s.trim());if(parts.length!==2)return null;const lat=parseFloat(parts[0]);const lng=parseFloat(parts[1]);if(isNaN(lat)||isNaN(lng))return null;return[lat,lng];}).filter(coord=>coord!==null);if(validCoords.length>0){bounds=L.latLngBounds(validCoords);}}// Select tile layer based on theme\nlet tileUrl=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";switch(mapTheme){case\"dark\":tileUrl=\"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png\";break;case\"satellite\":tileUrl=\"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\";break;case\"topo\":tileUrl=\"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png\";break;case\"light\":tileUrl=\"https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png\";break;case\"standard\":default:tileUrl=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";break;}L.tileLayer(tileUrl,{maxZoom:19}).addTo(map);if(markers.length>0){// Create marker cluster group if clustering is enabled\nconst markerGroup=enableClustering&&L.markerClusterGroup?L.markerClusterGroup({showCoverageOnHover:false,zoomToBoundsOnClick:true,spiderfyOnMaxZoom:true,removeOutsideVisibleBounds:true,iconCreateFunction:function(cluster){const count=cluster.getChildCount();let size=\"small\";if(count>10)size=\"medium\";if(count>50)size=\"large\";return L.divIcon({html:`<div style=\"\n                      background: ${markerColor};\n                      color: white;\n                      border-radius: 50%;\n                      width: 40px;\n                      height: 40px;\n                      display: flex;\n                      align-items: center;\n                      justify-content: center;\n                      font-family: 'Inter', sans-serif;\n                      font-weight: 600;\n                      font-size: 14px;\n                      border: 3px solid white;\n                      box-shadow: 0 2px 8px rgba(0,0,0,0.3);\n                    \">${count}</div>`,className:\"custom-cluster-icon\",iconSize:L.point(40,40)});}}):null;for(const markerData of markers){const{coordinates,name,address,linkUrl,linkLabel}=markerData;// Parse coordinates from \"lat, lng\" format\nconst parts=coordinates.split(\",\").map(s=>s.trim());if(parts.length!==2)continue;// Skip invalid format\nconst latitude=parseFloat(parts[0]);const longitude=parseFloat(parts[1]);// Skip if parsing failed\nif(isNaN(latitude)||isNaN(longitude))continue;let marker;if(useCustomPin&&customPinImage.src){// Create custom icon\nconst customIcon=L.icon({iconUrl:customPinImage.src,iconSize:[customPinSize,customPinSize],iconAnchor:[customPinSize/2,customPinSize],popupAnchor:[0,-customPinSize]});marker=L.marker([latitude,longitude],{icon:customIcon});}else{// Use default circle marker\nmarker=L.circleMarker([latitude,longitude],{radius:10,color:markerColor,fillColor:markerColor,fillOpacity:.85,weight:2});// Add hover effect only for circle markers\nmarker.on(\"mouseover\",function(){this.setStyle({radius:12,fillOpacity:1});});marker.on(\"mouseout\",function(){this.setStyle({radius:10,fillOpacity:.85});});}// Create custom popup with styled content\nconst safeName=escapeHtml(name);const safeAddress=escapeHtml(address);const safeLinkLabel=escapeHtml(linkLabel||\"View\");const safeLinkUrl=escapeHtml(linkUrl||\"\");const popupContent=`\n              <div style=\"\n                padding: 12px 16px;\n                background: ${popoverBackground};\n                color: ${popoverTextColor};\n                border-radius: 8px;\n                font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n                font-size: 14px;\n                font-weight: 500;\n                line-height: 1.4;\n                min-width: 120px;\n              \">\n                <div style=\"font-weight: 600; margin-bottom: 4px;\">${safeName}</div>\n                <div style=\"font-weight: 400; opacity: 0.8;\">${safeAddress}</div>\n                ${safeLinkUrl?`\n                  <a\n                    href=\"${safeLinkUrl}\"\n                    target=\"_blank\"\n                    rel=\"noopener noreferrer\"\n                    style=\"\n                      margin-top: 10px;\n                      display: inline-flex;\n                      align-items: center;\n                      justify-content: center;\n                      padding: 8px 10px;\n                      border-radius: 6px;\n                      background: ${markerColor};\n                      color: white;\n                      text-decoration: none;\n                      font-weight: 600;\n                      font-size: 13px;\n                      line-height: 1;\n                    \"\n                  >${safeLinkLabel}</a>\n                `:\"\"}\n              </div>\n            `;marker.bindPopup(popupContent,{closeButton:true,className:\"custom-popup\",maxWidth:300,autoPan:true});// Store reference to first marker\nif(!firstMarkerRef.current){firstMarkerRef.current=marker;}// Add marker to cluster group or directly to map\nif(markerGroup){markerGroup.addLayer(marker);}else{marker.addTo(map);}}// Add cluster group to map if clustering is enabled\nif(markerGroup){map.addLayer(markerGroup);}if(bounds)map.fitBounds(bounds,{padding:[24,24],maxZoom:zoom});else map.setView([37.77,-122.41],zoom)// Center on SF by default\n;}// Open popup if showPopup is enabled and there's exactly 1 marker\nif(showPopup&&markers.length===1&&firstMarkerRef.current){setTimeout(()=>{if(firstMarkerRef.current){firstMarkerRef.current.openPopup();}},100);}// Add custom CSS for popup styling\nconst styleId=\"leaflet-custom-popup-style\";if(!document.getElementById(styleId)){const style=document.createElement(\"style\");style.id=styleId;style.textContent=`\n            .custom-popup .leaflet-popup-content-wrapper {\n              background: transparent;\n              box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n              padding: 0;\n              border-radius: 8px;\n            }\n            .custom-popup .leaflet-popup-content {\n              margin: 0;\n              line-height: 1;\n            }\n            .custom-popup .leaflet-popup-tip {\n              background: ${popoverBackground};\n            }\n            .custom-cluster-icon {\n              background: transparent !important;\n              border: none !important;\n            }\n          `;document.head.appendChild(style);}});});return()=>{if(leafletRef.current){leafletRef.current.remove();leafletRef.current=null;}firstMarkerRef.current=null;};},[markers,zoom,useCustomPin,customPinImage,customPinSize,markerColor,popoverBackground,popoverTextColor,mapTheme,enableClustering,showPopup]);if(RenderTarget.current()===RenderTarget.thumbnail)return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background:\"#eee\",borderRadius,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",minHeight:320,minWidth:480},children:\"Map preview\"});return /*#__PURE__*/_jsx(\"div\",{ref:mapRef,style:{width:style?.width||\"100%\",height:style?.height||\"100%\",borderRadius,overflow:\"hidden\",...style},\"aria-label\":\"Map with multiple locations\",role:\"region\"});}addPropertyControls(MultiLocationMap,{markers:{type:ControlType.Array,title:\"Markers\",description:\"Add locations to display on the map. Use 'Lat, Lng' format (e.g., 59.1997, 17.6172)\",control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Property Name\",description:\"Property designation or name\"},address:{type:ControlType.String,title:\"Address\",defaultValue:\"Street Address\",description:\"Street address or location\"},coordinates:{type:ControlType.String,title:\"Lat, Lng\",defaultValue:\"37.77, -122.41\",placeholder:\"59.1997, 17.6172\",description:\"Copy coordinates directly from Google Maps\"},linkUrl:{type:ControlType.Link,title:\"Link\",defaultValue:\"\",description:\"Optional button link shown in the popup\"},linkLabel:{type:ControlType.String,title:\"Link Label\",defaultValue:\"View\",hidden:({linkUrl})=>!linkUrl}}},defaultValue:[{coordinates:\"37.77, -122.41\",name:\"San Francisco Property\",address:\"Market Street\",linkUrl:\"https://example.com\",linkLabel:\"View\"},{coordinates:\"34.05, -118.25\",name:\"Los Angeles Property\",address:\"Hollywood Blvd\",linkUrl:\"\"},{coordinates:\"40.7128, -74.006\",name:\"New York Property\",address:\"Broadway\",linkUrl:\"\"}]},zoom:{type:ControlType.Number,title:\"Zoom Level\",defaultValue:4,min:1,max:18,step:1,description:\"Initial zoom level (1 = world view, 18 = street level)\"},mapTheme:{type:ControlType.Enum,title:\"Map Theme\",options:[\"standard\",\"dark\",\"satellite\",\"topo\",\"light\"],optionTitles:[\"Standard\",\"Dark\",\"Satellite\",\"Topographic\",\"Light\"],defaultValue:\"standard\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,max:50,step:1},enableClustering:{type:ControlType.Boolean,title:\"Cluster Pins\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Group nearby markers into clusters with count badges\"},useCustomPin:{type:ControlType.Boolean,title:\"Custom Pin\",defaultValue:false,enabledTitle:\"Custom\",disabledTitle:\"Default\"},customPinImage:{type:ControlType.ResponsiveImage,title:\"Pin Image\",hidden:({useCustomPin})=>!useCustomPin},customPinSize:{type:ControlType.Number,title:\"Pin Size\",defaultValue:40,min:20,max:100,step:1,hidden:({useCustomPin})=>!useCustomPin},markerColor:{type:ControlType.Color,title:\"Pin Color\",defaultValue:\"#1A6DFF\",hidden:({useCustomPin})=>useCustomPin},showPopup:{type:ControlType.Boolean,title:\"Auto-Open Popup\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Automatically open popup on load (only works with exactly 1 marker)\",hidden:({markers})=>markers.length!==1},popoverBackground:{type:ControlType.Color,title:\"Popup Background\",defaultValue:\"#FFFFFF\"},popoverTextColor:{type:ControlType.Color,title:\"Popup Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MultiLocationMap\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"320\",\"framerIntrinsicWidth\":\"480\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MultiLocationMap.map"],"mappings":"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"}