1import{_ as Q}from"./Bbe6kRpT.js";import{_ as W}from"./p8aU1aL5.js";import{_ as X}from"./uD1Xtql8.js";import{e as z,I as Z,f as s,o as a,c as r,a as e,W as B,t as f,aw as P,ax as E,az as j,v as k,ay as q,i as y,d as V,aC as F,X as ee,z as v,j as w,l as Y,h as I,b as S,aA as se,w as $,aD as te,aB as J,aE as oe,aF as ne,u as ae,y as le,ai as re}from"./87PtDbrr.js";import{u as H,b as D,a as K}from"./qEFtUs1Q.js";import{v as G}from"./Df_c_WzO.js";import{_ as R}from"./DlAUqK2U.js";const ie={key:0,class:"popup-overlay"},ue={class:"popup-container","data-aos":"zoom-in","data-aos-duration":"500"},de=["disabled"],ce={class:"popup-heading"},pe={class:"form-group"},me={for:"email",class:"form-label"},ve={key:0,class:"error-text"},ge={class:"form-group"},fe={key:0,class:"error-text"},be=["disabled"],ke={key:0,class:"spinner"},he={class:"popup-footer"},_e={class:"form-group"},ye=["disabled"],we=["disabled"],$e={key:0,class:"spinner"},Le={key:2,class:"popup-back"},Me={__name:"LoginPopup",setup(A){const h=H(),_=z("showLoginPopup"),i=v(!1),L=w(()=>i.value?"Agent Login":"Login"),x=w(()=>i.value?"Not an Agent?":"Agent Login"),p=v(""),u=v(""),d=v(""),o=v(""),m=v(!1),b=v(""),n=v(!1),g=v(!1);Z(i,C=>{C&&(p.value="",u.value="",d.value="",o.value="")});const N=()=>{m.value&&g.value&&(m.value=!1,g.value=!1),_.value=!1},O=()=>!p.value?.trim()&&i.value?(d.value="Email or username is required",!1):!i.value&&!G(p.value.trim())?(d.value="Please enter a valid email address",!1):(d.value="",!0),c=()=>u.value?.trim()?(o.value="",!0):(o.value="Password is required",!1),l=w(()=>p.value?.trim()&&u.value?.trim()&&!d.value&&!o.value),T=async()=>{!O()||!c()||(n.value=!0,i.value?await h.loginAgent(p.value,u.value):await h.loginLead(p.value,u.value),n.value=!1)},U=async()=>{if(!b.value?.trim?.()){D().error("Please enter your email address");return}if(!G(b.value.trim?.())){D().error("Please enter a valid email address");return}n.value=!0;try{await h.sendForgotPasswordEmail(b.value)&&(g.value=!0)}finally{n.value=!1}};return(C,t)=>s(_)?(a(),r("div",ie,[e("div",ue,[e("button",{onClick:N,disabled:s(n),class:"popup-close"},"X",8,de),s(m)?(a(),r(B,{key:1},[t[11]||(t[11]=e("h2",{class:"popup-heading"},"Forgot Password",-1)),s(g)?(a(),r(B,{key:1},[t[10]||(t[10]=ee('<div class="success-alert" data-v-9b4a5567><div class="success-icon" data-v-9b4a5567><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-v-9b4a5567><path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z" data-v-9b4a5567></path><path d="m9 12 2 2 4-4" data-v-9b4a5567></path></svg></div><div class="success-content" data-v-9b4a5567><h3 class="success-title" data-v-9b4a5567>Reset email sent</h3><p class="success-text" data-v-9b4a5567>Please check your email for password reset instructions.</p></div></div>',1)),e("button",{onClick:N,class:"noble-btn-outline"},"Close")],64)):(a(),r("form",{key:0,onSubmit:P(U,["prevent"])},[e("div",_e,[t[8]||(t[8]=e("label",{for:"forgotEmail",class:"form-label"},"Enter your email:",-1)),E(e("input",{type:"email",id:"forgotEmail","onUpdate:modelValue":t[4]||(t[4]=M=>q(b)?b.value=M:null),required:"",disabled:s(n),class:"noble-input"},null,8,ye),[[j,s(b)]])]),e("button",{type:"submit",disabled:s(n),class:"noble-btn"},[s(n)?(a(),r("span",$e)):y("",!0),t[9]||(t[9]=V(" Send Reset Email ",-1))],8,we)],32)),s(g)?y("",!0):(a(),r("p",Le,[e("a",{href:"#",onClick:t[5]||(t[5]=P(M=>m.value=!1,["prevent"])),class:"popup-link"},"Back to login")]))],64)):(a(),r(B,{key:0},[e("h2",ce,f(s(L)),1),e("form",{onSubmit:P(T,["prevent"])},[e("div",pe,[e("label",me,f(s(i)?"Username or Email:":"Email:"),1),E(e("input",{type:"text",id:"email","onUpdate:modelValue":t[0]||(t[0]=M=>q(p)?p.value=M:null),required:"",onInput:O,class:k(["noble-input",{"input-error":s(d)}])},null,34),[[j,s(p)]]),s(d)?(a(),r("span",ve,f(s(d)),1)):y("",!0)]),e("div",ge,[t[6]||(t[6]=e("label",{for:"password",class:"form-label"},"Password:",-1)),E(e("input",{type:"password",id:"password","onUpdate:modelValue":t[1]||(t[1]=M=>
1q(u)?u.value=M:null),required:"",onInput:c,class:k(["noble-input",{"input-error":s(o)}])},null,34),[[j,s(u)]]),s(o)?(a(),r("span",fe,f(s(o)),1)):y("",!0)]),e("button",{type:"submit",disabled:s(n)||!s(l),class:"noble-btn"},[s(n)?(a(),r("span",ke)):y("",!0),t[7]||(t[7]=V(" Login ",-1))],8,be)],32),e("div",he,[E(e("div",null,null,512),[[F,s(i)]]),E(e("a",{href:"#",onClick:t[2]||(t[2]=P(M=>!s(n)&&(m.value=!0),["prevent"])),class:"popup-link"},"Forgot password?",512),[[F,!s(i)]]),e("a",{class:"popup-link underline",onClick:t[3]||(t[3]=P(M=>!s(n)&&(i.value=!s(i)),["prevent"]))},f(s(x)),1)])],64))])])):y("",!0)}},xe=R(Me,[["__scopeId","data-v-9b4a5567"]]),Ce={class:"menu-content"},Se={class:"menu-nav"},Pe={class:"link-number"},Ee={class:"link-text"},Be={class:"menu-footer"},Ie={class:"auth-info"},Ae={class:"auth-email"},Ne={class:"auth-actions"},Oe=Y({__name:"MobileNav",props:{isMenuOpen:{type:Boolean},navigationItems:{}},emits:["toggleMenu"],setup(A,{emit:h}){const _=h,i=H(),L=K(),x=z("showLoginPopup",()=>!1),p=()=>{_("toggleMenu"),x.value=!0},u=()=>{i.logout(),_("toggleMenu")};return(d,o)=>{const m=W,b=X;return a(),I(ne,{to:"body"},[S(se,{name:"menu-fade"},{default:$(()=>[A.isMenuOpen?(a(),r("div",{key:0,class:"menu-overlay",onClick:o[3]||(o[3]=P(n=>d.$emit("toggleMenu"),["self"]))},[e("div",Ce,[e("button",{onClick:o[0]||(o[0]=n=>d.$emit("toggleMenu")),class:"close-button"},[...o[4]||(o[4]=[e("span",{class:"close-text"},"Close",-1),e("span",{class:"close-icon"},[e("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M6 18L18 6M6 6l12 12"})])],-1)])]),e("nav",Se,[S(te,{name:"nav-stagger",appear:""},{default:$(()=>[(a(!0),r(B,null,J(A.navigationItems,(n,g)=>(a(),I(m,{key:n.name,to:n.href,external:n.external,target:n.external?"_blank":void 0,class:"menu-link",style:oe({transitionDelay:`${g*50}ms`}),onClick:o[1]||(o[1]=N=>d.$emit("toggleMenu"))},{default:$(()=>[e("span",Pe,"0"+f(g+1),1),e("span",Ee,f(n.name),1)]),_:2},1032,["to","external","target","style"]))),128))]),_:1})]),e("div",Be,[S(b,null,{default:$(()=>[s(i).isLoggedIn?(a(),r(B,{key:0},[e("div",Ie,[o[5]||(o[5]=e("span",{class:"auth-label"},"Signed in as",-1)),e("span",Ae,f(s(L).user?.email),1)]),e("div",Ne,[s(L).isLead?(a(),I(m,{key:0,to:"/my-account",class:"auth-link",onClick:o[2]||(o[2]=n=>d.$emit("toggleMenu"))},{default:$(()=>[...o[6]||(o[6]=[V(" My Account ",-1)])]),_:1})):y("",!0),e("button",{onClick:u,class:"auth-link"}," Log Out ")])],64)):(a(),r("button",{key:1,onClick:p,class:"auth-link"}," Log In "))]),_:1}),o[7]||(o[7]=e("div",{class:"contact-info"},[e("p",{class:"contact-label"},"Get in touch"),e("a",{href:"mailto:[email protected]",class:"contact-link"},"[email protected]")],-1))])])])):y("",!0)]),_:1})])}}}),Te=R(Oe,[["__scopeId","data-v-45f85765"]]),Ue={class:"header-container"},Ve={class:"header-nav"},ze={class:"nav-actions"},je={key:0,class:"user-menu"},qe={class:"dropdown-menu"},Fe={class:"dropdown-header"},He={class:"dropdown-email"},Re=Y({__name:"Header",props:{darkMode:{type:Boolean},forceScrolled:{type:Boolean}},setup(A){const h=A,_=H(),i=K(),L=z("currentAgent"),x=w(()=>L.value?.logoUrl||""),p=w(()=>L.value?.full_name||"Real Estate");ae({link:[{rel:"icon",type:"image/png",href:x}]});const u=v(!1),d=v(!1),o=w(()=>h.forceScrolled||d.value),m=v(!1),b=z("showLoginPopup",()=>!1),n=w(()=>h.darkMode!==void 0?h.darkMode&&!o.value:!o.value),g=()=>{u.value=!u.value,u.value?document.body.style.overflow="hidden":document.body.style.overflow=""},N=w(()=>{const c=L.value?.teams;if(!c||Object.keys(c).length===0)return!1;for(const[l,T]of Object.entries(c))if(l===""||T.team?.display_on_website===!1)return!1;return!0}),O=w(()=>{const c=[{name:"Home",href:"/"},{name:"Search",href:"/search"},{name:"Buy",href:"/buy"},{name:"Sell",href:"/sell"},{name:"About",href:"/about"},{name:"Blog",href:"/blog"},{name:"Contact",href:"/contact"}];return N.value&&c.push({name:"Team",href:"/team"}),c.filter(Boolean)});return le(()=>{const c=()=>{d.value=window.scrollY>50};window.addEventListener("scroll",c),c(),re(()=>{window.removeEventListener("scroll",c)})}),(c,l)=>{const T=Q,U=W,C=X;return a(),r("header",{class:k(["header",{"header-scrolled":s(o)}])},[e("div",Ue,[S(U,{to:"/",class:"header-logo"},{default:$(()=>[s(x)?(a(),I(T,{key:0,src:s(x),alt:"Logo",class:k(["logo-image",{"logo-light":s(n)}])},null,8,["src","class"])):(a(),r("span",{key:1,class:k(["logo-text",{"logo-text-light":s(n)}])},f(s(p)),3))]),_:1}),e("nav",Ve,[(a(!0),r(B,null,J(s(O),t=>(a(),I(U,{key:t.name,to:t.href,class:k(["nav-link",{"nav-link-light":s(n)}])},{default:$(()=>[V(f(t.name),1)]),_:2},1032,["to","class"]))),128))]),e("div",ze,[S(C,null,{default:$(()=>[s(_).isLoggedIn?(a(),r("div",je,[e("button",{class:k(["user-btn",{"user-btn-light":s(n)}]),onClick:l[0]||(l[0]=t=>m.value=!s(m))},[l[4]||(l[4]=e("span",{class:"user-icon"},[e("svg",{fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})])],-1)),(a(),r("svg",{class:k(["chevron",{open:s(m)}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...l[3]||(l[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"}
1,null,-1)])],2))],2),E(e("div",qe,[e("div",Fe,[l[5]||(l[5]=e("span",{class:"dropdown-label"},"Signed in as",-1)),e("span",He,f(s(i).user?.email),1)]),s(i).isLead?(a(),I(U,{key:0,to:"/my-account",class:"dropdown-item"},{default:$(()=>[...l[6]||(l[6]=[V(" My Account ",-1)])]),_:1})):y("",!0),e("button",{onClick:l[1]||(l[1]=(...t)=>s(_).logout&&s(_).logout(...t)),class:"dropdown-item"}," Log Out ")],512),[[F,s(m)]])])):(a(),r("button",{key:1,onClick:l[2]||(l[2]=t=>b.value=!0),class:k(["login-btn",{"login-btn-light":s(n)}])}," Log In ",2))]),_:1})]),e("button",{onClick:g,class:k(["hamburger",{"hamburger-light":s(n),"hamburger-active":s(u)}])},[...l[7]||(l[7]=[e("span",{class:"hamburger-line"},null,-1),e("span",{class:"hamburger-line"},null,-1),e("span",{class:"hamburger-line"},null,-1)])],2)]),S(Te,{isMenuOpen:s(u),navigationItems:s(O),onToggleMenu:g},null,8,["isMenuOpen","navigationItems"]),S(xe)],2)}}}),Qe=R(Re,[["__scopeId","data-v-879d6a18"]]);export{Qe 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.