1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[97984],{8452:(e,t,a)=>{a.d(t,{ShareButton:()=>o});var s=a(95155),l=a(12115),r=a(5196),n=a(66516),i=a(53999);function o(e){let{url:t,title:a,text:o,variant:c="pill",className:d}=e,[x,u]=(0,l.useState)("idle");async function h(){let e=null!=t?t:window.location.href;if("undefined"!=typeof navigator&&navigator.share)try{await navigator.share({title:null!=a?a:"Check out this listing on MaxxCity",text:null!=o?o:"Found this on MaxxCity Realty â thought you might like it!",url:e});return}catch(e){}try{await navigator.clipboard.writeText(e),u("copied"),setTimeout(()=>u("idle"),2e3)}catch(t){window.prompt("Copy this link to share:",e)}}return"icon"===c?(0,s.jsx)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),h()},className:(0,i.cn)("flex items-center justify-center w-11 h-11 rounded-full bg-white/90 hover:bg-white text-slate-600 hover:text-[#1769B5] shadow-sm transition-colors border border-slate-200",d),"aria-label":"Share this listing",title:"Share",children:"copied"===x?(0,s.jsx)(r.A,{className:"w-4 h-4 text-emerald-600","aria-hidden":"true"}):(0,s.jsx)(n.A,{className:"w-4 h-4","aria-hidden":"true"})}):"card"===c?(0,s.jsx)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),h()},className:(0,i.cn)("w-full flex items-center justify-center gap-2 border border-slate-200 hover:border-[#1769B5] hover:text-[#1769B5] text-slate-600 font-semibold px-4 py-3 rounded-xl text-sm transition-colors min-h-[44px]",d),"aria-label":"Share this listing",children:"copied"===x?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.A,{className:"w-4 h-4 text-emerald-600","aria-hidden":"true"}),(0,s.jsx)("span",{className:"text-emerald-600",children:"Link copied!"})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.A,{className:"w-4 h-4","aria-hidden":"true"}),"Share"]})}):(0,s.jsx)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),h()},className:(0,i.cn)("inline-flex items-center gap-2 border border-slate-200 hover:border-[#1769B5] hover:text-[#1769B5] text-slate-600 font-semibold px-4 py-2.5 rounded-xl text-sm transition-colors min-h-[44px]",d),"aria-label":"Share this listing",children:"copied"===x?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.A,{className:"w-4 h-4 text-emerald-600","aria-hidden":"true"}),(0,s.jsx)("span",{className:"text-emerald-600",children:"Copied!"})]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.A,{className:"w-4 h-4","aria-hidden":"true"}),"Share"]})})}},42741:(e,t,a)=>{a.d(t,{CardPhotoCarousel:()=>c});var s=a(95155),l=a(12115),r=a(66766),n=a(42355),i=a(13052);let o=e=>(0,s.jsx)(r.default,{...e,unoptimized:!0});function c(e){let{photos:t,alt:a,className:r="h-52",sizes:c}=e,[d,x]=(0,l.useState)(0),u=(0,l.useRef)(null),h=(0,l.useRef)(!1),m=t.length>0?t:["https://images.unsplash.com/photo-1564013799919-ab600027ffc6?w=800&q=80"],p=m.length,b=(0,l.useCallback)((e,t)=>{t.preventDefault(),t.stopPropagation(),x((e+p)%p)},[p]),f=(0,l.useCallback)(e=>{if(null==u.current)return;let t=e.changedTouches[0].clientX-u.current;u.current=null,10>Math.abs(t)||(h.current=!0,x(e=>t<0?(e+1)%p:(e-1+p)%p))},[p]),g=(d-1+p)%p,v=(d+1)%p;return(0,s.jsxs)("div",{className:"relative overflow-hidden bg-slate-100 ".concat(r),onTouchStart:e=>{u.current=e.touches[0].clientX,h.current=!1},onTouchEnd:f,onClick:e=>{h.current&&(e.preventDefault(),h.current=!1)},children:[(0,s.jsx)(o,{src:m[d],alt:a,fill:!0,className:"object-cover",sizes:null!=c?c:"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",priority:0===d},m[d]),p>1&&g!==d&&(0,s.jsx)(o,{src:m[g],alt:"",fill:!0,className:"object-cover opacity-0 pointer-events-none",sizes:"1px","aria-hidden":"true"},"pre-".concat(m[g])),p>1&&v!==d&&v!==g&&(0,s.jsx)(o,{src:m[v],alt:"",fill:!0,className:"object-cover opacity-0 pointer-events-none",sizes:"1px","aria-hidden":"true"},"nxt-".concat(m[v])),p>1&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button","aria-label":"Previous photo",onClick:e=>b(d-1,e),className:"absolute left-2 top-1/2 -translate-y-1/2 z-10 h-7 w-7 flex items-center justify-center rounded-full bg-black/40 text-white opacity-0 group-hover:opacity-100 transition-opacity",children:(0,s.jsx)(n.A,{className:"h-4 w-4"})}
1),(0,s.jsx)("button",{type:"button","aria-label":"Next photo",onClick:e=>b(d+1,e),className:"absolute right-2 top-1/2 -translate-y-1/2 z-10 h-7 w-7 flex items-center justify-center rounded-full bg-black/40 text-white opacity-0 group-hover:opacity-100 transition-opacity",children:(0,s.jsx)(i.A,{className:"h-4 w-4"})}),(0,s.jsx)("div",{className:"absolute bottom-2 left-1/2 -translate-x-1/2 flex gap-1 z-10 pointer-events-none","aria-hidden":"true",children:Array.from({length:Math.min(p,7)}).map((e,t)=>(0,s.jsx)("div",{className:"h-1 rounded-full transition-all duration-150 ".concat(t===d?"w-3 bg-white":"w-1.5 bg-white/50")},t))}),(0,s.jsxs)("div",{className:"absolute bottom-2 right-2 bg-black/50 text-white text-[10px] font-semibold px-1.5 py-0.5 rounded z-10 pointer-events-none",children:[d+1," / ",p]})]})]})}},59161:(e,t,a)=>{a.d(t,{CompareProvider:()=>i,f:()=>o});var s=a(95155),l=a(12115);let r="mc_compare_ids",n=(0,l.createContext)({ids:[],isSelected:()=>!1,toggle:()=>{},remove:()=>{},clear:()=>{},atMax:!1});function i(e){let{children:t}=e,[a,i]=(0,l.useState)([]);(0,l.useEffect)(()=>{try{let e=localStorage.getItem(r);e&&i(JSON.parse(e))}catch(e){}},[]);let o=(0,l.useCallback)(e=>{i(e);try{localStorage.setItem(r,JSON.stringify(e))}catch(e){}},[]),c=(0,l.useCallback)(e=>{i(t=>{if(t.includes(e)){let a=t.filter(t=>t!==e);try{localStorage.setItem(r,JSON.stringify(a))}catch(e){}return a}if(t.length>=4)return t;let a=[...t,e];try{localStorage.setItem(r,JSON.stringify(a))}catch(e){}return a})},[]),d=(0,l.useCallback)(e=>{o(a.filter(t=>t!==e))},[a,o]),x=(0,l.useCallback)(()=>o([]),[o]);return(0,s.jsx)(n.Provider,{value:{ids:a,isSelected:e=>a.includes(e),toggle:c,remove:d,clear:x,atMax:a.length>=4},children:t})}function o(){return(0,l.useContext)(n)}},88145:(e,t,a)=>{a.d(t,{E:()=>i});var s=a(95155);a(12115);var l=a(74466),r=a(53999);let n=(0,l.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors",{variants:{variant:{default:"border-transparent bg-gradient-accent text-white",secondary:"border-accent-purple text-accent-purple bg-transparent",destructive:"border-transparent bg-danger text-white",outline:"border-border text-text-muted bg-transparent",success:"border-transparent bg-success text-white"}},defaultVariants:{variant:"default"}});function i(e){let{className:t,variant:a,...l}=e;return(0,s.jsx)("div",{className:(0,r.cn)(n({variant:a}),t),...l})}},97984:(e,t,a)=>{a.d(t,{PropertyCard:()=>j});var s=a(95155),l=a(6874),r=a.n(l),n=a(57340),i=a(4516),o=a(36643),
1c=a(22717),d=a(18979),x=a(88145),u=a(53999),h=a(42296),m=a(8452),p=a(95491),b=a(59161);function f(e){let{id:t}=e,{isSelected:a,toggle:l,atMax:r}=(0,b.f)(),n=a(t),i=!n&&r;return(0,s.jsxs)("button",{type:"button",onClick:e=>{e.preventDefault(),e.stopPropagation(),l(t)},disabled:i,"aria-pressed":n,"aria-label":n?"Remove from comparison":i?"Max 4 listings":"Add to comparison",title:n?"Remove from comparison":i?"Max 4 listings â remove one first":"Compare this listing",className:(0,u.cn)("inline-flex items-center gap-1 px-2 py-1 rounded-lg text-xs font-medium border transition-colors",n?"bg-[#1769B5] text-white border-[#1769B5]":i?"bg-slate-100 text-slate-300 border-slate-200 cursor-not-allowed":"bg-white text-slate-500 border-slate-200 hover:border-[#1769B5] hover:text-[#1769B5]"),children:[(0,s.jsx)(p.A,{className:"h-3 w-3","aria-hidden":"true"}),n?"Added":"Compare"]})}var g=a(42741);let v={single_family:"Single Family",condo:"Condo",townhouse:"Townhouse",multi_family:"Multi-Family",manufactured:"Manufactured",land:"Land",commercial:"Commercial"};function j(e){var t,a,l,p,b;let{listing:j,saved:w,onSaveToggle:y,compact:N=!1,soldMode:_=!1}=e,S=(null!=(t=j.photos)?t:[]).filter(Boolean);return(0,s.jsxs)(r(),{href:"/listings/".concat(j.id),className:"group block bg-white rounded-xl border border-slate-200 overflow-hidden hover:shadow-lg hover:border-slate-300 transition-all duration-200",children:[(0,s.jsxs)("div",{className:(0,u.cn)("relative",N?"h-40":"h-52"),children:[(0,s.jsx)(g.CardPhotoCarousel,{photos:S,alt:j.address,className:(0,u.cn)("absolute inset-0",N?"h-40":"h-52")}),(0,s.jsxs)("div",{className:"absolute top-2 left-2 flex gap-1.5",children:[_?(0,s.jsx)(x.E,{className:"bg-red-600 text-white hover:bg-red-600 text-xs font-semibold",children:"Sold"}):!0===j.is_coming_soon?(0,s.jsx)(x.E,{className:"bg-violet-600 text-white hover:bg-violet-600 text-xs font-semibold",children:"Coming Soon"}):(0,s.jsx)(x.E,{className:(0,u.cn)("text-xs font-semibold","sale"===j.listing_type?"bg-[#1769B5] text-white hover:bg-[#1769B5]":"bg-emerald-600 text-white hover:bg-emerald-600"),children:"sale"===j.listing_type?"For Sale":"For Rent"}),!_&&"pending"===j.status&&!0!==j.is_coming_soon&&(0,s.jsx)(x.E,{className:"bg-amber-500 text-white hover:bg-amber-500 text-xs",children:"Pending"})]}),(0,s.jsx)(h.SaveButton,{listingId:j.id}),(0,s.jsx)(m.ShareButton,{variant:"icon",className:"absolute top-2 right-16",url:"".concat(window.location.origin,"/listings/").concat(j.id),title:"".concat(j.beds,"bd/").concat(j.baths,"ba \xb7 ").concat(j.address),text:"Check out this listing on MaxxCity: ".concat(j.address)}),!_&&(()=>{let e=j.open_houses,t=(null!=e?e:[]).find(e=>e.open_house_date>=new Date().toISOString().slice(0,10)),[a,l,r]=t?t.open_house_date.split("-").map(Number):[0,0,0],n=t?new Date(a,l-1,r).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"}):null;return(0,s.jsxs)("div",{className:"absolute bottom-2 left-2 flex flex-wrap gap-1 max-w-[calc(100%-1rem)]",children:[j.waterfront&&(0,s.jsx)("div",{className:"bg-blue-600/90 text-white text-xs px-2 py-0.5 rounded-full font-medium",children:"Waterfront"}),j.pool&&(0,s.jsx)("div",{className:"bg-sky-500/90 text-white text-xs px-2 py-0.5 rounded-full font-medium",children:"Pool"}),j.gated_community&&(0,s.jsx)("div",{className:"bg-slate-700/90 text-white text-xs px-2 py-0.5 rounded-full font-medium",children:"\uD83D\uDD10 Gated"}),j.in_law_suite&&(0,s.jsx)("div",{className:"bg-purple-600/90 text-white text-xs px-2 py-0.5 rounded-full font-medium",children:"In-Law Suite"}),t&&n&&(0,s.jsxs)("div",{className:"bg-emerald-600/95 text-white text-xs font-bold px-2 py-0.5 rounded-full flex items-center gap-1",children:["\uD83C\uDFE0 Open ",n,t.start_time?" \xb7 ".concat(t.start_time):""]})]})})()]}),(0,s.jsxs)("div",{className:"p-4",children:[(0,s.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-1",children:[(0,s.jsxs)("div",{children:[_&&(0,s.jsx)("div",{className:"text-xs text-slate-500 font-medium mb-0.5",children:"Sold for"}),(0,s.jsx)("div",{className:"font-bold text-xl text-[#1769B5]",children:_?(0,u.$g)(null!=(a=j.close_price)?a:j.price,"sale"):(0,u.$g)(j.price,j.listing_type)})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 text-slate-400 text-xs shrink-0 mt-1",children:[(0,s.jsx)(n.A,{className:"h-3 w-3","aria-hidden":"true"}),(0,s.jsx)("span",{children:null!=(l=v[j.property_type])?l:j.property_type})]})]}),(0,s.jsxs)("div",{className:"flex items-start gap-1 text-slate-600 text-sm mb-3",children:[(0,s.jsx)(i.A,{className:"h-3.5 w-3.5 mt-0.5 shrink-0 text-[#1769B5]","aria-hidden":"true"}),(0,s.jsx)("span",{className:"line-clamp-1",children:j.address})]}),(0,s.jsxs)("div",{className:"flex items-center gap-4 text-sm text-slate-600",children:[null!=j.beds&&(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(o.A,{className:"h-3.5 w-3.5","aria-hidden":"true"}),j.beds," bd"]}),null!=j.baths&&(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(c.A,{className:"h-3.5 w-3.5","aria-hidden":"true"}),j.baths," ba"]}),null!=j.sqft&&(0,s.jsxs)("span",{className:"flex items-center gap-1",children:[(0,s.jsx)(d.A,{className:"h-3.5 w-3.5","aria-hidden":"true"}
1),j.sqft.toLocaleString()," sqft"]})]}),!_&&(null!=(p=j.tags)?p:[]).filter(e=>"string"==typeof e).length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-3",children:(null!=(b=j.tags)?b:[]).filter(e=>"string"==typeof e).slice(0,3).map(e=>(0,s.jsx)("span",{className:"text-xs bg-slate-100 text-slate-600 px-2 py-0.5 rounded-full capitalize",children:e.replace(/_/g," ")},e))}),(0,s.jsx)("div",{className:"mt-3 flex items-center gap-2",children:(0,s.jsx)(f,{id:j.id})}),(0,s.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-2",children:[_?j.close_date?(0,s.jsxs)("span",{className:"text-xs font-medium px-2 py-0.5 rounded-full bg-red-50 text-red-700",children:["Sold ",(e=>{if(!e)return null;let[t,a,s]=e.split("-").map(Number);return new Date(t,a-1,s).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})})(j.close_date)]}):null:(()=>{var e;let t=j.on_market_date?Math.floor((Date.now()-new Date(j.on_market_date).getTime())/864e5):null!=(e=j.days_on_market)?e:null;return null==t||t<0?null:(0,s.jsx)("span",{className:(0,u.cn)("text-xs font-medium px-2 py-0.5 rounded-full",t<=7?"bg-emerald-50 text-emerald-700":t<=30?"bg-blue-50 text-blue-700":t<=60?"bg-amber-50 text-amber-700":"bg-slate-100 text-slate-500"),children:0===t?"New today":"".concat(t,"d on market")})})(),j.office_name&&(0,s.jsx)("span",{className:"text-xs text-slate-400 truncate ml-auto",title:j.office_name,children:j.office_name})]})]})]})}}}]);
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.