{"version":3,"file":"MapServiceArea.bNMtXnVs.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/O2ulgv9Kw8F6aC5tTkIT/nsgZiqacUiVy9yHgpKkW/MapServiceArea.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useRef,useEffect}from\"react\";/**\n * Service Area Map\n *\n * Leaflet + OpenStreetMap\n * No API key required\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function ServiceAreaMap(props){const{centerLat,centerLng,zoom,areaPoints,accentColor,mapStyle,desktopHeight,mobileHeight,showMarker,markerLabel,scrollWheelZoom,borderRadius,showHint,hintText,style}=props;const wrapperRef=useRef(null);const mapContainerRef=useRef(null);const mapRef=useRef(null);const[leaflet,setLeaflet]=useState(null);const[isMobile,setIsMobile]=useState(false);const[error,setError]=useState(null);const[hintOpacity,setHintOpacity]=useState(1);// ============================================================\n// RESPONSIVE SIZE\n// ============================================================\nuseEffect(()=>{if(!wrapperRef.current)return;const observer=new ResizeObserver(entries=>{for(const entry of entries){setIsMobile(entry.contentRect.width<768);}if(mapRef.current){requestAnimationFrame(()=>{mapRef.current?.invalidateSize();});}});observer.observe(wrapperRef.current);return()=>{observer.disconnect();};},[]);// ============================================================\n// LOAD LEAFLET\n// ============================================================\nuseEffect(()=>{let cancelled=false;// Load Leaflet CSS\nif(!document.getElementById(\"leaflet-css\")){const link=document.createElement(\"link\");link.id=\"leaflet-css\";link.rel=\"stylesheet\";link.href=\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.css\";document.head.appendChild(link);}const win=window;// Leaflet already loaded\nif(win.L){setLeaflet(win.L);return;}// Check if Leaflet is already loading\nconst existingScript=document.getElementById(\"leaflet-js\");if(existingScript){const handleLoad=()=>{if(!cancelled&&window.L){setLeaflet(window.L);}};if(window.L){handleLoad();}else{existingScript.addEventListener(\"load\",handleLoad);}return()=>{cancelled=true;existingScript.removeEventListener(\"load\",handleLoad);};}// Create Leaflet script\nconst script=document.createElement(\"script\");script.id=\"leaflet-js\";script.src=\"https://unpkg.com/leaflet@1.9.4/dist/leaflet.js\";script.async=true;script.onload=()=>{if(!cancelled&&window.L){setLeaflet(window.L);}};script.onerror=()=>{if(!cancelled){setError(\"Could not load map.\");}};document.head.appendChild(script);return()=>{cancelled=true;};},[]);// ============================================================\n// BUILD MAP\n// ============================================================\nuseEffect(()=>{if(!leaflet||!mapContainerRef.current)return;const L=leaflet;// Remove existing map\nif(mapRef.current){try{mapRef.current.remove();}catch(error){}mapRef.current=null;}// --------------------------------------------------------\n// Create Leaflet map\n// --------------------------------------------------------\nconst map=L.map(mapContainerRef.current,{center:[centerLat,centerLng],zoom:zoom,scrollWheelZoom:scrollWheelZoom,zoomControl:true,attributionControl:true,dragging:true,doubleClickZoom:true,touchZoom:true,boxZoom:true,keyboard:true});mapRef.current=map;setError(null);setHintOpacity(1);// ========================================================\n// HIDE DRAG HINT AFTER INTERACTION\n// ========================================================\nconst hideHint=()=>{setHintOpacity(0);};map.once(\"dragstart\",hideHint);map.once(\"zoomstart\",hideHint);map.once(\"click\",hideHint);// ========================================================\n// OPENSTREETMAP TILES\n// ========================================================\nconst tileLayer=L.tileLayer(\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",{attribution:'\\xa9 <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\" rel=\"noopener noreferrer\">OpenStreetMap</a> contributors',maxZoom:19,subdomains:[\"a\",\"b\",\"c\"],crossOrigin:true});tileLayer.addTo(map);// ========================================================\n// MAP THEME\n// ========================================================\nconst applyTileStyle=()=>{if(!mapContainerRef.current)return;const tilePane=mapContainerRef.current.querySelector(\".leaflet-tile-pane\");if(!tilePane)return;tilePane.style.transition=\"filter 0.2s ease\";if(mapStyle===\"dark\"){/**\n                 * Neutral charcoal map:\n                 *\n                 * - removes OSM colours\n                 * - inverts white land into dark land\n                 * - creates grey roads\n                 * - keeps map labels visible\n                 *\n                 * IMPORTANT:\n                 * This filter only affects the raster map tiles.\n                 * The orange polygon / marker are NOT filtered.\n                 */tilePane.style.filter=\"grayscale(1) invert(1) brightness(0.42) contrast(1.35)\";}else if(mapStyle===\"light\"){/**\n                 * Clean monochrome light map\n                 */tilePane.style.filter=\"grayscale(1) brightness(1.08) contrast(0.9)\";}else{/**\n                 * Original OpenStreetMap colours\n                 */tilePane.style.filter=\"none\";}};// Apply once tiles finish loading\ntileLayer.on(\"load\",applyTileStyle);// Also apply immediately\nwindow.setTimeout(applyTileStyle,100);// ========================================================\n// SERVICE AREA POLYGON\n// ========================================================\nif(Array.isArray(areaPoints)&&areaPoints.length>=3){const validPoints=areaPoints.filter(point=>point&&typeof point.lat===\"number\"&&typeof point.lng===\"number\");if(validPoints.length>=3){const latlngs=validPoints.map(point=>[point.lat,point.lng]);L.polygon(latlngs,{color:accentColor,fillColor:accentColor,fillOpacity:.28,weight:3,opacity:1,lineJoin:\"round\"}).addTo(map);}}// ========================================================\n// CENTRE MARKER\n// ========================================================\nif(showMarker){const marker=L.circleMarker([centerLat,centerLng],{color:\"#FFFFFF\",fillColor:accentColor,fillOpacity:1,radius:9,weight:3});marker.addTo(map);// ----------------------------------------------------\n// Marker label\n// ----------------------------------------------------\nif(markerLabel){marker.bindTooltip(markerLabel,{permanent:true,direction:\"top\",offset:[0,-10],className:\"service-area-marker-tooltip\"});}}// ========================================================\n// GLOBAL LEAFLET STYLES\n// ========================================================\nlet tooltipStyle=document.getElementById(\"service-area-tooltip-style\");if(!tooltipStyle){tooltipStyle=document.createElement(\"style\");tooltipStyle.id=\"service-area-tooltip-style\";document.head.appendChild(tooltipStyle);}tooltipStyle.textContent=`\n            /* ================================================\n               MARKER LABEL\n            ================================================= */\n\n            .service-area-marker-tooltip {\n                background: ${accentColor} !important;\n\n                color: #0A0A0A !important;\n\n                border: none !important;\n\n                border-radius: 7px !important;\n\n                padding: 6px 12px !important;\n\n                font-family:\n                    Inter,\n                    -apple-system,\n                    BlinkMacSystemFont,\n                    sans-serif !important;\n\n                font-size: 12px !important;\n\n                font-weight: 700 !important;\n\n                letter-spacing: 0.04em !important;\n\n                text-transform: uppercase !important;\n\n                box-shadow:\n                    0 4px 14px\n                    rgba(0, 0, 0, 0.28) !important;\n            }\n\n\n            .service-area-marker-tooltip::before {\n                border-top-color:\n                    ${accentColor} !important;\n            }\n\n\n            /* ================================================\n               ZOOM CONTROLS\n            ================================================= */\n\n            .leaflet-control-zoom {\n                border: none !important;\n\n                border-radius: 8px !important;\n\n                overflow: hidden !important;\n\n                box-shadow:\n                    0 3px 12px\n                    rgba(0, 0, 0, 0.25) !important;\n            }\n\n\n            .leaflet-control-zoom a {\n                border: none !important;\n\n                background:\n                    rgba(255,255,255,0.95) !important;\n\n                color: #111111 !important;\n\n                font-family:\n                    Inter,\n                    -apple-system,\n                    BlinkMacSystemFont,\n                    sans-serif !important;\n            }\n\n\n            .leaflet-control-zoom a:hover {\n                background:\n                    #F0F0F0 !important;\n            }\n\n\n            /* ================================================\n               ATTRIBUTION\n            ================================================= */\n\n            .leaflet-control-attribution {\n                font-family:\n                    Inter,\n                    -apple-system,\n                    BlinkMacSystemFont,\n                    sans-serif !important;\n\n                font-size: 10px !important;\n\n                background:\n                    rgba(255,255,255,0.82) !important;\n\n                backdrop-filter:\n                    blur(5px) !important;\n\n                -webkit-backdrop-filter:\n                    blur(5px) !important;\n            }\n        `;// ========================================================\n// FRAMER SIZE FIX\n// ========================================================\nconst resizeTimer=window.setTimeout(()=>{map.invalidateSize();applyTileStyle();},150);// ========================================================\n// CLEANUP\n// ========================================================\nreturn()=>{window.clearTimeout(resizeTimer);tileLayer.off(\"load\",applyTileStyle);map.off(\"dragstart\",hideHint);map.off(\"zoomstart\",hideHint);map.off(\"click\",hideHint);try{map.remove();}catch(error){}if(mapRef.current===map){mapRef.current=null;}};},[leaflet,centerLat,centerLng,zoom,areaPoints,accentColor,mapStyle,showMarker,markerLabel,scrollWheelZoom]);// ============================================================\n// RENDER\n// ============================================================\nreturn /*#__PURE__*/_jsxs(\"div\",{ref:wrapperRef,style:{position:\"relative\",width:\"100%\",height:isMobile?mobileHeight:desktopHeight,borderRadius:borderRadius,overflow:\"hidden\",background:mapStyle===\"dark\"?\"#202020\":\"#EFEFEF\",...style},children:[/*#__PURE__*/_jsx(\"div\",{ref:mapContainerRef,style:{width:\"100%\",height:\"100%\",background:mapStyle===\"dark\"?\"#202020\":\"#EFEFEF\"}}),showHint&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:16,left:\"50%\",transform:\"translateX(-50%)\",display:\"flex\",alignItems:\"center\",gap:8,padding:\"8px 14px\",background:\"rgba(10,10,10,0.82)\",backdropFilter:\"blur(8px)\",WebkitBackdropFilter:\"blur(8px)\",border:\"1px solid rgba(255,255,255,0.10)\",borderRadius:999,color:\"#FFFFFF\",fontFamily:\"Inter, -apple-system, BlinkMacSystemFont, sans-serif\",fontSize:12,fontWeight:500,letterSpacing:\"0.02em\",whiteSpace:\"nowrap\",pointerEvents:\"none\",opacity:hintOpacity,transition:\"opacity 0.5s ease\",zIndex:1e3,boxShadow:\"0 4px 16px rgba(0,0,0,0.25)\"},children:[/*#__PURE__*/_jsxs(\"svg\",{width:\"13\",height:\"13\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"polyline\",{points:\"5 9 2 12 5 15\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"9 5 12 2 15 5\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"15 19 12 22 9 19\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"19 9 22 12 19 15\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"2\",y1:\"12\",x2:\"22\",y2:\"12\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"2\",x2:\"12\",y2:\"22\"})]}),/*#__PURE__*/_jsx(\"span\",{children:hintText})]}),error&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#FFFFFF\",background:\"rgba(0,0,0,0.70)\",fontFamily:\"Inter, -apple-system, BlinkMacSystemFont, sans-serif\",fontSize:14,zIndex:2e3},children:error})]});}// ================================================================\n// DEFAULT PROPS\n// ================================================================\nServiceAreaMap.defaultProps={centerLat:-27.7167,centerLng:153.2333,zoom:10,accentColor:\"#F68419\",mapStyle:\"dark\",desktopHeight:560,mobileHeight:400,showMarker:true,markerLabel:\"Amp Me Up HQ\",scrollWheelZoom:false,borderRadius:12,showHint:true,hintText:\"Drag to explore\",// Brisbane / Logan / Redlands /\n// Northern Gold Coast service area\nareaPoints:[{lat:-27.48,lng:152.99},{lat:-27.43,lng:153.08},{lat:-27.45,lng:153.2},{lat:-27.47,lng:153.26},{lat:-27.5,lng:153.29},{lat:-27.56,lng:153.32},{lat:-27.62,lng:153.34},{lat:-27.75,lng:153.38},{lat:-28.03,lng:153.43},{lat:-28.05,lng:153.25},{lat:-27.9,lng:153},{lat:-27.65,lng:152.85}]};// ================================================================\n// FRAMER PROPERTY CONTROLS\n// ================================================================\naddPropertyControls(ServiceAreaMap,{centerLat:{type:ControlType.Number,title:\"Centre Lat\",defaultValue:-27.7167,step:1e-4,displayStepper:false},centerLng:{type:ControlType.Number,title:\"Centre Lng\",defaultValue:153.2333,step:1e-4,displayStepper:false},zoom:{type:ControlType.Number,title:\"Zoom\",defaultValue:10,min:4,max:18,step:1,displayStepper:true},areaPoints:{type:ControlType.Array,title:\"Area Points\",control:{type:ControlType.Object,controls:{lat:{type:ControlType.Number,title:\"Latitude\",step:1e-4},lng:{type:ControlType.Number,title:\"Longitude\",step:1e-4}}},description:\"Add points clockwise around your service area. Minimum 3 points.\"},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#F68419\"},mapStyle:{type:ControlType.Enum,title:\"Map Style\",options:[\"dark\",\"light\",\"standard\"],optionTitles:[\"Dark\",\"Light\",\"Standard\"],defaultValue:\"dark\",displaySegmentedControl:true},showMarker:{type:ControlType.Boolean,title:\"Show Pin\",defaultValue:true},markerLabel:{type:ControlType.String,title:\"Pin Label\",defaultValue:\"Amp Me Up HQ\",hidden:props=>!props.showMarker},showHint:{type:ControlType.Boolean,title:\"Show Hint\",defaultValue:true},hintText:{type:ControlType.String,title:\"Hint Text\",defaultValue:\"Drag to explore\",hidden:props=>!props.showHint},scrollWheelZoom:{type:ControlType.Boolean,title:\"Scroll Zoom\",defaultValue:false},desktopHeight:{type:ControlType.Number,title:\"Height Desktop\",defaultValue:560,min:200,max:1200,step:10,unit:\"px\"},mobileHeight:{type:ControlType.Number,title:\"Height Mobile\",defaultValue:400,min:200,max:900,step:10,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:12,min:0,max:48,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ServiceAreaMap\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MapServiceArea.map"],"mappings":"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"}