PageSourceSearch

https://localhomes.ai/assets/index-CxqYmZdF.js

js localhomes.ai collected 2026-10-05 12:13:38 UTC 41,045 bytes, 10 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/HomePage-DvHOUTir.js","assets/vendor-react-CNgIIX2D.js","assets/FeedCard-CNZqawmY.js","assets/seo-WZjzO_it.js","assets/gtm-service-BcLpnOwx.js","assets/consent-manager-CK3oYsNv.js","assets/vendor-supabase-DNavLZKi.js","assets/vendor-icons-B1IIOTNL.js","assets/scroll-tracker-CC6_CEW_.js","assets/session-tracker-aLX2n4su.js","assets/feed-api-C1Imb05I.js","assets/AdBanner-BIx3p3B4.js","assets/tracking-utils-CrhrF1Os.js","assets/SearchPage-i6JuKZPm.js","assets/ListingDetailPage-D3b30cDV.js","assets/market-stats-api-fwwaxIBq.js","assets/CityLandingPage-CF_eD_ac.js","assets/LoginPage-CJHNrzN4.js","assets/AdminDashboard-Mwf2Ba4s.js","assets/campaign-api-u5vZRlpg.js","assets/PasswordStrengthIndicator-D5hRoYEi.js","assets/PrivacyPage-DM6fd8mP.js","assets/TermsPage-CnB-97iE.js","assets/TrackingDocsPage-Cr29PzHj.js","assets/ForgotPasswordPage-Bo8VIBsY.js","assets/ResetPasswordPage-fp8qrU0A.js","assets/LocationPicker-B66HBZ0c.js","assets/visibility-tracker-3IHEstLR.js"])))=>i.map(i=>d[i]);
2import{r as o,a as T}from"./vendor-react-CNgIIX2D.js";import{c as We,_ as p}from"./vendor-supabase-DNavLZKi.js";import{S as Ge,a as he,b as Ye,F as Ze,c as Qe,H as fe}from"./vendor-icons-B1IIOTNL.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const c of n)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function i(n){const c={};return n.integrity&&(c.integrity=n.integrity),n.referrerPolicy&&(c.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?c.credentials="include":n.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function a(n){if(n.ep)return;n.ep=!0;const c=i(n);fetch(n.href,c)}})();var Se={exports:{}},re={};/**
3 * @license React
4 * react-jsx-runtime.production.min.js
5 *
6 * Copyright (c) Facebook, Inc. and its affiliates.
7 *
8 * This source code is licensed under the MIT license found in the
9 * LICENSE file in the root directory of this source tree.
10 */var Xe=o,Ke=Symbol.for("react.element"),et=Symbol.for("react.fragment"),tt=Object.prototype.hasOwnProperty,rt=Xe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,it={key:!0,ref:!0,__self:!0,__source:!0};function Le(e,t,i){var a,n={},c=null,u=null;i!==void 0&&(c=""+i),t.key!==void 0&&(c=""+t.key),t.ref!==void 0&&(u=t.ref);for(a in t)tt.call(t,a)&&!it.hasOwnProperty(a)&&(n[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)n[a]===void 0&&(n[a]=t[a]);return{$$typeof:Ke,type:e,key:c,ref:u,props:n,_owner:rt.current}}re.Fragment=et;re.jsx=Le;re.jsxs=Le;Se.exports=re;var r=Se.exports,Ie,we=T;Ie=we.createRoot,we.hydrateRoot;const nt="https://axtdbzzmwlmyclsoxfpx.supabase.co",at="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImF4dGRienptd2xteWNsc294ZnB4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjI4OTM0MzMsImV4cCI6MjA3ODQ2OTQzM30.elps6mb-oi52GH6kZodyL3TfVQ-IKGFI5xnPoHWg6x4",y=We(nt,at),Pe=o.createContext(void 0);function de({children:e}){const[t,i]=o.useState(null),[a,n]=o.useState(!0),[c,u]=o.useState(!1);o.useEffect(()=>{let x=!1;const w=setTimeout(()=>{x||(x=!0,n(!1))},5e3);y.auth.getSession().then(({data:{session:N}})=>{var v,l;x||(x=!0,clearTimeout(w)),i((N==null?void 0:N.user)??null),u(((l=(v=N==null?void 0:N.user)==null?void 0:v.app_metadata)==null?void 0:l.role)==="admin"),n(!1)});const{data:{subscription:E}}=y.auth.onAuthStateChange((N,v)=>{(async()=>{var l,R;i((v==null?void 0:v.user)??null),u(((R=(l=v==null?void 0:v.user)==null?void 0:l.app_metadata)==null?void 0:R.role)==="admin"),n(!1)})()});return()=>{clearTimeout(w),E.unsubscribe()}},[]);const m=async(x,w)=>{const{error:E}=await y.auth.signUp({email:x,password:w});return{error:E}},g=async(x,w)=>{const{error:E}=await y.auth.signInWithPassword({email:x,password:w});return{error:E}},_=async()=>{await y.auth.signOut()},b=async x=>{const{error:w}=await y.auth.resetPasswordForEmail(x,{redirectTo:`${window.location.origin}/reset-password`});return{error:w}},h=async x=>{const{error:w}=await y.auth.updateUser({password:x});return{error:w}},k=async x=>{if(!(t!=null&&t.email))return!1;const{error:w}=await y.auth.signInWithPassword({email:t.email,password:x});return!w};return r.jsx(Pe.Provider,{value:{user:t,loading:a,signUp:m,signIn:g,signOut:_,resetPassword:b,updatePassword:h,verifyCurrentPassword:k,isAdmin:c},children:e})}function st(){const e=o.useContext(Pe);if(e===void 0)throw new Error("useAuth must be used within an AuthProvider");return e}function B({onNavigate:e,onVoiceClick:t,showLegalMenu:i}){const[a,n]=o.useState(!1),c=o.useRef(null);return o.useEffect(()=>{if(!a)return;const u=g=>{c.current&&!c.current.contains(g.target)&&n(!1)},m=g=>{g.key==="Escape"&&n(!1)};return document.addEventListener("mousedown",u),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",m)}},[a]),r.jsx("header",{className:"bg-white border-b border-gray-200 sticky top-0 z-50 shadow-sm",children:r.jsx("div",{className:"max-w-7xl mx-auto px-3 sm:px-6 lg:px-8",children:r.jsxs("div",{className:"flex justify-between items-center h-14 sm:h-16 gap-2",children:[r.jsx("button",{onClick:()=>e("home"),className:"flex items-center flex-shrink-0",children:r.jsx("img",{src:"/horizontal-color.png",alt:"LocalHomes.ai",className:"h-5 sm:h-6 w-auto"})}),r.jsxs("nav",{className:"flex items-center gap-2 sm:gap-4 flex-shrink-0",children:[t&&r.jsxs("button",{onClick:t,className:"flex items-center gap-1.5 px-3 py-2 bg-gradient-to-r from-blue-600 to-blue-700 text-white rounded-lg hover:from-blue-700 hover:to-blue-800 transition-all font-medium shadow-md hover:shadow-lg text-sm",children:[r.jsx(Ge,{className:"w-4 h-4 sm:w-5 sm:h-5"}),r.jsx("span",{className:"hidden sm:inline",children:"Voice Search"})]}),r.jsxs("button",{onClick:()=>e("search"),className:"flex items-center gap-1.5 text-gray-700 hover:text-blue-600 transition-colors font-medium text-sm",children:[r.jsx(he,{className:"w-4 h-4 sm:w-5 sm:h-5"}),r.jsx("span",{className:"hidden sm:inline",children:"Search Homes"})]}),i&&r.jsxs("div",{className:"relative",ref:c,children:[r.jsx("button",{onClick:()=>n(u=>!u),"aria-label":"Legal and compliance","aria-expanded":a,className:"p-1.5 rounded-md text-gray-400 hover:text-gray-600 hover:bg-gray-100 transition-colors",children:r.jsx(Ye,{className:"w-4 h-4"})}),a&&r.jsxs("div",{role:"menu",className:"absolute right-0 top-full mt-2 w-52 bg-white rounded-lg shadow-lg border border-gray-200 py-1.5 animate-in fade-in slide-in-from-top-1 z-50",children:[r.jsxs("button",{role:"menuitem",onClick:()=>{e("terms"),n(!1)},className:"flex items-center gap-2.5 w-full px-3.5 py-2 text-sm text-gray-700 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:[r.jsx(Ze,{className:"w-3.5 h-3.5 text-gray-400"}),"Terms & Conditions"]}),r.jsxs("button",{role:"menuitem",onClick:()=>{e("privacy"),n(!1)},className:"flex items-center gap-2.5 w-full px-3.5 py-2 text-sm text-gray-700 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:[r.jsx(Qe,{className:"w-3.5 h-3.5 text-gray-400"}),"Privacy Policy"]})]})]})]})]})})})}function V(){return r.jsx("footer",{className:"bg-gray-900 text-gray-300 mt-auto",children:r.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 sm:py-12",children:[r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-8",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-white font-bold text-lg mb-4",children:"LocalHomes.ai"}),r.jsx("p",{className:"text-sm leading-relaxed",children:"Your trusted source for real estate listings powered by MLS data with AI-enhanced insights."})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-white font-bold text-lg mb-4",children:"Resources"}),r.jsxs("ul",{className:"space-y-2 text-sm",children:[r.jsx("li",{children:r.jsx("a",{href:"/terms",className:"hover:text-white transition-colors",children:"Terms & Conditions"})}),r.jsx("li",{children:r.jsx("a",{href:"/privacy",className:"hover:text-white transition-colors",children:"Privacy Policy"})})]})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-white font-bold text-lg mb-4",children:"MLS Data Compliance"}),r.jsx("p",{className:"text-sm leading-relaxed mb-3",children:r.jsx("strong",{className:"text-white",children:"Listing data copyright respective MLS providers. Displayed as received."})}),r.jsx("p",{className:"text-xs leading-relaxed",children:"MLS data refreshed every 12 hours. No modifications, redistribution, or derivative works. All listing information deemed reliable but not guaranteed."})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-white font-bold text-lg mb-4",children:"AI Disclosure"}),r.jsx("p",{className:"text-sm leading-relaxed",children:"AI-generated insights are provided for c
10ontextual information only and are not part of verified MLS data. Generated from public data sources and analytics."})]})]}),r.jsx("div",{className:"border-t border-gray-800 mt-8 pt-8 text-sm",children:r.jsxs("div",{className:"text-center",children:[r.jsxs("p",{children:["© ",new Date().getFullYear()," LocalHomes.ai. All rights reserved."]}),r.jsx("p",{className:"mt-2 text-xs",children:"IDX information is provided exclusively for consumers' personal, non-commercial use and may not be used for any purpose other than to identify prospective properties. Data accuracy is not guaranteed."})]})})]})})}const Ne=[{name:"Milwaukee",state:"WI",slug:"milwaukee-wi",latitude:43.0389,longitude:-87.9065,description:"Wisconsin's largest city offers diverse neighborhoods from the Historic Third Ward to Bay View, with lakefront living along Lake Michigan and a thriving arts and dining scene.",highlights:["Lakefront living along Lake Michigan","Diverse neighborhoods from downtown condos to suburban homes","Growing food and craft beer scene in the Third Ward","Major employers including Northwestern Mutual and Harley-Davidson"]},{name:"Madison",state:"WI",slug:"madison-wi",latitude:43.0731,longitude:-89.4012,description:"Home to the University of Wisconsin, Madison consistently ranks among the best places to live in America with its isthmus setting between two lakes, strong job market, and vibrant culture.",highlights:["Isthmus setting between Lakes Mendota and Monona","University of Wisconsin drives innovation and culture","Top-rated public schools across Dane County","Strong tech sector with Epic Systems nearby"]},{name:"Green Bay",state:"WI",slug:"green-bay-wi",latitude:44.5133,longitude:-88.0133,description:"Known worldwide as Titletown, Green Bay combines small-city charm with affordable housing, outdoor recreation along the bay, and a tight-knit community proud of its heritage.",highlights:["Affordable housing relative to state averages","Outdoor recreation on the bay and Fox River Trail","Strong manufacturing and healthcare employment base","Family-friendly community with low cost of living"]},{name:"Kenosha",state:"WI",slug:"kenosha-wi",latitude:42.5847,longitude:-87.8212,description:"Positioned between Milwaukee and Chicago, Kenosha offers lakefront living, a revitalized downtown, and easy access to two major metro areas via Metra commuter rail.",highlights:["Strategic location between Milwaukee and Chicago","Metra commuter rail to downtown Chicago","Beautiful Lake Michigan shoreline and harbor","Revitalized downtown with museums and dining"]},{name:"Racine",state:"WI",slug:"racine-wi",latitude:42.7261,longitude:-87.7829,description:"Racine sits on Lake Michigan with a rich industrial heritage, Frank Lloyd Wright architecture at Wingspread, and a waterfront that continues to attract new development.",highlights:["Lake Michigan waterfront with North Beach","Frank Lloyd Wright's Wingspread and SC Johnson campus","Growing downtown revitalization and investment","Close proximity to Milwaukee and Chicago"]}];function H(e){return Ne.find(t=>t.slug===e)}function Vt(e,t){const i=Ne.find(a=>a.name.toLowerCase()===e.toLowerCase()&&a.state===t);return i==null?void 0:i.slug}async function qt(e,t){const{data:i,error:a}=await y.rpc("get_city_landing_stats",{p_city:e,p_state:t});return a||!i?await ot(e,t):i}async function ot(e,t){const{data:i,error:a}=await y.from("listings").select("list_price, bedrooms_total, bathrooms_total_integer, living_area, property_type").eq("standard_status","Active").ilike("city",e).eq("state_or_province",t);if(a||!i||i.length===0)return{totalListings:0,medianPrice:0,avgPrice:0,minPrice:0,maxPrice:0,avgBeds:0,avgBaths:0,avgSqft:0,propertyTypeCounts:{}};const n=i.map(h=>h.list_price).filter(h=>h!=null&&h>0).sort((h,k)=>h-k),c=i.map(h=>h.bedrooms_total).filter(h=>h!=null),u=i.map(h=>h.bathrooms_total_integer).filter(h=>h!=null),m=i.map(h=>h.living_area).filter(h=>h!=null&&h>0),g=n.length>0?n[Math.floor(n.length/2)]:0,_=h=>h.length>0?h.reduce((k,x)=>k+x,0)/h.length:0,b={};for(const h of i)h.property_type&&(b[h.property_type]=(b[h.property_type]||0)+1);return{totalListings:i.length,medianPrice:g,avgPrice:Math.round(_(n)),minPrice:n[0]||0,maxPrice:n[n.length-1]||0,avgBeds:Math.round(_(c)*10)/10,avgBaths:Math.round(_(u)*10)/10,avgSqft:Math.round(_(m)),propertyTypeCounts:b}}async function Ut(e,t,i=6){const{data:a,error:n}=await y.from("listings").select("*, listing_images(*)").eq("standard_status","Active").ilike("city",e).eq("state_or_province",t).not("list_price","eq",0).order("list_price",{ascending:!1}).limit(i);return n?[]:a||[]}const _e="localhomes_session_id";function ue(){let e=localStorage.getItem(_e);return e||(e=crypto.randomUUID(),localStorage.setItem(_e,e)),e}const ct=3e4,ke=50,Z="localhomes_feed_events";let A=[],ve=!1;function Jt(e){ve||(ve=!0,ut(e),setInterval(ee,ct),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ee()}),window.addEventListener("beforeunload",ee))}function lt(e,t){A.push({...t,session_id:e}),A.length>=ke&&ee()}async function ee(){if(A.length===0)return;const e=[...A];A=[];const t=e.map(a=>({session_id:a.session_id,listing_id:a.listing_id,event_type:a.event_type,metadata:a.metadata||null,created_at:new Date(a.timestamp).toISOString()})),{error:i}=await y.from("user_behavior_events").insert(t);i&&(A=[...e,...A].slice(-ke*2),console.error("Failed to flush behavior events:",i))}function dt(){return A.map(e=>({listing_id:e.listing_id,event_type:e.event_type,metadata:e.metadata,timestamp:e.timestamp}))}async function Ht(e,t=168){const i=new Date(Date.now()-t*60*60*1e3).toISOString(),{data:a,error:n}=await y.from("user_behavior_events").select("listing_id, event_type, metadata, created_at").eq("session_id",e).gte("created_at",i).order("created_at",{ascending:!1}).limit(500);if(n)return console.error("Failed to fetch behavior events:",n),dt();const c=(a||[]).map(m=>({listing_id:m.listing_id,event_type:m.event_type,metadata:m.metadata||void 0,timestamp:new Date(m.created_at).getTime()}));return[...A.filter(m=>m.session_id===e).map(m=>({listing_id:m.listing_id,event_type:m.event_type,metadata:m.metadata,timestamp:m.timestamp})),...c]}function ut(e){try{const t=localStorage.getItem(Z);if(!t)return;const i=JSON.parse(t);if(!Array.isArray(i)||i.length===0){localStorage.removeItem(Z);return}const a=i.filter(n=>n.timestamp>Date.now()-7*24*60*60*1e3);if(a.length>0){const n=a.map(c=>({session_id:e,listing_id:c.listing_id,event_type:c.event_type,metadata:c.metadata||null,created_at:new Date(c.timestamp).toISOString()}));y.from("user_behavior_events").insert(n).then(({error:c})=>{c&&console.error("Failed to migrate legacy events:",c)})}localStorage.removeItem(Z)}catch{localStorage.removeItem(Z)}}const mt={tab:"foryou",query:""};function $(e,t,i){i!==void 0&&i!==""&&i!==0&&e.set(t,String(i))}function $t(e){const t=new URLSearchParams;e.tab&&e.tab!==mt.tab&&t.set("tab",e.tab),e.query&&t.set("q",e.query),$(t,"minPrice",e.minPrice),$(t,"maxPrice",e.maxPrice),$(t,"minBeds",e.minBeds),e.propertyType&&t.set("propertyType",e.propertyType),e.tab==="nearby"&&e.radius&&e.radius!==50&&t.set("radius",String(e.radiu
10s));const i=t.toString();return i?`?${i}`:""}function Wt(e){const t=new URLSearchParams(e),i={},a=t.get("tab");a&&["foryou","nearby","viewed","saved"].includes(a)&&(i.tab=a);const n=t.get("q");n&&(i.query=n);const c=t.get("minPrice");c&&(i.minPrice=Number(c));const u=t.get("maxPrice");u&&(i.maxPrice=Number(u));const m=t.get("minBeds");m&&(i.minBeds=Number(m));const g=t.get("propertyType");g&&(i.propertyType=g);const _=t.get("radius");return _&&(i.radius=Number(_)),i}function Gt(e){const t=new URLSearchParams;e.q&&t.set("q",e.q),$(t,"minBeds",e.minBeds),$(t,"minBaths",e.minBaths),e.propertyType&&t.set("propertyType",e.propertyType);const i=t.toString();return i?`?${i}`:""}function Yt(e){const t=new URLSearchParams(e);return{q:t.get("q")||"",minBeds:t.get("minBeds")?Number(t.get("minBeds")):void 0,minBaths:t.get("minBaths")?Number(t.get("minBaths")):void 0,propertyType:t.get("propertyType")||void 0}}function ht(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function ft(e){return e.toLowerCase().replace(/,/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function gt(){return new URLSearchParams(window.location.search).get("location")}function be(){const e=new URLSearchParams(window.location.search);e.delete("location");const t=e.toString(),i=window.location.pathname+(t?`?${t}`:"");window.history.replaceState(window.history.state,"",i)}async function pt(e){if(!e.trim())return[];try{const t="https://axtdbzzmwlmyclsoxfpx.supabase.co",i=new URL(`${t}/functions/v1/places-autocomplete`);i.searchParams.append("action","autocomplete"),i.searchParams.append("input",e);const n=await(await fetch(i.toString(),{headers:{Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImF4dGRienptd2xteWNsc294ZnB4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjI4OTM0MzMsImV4cCI6MjA3ODQ2OTQzM30.elps6mb-oi52GH6kZodyL3TfVQ-IKGFI5xnPoHWg6x4"}})).json();if(n.error)throw console.error("Places API error:",n.error),new Error(n.error);return n.predictions?n.predictions:[]}catch(t){throw console.error("Failed to get place predictions:",t),t}}async function yt(e){try{const t="https://axtdbzzmwlmyclsoxfpx.supabase.co",i=new URL(`${t}/functions/v1/places-autocomplete`);i.searchParams.append("action","details"),i.searchParams.append("placeId",e);const n=await(await fetch(i.toString(),{headers:{Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImF4dGRienptd2xteWNsc294ZnB4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjI4OTM0MzMsImV4cCI6MjA3ODQ2OTQzM30.elps6mb-oi52GH6kZodyL3TfVQ-IKGFI5xnPoHWg6x4"}})).json();return n.details?{latitude:n.details.latitude,longitude:n.details.longitude,formattedAddress:n.details.formattedAddress}:null}catch(t){return console.error("Failed to get place details:",t),null}}async function Zt(e){if(!e.trim())return null;try{const t="https://axtdbzzmwlmyclsoxfpx.supabase.co",i=new URL(`${t}/functions/v1/places-autocomplete`);i.searchParams.append("action","geocode"),i.searchParams.append("address",e);const n=await(await fetch(i.toString(),{headers:{Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImF4dGRienptd2xteWNsc294ZnB4Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjI4OTM0MzMsImV4cCI6MjA3ODQ2OTQzM30.elps6mb-oi52GH6kZodyL3TfVQ-IKGFI5xnPoHWg6x4"}})).json();return n.error?(console.error("Geocode API error:",n.error),null):n.result?{latitude:n.result.latitude,longitude:n.result.longitude,formattedAddress:n.result.formattedAddress}:null}catch(t){return console.error("Failed to geocode address:",t),null}}function Qt(e,t){let i=null;return function(...n){const c=()=>{i=null,e(...n)};i&&clearTimeout(i),i=setTimeout(c,t)}}const ge=new Map,xt=10*60*1e3;function wt(e){const t=ge.get(e);return t?Date.now()-t.ts>xt?(ge.delete(e),null):t.data:null}async function Xt(e){const{query:t,city:i,state:a,zipCode:n,minPrice:c,maxPrice:u,minBeds:m,minBaths:g,minSqft:_,maxSqft:b,propertyType:h,status:k="Active",yearBuiltMin:x,yearBuiltMax:w,sortBy:E="newest",page:N=1,limit:v=24}=e;let l=y.from("listings").select("*, listing_images(*)",{count:"exact"});switch(l=l.eq("standard_status",k),t&&(l=l.or(`listing_id.ilike.%${t}%,city.ilike.%${t}%,postal_code.ilike.%${t}%,street_name.ilike.%${t}%`)),i&&(l=l.ilike("city",`%${i}%`)),a&&(l=l.eq("state_or_province",a)),n&&(l=l.eq("postal_code",n)),c!==void 0&&(l=l.gte("list_price",c)),u!==void 0&&(l=l.lte("list_price",u)),m!==void 0&&(l=l.gte("bedrooms_total",m)),g!==void 0&&(l=l.gte("bathrooms_total_integer",g)),_!==void 0&&(l=l.gte("living_area",_)),b!==void 0&&(l=l.lte("living_area",b)),h&&(l=l.eq("property_type",h)),x!==void 0&&(l=l.gte("year_built",x)),w!==void 0&&(l=l.lte("year_built",w)),E){case"price_asc":l=l.order("list_price",{ascending:!0});break;case"price_desc":l=l.order("list_price",{ascending:!1});break;
10case"beds_desc":l=l.order("bedrooms_total",{ascending:!1});break;case"sqft_desc":l=l.order("living_area",{ascending:!1});break;case"newest":default:l=l.order("created_at",{ascending:!1});break}const R=(N-1)*v;l=l.range(R,R+v-1);const{data:O,error:W,count:q}=await l;if(W)throw new Error(`Failed to fetch listings: ${W.message}`);return{listings:O||[],total:q||0,page:N,limit:v,totalPages:Math.ceil((q||0)/v)}}const _t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function vt(e){const t=wt(e);if(t)return t;const i=_t.test(e)?"id":"listing_id",{data:a,error:n}=await y.from("listings").select("*, listing_images(image_url, image_order, caption)").eq(i,e).maybeSingle();if(n)throw new Error(`Failed to fetch listing: ${n.message}`);if(!a)return null;const c=a;if(c.listing_images&&c.listing_images.sort((u,m)=>u.image_order-m.image_order),!c.listing_images||c.listing_images.length===0){const u=await bt(c.listing_id);if(u.length>0){const m=new Date().toISOString();c.listing_images=u.map((g,_)=>({id:`fallback-${_}`,listing_id:c.id,image_url:g,image_order:_,caption:null,created_at:m}))}}return ge.set(e,{data:c,ts:Date.now()}),c}async function bt(e){const{data:t}=await y.from("content_items").select("featured_image_url, metadata").eq("status","published").filter("metadata->>listing_id","eq",e).order("published_at",{ascending:!1}).limit(1).maybeSingle();if(!t)return[];const i=t.metadata;return Array.isArray(i==null?void 0:i.image_urls)&&i.image_urls.length>0?i.image_urls.filter(a=>typeof a=="string"&&a.length>0):t.featured_image_url?[t.featured_image_url]:[]}class jt extends o.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?r.jsx("div",{className:"min-h-[50vh] flex items-center justify-center px-4",children:r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"w-14 h-14 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-5",children:r.jsx(fe,{className:"w-7 h-7 text-gray-400"})}),r.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Something went wrong"}),r.jsx("p",{className:"text-gray-600 mb-6",children:"An unexpected error occurred. Please try again."}),r.jsxs("button",{onClick:()=>{this.setState({hasError:!1}),this.props.onReset()},className:"inline-flex items-center gap-2 px-6 py-3 bg-blue-600 text-white font-medium rounded-lg hover:bg-blue-700 transition-colors",children:[r.jsx(fe,{className:"w-4 h-4"}),"Back to Home"]})]})}):this.props.children}}const Ee="localhomes_user_location";function je(){try{const e=localStorage.getItem(Ee);if(!e)return null;const t=JSON.parse(e);return t.latitude&&t.longitude?t:null}catch{return null}}function St(e){localStorage.setItem(Ee,JSON.stringify(e))}function me(){return new Promise(e=>{if(!navigator.geolocation){e(null);return}navigator.geolocation.getCurrentPosition(t=>{const i={latitude:t.coords.latitude,longitude:t.coords.longitude,accuracy:t.coords.accuracy};St(i),e(i)},()=>e(null),{enableHighAccuracy:!1,timeout:8e3,maximumAge:3e5})})}function Kt(e,t,i,a){const c=Q(i-e),u=Q(a-t),m=Math.sin(c/2)*Math.sin(c/2)+Math.cos(Q(e))*Math.cos(Q(i))*Math.sin(u/2)*Math.sin(u/2);return 3958.8*(2*Math.atan2(Math.sqrt(m),Math.sqrt(1-m)))}function Q(e){return e*Math.PI/180}function er(e){return e<.1?"< 0.1 mi":e<10?`${e.toFixed(1)} mi`:`${Math.round(e)} mi`}async function Lt(e){const{data:t,error:i}=await y.from("user_location_preferences").select("*").eq("session_id",e).maybeSingle();return i||!t?null:{locationName:t.location_name,latitude:Number(t.latitude),longitude:Number(t.longitude),isDeviceLocation:t.is_device_location}}async function X(e,t){if((await y.from("user_location_preferences").select("id").eq("session_id",e).maybeSingle()).data){const{error:a}=await y.from("user_location_preferences").update({location_name:t.locationName,latitude:t.latitude,longitude:t.longitude,is_device_location:t.isDeviceLocation,updated_at:new Date().toISOString()}).eq("session_id",e);if(a)throw a}else{const{error:a}=await y.from("user_location_preferences").insert({session_id:e,location_name:t.locationName,latitude:t.latitude,longitude:t.longitude,is_device_location:t.isDeviceLocation});if(a)throw a}}async function It(e){const{error:t}=await y.from("user_location_preferences").delete().eq("session_id",e);if(t)throw t}const Pt=o.lazy(()=>p(()=>import("./HomePage-DvHOUTir.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])).then(e=>({default:e.HomePage}))),Nt=o.lazy(()=>p(()=>import("./SearchPage-i6JuKZPm.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,12])).then(e=>({default:e.SearchPage}
10))),kt=o.lazy(()=>p(()=>import("./ListingDetailPage-D3b30cDV.js"),__vite__mapDeps([14,1,3,10,7,15,11,4,5,6,8,9,12])).then(e=>({default:e.ListingDetailPage}))),Et=o.lazy(()=>p(()=>import("./CityLandingPage-CF_eD_ac.js"),__vite__mapDeps([16,1,3,7,6])).then(e=>({default:e.CityLandingPage}))),Ct=o.lazy(()=>p(()=>import("./LoginPage-CJHNrzN4.js"),__vite__mapDeps([17,1,7,6])).then(e=>({default:e.LoginPage}))),Tt=o.lazy(()=>p(()=>import("./AdminDashboard-Mwf2Ba4s.js"),__vite__mapDeps([18,1,15,19,7,20,6])).then(e=>({default:e.AdminDashboard}))),Ce=o.lazy(()=>p(()=>import("./PrivacyPage-DM6fd8mP.js"),__vite__mapDeps([21,1,3,7,6])).then(e=>({default:e.PrivacyPage}))),Te=o.lazy(()=>p(()=>import("./TermsPage-CnB-97iE.js"),__vite__mapDeps([22,1,3,7,6])).then(e=>({default:e.TermsPage}))),At=o.lazy(()=>p(()=>import("./TrackingDocsPage-Cr29PzHj.js"),__vite__mapDeps([23,1,19,12,6,7])).then(e=>({default:e.TrackingDocsPage}))),Ae=o.lazy(()=>p(()=>import("./ForgotPasswordPage-Bo8VIBsY.js"),__vite__mapDeps([24,1,7,6])).then(e=>({default:e.ForgotPasswordPage}))),Re=o.lazy(()=>p(()=>import("./ResetPasswordPage-fp8qrU0A.js"),__vite__mapDeps([25,1,20,7,6])).then(e=>({default:e.ResetPasswordPage}))),Rt=o.lazy(()=>p(()=>import("./LocationPicker-B66HBZ0c.js"),__vite__mapDeps([26,1,7,6])).then(e=>({default:e.LocationPicker})));function I(){return r.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:r.jsx("div",{className:"inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-blue-600 border-r-transparent"})})}function K(){const t=window.location.pathname.match(/^\/listing\/(.+?)(?:\/|$)/);return t?t[1]:new URLSearchParams(window.location.search).get("listing")}function te(){const t=window.location.pathname.match(/^\/homes-for-sale\/([a-z0-9-]+)$/);return t?t[1]:null}function Ot(){const{user:e,loading:t,isAdmin:i}=st();return o.useState(!0),t?r.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-blue-600 border-r-transparent"}),r.jsx("p",{className:"mt-4 text-gray-600",children:"Loading..."})]})}):!e||!i?r.jsx(Ct,{}):r.jsx(Tt,{})}function Dt(){const e=()=>{const s=window.location.pathname;if(s==="/privacy")return"privacy";if(s==="/terms")return"terms";if(s==="/admin")return"admin-login";if(s==="/tracking-docs")return"tracking-docs";if(s==="/forgot-password")return"forgot-password";if(s==="/reset-password")return"reset-password";if(s==="/search")return"search";const f=te();return f&&H(f)?"city":K()?"listing":"home"},t=()=>!!K(),i=()=>{const s=te();return s&&H(s)||null},[a,n]=o.useState(e),[c,u]=o.useState(i),[m,g]=o.useState(null),[_,b]=o.useState(void 0),[h,k]=o.useState(t()),[x,w]=o.useState(!1),[E,N]=o.useState({}),[v,l]=o.useState(je),[R,O]=o.useState(null),[W,q]=o.useState(!1),[pe,U]=o.useState(()=>e()==="home"),J=o.useRef(ue()),ie=o.useRef(!1),ne=o.useRef(!1),D=o.useRef({}),ae=o.useRef(a);ae.current=a;const M=o.useRef(null),se=()=>{M.current&&(M.current.style.opacity="0",M.current.style.transition="none")},oe=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{M.current&&(M.current.style.transition="opacity 200ms ease-out",M.current.style.opacity="1")})})};o.useEffect(()=>{window.history.scrollRestoration="manual";const s=e(),f=K(),d=f?{view:"listing",listingId:f}:{view:s},L=window.location.pathname+window.location.search;window.history.replaceState(d,"",L)},[]),o.useEffect(()=>{const s=f=>{const d=f.state,L=ae.current==="listing";D.current[ae.current]=window.scrollY;const P=d==null?void 0:d.view,j=window.location.pathname,z=te(),le=j==="/search"?"search":j.startsWith("/listing/")||window.location.search.includes("listing=")?"listing":z&&H(z)?"city":"home",C=P||le;if(C==="city"){const G=z;if(G){const Y=H(G);Y&&u(Y)}}C==="listing"?(T.flushSync(()=>n("listing")),window.scrollTo(0,0)):L?(C==="home"&&(ne.current=!0,U(!0)),se(),T.flushSync(()=>{g(null),b(void 0),n(C)}),window.scrollTo(0,D.current[C]||0),oe()):(C==="home"&&U(!0),T.flushSync(()=>{g(null),b(void 0),n(C)}),window.scrollTo(0,D.current[C]||0))};
10return window.addEventListener("popstate",s),()=>window.removeEventListener("popstate",s)},[]),o.useEffect(()=>{const s=K();if(s){k(!0),p(()=>import("./ListingDetailPage-D3b30cDV.js"),__vite__mapDeps([14,1,3,10,7,15,11,4,5,6,8,9,12]));const L=new URLSearchParams(window.location.search).get("feed_source")||void 0;vt(s).then(P=>{P?(g(P),b(L),n("listing")):w(!0)}).catch(()=>w(!0)).finally(()=>k(!1))}const f=requestAnimationFrame(()=>{setTimeout(async()=>{const[{initializeConsentManager:d},{initializeSessionTracking:L},{initializeVisibilityTracking:P},{initializeScrollTracking:j},{botDetection:z},{parseTrackingParams:le,recordTrafficAttribution:C,updateReferralConversion:G,getDeviceType:Y,extractUtmParameters:Ue},{pushPageviewEvent:Je}]=await Promise.all([p(()=>import("./consent-manager-CK3oYsNv.js"),__vite__mapDeps([5,1,6,7])),p(()=>import("./session-tracker-aLX2n4su.js"),__vite__mapDeps([9,4,5,1,6,7])),p(()=>import("./visibility-tracker-3IHEstLR.js"),__vite__mapDeps([27,4,5,1,6,7])),p(()=>import("./scroll-tracker-CC6_CEW_.js"),__vite__mapDeps([8,4,5,1,6,7,9])),p(()=>import("./bot-detection-DonKMdjG.js"),[]),p(()=>import("./tracking-utils-CrhrF1Os.js"),__vite__mapDeps([12,1,6,7])),p(()=>import("./gtm-service-BcLpnOwx.js"),__vite__mapDeps([4,5,1,6,7]))]);d(),L(),P(),j(),z.initialize();const He=new URLSearchParams(window.location.search),S=le(window.location.href),xe=ue();if(S.ref_code||S.campaign_id||S.utm_source)try{await C({session_id:xe,referral_code:S.ref_code,campaign_id:S.campaign_id,landing_url:window.location.href,referrer:document.referrer||void 0,utm_parameters:Ue(He),feed_source:S.feed_source,device_type:Y()}),N({campaignId:S.campaign_id,referralCode:S.ref_code,feedSource:S.feed_source}),S.ref_code&&await G(S.ref_code,xe,"view")}catch($e){console.error("Error recording traffic attribution:",$e)}Je(window.location.pathname,document.title,document.referrer,{source:S.utm_source,medium:S.utm_medium,campaign:S.utm_campaign,content:S.utm_content,term:S.utm_term})},0)});return()=>{cancelAnimationFrame(f),p(()=>import("./session-tracker-aLX2n4su.js"),__vite__mapDeps([9,4,5,1,6,7])).then(d=>d.cleanupSessionTracking()),p(()=>import("./visibility-tracker-3IHEstLR.js"),__vite__mapDeps([27,4,5,1,6,7])).then(d=>d.cleanupVisibilityTracking()),p(()=>import("./scroll-tracker-CC6_CEW_.js"),__vite__mapDeps([8,4,5,1,6,7,9])).then(d=>d.cleanupScrollTracking()),p(()=>import("./bot-detection-DonKMdjG.js"),[]).then(d=>d.botDetection.destroy())}},[]);const ye=o.useCallback(async(s,f)=>{try{const d=ht(s),L=await pt(d);if(!L.length)return!1;const P=await yt(L[0].placeId);if(!P)return!1;const j={locationName:P.formattedAddress,latitude:P.latitude,longitude:P.longitude,isDeviceLocation:!1};return await X(f,j),O(j),l({latitude:j.latitude,longitude:j.longitude}),be(),!0}catch{return!1}},[]);o.useEffect(()=>{(async()=>{const f=J.current,d=gt();if(d){if(await ye(d,f))return;be()}const L=await Lt(f);if(L)O(L),l({latitude:L.latitude,longitude:L.longitude});else if(!je()){const j=await me();if(j){l(j);try{await X(f,{locationName:"My Current Location",latitude:j.latitude,longitude:j.longitude,isDeviceLocation:!0}),O({locationName:"My Current Location",latitude:j.latitude,longitude:j.longitude,isDeviceLocation:!0})}catch(z){console.error("Failed to save location preference:",z)}}}})()},[]);const Oe=async s=>{try{await X(J.current,s),O(s),l({latitude:s.latitude,longitude:s.longitude}),q(!1)}catch(f){console.error("Failed to save location:",f),alert("Failed to save location preference")}},De=async()=>{try{await It(J.current),O(null);const s=await me();s?(l(s),await X(J.current,{locationName:"My Current Location",latitude:s.latitude,longitude:s.longitude,isDeviceLocation:!0}),O({locationName:"My Current Location",latitude:s.latitude,longitude:s.longitude,isDeviceLocation:!0})):l(null)}catch(s){console.error("Failed to clear location:",s),alert("Failed to clear location preference")}},F=s=>{const f=a;if(D.current[f]=window.scrollY,s==="home"&&U(!0),T.flushSync(()=>{n(s),s!=="listing"&&(g(null),b(void 0)),s!=="city"&&u(null)}),(s==="home"||s==="search")&&f!==s){const d=s==="search"?"/search":"/";window.history.pushState({view:s},"",d)}if(s==="terms"||s==="privacy"){const d=s==="terms"?"/terms":"/privacy";window.history.pushState({view:s},"",d)}window.scrollTo(0,D.current[s]||0)},Me=s=>{D.current[a]=window.scrollY;const f=ft(s);window.history.pushState({view:"home"},"",`/?tab=nearby&location=${encodeURIComponent(f)}`),T.flushSync(()=>{u(null),n("home")}),window.scrollTo(0,0),ye(f,J.current)},Fe=s=>{D.current[a]=window.scrollY,window.history.pushState({view:"search"},"",`/search?q=${encodeURIComponent(s)}`),T.flushSync(()=>{u(null),n("search")}),window.scrollTo(0,0)},ze=s=>{ce(s,"city_page")},ce=(s,f)=>{D.current[a]=window.scrollY,se(),T.flushSync(()=>{g(s),b(f),n("listing")}),ie.current=!0,window.history.pushState({view:"listing",listingId:s.listing_id},"",`/listing/${s.listing_id}`),window.scrollTo(0,0),oe()},Be=()=>{se(),ne.current=!0,U(!0),ie.current?(ie.current=!1,window.history.back()):(T.flushSync(()=>{g(null),b(void 0),n("home")}),window.history.replaceState({view:"home"},"","/"),window.scrollTo(0,0),oe())},Ve=o.useCallback((s,f)=>{const d=m;lt(ue(),{listing_id:s,event_type:"dwell",metadata:{duration_ms:f,source:"detail_page",price:d==null?void 0:d.list_price,beds:d==null?void 0:d.bedrooms_total,property_type:d==null?void 0:d.property_type,city:d==null?void 0:d.city},timestamp:Date.now()})},[m]);if(a==="admin-login"||a==="admin")return r.jsx(o.Suspense,{fallback:r.
10jsx(I,{}),children:r.jsx(Ot,{})});if(a==="privacy")return r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:F}),r.jsx("main",{className:"flex-1",children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Ce,{})})}),r.jsx(V,{})]});if(a==="terms")return r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:F}),r.jsx("main",{className:"flex-1",children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Te,{})})}),r.jsx(V,{})]});if(a==="tracking-docs")return r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:F}),r.jsx("main",{className:"flex-1",children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(At,{})})}),r.jsx(V,{})]});if(a==="forgot-password")return r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Ae,{})});if(a==="reset-password")return r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Re,{})});if(h)return r.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"inline-block h-8 w-8 animate-spin rounded-full border-4 border-solid border-blue-600 border-r-transparent"}),r.jsx("p",{className:"mt-4 text-gray-600",children:"Loading property..."})]})});if(x)return r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:F}),r.jsx("main",{className:"flex-1 flex items-center justify-center px-4 py-16",children:r.jsxs("div",{className:"max-w-lg w-full text-center",children:[r.jsx("div",{className:"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-6",children:r.jsx(he,{className:"w-8 h-8 text-gray-400"})}),r.jsx("h1",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Listing No Longer Available"}),r.jsx("p",{className:"text-gray-600 mb-8 leading-relaxed",children:"This property has been removed from our listings. It may have been sold, taken off the market, or is no longer active in the MLS."}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-3",children:[r.jsxs("button",{onClick:()=>{w(!1),U(!0),n("home"),window.history.replaceState({view:"home"},"","/")},className:"inline-flex items-center gap-2 px-6 py-3 bg-blue-600 text-white font-medium rounded-lg hover:bg-blue-700 transition-colors",children:[r.jsx(fe,{className:"w-4 h-4"}),"Back to Home"]}),r.jsxs("button",{onClick:()=>{w(!1),n("search"),window.history.replaceState({view:"search"},"","/search")},className:"inline-flex items-center gap-2 px-6 py-3 bg-white text-gray-700 font-medium rounded-lg border border-gray-300 hover:bg-gray-50 transition-colors",children:[r.jsx(he,{className:"w-4 h-4"}),"Browse Listings"]})]})]})}),r.jsx(V,{})]});const qe=()=>{g(null),b(void 0),U(!0),n("home"),window.history.replaceState({view:"home"},"","/")};return r.jsxs("div",{ref:M,className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:F,showLegalMenu:a==="home"||a==="search"}),r.jsx("main",{className:"flex-1",children:r.jsxs(jt,{onReset:qe,children:[pe&&r.jsx("div",{style:{display:a==="home"?void 0:"none"},children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Pt,{isActive:a==="home",returningFromListingRef:ne,onSearchClick:()=>F("search"),onListingClick:ce,trackingContext:E,userLoc:v,savedLocation:R,onShowLocationPicker:()=>q(!0),onRequestDeviceLocation:async()=>{const s=await me();return s&&l(s),s}})})}),a==="search"&&r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Nt,{isActive:a==="search",onListingClick:s=>ce(s,"search"),userLoc:v})}),a==="city"&&c&&r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Et,{city:c,onListingClick:ze,onBrowseNearby:Me,onSearchClick:Fe,onNavigateHome:()=>F("home")})}),a==="listing"&&m&&r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(kt,{listing:m,onBack:Be,onDwell:Ve,feedSource:_,trackingContext:E})})]})}),r.jsx(V,{}),W&&r.jsx(o.Suspense,{fallback:null,children:r.jsx(Rt,{currentLocation:R,onSave:Oe,onClear:De,onClose:()=>q(!1)})})]})}function Mt(){const t=(()=>{const i=window.location.pathname;if(i==="/privacy")return"privacy";if(i==="/terms")return"terms";if(i==="/admin")return"admin-login";if(i==="/forgot-password")return"forgot-password";if(i==="/reset-password")return"reset-password";if(i==="/search")return"search";if(i.startsWith("/listing/"))return"home";const a=te();return a&&H(a)?"city":"home"})();return t==="privacy"?r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:()=>window.location.href="/"}),r.jsx("main",{className:"flex-1",children:r.jsx(o.Suspense,{fallback:r.
10jsx(I,{}),children:r.jsx(Ce,{})})}),r.jsx(V,{})]}):t==="terms"?r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50 overflow-x-hidden",children:[r.jsx(B,{onNavigate:()=>window.location.href="/"}),r.jsx("main",{className:"flex-1",children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Te,{})})}),r.jsx(V,{})]}):t==="forgot-password"?r.jsx(de,{children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Ae,{})})}):t==="reset-password"?r.jsx(de,{children:r.jsx(o.Suspense,{fallback:r.jsx(I,{}),children:r.jsx(Re,{})})}):r.jsx(de,{children:r.jsx(Dt,{})})}Ie(document.getElementById("root")).render(r.jsx(o.StrictMode,{children:r.jsx(Mt,{})}));export{$t as a,lt as b,Yt as c,Wt as d,Gt as e,Ht as f,ue as g,Kt as h,Jt as i,r as j,Xt as k,pt as l,er as m,Zt as n,qt as o,Ut as p,Qt as q,yt as r,y as s,Vt as t,st as u,me as v};

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.