1import{r as c,j as e,a8 as h,N as l,x as b,y as f,F as y,B as N,X as j}from"./index-Dw8-5qNC.js";import{R as w}from"./Reveal-BIh5BXL7.js";import{S as C}from"./SectionEyebrow-BTe37CX2.js";import{C as v}from"./CountUp-Bs5dSACx.js";import{N as k}from"./navigation-DwVeyjIh.js";import{M as S}from"./maximize-2-DHl5SVue.js";const d=[{id:"business",name:"Pawprint Academy",type:"business",description:"Our home base. Where the magic happens!",address:"326 Long Pond Drive, Sneads Ferry, NC 28460",lat:34.534661,lng:-77.444551},{id:"surf-city-bark-park",name:"Surf City Bark Park",type:"dog-friendly",description:"Local Dog Park",address:"Surf City, NC",lat:34.44184238237537,lng:-77.56621732140066},{id:"soundside-park",name:"Soundside Park",type:"group-class",description:"Local Group Class Location",address:"Surf City, NC",lat:34.42891180597659,lng:-77.54877404904936},{id:"local-playground",name:"Local Playground",type:"group-class",description:"Local Group Class Location",address:"135 Pebble Shore Drive, Sneads Ferry, NC 28460",lat:34.533889,lng:-77.437528},{id:"richard-ray-park",name:"Richard Ray Park",type:"group-class",description:"Local Group Class Location",address:"Jacksonville, NC",lat:34.79228315673727,lng:-77.40174087016288},{id:"stones-creek-game-lands",name:"Stones Creek Game Lands",type:"dog-friendly",description:"Dog Friendly Location",address:"Sneads Ferry, NC",lat:34.557743,lng:-77.446699},{id:"swansboro-municipal-dog-park",name:"Swansboro Municipal Dog Park",type:"dog-friendly",description:"Local Dog Park",address:"901 W Main St, Swansboro, NC 28584",lat:34.696722,lng:-77.131389},{id:"onslow-pines-park",name:"Onslow Pines Park",type:"dog-friendly",description:"Dog Friendly Location",address:"1244 Onslow Pines Rd, Jacksonville, NC 28540",lat:34.726810286593356,lng:-77.48456336931449}];function L({expanded:a,onToggle:t,focusLocation:r}){const n=()=>r?`https://www.google.com/maps?q=${r.lat},${r.lng}&z=15&output=embed`:"https://www.google.com/maps?q=Sneads+Ferry,+NC&ll=34.58,-77.40&z=11&output=embed";return e.jsxs("div",{className:`relative rounded-xl overflow-hidden border border-border ${a?"fixed inset-4 z-[100]":"h-80 md:h-96"}`,children:[e.jsx("iframe",{src:n(),className:"w-full h-full border-0",allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade","data-testid":"map-container"}),e.jsx("div",{className:"absolute top-3 right-3 z-[1000] flex gap-2",children:e.jsx(N,{size:"icon",variant:"secondary",className:"h-8 w-8 bg-white shadow-md border",onClick:t,"data-testid":"button-toggle-map",title:a?"Collapse map":"Expand map",children:a?e.jsx(j,{className:"w-4 h-4"}):e.jsx(S,{className:"w-4 h-4"})})}),a&&e.jsx("div",{className:"fixed inset-0 bg-black/50 -z-10",onClick:t})]})}function E(){const[a,t]=c.useState(!1),[r,n]=c.useState(null),p=r&&d.find(s=>s.id===r)||null;return e.jsx(h,{children:e.jsxs("div",{className:"space-y-8 pb-12 min-w-0",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"font-heading font-bold text-3xl","data-testid":"text-local-spots-title",children:"Local Spots & Map"}),e.jsxs("p",{className:"text-muted-foreground mt-2 max-w-2xl",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"Pawprint Academy"})," is based in Eastern North Carolina. These local spots are typical hangout spots for our local clients and a great place to check out if you're in the area!"]})]}),e.jsx(L,{expanded:a,onToggle:()=>t(!a),focusLocation:p}),e.jsxs(w,{children:[e.jsx("div",{className:"mb-2",children:e.jsx(C,{icon:l,color:"primary","data-testid":"eyebrow-locations-localspots",children:"Around Town"})}),e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-4 flex-wrap",children:[e.jsxs("h2",{className:"font-heading font-semibold text-lg flex items-center gap-2",children:[e.jsx(l,{className:"w-5 h-5 text-primary"})," Our Favorite Locations"]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[e.jsx(v,{end:d.length,className:"font-semibold text-foreground","data-testid":"stat-locations-localspots"})," spots"]})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[...d].sort((s,i)=>{const o={business:0,"group-class":1,"dog-friendly":2};return(o[s.type]??3)-(o[i.type]??3)}).map(s=>{const i=s.type==="business"?"border-l-blue-500":s.type==="group-class"?"border-l-green-500":"border-l-amber-500",o=s.type==="business"?"bg-blue-100":s.type==="group-class"?"bg-green-100":"bg-amber-100",m=s.type==="business"?"text-blue-600":s.type==="group-class"?"text-green-600":"text-amber-600",u=s.type==="business"?"bg-blue-100 text-blue-700":s.type==="group-class"?"bg-green-100 text-green-700":"bg-amber-100 text-amber-700",g=r===s.id;return e.jsx(b,{className:`card-glow border-l-4 ${i} cursor-pointer transition-all duration-200 hover:shadow-md ${g?"ring-2 ring-primary/40 shadow-md":""}`,"data-testid":`card-location-${s.id}`,onClick:()=>n(x=>x===s.id?null:s.id),children:e.jsx(f,{className:"pt-5 pb-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-9 h-9 rounded-lg flex items-center justify-center shrink-0 ${o}`,children:e.jsx(l,{className:`w-4 h-4 ${m}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h3",{className:"font-semibold text-sm",children:s.name}),e.jsx(y,{variant:"outline",className:`text-[10px] px-1.5 py-0 ${u} border-0`,children:s.type==="business"?"HQ":s.type==="group-class"?"Group Class":"Dog Friendly"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:s.description}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx(k,{className:"w-3 h-3 text-muted-foreground"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s.address})]})]})]})})},s.id)})})]})]})})}export{E 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.