1import{r as n,j as e,M as v,m as r,J as ie,f as I,B as G,A as B,u as Q,X as oe,d as le,e as re,$ as ce,b as S,c as ee,P as X,S as Y,L as ue}from"./index-CcQoZHu6.js";import J from"./SentrixNav-R8eeyV3l.js";import{S as me,E as de}from"./EntitySchema-Cr_e35Ds.js";import{B as q}from"./Breadcrumbs-BT4Kvn50.js";import{trackAdEvent as pe}from"./adTracking-D_6S6OTt.js";import{G as he}from"./globe-Dkx1abN8.js";import{C as xe}from"./circle-check-big-BO5vxUDH.js";import{C as ge}from"./chevron-up-Ci3RI-4J.js";import{E as be}from"./external-link-DMAwCSd8.js";import{R as ye}from"./RelatedProgrammaticLinks-BaTycpMo.js";import{U as fe}from"./users-DeLh5ghX.js";import{B as Ke}from"./building-2-B_tsUPrm.js";import"./growthTracker-8inzgh07.js";import"./phone-7Aq_Fxs-.js";import"./layout-dashboard-CrnYSiwm.js";import"./menu-CJsKPBmX.js";import"./trending-up-Dpm8ux62.js";import"./briefcase-_Y_JcVAF.js";import"./message-square-CXAQjKUW.js";import"./sun-m35L0S9M.js";import"./safeJsonLd-DvLftmnN.js";import"./house-EYy5-QzU.js";import"./chevron-right-vb7kAxtq.js";import"./badge-BZqWy3UR.js";import"./file-text-CC2dyH4I.js";const we=[{number:1,title:"Go to Google Business Profile",description:"Visit business.google.com and sign in with your Google account.",detail:"If you don't have a Google account, create one first at accounts.google.com.",icon:he,color:"cyan",link:"https://business.google.com",linkLabel:"Open Google Business Profile"},{number:2,title:"Add your business name & category",description:'Click "Add your business" and enter your business name, then pick the category that best describes what you do.',detail:'Be specific â "Italian Restaurant" is better than just "Restaurant". You can add more categories later.',icon:v,color:"blue"},{number:3,title:"Enter your address & service area",description:"Add your physical address or define your service area if you go to customers.",detail:"If you serve customers at their location (plumber, landscaper, etc.), you can hide your address and just show the service area.",icon:v,color:"purple"},{number:4,title:"Verify your business",description:"Google will send a postcard, call, or email to verify you own the business. This usually takes 3-5 days.",detail:"While waiting for verification, you can still add photos, hours, and services. Once verified, come back here and search your business!",icon:xe,color:"green"}],ve={cyan:{bg:"bg-cyan-500/20",text:"text-cyan-400",border:"border-cyan-500/30"},blue:{bg:"bg-blue-500/20",text:"text-blue-400",border:"border-blue-500/30"},purple:{bg:"bg-purple-500/20",text:"text-purple-400",border:"border-purple-500/30"},green:{bg:"bg-green-500/20",text:"text-green-400",border:"border-green-500/30"}};function je({onBackToSearch:g}){const[x,t]=n.useState(0);return e.jsxs("div",{className:"w-full max-w-xl mx-auto",children:[e.jsxs("div",{className:"text-center mb-6",children:[e.jsx("div",{className:"w-16 h-16 mx-auto rounded-2xl bg-amber-500/20 flex items-center justify-center mb-4",children:e.jsx(v,{className:"w-8 h-8 text-amber-400"})}),e.jsx("h2",{className:"text-2xl font-bold text-white mb-2",children:"Not on Google Maps yet?"}),e.jsx("p",{className:"text-slate-400 text-sm",children:"No worries â here's how to get listed in 4 easy steps. It's free!"})]}),e.jsx("div",{className:"space-y-3 mb-6",children:we.map((o,c)=>{const u=ve[o.color];o.icon;const a=x===c;return e.jsxs(r.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:c*.1},className:`rounded-xl border ${a?u.border:"border-white/10"} bg-white/5 overflow-hidden`,children:[e.jsxs("button",{onClick:()=>t(a?-1:c),className:"w-full p-4 flex items-center gap-3 text-left",children:[e.jsx("div",{className:`w-10 h-10 rounded-xl ${u.bg} flex items-center justify-center flex-shrink-0`,children:e.jsx("span",{className:`font-bold text-sm ${u.text}`,children:o.number})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-white text-sm",children:o.title}),e.jsx("p",{className:"text-xs text-slate-400 truncate",children:o.description})]}),a?e.jsx(ge,{className:"w-4 h-4 text-slate-400 flex-shrink-0"}):e.jsx(ie,{className:"w-4 h-4 text-slate-400 flex-shrink-0"})]}),e.jsx(I,{children:a&&e.jsx(r.div,{initial:{height:0,opacity:0}
1,animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},className:"border-t border-white/10",children:e.jsxs("div",{className:"p-4 pt-3",children:[e.jsx("p",{className:"text-sm text-slate-300 mb-3",children:o.detail}),o.link&&e.jsxs("a",{href:o.link,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[e.jsx(be,{className:"w-4 h-4"}),o.linkLabel]})]})})})]},o.number)})}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs(G,{onClick:g,className:"w-full h-12 bg-gradient-to-r from-cyan-500 to-blue-600 hover:from-cyan-400 hover:to-blue-500 text-white font-semibold",children:["I've listed my business â Search again",e.jsx(B,{className:"w-4 h-4 ml-2"})]}),e.jsx("p",{className:"text-center text-xs text-slate-500",children:"Already listed? Just search your business name above."})]})]})}const Ne="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/69467eabf811b973c8eadc72/ead215760_mapscan_ai_local_seo_icon-modified.png";function Z({isOpen:g,onClose:x,autoFocus:t=!1}){const[o,c]=n.useState(""),[u,a]=n.useState([]),[f,T]=n.useState(!1),[b,F]=n.useState(!1),[M,k]=n.useState(-1),[E,O]=n.useState(!1),[Se,ke]=n.useState(null),[Ce,Le]=n.useState("idle"),[se,D]=n.useState(!1),[_,W]=n.useState(!1),[P,U]=n.useState(!1),[R,C]=n.useState(!1),d=n.useRef(null),te=n.useRef(null),ae=Q(),[L,H]=n.useState(null),p=n.useRef(null);n.useEffect(()=>{const s=i=>{var m,h,j,K;(m=i.detail)!=null&&m.autoFocus&&D(!0),(h=i.detail)!=null&&h.animateLogo&&W(!0),(j=i.detail)!=null&&j.logoStartRect&&H(i.detail.logoStartRect),(K=i.detail)!=null&&K.tempInput&&(p.current=i.detail.tempInput)};return window.addEventListener("openSearchPopup",s),()=>window.removeEventListener("openSearchPopup",s)},[]),n.useEffect(()=>{if(g&&d.current){const s=()=>{d.current&&(d.current.removeAttribute("readonly"),d.current.focus(),d.current.click(),d.current.setSelectionRange(0,0))};p.current?requestAnimationFrame(()=>{d.current&&(d.current.focus(),setTimeout(()=>{p.current&&p.current.parentNode&&(p.current.parentNode.removeChild(p.current),p.current=null)},100))}):s();const i=[50,150,300].map(m=>setTimeout(s,m));return()=>i.forEach(clearTimeout)}g||(D(!1),W(!1),U(!1),H(null),p.current&&p.current.parentNode&&(p.current.parentNode.removeChild(p.current),p.current=null))},[g,se,t,_]),n.useEffect(()=>{g||(c(""),a([]),k(-1),O(!1),C(!1))},[g]),n.useEffect(()=>{o.length>=2&&sessionStorage.setItem("businessSearchActive","true")},[o]),n.useEffect(()=>{const i=setTimeout(async()=>{var m;if(o.length<2){a([]);return}T(!0);try{const h=await S.functions.invoke("autocompleteBusiness",{input:o});a(((m=h.data)==null?void 0:m.predictions)||[]),k(-1)}catch(h){console.error("Error fetching suggestions:",h)}finally{T(!1)}},80);return()=>clearTimeout(i)},[o]);const V=async s=>{var i,m,h,j;if(b||E){console.log("Selection blocked - already processing");return}O(!0),F(!0),sessionStorage.setItem("businessSearchActive","true"),a([]);try{const K=await Promise.race([S.functions.invoke("getPlaceDetails",{placeId:s.place_id}),new Promise((y,N)=>setTimeout(()=>N(new Error("Business lookup timeout")),12e3))]),l=((i=K.data)==null?void 0:i.business)||K.data,z=(l==null?void 0:l.name)||((m=s.structured_formatting)==null?void 0:m.main_text)||((h=s.description)==null?void 0:h.split(",")[0]);if(l&&z){let y=null;try{const $=await S.entities.Business.filter({place_id:s.place_id});$.length>0&&(y=$[0])}catch{console.log("Could not check existing business")}const N={name:z,place_id:s.place_id,address:l.address||((j=s.structured_formatting)==null?void 0:j.secondary_text),latitude:l.latitude,longitude:l.longitude,category:l.category||"Local Business",categories:l.categories||[],detailed_services:l.detailed_services||[],phone:l.phone,website:l.website,rating:l.rating,review_count:l.review_count,photo_url:l.photo_url||null,scan_status:(y==null?void 0:y.scan_status)||"pending"};let w;y?(await S.entities.Business.update(y.id,{...N,scan_status:"pending"}),w={...y,...N,id:y.id,scan_status:"pending"}):w=await S.entities.Business.create({...N,scan_count:0}),pe("scan_started",{source:"search_popup",business_id:w.id,business_name:w.name,category:w.
1category||"local_business"}),x(),ae(ee(`Scan?id=${w.id}&step=confirm&photo=${encodeURIComponent(l.photo_url||"")}&categories=${encodeURIComponent(JSON.stringify(l.categories||[]))}`))}}catch(K){console.error("Error getting place details:",K),O(!1),F(!1)}},ne=s=>{s.key==="ArrowDown"?(s.preventDefault(),k(i=>Math.min(i+1,u.length-1))):s.key==="ArrowUp"?(s.preventDefault(),k(i=>Math.max(i-1,-1))):s.key==="Enter"&&M>=0?(s.preventDefault(),V(u[M])):s.key==="Escape"&&x()};return e.jsx(I,{children:g&&e.jsxs(r.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-[100] flex items-start justify-center pt-[15vh] p-4",onClick:x,children:[e.jsx("div",{className:"absolute inset-0 bg-black/80 backdrop-blur-md"}),e.jsxs(r.div,{initial:{opacity:0,scale:.95,y:-20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:-20},transition:{type:"spring",damping:25,stiffness:300},onClick:s=>s.stopPropagation(),className:"relative w-full max-w-xl",children:[e.jsx("button",{onClick:()=>{U(!0),setTimeout(()=>{x()},400)},className:"absolute -top-12 right-0 text-slate-400 hover:text-white transition-colors p-2",children:e.jsx(oe,{className:"w-6 h-6"})}),e.jsx("div",{className:"flex justify-center mb-4",children:e.jsx(r.div,{ref:te,initial:_&&L?{scale:1.2,opacity:.8,y:L.top-window.innerHeight*.15-40,x:L.left+L.width/2-window.innerWidth/2}:_?{scale:1.5,opacity:0,y:-50}:{scale:1,opacity:1,y:0,x:0},animate:P?{scale:.3,opacity:0,x:(()=>{const s=document.querySelector("[data-header-logo]");if(s){const i=s.getBoundingClientRect();return i.left+i.width/2-window.innerWidth/2}return-200})(),y:(()=>{const s=document.querySelector("[data-header-logo]");return s?s.getBoundingClientRect().top-window.innerHeight*.15-40:-200})()}:{scale:1,opacity:1,x:0,y:0},transition:{type:"spring",damping:P?25:20,stiffness:P?180:120,mass:.7},children:e.jsx("img",{src:Ne,alt:"MapScan.ai",className:"w-16 h-16 md:w-20 md:h-20 rounded-xl object-contain",style:{filter:"drop-shadow(0 0 15px rgba(59,130,246,0.5))"}})})}),e.jsxs("div",{className:"text-center mb-6",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-white mb-2",children:"Find Your Business"}),e.jsx("p",{className:"text-slate-400",children:"Enter your business name to start your free visibility scan"})]}),e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"relative",children:[e.jsx(le,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400"}),e.jsx("input",{ref:d,type:"text",inputMode:"text",autoComplete:"off",autoCorrect:"off",autoCapitalize:"words",enterKeyHint:"search",autoFocus:!0,tabIndex:1,value:o,onChange:s=>c(s.target.value),onKeyDown:ne,onTouchStart:()=>{d.current&&d.current.focus()},placeholder:"Enter your business name...",className:"w-full h-14 pl-12 pr-12 bg-white/10 border border-white/20 rounded-2xl text-white placeholder:text-slate-500 focus:outline-none focus:border-cyan-500 focus:ring-2 focus:ring-cyan-500/20 transition-all text-lg"}),(f||b)&&e.jsx(re,{className:"absolute right-4 top-1/2 -translate-y-1/2 w-5 h-5 text-cyan-400 animate-spin"})]}),e.jsx(I,{children:u.length>0&&!b&&e.jsx(r.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"absolute top-full left-0 right-0 mt-2 dark:bg-slate-900/95 bg-white border dark:border-white/10 border-slate-200 rounded-xl overflow-hidden shadow-2xl max-h-80 overflow-y-auto",children:u.map((s,i)=>{var m,h;return e.jsxs("button",{onClick:()=>V(s),disabled:b||E,className:`w-full px-4 py-3 flex items-start gap-3 text-left transition-colors ${i===M?"dark:bg-cyan-500/20 bg-cyan-50":"dark:hover:bg-white/5 hover:bg-slate-50"} ${b||E?"opacity-50 pointer-events-none":""}`,children:[e.jsx("div",{className:"w-10 h-10 rounded-lg dark:bg-white/10 bg-slate-100 flex items-center justify-center flex-shrink-0",children:e.jsx(v,{className:"w-5 h-5 text-cyan-500"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium dark:text-white text-slate-900 truncate",children:((m=s.structured_formatting)==null?void 0:m.main_text)||s.description}),e.jsx("p",{className:"text-sm dark:text-slate-400 text-slate-500 truncate",children:((h=s.structured_formatting)==null?void 0:h.secondary_text)||""})]})]},s.place_id)})})})]}),R&&!b&&e.jsx(r.div,{initial:{opacity:0,y:10}
1,animate:{opacity:1,y:0},className:"mt-6",children:e.jsx(je,{onBackToSearch:()=>{C(!1),c(""),setTimeout(()=>{var s;return(s=d.current)==null?void 0:s.focus()},100)}})}),!R&&!b&&o.length>=2&&u.length===0&&!f&&e.jsx("div",{className:"mt-4 text-center",children:e.jsxs("button",{onClick:()=>C(!0),className:"text-sm text-amber-400 hover:text-amber-300 flex items-center gap-1.5 mx-auto",children:[e.jsx(ce,{className:"w-4 h-4"}),"Can't find your business? Not on Google Maps?"]})}),!R&&!b&&u.length>0&&e.jsx("div",{className:"mt-3 text-center",children:e.jsx("button",{onClick:()=>C(!0),className:"text-xs text-slate-500 hover:text-slate-400",children:"Not on Google Maps yet? Learn how to get listed â"})}),b&&e.jsxs(r.div,{initial:{opacity:0},animate:{opacity:1},className:"absolute inset-0 flex items-center justify-center bg-black/80 backdrop-blur-sm rounded-2xl",children:[e.jsxs("div",{className:"text-center",children:[e.jsxs("div",{className:"relative w-20 h-20 mx-auto mb-4",children:[[1,2,3].map(s=>e.jsx(r.div,{initial:{scale:0,opacity:0},animate:{scale:.3+s*.25,opacity:.4},transition:{delay:s*.15},className:"absolute inset-0 border border-cyan-500/40 rounded-full"},s)),e.jsx("div",{className:"absolute inset-0 rounded-full",style:{background:"conic-gradient(from 0deg, transparent 0deg, rgba(34,211,238,0.4) 30deg, transparent 60deg)",animation:"radar-spin 1.5s linear infinite"}}),e.jsx(r.div,{initial:{scale:0},animate:{scale:1},className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-3 h-3 bg-cyan-400 rounded-full",children:e.jsx("div",{className:"absolute inset-0 bg-cyan-400 rounded-full animate-ping opacity-50"})})]}),e.jsx(r.p,{initial:{opacity:0,y:5},animate:{opacity:1,y:0},className:"text-base font-semibold text-white mb-1",children:"ð¯ Target Acquired"}),e.jsx(r.p,{initial:{opacity:0}
1,animate:{opacity:1},transition:{delay:.2},className:"text-sm text-slate-400",children:"Preparing your visibility scan..."})]}),e.jsx("style",{children:` 2 @keyframes radar-spin { 3 from { transform: rotate(0deg); } 4 to { transform: rotate(360deg); } 5 } 6 `})]})]})]})})}const A=[{name:"Houston",state:"TX",population:"2.3M",businesses:"180K+",slug:"houston"},{name:"Dallas",state:"TX",population:"1.3M",businesses:"120K+",slug:"dallas"},{name:"Austin",state:"TX",population:"1M",businesses:"85K+",slug:"austin"},{name:"San Antonio",state:"TX",population:"1.5M",businesses:"95K+",slug:"san-antonio"},{name:"Fort Worth",state:"TX",population:"930K",businesses:"70K+",slug:"fort-worth"},{name:"El Paso",state:"TX",population:"680K",businesses:"45K+",slug:"el-paso"},{name:"Arlington",state:"TX",population:"400K",businesses:"35K+",slug:"arlington-tx"},{name:"Plano",state:"TX",population:"290K",businesses:"28K+",slug:"plano"},{name:"Los Angeles",state:"CA",population:"3.9M",businesses:"280K+",slug:"los-angeles"},{name:"San Diego",state:"CA",population:"1.4M",businesses:"95K+",slug:"san-diego"},{name:"San Jose",state:"CA",population:"1M",businesses:"75K+",slug:"san-jose"},{name:"San Francisco",state:"CA",population:"870K",businesses:"80K+",slug:"san-francisco"},{name:"Fresno",state:"CA",population:"540K",businesses:"38K+",slug:"fresno"},{name:"Sacramento",state:"CA",population:"520K",businesses:"42K+",slug:"sacramento"},{name:"Long Beach",state:"CA",population:"470K",businesses:"35K+",slug:"long-beach"},{name:"Oakland",state:"CA",population:"430K",businesses:"32K+",slug:"oakland"},{name:"Bakersfield",state:"CA",population:"400K",businesses:"28K+",slug:"bakersfield"},{name:"Anaheim",state:"CA",population:"350K",businesses:"30K+",slug:"anaheim"},{name:"Irvine",state:"CA",population:"300K",businesses:"28K+",slug:"irvine"},{name:"Miami",state:"FL",population:"450K",businesses:"55K+",slug:"miami"},{name:"Tampa",state:"FL",population:"400K",businesses:"45K+",slug:"tampa"},{name:"Jacksonville",state:"FL",population:"950K",businesses:"72K+",slug:"jacksonville"},{name:"Orlando",state:"FL",population:"310K",businesses:"40K+",slug:"orlando"},{name:"St. Petersburg",state:"FL",population:"260K",businesses:"28K+",slug:"st-petersburg"},{name:"Fort Lauderdale",state:"FL",population:"180K",businesses:"25K+",slug:"fort-lauderdale"},{name:"Phoenix",state:"AZ",population:"1.6M",businesses:"110K+",slug:"phoenix"},{name:"Tucson",state:"AZ",population:"540K",businesses:"40K+",slug:"tucson"},{name:"Mesa",state:"AZ",population:"510K",businesses:"35K+",slug:"mesa"},{name:"Scottsdale",state:"AZ",population:"260K",businesses:"32K+",slug:"scottsdale"},{name:"Chandler",state:"AZ",population:"280K",businesses:"22K+",slug:"chandler"},{name:"Atlanta",state:"GA",population:"500K",businesses:"60K+",slug:"atlanta"},{name:"Augusta",state:"GA",population:"200K",businesses:"18K+",slug:"augusta"},{name:"Savannah",state:"GA",population:"150K",businesses:"15K+",slug:"savannah"},{name:"Charlotte",state:"NC",population:"880K",businesses:"65K+",slug:"charlotte"},{name:"Raleigh",state:"NC",population:"470K",businesses:"42K+",slug:"raleigh"},{name:"Durham",state:"NC",population:"280K",businesses:"25K+",slug:"durham"},{name:"Greensboro",state:"NC",population:"300K",businesses:"22K+",slug:"greensboro"},{name:"Nashville",state:"TN",population:"690K",businesses:"50K+",slug:"nashville"},{name:"Memphis",state:"TN",population:"630K",businesses:"42K+",slug:"memphis"},{name:"Knoxville",state:"TN",population:"190K",businesses:"18K+",slug:"knoxville"},{name:"Seattle",state:"WA",population:"750K",businesses:"70K+",slug:"seattle"},{name:"Spokane",state:"WA",population:"230K",businesses:"20K+",slug:"spokane"},{name:"Tacoma",state:"WA",population:"220K",businesses:"18K+",slug:"tacoma"},{name:"Denver",state:"CO",population:"715K",businesses:"65K+",slug:"denver"},{name:"Colorado Springs",state:"CO",population:"480K",businesses:"35K+",slug:"colorado-springs"},{name:"Aurora",state:"CO",population:"390K",businesses:"28K+",slug:"aurora-co"},{name:"Las Vegas",state:"NV",population:"640K",businesses:"55K+",slug:"las-vegas"},{name:"Henderson",state:"NV",population:"320K",businesses:"25K+",slug:"henderson"},{name:"Reno",state:"NV",population:"270K",businesses:"22K+",slug:"reno"},{name:"Portland",state:"OR",population:"650K",businesses:"55K+",slug:"portland"},{name:"Salem",state:"OR",population:"180K",businesses:"15K+",slug:"salem"},{name:"Eugene",state:"OR",population:"175K",businesses:"14K+",slug:"eugene"},{name:"Chicago",state:"IL",population:"2.7M",businesses:"200K+",slug:"chicago"},{name:"Philadelphia",state:"PA",population:"1.6M",businesses:"95K+",slug:"philadelphia"},{name:"Pittsburgh",state:"PA",population:"300K",businesses:"28K+",slug:"pittsburgh"},{name:"New York",state:"NY",population:"8.3M",businesses:"450K+",slug:"new-york"},{name:"Buffalo",state:"NY",population:"280K",businesses:"22K+",slug:"buffalo"},{name:"Boston",state:"MA",population:"680K",businesses:"60K+",slug:"boston"},{name:"Worcester",state:"MA",population:"205K",businesses:"15K+",slug:"worcester"},{name:"Detroit",state:"MI",population:"640K",businesses:"45K+",slug:"detroit"},{name:"Grand Rapids",state:"MI",population:"200K",businesses:"18K+",slug:"grand-rapids"},{name:"Columbus",state:"OH",population:"900K",businesses:"65K+",slug:"columbus"},{name:"Cleveland",state:"OH",population:"370K",businesses:"30K+",slug:"cleveland"},{name:"Cincinnati",state:"OH",population:"310K",businesses:"28K+",slug:"cincinnati"},{name:"Indianapolis",state:"IN",population:"880K",businesses:"62K+",slug:"indianapolis"},{name:"Fort Wayne",state:"IN",population:"270K",businesses:"20K+",slug:"fort-wayne"},{name:"Kansas City",state:"MO",population:"510K",businesses:"40K+",slug:"kansas-city"},{name:"St. Louis",state:"MO",population:"300K",businesses:"28K+",slug:"st-lou
6is"},{name:"Baltimore",state:"MD",population:"580K",businesses:"42K+",slug:"baltimore"},{name:"Milwaukee",state:"WI",population:"580K",businesses:"40K+",slug:"milwaukee"},{name:"Madison",state:"WI",population:"270K",businesses:"22K+",slug:"madison"},{name:"Minneapolis",state:"MN",population:"430K",businesses:"38K+",slug:"minneapolis"},{name:"St. Paul",state:"MN",population:"310K",businesses:"25K+",slug:"st-paul"},{name:"New Orleans",state:"LA",population:"390K",businesses:"32K+",slug:"new-orleans"},{name:"Baton Rouge",state:"LA",population:"225K",businesses:"18K+",slug:"baton-rouge"},{name:"Oklahoma City",state:"OK",population:"680K",businesses:"48K+",slug:"oklahoma-city"},{name:"Tulsa",state:"OK",population:"410K",businesses:"32K+",slug:"tulsa"},{name:"Salt Lake City",state:"UT",population:"200K",businesses:"22K+",slug:"salt-lake-city"},{name:"Louisville",state:"KY",population:"630K",businesses:"42K+",slug:"louisville"},{name:"Lexington",state:"KY",population:"320K",businesses:"25K+",slug:"lexington"},{name:"Virginia Beach",state:"VA",population:"460K",businesses:"32K+",slug:"virginia-beach"},{name:"Richmond",state:"VA",population:"230K",businesses:"22K+",slug:"richmond"},{name:"Birmingham",state:"AL",population:"200K",businesses:"18K+",slug:"birmingham"},{name:"Montgomery",state:"AL",population:"200K",businesses:"15K+",slug:"montgomery"},{name:"Charleston",state:"SC",population:"150K",businesses:"18K+",slug:"charleston"},{name:"Columbia",state:"SC",population:"135K",businesses:"14K+",slug:"columbia-sc"}];function es(){Q();const x=new URLSearchParams(window.location.search).get("city"),t=x?A.find(a=>a.slug===x):null,[o,c]=n.useState(!1);n.useEffect(()=>{window.scrollTo(0,0)},[x]),n.useEffect(()=>{const a=()=>c(!0);return window.addEventListener("openSearchPopup",a),()=>window.removeEventListener("openSearchPopup",a)},[]);const u=t?{"@context":"https://schema.org","@type":"Service",name:`Local SEO Services in ${t.name}, ${t.state}`,description:`Google Maps optimization and local SEO services for businesses in ${t.name}, ${t.state}. Get more customers from local search.`,provider:{"@type":"Organization",name:"MapScan.ai"},areaServed:{"@type":"City",name:t.name,containedIn:t.state}}:{"@context":"https://schema.org","@type":"ItemList",name:"Local SEO Services by City",description:"MapScan.ai local SEO services available in 90+ US cities",numberOfItems:A.length,itemListElement:A.slice(0,20).map((a,f)=>({"@type":"ListItem",position:f+1,name:`${a.name}, ${a.state} Local SEO`,url:`https://mapscan.ai/Cities?city=${a.slug}`}))};return t?e.jsxs("div",{className:"min-h-screen bg-[#020204] text-slate-300",children:[e.jsx(X,{title:`Local SEO in ${t.name}, ${t.state} - Google Maps Optimization`,description:`Dominate Google Maps in ${t.name}. See how your business ranks against ${t.businesses} local competitors and get more customers from local search.`,keywords:`${t.name} local seo, ${t.name} google maps, ${t.name.toLowerCase()} seo services, local business marketing ${t.state}`,canonical:`https://mapscan.ai/Cities?city=${t.slug}`,structuredData:u}),e.jsx(me,{headline:`Local SEO in ${t.name}, ${t.state}`,speakableSelectors:["h1","[data-speakable]"]}),e.jsx(de,{page:"cities"}),e.jsx(J,{}),e.jsx("section",{className:"pt-32 pb-16 px-6",children:e.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[e.jsx(q,{items:[{label:"Cities",href:"Cities"},{label:`${t.name}, ${t.state}`}]}),e.jsxs(r.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-cyan-500/10 border border-cyan-500/20 mb-6",children:[e.jsx(v,{className:"w-4 h-4 text-cyan-400"}),e.jsxs("span",{className:"text-sm text-cyan-300",children:[t.name,", ",t.state]})]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold text-white mb-6",children:["Dominate Local Search in ",t.name]}),e.jsxs("p",{className:"text-xl text-slate-400 max-w-2xl mx-auto mb-10",children:[t.businesses," businesses compete for local customers in ",t.name,". See where you stand and how to rank higher on Google Maps."]}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-12",children:[e.jsxs("div",{className:"bg-white/5 rounded-xl border border-white/10 p-6 text-center",children:[e.jsx("p",{className:"text-3xl font-bold text-cyan-400",children:t.population}),e.jsx("p",{className:"text-sm text-slate-400",children:"Population"})]}),e.jsxs("div",{className:"bg-white/5 rounded-xl border border-white/10 p-6 text-center",children:[e.jsx("p",{className:"text-3xl font-bold text-green-400",children:t.businesses}),e.jsx("p",{className:"text-sm text-slate-400",children:"Local Businesses"})]}),e.jsxs("div",{className:"bg-white/5 rounded-xl border border-white/10 p-6 text-center",children:[e.jsx("p",{className:"text-3xl font-bold text-amber-400",children:"High"}),e.jsx("p",{className:"text-sm text-slate-400",children:"Competition Level"})]})]}),e.jsxs(G,{onClick:()=>c(!0),className:"bg-gradient-to-r from-cyan-500 to-blue-600 hover:from-cyan-400 hover:to-blue-500 text-white px-8 py-6 text-lg rounded-xl",children:["Get Your Free ",t.name," MapScore",e.jsx(B,{className:"w-5 h-5 ml-2"})]})]})]})}),e.jsx("section",{className:"py-16 px-6 bg-white/[0.02]",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("h2",{className:"text-2xl font-bold text-white text-center mb-12",children:["What We Analyze for ",t.name," Businesses"]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:[{title:"Local Competitor Analysis",desc:`See who dominates Google Maps in ${t.name} for your keywords`},{title:"Geographic Visibility",desc:`Map your visibility across ${t.name} neighborhoods and zip codes`},{title:"Review Benchmarking",desc:`Compare your reviews to ${t.name} competitors in your industry`},{title:"Keyword Rankings",desc:`Track your rankings for high-intent local searches in ${t.state}`}].map((a,f)=>e.jsxs(r.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"bg-white/5 rounded-xl border border-white/10 p-6",children:[e.jsx("h3",{className:"font-semibold text-white mb-2",children:a.title}),e.jsx("p",{className:"text-sm text-slate-400",children:a.desc})]},f))})]})}),e.jsx("section",{className:"py-12 px-6",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx(ye,{city:t.name,limit:6,title:`${t.name} SEO Guides & Resources`})})}),e.jsx("section",{className:"py-20 px-6",children:e.jsxs("div",{className:"max-w-xl mx-auto text-center",children:[e.jsxs("h2",{className:"text-3xl font-bold text-white mb-6",children:["Ready to dominate ",t.name,"?"]}),e.jsxs("p",{className:"text-slate-400 mb-8",children:["Join thousands of ",t.name," businesses using MapScan to rank higher."]}
6),e.jsxs(G,{onClick:()=>c(!0),className:"bg-gradient-to-r from-cyan-500 to-blue-600 hover:from-cyan-400 hover:to-blue-500 text-white px-8 py-6 text-lg rounded-xl",children:["Start Free Scan",e.jsx(B,{className:"w-5 h-5 ml-2"})]})]})}),e.jsx(Y,{}),e.jsx(Z,{isOpen:o,onClose:()=>c(!1)})]}):e.jsxs("div",{className:"min-h-screen bg-[#020204] text-slate-300",children:[e.jsx(X,{title:"Local SEO by City - Google Maps Rankings in 90+ Cities",description:"Get local SEO services tailored to your city. See city-specific benchmarks, competition levels, and how MapScan helps businesses rank higher on Google Maps.",keywords:"local seo by city, google maps ranking, city seo services, local business marketing",canonical:"https://mapscan.ai/Cities",structuredData:u}),e.jsx(J,{}),e.jsx("section",{className:"pt-32 pb-20 px-6",children:e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsx(q,{items:[{label:"Cities"}]}),e.jsxs(r.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center mb-16",children:[e.jsx("h1",{className:"text-4xl md:text-6xl font-bold text-white mb-6",children:"Local SEO by City"}),e.jsx("p",{className:"text-xl text-slate-400 max-w-2xl mx-auto",children:"Find city-specific insights, competition benchmarks, and local SEO strategies tailored to your market."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:A.map((a,f)=>e.jsx(r.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:Math.min(f*.02,.5)},children:e.jsxs(ue,{to:ee(`Cities?city=${a.slug}`),className:"block p-5 rounded-xl bg-white/5 border border-white/10 hover:border-cyan-500/40 hover:bg-white/[0.08] transition-all group",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx(v,{className:"w-5 h-5 text-cyan-400"}),e.jsxs("h3",{className:"font-semibold text-white group-hover:text-cyan-400 transition-colors",children:[a.name,", ",a.state]})]}),e.jsxs("div",{className:"flex items-center gap-4 text-xs text-slate-500",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(fe,{className:"w-3 h-3"})," ",a.population]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Ke,{className:"w-3 h-3"})," ",a.businesses]})]})]})},a.slug))})]})}),e.jsx(Y,{}),e.jsx(Z,{isOpen:o,onClose:()=>c(!1)})]})}export{es as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.